From 15faa5ee7b0c516adf20b115b43068a080f46179 Mon Sep 17 00:00:00 2001 From: abhishekkvry <66344841+abhishekkvry@users.noreply.github.com> Date: Wed, 3 Jun 2020 08:14:42 +0530 Subject: [PATCH 1/2] Update README.md --- README.md | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/README.md b/README.md index 51c1297..d1532f4 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,6 @@ # tgbot A modular telegram Python bot running on python3 with an sqlalchemy database. -(ഒരു മോഡുലാർ ടെലിഗ്രാം പൈത്തൺ ബോട്ട് പൈത്തൺ 3-ൽ ഒരു സ്ക്ലാൽ‌ചെമി ഡാറ്റാബേസ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു.) - -ഒന്നിലധികം അഡ്‌മിൻ സവിശേഷതകളുള്ള ഒരു ലളിതമായ ഗ്രൂപ്പ് മാനേജുമെന്റ് ബോട്ട്, ഇത് വികസിച്ചു, വളരെ മോഡുലാർ ആയിത്തീർന്നു. ഉപയോഗിക്കാൻ ലളിതമാണ്. - -എന്റെ ന്യൂ ഫീച്ചേർസ് [ചാനലിൽ](t.me/MarieChechi) ഇടുന്നതായിരിക്കും. സംശയങ്ങൾക്ക് @InFoTelGroup എന്ന ഗ്രൂപ്പിൽ വരാവുന്നതാണ്..... - -എന്നെ ടെലെഗ്രാമിൽ കാണാൻ സാധിക്കും [മേരി ചേച്ചി 2.0](https://t.me/MarieChechiBot). - -Marie and I are moderating a [support group](https://t.me/MarieSupport), where you can ask for help setting up your -bot, discover/request new features, report bugs, and stay in the loop whenever a new update is available. Of course -I'll also help when a database schema changes, and some table column needs to be modified/added. Note to maintainers that all schema changes will be found in the commit messages, and its their responsibility to read any new commits. - -Join the [news channel](https://t.me/MarieNews) if you just want to stay in the loop about new features or -announcements. - -Alternatively, [find me on telegram](https://t.me/SonOfLars)! (Keep all support questions in the support chat, where more people can help you.) - -## You can also tap the Deploy To Heroku button below to deploy straight to Heroku! - -[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/TGExplore/Marie_Chechi2.0) +എന്നെ നിർമ്മിച്ചത് [@abhishek_kvry] ഇദ്ദേഹം ആണ് ## Starting the bot. From 996cb34dba63add726110e75266283fdab33d4b2 Mon Sep 17 00:00:00 2001 From: abhishekkvry <66344841+abhishekkvry@users.noreply.github.com> Date: Wed, 3 Jun 2020 08:38:08 +0530 Subject: [PATCH 2/2] Delete README.md --- README.md | 160 ------------------------------------------------------ 1 file changed, 160 deletions(-) delete mode 100644 README.md diff --git a/README.md b/README.md deleted file mode 100644 index d1532f4..0000000 --- a/README.md +++ /dev/null @@ -1,160 +0,0 @@ -# tgbot -A modular telegram Python bot running on python3 with an sqlalchemy database. -എന്നെ നിർമ്മിച്ചത് [@abhishek_kvry] ഇദ്ദേഹം ആണ് - -## Starting the bot. - -Once you've setup your database and your configuration (see below) is complete, simply run: - -`python3 -m tg_bot` - - -## Setting up the bot (Read this before trying to use!): -Please make sure to use python3.6, as I cannot guarantee everything will work as expected on older python versions! -This is because markdown parsing is done by iterating through a dict, which are ordered by default in 3.6. - -### Configuration - -There are two possible ways of configuring your bot: a config.py file, or ENV variables. - -The prefered version is to use a `config.py` file, as it makes it easier to see all your settings grouped together. -This file should be placed in your `tg_bot` folder, alongside the `__main__.py` file . -This is where your bot token will be loaded from, as well as your database URI (if you're using a database), and most of -your other settings. - -It is recommended to import sample_config and extend the Config class, as this will ensure your config contains all -defaults set in the sample_config, hence making it easier to upgrade. - -An example `config.py` file could be: -``` -from tg_bot.sample_config import Config - - -class Development(Config): - OWNER_ID = 254318997 # my telegram ID - OWNER_USERNAME = "SonOfLars" # my telegram username - API_KEY = "your bot api key" # my api key, as provided by the botfather - SQLALCHEMY_DATABASE_URI = 'postgresql://username:password@localhost:5432/database' # sample db credentials - MESSAGE_DUMP = '-1234567890' # some group chat that your bot is a member of - USE_MESSAGE_DUMP = True - SUDO_USERS = [18673980, 83489514] # List of id's for users which have sudo access to the bot. - LOAD = [] - NO_LOAD = ['translation'] -``` - -If you can't have a config.py file (EG on heroku), it is also possible to use environment variables. -The following env variables are supported: - - `ENV`: Setting this to ANYTHING will enable env variables - - - `TOKEN`: Your bot token, as a string. - - `OWNER_ID`: An integer of consisting of your owner ID - - `OWNER_USERNAME`: Your username - - - `DATABASE_URL`: Your database URL - - `MESSAGE_DUMP`: optional: a chat where your replied saved messages are stored, to stop people deleting their old - - `LOAD`: Space separated list of modules you would like to load - - `NO_LOAD`: Space separated list of modules you would like NOT to load - - `WEBHOOK`: Setting this to ANYTHING will enable webhooks when in env mode - messages - - `URL`: The URL your webhook should connect to (only needed for webhook mode) - - - `SUDO_USERS`: A space separated list of user_ids which should be considered sudo users - - `SUPPORT_USERS`: A space separated list of user_ids which should be considered support users (can gban/ungban, - nothing else) - - `WHITELIST_USERS`: A space separated list of user_ids which should be considered whitelisted - they can't be banned. - - `DONATION_LINK`: Optional: link where you would like to receive donations. - - `CERT_PATH`: Path to your webhook certificate - - `PORT`: Port to use for your webhooks - - `DEL_CMDS`: Whether to delete commands from users which don't have rights to use that command - - `STRICT_GBAN`: Enforce gbans across new groups as well as old groups. When a gbanned user talks, he will be banned. - - `WORKERS`: Number of threads to use. 8 is the recommended (and default) amount, but your experience may vary. - __Note__ that going crazy with more threads wont necessarily speed up your bot, given the large amount of sql data - accesses, and the way python asynchronous calls work. - - `BAN_STICKER`: Which sticker to use when banning people. - - `ALLOW_EXCL`: Whether to allow using exclamation marks ! for commands as well as /. - -### Python dependencies - -Install the necessary python dependencies by moving to the project directory and running: - -`pip3 install -r requirements.txt`. - -This will install all necessary python packages. - -### Database - -If you wish to use a database-dependent module (eg: locks, notes, userinfo, users, filters, welcomes), -you'll need to have a database installed on your system. I use postgres, so I recommend using it for optimal compatibility. - -In the case of postgres, this is how you would set up a the database on a debian/ubuntu system. Other distributions may vary. - -- install postgresql: - -`sudo apt-get update && sudo apt-get install postgresql` - -- change to the postgres user: - -`sudo su - postgres` - -- create a new database user (change YOUR_USER appropriately): - -`createuser -P -s -e YOUR_USER` - -This will be followed by you needing to input your password. - -- create a new database table: - -`createdb -O YOUR_USER YOUR_DB_NAME` - -Change YOUR_USER and YOUR_DB_NAME appropriately. - -- finally: - -`psql YOUR_DB_NAME -h YOUR_HOST YOUR_USER` - -This will allow you to connect to your database via your terminal. -By default, YOUR_HOST should be 0.0.0.0:5432. - -You should now be able to build your database URI. This will be: - -`sqldbtype://username:pw@hostname:port/db_name` - -Replace sqldbtype with whichever db youre using (eg postgres, mysql, sqllite, etc) -repeat for your username, password, hostname (localhost?), port (5432?), and db name. - -## Modules -### Setting load order. - -The module load order can be changed via the `LOAD` and `NO_LOAD` configuration settings. -These should both represent lists. - -If `LOAD` is an empty list, all modules in `modules/` will be selected for loading by default. - -If `NO_LOAD` is not present, or is an empty list, all modules selected for loading will be loaded. - -If a module is in both `LOAD` and `NO_LOAD`, the module will not be loaded - `NO_LOAD` takes priority. - -### Creating your own modules. - -Creating a module has been simplified as much as possible - but do not hesitate to suggest further simplification. - -All that is needed is that your .py file be in the modules folder. - -To add commands, make sure to import the dispatcher via - -`from tg_bot import dispatcher`. - -You can then add commands using the usual - -`dispatcher.add_handler()`. - -Assigning the `__help__` variable to a string describing this modules' available -commands will allow the bot to load it and add the documentation for -your module to the `/help` command. Setting the `__mod_name__` variable will also allow you to use a nicer, user -friendly name for a module. - -The `__migrate__()` function is used for migrating chats - when a chat is upgraded to a supergroup, the ID changes, so -it is necessary to migrate it in the db. - -The `__stats__()` function is for retrieving module statistics, eg number of users, number of chats. This is accessed -through the `/stats` command, which is only available to the bot owner.