{"id":27386274,"url":"https://github.com/igorkowalczyk/discord-activity","last_synced_at":"2025-04-13T17:18:10.191Z","repository":{"id":103102584,"uuid":"597492641","full_name":"IgorKowalczyk/discord-activity","owner":"IgorKowalczyk","description":"🎮 Deno API for displaying Discord activity data in JSON or SVG","archived":false,"fork":false,"pushed_at":"2025-03-26T14:44:16.000Z","size":725,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-13T17:18:03.677Z","etag":null,"topics":["activity","api","deno","discord"],"latest_commit_sha":null,"homepage":"https://activity.igorkowalczyk.dev","language":"TypeScript","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/IgorKowalczyk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["igorkowalczyk"]}},"created_at":"2023-02-04T18:08:24.000Z","updated_at":"2025-03-26T14:44:20.000Z","dependencies_parsed_at":"2023-08-10T15:24:01.222Z","dependency_job_id":"82e440a6-50ee-4bce-a94f-7f90f771aa7b","html_url":"https://github.com/IgorKowalczyk/discord-activity","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fdiscord-activity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fdiscord-activity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fdiscord-activity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgorKowalczyk%2Fdiscord-activity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgorKowalczyk","download_url":"https://codeload.github.com/IgorKowalczyk/discord-activity/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248750123,"owners_count":21155687,"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":["activity","api","deno","discord"],"created_at":"2025-04-13T17:18:09.502Z","updated_at":"2025-04-13T17:18:10.165Z","avatar_url":"https://github.com/IgorKowalczyk.png","language":"TypeScript","funding_links":["https://github.com/sponsors/igorkowalczyk"],"categories":[],"sub_categories":[],"readme":"![Discord Activity](https://github.com/IgorKowalczyk/discord-activity/assets/49127376/b90fdb11-ede2-4155-a56c-fdded6699d0e)\n\n\u003cdiv align=\"center\"\u003e\n \u003ca aria-label=\"Powered by\" href=\"https://deno.com\"\u003e\n  \u003cimg src=\"https://img.shields.io/static/v1?label=Powered%20by\u0026message=Deno\u0026color=blue\u0026logo=deno\"/\u003e\n \u003c/a\u003e\n \u003ca aria-label=\"Github License\" href=\"https://github.com/igorkowalczyk/discord-activity/blob/main/license.md\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/igorkowalczyk/discord-activity?color=blue\u0026logo=github\u0026label=License\"/\u003e\n \u003c/a\u003e\n \u003ca aria-label=\"Version\" href=\"https://github.com/igorkowalczyk/discord-activity/releases\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/igorkowalczyk/discord-activity?color=blue\u0026logo=github\u0026label=Version\"/\u003e\n \u003c/a\u003e\n \u003cbr/\u003e\n \u003cb\u003e🦕 This is a \u003ca href=\"https://deno.com\"\u003eDeno runtime\u003c/a\u003e application that generates Discord profile cards, presenting users' activity and presence. Using the Discord API via the \u003ca href=\"https://deno.land/x/discordeno\"\u003eDiscordeno\u003c/a\u003e library, the app serves user cards in SVG format.\u003c/b\u003e\n\u003c/div\u003e\n\n---\n\n## 📷 How it looks\n\n![Example image](https://github.com/IgorKowalczyk/discord-activity/assets/49127376/d617abbb-aa2d-4e72-aa80-01c8b9e0c3a3)\n\n\u003e [!IMPORTANT]\n\u003e Current Nitro \u0026 Boosting badges do not work due to Discord API limitations, unless you currently have an animated avatar then the Nitro badge will be displayed correctly.\n\n## ✨ Features\n\n- ✅ Generate user cards with user presence and activities.\n- 🎨 Customize user card appearance by providing query parameters.\n- 🌐 RESTful API to fetch user data and generate user cards.\n- 🚀 Error handling for various scenarios.\n- 🔒 No data tracking and no database required.\n\n## 🚀 Getting Started\n\n**Join our [Discord Server](https://igorkowalczyk.dev/discord)**, without this you will not be able to use the website, Discord bot have to watch your profile and activities for this to work.\n\n\u003e [!IMPORTANT]\n\u003e If you leave the Discord server, the bot will no longer be able to watch your profile and activities, so the user card will not be generated.\n\nThen, in your browser, **go to `https://activity.igorkowalczyk.dev/api/:userId` and replace `:userId` with your Discord user ID**.\n\n**You will be shown a user card with your presence and activities.** If you want to customize the appearance of the user card, you can do so by providing query parameters to the URL which are described in the [Customizations](#-customizations) section.\n\n\u003e [!NOTE]\n\u003e If you don't know your Discord user ID, go to your Discord settings, then to the \"Advanced\" tab, scroll down and enable \"Developer Mode\". Then right-click on your profile and click \"Copy ID\".\n\u003e\n\u003e You can also get raw user data in JSON format by going to `https://activity.igorkowalczyk.dev/api/raw/:userId` and replacing `:userId` with your Discord user ID.\n\n## 📚 API Endpoints\n\n- `/api/:userId`: Generate a user card image with customizable appearance.\n- `/api/raw/:userId`: Get raw user data in JSON format.\n- `/badges/:badge`: Get a Discord badge image by name.\n\n## 🎨 Customizations\n\n\u003e [!NOTE]\n\u003e You can customize the appearance of the user card by providing query parameters to the `/api/:userId` endpoint.\n\n| Parameter          | Description                               | Default                           |\n| ------------------ | ----------------------------------------- | --------------------------------- |\n| `bgColor`          | Background color of the user card.        | `#161a23`                         |\n| `borderRadius`     | Border radius of the user card.           | `10`                              |\n| `idleMessage`      | Message to display when the user is idle. | `There is nothing going on here!` |\n| `hideStatus`       | Hide the status of the user.              | `false`                           |\n| `hideCustomStatus` | Hide the custom status of the user.       | `false`                           |\n| `hideBadges`       | Hide the badges of the user.              | `false`                           |\n\n\u003e [!WARNING]\n\u003e The `bgColor` parameter must be a hexadecimal color code without the `#` symbol. For example, `#161a23` should be `161a23`.\n\n#### 🚀 Example\n\n**URL**\n\n```http\nGET https://activity.igorkowalczyk.dev/api/544164729354977282?bgColor=1b1c1e\u0026borderRadius=0\u0026idleMessage=I'm not doing anything\u0026hideStatus=true\n```\n\n**Query Parameters**\n\n```yaml\nbgColor: \"1b1c1e\"\nborderRadius: 0\nidleMessage: \"I'm not doing anything\"\nhideStatus: true\n```\n\n**Result**\n\n![Generated Image](https://github.com/IgorKowalczyk/discord-activity/assets/49127376/b2dda27f-24fe-4641-99d6-bff3f53bb2f5)\n\n## 🔩 Self Hosting\n\n1. Clone [this repository](https://github.com/igorkowalczyk/discord-activity) `git clone https://github.com/IgorKowalczyk/discord-activity`\n2. Fill environment variables in the `.env` file (see [Environment Variables](#-environment-variables))\n3. Run `deno task dev` to start the project in development mode or `deno task start` to run the project in production mode.\n4. Visit `http://localhost:8080` in your browser\n\n\u003e [!NOTE]\n\u003e Deno will automatically install all the project packages on the first run\n\n## 🔩 Hosting with Deno Deploy\n\n1. Fork [this repository](https://github.com/igorkowalczyk/discord-activity)\n2. Create a new project on [Deno Deploy](https://deno.com/deploy)\n3. Connect your forked repository to the project\n4. Click on the `Deploy` button\n5. Fill environment variables in the project settings (see [Environment Variables](#-environment-variables))\n6. Visit the generated URL in your browser\n\n## 📝 Environment Variables\n\n| Variable      | Description                                                                                         | Default | Required |\n| ------------- | --------------------------------------------------------------------------------------------------- | ------- | -------- |\n| `TOKEN`       | Discord Bot Token from the [Discord Developer Portal](https://discord.com/developers/applications). |         | ✅       |\n| `GUILD_ID`    | Discord Guild ID where the bot will watch the users.                                                |         | ✅       |\n| `INVITE_LINK` | Discord server invite link where the bot is located.                                                |         | ✅       |\n| `PORT`        | Port on which the application will be running.                                                      | `3000`  | ❌       |\n\n\u003e [!NOTE]\n\u003e You can see the `.env.example` file for an example of how to fill in the environment variables.\n\n\u003e [!WARNING]\n\u003e In Deno Deploy, the `PORT` variable is not required, because the port is assigned automatically!\n\n## ⁉️ Issues\n\nIf you come across any errors or have suggestions for improvements, please create a [new issue here](https://github.com/igorkowalczyk/discord-activity/issues) and describe it clearly.\n\n## 📥 Pull Requests\n\nWhen submitting a pull request, please follow these steps:\n\n- Clone [this repository](https://github.com/igorkowalczyk/discord-activity) `https://github.com/IgorKowalczyk/discord-activity.git`\n- Create a branch from `main` and give it a meaningful name (e.g. `my-awesome-new-feature`).\n- Open a [pull request](https://github.com/igorkowalczyk/discord-activity/pulls) on [GitHub](https://github.com/) and clearly describe the feature or fix you are proposing.\n\n## 📋 License\n\nThis project is licensed under the MIT. See the [LICENSE](https://github.com/igorkowalczyk/discord-activity/blob/main/license.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkowalczyk%2Fdiscord-activity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Figorkowalczyk%2Fdiscord-activity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Figorkowalczyk%2Fdiscord-activity/lists"}