Notifikasi gotosocial dengan python
Find a file
2024-10-02 20:53:10 +07:00
.gitignore pertama komit 2024-09-29 17:14:20 +07:00
hapus_data.py tambah fungsi hapus data biar database ga gendut 2024-10-02 19:49:30 +07:00
main.py tambah fungsi hapus data biar database ga gendut 2024-10-02 19:49:30 +07:00
main_test.py konversi status 2024-10-02 12:39:37 +07:00
models.py benerin requirements.txt 2024-10-02 20:53:10 +07:00
pyrightconfig.json pertama komit 2024-09-29 17:14:20 +07:00
README.md konversi p ke double new line dan br ke single new line 2024-10-02 12:46:03 +07:00
requirements.txt benerin requirements.txt 2024-10-02 20:53:10 +07:00
snippets.py pertama komit 2024-09-29 17:14:20 +07:00

Python Gotosocial Notifikasi

Ini adalah script untuk mengambil notifikasi di instance kauaku.us (gotosocial) dan menyimpannya ke database sqlite.

kemudian mengirimkannya dengan telegram bot.

Todo

App ini masih dalam pengembangan dan banyak hal yang belum bisa dilakukan, berikut daftar todo:

  • Tarik data dari Gotosocial notifikasi API
  • Simpan data ke dalam database sqlite3
  • Koneksi ke Telegram Bot
  • Kirim data ke Telegram Bot (terbatas untuk mentions, like, boost)
    • Mentions
    • Like/Favourite
    • Boost/Reblog
    • Follow
  • Tandai data di database jika sudah terkirim
  • Delay antar fungsi
  • Cron internal
  • Build
  • Benahi html ke markdown, karena pakai parse MarkdownV2 pakai html

Install

Clone repositori ini dan install di lokal.

$ python3 -m venv myvenv
$ source myvenv/bin/activate
$ pip install -r requirements.txt

Awas, silakan edit dulu isi file requirements.txt karena isinya banyak module yang tak terpakai, ane belum sempat hapus 1 per 1.

.env

Saat ini ada 4 environment variable yaitu:

  1. GTS_API : untuk URL API dari instance gotosocial
  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, Sulit pakai Markdown karena bermasalah dengan entities, jadi pakai html (perlu perbaikan disini)
  2. Setiap instance punya cara sendiri - sendiri untuk menyimpan data status, ada yang pakai <p> untuk memisahkan baris atau membuat new line, ada pula yang pakai `
  3. Sedikit lebih lambat dibandingkan Deno TS?