From 4232d84949528d58a13549f465432dd92e89a460 Mon Sep 17 00:00:00 2001 From: Kusaeni Date: Tue, 1 Oct 2024 15:05:12 +0700 Subject: [PATCH] masih mencari skema yang benar untuk html ke markdown --- README.md | 7 ++++++- main.py | 26 ++++++++++++++------------ main_test.py | 22 ++++++++++++++++++++++ 3 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 main_test.py diff --git a/README.md b/README.md index 1ee2527..a39ef2b 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,8 @@ App ini masih dalam pengembangan dan banyak hal yang belum bisa dilakukan, berik - [x] Tandai data di database jika sudah terkirim - [x] Delay antar fungsi - [ ] Cron internal -- [ ] Build +- [ ] ~Build~ +- [ ] Benahi html ke markdown, karena pakai parse `MarkdownV2` ## Install Clone repositori ini dan install di lokal. @@ -37,3 +38,7 @@ Saat ini ada 4 environment variable yaitu: 2. GTS_TOKEN : Token dengan scope minimal "Read" untuk akses API gotosocial 3. TELE_BOT : Token Bot Telegram, hubungi Bot Father untuk minta 4. TELE_CHATID : Chat Id dari channel telegram. + +## Kekurangan +1. Konversi dari html ke text/markdown masih buruk, perlu perbaikan disini +2. Sedikit lebih lambat dibandingkan Deno TS? diff --git a/main.py b/main.py index 0a6bb30..007e34c 100644 --- a/main.py +++ b/main.py @@ -16,24 +16,23 @@ from models import Notifikasi, Session # Request ke kauaku load_dotenv() -gts_api = os.getenv("GTS_API") -gts_token = os.getenv("GTS_TOKEN") +GTS_API = os.getenv("GTS_API") +GTS_TOKEN = os.getenv("GTS_TOKEN") +TELE_BOT = os.getenv("TELE_BOT") +TELE_CHATID = os.getenv("TELE_CHATID") -headers = {"Authorization": f"Bearer {gts_token}"} +headers = {"Authorization": f"Bearer {GTS_TOKEN}"} session = Session() -TELE_BOT = os.getenv("TELE_BOT") -TELE_CHATID = os.getenv("TELE_CHATID") bot = telegram.Bot(token=f"{TELE_BOT}") async def getNotif(): - req = requests.get(f"{gts_api}?limit=5", headers=headers) + req = requests.get(f"{GTS_API}?limit=5", headers=headers) if req.status_code == 200: data = req.json() - print(data.__class__) try: for notif in data: type = notif["type"] @@ -118,22 +117,25 @@ async def kirim_ke_tele(): parse_mode="html", chat_id=str(TELE_CHATID), text=f""" - {notif.display_name}\n{notif.handler}\n{flag}\n from python + {notif.display_name}\n{notif.handler}\n{flag} """, ) except Exception as e: print("Follow: Ada masalah saat kirim ke Telebot", e) else: - html_strip = re.compile("<.*?>") - status = str(notif.status) - status_text = re.sub(html_strip, "", status) + # html_strip = re.compile("<.*?>") + # status = str(notif.status) + # status_text = re.sub(html_strip, "", status) + html_p = re.sub(r"", "\n\n", str(notif.status)) + raw = html_p.replace("

", "\n") + status_text = re.sub(r"<.*?>", "", raw) try: await bot.send_message( parse_mode="html", chat_id=str(TELE_CHATID), text=f""" - {notif.display_name}\n{notif.handler}\n{flag}\n\n{status_text}\nfrom python\n{notif.url} + {notif.display_name}\n{notif.handler}\n{flag}\n\nā{status_text}āž\n\nsource """, ) except Exception as e: diff --git a/main_test.py b/main_test.py new file mode 100644 index 0000000..d0ea597 --- /dev/null +++ b/main_test.py @@ -0,0 +1,22 @@ +import re + +from sqlalchemy import desc + +from models import Notifikasi, Session + +session = Session() + + +def main_test(): + cek_data = ( + session.query(Notifikasi).order_by(desc(Notifikasi.created_at)).limit(10).all() + ) + + for notif in cek_data: + html_p = re.sub(r"", "\n\n", str(notif.status)) + raw = html_p.replace("

", "\n") + html_content = re.sub(r"<.*?>", "", raw) + print(html_content) + + +main_test()