# 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 ## 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", # locale file. it's a json located under locale folder "debug": false, # whether config_debug.json should be used instead of config.json "owner": 0, # telegram ID of a bot owner "age_allowed": 0, # minimum age of user that submits application "birthdays_notify": true, # notify admin group about birthdays "birthdays_time": "09:00", # server time when to notify about birthdays "api": "http://127.0.0.1:9024", # API server address "admin_group": 0, # telegram ID of a admin's group "destination_group": 0, # telegram ID of a user's group "admins": [], # list of telegram ID's of users that are admins "bot": { "api_id": 0, # telegram API ID "api_hash": "", # telegram API hash "bot_token": "" # telegram bot's token }, "logging": { "size": 512, # size of log file in kbytes after which it should be rotated "location": "logs" # location of logs folder. can be relative or absolute }, "locations": { "data": "data", # location of data folder. can be relative or absolute "locale": "locale" # location of locale folder. can be relative or absolute }, "commands": { # user command and its description "reapply": "Fill the application again" }, "commands_admin": { # admin commands and their description "reboot": "Restart the bot", "applications": "Get all applications as JSON" } } ``` After all of that you're good to go! Happy using :) ## To-Do * [x] Check if link belongs to admin * [x] Inline query user's application * [x] Get applications .json * [ ] Get application by id and user_id * [x] Age as a DD.MM.YYYY * [x] Notify about upcoming birthdays * [x] Change the application data * [x] Check if user is already in group