Skip to the content.

🎲 Daily Random xkcd 🎲

📖 About

This repository automatically generates a daily random xkcd comic and serves it as an RSS feed. Each day, a new comic is fetched, formatted, and made available for subscription. Users can configure RSS feed reader to send email notifications whenever a new comic is available in the feed. It also features a fun xkcd-themed 404 error page that showcases a random comic in a playful layout.


🌟 Features


⚙️ How It Works

  1. 🕔 Daily Trigger: A GitHub Actions workflow is triggered every day at 8:00 AM UTC+3 to run a Python script (generate_rss.py).
  2. 📥 Random Comic Fetch: The script fetches a random comic from the xkcd API, ensuring it hasn’t been seen before.
  3. 📝 XML Generation: Comic details are formatted as XML and saved to docs/xkcd_feed.xml.
  4. 🗂️ Seen Comics Tracking: The comics are tracked in seen_comics.json to avoid repeats.
  5. 🚀 RSS Hosting: The RSS feed is hosted on GitHub for easy access by RSS web feeds.
  6. 📧 Email Notifications: RSS feed reader monitors the feed and sends email alerts when a new comic is available.
  7. 💡 404 Page: A Python script generates an xkcd-themed 404 page with a random comic.

🛠️ Getting Started

You can use this tool in two ways:

1. Use the Pre-Generated RSS Feed Hosted by GitHub

2. Fork the Repository and Automate Your Own Feed

If you’d like to run your own instance of this tool:

  1. Fork this repository to your GitHub account.
  2. Enable GitHub Actions in your forked repository.
  3. Set up RSS feed reader:
    • Create a new RSS feed alert for the URL.
    • Configure email notifications based on your preferences.
  4. Enjoy daily xkcd emails and check the latest comic each day.
  5. Access the 404 Page whenever you want a random xkcd comic.


📂 Files


🔮 Future Expansion

We plan to expand this project to include other webcomics such as Saturday Morning Breakfast Cereal (SMBC). The vision includes:

Stay tuned for updates as we explore these exciting new features!


📝 License

This project is licensed under the MIT License. See the LICENSE file for more details.


🙏 Acknowledgements


📬 Contact

If you have any questions or suggestions, feel free to open an issue in this repository!