Вот мой код:
import telebot, requests, random, pyAesCrypt, os, config, urllib
token = config.token
bot = telebot.TeleBot(token)
chat_ids_file = 'base.txt'
users_amount = [0]
types = telebot.types
running_spams_per_chat_id = []
def get_encrypt(message):
passw = ''
filename = ''
def get_password(message):
if message.text:
passw = message.text
bufferSize = 512 * 1024
bot.send_message(message.chat.id, 'Отлично! Начинаем шифровать файл :)')
pyAesCrypt.encryptFile (filename, filename + ' ENCRYPTED BY @encrypter_robot.aes', passw, bufferSize)
print(filename + ' Зашифрован!')
file = filename + ' ENCRYPTED BY @encrypter_robot.aes'
bot.send_document(message.chat.id, file)
if message.document:
document_id = message.document.file_id
file_info = bot.get_file(document_id)
filename = message.document.file_name
urllib.request.urlretrieve(f'http://api.telegram.org/file/bot{token}/{file_info.file_path}', filename)
a = bot.send_message(message.chat.id, 'Файл получил. Введите желаемый пароль для защиты шифрования:')
bot.register_next_step_handler(a, get_password)
def save_chat_id(chat_id, message):
chat_id = str(chat_id)
with open(chat_ids_file,"a+") as ids_file:
ids_file.seek(0)
ids_list = [line.split('\n')[0] for line in ids_file]
if chat_id not in ids_list:
aha = message.from_user.username
ids_file.write(f'{chat_id} {aha}\n')
ids_list.append(chat_id)
print(f'NEW USER: {chat_id}')
else:
print(f'chat_id {chat_id} is already saved')
users_amount[0] = len(ids_list)
return
def send_message_users(message):
def send_message(chat_id):
data = {
'chat_id': chat_id,
'text': message
}
response = requests.post(f'https://api.telegram.org/bot{TOKEN}/sendMessage', data=data)
with open(chat_ids_file, "r") as ids_file:
ids_list = [line.split('\n')[0] for line in ids_file]
[send_message(chat_id) for chat_id in ids_list]
@bot.message_handler(commands=["start"])
def start(message):
keyboard = types.InlineKeyboardMarkup()
button1 = types.InlineKeyboardButton(text="Зашифровать файл", callback_data="button1")
button2 = types.InlineKeyboardButton(text="Дешифровать файл", callback_data="button2")
button3 = types.InlineKeyboardButton(text="Информация", callback_data="button3")
msg = """<b>Вас приветствует Encrypter Bot!</b>
В нашем боте вы легко сможете зашифровать свой файл под личный ключ, и в любое время его заново дешифровать по ключу. Вся шифровка проходит AES-шифрование. Кроме вас и вашего пароля, никто не сможет получить настоящий файл.\n\nЧтобы начать работать с ботом, выберите действие:"""
keyboard.add(button1, button2)
keyboard.add(button3)
bot.send_message(message.chat.id, msg, reply_markup=keyboard, parse_mode='HTML')
save_chat_id(message.chat.id, message)
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
message = call.message
if call.message:
if call.data == "button1":
lololo = bot.send_message(message.chat.id, "Просто отправь мне любой файл, введи ему пароль, и получи зашифрованную версию!")
bot.register_next_step_handler(lololo, get_encrypt)
elif call.data == "button2":
hahaha = bot.send_message(message.chat.id, 'Отправь мне зашифрованный файл, введи его пароль, и я его расшифрую!')
#bot.register_next_step_handler(hahaha, get_decrypt)
elif call.data == "button3":
with open('base.txt') as f:
size=sum(1 for _ in f)
bot.send_message(message.chat.id, 'Статистика отображается в реальном времени!\nПользователей♂: '+ str(size) +'\nБот запущен: 23.05.2020')
else:
bot.send_message(message.chat.id, '❌Я тебя не понимаю!')
if __name__ == '__main__':
bot.infinity_polling(True, interval=0)
Вылезает данная ошибка:
return _make_request(token, method_url, params=payload, files=files, method='post')
File "C:\Users\adm\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\apihelper.py", line 65, in _make_request
return _check_result(method_name, result)['result']
File "C:\Users\adm\AppData\Local\Programs\Python\Python37\lib\site-packages\telebot\apihelper.py", line 84, in _check_result
raise ApiException(msg, method_name, result)
telebot.apihelper.ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:
[b'{"ok":false,"error_code":400,"description":"Bad Request: wrong HTTP URL specified"}']
"
2020-05-22 19:45:52,119 (__init__.py:443 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:
[b'{"ok":false,"error_code":400,"description":"Bad Request: wrong HTTP URL specified"}']"
Буду ооочень благодарен, если поможете. Использую пока ради теста ВПН, все страны перепробовал