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