dragon-bot/app/lewds.py

77 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
)