init commit
This commit is contained in:
commit
309c4111ef
49
birds.py
Normal file
49
birds.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
#!/bin/python
|
||||
|
||||
from fedibot import main, api
|
||||
import gelb
|
||||
import conf
|
||||
import random
|
||||
api.instance=conf.instance
|
||||
api.token=conf.token
|
||||
gelb.conf=conf.gelb
|
||||
|
||||
tags=conf.tags
|
||||
pointer=int(random.random()*len(tags))
|
||||
|
||||
@main.loop(20*60)
|
||||
async def shitpost():
|
||||
global pointer
|
||||
tag=tags[pointer]
|
||||
pointer+=1; pointer%=len(tags)
|
||||
img,name,src,ecchi=await gelb.getgelbimg(tag)
|
||||
await api.post(f'#{tag} {src}',[(name,img)],{'sensitive':ecchi})
|
||||
|
||||
def unescape(thing):
|
||||
out=[]
|
||||
m=len(thing)
|
||||
i=0
|
||||
while i<m:
|
||||
if thing[i]=='_':
|
||||
try:
|
||||
out.append(chr(int(thing[i+1:i+3],16)))
|
||||
i+=3
|
||||
continue
|
||||
except ValueError: pass
|
||||
out.append(thing[i])
|
||||
i+=1
|
||||
return ''.join(out)
|
||||
|
||||
@main.loop(30)
|
||||
async def reeepost():
|
||||
async for notif in api.stream('GET','notifications',{'included_types[]':['mention'],'types[]':['mention']},lambda x:{'max_id':x[-1]['id']}):
|
||||
s=notif['status']
|
||||
tag=s['tags']
|
||||
if not tag: continue
|
||||
tag=unescape(tag[0]['name'])
|
||||
img,name,src,ecchi=await gelb.getgelbimg(tag)
|
||||
if not img: await api.post(f'no images in {tag}, maybe you got the name backwards',json={'in_reply_to_id':s['id']}); continue
|
||||
await api.post(f'#{tag} {src}',[(name,img)],{'sensitive':ecchi,'in_reply_to_id':s['id']})
|
||||
await api.call('POST','notifications/clear')
|
||||
|
||||
main.run()
|
5
example_conf.py
Normal file
5
example_conf.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
instance='nigge.rs'
|
||||
token='XxXXxXxxxxxXXXXxxxxXXXxxxXXXXxxXXXxxXxX'
|
||||
gelb={"api_key": "fagfagfagfagfagfag", "user_id":9001}
|
||||
|
||||
tags=['your_mum','lwmmg_(girls_frontline)']
|
25
gelb.py
Normal file
25
gelb.py
Normal file
|
@ -0,0 +1,25 @@
|
|||
import aiohttp as ah
|
||||
import json as j
|
||||
from os import path
|
||||
|
||||
#conf=j.load(open(path.join(path.dirname(__file__),'config.json')))[path.splitext(path.basename(__file__))[0]]
|
||||
|
||||
baseurl='https://gelbooru.com/index.php'
|
||||
|
||||
async def getgelbimg(tags):
|
||||
params={'page':'dapi','s':'post','q':'index','limit':1,'json':1}
|
||||
params|=conf
|
||||
if isinstance(tags,str): params['tags']=f'{tags} sort:random'
|
||||
if isinstance(tags,list): params['tags']=' '.join(tags+['sort:random'])
|
||||
async with ah.ClientSession() as sess:
|
||||
async with sess.get(baseurl,params=params) as resp:
|
||||
try: data=(await resp.json())['post'][0]
|
||||
except KeyError: print('no result'); return None,None,None,None
|
||||
async with sess.get(data['file_url']) as resp:
|
||||
img=await resp.read()
|
||||
src=f'https://gelbooru.com/index.php?page=post&s=view&id={data["id"]}'
|
||||
ecchi=(data['rating']!="general") #lmao they changed it, need to fix this now
|
||||
name=data['image']
|
||||
return img,name,src,ecchi
|
||||
|
||||
#Gelb needs to put more API endpoints. Like edits.
|
Loading…
Reference in New Issue
Block a user