{"id":27434878,"url":"https://github.com/namelessproj/citememaybe","last_synced_at":"2026-04-25T21:33:44.506Z","repository":{"id":287554050,"uuid":"962198308","full_name":"NamelessProj/CiteMeMaybe","owner":"NamelessProj","description":"CiteMeMaybe is a Discord bot written in python that will gather all your citations from your citations channel and save them in a database.","archived":false,"fork":false,"pushed_at":"2025-05-17T12:10:17.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-11T15:27:53.334Z","etag":null,"topics":["citations","discord","discord-bot","discord-py"],"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/NamelessProj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":"citations.py","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-07T19:50:52.000Z","updated_at":"2025-05-17T12:10:21.000Z","dependencies_parsed_at":"2025-04-12T13:30:12.549Z","dependency_job_id":"f6320f17-6de9-42bd-a341-abc79f0c5f00","html_url":"https://github.com/NamelessProj/CiteMeMaybe","commit_stats":null,"previous_names":["namelessproj/citememaybe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NamelessProj/CiteMeMaybe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessProj%2FCiteMeMaybe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessProj%2FCiteMeMaybe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessProj%2FCiteMeMaybe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessProj%2FCiteMeMaybe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NamelessProj","download_url":"https://codeload.github.com/NamelessProj/CiteMeMaybe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NamelessProj%2FCiteMeMaybe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["citations","discord","discord-bot","discord-py"],"created_at":"2025-04-14T18:27:56.646Z","updated_at":"2026-04-25T21:33:44.501Z","avatar_url":"https://github.com/NamelessProj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Python-v.3.12.6-blue\" alt=\"Python version\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/license/NamelessProj/CiteMeMaybe\" alt=\"licence\"/\u003e\n\u003cimg src=\"https://img.shields.io/github/repo-size/NamelessProj/CiteMeMaybe\" alt=\"repo size\"/\u003e\n\u003c/p\u003e\n\n# CiteMeMaybe - 🎤 Save the legendary moments.\nCiteMeMaybe automatically logs every message from a designated channel and stores it as a citation. Whether it’s hilarious, out of pocket, or pure gold—you’ll never lose a quote again.\n\n* [CiteMeMaybe - 🎤 Save the legendary moments.](#citememaybe----save-the-legendary-moments)\n  * [🛠️ Features](#-features)\n  * [🤝 Perfect for](#-perfect-for)\n  * [📊 .env](#-env)\n  * [🤖 How to run the bot](#-how-to-run-the-bot)\n  * [🚗 Automations](#-automations)\n  * [❌ How to prevent messages from being saved](#-how-to-prevent-messages-from-being-saved)\n  * [🎮 Commands](#-commands)\n    * [`/example`](#example)\n    * [`/help`](#help)\n    * [`/setup_server`](#setup_server)\n    * [`/update_database`](#update_database)\n    * [`/top`](#top)\n    * [`/random_citation`](#random_citation)\n    * [`/get_a_citation`](#get_a_citation)\n    * [`/how_many`](#how_many)\n    * [`/how_many_written_by`](#how_many_written_by)\n\n## 🛠️ Features\n__Auto-log messages__ from a specified channel as citations.\n\n__Random citation__ generator (from anyone or specific users).\n\n__Stats commands__ – total citations, user-specific counts, and more.\n\n__Citation lookup__ by ID, in case someone really wants to deny it.\n\n## 🤝 Perfect for\nFriend groups who say way too much.\n\nServers that run on inside jokes.\n\nAnyone who needs proof that “yes, you did say that.”\n\n\u003e 💬 __Save it. Quote it. Laugh at it later.__\n\u003e \n\u003e 📚 __Powered by friendship and bad takes.__\n\n## 📊 .env\nTo be able to use this exemple bot, you'll need a `.env` file.\n```env\nBOT_TOKEN=Your_Bot_Token\nGUILD_ID=Your_Server_Id\n\nPYTHON_ENV=dev\n\nMONGO_URI=mongodb+srv://\u003cusername\u003e:\u003cpassword\u003e@cluster0.3xq4j.mongodb.net/?retryWrites=true\u0026w=majority\nMONGO_DB_NAME=your_database_name\n```\nThe `BOT_TOKEN` will be used to connect the bot to your server.\n\nThe `GUILD_ID` will be used to get the server where the bot is connected and to get the channel where the citations are.\n\nThe `PYTHON_ENV` will be used to set the environment of the bot. It can be `dev` or `prod`. If you set it to `dev`, the bot will be only available for you. If you set it to `prod`, the bot will be available for everyone.\n\nThe `MONGO_URI` will be used to connect to your mongoDB database.\n\nThe `MONGO_DB_NAME` will be used to get the database name where the citations will be saved.\n\n\u003e [!note]\n\u003e ### How to get your Bot token ?\n\u003e To get your bot token, you'll need to go to the [Discord Developer Portal](https://discord.com/developers/applications).\n\u003e You'll have to create a `New Application` and in the `Bot` page, you'll have to:\n\u003e - Turn on `Presence Intent`\n\u003e - Turn on `Server Members Intent`\n\u003e - Turn on `Message Content Intent`\n\u003e - Check `Administartor` in the `Bot Permissions` that way the bot can do anything. _(Make sure to trust the code)_\n\u003e \n\u003e Then on the `OAuth2` page, in the `OAuth2 URL Generator` part, check `bot`, copy the url and pasted it in your browser.\n\u003e \n\u003e Once your bot on the server you wanted it to be, back on the `Discrod Developer Portal`, in the `Bot` page, you'll find a button `Reset Token`. Click on it and then your token will be displayed. __Make sure to save it, it'll be showed one time only__.\n\n\u003e [!note]\n\u003e ### How to get the ID of your Server ?\n\u003e On Discord, you'll have to go to your `user settings` and in the `Advanced` tab. In there, you'll have to turn on the `Developer Mode`.\n\u003e\n\u003e Then make a right click on the server you want the bot in and at the bottom of the context menu, you'll find the possibility to copy the ID of the server.\n\n## 🤖 How to run the bot\n1. Clone the repository\n```bash\ngit clone https://github.com/NamelessProj/CiteMeMaybe.git\n```\n2. Create a virtual environment\n```bash\npython -m venv venv\n```\n3. Activate the virtual environment\n```bash\n# Windows\nvenv\\Scripts\\activate\n# Linux\nsource venv/bin/activate\n```\n4. Install the dependencies\n```bash\npip install -r requirements.txt\n```\n5. Create a `.env` file in the root of the project and add everything from the [`.env.example`](/.env.example) file. You can also check the [📊 .env](#-env) section for more information.\n6. Run the bot\n```bash\npython main.py\n```\n\nEverytime you want to run the bot, you have to activate the virtual environment and run the bot _(step 3 and 6)_.\n\n## 🚗 Automations\nEvery time a message is sent in the channel, the bot will check if the message is a citation and if it is, it will save it in the database.\n\nWhen a message is deleted, the bot will check if the message is a citation and if it is, it will delete it from the database.\n\nWhen a message is edited, the bot will check if the message is a citation and if it is, it will update it in the database.\n\n## ❌ How to prevent messages from being saved\nBefore sending a message in the channel, add at the beginning of the message `no-saving`. It has to be in a code block.\n\n## 🎮 Commands\n### `/example`\nThis command give you an example of how to write a citation.\n\n### `/help`\nThis command will give you a list of all the commands available.\n\n### `/setup_server`\n__This command is only available to the administrators.__\n\nThis command will set up the server and the channel where it'll find the citations.\n\n### `/update_database`\n__This command is only available to the administrators.__\n\nThis command will update the database with the citations from the channel.\n\n### `/top`\nThis command let you get the top users who said the most citations and who wrote the most citations. By default, it will get the top 5 users.\n#### Parameters:\n- `number`: _optional_\n\n### `/random_citation`\nThis command let you get a random citation from the database or from a specific user.\n#### Parameters:\n- `user`: _optional_\n\n### `/get_a_citation`\nThis command let you get a specific citation from the database using an id.\n#### Parameters:\n- `citation_id`: int\n\n### `/how_many`\nThis command let you get the number of citations in the database or the number of citations from a specific user.\n#### Parameters:\n- `user`: _optional_\n\n### `/how_many_written_by`\nThis command let you get the number of citations written by a specific user. By default, it will get the number of citations written by you.\n#### Parameters:\n- `user`: _optional_","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamelessproj%2Fcitememaybe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnamelessproj%2Fcitememaybe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnamelessproj%2Fcitememaybe/lists"}