{"id":18274478,"url":"https://github.com/lilydjwg/spamfightbot","last_synced_at":"2025-04-05T03:30:37.370Z","repository":{"id":138713325,"uuid":"281154229","full_name":"lilydjwg/spamfightbot","owner":"lilydjwg","description":"Another Telegram anti-spam bot without disturbance.","archived":false,"fork":false,"pushed_at":"2024-10-09T01:38:13.000Z","size":29,"stargazers_count":14,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-20T21:22:27.982Z","etag":null,"topics":["bot","spam-protection","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lilydjwg.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}},"created_at":"2020-07-20T15:25:56.000Z","updated_at":"2025-02-27T18:59:42.000Z","dependencies_parsed_at":"2023-11-11T11:26:19.296Z","dependency_job_id":"23eca311-1c58-4c8b-ac04-449f52cac987","html_url":"https://github.com/lilydjwg/spamfightbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilydjwg%2Fspamfightbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilydjwg%2Fspamfightbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilydjwg%2Fspamfightbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lilydjwg%2Fspamfightbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lilydjwg","download_url":"https://codeload.github.com/lilydjwg/spamfightbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284911,"owners_count":20913691,"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","spam-protection","telegram-bot"],"created_at":"2024-11-05T12:09:40.289Z","updated_at":"2025-04-05T03:30:36.880Z","avatar_url":"https://github.com/lilydjwg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Another Telegram anti-spam bot without disturbance.\n\nNote: this bot is still in beta and bugs may appear.\n\n## The idea\n\nThere are quite a few anti-spam bots, but with most (if not all) of them\nspammers will still be able to create new messages (e.g. join messages,\nverification messages) in the group being protected, either temporarily or\npermenantly. This bot aims to not disturb members by getting rid of all these\nmessages.\n\nThe idea is that, for one to successfully join a disscussion group, they must\nfirst join another group or channel (the \"gate\") according to instructions\n(e.g. given in pinned messages). They can leave the gate chat afterwards.\nWhoever doesn't follow such instructions will be removed immediately, and their\njoin messages will be deleted.\n\nThe disscussion group remains public so links work, and people can see messages\nwithout joining in.\n\n## How to use the bot\n\nInvite the bot [@spamfightbot](https://t.me/spamfightbot) to a group to be\nprotected and set it as an administrator (it needs to delete messages and\nremove members). To use a channel as the gate the bot must be invited to be an\nadministrator too so that it can see its members.\n\nThen start the bot and use the command `/newpair @front @group` where `@front`\nis to be used as the gate and `@group` is the group to be protected.\n\nNote that the bot may leave by itself if not configured. If you want to disable\nthe bot for your group, just remove it.\n\n## Run your own instance\n\nInstall a recent Python (at least 3.6+) and the `python-aiogram` package.\nThen you can see its help message:\n\n```\n$ python -m spamfightbot --help\nusage: __main__.py [-h] [--loglevel {debug,info,warn,error}] [--mail-from ADDRESS] [--mail-errors-to ADDRESS[;ADDRESS]] [FILE]\n\nA Telegram bot to fight spam and keep group chats unbothered\n\npositional arguments:\n  FILE                  file path to store some data\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --loglevel {debug,info,warn,error}\n                        log level\n  --mail-from ADDRESS   our mail address\n  --mail-errors-to ADDRESS[;ADDRESS]\n                        mail error logs to ADDRESS via local MTA\n```\n\nThe bot token is passed by a `TOKEN` environment variable. If you run a local\nMTA (e.g. postfix) you can set `--mail-errors-to` to your mail address so that\nyou see any potential errors (report an issue if you see them and would like to).\n\nThe store `FILE` will be created at first run.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilydjwg%2Fspamfightbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilydjwg%2Fspamfightbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilydjwg%2Fspamfightbot/lists"}