[O] Use telegram api
This commit is contained in:
+10
-15
@@ -1,13 +1,14 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import time
|
||||
import traceback
|
||||
from typing import Callable, Optional
|
||||
|
||||
import requests
|
||||
from selenium.common.exceptions import StaleElementReferenceException
|
||||
from selenium.webdriver.chrome.webdriver import WebDriver
|
||||
from selenium.webdriver.common.by import By
|
||||
|
||||
from telegram import Bot, Message
|
||||
|
||||
CSS = By.CSS_SELECTOR
|
||||
|
||||
@@ -23,34 +24,28 @@ def parse_retry(parser: Callable, browser: WebDriver, tries: int = 0):
|
||||
|
||||
|
||||
class TelegramReporter:
|
||||
token: str
|
||||
bot: Bot
|
||||
receiver: str | int
|
||||
alert_receiver: Optional[str | int]
|
||||
|
||||
def __init__(self, token: str, receiver: str, alert_receiver: Optional[str | int]):
|
||||
self.token = token
|
||||
def __init__(self, token: str, receiver: str | int, alert_receiver: Optional[str | int]):
|
||||
self.bot = Bot(token)
|
||||
self.receiver = receiver
|
||||
self.alert_receiver = alert_receiver
|
||||
|
||||
def send(self, msg: str, rec: Optional[str | int] = None) -> bool:
|
||||
def send(self, msg: str, rec: Optional[str | int] = None) -> Message:
|
||||
"""
|
||||
Send a message
|
||||
|
||||
:param msg: Message string
|
||||
:param rec: Receiver
|
||||
:return: Success or not
|
||||
:return: Edit code or None if failed
|
||||
"""
|
||||
if rec is None:
|
||||
rec = self.receiver
|
||||
|
||||
r = requests.get(f'https://api.telegram.org/bot{self.token}/sendMessage',
|
||||
params={'chat_id': rec, 'parse_mode': 'Markdown', 'text': msg})
|
||||
return self.bot.send_message(chat_id=rec, parse_mode='Markdown', text=msg)
|
||||
|
||||
if r.status_code != 200:
|
||||
print('Request not OK:', r.status_code, r.text)
|
||||
|
||||
return r.status_code == 200
|
||||
|
||||
def alert(self) -> bool:
|
||||
def alert(self) -> Message:
|
||||
if self.alert_receiver:
|
||||
return self.send('/alert', self.alert_receiver)
|
||||
|
||||
Reference in New Issue
Block a user