Bot that accepts applications and does utility stuff https://t.me/holoua_bot
Go to file
Profitroll 234b73add0 Merge pull request 'Bug fixes and small structural changes' (#7) from dev into master
Reviewed-on: profitroll/HoloCheckerBot#7
2023-01-06 17:01:20 +02:00
classes Moved templates classes into another module 2023-01-06 15:59:09 +01:00
locale Added documents support for spoilers 2023-01-05 21:15:34 +01:00
modules Placed exceptions to errors module 2023-01-06 15:49:51 +01:00
validation Added documents support for spoilers 2023-01-05 21:15:34 +01:00
.gitignore Ignoring data 2022-12-16 13:24:24 +01:00
LICENSE Initial commit 2022-10-16 21:35:09 +03:00
README.md Updated config in README 2023-01-05 12:44:13 +01:00
api_avatars.py Also handling HEAD requests now 2022-12-17 22:31:30 +01:00
app.py Changed config keys 2023-01-04 19:14:02 +01:00
config_example.json Added /resetcommands command 2023-01-05 12:41:55 +01:00
holochecker.py Sponsorship handler removed 2023-01-05 20:46:04 +01:00
requirements.txt Updated requirements 2023-01-05 15:51:25 +01:00

README.md

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:

{
    "locale": "uk",
    "debug": false,
    "owner": 0,
    "age_allowed": 0,
    "api": "http://example.com",
    "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
        }
    },
    "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
        }
    },
    "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_users",
                "group_admins"
            ],
            "modules": [
                "applications"
            ]
        },
        "warn": {
            "permissions": [
                "group_users"
            ],
            "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"
            ]
        },
        "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
  • Replicate some functions of @spoilerobot
  • Check sponsorship on Holo girls
  • /nearby command
  • Complete messenger between user and admins
  • Get application by id and user_id