set notif follow dan buat delay antar fungsi
This commit is contained in:
parent
3cde26d4f0
commit
92623b7369
2 changed files with 45 additions and 15 deletions
|
@ -14,9 +14,11 @@ App ini masih dalam pengembangan dan banyak hal yang belum bisa dilakukan, berik
|
||||||
- [x] Mentions
|
- [x] Mentions
|
||||||
- [x] Like/Favourite
|
- [x] Like/Favourite
|
||||||
- [x] Boost/Reblog
|
- [x] Boost/Reblog
|
||||||
- [ ] Follow
|
- [x] Follow
|
||||||
- [ ] Tandai data di database jika sudah terkirim
|
- [x] Tandai data di database jika sudah terkirim
|
||||||
- [ ] Cron
|
- [ ] Delay antar fungsi
|
||||||
|
- [ ] Cron internal
|
||||||
|
- [ ] Build
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
Clone repositori ini dan install di lokal.
|
Clone repositori ini dan install di lokal.
|
||||||
|
|
52
main.py
52
main.py
|
@ -7,8 +7,9 @@ import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
import telegram
|
import telegram
|
||||||
import re
|
import re
|
||||||
|
import json
|
||||||
from models import Notifikasi, Session
|
from models import Notifikasi, Session
|
||||||
from sqlalchemy import and_, or_, func
|
from sqlalchemy import and_, or_, func, update
|
||||||
from sqlalchemy.exc import IntegrityError
|
from sqlalchemy.exc import IntegrityError
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
@ -31,23 +32,28 @@ async def getNotif():
|
||||||
|
|
||||||
if req.status_code == 200:
|
if req.status_code == 200:
|
||||||
data = req.json()
|
data = req.json()
|
||||||
|
print(data.__class__)
|
||||||
try:
|
try:
|
||||||
for notif in data:
|
for notif in data:
|
||||||
type = notif['type']
|
type = notif['type']
|
||||||
inreply = notif['status']['in_reply_to_id']
|
inreply = None
|
||||||
|
status_content = None
|
||||||
|
url = None
|
||||||
|
if 'status' in notif:
|
||||||
|
inreply = notif['status']['in_reply_to_id']
|
||||||
|
status_content = notif['status']['content']
|
||||||
|
url = notif['status']['url']
|
||||||
postid = notif['id']
|
postid = notif['id']
|
||||||
created = datetime.strptime(notif['created_at'], "%Y-%m-%dT%H:%M:%S.%fZ")
|
created = datetime.strptime(notif['created_at'], "%Y-%m-%dT%H:%M:%S.%fZ")
|
||||||
handler = notif['account']['acct']
|
handler = notif['account']['acct']
|
||||||
username = notif['account']['display_name']
|
username = notif['account']['display_name']
|
||||||
status = notif['status']['content']
|
|
||||||
url = notif['status']['url']
|
|
||||||
kirim = 'Belum'
|
kirim = 'Belum'
|
||||||
|
|
||||||
if type == 'follow':
|
if type == 'follow':
|
||||||
insert_follow = Notifikasi(post_id=postid, created_at=created, handler=handler, display_name=username, type=type, remark=kirim)
|
insert_follow = Notifikasi(post_id=postid, created_at=created, handler=handler, display_name=username, type=type, remark=kirim)
|
||||||
session.add(insert_follow)
|
session.add(insert_follow)
|
||||||
else:
|
else:
|
||||||
insert_mentions = Notifikasi(post_id=postid, created_at=created, handler=handler, display_name=username, type=type, status=status,url=url, remark=kirim)
|
insert_mentions = Notifikasi(post_id=postid, created_at=created, handler=handler, display_name=username, type=type, status=status_content,url=url, remark=kirim)
|
||||||
|
|
||||||
session.add(insert_mentions)
|
session.add(insert_mentions)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
@ -84,11 +90,11 @@ async def kirim_ke_tele():
|
||||||
if str(notif.type) == 'follow':
|
if str(notif.type) == 'follow':
|
||||||
try:
|
try:
|
||||||
await bot.send_message(parse_mode='html',chat_id=str(TELE_CHATID), text=f"""
|
await bot.send_message(parse_mode='html',chat_id=str(TELE_CHATID), text=f"""
|
||||||
<b>{notif.display_name}</b>\n<i>{notif.handler}</i>\n{flag}
|
<b>{notif.display_name}</b>\n<i>{notif.handler}</i>\n{flag}\n from python
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
except:
|
except Exception as e:
|
||||||
print('Ada masalah saat kirim ke Telebot')
|
print(f'Follow: Ada masalah saat kirim ke Telebot', e)
|
||||||
else:
|
else:
|
||||||
html_strip = re.compile('<.*?>')
|
html_strip = re.compile('<.*?>')
|
||||||
status = str(notif.status)
|
status = str(notif.status)
|
||||||
|
@ -96,13 +102,35 @@ async def kirim_ke_tele():
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await bot.send_message(parse_mode='html',chat_id=str(TELE_CHATID), text=f"""
|
await bot.send_message(parse_mode='html',chat_id=str(TELE_CHATID), text=f"""
|
||||||
<b>{notif.display_name}</b>\n<i>{notif.handler}</i>\n{flag}\n\n{status_text}\n\n{notif.url}
|
<b>{notif.display_name}</b>\n<i>{notif.handler}</i>\n{flag}\n\n{status_text}\nfrom python\n{notif.url}
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f'Ada masalah saat kirim ke Telebot1', e)
|
print(f'Mentions: Ada masalah saat kirim ke Telebot', e)
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
async def tandai_notif():
|
||||||
|
try:
|
||||||
|
cek_data = session.query(Notifikasi).filter(Notifikasi.remark == 'Belum').all()
|
||||||
|
session.execute(
|
||||||
|
update(Notifikasi).
|
||||||
|
where(Notifikasi.remark == 'Belum').
|
||||||
|
values(remark='Sudah')
|
||||||
|
)
|
||||||
|
session.commit()
|
||||||
|
except Exception as e:
|
||||||
|
print(f'Ada masalah saat update remark', e)
|
||||||
|
finally:
|
||||||
|
session.close()
|
||||||
|
|
||||||
|
async def jalan():
|
||||||
|
await asyncio.sleep(2)
|
||||||
|
await getNotif()
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
await kirim_ke_tele()
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
await tandai_notif()
|
||||||
|
|
||||||
# asyncio.run(getNotif())
|
#
|
||||||
asyncio.run(kirim_ke_tele())
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(jalan())
|
||||||
|
|
Loading…
Reference in a new issue