dragon-bot/app/lewds.py

81 lines
2.1 KiB
Python
Executable File

import random
import requests
import get_from_reddit
def get_from_danbooru(boards, nsfw=True):
"""
get_from_danbooru(boards)
returns a URL to an image on danbooru
"""
request = requests.get(
'https://danbooru.donmai.us/posts/random.json?tags=rating%3Aexplicit'
).json()
# List of tags we dont want images from
undesired_tags = [
'bestiality',
'pee',
'futa',
'futanari',
'yaoi'
]
# If any undesired tags show up in the request, try again
if not set(request['tag_string'].split()).isdisjoint(undesired_tags):
return get_from_danbooru(boards)
# Return the large firl url if available
if 'large_file_url' in request.keys():
if request['large_file_url'].startswith('/data/'):
return "https://danbooru.donmai.us{}".format(request['large_file_url'])
return request['large_file_url']
if 'file_url' in request.keys():
if request['file_url'].startswith('/data/'):
return "https://danbooru.donmai.us{}".format(request['file_url'])
return request['file_url']
return get_from_danbooru(boards)
def get_lewd():
"""
get_lewd()
Chooses between getting from reddit or danbooru
If reddit is chosen, picks a random subreddit from the list of boards and
grabs a random image using the get_from_reddit() method
"""
# List of subreddits that have the lewds we seek
boards = [
'2Booty',
'ahegao',
'bakunyuu_hentai',
'BigAnimeTiddies',
'hentaibreeding',
'hentaiclevage',
'oppailove',
'ecchi',
'fitdrawngirls',
'musclegirlart',
'fitmoe',
'hentai',
'rule34',
'rule34lol',
'WesternHentai',
'doujinshi',
'hentai_gif',
'muchihentai',
'Paizuri',
'chiisaihentai',
'dekaihentai',
'WaifusGonewild',
'thighdeology'
]
# This is really bad practice but pass boards to get_from_reddit AND danbooru so it doesnt error
return random.choice([get_from_reddit.get_image, get_from_danbooru])(boards=boards, nsfw=True)