# HoloCheckerBot Small Telegram bot made on Pyrogram ## What can this bot do? * Get user applications * Send applications to the admins * Give one-time links to join group * Track down users that were not allowed to join * Show applications to other users * Manage YouTube sponsorships [WIP] * Send and receive messages to users using bot [WIP] ## Installation 1. `git clone https://git.end-play.xyz/profitroll/HoloCheckerBot.git` 2. `cd HoloCheckerBot` 3. Install Python 3.7+ (at least 3.9 is recommended) for your OS 4. `python3 -m pip install -r requirements.txt` 5. Run it with `python3 main.py` after configuring ## Configuration So bot has its "config_example.json" and it needs to be changed. Copy this file to "config.json" and open it with any text editor. You can see config file with all the comments below: ```json { "locale": "uk", "debug": false, "owner": 0, "age_allowed": 0, "age_maximum": 70, "api": "http://example.com", "issues": "https://github.com/example/test/issues/new", "inline_preview_count": 7, "remove_application_time": -1, "search_radius": 50, "admins": [], "groups": { "admin": 0, "users": 0 }, "bot": { "api_id": 0, "api_hash": "", "bot_token": "" }, "database": { "user": null, "password": null, "host": "127.0.0.1", "port": 27017, "name": "holochecker" }, "geocoding": { "username": "demo" }, "logging": { "size": 512, "location": "logs" }, "features": { "general": { "enabled": true }, "applications": { "enabled": true }, "sponsorships": { "enabled": true }, "warnings": { "enabled": true }, "invites_check": { "enabled": true }, "dinovoice": { "enabled": false }, "spoilers": { "enabled": true, "allow_external": true } }, "scheduler": { "birthdays": { "time": 9, "enabled": true }, "sponsorships": { "time": 9, "enabled": true }, "cache_avatars": { "interval": 6, "enabled": true }, "cache_members": { "interval": 30, "enabled": true }, "cache_admins": { "interval": 120, "enabled": true }, "channels_monitor": { "interval": 5, "enabled": true, "channels": [] } }, "locations": { "cache": "cache", "locale": "locale" }, "commands": { "rules": { "permissions": [ "users", "admins" ], "modules": [ "general" ] }, "spoiler": { "permissions": [ "users", "admins" ], "modules": [ "spoilers" ] }, "cancel": { "permissions": [ "users", "admins" ], "modules": [ "spoilers", "applications", "sponsorships" ] }, "nearby": { "permissions": [ "users", "admins", "group_admins" ], "modules": [ "applications" ] }, "warn": { "permissions": [ "group_users_admins" ], "modules": [ "warnings" ] }, "reapply": { "permissions": [ "users", "admins" ], "modules": [ "applications" ] }, "sponsorship": { "permissions": [ "users", "admins" ], "modules": [ "sponsorships" ] }, "reboot": { "permissions": [ "owner" ], "modules": [ "general" ] }, "label": { "permissions": [ "admins", "group_admins" ], "modules": [ "applications" ] }, "message": { "permissions": [ "admins", "group_admins" ], "modules": [ "general" ] }, "identify": { "permissions": [ "admins", "group_admins" ], "modules": [ "applications", "sponsorships" ] }, "issue": { "permissions": [ "users", "admins" ], "modules": [ "general" ] }, "application": { "permissions": [ "admins", "group_admins" ], "modules": [ "applications" ] }, "applications": { "permissions": [ "admins", "group_admins" ], "modules": [ "applications" ] }, "resetcommands": { "permissions": [ "owner" ], "modules": [ "general" ] } } } ``` After all of that you're good to go! Happy using :) ## To-Do * [ ] Stats and infographics * [ ] Check group members without completed application * [x] Replicate some functions of @spoilerobot * [x] Check sponsorship on Holo girls * [x] /nearby command * [x] Complete messenger between user and admins * [x] Get application by id and user_id