Example #1
0
    def on_enter_rand_diff_normal(self, event):
        print("Entering n")
        reply_token = event.reply_token

        for count, m in enumerate(MListInfo):
            level = m[3][0]
            if level == "7":
                ns7List.append([m[0], m[3][0], m[3][1]])
                ns57List.append([m[0], m[3][0], m[3][1]])
            elif level == "6":
                ns57List.append([m[0], m[3][0], m[3][1]])
            elif level == "5":
                ns57List.append([m[0], m[3][0], m[3][1]])
                ns15List.append([m[0], m[3][0], m[3][1]])
            else:
                ns15List.append([m[0], m[3][0], m[3][1]])

        bMsg = TMsg(alt_text='Button',
                    template=ButtonsTemplate(
                        thumbnail_image_url="https://i.imgur.com/vWbUSUf.png",
                        title="★数を選べるドン!♪",
                        text="Please Select level to choose from.",
                        actions=[
                            MsgAction(label="★7", text="s7"),
                            MsgAction(label="★5~7", text="s57"),
                            MsgAction(label="★1~5", text="s15")
                        ]))
        send_button_message(reply_token, bMsg)
Example #2
0
    def on_enter_choice(seif,event):
        print("I'm entering choice state")

        sender_id=event['sender']['id']
        if event.get('postback'):
            text=event['postback']['payload']
            text=text.lower()
            send_text_message(sender_id,text)

            buttons=[
                {
                    "type":"postback",
                    "title":"台南大遠百威秀影城",
                    "payload":"台南大遠百威秀影城"
                },
                {
                    "type":"postback",
                    "title":"台南南紡威秀影城",
                    "payload":"台南南紡威秀影城"
                },
                {
                    "type":"postback",
                    "title":"台南國賓影城",
                    "payload":"台南國賓影城"
                }

            ]
            send_button_message(sender_id,"For movie theathers in South Taiwan.",buttons)
Example #3
0
 def on_enter_search_comic(self, event):
     print("I'm entering search_comic")
     reply_token = event.reply_token
     if not self.comic_not_found:
         url = "http://8comic.se/"
         res = requests.get(url)
         soup = bs(res.text, 'html.parser')
         comic_list = []
         url_list = []
         self.recommand_comic_list = []
         self.recommand_comic_url_list = []
         for entry in soup.find('div', class_='carousel-clip').select('a'):
             m = re.search("http://8comic.se/(\d*)/$", entry['href'])
             if (m):
                 if entry.find('img') != None:
                     comic_list.append(entry.find('img')['alt'])
                 else:
                     url_list.append(entry['href'])
         random_sample = random.sample(
             [index for index in range(len(url_list))], 4)
         for random_index in random_sample:
             self.recommand_comic_list.append(comic_list[random_index])
             self.recommand_comic_url_list.append(url_list[random_index])
         send_button_message(event.reply_token, "請輸入漫畫名稱", \
                 "以下4部漫畫為系統推薦\n隨時都可輸入\"退出\"回到本頁面", "https://i.imgur.com/3xofosk.jpg", self.recommand_comic_list, self.recommand_comic_list)
     else:
         send_text_message(
             reply_token,
             "\udbc0\udc92沒有此漫畫\udbc0\udc92\n請重新輸入漫畫名稱\udbc0\udc8a\n\udbc0\udc9d或是輸入退出\udbc0\udc9d"
         )
         self.comic_not_found = False
Example #4
0
    def on_enter_hanlai(self, event):
        print("I'm entering hanlai")

        reply_token = event.reply_token

        send_button_message(reply_token, 'https://i.imgur.com/LtKBxlV.png',
                            "身無長物", "就說你只有65塊了...", "一敗塗地")
Example #5
0
    def on_enter_entry(self, event):
        print("Entering entry")
        reply_token = event.reply_token

        # Refetch info from wiki
        MListInfo = wrapWikiInfo()

        # Clear all lists
        os10List.clear()
        os89List.clear()
        os68List.clear()
        os16List.clear()
        hs8List.clear()
        hs78List.clear()
        hs57List.clear()
        hs15List.clear()
        ns7List.clear()
        ns57List.clear()
        ns15List.clear()
        es15List.clear()

        # Send starting msg after fetch
        bMsg = TMsg(alt_text='Button',
                    template=ButtonsTemplate(
                        thumbnail_image_url="https://i.imgur.com/vWbUSUf.png",
                        title="何する?",
                        text="What do you want?",
                        actions=[MsgAction(label="ランダムで曲を選ぶ", text="random")]))
        send_button_message(reply_token, bMsg)
Example #6
0
    def on_enter_state3(self,event):
        print("I'm entering state3")

        sender_id=event['sender']['id']
        url="https://movies.yahoo.com.tw/chart.html?cate=rating"
        res=requests.get(url)
        soup=BeautifulSoup(res.text,"html.parser")
        movie1=soup.find('h2')
        movie2=soup.find_all(class_='rank_txt')
        buttons=[
            {
                "type":"postback",
                "title":movie1.text,
                "payload":movie1.text
            },
            {
                "type":"postback",
                "title":movie2[0].text,
                "payload":movie2[0].text

            },
            {
                "type":"postback",
                "title":movie2[1].text,
                "payload":movie2[1].text
            }

        ]

        send_button_message(sender_id,"Here are 3 movies with highest score",buttons)
Example #7
0
    def on_enter_menu(self, event):
        print("I'm entering menu")

        sender_id = event['sender']['id']
        #send_text_message(sender_id, "this is menu")
        button = [
            # {
            #     "type":"postback",
            #     "title":"附件下載",
            #     "payload":"download"
            # },
            {
                "type": "postback",
                "title": "行事曆",
                "payload": "calendar"
            },
            {
                "type": "postback",
                "title": "聯絡資訊",
                "payload": "contact_info"
            },
            {
                "type": "postback",
                "title": "其他問題",
                "payload": "other"
            }
        ]
        send_img_message(sender_id, "https://i.imgur.com/TvjzlFP.png")
        send_button_message(
            sender_id,
            "這裡是2019成大資工營,歡迎使用聊天機器人!\n如果想知道報名相關的資訊,請輸入「報名資訊」。\n想知道更多我們的活動內容,請輸入「營隊介紹」。\n想要下載相關的檔案附件,請輸入「附件下載」。\n或是點選按鈕進入其他功能~",
            button)
Example #8
0
    def on_enter_local_food(self, event):
        print("I'm entering local food")

        sender_id = event['sender']['id']
        send_text_message(sender_id, data['Local Food']['text_to_send'])
        send_button_message(sender_id, data['Local Food']['text_button'],
                            data['Local Food']['buttons'])
Example #9
0
def webhook_handler():
    signature = request.headers["X-Line-Signature"]
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f"Request body: {body}")

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f"\nFSM STATE: {machine.state}")
        print(f"REQUEST BODY: \n{body}")
        response = machine.advance(event)
        if response == False:
            if machine.state == "user":
                text = "按start鍵開始遊戲\n按fsm鍵顯示狀態圖"
                btn = [
                    MessageTemplateAction(label="start", text="start"),
                    MessageTemplateAction(label="fsm", text="fsm")
                ]
                send_button_message(event.reply_token, text, btn)
            else:
                send_text_message(event.reply_token, "Not Entering any State")

    return "OK"
Example #10
0
    def on_enter_adventure(self, event):
        print("I'm entering adventure")

        sender_id = event['sender']['id']
        send_text_message(sender_id, data['Adventure']['text_to_send'])
        send_button_message(sender_id, data['Adventure']['text_button'],
                            data['Adventure']['buttons'])
Example #11
0
    def on_enter_naturals(self, event):
        print("I'm entering naturals")

        sender_id = event['sender']['id']
        send_text_message(sender_id, data['Naturals']['text_to_send'])
        send_button_message(sender_id, data['Naturals']['text_button'],
                            data['Naturals']['buttons'])
Example #12
0
def webhook_handler():
    global mode
    signature = request.headers['X-Line-Signature']
    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info(f'Request body: {body}')

    # parse webhook body
    try:
        events = parser.parse(body, signature)
    except InvalidSignatureError:
        abort(400)

    # if event is MessageEvent and message is TextMessage, then echo text
    for event in events:
        if not isinstance(event, MessageEvent):
            continue
        if not isinstance(event.message, TextMessage):
            continue
        if not isinstance(event.message.text, str):
            continue
        print(f'\nFSM STATE: {machine.state}')
        print(f'REQUEST BODY: \n{body}')
        response = machine.advance(event)
        if response == False:
            if event.message.text.lower() == 'fsm':
                send_image_message(event.reply_token,
                                   'https://i.imgur.com/j75C7Jo.png?1')
            elif event.message.text == '訂購':
                send_text_message(
                    event.reply_token,
                    '!!線上訂購請點以下連結\nhttps://docs.google.com/forms/d/e/1FAIpQLSdA2XJr4gzZOMetY-DJbEmCCpGLSoAy5o3xsCi0aMYP7dANEA/viewform?usp=sf_link\n\n有任何問題都可聯絡李老闆\n手機:09-58975339'
                )
            elif event.message.text == '柚心園' or event.message.text == '回首頁' or machine.state == 'user' or (
                (machine.state == 'answer' or machine.state == 'question')
                    and event.message.text == '2'):
                title = '歡迎光臨~~ 柚心園'
                text = '以下資訊提供給您,請『點選』'  #text不能太長
                btn = [  #不可超過4個選項
                    MessageTemplateAction(label='商品資訊', text='商品資訊'),
                    MessageTemplateAction(label='訂購', text='訂購'),
                    MessageTemplateAction(label='問答', text='問答'),
                    MessageTemplateAction(label='MENU', text='菜單'),
                ]
                url = 'https://i.imgur.com/5Yi13jZ.gif'
                send_button_message(event.reply_token, title, text, btn, url)
                machine.go_back()
            elif machine.state == 'answer' or machine.state == 'sale_address':
                send_text_message(event.reply_token,
                                  '!!繼續問答請輸入『1』!!\n!!離開請輸入『2』')
            elif machine.state == 'show_pomelo_discount' or machine.state == 'input_health_introduction' or machine.state == 'input_menu':
                send_text_message(event.reply_token, '您的選項不在列表中,請您重新輸入')
            elif machine.state == 'show_pomelo_taboo' or machine.state == 'input_health_information' or machine.state == 'show_pomelo_benefit':
                send_text_message(event.reply_token, '您的選項不在列表中,請您重新輸入')
            elif machine.state == 'input_menu':
                send_text_message(event.reply_token, '請重新選擇!!!')
            else:
                send_text_message(event.reply_token, '請重新選擇!!!')

    return 'OK'
Example #13
0
 def on_enter_about(self, event):
     print("I'm entering introduce")
     sender_id = event['sender']['id']
     send_button_message(sender_id,
                         "*PTT查詢小幫手*\n可以使用此ChatBot將PTT的看板及貼文爬下來並且條件搜索。")
     send_image_url(sender_id, "http://m.news.ptt.cc/images/PTT.png")
     self.go_back()
Example #14
0
    def on_enter_state5(self, event):
        print("I'm entering state5")

        response_str = ""

        team_A = self.today_scores[(self.num - 1) * 2]
        team_B = self.today_scores[(self.num - 1) * 2 + 1]
        response_str = "TEAM   1   2   3   4   ALL\n"
        response_str = response_str + team_A['TEAM_ABBREVIATION'].ljust(
            5) + " " + str(team_A['PTS_QTR1']).ljust(2) + " " + str(
                team_A['PTS_QTR2']).ljust(2) + " " + str(
                    team_A['PTS_QTR3']).ljust(2) + " " + str(
                        team_A['PTS_QTR4']).ljust(2) + " " + str(
                            team_A['PTS']) + "\n"
        response_str = response_str + team_B['TEAM_ABBREVIATION'].ljust(
            5) + " " + str(team_B['PTS_QTR1']).ljust(2) + " " + str(
                team_B['PTS_QTR2']).ljust(2) + " " + str(
                    team_B['PTS_QTR3']).ljust(2) + " " + str(
                        team_B['PTS_QTR4']).ljust(2) + " " + str(team_B['PTS'])

        sender_id = event['sender']['id']
        send_text_message(sender_id, response_str)
        send_button_message(sender_id,
                            "https://stats.nba.com/game/" + team_A['GAME_ID'],
                            "")
        send_text_message(sender_id,
                          "請輸入\'scores\' 或 \'today scores\' 或 \'team\'")
        self.go_back()
Example #15
0
    def on_enter_not_register(self, event):
        print("I'm entering not_register")

        text = ["尚未註冊", "請輸入網址http://dorm.cc.ncku.edu.tw/進行註冊\n注意:開頭是http沒有s!"]
        buttons = ["連線成功", "仍無法連線"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #16
0
    def on_enter_check_dns(self, event):
        print("I'm entering check_dns")

        text = ["設定確認", "1. DNS&IP自動取得\n2. 關閉proxy及vpn"]
        buttons = ["連線成功", "仍無法連線"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #17
0
 def on_enter_leave(self, event):
     print("I'm entering 離營切結書")
     button = [{"type": "postback", "title": "返回下載", "payload": "dreturn"}]
     sender_id = event['sender']['id']
     send_button_message(
         sender_id,
         "離營切結書:\nhttps://docs.google.com/document/d/1lUYx301-YGoZgzdM04mwEsAUyJL3tglnMVZr0B7mspg/edit",
         button)
Example #18
0
    def on_enter_find_another(self, event):
        print("I'm entering find_another")

        text = ["已被室友註冊", "請更換至其他尚未被註冊之網孔進行註冊"]
        buttons = ["已更換至未註冊網孔", "欲與室友交換網孔"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #19
0
    def on_enter_call(self, event):
        print("I'm entering call")

        text = ["轉由專人服務", "請致電計網中心(06)2757575分機61010詢問,謝謝!"]
        buttons = ["我知道了"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #20
0
    def on_enter_change(self, event):
        print("I'm entering change")

        text = ["網路連接狀態顯示紅色叉叉", "請更換轉接頭或網路線測試"]
        buttons = ["連線成功", "仍無法連線"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #21
0
    def on_enter_occupied(self, event):
        print("I'm entering occupied")

        text = ["網孔已被註冊", "請先確認是否為室友註冊"]
        buttons = ["是", "否"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #22
0
 def on_enter_contact(self, event):
     print("I'm entering 聯絡方式")
     button = [{"type": "postback", "title": "返回主目錄", "payload": "sreturn"}]
     sender_id = event['sender']['id']
     send_button_message(
         sender_id,
         "2019成大資訊營-福爾摩資\n總召:梁竣傑\nhttps://www.facebook.com/profile.php?id=100000616770247 \n電話:0978682869\n地址:台南市東區大學路1號\n網站:https://2018nckucsiecamp.wixsite.com/2018nckucsiecamp \n信箱:[email protected]",
         button)
Example #23
0
 def on_enter_inform(self, event):
     print("I'm entering 營前通知")
     button = [{"type": "postback", "title": "返回下載", "payload": "dreturn"}]
     sender_id = event['sender']['id']
     send_button_message(
         sender_id,
         "營前通知:\nhttps://docs.google.com/document/d/1XQ-mJVqlHaw_xtw96p7kjV8L9FOIPTpSr-Ganr_pYdc/edit",
         button)
Example #24
0
    def on_enter_check_wifi(self, event):
        print("I'm entering check_wifi")

        text = ["尚未註冊", "請直接使用學校宿網連線進入宿網管理系統,並確認無連上個人行動熱點等wifi"]
        buttons = ["連線成功", "仍無法連線"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #25
0
 def on_enter_email(self, event):
     print("I'm entering 寄信")
     button = [{"type": "postback", "title": "返回主目錄", "payload": "sreturn"}]
     sender_id = event['sender']['id']
     send_button_message(
         sender_id,
         "3. 寄信\n請完成匯款的同學務必要依照下列格式寄信到我們的信箱,以便核對資料。\n***如果沒有寄信造成我們無法核對資料,也視同放棄錄取***\n收件人:[email protected]\n主旨:小隊員姓名-就讀學校-聯絡電話\n(e.g 金城武-建國中學-0900123456)\n信件內容:\n*匯款人姓名\n*繳費日期\n*帳戶銀行/郵局代碼\n*帳號末五碼\n當我們確認繳費資料無誤之後會回信通知,敬請留意自己的信箱\n另外如果完成繳費之後因個人因素無法參加營隊,我們會在Email裡面釋出相關規定,再請需要退費者留意自己報名時填的信箱",
         button)
Example #26
0
    def on_enter_not_use_router(self, event):
        print("I'm entering not_use_router")

        text = ["無使用分享器", "請確認右下角網路連接狀態顯示何種圖示"]
        buttons = ["紅色叉叉", "黃色驚嘆號"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #27
0
    def on_enter_after_register(self, event):
        print("I'm entering after_register")

        text = ["已開始註冊宿網", "請選擇註冊情況"]
        buttons = ["已註冊", "未註冊", "網孔已被註冊"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #28
0
    def on_enter_already_register(self, event):
        print("I'm entering already_register")

        text = ["已註冊宿網", "請確認右下角網路連接狀態顯示何種圖示"]
        buttons = ["紅色叉叉", "黃色驚嘆號"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)
Example #29
0
 def on_enter_TVDetail(self, event):
     text = event.postback.data
     infor = event.postback.data.split(',')
     infor.pop(0)
     reply_token = event.reply_token
     userId = event.source.user_id
     send_text_message(reply_token, infor, "TV")
     send_button_message(userId, "TV")
Example #30
0
    def on_enter_use_router(self, event):
        print("I'm entering use_router")

        text = ["請確認分享器設定如下:", "1. DHCP(自動取得IP&DNS)\n2. Router mode(通常是預設值)"]
        buttons = ["連線成功", "仍無法連線"]

        reply_token = event.reply_token
        send_button_message(reply_token, text, buttons)