lolibot/lolibot.py

29 lines
1.4 KiB
Python

import os
from generate_config import generate_config
import json
import requests
import tempfile
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']})
post = requests.get('https://gelbooru.com/index.php', params={'page':'dapi','s':'post', 'q':'index', 'limit':1, 'tags':'loli sort:random score:>=10', '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()
print(attachment)
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
print(session.post(config['instance'] + '/api/v1/statuses', json={'status':content, 'media_ids':[attachment['id']], 'visibility':'direct', 'sensitive': True}).json())