@serverkgg/bridge 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/package.json +3 -3
  2. package/src/bot/botCauses.test.ts +292 -0
  3. package/src/bot/botCauses.ts +58 -0
  4. package/src/bot/botDeploy.test.ts +260 -1
  5. package/src/bot/botDeploy.ts +125 -6
  6. package/src/bot/botState.ts +6 -0
  7. package/src/bot/detect/botFrameworks.ts +1 -0
  8. package/src/bot/detect/botInspectWarning.ts +4 -1
  9. package/src/bot/detect/botPackageManager.ts +3 -0
  10. package/src/bot/detect/corpus/alexmubarakshin-ts-telegraf-boilerplate.json +37 -0
  11. package/src/bot/detect/corpus/alsarmad-discord-quran-bot.json +40 -0
  12. package/src/bot/detect/corpus/anasty17-mirror-leech-telegram-bot.json +50 -0
  13. package/src/bot/detect/corpus/anidiotsguide-guidebot.json +36 -0
  14. package/src/bot/detect/corpus/anonymousx1025-anonxmusic.json +45 -0
  15. package/src/bot/detect/corpus/bot-base-telegram-bot-template.json +35 -0
  16. package/src/bot/detect/corpus/bracketed-templates-discordjs.json +40 -0
  17. package/src/bot/detect/corpus/cog-creators-red-discordbot.json +49 -0
  18. package/src/bot/detect/corpus/cranberriez-discord.ts-bot-template.json +35 -0
  19. package/src/bot/detect/corpus/crazycat256-nextcord-bot-template.json +38 -0
  20. package/src/bot/detect/corpus/discord-tickets-bot.json +45 -0
  21. package/src/bot/detect/corpus/edjopato-telegram-typescript-bot-template.json +37 -0
  22. package/src/bot/detect/corpus/haniali3161-bot-adhkar-telegram.json +33 -0
  23. package/src/bot/detect/corpus/hellosverre-discord-ts-template.json +34 -0
  24. package/src/bot/detect/corpus/kevinnovak-discord-bot-typescript-template.json +43 -0
  25. package/src/bot/detect/corpus/kkrypt0nn-python-discord-bot-template.json +41 -0
  26. package/src/bot/detect/corpus/kolezka-telegram-grammy-template.json +37 -0
  27. package/src/bot/detect/corpus/latand-tgbot_template_v3.json +37 -0
  28. package/src/bot/detect/corpus/mahmoudbm77-zekr-telegram-bot.json +36 -0
  29. package/src/bot/detect/corpus/mericcan41-discordjs-v14-template-ts.json +35 -0
  30. package/src/bot/detect/corpus/modmail-dev-modmail.json +52 -0
  31. package/src/bot/detect/corpus/nezdemkovski-telegram-bot-boilerplate.json +39 -0
  32. package/src/bot/detect/corpus/notchum-discord-bot-template.json +39 -0
  33. package/src/bot/detect/corpus/python-discord-bot.json +44 -0
  34. package/src/bot/detect/corpus/python-telegram-bot-rules-bot.json +39 -0
  35. package/src/bot/detect/corpus/rajdave69-pycord-bot-template.json +31 -0
  36. package/src/bot/detect/corpus/rapptz-robodanny.json +36 -0
  37. package/src/bot/detect/corpus/ry2x-typescript-discord.js-v.14-template.json +35 -0
  38. package/src/bot/detect/corpus/saiteja-madha-discord-js-bot.json +45 -0
  39. package/src/bot/detect/corpus/seegreatness-discord.js-for-heroku.json +37 -0
  40. package/src/bot/detect/corpus/serverk-discord-node.json +36 -0
  41. package/src/bot/detect/corpus/serverk-discord-python.json +35 -0
  42. package/src/bot/detect/corpus/serverk-telegram-node.json +36 -0
  43. package/src/bot/detect/corpus/serverk-telegram-python.json +35 -0
  44. package/src/bot/detect/corpus/shuruhatik-quran-radio-bot-discord.json +33 -0
  45. package/src/bot/detect/corpus/skyra-project-skyra.json +46 -0
  46. package/src/bot/detect/corpus/tgbot-collection-ytdlbot.json +41 -0
  47. package/src/bot/detect/corpus/zeriodev-music-bot.json +38 -0
  48. package/src/bot/detect/detect.corpus.test.ts +77 -0
  49. package/src/bot/detect/detect.test.ts +443 -17
  50. package/src/bot/detect/detect.ts +375 -34
  51. package/src/bot/detect/detectResult.ts +4 -0
  52. package/src/bot/detect/detectTable.test.ts +22 -6
  53. package/src/bot/detect/detectTable.ts +187 -19
  54. package/src/bot/detect/detectedVersion.ts +5 -0
  55. package/src/bot/detect/envExample.test.ts +55 -1
  56. package/src/bot/detect/envExample.ts +14 -0
  57. package/src/bot/detect/index.ts +1 -0
  58. package/src/bot/detect/keys.test.ts +32 -1
  59. package/src/bot/detect/keys.ts +15 -0
  60. package/src/bot/detect/serverkJson.test.ts +2 -0
  61. package/src/bot/detect/serverkJson.ts +4 -1
  62. package/src/bot/index.ts +1 -0
  63. package/src/manifest/manifest.ts +2 -1
  64. package/src/modules/bridge.ts +2 -0
  65. package/src/modules/bridgeModule.ts +5 -0
  66. package/src/probes/minecraftPing.test.ts +2 -1
  67. package/src/protocol/bridgeCrash.ts +49 -0
  68. package/src/protocol/bridgeEvents.ts +9 -0
  69. package/src/rcon/rconClient.test.ts +3 -2
  70. package/src/runtime/bridgeDriver.test.ts +45 -0
  71. package/src/runtime/bridgeDriver.ts +25 -0
  72. package/src/runtime/bridgeEvents.ts +2 -0
  73. package/src/runtime/bridgeSupervisor.test.ts +163 -3
  74. package/src/runtime/bridgeSupervisor.ts +42 -1
  75. package/src/runtime/serve.ts +26 -5
@@ -0,0 +1,45 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/discord-tickets/bot",
4
+ "branch": "main",
5
+ "commit": "fe7e6579ae554d95d94f49ec55103a85cf3f2a2d",
6
+ "stars": 1487
7
+ },
8
+ "files": [
9
+ ".all-contributorsrc",
10
+ ".dockerignore",
11
+ ".editorconfig",
12
+ ".gitattributes",
13
+ ".gitignore",
14
+ ".npmrc",
15
+ ".nvmrc",
16
+ "CHANGELOG.md",
17
+ "CONTRIBUTORS.md",
18
+ "Dockerfile",
19
+ "LICENSE",
20
+ "README.md",
21
+ "bun.lock",
22
+ "docker-compose.yml",
23
+ "eslint.config.mjs",
24
+ "jsconfig.json",
25
+ "package.json",
26
+ "src/index.js"
27
+ ],
28
+ "contents": {
29
+ ".nvmrc": "lts/* ",
30
+ "package.json": "{\n\t\"name\": \"@discord-tickets/bot\",\n\t\"version\": \"4.0.52\",\n\t\"private\": \"true\",\n\t\"description\": \"The most popular open-source ticket management bot for Discord.\",\n\t\"main\": \"src/\",\n\t\"scripts\": {\n\t\t\"db.dump\": \"node scripts/dump.mjs\",\n\t\t\"db.prune\": \"node scripts/prune.mjs\",\n\t\t\"db.restore\": \"node scripts/restore.mjs\",\n\t\t\"changelog\": \"conventional-changelog -p angular -i CHANGELOG.md -s\",\n\t\t\"contributors:add\": \"all-contributors add\",\n\t\t\"contributors:generate\": \"all-contributors generate\",\n\t\t\"keygen\": \"node scripts/keygen\",\n\t\t\"lint\": \"eslint src scripts --fix\",\n\t\t\"preinstall\": \"node scripts/preinstall\",\n\t\t\"postinstall\": \"node scripts/postinstall\",\n\t\t\"start\": \"node .\",\n\t\t\"studio\": \"npx prisma studio\",\n\t\t\"test\": \"node scripts/check-i18n\",\n\t\t\"__prepare\": \"husky install\"\n\t},\n\t\"commitlint\": {\n\t\t\"extends\": [\n\t\t\t\"@commitlint/config-conventional\"\n\t\t]\n\t},\n\t\"lint-staged\": {\n\t\t\"**/*.js\": [\n\t\t\t\"npm run lint --\"\n\t\t]\n\t},\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"git+https://github.com/discord-tickets/bot.git\"\n\t},\n\t\"keywords\": [\n\t\t\"discord\",\n\t\t\"tickets\",\n\t\t\"bot\"\n\t],\n\t\"author\": \"eartharoid\",\n\t\"license\": \"GPL-3.0-or-later\",\n\t\"bugs\": {\n\t\t\"url\": \"https://github.com/discord-tickets/bot/issues\"\n\t},\n\t\"homepage\": \"https://discordtickets.app\",\n\t\"engines\": {\n\t\t\"node\": \">=18\"\n\t},\n\t\"dependencies\": {\n\t\t\"@discord-tickets/settings\": \"~2.5.4\",\n\t\t\"@eartharoid/dbf\": \"^0.4.2\",\n\t\t\"@eartharoid/dtf\": \"^2.0.1\",\n\t\t\"@eartharoid/i18n\": \"^1.2.1\",\n\t\t\"@fastify/cookie\": \"^11.0.2\",\n\t\t\"@fastify/jwt\": \"^9.0.4\",\n\t\t\"@fastify/multipart\": \"^9.0.3\",\n\t\t\"@prisma/client\": \"^5.22.0\",\n\t\t\"@sentry/node\": \"^9.41.0\",\n\t\t\"@sentry/profiling-node\": \"^9.38.0\",\n\t\t\"archiver\": \"^7.0.1\",\n\t\t\"boxen\": \"^7.1.1\",\n\t\t\"commander\": \"^12.1.0\",\n\t\t\"cryptr\": \"^6.3.0\",\n\t\t\"discord.js\": \"^14.18.0\",\n\t\t\"dotenv\": \"^16.4.7\",\n\t\t\"fastify\": \"^5.3.2\",\n\t\t\"figlet\": \"^1.8.0\",\n\t\t\"fs-extra\": \"^10.1.0\",\n\t\t\"keyv\": \"^4.5.4\",\n\t\t\"leeks.js\": \"^0.3.0\",\n\t\t\"leekslazylogger\": \"^6.0.0\",\n\t\t\"ms\": \"^2.1.3\",\n\t\t\"mustache\": \"^4.2.0\",\n\t\t\"node-dir\": \"^0.1.17\",\n\t\t\"node-emoji\": \"^1.11.0\",\n\t\t\"object-diffy\": \"^1.0.4\",\n\t\t\"ora\": \"^8.2.0\",\n\t\t\"prisma\": \"^5.22.0\",\n\t\t\"semver\": \"^7.7.1\",\n\t\t\"short-unique-id\": \"^4.4.4\",\n\t\t\"spacetime\": \"^7.7.0\",\n\t\t\"terminal-link\": \"^2.1.1\",\n\t\t\"threads\": \"^1.7.0\",\n\t\t\"unzipper\": \"^0.12.3\",\n\t\t\"yaml\": \"^2.7.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@commitlint/cli\": \"^17.8.1\",\n\t\t\"@commitlint/config-conventional\": \"^17.8.1\",\n\t\t\"@eartharoid/eslint-rules-js\": \"^1.1.0\",\n\t\t\"@eslint/js\": \"^9.21.0\",\n\t\t\"all-contributors-cli\": \"^6.26.1\",\n\t\t\"conventional-changelog-cli\": \"^2.2.2\",\n\t\t\"eslint\": \"^9.21.0\",\n\t\t\"globals\": \"^15.15.0\",\n\t\t\"husky\": \"^8.0.3\",\n\t\t\"lint-staged\": \"^13.3.0\",\n\t\t\"markdown-table\": \"^3.0.4\",\n\t\t\"nodemon\": \"^2.0.22\"\n\t},\n\t\"optionalDependencies\": {\n\t\t\"bufferutil\": \"^4.0.9\",\n\t\t\"erlpack\": \"github:discord/erlpack\",\n\t\t\"utf-8-validate\": \"^5.0.10\",\n\t\t\"zlib-sync\": \"^0.1.9\"\n\t}\n}\n"
31
+ },
32
+ "expected": {
33
+ "runtime": "node",
34
+ "packageManager": "bun",
35
+ "framework": "discord-js",
36
+ "platform": "discord",
37
+ "install": "bun install --frozen-lockfile",
38
+ "build": null,
39
+ "start": "node .",
40
+ "nodeVersion": "18",
41
+ "pythonVersion": null,
42
+ "tokenKey": null,
43
+ "warnings": []
44
+ }
45
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/EdJoPaTo/telegram-typescript-bot-template",
4
+ "branch": "main",
5
+ "commit": "62d56da20fc8f51e4d0e617e299c1d165319c86d",
6
+ "stars": 87
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".editorconfig",
11
+ ".gitattributes",
12
+ ".gitignore",
13
+ "Dockerfile",
14
+ "LICENSE.txt",
15
+ "README.md",
16
+ "copy-template-into-existing-project.sh",
17
+ "package-lock.json",
18
+ "package.json",
19
+ "tsconfig.json"
20
+ ],
21
+ "contents": {
22
+ "package.json": "{\n\t\"name\": \"telegram-typescript-bot-template\",\n\t\"private\": true,\n\t\"version\": \"0.0.0\",\n\t\"license\": \"MIT\",\n\t\"scripts\": {\n\t\t\"start\": \"node --env-file-if-exists=.env --enable-source-maps source/telegram-typescript-bot-template.ts\",\n\t\t\"test\": \"tsc && xo && node --enable-source-maps --test\"\n\t},\n\t\"type\": \"module\",\n\t\"engines\": {\n\t\t\"node\": \">=24\"\n\t},\n\t\"devEngines\": {\n\t\t\"packageManager\": {\n\t\t\t\"name\": \"npm\"\n\t\t}\n\t},\n\t\"dependencies\": {\n\t\t\"@grammyjs/i18n\": \"^1.1.2\",\n\t\t\"@grammyjs/storage-file\": \"^2.5.1\",\n\t\t\"grammy\": \"^1.38.3\",\n\t\t\"grammy-inline-menu\": \"^9.2.0\",\n\t\t\"telegraf-middleware-console-time\": \"^3.0.0\",\n\t\t\"telegram-format\": \"^3.0.0\"\n\t},\n\t\"devDependencies\": {\n\t\t\"@types/node\": \"^24.10.1\",\n\t\t\"typescript\": \"^6.0.2\",\n\t\t\"xo\": \"^1.2.3\"\n\t},\n\t\"xo\": {\n\t\t\"rules\": {\n\t\t\t\"@typescript-eslint/naming-convention\": \"off\",\n\t\t\t\"unicorn/prevent-abbreviations\": \"off\"\n\t\t}\n\t}\n}\n"
23
+ },
24
+ "expected": {
25
+ "runtime": "node",
26
+ "packageManager": "npm",
27
+ "framework": "grammy",
28
+ "platform": "telegram",
29
+ "install": "npm ci",
30
+ "build": null,
31
+ "start": "node --env-file-if-exists=.env --enable-source-maps source/telegram-typescript-bot-template.ts",
32
+ "nodeVersion": "24",
33
+ "pythonVersion": null,
34
+ "tokenKey": null,
35
+ "warnings": []
36
+ }
37
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/haniali3161/Bot-Adhkar-telegram",
4
+ "branch": "main",
5
+ "commit": "3695da9b3d7b649f5899ab2c4ded75eef77d364e",
6
+ "stars": 0
7
+ },
8
+ "files": [
9
+ "README.md",
10
+ "adhkar.png",
11
+ "index.js",
12
+ "package.json",
13
+ "renovate.json"
14
+ ],
15
+ "contents": {
16
+ "package.json": "{\n \"name\": \"bot-adkhar\",\n \"version\": \"1.0.0\",\n \"description\": \"bot adkhar whatsapp\",\n \"main\": \"index.js\",\n \"directories\": {\n \"lib\": \"lib\"\n },\n \"dependencies\": {\n \"figlet\": \"1.5.2\",\n \"fs-extra\": \"10.1.0\",\n \"telegraf\": \"4.7.0\"\n },\n \"author\": \"ryan almalki\",\n \"license\": \"ISC\"\n}\n"
17
+ },
18
+ "expected": {
19
+ "runtime": "node",
20
+ "packageManager": "npm",
21
+ "framework": "telegraf",
22
+ "platform": "telegram",
23
+ "install": "npm install",
24
+ "build": null,
25
+ "start": "node index.js",
26
+ "nodeVersion": null,
27
+ "pythonVersion": null,
28
+ "tokenKey": null,
29
+ "warnings": [
30
+ "no-lockfile"
31
+ ]
32
+ }
33
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/hellosverre/discord-ts-template",
4
+ "branch": "main",
5
+ "commit": "9e700c5d3f7ee9d3d57c96b54c74e67935363e54",
6
+ "stars": 1
7
+ },
8
+ "files": [
9
+ ".env.example",
10
+ ".gitignore",
11
+ "README.md",
12
+ "package-lock.json",
13
+ "package.json",
14
+ "src/index.ts",
15
+ "tsconfig.json"
16
+ ],
17
+ "contents": {
18
+ ".env.example": "# ==============================================================================\n# DISCORD BOT CREDENTIALS\n# ==============================================================================\n# Get these from https://discord.com/developers/applications\n# ==============================================================================\n\n# Your bot's token. KEEP THIS SECRET — never commit it.\nDISCORD_TOKEN=your_bot_token_here\n\n# Your application's client ID (also called Application ID)\nCLIENT_ID=your_client_id_here\n\n# The guild ID used for development command deployment (instant updates).\n# Leave empty to deploy globally (takes up to 1 hour to propagate).\nDEV_GUILD_ID=your_dev_guild_id_here\n\n# ==============================================================================\n# ENVIRONMENT\n# ==============================================================================\n\n# \"development\" | \"production\"\nNODE_ENV=development\n",
19
+ "package.json": "{\n \"name\": \"discord-ts-template\",\n \"version\": \"1.0.0\",\n \"description\": \"A production-grade Discord.js v14 TypeScript template with advanced command, event, and component handling.\",\n \"main\": \"dist/index.js\",\n \"type\": \"module\",\n \"scripts\": {\n \"build\": \"tsc\",\n \"start\": \"node dist/index.js\",\n \"dev\": \"tsx watch src/index.ts\",\n \"deploy\": \"tsx src/deploy-commands.ts\",\n \"deploy:global\": \"tsx src/deploy-commands.ts --global\",\n \"deploy:clear\": \"tsx src/deploy-commands.ts --clear\",\n \"deploy:force\": \"tsx src/deploy-commands.ts --force\",\n \"lint\": \"eslint src --ext .ts\",\n \"format\": \"prettier --write \\\"src/**/*.ts\\\"\"\n },\n \"keywords\": [\n \"discord\",\n \"discord.js\",\n \"typescript\",\n \"template\",\n \"bot\"\n ],\n \"author\": \"\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"discord.js\": \"^14.16.3\",\n \"dotenv\": \"^16.4.5\"\n },\n \"devDependencies\": {\n \"@types/node\": \"^22.9.0\",\n \"tsx\": \"^4.19.2\",\n \"typescript\": \"^5.6.3\"\n },\n \"engines\": {\n \"node\": \">=18.0.0\"\n }\n}\n"
20
+ },
21
+ "expected": {
22
+ "runtime": "node",
23
+ "packageManager": "npm",
24
+ "framework": "discord-js",
25
+ "platform": "discord",
26
+ "install": "npm ci",
27
+ "build": "npm run build",
28
+ "start": "node dist/index.js",
29
+ "nodeVersion": "18",
30
+ "pythonVersion": null,
31
+ "tokenKey": "DISCORD_TOKEN",
32
+ "warnings": []
33
+ }
34
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/KevinNovak/Discord-Bot-TypeScript-Template",
4
+ "branch": "master",
5
+ "commit": "7b331a160b0c8573872d911569380286b553ba10",
6
+ "stars": 643
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".gitbook.yaml",
11
+ ".gitignore",
12
+ ".prettierignore",
13
+ ".prettierrc.json",
14
+ "CLAUDE.md",
15
+ "Dockerfile",
16
+ "LEGAL.md",
17
+ "LICENSE",
18
+ "README.md",
19
+ "eslint.config.mjs",
20
+ "package-lock.json",
21
+ "package.json",
22
+ "process.json",
23
+ "tsconfig.json",
24
+ "tsconfig.test.json",
25
+ "vitest.config.ts"
26
+ ],
27
+ "contents": {
28
+ "package.json": "{\n \"name\": \"my-bot\",\n \"version\": \"1.0.0\",\n \"author\": \"Kevin Novak\",\n \"description\": \"A discord.js bot template written with TypeScript\",\n \"license\": \"MIT\",\n \"private\": true,\n \"engines\": {\n \"node\": \">=18.0.0\"\n },\n \"type\": \"module\",\n \"exports\": [\n \"./dist/start-bot.js\",\n \"./dist/start-manager.js\"\n ],\n \"scripts\": {\n \"lint\": \"eslint . --cache --ext .js,.jsx,.ts,.tsx\",\n \"lint:fix\": \"eslint . --fix --cache --ext .js,.jsx,.ts,.tsx\",\n \"format\": \"prettier --check .\",\n \"format:fix\": \"prettier --write .\",\n \"clean\": \"git clean -xdf --exclude=\\\"/config/**/*\\\"\",\n \"clean:dry\": \"git clean -xdf --exclude=\\\"/config/**/*\\\" --dry-run\",\n \"build\": \"tsc --project tsconfig.json\",\n \"commands:view\": \"npm run build && node --enable-source-maps dist/start-bot.js commands view\",\n \"commands:register\": \"npm run build && node --enable-source-maps dist/start-bot.js commands register\",\n \"commands:rename\": \"npm run build && node --enable-source-maps dist/start-bot.js commands rename\",\n \"commands:delete\": \"npm run build && node --enable-source-maps dist/start-bot.js commands delete\",\n \"commands:clear\": \"npm run build && node --enable-source-maps dist/start-bot.js commands clear\",\n \"start\": \"npm run start:bot\",\n \"start:bot\": \"npm run build && node --enable-source-maps dist/start-bot.js\",\n \"start:manager\": \"npm run build && node --enable-source-maps dist/start-manager.js\",\n \"start:pm2\": \"npm run build && npm run pm2:start\",\n \"pm2:start\": \"pm2 start process.json\",\n \"pm2:stop\": \"pm2 stop process.json\",\n \"pm2:delete\": \"pm2 delete process.json\",\n \"test\": \"vitest run\",\n \"test:watch\": \"vitest\",\n \"test:coverage\": \"vitest run --coverage\"\n },\n \"dependencies\": {\n \"@discordjs/rest\": \"^2.6.0\",\n \"class-transformer\": \"0.5.1\",\n \"class-validator\": \"0.14.2\",\n \"cron-parser\": \"^5.3.0\",\n \"discord.js\": \"^14.22.1\",\n \"discord.js-rate-limiter\": \"1.3.2\",\n \"express\": \"5.1.0\",\n \"filesize\": \"11.0.2\",\n \"linguini\": \"1.3.1\",\n \"luxon\": \"3.7.1\",\n \"node-fetch\": \"3.3.2\",\n \"node-schedule\": \"2.1.1\",\n \"pino\": \"9.9.0\",\n \"pino-pretty\": \"13.1.1\",\n \"pm2\": \"^6.0.8\",\n \"reflect-metadata\": \"^0.2.2\",\n \"remove-markdown\": \"0.6.2\",\n \"vitest-mock-extended\": \"^3.1.0\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.33.0\",\n \"@types/express\": \"5.0.3\",\n \"@types/luxon\": \"3.7.1\",\n \"@types/node\": \"^24.3.0\",\n \"@types/node-schedule\": \"2.1.8\",\n \"@types/remove-markdown\": \"0.3.4\",\n \"@vitest/coverage-v8\": \"^3.2.4\",\n \"eslint\": \"^9.33.0\",\n \"eslint-plugin-import\": \"^2.32.0\",\n \"eslint-plugin-unicorn\": \"^60.0.0\",\n \"prettier\": \"^3.6.2\",\n \"typescript\": \"^5.9.2\",\n \"typescript-eslint\": \"^8.40.0\",\n \"vitest\": \"^3.2.4\"\n }\n}\n"
29
+ },
30
+ "expected": {
31
+ "runtime": "node",
32
+ "packageManager": "npm",
33
+ "framework": "discord-js",
34
+ "platform": "discord",
35
+ "install": "npm ci",
36
+ "build": "npm run build",
37
+ "start": "npm run start:bot",
38
+ "nodeVersion": "18",
39
+ "pythonVersion": null,
40
+ "tokenKey": null,
41
+ "warnings": []
42
+ }
43
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/kkrypt0nn/Python-Discord-Bot-Template",
4
+ "branch": "main",
5
+ "commit": "ec510ff0939c8a9e8a273676abcd208fa5eddb2a",
6
+ "stars": 1084
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".env.example",
11
+ ".gitignore",
12
+ "CODE_OF_CONDUCT.md",
13
+ "CONTRIBUTING.md",
14
+ "Dockerfile",
15
+ "LICENSE.md",
16
+ "README.md",
17
+ "UPDATES.md",
18
+ "bot.py",
19
+ "docker-compose.yml",
20
+ "requirements.txt"
21
+ ],
22
+ "contents": {
23
+ ".env.example": "TOKEN=YOUR_BOT_TOKEN_HERE\nPREFIX=YOUR_BOT_PREFIX_HERE\nINVITE_LINK=YOUR_BOT_INVITE_LINK_HERE",
24
+ "requirements.txt": "aiohttp\naiosqlite\ndiscord.py==2.7.1\npython-dotenv"
25
+ },
26
+ "expected": {
27
+ "runtime": "python",
28
+ "packageManager": "pip",
29
+ "framework": "discord-py",
30
+ "platform": "discord",
31
+ "install": "uv pip install -r requirements.txt",
32
+ "build": null,
33
+ "start": "python bot.py",
34
+ "nodeVersion": null,
35
+ "pythonVersion": null,
36
+ "tokenKey": "TOKEN",
37
+ "warnings": [
38
+ "unpinned-requirements"
39
+ ]
40
+ }
41
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/kolezka/telegram-grammy-template",
4
+ "branch": "main",
5
+ "commit": "be1ee268eff4221f43939f656f4a3eef447a38d0",
6
+ "stars": 2
7
+ },
8
+ "files": [
9
+ ".gitignore",
10
+ ".nvmrc",
11
+ "README.md",
12
+ "package.json",
13
+ "pnpm-lock.yaml",
14
+ "pnpm-workspace.yaml",
15
+ "tsconfig.base.json",
16
+ "tsconfig.json"
17
+ ],
18
+ "contents": {
19
+ ".nvmrc": "lts/*",
20
+ "package.json": "{\n \"scripts\": {\n \"bot\": \"pnpm --filter @kolezka/bot\",\n \"db\": \"pnpm --filter @kolezka/database\"\n },\n \"packageManager\": \"pnpm@10.28.2\"\n}\n"
21
+ },
22
+ "expected": {
23
+ "runtime": "node",
24
+ "packageManager": "pnpm",
25
+ "framework": null,
26
+ "platform": null,
27
+ "install": "corepack pnpm install --frozen-lockfile",
28
+ "build": null,
29
+ "start": null,
30
+ "nodeVersion": null,
31
+ "pythonVersion": null,
32
+ "tokenKey": null,
33
+ "warnings": [
34
+ "no-start"
35
+ ]
36
+ }
37
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/Latand/tgbot_template_v3",
4
+ "branch": "master",
5
+ "commit": "16edcd192c07b8de1dadea4d68b4704add094764",
6
+ "stars": 174
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".env.dist",
11
+ ".gitignore",
12
+ "Dockerfile",
13
+ "README.MD",
14
+ "alembic.ini",
15
+ "bot.py",
16
+ "docker-compose.yml",
17
+ "requirements.txt"
18
+ ],
19
+ "contents": {
20
+ "requirements.txt": "aiogram~=3.0\nenvirons~=9.0\nredis\nbetterlogging\n\n# # For enabling api:\n# backoff\n# ujson\n# yarl\n\n# # For PostgreSQL sqlalchemy + alembic:\n# sqlalchemy~=2.0\n# alembic~=1.0\n# asyncpg\n"
21
+ },
22
+ "expected": {
23
+ "runtime": "python",
24
+ "packageManager": "pip",
25
+ "framework": "aiogram",
26
+ "platform": "telegram",
27
+ "install": "uv pip install -r requirements.txt",
28
+ "build": null,
29
+ "start": "python bot.py",
30
+ "nodeVersion": null,
31
+ "pythonVersion": null,
32
+ "tokenKey": null,
33
+ "warnings": [
34
+ "unpinned-requirements"
35
+ ]
36
+ }
37
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/mahmoudbm77/zekr-telegram-bot",
4
+ "branch": "main",
5
+ "commit": "d801cf4e1b55ed7f1ef5d6d61077f9944b82e1ed",
6
+ "stars": 0
7
+ },
8
+ "files": [
9
+ ".gitignore",
10
+ "Procfile",
11
+ "README.md",
12
+ "adhkar.py",
13
+ "bot.py",
14
+ "quran.py",
15
+ "requirements.txt",
16
+ "runtime.txt"
17
+ ],
18
+ "contents": {
19
+ "Procfile": "worker: python bot.py",
20
+ "requirements.txt": "anyio==4.15.1\r\ncertifi==2026.7.22\r\ncharset-normalizer==3.5.1\r\nh11==0.16.0\r\nhttpcore==1.0.9\r\nhttpx==0.28.1\r\nidna==3.19\r\npython-dotenv==1.2.3\r\npython-telegram-bot==22.8\r\nrequests==2.34.2\r\ntyping_extensions==4.16.0\r\nurllib3==2.8.0\r\n",
21
+ "runtime.txt": "python-3.13.15"
22
+ },
23
+ "expected": {
24
+ "runtime": "python",
25
+ "packageManager": "pip",
26
+ "framework": "python-telegram-bot",
27
+ "platform": "telegram",
28
+ "install": "uv pip install -r requirements.txt",
29
+ "build": null,
30
+ "start": "python bot.py",
31
+ "nodeVersion": null,
32
+ "pythonVersion": "3.13",
33
+ "tokenKey": null,
34
+ "warnings": []
35
+ }
36
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/MericcaN41/discordjs-v14-template-ts",
4
+ "branch": "main",
5
+ "commit": "2f730fd744d1dfcd58f5326a6e6c1a30cc02bd3f",
6
+ "stars": 177
7
+ },
8
+ "files": [
9
+ ".gitignore",
10
+ "README.md",
11
+ "build.js",
12
+ "package-lock.json",
13
+ "package.json",
14
+ "src/index.ts",
15
+ "tsconfig.json"
16
+ ],
17
+ "contents": {
18
+ "package.json": "{\n \"name\": \"discordjs-v14-template-ts\",\n \"version\": \"1.0.0\",\n \"description\": \"\",\n \"main\": \"index.js\",\n \"scripts\": {\n \"start\": \"cls && node build/index.js\",\n \"build\": \"cls && node build.js\"\n },\n \"keywords\": [],\n \"author\": \"MericcaN41\",\n \"license\": \"ISC\",\n \"dependencies\": {\n \"@discordjs/rest\": \"^1.1.0\",\n \"@types/node\": \"^18.7.14\",\n \"chalk\": \"^4.1.2\",\n \"discord.js\": \"14.3.0\",\n \"dotenv\": \"^16.0.2\",\n \"mongoose\": \"^6.5.4\"\n },\n \"devDependencies\": {\n \"typescript\": \"^4.8.2\"\n },\n \"overrides\": {\n \"discord-api-types\": \"0.37.20\"\n }\n}\n"
19
+ },
20
+ "expected": {
21
+ "runtime": "node",
22
+ "packageManager": "npm",
23
+ "framework": "discord-js",
24
+ "platform": "discord",
25
+ "install": "npm ci",
26
+ "build": "npm run build",
27
+ "start": "cls && node build/index.js",
28
+ "nodeVersion": null,
29
+ "pythonVersion": null,
30
+ "tokenKey": null,
31
+ "warnings": [
32
+ "windows-command"
33
+ ]
34
+ }
35
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/modmail-dev/Modmail",
4
+ "branch": "master",
5
+ "commit": "49330b4a0eb1004af3085c0683e8d09608109277",
6
+ "stars": 1698
7
+ },
8
+ "files": [
9
+ ".bandit_baseline.json",
10
+ ".dockerignore",
11
+ ".env.example",
12
+ ".gitattributes",
13
+ ".gitignore",
14
+ "CHANGELOG.md",
15
+ "Dockerfile",
16
+ "LICENSE",
17
+ "PRIVACY.md",
18
+ "Pipfile",
19
+ "Pipfile.lock",
20
+ "Procfile",
21
+ "README.md",
22
+ "SPONSORS.json",
23
+ "app.json",
24
+ "bot.py",
25
+ "docker-compose.yml",
26
+ "modmail.sh",
27
+ "pyproject.toml",
28
+ "requirements.txt",
29
+ "runtime.txt"
30
+ ],
31
+ "contents": {
32
+ ".env.example": "TOKEN=MyBotToken\nLOG_URL=https://logviewername.herokuapp.com/\nGUILD_ID=1234567890\nOWNERS=Owner1ID,Owner2ID,Owner3ID\nCONNECTION_URI=mongodb+srv://mongodburi\nDISABLE_AUTOUPDATES=true",
33
+ "Pipfile": "[[source]]\nname = \"pypi\"\nurl = \"https://pypi.org/simple\"\nverify_ssl = true\n\n[dev-packages]\nbandit = \">=1.7.5\"\nblack = \"==23.11.0\"\npylint = \"==3.0.2\"\ntomli = \"==2.2.1\" # Needed for black on Python < 3.11\n\n[packages]\naiohttp = \"==3.13.2\"\nasync-timeout = {version = \"==5.0.1\", markers = \"python_version < '3.11'\"} # Required by aiohttp\ntyping-extensions = \">=4.12.2\" # Required by aiohttp\ncolorama = \"==0.4.6\"\n\"discord.py\" = {version = \"==2.6.3\", extras = [\"speed\"]}\nemoji = \"==2.8.0\"\nisodate = \"==0.6.1\"\nmotor = \"==3.7.1\"\nnatural = \"==0.2.0\" # Why is this needed?\npackaging = \"==23.2\"\nparsedatetime = \"==2.6\"\ndnspython = \">=2.8,<3\" # Required by pymongo\npymongo = \">=4.9,<5\" # Required by motor\npython-dateutil = \"==2.8.2\"\npython-dotenv = \"==1.0.0\"\nuvloop = {version = \">=0.19.0\", markers = \"sys_platform != 'win32'\"}\nlottie = {version = \"==0.7.2\", extras = [\"pdf\"]}\nsetuptools = \"*\" # Needed for lottie\nrequests = \"==2.31.0\"\n\n[scripts]\nbot = \"python bot.py\"\n",
34
+ "Procfile": "worker: python bot.py\n",
35
+ "pyproject.toml": "[tool.black]\nline-length = \"110\"\ntarget-version = ['py310']\ninclude = '\\.pyi?$'\nextend-exclude = '''\n(\n /(\n \\.eggs\n | \\.git\n | \\.venv\n | venv\n | venv2\n | _build\n | build\n | dist\n | plugins\n | temp\n )/\n)\n'''\n\n[tool.poetry]\nname = 'Modmail'\nversion = '4.2.1'\ndescription = \"Modmail is similar to Reddit's Modmail, both in functionality and purpose. It serves as a shared inbox for server staff to communicate with their users in a seamless way.\"\nlicense = 'AGPL-3.0-only'\nauthors = [\n 'kyb3r <noemail@example.com>',\n '4jr <noemail@example.com>',\n 'Taki <noemail@example.com>'\n]\nreadme = 'README.md'\nrepository = 'https://github.com/modmail-dev/modmail'\nhomepage = 'https://github.com/modmail-dev/modmail'\nkeywords = ['discord', 'modmail']\n\n[tool.pylint.format]\nmax-line-length = \"110\"\n",
36
+ "requirements.txt": "-i https://pypi.org/simple\naiodns==3.5.0; python_version >= '3.9'\naiohappyeyeballs==2.6.1; python_version >= '3.9'\naiohttp==3.13.2; python_version >= '3.9'\naiosignal==1.4.0; python_version >= '3.9'\nasync-timeout==5.0.1; python_version < '3.11'\nattrs==25.4.0; python_version >= '3.9'\naudioop-lts==0.2.2; python_version >= '3.13'\nbrotli==1.2.0\ncairocffi==1.7.1; python_version >= '3.8'\ncairosvg==2.8.2; python_version >= '3.9'\ncertifi==2025.10.5; python_version >= '3.7'\ncffi==2.0.0; python_version >= '3.9'\ncharset-normalizer==3.4.4; python_version >= '3.7'\ncolorama==0.4.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'\ncssselect2==0.8.0; python_version >= '3.9'\ndefusedxml==0.7.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'\ndiscord.py[speed]==2.6.3; python_version >= '3.8'\ndnspython==2.8.0; python_version >= '3.10'\nemoji==2.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'\nfrozenlist==1.8.0; python_version >= '3.9'\nidna==3.11; python_version >= '3.8'\nisodate==0.6.1\nlottie[pdf]==0.7.2; python_version >= '3'\nmotor==3.7.1; python_version >= '3.9'\nmultidict==6.7.0; python_version >= '3.9'\nnatural==0.2.0\norjson==3.11.4; python_version >= '3.9'\npackaging==23.2; python_version >= '3.7'\nparsedatetime==2.6\npillow==12.0.0; python_version >= '3.10'\npropcache==0.4.1; python_version >= '3.9'\npycares==4.11.0; python_version >= '3.9'\npycparser==2.23; python_version >= '3.8'\npymongo==4.15.3; python_version >= '3.9'\npython-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'\npython-dotenv==1.0.0; python_version >= '3.8'\nrequests==2.31.0; python_version >= '3.7'\nsetuptools==80.9.0; python_version >= '3.9'\nsix==1.17.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'\ntinycss2==1.4.0; python_version >= '3.8'\ntyping-extensions==4.15.0; python_version >= '3.9'\nurllib3==2.5.0; python_version >= '3.9'\nuvloop==0.22.1; sys_platform != 'win32'\nwebencodings==0.5.1\nyarl==1.22.0; python_version >= '3.9'\nzstandard==0.25.0; python_version >= '3.9'\n",
37
+ "runtime.txt": "python-3.10.7\n"
38
+ },
39
+ "expected": {
40
+ "runtime": "python",
41
+ "packageManager": "pip",
42
+ "framework": "discord-py",
43
+ "platform": "discord",
44
+ "install": "uv pip install -r requirements.txt",
45
+ "build": null,
46
+ "start": "python bot.py",
47
+ "nodeVersion": null,
48
+ "pythonVersion": "3.10",
49
+ "tokenKey": "TOKEN",
50
+ "warnings": []
51
+ }
52
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/nezdemkovski/telegram-bot-boilerplate",
4
+ "branch": "master",
5
+ "commit": "7855134e627277784f0e36494e7cea2f2fd5b9e9",
6
+ "stars": 34
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".editorconfig",
11
+ ".env-sample",
12
+ ".gitignore",
13
+ ".prettierrc",
14
+ "Dockerfile",
15
+ "LICENSE",
16
+ "README.md",
17
+ "bun.lock",
18
+ "eslint.config.mjs",
19
+ "package.json",
20
+ "src/index.ts",
21
+ "tsconfig.json"
22
+ ],
23
+ "contents": {
24
+ "package.json": "{\n \"name\": \"telegram-bot-boilerplate\",\n \"version\": \"1.0.0\",\n \"description\": \"Telegram Bot Boilerplate\",\n \"author\": \"Yuri Nezdemkovski <yuri@nezdemkovski.com> (https://nezdemkovski.com/)\",\n \"homepage\": \"https://github.com/nezdemkovski/telegram-bot-boilerplate\",\n \"license\": \"MIT\",\n \"engines\": {\n \"bun\": \">=1\"\n },\n \"dependencies\": {\n \"grammy\": \"^1.40.0\"\n },\n \"devDependencies\": {\n \"bun-types\": \"1.3.9\",\n \"eslint\": \"^10.0.1\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"prettier\": \"^3.8.1\",\n \"typescript\": \"^5.9.3\",\n \"typescript-eslint\": \"^8.56.0\"\n },\n \"scripts\": {\n \"dev\": \"bun --watch src/index.ts\",\n \"build\": \"bun build src/index.ts --outdir dist --target bun --minify\",\n \"start\": \"NODE_ENV=production bun dist/index.js\",\n \"typecheck\": \"tsc --noEmit\",\n \"lint\": \"eslint src\",\n \"format\": \"prettier --write 'src/**/*.ts'\"\n }\n}\n"
25
+ },
26
+ "expected": {
27
+ "runtime": "node",
28
+ "packageManager": "bun",
29
+ "framework": "grammy",
30
+ "platform": "telegram",
31
+ "install": "bun install --frozen-lockfile",
32
+ "build": "bun run build",
33
+ "start": "NODE_ENV=production bun dist/index.js",
34
+ "nodeVersion": null,
35
+ "pythonVersion": null,
36
+ "tokenKey": null,
37
+ "warnings": []
38
+ }
39
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/notchum/discord-bot-template",
4
+ "branch": "main",
5
+ "commit": "832d4a479f391b86796753dc121657408ab37364",
6
+ "stars": 0
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".env.template",
11
+ ".gitignore",
12
+ ".python-version",
13
+ "Dockerfile",
14
+ "LICENSE",
15
+ "README.md",
16
+ "bot.py",
17
+ "launcher.py",
18
+ "pyproject.toml",
19
+ "uv.lock"
20
+ ],
21
+ "contents": {
22
+ ".env.template": "# RENAME THIS FILE TO .env (remove the .template extension). \n# PLACE ALL API KEYS/INFO IMMEDIATELY AFTER THE EQUAL SIGN ('=') WITH NO SPACES OR QUOTATION MARKS.\n\n# Enable debug mode (True/False)\nDEBUG=\n\n# Enable disnake's logs (True/False)\nDISNAKE_LOGGING=\n\n# Enable test mode (True/False)\nTEST_MODE=\n\n# Follow disnake's instructions at https://docs.disnake.dev/en/stable/discord.html\n# After Step 7 under \"Creating a Bot Account\", paste the token here\nDISCORD_BOT_TOKEN=\n\n# The list of IDs of the Discord guilds where you’re going to test your application\n# commands (comma-separated integers)\n# [Example: 121212121212,343434343434,565656565656]\nTEST_GUILDS=\n\n# The URI of the MongoDB database\nDATABASE_URI=\n\n# Follow directions at https://api.nasa.gov/\n# The key for NASA's public API (not required for bot functionality)\nNASA_KEY=\n",
23
+ ".python-version": "3.12\n",
24
+ "pyproject.toml": "[project]\nname = \"discord-bot-template\"\nversion = \"0.0.1\"\ndescription = \"discord bot template w/ disnake\"\nreadme = \"README.md\"\nrequires-python = \">=3.12\"\ndependencies = [\n \"aiofiles>=25.1.0\",\n \"aiohttp>=3.13.1\",\n \"beanie>=2.0.0\",\n \"disnake>=2.11.0\",\n \"loguru>=0.7.3\",\n \"python-dotenv>=1.1.1\",\n]\n"
25
+ },
26
+ "expected": {
27
+ "runtime": "python",
28
+ "packageManager": "uv",
29
+ "framework": "disnake",
30
+ "platform": "discord",
31
+ "install": "uv sync --locked --no-dev",
32
+ "build": null,
33
+ "start": "python bot.py",
34
+ "nodeVersion": null,
35
+ "pythonVersion": "3.12",
36
+ "tokenKey": "DISCORD_BOT_TOKEN",
37
+ "warnings": []
38
+ }
39
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/python-discord/bot",
4
+ "branch": "main",
5
+ "commit": "ab21eef84938517d2bc6d99ab942784a1187695f",
6
+ "stars": 1608
7
+ },
8
+ "files": [
9
+ ".dockerignore",
10
+ ".git-blame-ignore-revs",
11
+ ".gitattributes",
12
+ ".gitignore",
13
+ ".pre-commit-config.yaml",
14
+ "CODE_OF_CONDUCT.md",
15
+ "CONTRIBUTING.md",
16
+ "Dockerfile",
17
+ "LICENSE",
18
+ "LICENSE-THIRD-PARTY",
19
+ "README.md",
20
+ "SECURITY.md",
21
+ "bot/__main__.py",
22
+ "bot/bot.py",
23
+ "botstrap.py",
24
+ "docker-compose.yml",
25
+ "pyproject.toml",
26
+ "uv.lock"
27
+ ],
28
+ "contents": {
29
+ "pyproject.toml": "[project]\nauthors = [\n {name = \"Python Discord\", email = \"info@pythondiscord.com\"},\n]\nlicense = {text = \"MIT\"}\nrequires-python = \"==3.14.*\"\ndependencies = [\n \"pydis-core[all]==11.8.0\",\n \"aiohttp==3.13.4\",\n \"arrow==1.4.0\",\n \"beautifulsoup4==4.14.2\",\n \"deepdiff==9.0.0\",\n \"emoji==2.15.0\",\n \"feedparser==6.0.12\",\n \"lxml==6.1.0\",\n \"markdownify==1.2.0\",\n \"pydantic==2.12.3\",\n \"pydantic-settings==2.11.0\",\n \"python-dateutil==2.9.0.post0\",\n \"python-frontmatter==1.1.0\",\n \"rapidfuzz==3.14.1\",\n \"regex==2026.3.32\",\n \"sentry-sdk==2.43.0\",\n \"tenacity==9.1.2\",\n \"tldextract==5.3.0\",\n \"yarl==1.22.0\",\n]\nname = \"bot\"\nversion = \"1.0.1\"\ndescription = \"The community bot for the Python Discord community.\"\n\n[tool.uv]\nprerelease = \"allow\"\nrequired-version = \">=0.9.7\"\n\n[dependency-groups]\ndev = [\n \"coverage==7.11.0\",\n \"httpx==0.28.1\",\n \"pre-commit==4.3.0\",\n \"pytest==8.4.2\",\n \"pytest-cov==7.0.0\",\n \"pytest-subtests==0.14.1\",\n \"pytest-xdist==3.8.0\",\n \"ruff==0.14.2\",\n \"taskipy==1.14.1\",\n]\n\n[tool.taskipy.tasks]\nstart = \"python -m bot\"\nconfigure = \"python -m botstrap\"\nlint = \"pre-commit run --all-files\"\nprecommit = \"pre-commit install\"\nbuild = \"docker build -t ghcr.io/python-discord/bot:latest -f Dockerfile .\"\npush = \"docker push ghcr.io/python-discord/bot:latest\"\ntest = \"pytest -n auto --ff\"\nretest = \"pytest -n auto --lf\"\ntest-cov = \"pytest -n auto --cov-report= --cov\"\nhtml = \"coverage html\"\nreport = \"coverage report\"\n\n[tool.coverage.run]\nbranch = true\nsource_pkgs = [\"bot\"]\nsource = [\"tests\"]\n\n[tool.ruff]\nextend-exclude = [\".cache\"]\nline-length = 120\noutput-format = \"concise\"\nunsafe-fixes = true\n\n[tool.ruff.lint]\nselect = [\"ANN\", \"B\", \"C4\", \"D\", \"DTZ\", \"E\", \"F\", \"G\", \"I\", \"ISC\", \"INT\", \"LOG\", \"N\", \"PGH\", \"PIE\", \"Q\", \"RET\", \"RSE\", \"RUF\", \"S\", \"SIM\", \"T20\", \"TID\", \"UP\", \"W\"]\nignore = [\n \"ANN002\", \"ANN003\", \"ANN204\", \"ANN206\", \"ANN401\",\n \"B904\",\n \"C401\", \"C408\",\n \"D100\", \"D104\", \"D105\", \"D107\", \"D203\", \"D212\", \"D214\", \"D215\", \"D301\",\n \"D400\", \"D401\", \"D402\", \"D404\", \"D405\", \"D406\", \"D407\", \"D408\", \"D409\", \"D410\", \"D411\", \"D412\", \"D413\", \"D414\", \"D416\", \"D417\",\n \"E731\",\n \"RET504\",\n \"RUF005\", \"RUF012\", \"RUF015\",\n \"S311\",\n \"SIM102\", \"SIM108\",\n]\n\n[tool.ruff.lint.flake8-tidy-imports.banned-api]\n\"__future__.annotations\".msg = \"No longer required in Python 3.14+, see https://docs.python.org/3/reference/compound_stmts.html#annotations\"\n\n[tool.ruff.lint.isort]\norder-by-type = false\ncase-sensitive = true\ncombine-as-imports = true\n\n[tool.ruff.lint.per-file-ignores]\n\"tests/*\" = [\"ANN\", \"D\"]\n\n[tool.pytest.ini_options]\n# We don't use nose style tests so disable them in pytest.\n# This stops pytest from running functions named `setup` in test files.\n# See https://github.com/python-discord/bot/pull/2229#issuecomment-1204436420\naddopts = \"-p no:nose\"\n"
30
+ },
31
+ "expected": {
32
+ "runtime": "python",
33
+ "packageManager": "uv",
34
+ "framework": null,
35
+ "platform": null,
36
+ "install": "uv sync --locked --no-dev",
37
+ "build": null,
38
+ "start": "python -m bot",
39
+ "nodeVersion": null,
40
+ "pythonVersion": null,
41
+ "tokenKey": null,
42
+ "warnings": []
43
+ }
44
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "source": {
3
+ "url": "https://github.com/python-telegram-bot/rules-bot",
4
+ "branch": "master",
5
+ "commit": "62a233d6691cb15135ed06851ad234cac6762cbb",
6
+ "stars": 146
7
+ },
8
+ "files": [
9
+ ".gitignore",
10
+ ".pre-commit-config.yaml",
11
+ "LICENSE",
12
+ "README.md",
13
+ "bot_example.ini",
14
+ "pyproject.toml",
15
+ "requirements-dev.txt",
16
+ "requirements.txt",
17
+ "rules_bot.py",
18
+ "setup.cfg"
19
+ ],
20
+ "contents": {
21
+ "pyproject.toml": "[tool.black]\nline-length = 99\ntarget-version = ['py38', 'py39', 'py310']\n\n[tool.isort] # black config\nprofile = \"black\"\nline_length = 99",
22
+ "requirements.txt": "# Make sure to install those as additional_dependencies in the\n# pre-commit hooks for pylint & mypy\nbeautifulsoup4~=4.11.0\nthefuzz~=0.19.0\npython-Levenshtein~=0.25.0\npython-telegram-bot[job-queue]==20.2\nSphinx~=5.0.2\nhttpx~=0.23.0\ngql[aiohttp]~=3.5.0\nasync-lru~=1.0.3\n"
23
+ },
24
+ "expected": {
25
+ "runtime": "python",
26
+ "packageManager": "pip",
27
+ "framework": "python-telegram-bot",
28
+ "platform": "telegram",
29
+ "install": "uv pip install -r requirements.txt",
30
+ "build": null,
31
+ "start": null,
32
+ "nodeVersion": null,
33
+ "pythonVersion": null,
34
+ "tokenKey": null,
35
+ "warnings": [
36
+ "no-start"
37
+ ]
38
+ }
39
+ }