コード例 #1
0
def infoProcess(groupId,sender,check):
    if sender in getAdmin(groupId):
        if infoCheckJudge(check):
            if check in adminCheck:
                return showSetting(groupId,sender,check)
            else:
                if not sender==HostQQ:
                    record("setting:Insufficient permissions","none",sender,groupId,False,"function")
                    return [
                        At(target=sender),
                        Plain(text="Insufficient permissions!")
                    ]
                else:
                    return showSetting(groupId,sender,check)
        else:
            record("setting:command error","none",sender,groupId,False,"function")
            return [
                At(target=sender),
                Plain("Command error!")
            ]
    else:
        return [
            At(target=sender),
            Plain(text="爬爬爬,你没有管理权限!离人家远一点啦!死变态!")
        ]
コード例 #2
0
ファイル: hello.py プロジェクト: zdf0221/Hothot
async def daily_pic(app: Mirai, group: Group, member: Member,
                    message: MessageChain):
    matches = ['.setu', '来张色图', '来份色图', '不够色', '就这?']
    if any(x in message.toString() for x in matches):
        ans = random.randint(0, 1)
        if ans:
            try:
                path = os.path.abspath(__file__)
                path = os.path.dirname(path)
                path = os.path.join(path, 'Tornado_webite_test')
                path = os.path.join(path, 'Pixiv')
                # print(path)
                pic_name = os.listdir(path)
                # print(pic_name)
                random_pic = os.path.join(path, random.choice(pic_name))
                await app.sendGroupMessage(group.id, [
                    At(target=member.id),
                    Image.fromFileSystem(random_pic),
                    Plain(text="这是您点的一份色图~")
                ])
            except (RuntimeError, ValueError, EnvironmentError,
                    PermissionError, ConnectionRefusedError):
                print("send setu message error!")
        else:
            await app.sendGroupMessage(group.id, [
                At(target=member.id),
                Plain(text="本烫不想理你"),
                Face(faceId=212),
            ])
コード例 #3
0
async def search_image(app: Mirai, group: Group, member: Member, cp: CommandParser, message: MessageChain):
    pa = cp.parse_with_valid(["[Image"])
    if isinstance(pa, str):
        return await app.sendGroupMessage(group, [At(member.id), Plain(pa)])
    elif not pa:
        return await app.sendGroupMessage(group, [At(member.id), Plain("参数不能为空")])
    img = message.getFirstComponent(Image)
    with open(f"{ROOT}{str(img.imageId)}.jpg", "wb") as f:
        f.write((await img.toBytes()).getvalue())
    try:
        _, raw = await wget(f"https://saucenao.com/search.php?output_type=2&testmode=0&numres=4&url=https://www.pixivdl.net/static/img/{str(img.imageId)}.jpg")
    finally:
        os.remove(f"{ROOT}{str(img.imageId)}.jpg")
    data = Parser.parse_raw(raw)
    if data.header.status != 0:
        print(raw)
        return await app.sendGroupMessage(group, [At(member.id), Plain(f"发生错误:status: {data.header.status}")])
    result = ["查询结果:\n", f"作品类型:{DataBase.get(data.results[0].header.index_id)}\n",
              f"准确度:{data.results[0].header.similarity}%\n", f"剩余次数:{data.header.long_remaining}\n"]
    if data.results[0].header.index_id in (21, 22):  # Anime, HAnime
        result.append(f"作品名:{data.results[0].data.source}\n")
        result.append(f"年份:{data.results[0].data.year}\n")
        result.append(f"目标位置:第{data.results[0].data.part}集,{data.results[0].data.est_time}\n")
    elif data.results[0].header.index_id in (5, 31, 33, 34):  # Image
        result.append(f"标题:{data.results[0].data.title}\n")
    result.append(f"更多信息:{data.results[0].data.ext_urls[0]}")
    await app.sendGroupMessage(group, [At(member.id), *(Plain(msg) for msg in result)])
コード例 #4
0
async def edit_config(app: Mirai, group: Group, member: Member,
                      message: MessageChain):
    if member.id in conf.get("permission", "operator"):
        try:
            _, segment, block, method, value = message.toString().split(" ")
        except ValueError:
            await app.sendGroupMessage(group, [At(member.id), Plain("参数不足")])
            return
        try:
            data = json.loads(value)
        except json.decoder.JSONDecodeError:
            data = value
        try:
            if method == "replace":
                conf.set(segment, block, data)
            elif method == "update":
                c = conf.get(segment, block)
                if isinstance(c, (list, tuple)):
                    c.append(data)
                elif isinstance(c, dict):
                    c.update(data)
            else:
                await app.sendGroupMessage(
                    group,
                    [At(member.id), Plain(f"未知方法:{method}")])
                return
            await app.sendGroupMessage(group, [At(member.id), Plain("修改成功")])
        except ValueError as e:
            await app.sendGroupMessage(
                group,
                [At(member.id), Plain(f"修改配置时发生错误:\n{e}")])
コード例 #5
0
 async def wipDDL(g, mb, tit, delays):
     print('delay:', delays)
     try:
         await asyncio.sleep(delays)
         with open(f'ddl/{g}', 'r') as fr:
             j = json.load(fr)
         del ddlQueuer[tit]
         del j[tit]
         with open(f'ddl/{g}', 'w') as fw:
             json.dump(j, fw)
         if delays > -10:
             if g >= 2**39:
                 if random.randint(0, 4):
                     await GLOBAL.app.sendGroupMessage(
                         g - 2**39,
                         [At(mb), Plain(tit + '大限已至,我扔掉了。')])
                 else:
                     await GLOBAL.app.sendGroupMessage(
                         g - 2**39,
                         [At(mb), Plain(tit + '变臭力,只能扔了(悲')])
             else:
                 if random.randint(0, 4):
                     await GLOBAL.app.sendFriendMessage(
                         g, [Plain(tit + '大限已至,我扔掉了。')])
                 else:
                     await GLOBAL.app.sendFriendMessage(
                         g, [Plain(tit + '变臭力,只能扔了(悲')])
     except Exception as e:
         print(e)
コード例 #6
0
def settingProcess(groupId,sender,config,change):
    if sender in getAdmin(groupId):
        if configChangeJudge(config,change):
            if config in adminConfig:
                updateSetting(groupId,config,settingCode[change])
                record("setting:%s set to %s"%(config,change),"none",sender,groupId,True,"function")
            else:
                if not sender==HostQQ:
                    record("setting:Insufficient permissions","none",sender,groupId,False,"function")
                    return [
                        At(target=sender),
                        Plain(text="Insufficient permissions!")
                    ]
                else:
                    if change.isnumeric():
                        updateSetting(groupId,config,change)
                    else:
                        updateSetting(groupId,config,settingCode[change])
                    record("setting:%s set to %s"%(config,change),"none",sender,groupId,True,"function")
            if (config=="real" or config=="setu") and change=="Enable" and (getSetting(groupId,"setu") and getSetting(groupId,"real")):
                updateSetting(groupId,"forbiddenCount",0)
        else:
            record("setting:command error","none",sender,groupId,False,"function")
            return [
                At(target=sender),
                Plain("Command error!")
            ]
        return [
            Plain(text="group:%d %s set to %s"%(groupId,config,change))
        ]
    else:
        return [
            At(target=sender),
            Plain(text="爬爬爬,你没有管理权限!离人家远一点啦!死变态!")
        ]
コード例 #7
0
ファイル: function.py プロジェクト: GG-yuki/QQBot
def showSetting(groupId,sender,check):
    settingList=["groupId","groupName","repeat","setuLocal","bizhiLocal","countLimit","setu","bizhi","real","r18","speakMode","switch"]
    if check=="sys":
        return [
            At(target=sender),
            Plain(text=getSysInfo())
        ]
    elif check=="all":
        title=Plain(text="\n-----------setting-----------\n")
        groupSetting=getGroupAllSetting(groupId)
        split=Plain(text="\n-----------System-----------\n")
        sysInfo=getSysInfo()
        return [
            At(target=sender),
            title,
            groupSetting,
            split,
            Plain(text=sysInfo)
        ]
    elif check=="group":
        title=Plain(text="\n-----------setting-----------\n")
        groupSetting=getGroupAllSetting(groupId)
        return [
            At(target=sender),
            title,
            groupSetting
        ]
    else:
        setting=getSetting(groupId,check)
        return [
            At(target=sender),
            Plain(text="group:%d %s:%d"%(groupId,check,setting))
        ]
コード例 #8
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def repeat(app: Mirai, group: Group, member: Member, cp: CommandParser):
    args = cp.parse_with_valid(("Int", ("Int", "String")))  # count, content
    if isinstance(args, str):
        return await app.sendGroupMessage(group, [At(member.id), Plain(args)])
    if member.id not in admin and args[0][1] > 3:
        return await app.sendGroupMessage(group, [At(member.id), Plain("次数不能大于3")])
    for _ in range(args[0][1]):
        await app.sendGroupMessage(group, [Plain(str(args[1][1]))])
コード例 #9
0
async def rm_modules(app: Mirai, group: Group, member: Member,
                     message: MessageChain):
    if member.id in conf.get("permission", "operator"):
        mp = message.toString().split(" ", 1)[1]
        conf.get("plugins", "active").remove(mp)
        await app.sendGroupMessage(
            group, [At(member.id), Plain("删除模块成功,将在下次重载生效")])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("权限不足")])
コード例 #10
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def cget(app: Mirai, group: Group, member: Member):
    if member.id in room[state[member.id]]:
        await app.sendGroupMessage(group, [
            At(member.id),
            Image.fromBytes(bind[state[member.id]].get_image(
                quality=random.randint(90, 99)))
        ])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("未找到你所处的房间")])
コード例 #11
0
async def active_list(app: Mirai, group: Group, member: Member):
    if member.id not in conf.get("permission", "operator"):
        await app.sendGroupMessage(group, [At(member.id), Plain("权限不足")])
        return
    await app.sendGroupMessage(group, [
        At(member.id),
        Plain("已激活群组:"),
        Plain(json.dumps(conf.get("active", "group_id"), indent=2))
    ])
コード例 #12
0
async def get_list(app: Mirai, group: Group, member: Member):
    if member.id in conf.get("permission", "operator"):
        await app.sendGroupMessage(group, [
            At(member.id),
            Plain("模块列表:"),
            Plain(json.dumps(conf.get("plugins", "active"), indent=2))
        ])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("权限不足")])
コード例 #13
0
async def reload_modules(app: Mirai, group: Group, member: Member):
    if member.id in conf.get("permission", "operator"):
        from core.loader import manager
        error = manager.reload_modules()
        await app.sendGroupMessage(group, [At(member.id), Plain("重载模块成功")])
        if error:
            await app.sendGroupMessage(group, [
                Plain("但在重载时,发生了一些错误:\n"),
                *[Plain(str(e) + "\n") for e in error]
            ])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("权限不足")])
コード例 #14
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def left(app: Mirai, group: Group, member: Member):
    if member.id in room[state[member.id]]:
        for m in room[state[member.id]]:
            try:
                state.pop(m)
                room.pop(m)
                bind.pop(m)
            except KeyError:
                pass
        await app.sendGroupMessage(group, [At(member.id), Plain("已退出")])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("未找到你所处的房间")])
コード例 #15
0
 async def wrapper(message: MESSAGE_T, *, at_sender: bool = False):
     if at_sender:
         if isinstance(message, list):
             message.insert(0, At(sender.id))
         elif isinstance(message, MessageChain):
             message.__root__.insert(0, At(sender.id))
         else:
             raise TypeError(f"not supported type for reply: {message.__class__.__name__}")
     if event_type == "GroupMessage":
         await app.sendGroupMessage(sender.group, message)
     elif event_type == "FriendMessage":
         await app.sendFriendMessage(sender, message)
     else:
         raise ValueError("Not supported event type")
コード例 #16
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def lm_create(app: Mirai, count_data: dict, gid: int, mid: int):
    raw = sabee_gets(count_data, str(gid), count=10)
    if not raw:
        return [At(mid), Plain("暂时还没有数据..")]
    result = [At(mid), Plain("发言数统计:\n")]
    result.append(Plain("+==================+\n"))
    for p, (m, c) in enumerate(raw):
        if p == 0:
            p = "🔥"
        else:
            p = f" {p+1} "
        result.extend([Plain(f"L[{p}] {(await app.memberInfo(gid, int(m))).name or await qname.query(m)}:  {c}\n")])
    result.append(Plain(f"共{len(count_data[str(gid)])}人水群"))
    return result
コード例 #17
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def lottery(app: Mirai, group: Group, member: Member):
    if group:
        raw = sabee_gets(sabee, str(group.id), count=10)
        print(raw)
        if not raw:
            return await app.sendGroupMessage(group, [At(member.id), Plain("至少要有3个人才能开始...")])
        victim = random.choice(raw)
        mt = random.randint(1, 240)
        try:
            await app.mute(group, int(victim[0]), 300)
            call_later(mt, app.unmute, group=group.id, member=int(victim[0]))
            return await app.sendGroupMessage(group, Plain(f"{(await app.memberInfo(group, int(victim[0]))).name or await qname.query(victim[0])}收到了红茶大礼包*{mt}"))
        except PermissionError:
            return await app.sendGroupMessage(group, Plain("我手上的权力还不够呢..."))
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("过一会再来吧")])
コード例 #18
0
async def aps_job(app: Mirai, msg: str, member: Member, isAll=False):
    if isAll:
        await app.sendGroupMessage(member.group, [AtAll(), Plain(text=msg)])
    else:
        await app.sendGroupMessage(
            member.group,
            [At(target=member.id), Plain(text=msg)])
コード例 #19
0
async def edit_nick(app: Mirai, group: Group, member: Member,
                    cp: CommandParser):
    if member.id in conf.get("permission", "operator"):
        pa = cp.parse_with_valid([("Int", "String")])
        if isinstance(pa, str):
            return await app.sendGroupMessage(
                group, [At(member.id), Plain(pa)])
        elif not pa:
            return await app.sendGroupMessage(
                group, [At(member.id), Plain("参数不能为空")])
        info = await app.botMemberInfo(group)
        info.modify({"name": pa[0][1]})
        await app.changeMemberInfo(group, app.qq, info)
        await app.sendGroupMessage(group, [At(member.id), Plain("修改成功")])
    else:
        await app.sendGroupMessage(group, [At(member.id), Plain("权限不足")])
コード例 #20
0
ファイル: function.py プロジェクト: GG-yuki/QQBot
def translate(groupId,sender,text,source,target):
    url="https://api.ai.qq.com/fcgi-bin/nlp/nlp_texttranslate"
    # 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效)
    t = time.time()
    time_stamp = str(int(t))
    # 请求随机字符串,用于保证签名不可预测  
    nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))
    # 应用标志,这里修改成自己的id和key
    app_id = ''
    app_key = ''
    params = {  'app_id' : app_id,
                'text' : text,
                'time_stamp':time_stamp,
                'nonce_str':nonce_str,
                'source':source,
                'target':target
             }
 
    sign_before = ''
    for key in sorted(params):
        sign_before += '{}={}&'.format(key, quote(params[key], safe=''))
    sign_before += 'app_key={}'.format(app_key)
    sign = curlmd5(sign_before)
    params['sign'] = sign
    r = requests.get(url,params=params)
    # print(r.text)
    record("translate %s->%s"%(source,target),"none",sender,groupId,True,"function")
    return [
        At(target=sender),
        Plain("translate:\n"),
        Plain(text="%s"%r.json()["data"]["target_text"])
    ]
コード例 #21
0
ファイル: function.py プロジェクト: GG-yuki/QQBot
def getWeather(message,sender):
    global city
    point=message.toString()[25:]
    print("天气查询,城市:",point)
    if point not in city:
        return [
            At(target=sender),
            Plain(text="请检查城市名称,只支持中国城市及部分地区哦~")
        ]
    weather_src=weatherSrc+point
    response=requests.get(weather_src)
    html=response.text
    html.replace("\/","/")
    html.replace("//",'/')
    html=html.encode('utf-8').decode('unicode_escape')
    wea=re.findall(r'wea":"(.*?)"',html,re.S)[0]
    tem=re.findall(r'"tem":"(.*?)"',html,re.S)[0]
    tem_day=re.findall(r'"tem_day":"(.*?)"',html,re.S)[0]
    tem_night=re.findall(r'"tem_night":"(.*?)"',html,re.S)[0]
    win=re.findall(r'"win":"(.*?)"',html,re.S)[0]
    win_speed=re.findall(r'"win_speed":"(.*?)"',html,re.S)[0]
    win_meter=re.findall(r'"win_meter":"(.*?)"',html,re.S)[0]
    air=re.findall(r'"air":"(.*?)"',html,re.S)[0]
    return [
        Plain(text="%s今日天气\n"%point),
        Plain(text="天气情况:%s\n"%wea),
        Plain(text="实时温度:%s℃\n"%tem),
        Plain(text="最高温:%s℃\n"%tem_day),
        Plain(text="最低温:%s℃\n"%tem_night),
        Plain(text="风向:%s\n"%win),
        Plain(text="风力等级:%s\n"%win_speed),
        Plain(text="风速:%s\n"%win_meter),
        Plain(text="空气质量:%s"%air)
    ]
コード例 #22
0
ファイル: __init__.py プロジェクト: chenquanjun/MiraiBot
async def setuExecutor(app: Mirai, message: GroupMessage, number: int,
                       keyword: str):
    """根据关键词获取data_array,并调用sendSetu"""
    global LAST_QUOTA
    member_id: int = message.sender.id
    group: Group = message.sender.group
    if keyword == '':
        if len(SetuDatabase.load_from_file().__root__
               ) >= 300 and LAST_QUOTA < 200:
            resp = SetuResp(code=-430, msg='空关键词')
        else:
            resp = await SetuResp.get()
            LAST_QUOTA = resp.quota
    elif cd.check(member_id):
        resp = await SetuResp.get(keyword)
        LAST_QUOTA = resp.quota
    else:
        # resp = SetuResp(code=-3, msg='你的请求太快了,休息一下吧')
        await app.sendGroupMessage(group, [
            At(member_id),
            Plain('太快了,受不了!\n'),
            Image.fromBytes(LoadFrequencyFile())
        ])
        return

    if resp.code == 0:
        cd.update(member_id)
        await sendSetu(app, message, resp.data, number)
    elif resp.code in [429, -430]:
        db = SetuDatabase.load_from_file()
        await sendSetu(app, message, db.__root__, number)
    else:
        source: Source = message.messageChain.getSource()
        await app.sendGroupMessage(group, resp.msg, source)
コード例 #23
0
async def member_join(app: Mirai, event: MemberJoinEvent):
    try:
        await app.sendGroupMessage(
            event.member.group.id,
            [At(target=event.member.id),
             Plain(text="我是本群小可爱纱雾哟~欢迎呐~一起快活鸭~")])
    except exceptions.BotMutedError:
        pass
コード例 #24
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def set_active(app: Mirai, group: Group, member: Member,
                     message: MessageChain):
    if message.toString().find(conf.get("basic", "command_head") + "cs") == 0:
        if group.id in conf.get("banner", "group_id"):
            return
        conf.get("active", "group_id").append(group.id)
        await app.sendGroupMessage(
            group, [At(member.id), Plain("激活成功,输入 !help 获取帮助")])
コード例 #25
0
async def set_active(app: Mirai, group: Group, member: Member,
                     message: MessageChain):
    if message.toString().find(conf.get("basic", "command_head") + "cs") == 0:
        if group.id in conf.get("banner", "group_id"):
            return
        conf.get("active", "group_id").append(group.id)
        msg = await app.sendGroupMessage(group, [At(member.id), Plain("启用")])
        call_later(10, app.revokeMessage, msg.messageId)
コード例 #26
0
ファイル: function.py プロジェクト: GG-yuki/QQBot
def askSth(sender,question):
    return [
        At(target=sender),
        Plain(text="啧啧啧,都多大了,还不会百度嘛,不会的话谷歌也行啊\n"),
        Plain(text="什么?你说还不会?你可真是个小憨批呢\n"),
        Plain(text="没办法呢,就让聪明的我来帮帮你吧!\n"),
        Plain(text="https://baidu.sagiri-web.com/?%s"%question)
    ]
コード例 #27
0
async def quote(app: Mirai, group: Group, message: MessageChain,
                member: Member, source: Source):
    if message.toString().find("骂我") != -1:
        txt1 = requests.get(url1)
        await app.sendGroupMessage(
            group, [At(member.id), Plain(text=txt1.text)], quoteSource=source)
        return True
    if message.toString().find("夸我") != -1:
        txt2 = requests.get(url2)
        await app.sendGroupMessage(
            group, [At(member.id), Plain(text=txt2.text)], quoteSource=source)
        return True
    if message.toString().find("tu") != -1:
        pic = picbase()
        print(pic)
        await app.sendGroupMessage(group, [Image.fromBase64(pic)])
        return True
コード例 #28
0
ファイル: app.py プロジェクト: wyapx/sabee_bot
async def join(app: Mirai, group: Group, member: Member, cp: CommandParser):
    pa = cp.parse_with_valid(["Int"])
    if isinstance(pa, str):
        return await app.sendGroupMessage(group, [At(member.id), Plain(pa)])
    elif not pa:
        return await app.sendGroupMessage(
            group, [At(member.id), Plain("参数不能为空")])
    if pa[0][1] not in bind:
        return await app.sendGroupMessage(
            group, [At(member.id), Plain("没有找到这个房间")])
    elif member.id in bind:
        return await app.sendGroupMessage(
            group, [At(member.id), Plain("你不能加入自己的房间")])
    elif len(room[pa[0][1]]) > 1:
        return await app.sendGroupMessage(
            group, [At(member.id), Plain("已经开始了")])
    else:
        room[pa[0][1]].append(member.id)
        state[member.id] = state[pa[0][1]]
        await app.sendGroupMessage(
            group,
            [At(member.id), Plain("加入成功,若图片无法正常加载可输入!cget")])
    await app.sendGroupMessage(group, [
        At(pa[0][1]),
        Image.fromBytes(bind[state[member.id]].get_image()),
        Plain("输入!p x y来放置棋子")
    ])
コード例 #29
0
async def bangumi_push(app: Mirai, member: Member, group: Group, cp: CommandParser):
    global nt
    pa = cp.parse_with_valid(["Int"])
    if isinstance(pa, str):
        return await app.sendGroupMessage(group, [At(member.id), Plain(pa)])
    elif not pa:
        week = datetime.today().isoweekday()
    else:
        week = pa[0][1]
    if nt+3600 < time.time():
        l.clear()
        l.update(await kisssub())
        if l:
            nt = time.time()
    print(l)
    now = l[str(week)]
    await app.sendGroupMessage(group, [At(member.id), Plain(f"{now[0]['utime'][3]}的番剧列表:\n"),
                                       *(Plain(f"{b['name']}:{b['tag']}\n") for b in now)])
コード例 #30
0
ファイル: function.py プロジェクト: GG-yuki/QQBot
def judgeImageYellow(groupId,sender,image_url):
    setYellowPredictReady(groupId,sender,False)
    # yellowPredictCount=getData("yellowPredictCount")+1
    # print(yellowPredictCount)
    # updateData(yellowPredictCount,"yellow")
    # dist="%s%s.png"%(searchDist,searchCount)
    url="https://api.ai.qq.com/fcgi-bin/vision/vision_porn"
    # 请求时间戳(秒级),用于防止请求重放(保证签名5分钟有效)
    t = time.time()
    time_stamp = str(int(t))
    # 请求随机字符串,用于保证签名不可预测  
    nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))
    # 应用标志,这里修改成自己的id和key
    app_id = ''
    app_key = ''
    params = {  'app_id' : app_id,
                'time_stamp':time_stamp,
                'nonce_str':nonce_str,
                'image_url':str(image_url)
             }
    params['sign'] = getSign(params)
    print(params)
    r = requests.post(url,params=params)
    print(r.text)
    if r.json()["ret"]>0:
        return [
        At(target=sender),
        Plain("Error!:\nReason:"),
        Plain(text="%s"%r.json()["msg"])
        ]
    elif r.json()["ret"]==0:
        return [
        At(target=sender),
        Plain("Possiblity Result:\n"),
        Plain("Normal :%"),
        Plain(text="%d"%r.json()["data"]["tag_list"][0]["tag_confidence"]),
        Plain("Hot :%"),
        Plain(text="%d"%r.json()["data"]["tag_list"][1]["tag_confidence"]),
        Plain("Sexy :%"),
        Plain(text="%d"%r.json()["data"]["tag_list"][2]["tag_confidence"]),
        Plain("Total :%"),
        Plain(text="%d"%r.json()["data"]["tag_list"][9]["tag_confidence"])
        ]