34 lines
1.6 KiB
Python
34 lines
1.6 KiB
Python
import os
|
|
from generate_config import generate_config
|
|
import json
|
|
import requests
|
|
import tempfile
|
|
import time
|
|
parent = os.path.dirname(os.path.realpath(__file__))
|
|
|
|
if not os.path.exists(os.path.join(parent, 'config.json')):
|
|
generate_config("lolibot", "write:statuses write:media")
|
|
with open(os.path.join(parent, 'config.json'), 'r') as config_file:
|
|
config = json.load(config_file)
|
|
|
|
session = requests.Session()
|
|
session.headers.update({"Authorization" : "Bearer " + config['user_token']})
|
|
|
|
def make_post():
|
|
post = requests.get('https://gelbooru.com/index.php', params={'page':'dapi','s':'post', 'q':'index', 'limit':1, 'tags':'loli flat_chest sort:random score:>=100 -lowres -video', 'json':1}).json()['post'][0]
|
|
print(post['id'])
|
|
with tempfile.TemporaryFile('w+b', suffix='.' + post['file_url'].split('.')[-1]) as image:
|
|
#with open('image.' + post['file_url'].split('.')[-1], 'w+b') as image:
|
|
image.write(requests.get(post['file_url']).content)
|
|
image.seek(0)
|
|
attachment = session.post(config['instance'] + '/api/v2/media', files={'file':image}, data={'description': 'gelbooru ID: ' + str(post['id'])}).json()
|
|
content = 'source: https://gelbooru.com/index.php?page=post&s=view&id=' + str(post['id'])
|
|
if not 'source_request' in post['tags'].split(' '):
|
|
content = 'source: ' + post['source']
|
|
sensitive = True
|
|
session.post(config['instance'] + '/api/v1/statuses', json={'status':content, 'media_ids':[attachment['id']], 'visibility':'unlisted', 'sensitive': True})
|
|
|
|
|
|
while True:
|
|
make_post()
|
|
time.sleep(1 * 60 * 60) |