nsfw.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:Lapzbot_Beta 作者: lap00zza 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号