This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Telegram/README.md

6.0 KiB

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,
    "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
  • 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