Spaces:
Sleeping
Sleeping
| ## Set default commands | |
| pipCommand="pip" | |
| pythonCommand="python" | |
| useBale=0 | |
| ## Display help for commands | |
| showHelp() { | |
| echo -e "Autoinstall usage: $0 [option..]\n | |
| -b, --bale For install bale api instead of Telegram API \n | |
| -h, --help This help message\n | |
| -d, --debug Enable bash debug\n | |
| -i, --interactive Install requirements for interactive commands\n | |
| -u, --useful Install useful commands\n | |
| -3, --python3 Use python3 instead of Python2\n | |
| " | |
| exit 0 | |
| } | |
| ## Use virtualenv | |
| useVenv() { | |
| ## Create virtual environment | |
| virtualenv -p $pythonCommand venv | |
| ## Activate virtual environment | |
| source venv/bin/activate | |
| } | |
| useBaleAPI() { | |
| ## Change telegram API URL to Bale API URL | |
| find ./ -name bot.py -exec sed -i 's/api\.telegram\.org/tapi.bale.ai/mg' {} \; | |
| } | |
| ## to use interactive commands like htop we need these packages | |
| installAha() { | |
| [ -f "/etc/debian_version" ] && apt-get update && apt-get install -y aha && return 0 | |
| (git clone https://github.com/theZiz/aha.git && cd aha && make && make install return 0) || ( echo "cannot install aha, please use -d to debug \nPlease submit an issue here:\n https://github.com/MParvin/TSMB/issues/new" && exit 1) | |
| } | |
| ## Install useful commands | |
| installUsefulCMD() { | |
| echo "Installing htop, please wait a moment..." | |
| yum install -y htop &> /dev/null || apt install -y htop &> /dev/null | |
| } | |
| configureBot(){ | |
| echo -e "To configure your bot, you must have a Telegram or Bale token\n | |
| How to create Telegram bot: https://core.telegram.org/bots#3-how-do-i-create-a-bot\n | |
| How to create Bale bot: https://devbale.ir/quick-start\n" | |
| read -p "Enter your bot token here:" | |
| telegramToken=$REPLY | |
| echo -e "Get chat_id and enter here:\n | |
| To get chat_id do: | |
| - In telegram:\n start a chat with @id_chatbot | |
| - In Bale:\n start a chat with chatid_bot | |
| " | |
| chatId=$REPLY | |
| } | |
| while : | |
| do | |
| case "$1" in | |
| -b | --bale) | |
| which virtualenv &> /dev/null || (echo "Cannot use Bale without virtualenv, please run \"pip install virtualenv\" before run this script with -b option" && exit 1) | |
| useBale = "True" | |
| break | |
| ;; | |
| -h | --help) | |
| showHelp | |
| exit 0 | |
| ;; | |
| -d | --debug) | |
| set -x | |
| break | |
| ;; | |
| -i | --interactive) | |
| installAha | |
| break | |
| ;; | |
| -u | --useful) | |
| installUsefulCMD | |
| break | |
| ;; | |
| -3 | --python3) | |
| pythonCommand="python3" | |
| pipCommand="pip3" | |
| break | |
| ;; | |
| *) | |
| break | |
| ;; | |
| esac | |
| done | |
| ## Check is python installed | |
| which $pythonCommand &> /dev/null || (echo "Please install python, and run this script again" && exit 1) | |
| ## Check is pip installed | |
| which $pipCommand &> /dev/null || (echo -e "Please install pip, and run this script again\n | |
| In Debian base system for python2.* use apt-get install python-pip\n | |
| for python3.* use apt-get install python3-pip" && exit 1) | |
| ## Install virtualenv if is not installed | |
| (which virtualenv &> /dev/null && useVenv) || read -p "Do you want to install virtualenv(y/n)? " -n 1 -r | |
| ## User accepted | |
| [[ ! $REPLY =~ ^[yY]$ ]] && $pipCommand install virtualenv --user && useVenv | |
| ## Install requirements | |
| ([ -f requirements.txt ] && $pipCommand install -r requirements.txt) || echo "Could not find requirements.txt, please clone complete this repository from here:\nhttps://github.com/MParvin/TSMB/, \nthen run Autoinstall.sh" | |
| if [ "$useBale" -eq 1 ] | |
| then | |
| useBaleAPI | |
| fi | |
| read -p "Do you want to configure your bot now(y/n)?" | |
| if [ $REPLY =~ ^[yY] ] | |
| then | |
| configureBot | |
| else | |
| echo -e "To use this bot, first change variables in \"config\" file\n | |
| then executable bot script \"chmod +x bot.py \" | |
| and run it: \"./bot.py \"" | |
| fi | |