def danbooru(self, message):
"""
Get a random image from Danbooru
:param message:
:return:
"""
cursor = self.db.server_backend.find({"serv_id": message.server.id})
for c in cursor:
nsfw_status = c['nsfw']['nsfw_status']
nsfw_chan_id = c['nsfw']['nsfw_chan_id']
if nsfw_status == "on|global" or nsfw_chan_id == message.channel.id:
tag = message.content[10:]
tags = str(tag).rstrip()
if tags == "":
with aiohttp.ClientSession(
auth=aiohttp.BasicAuth(
login=settings["DANBOORU_ID"], password=settings["DANBOORU_PASSWORD"])) as session:
async with session.get("https://danbooru.donmai.us/posts.json?") as resp:
if resp.status == 200:
data = await resp.json()
else:
return
else:
with aiohttp.ClientSession(
auth=aiohttp.BasicAuth(
login=settings["DANBOORU_ID"], password=settings["DANBOORU_PASSWORD"])) as session:
async with session.get("https://danbooru.donmai.us/posts.json?tags={}".format(tag)) as resp:
if resp.status == 200:
data = await resp.json()
else:
return
if not data:
await self.ctx.send_message(message.channel,
"**Error**: `Tag {} did not return any results.`".format(tag))
return
data_len = len(data)
if data_len == 0:
await self.ctx.send_message(message.channel,
"**Error**: `Tag {} did not return any results.`".format(tag))
return
try:
ran = random.randint(0, data_len - 1)
lucky = data[ran]
a = "https://danbooru.donmai.us"
img = a + lucky['file_url']
await self.ctx.send_message(message.channel, img)
return
except KeyError:
pass
except IndexError:
pass
评论列表
文章目录