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
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
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