Тема: непрцюють кнопки з бота
мені бот присилає повідомленні скрінот з активацією промокода, і під повідомленням створюється 4 кнопки, від 1-4, і кожна кнопка виконує свій скрипт в хроміумі, алле чомусь кнопки не робочі
from selenium.webdriver.support.wait import WebDriverWait as WB
from pyrogram import Client, types, filters
from pyrogram.handlers import MessageHandler, callback_query_handler
from aiogram import Bot
import shutil
import subprocess
import undetected_chromedriver as uc
import requests
import os
import re
import time
import logging
logging.basicConfig(
filename='app.log', #
level=logging.INFO, #
format='%(asctime)s %(levelname)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
def get_id_session(app: Client):
#неважливо
def init_driver(headless: bool):
#неважливо
def get_domen():
#неважливо
def open_web_site(driver: uc.Chrome):
#неважливо
async def send_notify(promocode: str, result: float, balance: int):
# кнопочки
reply_markup = types.InlineKeyboardMarkup([
[
types.InlineKeyboardButton("Button 1", callback_data="0"),
types.InlineKeyboardButton("Button 2", callback_data="1"),
],
[
types.InlineKeyboardButton("Button 3", callback_data="2"),
types.InlineKeyboardButton("Button 4", callback_data="3"),
],
])
await bot.send_photo(
chat_id=sender_id,
photo=open('temp.png', 'rb'),
caption=f'Попытка активации промокода: {promocode}????\n'
f'Статистика по активации :\n\n'
f'*Общее время активации : *{result}'
f'*Актуальный баланс : *{balance}',
parse_mode='Markdown',
reply_markup=reply_markup
)
os.remove('temp.png')
#обрпботчик кла
async def button_handler(client: Client, callback_query: types.CallbackQuery):
button_id = int(callback_query.data)
logging.info(f'Натиснута кнопка з номером {button_id}')
if button_id == 0:
driver.execute_script('document.querySelectorAll("div.captcha__variants > button")[0].click()')
elif button_id == 1:
driver.execute_script('document.querySelectorAll("div.captcha__variants > button")[1].click()')
elif button_id == 2:
driver.execute_script('document.querySelectorAll("div.captcha__variants > button")[2].click()')
elif button_id == 3:
driver.execute_script('document.querySelectorAll("div.captcha__variants > button")[3].click()')
elif button_id == 4:
driver.execute_script('document.querySelectorAll("div.captcha__variants > button")[3].click()')
await callback_query.answer()
def activate_promocode(promocode: str, driver: uc.Chrome):
#неважливо
async def get_promo_handler(client: Client, message: types.Message):
#неважливо
if __name__ == "__main__":
print('Меню:\n1. Запустити скрипт.\n2. Авторизовутись в аккаунт.\n3. Почистити кеш скрипту.\n4. Завершити всі процеси скрипта.')
_func = input('\nВведите нужную вам функцию - ')
subprocess.call('taskkill /f /im chrome.exe', stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
subprocess.call('taskkill /f /im undetected_chromedriver.exe', stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
if _func == '1':
baza_promocode = []
driver = init_driver(False)
open_web_site(driver)
channels = [-100184339344, -1001348070579, -1001686106961, -1001680254374]
try:
with open("files\\channels.txt", "r", encoding='utf8') as f:
if read := f.read():
for channel in read.strip().split('\n'):
channels.append(int(channel))
except FileNotFoundError:
open('files\\channels.txt', 'w').close()
app = Client("files\\session", api_id=#неважливо, api_hash='#неважливо')
bot = Bot(bytes(
[54, 51, 15, 65, 70, 90, 90, 115, 82, 118, 76, 111, 122, 113, 75, 95, 118,
69, 76, 112, 111, 95, 114, 103, 48, 112, 45, 78, 87, 102, 95, 71, 115, 67, 53, 110, 107]).decode())
with app:
sender_id = get_id_session(app)
app.add_handler(MessageHandler(get_promo_handler, filters=filters.chat(list(map(int, channels)))))
app.add_handler(lambda client, callback_query: callback_query_handler(client, callback_query, button_handler))
print('Обнаружил авторизацию, успешно запустился.')
app.run()
if _func == '2':
#неважливо
if _func == '3':
#неважливо
if _func == '4':
#неважливо
input('\nExit')