def launch(): if session.get('user') and session.get('state') == 'clear': message="Use +,- buttons to set X,Y,Z, then click LAUNCH !" user = session.get('user') if request.method == "POST": if request.form.get("L") == "logout": session.clear() return render_template("logout.html", goto="/login") elif request.form.get("x_desto") and request.form.get("y_desto") and request.form.get("z_desto"): cur = mysql.connection.cursor() x = request.form.get("x_desto") y = request.form.get("y_desto") z = request.form.get("z_desto") session['x'] = x session['y'] = y session['z'] = z launch_probe(x,y,z,cur) message = "Destination set ! (" + x + "," + y + "," + z + ")" change_state(cur, user, "launched") return render_template("launch_message.html", message=message, goto="/") else: message = "Missing coordinates" return render_template('launch.html', user=user, message=message) return render_template('launch.html', user=user, message=message) else: return redirect(url_for('start'))
def mode_2_idiom(self): pattern = re.compile(u'#') matched = re.search(pattern, self.message) if matched: db = database.connect_db() database.change_state(self.uid, 0, db) return '不想玩了吗?那就结束吧ヾ(≧▽≦*)o' if idiom.check_answer(self.message, self.uid): try: gg = random.randint(1, 4) if gg == 4: db = database.connect_db() database.change_state(self.uid, 0, db) return '这是啥呀?我认输还不行吗o((>ω< ))o' ret = idiom.get_next(self.message, self.uid) if ret is None: db = database.connect_db() database.change_state(self.uid, 0, db) return '这是啥呀?我认输还不行吗o((>ω< ))o' return ret except Exception: db = database.connect_db() database.change_state(self.uid, 0, db) return '这是啥呀?我认输还不行吗o((>ω< ))o' else: gg = random.randint(1, 3) print gg if gg == 3: db = database.connect_db() database.change_state(self.uid, 0, db) return '乱接可是不对的哟,现在游戏结束' else: return '再给你一个机会吧'
def change_state(bot, update): chat_id = update.message.chat_id prev_state = database.find_by_chat_id(chat_id)['info_allow_state'] database.change_state(chat_id, not prev_state) current_state = 'Disabled' if prev_state else 'Enabled' current_state2 = 'Enable' if prev_state else 'Disable' update.message.reply_text('Info ' + current_state + '! Call this command again to ' + current_state2)
def ask_data(bot, update): chat_id = update.message.chat_id info_allow_state = update.message.text if info_allow_state == "Yes": info_allow_state = True else: info_allow_state = False database.change_state(chat_id, info_allow_state) current_state = 'Enabled' if info_allow_state else 'Disabled' update.message.reply_text('Your info ' + current_state + '!', reply_markup=ReplyKeyboardRemove())
def home(): if session.get('user'): cur = mysql.connection.cursor() user = session.get('user') state = session.get('state') #options : clear, launched, ... , ... planets = get_user_planets(cur, user) time = 0 if state: if state == 'launched': change_state(cur, user, "landed") else: state = 'error' message = "All systems are go" if request.method == "POST": if request.form.get("L") == "logout": session.clear() return render_template("logout.html", goto="/start") elif request.form.get("action") == "launch": return redirect(url_for('launch')) elif request.form.get("action") == "read": message = closest_planet(cur, user) change_state(cur, user, "clear") return render_template("message.html", message=message, goto="/show_result") elif request.form.get("action") == "reports": print("Going to route REPORTS") return redirect(url_for('report')) elif request.form.get("action") == "lab": last_tip = str(session.get('tip_date')) today = str(date.today) level = get_level(cur, user) if last_tip == today: message = "The Tech Lab staff is on a well deserved break. Try again tomorrow." else: if level <= 12: message = get_hint(cur, level) level += 1 set_level(cur, user, level) session['level'] = level session['tip_date'] = today else: message = "Your Tech Lab staff is on a long, long vacation" return render_template("message.html", message=message, goto="/") else: output = request.form.get("action") print(output) return render_template('index.html', message=message) else: message = "Use left side buttons to launch probes, read results and reports" return render_template('index.html', message=message, user=user, state=state + "()", time=time, planets=planets) else: return redirect(url_for('start'))
def mode_1_duixian(self): db = database.connect_db() pattern = re.compile(u'道歉') matched = re.search(pattern, self.message) if matched: try: database.change_state(self.uid, 0, db) return '原谅你了' except Exception as e: print e return '你说什么我没听清ο(=•ω<=)ρ⌒☆' pattern = re.compile(u'对不起') matched = re.search(pattern, self.message) if matched: try: database.change_state(self.uid, 0, db) return '原谅你了' except Exception as e: print e return '你说什么我没听清ο(=•ω<=)ρ⌒☆' res = nmsl.get() return res
def get_response(self): if not self.check(): return 'ERROR' db = database.connect_db() state = database.get_state(str(self.uid), db) print state # ----------------------------------------------------- # state=1 # 转移至对线模式 if state[0] == 1: return self.mode_1_duixian() # ----------------------------------------------------- # state=2 # 成语接龙模式 if state[0] == 2: return self.mode_2_idiom() # ----------------------------------------------------- # state=0 自由模式 # --------- # 自我介绍 # --------- res = """我是Noir哟,由Navi开发的第一代基于 HTTP + Flask 的 QuneBot。详细信息可以在这里查看哦:https://navihx.github.io/2020/04/09/QQBot%E5%BC%80%E5%8F%91/\n""" pattern = re.compile(u'自我介绍') matched = re.search(pattern, self.message) if matched: return res pattern = re.compile(u'你是谁') matched = re.search(pattern, self.message) if matched: return res # --------- # 改名 # --------- matched = re.search(pattern=r"[(.*?)]", string=self.message, flags=re.M | re.I) if matched: new_name = matched.group(1) return database.change_name(self.uid, new_name, db) # 直接在数据库中更改 # --------- # 骰子 # --------- list = [u'骰子'] for key in list: pattern = re.compile(key) matched = re.search(pattern, self.message) if matched: pattern = re.compile(u'([0-9]*?)面') matched = re.search(pattern, self.message) if matched: return throwDice(int(matched.group(1))) else: return throwDice() # -------- # 进入高强度对线 # -------- if self.setting['nmsl']['on']: list = self.setting['nmsl']['key'] for key in list: pattern = re.compile(key) matched = re.search(pattern, self.message) if matched: db = database.connect_db() if database.change_state(self.uid, 1, db): return '你真的做好被骂的觉悟了吗?\n不道歉我可是不会停下来的噢' else: return '别以为我说不过你,只是我今天不想骂人而已' # -------- # 成语接龙 # -------- if self.setting['idiom']['on']: list = self.setting['idiom']['key'] for key in list: pattern = re.compile(key) matched = re.search(pattern, self.message) if matched: db = database.connect_db() if database.change_state(self.uid, 2, db): idiom.init(self.uid) return '那就一起来玩成语接龙吧' else: return '今天不是很想玩呢' # -------- # 默认回复 # -------- return "不好意思你在说什么我怎么听不懂QAQ"