{"id":13690324,"url":"https://github.com/joeyvanlierop/xkcdbot","last_synced_at":"2026-03-02T07:02:34.348Z","repository":{"id":126569566,"uuid":"234459347","full_name":"joeyvanlierop/xkcdbot","owner":"joeyvanlierop","description":"A reddit bot that automatically links xkcd comics in the /r/xkcd subreddit 🤖","archived":false,"fork":false,"pushed_at":"2023-05-22T22:38:36.000Z","size":128,"stargazers_count":38,"open_issues_count":7,"forks_count":20,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-08T22:03:29.872Z","etag":null,"topics":["bot","praw","python","reddit","reddit-bot","subreddit","xkcd-bot","xkcd-comics"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joeyvanlierop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-01-17T03:04:31.000Z","updated_at":"2025-04-27T10:15:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"f74ca659-40ff-42b9-9a80-89dd16111c38","html_url":"https://github.com/joeyvanlierop/xkcdbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joeyvanlierop/xkcdbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyvanlierop%2Fxkcdbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyvanlierop%2Fxkcdbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyvanlierop%2Fxkcdbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyvanlierop%2Fxkcdbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joeyvanlierop","download_url":"https://codeload.github.com/joeyvanlierop/xkcdbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joeyvanlierop%2Fxkcdbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994618,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","praw","python","reddit","reddit-bot","subreddit","xkcd-bot","xkcd-comics"],"created_at":"2024-08-02T16:01:03.054Z","updated_at":"2026-03-02T07:02:34.321Z","avatar_url":"https://github.com/joeyvanlierop.png","language":"Python","funding_links":[],"categories":["Misc"],"sub_categories":["External Reddit Tools"],"readme":"\u003ch1 align=center\u003eXKCD Bot\u003c/h1\u003e\n\u003cp align=center\u003eA bot for /r/xkcd that posts detailed comments about xkcd comics\u003c/p\u003e\n\n## About The Project\n\nAfter seeing [this suggestion](https://www.reddit.com/r/xkcd/comments/epmpwv/why_do_we_not_have_a_bot/) on the /r/xkcd subreddit, I began working on this bot. It is intended to be a non-intrusive bot that provides a detailed and well formatted comment with information regarding the relevant comic. \n\nIt is currently running 24/7 in the cloud. You can find the bot at [/u/BobbyTablesBot](https://www.reddit.com/user/BobbyTablesBot/).\n## Example\nThere are two ways to use the bot.\n\n* The first way is to post a comment in /r/xkcd with the number of the xkcd comic you would like to link prefixed by an exclamation mark (!) or a pound sign (#).  \n  Examples:\n\n  \u003e !327  \n\n  or\n  \u003e #327 \n\n  or even\n  \u003e Show me !327\n\n\n* The second way is to mention the bot from any subreddit with the number of the xkcd comic you would like to link. If the bot is mentioned, the comic number does not need to be prefixed.  \n  Examples:\n\n    \u003e /u/BobbyTablesBot 327  \n\n    or\n    \u003e /u/BobbyTablesBot !327\n\n    or even\n    \u003e Hey /u/BobbyTablesBot, can you link me 327?\n\nIn any of the previous cases, the bot would respond with:\n\n\u003e **[327:](http://xkcd.com/327)** Exploits of a Mom    \n\u003e **Alt-text:** Her daughter is named Help I'm trapped in a driver's license factory.  \n\u003e [Image](https://imgs.xkcd.com/comics/exploits_of_a_mom.png)  \n\u003e [Mobile](http://m.xkcd.com/327)  \n\u003e [Explanation](http://www.explainxkcd.com/wiki/index.php/327)  \n\u003e ---\n\u003e [xkcd.com](https://www.xkcd.com)\u0026nbsp;|\u0026nbsp;[Feedback](https://reddit.com/message/compose/?to=banana_shavings\u0026subject=BobbyTablesBot)\u0026nbsp;|\u0026nbsp;[Stop\u0026nbsp;Replying](https://reddit.com/message/compose/?to=BobbyTablesBot\u0026subject=Ignore%20Me\u0026message=Ignore%20Me)\u0026nbsp;|\u0026nbsp;[GitHub](https://github.com/joeyvanlierop/xkcdbot)\u0026nbsp;|\u0026nbsp;[Programmer](https://www.reddit.com/user/banana_shavings)\n\n\n## Getting Started\n\nTo host your own xkcd bot, follow these simple example steps.\n\n### Prerequisites\n\n* Python 3.8\n* A Reddit Account\n  \n### Installation\n\n* Clone the repo\n\n      git clone git@github.com:joeyvanlierop/xkcdbot.git\n    \n* Create an app [here](https://www.reddit.com/prefs/apps)\n   * Create a copy of [config.example.json](xkcdbot/config.example.json) and rename it to config.json\n   * Paste the appropritate credentials into the newly created config.json\n   * Make sure to also add an appropriate user agent in the config.json\n* Install the requirements\n    \n        pip install -r requirements.txt\n\n### Running the bot\n\n* From the base directory run:\n\n        python -m bot.bot\n        \n### Running the tests\n\n* From the base directory run:\n\n        python -m unittest\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n* Task list:\n    - [x] Blacklisting users through inbox messages\n    - [x] Implement databases for blacklisted users and statistics\n    - [x] Respond to mentions regardless of subreddit\n    - [x] [Remove duplicate entries](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff7k8mg/)\n    - [x] [Track comic reference popularity](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff75nen/)\n    - [x] Include statistics in comment\n    - [x] Implement logging\n    - [x] [!latest](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff98upj/)\n    - [x] [Ignore hyperlinks](https://www.reddit.com/r/xkcd/comments/eut0e2/xkcd_2260_reaction_maps/ffrd5jo/)\n    - [x] [Literalize certain Markdown reserves characters when they appear as part of a URL](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff6z3yz/)\n    - [x] [Reference comic by title/alias](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff9lxi2/)\n    - [x] [Backlog/queue script](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff8gjyc/)\n    - [x] [Handle range of ids](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff7s6zt/)\n    - [x] [Call bot with \"Relevant xkcd: {}\"](https://www.reddit.com/r/AskReddit/comments/eunqex/you_are_able_to_choose_1_statistic_to_see_above/fft653g/)\n    - [x] [Return random comic](https://www.reddit.com/r/xkcd/comments/erydbl/introducing_ubobbytablesbot/ff7wmeh/)\n    - [ ] Match submissions (currently only matches comments)\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeyvanlierop%2Fxkcdbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoeyvanlierop%2Fxkcdbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoeyvanlierop%2Fxkcdbot/lists"}