E masani lava e iai tulaga e manaʻomia ai le avanoa i le 'auʻaunaga iinei ma le taimi nei. Ae ui i lea, o le fesoʻotaʻi e ala i le SSH e le o taimi uma e sili ona faigofie, aua atonu e leai sau SSH client, tuatusi server, poʻo le faʻaoga faʻaoga / upu faʻapipiʻi i lima. Ioe ua i ai
O lea na ou filifili ai e faatino se fofo faigofie ae manaia. O lona uiga, ia tusia se Telegram bot lea, pe a faʻalauiloa i luga o le server lava ia, o le a faʻatinoina poloaiga na lafoina i ai ma toe faʻafoʻi le iʻuga. Ua uma ona su'esu'e
Na ou faʻatinoina lenei poloketi ile Ubuntu 16.04, ae mo se faʻalavelave e leai se faʻalavelave i luga o isi tufatufaga, na ou taumafai e faia mea uma i se auala lautele.
Faamauina o bot
Resitala se bot fou ma @BotFather. Matou te auina atu o ia /newbot
ma isi i le tusitusiga. Matou te manaʻomia se faʻailoga bot fou ma lau id (e mafai ona e mauaina, mo se faʻataʻitaʻiga, mai
Sauniuniga Python
Ina ia faʻatautaia le bot, matou te faʻaogaina le faletusi telebot
(pip install pytelegrambotapi
). Fa'aaogāina o le faletusi subprocess
o le a matou faia poloaiga i luga o le server.
Fa'aliga bot
Fausia se faila bot.py i le server:
nano bot.py
Ma faapipii le code i totonu:
from subprocess import check_output
import telebot
import time
bot = telebot.TeleBot("XXXXXXXXX:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")#токен бота
user_id = 0 #id вашего аккаунта
@bot.message_handler(content_types=["text"])
def main(message):
if (user_id == message.chat.id): #проверяем, что пишет именно владелец
comand = message.text #текст сообщения
try: #если команда невыполняемая - check_output выдаст exception
bot.send_message(message.chat.id, check_output(comand, shell = True))
except:
bot.send_message(message.chat.id, "Invalid input") #если команда некорректна
if __name__ == '__main__':
while True:
try:#добавляем try для бесперебойной работы
bot.polling(none_stop=True)#запуск бота
except:
time.sleep(10)#в случае падения
Matou te suia le faʻailoga bot i totonu ma le mea na tuʻuina atu e @BotFather, ma le user_id ma le id tau o lau teugatupe. E mana'omia le siakiina o le ID fa'aoga ina ia maua ai e le bot le avanoa i lau 'au'aunaga na'o oe. Galuega check_output()
fa'atino le fa'atonuga ma toe fa'afo'i le taunu'uga.
E na'o le amataina o le bot. Mo le faʻatinoina o faiga i luga o le 'auʻaunaga, ou te manaʻo e faʻaoga screen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
(lea o le "ServerBot" o le ID o le faagasologa)
O le a otometi lava ona alu le faagasologa i tua. Sei o tatou o i le talanoaga ma le bot ma siaki o mea uma e aoga e pei ona tatau ai:
Fa'afetai! O le bot e faʻatino poloaiga na lafoina i ai. I le taimi nei, ina ia maua le 'auʻaunaga, e tatau ona e tatalaina se talanoaga ma le bot.
Faatonu le toe fai
E masani lava, ina ia mataʻituina le tulaga o le 'auʻaunaga, e tatau ona e faʻatinoina ia lava poloaiga. O le mea lea, o le faʻatinoina o le toe faia o faʻatonuga e aunoa ma le toe tuʻuina atu o le a matua le talafeagai.
O le a matou faʻatinoina i le faʻaogaina o faʻamau i lalo o feʻau:
from subprocess import check_output
import telebot
from telebot import types #Добавляем импорт кнопок
import time
bot = telebot.TeleBot("XXXXXXXXX:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")#Токен бота
user_id = 0 #id вашего аккаунта
@bot.message_handler(content_types=["text"])
def main(message):
if (user_id == message.chat.id): #проверяем, что пишет именно владелец
comand = message.text #текст сообщения
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку
markup.add(button) #добавляем кнопку в клавиатуру
try: #если команда невыполняемая - check_output выдаст exception
bot.send_message(user_id, check_output(comand, shell = True, reply_markup = markup)) #вызываем команду и отправляем сообщение с результатом
except:
bot.send_message(user_id, "Invalid input") #если команда некорректна
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
comand = call.data #считываем команду из поля кнопки data
try:#если команда не выполняемая - check_output выдаст exception
markup = types.InlineKeyboardMarkup() #создаем клавиатуру
button = types.InlineKeyboardButton(text="Повторить", callback_data=comand) #создаем кнопку и в data передаём команду
markup.add(button) #добавляем кнопку в клавиатуру
bot.send_message(user_id, check_output(comand, shell = True), reply_markup = markup) #вызываем команду и отправляем сообщение с результатом
except:
bot.send_message(user_id, "Invalid input") #если команда некорректна
if __name__ == '__main__':
while True:
try:#добавляем try для бесперебойной работы
bot.polling(none_stop=True)#запуск бота
except:
time.sleep(10)#в случае падения
Toe amata le bot:
killall python3
screen -dmS ServerBot python3 bot.py
Sei o tatou toe siaki pe sa'o lelei mea uma:
E ala i le oomiina o le ki i lalo o le savali, e tatau i le bot ona toe fai le poloaiga na auina mai ai lenei feʻau.
Nai lo o se faaiuga
O le mea moni, o lenei metotia e le fa'afoliga e suitulaga i auala masani o feso'ota'iga, peita'i, e mafai ai ona e vave su'esu'e i le tulaga o le 'au'aunaga ma tu'uina atu fa'atonuga e le mana'omia ai galuega fa'alavelave.
puna: www.habr.com