예제 #1
0
    def message(cls, bot, update):
        cmd_chat_history = chat_history.history[update.message.from_user.id][0]
        if len(cmd_chat_history) == 1:
            if cmd_chat_history[-1] == "Search":
                reply_markup = telegram.ReplyKeyboardRemove(selective=True)
                bot.send_message(
                    chat_id=update.message.chat_id,
                    text="Search a code or an actress. e.g. ABP-231 or 桃乃木かな",
                    reply_markup=reply_markup,
                    reply_to_message_id=update.message.message_id)
            elif cmd_chat_history[-1] == "New":
                bot.send_message(chat_id=update.message.chat_id,
                                 text="How many results? [Integer]")
            elif cmd_chat_history[-1] == "Random":
                cls.random(bot, update)
                chat_history.clear_history(update.message.from_user.id)
            elif cmd_chat_history[-1] == "Brief":
                bot.send_message(chat_id=update.message.chat_id,
                                 text="Search a code. e.g. ABP-231")
            elif cmd_chat_history[-1] == "Magnet":
                bot.send_message(chat_id=update.message.chat_id,
                                 text="Search a code. e.g. ABP-231")

        elif len(cmd_chat_history) == 2:
            if cmd_chat_history[-2] == "Search":
                if re.search(r"\d", update.message.text):
                    res = Functions.search_by_code(update.message.text)
                    send_av(bot, update, res)
                    chat_history.clear_history(update.message.from_user.id)

                else:
                    if cmd_chat_history[-2] == "Search":
                        bot.send_message(chat_id=update.message.chat_id,
                                         text="How many results? [Integer]")

            elif cmd_chat_history[-2] == "New":
                send_brief(
                    bot, update,
                    Functions.get_newly_released(int(cmd_chat_history[-1]),
                                                 False))
                chat_history.clear_history(update.message.from_user.id)

            elif cmd_chat_history[-2] == "Brief":
                send_brief(bot, update,
                           Functions.get_brief(cmd_chat_history[-1]))
                chat_history.clear_history(update.message.from_user.id)

            elif cmd_chat_history[-2] == "Magnet":
                send_magnet(bot, update,
                            Functions.get_magnet(cmd_chat_history[-1]))
                chat_history.clear_history(update.message.from_user.id)

        elif len(cmd_chat_history) == 3:
            if cmd_chat_history[-3] == "Search":
                res, _ = Functions.search_by_actress(cmd_chat_history[-2],
                                                     int(cmd_chat_history[-1]))
                send_brief(bot, update, res)
                chat_history.clear_history(update.message.from_user.id)

        return
예제 #2
0
파일: server.py 프로젝트: tsw520/JavPy
def search(bot, update, args):
    """
    search command like this:
        1. /search ABP-123
        2. /search 桃乃木かな
            -m, --many-actresses [allow|deny/1/0]  default=0
            -u, --upto           [20]              default=10
    :param bot:
    :param update:
    :param args:
    :return:
    """
    first = args[0]
    if re.search("\\d", first):
        # /search ABP-123
        if len(args) != 1:
            bot.send_message(chat_id=update.message.chat_id, text="Sorry, Wrong Usage")
            return

        res = Functions.search_by_code(first)
        send_av(bot, update, res)

    else:
        # /search 桃乃木かな [-m/--many-actresses] [on/off] [-u/--upto] [20]
        try:
            actress = first
            options, _ = getopt.getopt(
                [x.replace(u"—", u"--") for x in args[1:]], 'm:u:', ['many-actress=', 'upto=']
            )

            allow_many_actresses = False
            up_to = 10

            for o, a in options:
                if o in ("-m", "--many-actresses") and a in ("on", "off", "1", "0"):
                    if a in ("on", "1"):
                        allow_many_actresses = True
                    continue
                elif o in ("-u", "--upto"):
                    try:
                        up_to = int(a)
                        continue
                    except ValueError:
                        bot.send_message(chat_id=update.message.chat_id, text=helps["search-by-actress"])
                        return

            briefs, _ = Functions.search_by_actress(actress, up_to)
            if not allow_many_actresses:
                briefs = list(filter(lambda x: "," not in x.actress, briefs))
            send_brief(bot, update, briefs)

        except getopt.GetoptError:
            bot.send_message(chat_id=update.message.chat_id, text=helps["search-by-actress"])
            return
예제 #3
0
def search_by_code():
    params = json.loads(request.data.decode("utf-8"))
    print(params)
    res = {"videos": None, "other": None}
    if params["code"]:
        try:
            res["videos"] = [Functions.search_by_code(params["code"]).to_dict()]
            rsp = jsonify(res)
        except AttributeError:
            rsp = make_response("")
    else:
        rsp = make_response("")
    rsp.headers["Access-Control-Allow-Origin"] = "*"
    return rsp