{"id":15672637,"url":"https://github.com/pradumnasaraf/ddrss","last_synced_at":"2025-05-06T21:41:54.630Z","repository":{"id":42376853,"uuid":"467224420","full_name":"Pradumnasaraf/DDRSS","owner":"Pradumnasaraf","description":"DDRSS Bot is a Discord Bot, which help user to get all bookmarks and the latest bookmark on their discord chat.","archived":false,"fork":false,"pushed_at":"2023-06-11T18:56:23.000Z","size":46,"stargazers_count":15,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-31T03:12:05.226Z","etag":null,"topics":["bot","daily-dev","discord","discord-bot","discord-py","python"],"latest_commit_sha":null,"homepage":"https://discord.com/oauth2/authorize?client_id=950398355853430824\u0026permissions=414464661568\u0026scope=bot%20applications.commands","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pradumnasaraf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["eddiejaoude"]}},"created_at":"2022-03-07T19:04:24.000Z","updated_at":"2025-01-02T13:17:14.000Z","dependencies_parsed_at":"2024-10-23T10:57:12.755Z","dependency_job_id":"79af390c-0c20-440b-9adf-3ce3ea2fd824","html_url":"https://github.com/Pradumnasaraf/DDRSS","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FDDRSS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FDDRSS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FDDRSS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pradumnasaraf%2FDDRSS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pradumnasaraf","download_url":"https://codeload.github.com/Pradumnasaraf/DDRSS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252775826,"owners_count":21802454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","daily-dev","discord","discord-bot","discord-py","python"],"created_at":"2024-10-03T15:29:16.715Z","updated_at":"2025-05-06T21:41:54.609Z","avatar_url":"https://github.com/Pradumnasaraf.png","language":"Python","funding_links":["https://github.com/sponsors/eddiejaoude"],"categories":[],"sub_categories":[],"readme":"[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Pradumnasaraf/DDRSS)\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n\r\n\u003cimg src=\"https://user-images.githubusercontent.com/51878265/178142801-3e0cbdc1-e943-4f16-98af-cf74e2790165.png\" height=200px\u003e\r\n\r\n\u003ch1\u003e\u003cimg src=\"https://user-images.githubusercontent.com/51878265/158064566-853b9c0a-342f-4597-b88e-40a1cb9621cc.png\" height=25\u003eDaily Dev Really Simple Syndication (DDRSS) Bot\u003c/h1\u003e\r\n\r\n[![Publish Image to GitHub Container Registry](https://github.com/Pradumnasaraf/DDRSS/actions/workflows/publish-ghcr.yml/badge.svg)](https://github.com/Pradumnasaraf/DDRSS/actions/workflows/publish-ghcr.yml) [![Releases](https://github.com/Pradumnasaraf/DDRSS/actions/workflows/releases.yml/badge.svg)](https://github.com/Pradumnasaraf/DDRSS/actions/workflows/releases.yml)\r\n\r\n**DDRSS Bot is a user-specific Discord Bot**, which help user to get all bookmarks and the latest bookmark on their discord chat. It also comes with a search feature to find the bookmarks which match the specific keywords.\r\n\u003cbr\u003e\r\n\r\n\u003c/div\u003e\r\n\r\n\u003e Bot works on [`daily.dev`](https://daily.dev/) shareable bookmark URL as source data.\r\n\r\n\u003cbr\u003e\r\n\r\n\u003cb\u003e\u003ch3 align=\"center\"\u003e🎉 Winner project of \u003ca href=\"https://twitter.com/dailydotdev/status/1507003555110027276?s=20\u0026t=1jqwj4nvk0KO6uuMStV1Ig\"\u003edaily.dev RSS Feed Hackathon.\u003c/a\u003e🎉 \u003c/h3\u003e\u003c/b\u003e\r\n\r\n## 👨‍💻 Bot development and existence.\r\n\r\n**RSS Feed** returns XML data, which is complicated and cannot use directly in apps and programs other than the website, by using `feedparser` -a  Python package, I have converted the return data into `JSON` format, which is now easily extractable, and usable in building any kind of Apps and Bot (in our case).\r\n\r\nEvery time user calls a command, the bot request data from the API `api.daily.dev/rss/a/*****`  (link vary user to user) and extract data like `username`, `Blog/Article links`, and `title`, and convert into `JSON` and return those data accordingly in the proper pre-structured message, depending on the command which the user input.\r\n\r\n\u003cbr/\u003e\r\n\r\n## 🕹️ Using the Bot:\r\n\r\n\u003ca href=\"https://discord.com/oauth2/authorize?client_id=950398355853430824\u0026permissions=414464661568\u0026scope=bot%20applications.commands\"\u003e\u003cimg align =\"right\" src=\"https://user-images.githubusercontent.com/51878265/158052899-f3e0760e-cef5-4eeb-bf47-1d9e2e5b2ee4.png\"\u003e\u003ca\u003e**Step 1:** First you need to invite the Bot to the server, you can click on the right button for invite. 👉\r\n \r\n**Step 2:** Set your [`daily.dev`](https://daily.dev/) sharable bookmark URL by using command - `/serurl \u003cyour sharable bookmark URL\u003e`\r\n\r\n\u003cdetails\u003e\r\n \r\n \u003csummary\u003e Click here: Tutorial for getting daily.dev Sharable Bookmark (RSS Feed link) \u003c/summary\u003e\r\n\r\nhttps://user-images.githubusercontent.com/51878265/158066794-5129f6f5-15ae-4b99-a764-e3e59bef8631.mp4\r\n \u003ch6\u003eVideo Source - daily.dev Twitter\u003ch6\u003e\r\n  \r\n\u003c/details\u003e\r\n\r\n**Step 3:** It's done, now you can use a different slash command to perform the task.\r\n\r\n\u003cbr/\u003e\r\n\r\n### ✍️ Commands:\r\n\r\nBot use (`/`) as a prefix, that's every command will start with a slash (`/`). Every command is integrated into Discord Slash commands\r\n  \r\n- `/ddrss` - to check whether the bot is working or not.\r\n  \r\n- `/allcmd` - returns a list of all DDRSS Bot commands.\r\n  \r\n- `/serurl \u003cyour sharable bookmark URL\u003e` - will set the user daily dev rss bookmark url.\r\n  \r\n- `/bookmarks` - returns all of the user's bookmarked posts. (latest - 5 post).\r\n  \r\n- `/latestbm` - returns the user's latest bookmarked post.\r\n  \r\n- `/dailydev` - returns a short description about daily.dev\r\n  \r\n - `/searchbm \u003cKeyword\u003e` - search and returns user bookmarked posts matching that specific keyword.\r\n  \r\n  Eg: `/searchbm Open Source`\r\n  \r\n  \r\n## ⭐ Features:\r\n  \r\n  - **User-specific** - By user-specific it means returning data type varies from user to user.\r\n  - **Slash commands** - Uses Slash commands, commands are directly integrated into the Discord message box, we don't need to remember any of the commands. Typing `/` will show up all the commands.\r\n   \r\n  \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/51878265/158960622-766606bc-d7d8-45cb-9f76-a14d90cd0c30.png\"\u003e\u003c/p\u003e\r\n   \r\n  - **Search function** - User can easily find their bookmarked posts, with the simple command `/searchbm \u003cKeyword\u003e`\r\n  - **Error handling** - If a user tried to use the command like `/bm` or `/latestbm` without setting up the URL or setting up the wrong URL, the bot will handle that, and prompt them.\r\n  \r\n  \u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/51878265/158960290-0bd28630-32bd-4b2d-b74f-f614607d1543.png\"\u003e\u003c/p\u003e\r\n\r\n## 📹 Tutorial\r\n\r\nTo get an overview and working of the Bot, please check out the video (By clicking the **Thumbnail/Image** below).\r\n  \r\n  \u003cp align=\"center\"\u003e\u003ca href=\"https://youtu.be/y9EkAZh2TtA\"\u003e\u003cimg height=\"300\" src=\"https://user-images.githubusercontent.com/51878265/158964027-932a81fd-870e-4235-bb40-98ef6f2259d1.png\"\u003e\u003ca\u003e\u003c/p\u003e\r\n   \r\n\r\n## 🖱️ Using the project:\r\n\r\n- Fork this repository\r\n \r\n- Install all the dependencies from [`requirements.txt`](/resources/requirements.txt) file. We can also use the command to install all the dependencies at once.\r\n\r\n```sh\r\npip3 install -r requirements.txt \r\n```\r\n\r\n- Create a `.env` file in the root folder and add your Discord Token and like so, get the keys by creating a bot application in the [Discord Developer Portal](https://discord.com/developers/applications)\r\n   \r\n```txt\r\nDISCORD_TOKEN =   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n```\r\n   \r\n- Invite the bot to the server, with sending message and slash command permissions.\r\n\r\n\u003cdetails\u003e\r\n \r\n \u003csummary\u003eLike this\u003c/summary\u003e\r\n \r\n![Image](https://user-images.githubusercontent.com/51878265/162361445-19b5f99e-6ec4-416c-a44a-461fb5d756a0.png)\r\n\r\n\u003c/details\u003e\r\n\r\n- Run `python3 main.py` in the terminal for running the bot.\r\n  \r\n## 🎯 Aim of the project:\r\n\r\nThis project was built to prove the concept that how **RSS Feed** can be so powerful and useful when we have to share, transfer and use **bulk** of data and also fetch the **latest data/feed** from the source. \r\n\r\n---\r\n   \r\n### 🎉 Winner project of daily.dev RSS Feed Hackathon.\r\n   \r\n\u003cp align =\"center\"\u003e\u003cimg src=https://user-images.githubusercontent.com/51878265/162356966-daa57aed-1e7a-4048-b62b-bddf20b4b72b.png height=\"800\"\u003e\u003c/p\u003e\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradumnasaraf%2Fddrss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpradumnasaraf%2Fddrss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpradumnasaraf%2Fddrss/lists"}