Esempio n. 1
0
async def get_image(pid):
    url = 'https://api.pixiv.cat/v1/generate'
    headers = {
        'user-agent':
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
    }
    payload = {'p': pid}
    try:
        resp = await aiorequests.post(url,
                                      headers=headers,
                                      json=payload,
                                      timeout=20)
        res = await resp.json()
    except Exception as e:
        return None
    success = res['success']
    if success is False:
        return res['error']
    multiple = res['multiple']
    msg = ''
    if multiple:
        img_url = res['original_urls_proxy']
        for item in img_url:
            image = MessageSegment.image(item)
            msg += f'{image}\n'
        msg = msg.strip()
    else:
        img_url = res['original_url_proxy']
        msg = MessageSegment.image(img_url)
    return msg
Esempio n. 2
0
 def cqcode(self) -> MessageSegment:
     if cheru.config.RES_PROTOCOL == 'http':
         return MessageSegment.image(self.url)
     elif cheru.config.RES_PROTOCOL == 'file':
         return MessageSegment.image(f'file:///{os.path.abspath(self.path)}')
     else:
         try:
             return MessageSegment.image(helper.pic2b64(self.open()))
         except Exception as e:
             return MessageSegment.text('[图片出错]')
Esempio n. 3
0
async def pic(bot: Bot, event: Event, state: dict):  # 数据库
    # logger.info(bot.__dict__)
    # logger.info(event.dict())
    # logger.info(state)
    args = str(event.get_message()).strip().split()
    url = args[0]
    if url[:4] == "http":
        await bot.send(message=Message(MessageSegment.image(url)), event=event)
    else:
        key = "https://pixiv.cat/{}.jpg".format(url)
        await bot.send(message=Message(MessageSegment.image(key)), event=event)
Esempio n. 4
0
async def _(bot: Bot, event: GroupMessageEvent):
    global cd
    if str(event.group_id) not in cd:
        cd[str(event.group_id)] = int(time.time())
    ## 初始化cd

    if cd[str(event.group_id)] <= int(time.time()):
        keyword = event.get_message().__str__().strip()
        response = requests.get(
            "https://api.lolicon.app/setu/?apikey={0}&r18={1}&keyword={2}&num={3}&proxy=i.pixiv.cat&size1200=false"
            .format("698604975f3623bd7ed1d0", "2", keyword, 3))
        data = json.loads(response.text)
        if data["code"] == 0:
            cd[str(event.group_id)] = int(time.time()) + 60
            quota = data["quota"]
            if keyword == "":
                await setu.send("正在获取涩图,今日剩余可调用 {0} 次".format(quota))
            else:
                await setu.send("正在获取 [{0}] 涩图,今日剩余可调用 {1} 次".format(
                    keyword, quota))
            for i in data["data"]:
                content = "\n标题: {0} (PID: {1})".format(i["title"], i["pid"])
                content += "\n作者: {0} (UID: {1})".format(i["author"], i["uid"])
                try:
                    await setu.send(MessageSegment.image(i["url"]) + content)
                except Exception as e:
                    print(e)
        elif data["code"] == 404:
            await setu.send("没有符合条件的涩图")
        else:
            await setu.send("获取失败")
    else:
        await setu.finish(
            Message(f"CD还剩 {cd[str(event.group_id)] - int(time.time())} 秒,请节制")
        )
Esempio n. 5
0
async def gacha_ten(bot: Bot, event: Event, state: dict):
    SUPER_LUCKY_LINE = 170

    uid = event.user_id
    await check_jewel_num(sv_ten, uid)
    jewel_limit.increase(uid, 1500)

    gid = str(event.group_id)
    gacha = Gacha(_group_pool[gid])
    result, hiishi = gacha.gacha_ten()
    silence_time = 60

    res1 = chara.gen_team_pic(result[:5], star_slot_verbose=False)
    res2 = chara.gen_team_pic(result[5:], star_slot_verbose=False)
    res = helper.concat_pic([res1, res2])
    res = helper.pic2b64(res)
    res = MessageSegment.image(res)
    result = [f'{c.name}{"★"*c.star}' for c in result]
    res1 = ' '.join(result[0:5])
    res2 = ' '.join(result[5:])
    res = f'{res}\n{res1}\n{res2}'

    if hiishi >= SUPER_LUCKY_LINE:
        await sv_ten.send('恭喜海豹!おめでとうございます!')
    try:
        await bot.set_group_ban(self_id=event.self_id,
                                group_id=event.group_id,
                                user_id=uid,
                                duration=silence_time)
    except Exception as e:
        logger.error(e)
    kwargs = {'at_sender': True}
    await sv_ten.finish(f'素敵な仲間が増えますよ!\n{res}\n', **kwargs)
Esempio n. 6
0
async def handle_short(bot: Bot, event: GroupMessageEvent, state: T_State):
    group = state["_matched_dict"]
    number = int(group["number"])
    full_name = get_group_bind_repo(str(event.group_id))
    if not full_name:
        await issue_short.finish("此群尚未与仓库绑定!")
        return
    match = re.match(REPO_REGEX, full_name)
    if not match:
        await issue_short.finish("绑定的仓库名不合法!请重新尝试绑定~")
    owner = match.group("owner")
    repo = match.group("repo")

    token = None
    if get_user_token:
        token = get_user_token(event.get_user_id())
    try:
        issue_ = await get_issue(owner, repo, number, token)
    except HTTPStatusError:
        await issue.finish(f"Issue #{number} not found for repo {owner}/{repo}"
                           )
        return
    img = await issue_to_image(issue_)
    if img:
        await send_github_message(
            issue_short, owner, repo, number,
            MessageSegment.image(f"base64://{base64.b64encode(img).decode()}"))
Esempio n. 7
0
async def workTMD():
    bot = nonebot.get_bots()
    if bot:
        bot = bot['1928994748']
        await bot.send_msg(message=MessageSegment.image(
            f"file:////root/QQbotFiles/baoshi/workTMD.png"),
                           user_id="1761512493")
Esempio n. 8
0
async def handle(bot: Bot, event: Event, state: T_State):
    async with httpx.AsyncClient() as client:
        resp = await client.get('https://api.mtyqx.cn/api/random.php?return=json')
        logger.debug(resp.json())
        imgurl = resp.json()['imgurl']
        # cqimg = f"[CQ:image,file=1.{imgurl.split('.')[1]},url={imgurl}]"
        await setu.send(MessageSegment.image(imgurl))
Esempio n. 9
0
async def handle_draw(bot: Bot, event: GroupMessageEvent, state: T_State):
    image_url = state['image_url']
    if not re.match(r'^(\[CQ:image,file=[abcdef\d]{32}\.image,url=.+])',
                    image_url):
        await search_anime.reject('你发送的似乎不是图片呢, 请重新发送, 取消命令请发送【取消】:')

    # 提取图片url
    image_url = re.sub(r'^(\[CQ:image,file=[abcdef\d]{32}\.image,url=)', '',
                       image_url)
    image_url = re.sub(r'(])$', '', image_url)

    await search_anime.send('获取识别结果中, 请稍后~')

    res = await get_identify_result(img_url=image_url)
    if not res.success():
        logger.info(f"Group: {event.group_id}, user: {event.user_id} "
                    f"search_anime failed: {res.info}")
        await search_anime.finish('发生了意外的错误QAQ, 请稍后再试')

    if not res.result:
        logger.info(f"Group: {event.group_id}, user: {event.user_id} "
                    f"使用了search_anime, 但没有找到相似的番剧")
        await search_anime.finish('没有找到与截图相似度足够高的番剧QAQ')

    for item in res.result:
        try:
            raw_at = item.get('raw_at')
            at = item.get('at')
            anilist_id = item.get('anilist_id')
            anime = item.get('anime')
            episode = item.get('episode')
            tokenthumb = item.get('tokenthumb')
            filename = item.get('filename')
            similarity = item.get('similarity')
            title_native = item.get('title_native')
            title_chinese = item.get('title_chinese')
            is_adult = item.get('is_adult')

            thumb_img_url = f'https://trace.moe/thumbnail.php?' \
                            f'anilist_id={anilist_id}&file={filename}&t={raw_at}&token={tokenthumb}'

            img_b64 = await pic_2_base64(thumb_img_url)
            if not img_b64.success():
                msg = f"识别结果: {anime}\n\n名称:\n【{title_native}】\n【{title_chinese}】\n" \
                      f"相似度: {similarity}\n\n原始文件: {filename}\nEpisode: 【{episode}】\n" \
                      f"截图时间位置: {at}\n绅士: 【{is_adult}】"
                await search_anime.send(msg)
            else:
                img_seg = MessageSegment.image(img_b64.result)
                msg = f"识别结果: {anime}\n\n名称:\n【{title_native}】\n【{title_chinese}】\n" \
                      f"相似度: {similarity}\n\n原始文件: {filename}\nEpisode: 【{episode}】\n" \
                      f"截图时间位置: {at}\n绅士: 【{is_adult}】\n{img_seg}"
                await search_anime.send(Message(msg))
        except Exception as e:
            logger.error(f"Group: {event.group_id}, user: {event.user_id}  "
                         f"使用命令search_anime时发生了错误: {repr(e)}")
            continue
    logger.info(f"Group: {event.group_id}, user: {event.user_id} "
                f"使用search_anime进行了一次搜索")
Esempio n. 10
0
async def love_rev(bot: Bot, event: Event, state: dict):
    msg = "/root/" + str(event.get_message())[5:]
    print(msg)
    if os.path.exists(msg):
        await bot.send(event=event,
                       message=MessageSegment.image(f"file:///{msg}"))
    else:
        await bot.send(event=event, message="错误: 文件不存在,或者不是图片")
Esempio n. 11
0
async def handle_poke(bot: Bot, event: PokeNotifyEvent):
    if event.target_id == BOT_ID:  # 自己被戳
        try:
            await poke.finish("狗修金!不许踢丛雨丸!" +
                              MessageSegment.image(get_avatar_url()))
        except ActionFailed as e:
            print(f"[poke.py]: {e}")
            await poke.finish("狗修金!不许踢丛雨丸!>_<")
Esempio n. 12
0
async def handle_moepic(bot: Bot, event: GroupMessageEvent, state: T_State):
    tags = state['tags']
    if tags:
        _res_list = list()
        for tag in tags:
            _res = DBPixivillust.list_illust(nsfw_tag=0, keyword=tag)
            if _res.success():
                _pids = set(_res.result)
                _res_list.append(_pids)
        if len(_res_list) > 1:
            # 处理tag交集, 同时满足所有tag
            for item in _res_list[1:]:
                _res_list[0].intersection_update(item)
            pid_list = _res_list[0]
        elif len(_res_list) == 1:
            pid_list = _res_list[0]
        else:
            pid_list = _res_list
    else:
        # 没有tag则随机获取
        pid_list = DBPixivillust.rand_illust(num=3, nsfw_tag=0)

    if not pid_list:
        logger.info(
            f"Group: {event.group_id}, User: {event.user_id} 没有找到他/她想要的萌图")
        await moepic.finish('找不到萌图QAQ')
    elif len(pid_list) > 3:
        pid_list = random.sample(pid_list, k=3)

    await moepic.send('稍等, 正在下载图片~')
    # 处理article中图片内容
    tasks = []
    for pid in pid_list:
        tasks.append(fetch_illust_b64(pid=pid))
    p_res = await asyncio.gather(*tasks)
    fault_count = 0
    for image_res in p_res:
        try:
            if not image_res.success():
                fault_count += 1
                logger.warning(f'图片下载失败, error: {image_res.info}')
                continue
            else:
                img_seg = MessageSegment.image(image_res.result)
            # 发送图片
            await moepic.send(img_seg)
        except Exception as e:
            logger.warning(
                f"图片发送失败, group: {event.group_id}. error: {repr(e)}")
            continue

    if fault_count == len(pid_list):
        logger.info(
            f"Group: {event.group_id}, User: {event.user_id} 没能看到他/她想要的萌图")
        await moepic.finish('似乎出现了网络问题, 所有的图片都下载失败了QAQ')
    else:
        logger.info(
            f"Group: {event.group_id}, User: {event.user_id} 找到了他/她想要的萌图")
Esempio n. 13
0
async def handle(bot: Bot, event: MessageEvent, state: T_State):
    raw_args = str(event.get_message()).strip()
    argc = 0
    if raw_args:
        arg_list = raw_args.split()
        argc = len(arg_list)
        for i in range(argc):
            state[f"arg{i+1}"] = arg_list[i]

    if argc > 0 and state["arg1"] == "日榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="https://rakuen.thec.me/PixivRss/daily-10")
    elif argc > 0 and state["arg1"] == "周榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="http://rakuen.thec.me/PixivRss/weekly-10")
    elif argc > 0 and state["arg1"] == "月榜":
        is_timeout, is_error, status, data = await get_image_data_v1(
            url="https://rakuen.thec.me/PixivRss/monthly-10")
    elif argc > 0:
        keyword = unescape(state["arg1"])
        await pixiv.send(f"正在搜索[{keyword}]……")
        is_timeout, is_error, status, data = await get_image_data_v2(
            tag=keyword)
    else:
        is_timeout, is_error, status, data = await get_image_data_v2()

    uid = event.user_id
    session_id = event.get_session_id().split("_")
    # 消息来自群聊
    if len(session_id) == 3:
        at = MessageSegment.at(uid) + "\n"
    else:
        at = ""

    if is_timeout:
        await pixiv.finish(at + "苦しい……请求超时了(´。_。`)")
    if status != 200 and status != 0:
        await pixiv.finish(at + f"苦しい……连接出错了({status}),可以马上重试一下呢!")
    if is_error:
        await pixiv.finish(at + "苦しい……连接出错了(´。_。`)")
    elif len(data) == 0:
        await pixiv.finish(at + "寂しい……什么都没找到呢。试试范围更大的关键词哦!")
    else:
        chosen = choice(data)
        try:
            await pixiv.send(at + f"{chosen[0]}\nPixiv 链接:{chosen[1]}\n" +
                             MessageSegment.image(chosen[2]) +
                             "可能会发不出图片呜呜,复制下面链接到浏览器查看吧")
        except ActionFailed as e:
            await pixiv.send(
                at +
                f"{chosen[0]}\nPixiv 链接:{chosen[1]}\n大概是太涩了差点发不出来,复制下面链接到浏览器查看吧"
            )
            print(f"[pixiv.py]: {e}")
        finally:
            await pixiv.finish(await async_shorten_url(chosen[2]))
Esempio n. 14
0
async def handle_search(bot: Bot, event: Event, state: T_State):
    keywords = state["keywords"]
    data = await search_pic(keywords)
    if data == "404":
        await bot.send(event=event, message="没有符合条件的图")
    else:
        await bot.send(event=event, message=Message("找到图了!但是发给主人了~"))
        await bot.call_api("send_private_msg",
                           user_id=1924451951,
                           message=MessageSegment.image(file=data['url']))
Esempio n. 15
0
async def handle_draw(bot: Bot, event: GroupMessageEvent, state: T_State):
    image_url = state['image_url']
    if not re.match(r'^(\[CQ:image,file=[abcdef\d]{32}\.image,url=.+])',
                    image_url):
        await search_image.reject('你发送的似乎不是图片呢, 请重新发送, 取消命令请发送【取消】:')

    # 提取图片url
    image_url = re.sub(r'^(\[CQ:image,file=[abcdef\d]{32}\.image,url=)', '',
                       image_url)
    image_url = re.sub(r'(])$', '', image_url)

    try:
        await search_image.send('获取识别结果中, 请稍后~')
        identify_result = await get_identify_result(url=image_url)
        # saucenao 没有结果时再使用 ascii2d 进行搜索
        if not identify_result:
            identify_ascii2d_result = await get_ascii2d_identify_result(
                url=image_url)
            # 合并搜索结果
            identify_result.extend(identify_ascii2d_result)
        if identify_result:
            for item in identify_result:
                try:
                    if type(item['ext_urls']) == list:
                        ext_urls = ''
                        for urls in item['ext_urls']:
                            ext_urls += f'{urls}\n'
                        ext_urls = ext_urls.strip()
                    else:
                        ext_urls = item['ext_urls']
                        ext_urls = ext_urls.strip()
                    img_b64 = await pic_2_base64(item['thumbnail'])
                    if not img_b64.success():
                        msg = f"识别结果: {item['index_name']}\n\n相似度: {item['similarity']}\n资源链接: {ext_urls}"
                        await search_image.send(msg)
                    else:
                        img_seg = MessageSegment.image(img_b64.result)
                        msg = f"识别结果: {item['index_name']}\n\n相似度: {item['similarity']}\n资源链接: {ext_urls}\n{img_seg}"
                        await search_image.send(Message(msg))
                except Exception as e:
                    logger.warning(f'处理和发送识别结果时发生了错误: {repr(e)}')
                    continue
            logger.info(f"Group: {event.group_id}, user: {event.user_id} "
                        f"使用searchimage成功搜索了一张图片")
            return
        else:
            await search_image.send('没有找到相似度足够高的图片QAQ')
            logger.info(f"Group: {event.group_id}, user: {event.user_id} "
                        f"使用了searchimage, 但没有找到相似的图片")
            return
    except Exception as e:
        await search_image.send('识图失败, 发生了意外的错误QAQ')
        logger.error(f"Group: {event.group_id}, user: {event.user_id}  "
                     f"使用命令searchimage时发生了错误: {repr(e)}")
        return
Esempio n. 16
0
def build_imgmsg(gets: list, msgs: list):
    msg = ""
    for i in range(len(gets)):
        if not gets[i]:
            msg = msg + msgs[i] + "无\n"
        else:
            msg += msgs[i]
            for s in gets[i]:
                msg = msg + MessageSegment.image(file=s["url"])
            msg += "\n"
    return [msg[:-1]]
Esempio n. 17
0
async def get_des(url: str):
    image_data: List[Tuple] = await get_pic_from_url(url)
    if not image_data:
        msg: str = "找不到高相似度的"
        yield msg
        return
    for pic in image_data:
        msg = MessageSegment.image(file=pic[0]) + "\n"
        for i in pic[1:]:
            msg = msg + f"{i}\n"
        yield msg
Esempio n. 18
0
async def _(bot: Bot, event: MessageEvent):
    city = get_msg(event.get_plaintext())
    if city is None:
        await weather.finish("地点是...空气吗?? >_<")
    data = await get_City_Weather(city)
    if type(data) is int:
        if data == 404:
            await weather.finish()
        else:
            await weather.finish(f"出错了! 错误代码={data}")
    img = draw(data) if data else None
    b64 = img_to_b64(img) if img else None
    if data["warning"]:
        warning = data["warning"]["warning"]
        text = ""
        for i in range(len(warning)):
            text = f'\n{warning[i]["text"]}'
        await weather.finish(
            MessageSegment.image(b64) + MessageSegment.text(text))
    else:
        await weather.finish(MessageSegment.image(b64))
async def get_des(url: str):
    image_data: List[Tuple] = await get_pic_from_url(url)
    if not image_data:
        msg: str = "找不到高相似度的"
        yield msg
        return
    for pic in image_data:
        msg = MessageSegment.image(
            file=pic[0]
        ) + f"\n相似度:{pic[1]}\n标题:{pic[2]}\npixivid:{pic[3]}\nmember:{pic[4]}\n"
        yield msg
    pass
Esempio n. 20
0
async def get_des(url: str):
    image_data: List[Tuple] = await get_pic_from_url(url)
    if not image_data:
        msg: str = "找不到高相似度的"
        yield msg
        return
    for pic in image_data:
        msg = MessageSegment.image(
            file=pic[
                0]) + f"\n相似度:{pic[1]}%\n标题:{pic[6]['native'] + ' ' + pic[6]}\n第{pic[7]}集\nR18:{pic[3]}\n开始时间:{pic[4]}s\n结束时间{pic[5]}s"
        yield msg
    pass
Esempio n. 21
0
    async def random_setu() -> tuple:
        """
        随机涩图.
        """
        res = await request.get(LOLICON_URL)
        data: dict = await res.json()
        temp_data: dict = data.get("data", list())[0]

        title = temp_data.get("title", "木陰のねこ")
        p_id = temp_data.get("pid", 88124144)
        url = temp_data["urls"].get("original", "ignore")
        setu = MessageSegment.image(url)
        return setu, title, p_id
Esempio n. 22
0
def build_imgmsg(draw_result: Dict[str, List[str]]):
    """生成图像消息"""
    # 将每个类别的抽卡结果汇聚到一个列表
    items = []
    for _, l in draw_result.items():
        items.extend(l)
    # 对每个item获取图像
    imgs = [get_image(current_game, item) for item in items]
    res_img = concat_pic(imgs)
    res_b64 = pic2b64(res_img)

    msg = MessageSegment.image(file=res_b64)
    return msg
Esempio n. 23
0
async def search(bot: Bot, event: Event, state: T_State):
    images = get_message_image(event.json())
    if have_image(images):
        for image in images:
            logger.info(f"imgsearch: search -> \"{image}\"")

            logger.info(f"SauceNAO: searching...")
            res_sauce = await saucenao.search(image)
            if res_sauce.status_code // 100 == 2:
                logger.info(f"SauceNAO: hit on {res_sauce.content['rate']}")
                res_text = f"[ {res_sauce.content['index']} / {res_sauce.content['rate']} ]\n" + \
                    "\n".join(f"{k}: {v}"for k,
                              v in res_sauce.content['data'].items())
                message = MessageSegment.reply(
                    event.message_id) + MessageSegment.text(res_text)
                await bot.send(event, message)
            elif res_sauce.status_code // 100 == 3:
                logger.info("SauceNAO: not found")
                logger.info(f"Ascii2D: searching...")
                res_ascii = await ascii2d.search(image)
                if res_ascii.status_code // 100 == 2:
                    message = MessageSegment.reply(
                        event.message_id) + MessageSegment.text("\n".join(
                            f"{k}: {v}" for k, v in res_ascii.content.items()))
                    await bot.send(event, message)

                elif res_ascii.status_code // 100 == 3:
                    message_1 = MessageSegment.reply(event.message_id)+MessageSegment.text("\n".join(f"{k}: {v}"for k, v in res_ascii.content[0].items())) +\
                        MessageSegment.image(res_ascii.content[1])
                    message_2 = MessageSegment.reply(event.message_id)+MessageSegment.text("\n".join(f"{k}: {v}"for k, v in res_ascii.content[2].items())) +\
                        MessageSegment.image(res_ascii.content[3])
                    logger.info(f"Ascii2D: sending possible results...")
                    await bot.send(event, message_1)
                    await bot.send(event, message_2)
                elif res_ascii.status_code // 100 == 4:
                    logger.info(f"Ascii2D: {res_ascii.message}")

            elif res_sauce.status_code // 100 == 4:
                logger.error(f"SauceNAO: {res_sauce.message}")
Esempio n. 24
0
def setu_msg(data: Dict, type: int, user: int) -> Message:
    msg = ""
    pid = data["pid"]
    title = data["title"]
    img_url = data["urls"]["original"]
    img = MessageSegment.image(img_url, proxy=False)
    setu = Message(f"Pid: {pid}\n" f"Title: {title}\n" f"{img}")
    at_msg = Message(f">{MessageSegment.at(user)}\n")
    if type == 3:
        msg = f"[CQ:cardimage,file={img_url}]"
    elif type == 1:
        msg = at_msg + setu
    return Message(msg)
Esempio n. 25
0
async def threeciyuan_rep(bot: Bot, event: Event, state: dict):
    if pingbi(event):
        return
    path_prefix = "/root/QQbotFiles/3c/"
    img_list = await get_img_list(path_prefix)
    if not img_list:
        await yulu.finish("3次元库已经空了")
    else:
        path = rd.choice(img_list)
        await bot.send(event=event,
                       message=MessageSegment.image(
                           await get_img_url(path_prefix + path)) +
                       f"rm {path}")
Esempio n. 26
0
async def setu_rev(bot: Bot, event: Event, state: dict):
    if pingbi(event):
        return
    path_prefix = "/root/QQbotFiles/img/"
    img_list = await get_img_list(path_prefix)
    if not img_list:
        await setu.finish("色图库已经空了")
    else:
        rd.seed(time.time())
        path = img_list[rd.randint(0, len(img_list) - 1)]
        await bot.send(event=event,
                       message=MessageSegment.image(
                           await get_img_url(path_prefix + path)) +
                       f"rm {path}")
Esempio n. 27
0
async def handle_city(bot: Bot, event: Event, state: T_State):
    words = state["words"]
    data = await fetch_wikipedia(words)
    if data['content'] == '':
        msg = '==未找到该词条=='
        await bot.send(event=event, message=msg)
    else:
        msg = data['content']
        try:
            await bot.send(event=event,
                           message=msg +
                           MessageSegment.image(file=data['ImgUrl']))
        except:
            await bot.send(event=event, message=msg)
Esempio n. 28
0
async def run_every_2_hour():
    hour = datetime.now().hour
    if 1 <= hour <= 8:
        return
    if hour > 12:
        hour -= 12
    if hour == 0:
        hour = 12
    bot = nonebot.get_bots()
    if bot:
        bot = bot['1928994748']
        #    await bot.send_msg(message_type="group",message=MessageSegment.image(f"file:////root/QQbotFiles/baoshi/{hour}.png"),group_id=68724983)
        await bot.send_msg(message=MessageSegment.image(
            f"file:////root/QQbotFiles/baoshi/{hour}.png"),
                           user_id="1761512493")
Esempio n. 29
0
async def get_des(url: str):
    """
    迭代要发送的信息
    :param url:
    :return:
    """
    image_data: List[Tuple] = await get_pic_from_url(url)
    if not image_data:
        msg: str = "找不到高相似度的"
        yield msg
        return
    for name, href, pic_url in image_data:
        content = await get_content_from_url(pic_url)
        msg = MessageSegment.image(
            file=content) + f"\n本子名称:{name}\n" + f"链接{href}\n"
        yield msg
Esempio n. 30
0
async def get_des(url: str):
    """
    返回详细简介  cq码转义
    :param url:
    :return:
    """
    image_data: List[Tuple] = await get_pic_from_url(url)
    if not image_data:
        msg: str = "找不到高相似度的"
        yield msg
        return
    for pic in image_data:
        msg = MessageSegment.image(file=pic[0]) + f"\n{pic[1]}\n"
        for i in pic[2]:
            msg = msg + f"{i}\n"
        yield msg