Esempio n. 1
0
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'))
Esempio n. 2
0
 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 '再给你一个机会吧'
Esempio n. 3
0
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)
Esempio n. 4
0
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())
Esempio n. 5
0
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'))
Esempio n. 6
0
 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
Esempio n. 7
0
 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"&#91;(.*?)&#93;",
                         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"