コード例 #1
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def reply_sticker(event, package=1, sticker=1):
    try:
        message = ImageSendMessage(package_id=package, sticker_id=sticker)
        token = event.reply_token
        LINE_BOT_API.reply_message(token, message)
    except Exception as e:
        getException(e)
コード例 #2
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def push_image(userid, original, preview):
    try:
        message = ImageSendMessage(original_content_url=original,
                                   preview_image_url=preview)
        LINE_BOT_API.push_message(userid, message)
    except Exception as e:
        getException(e)
コード例 #3
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def reply_text(event, text):
    try:
        message = TextSendMessage(text=text)
        token = event.reply_token
        LINE_BOT_API.reply_message(token, message)
    except Exception as e:
        getException(e)
コード例 #4
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def text_mode_filter(event):
    """先判斷用戶屬於哪一種模式"""

    text = event.message.text.lower()
    userid = event.source.user_id
    try:
        #檢查資料庫是否有userid,沒有的話插入
        if not users.objects.filter(uid=userid).exists():
            unit = users.objects.create(uid=userid, chat_mode="none")
            unit.save()

        #取得userid在資料庫中chat_mode的欄位
        mode = users.objects.filter(
            uid=userid).values('chat_mode')[0]['chat_mode']

        for case in switch(mode):
            if case('stock'):
                stock_mode(event, text, userid, mode)
                break
            if case('bullshit'):
                bullshit_mode(event, text, userid, mode)
                break
            if case('gsheet'):
                gsheet_mode(event, text, userid, mode)
                break
            if case('gsheet_NTU'):
                gsheet_NTU_mode(event, text, userid, mode)
                break
            if case():
                normal_mode(event, text, userid)
                break
    except Exception as e:
        getException(e)
コード例 #5
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def gsheet_NTU_mode(event, url, userid, mode):
    print('in stock mode, text = ', url)
    for case in switch(url):
        if case('l'):
            print('L in stock mode')
            leave_mode(event, url, userid, mode)
            break
        if case('h'):
            help_content = "離開模式: L或l\n查看模式: M或m\n查看網址: URL或url----"
            reply_text(event, help_content)
            break
        if case('m'):
            reply_text(event, mode + ' mode')
            break
        if case('url'):
            reply_text(
                event,
                '網址為:https://docs.google.com/spreadsheets/d/1UL7R-E4kHF1ZqsnOcTi6uIw-I4BzfRyGF9gPh9-FKYk/edit?usp=sharing'
            )
            break
        if case():
            try:
                mode_gsheet_NTU.update_googlesheet(url)
                reply_text(event, 'update success')
            except Exception as e:
                getException(e)
                reply_text(event, 'woops! something went wrong')
            break
コード例 #6
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def reply_image(event, original, preview):
    try:
        message = ImageSendMessage(original_content_url=original,
                                   preview_image_url=preview)
        token = event.reply_token
        LINE_BOT_API.reply_message(token, message)
    except Exception as e:
        getException(e)
コード例 #7
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def push_location(userid, title="", address="", latitude=0.0, longtitude=0.0):
    try:
        message = LocationSendMessage(title=title,
                                      address=address,
                                      latitude=latitude,
                                      longtitude=longtitude)
        LINE_BOT_API.push_message(userid, message)
    except Exception as e:
        getException(e)
コード例 #8
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def reply_location(event, title="", address="", latitude=0.0, longtitude=0.0):
    try:
        message = LocationSendMessage(title=title,
                                      address=address,
                                      latitude=latitude,
                                      longtitude=longtitude)
        token = event.reply_token
        LINE_BOT_API.push_message(token, message)
    except Exception as e:
        getException(e)
コード例 #9
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def push_quickreply(userid, buttons):
    try:
        for i in buttons:
            print(i)
        message = TextSendMessage(
            text="i am bobo",
            quick_reply=QuickReply(items=[
                QuickReplyButton(
                    action=MessageAction(label='but1', text='text1')),
                QuickReplyButton(
                    action=MessageAction(label='but2', text='text2')),
                QuickReplyButton(action=CameraAction('camera'))
            ]))
        LINE_BOT_API.push_message(userid, message)
    except Exception as e:
        getException(e)
コード例 #10
0
ファイル: mode_bullshit.py プロジェクト: BOBO-LU/BOBO-LineBot
    def __init__(self, topic='機器人', length=100):
        webdriver_path = "C:\\Users\\呂文楷\\Desktop\\BOBO-LineBot\\bobo-linebot\\bobo-linebot\\chromedriver.exe"
        weburl = "https://howtobullshit.me/"  #前往這個網址

        options = Options()
        options.add_argument('--ignore-certificate-errors')
        options.add_argument('--test-type')
        options.add_argument('--headless')
        options.add_argument('--disable-gpu')
        driver = webdriver.Chrome(executable_path=webdriver_path,
                                  options=options)

        self.content = ""
        if topic.find(',') != -1:
            sp = topic.split(",")
            topic = sp[0]
            length = int(sp[1])

        elif topic.find(',') != -1:
            sp = topic.split(",")
            topic = sp[0]
            length = int(sp[1])

        try:
            driver.get(weburl)
            print("## set URL ")
        except Exception as e:
            getException(e)

        try:
            driver.find_element_by_id('topic').send_keys(topic)
            # sleep(.5)
            driver.find_element_by_id('minlen').send_keys(length)
            # sleep(.5)
            driver.find_element_by_id('btn-get-bullshit').click()
            sleep(3)
            self.content = driver.find_element_by_id('content').text
            print(self.content)
        except Exception as e:
            getException(e)

        driver.close()
コード例 #11
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def gsheet_mode(event, url, userid, mode):
    print('in stock mode, text = ', url)
    for case in switch(url):
        if case('l'):
            print('L in stock mode')
            leave_mode(event, url, userid, mode)
            break
        if case('h'):
            help_content = "離開模式: L或l\n查看模式: M或m\n----"
            reply_text(event, help_content)
            break
        if case('m'):
            reply_text(event, mode + ' mode')
            break
        if case():
            try:
                mode_gsheet.update_googlesheet(url)
                reply_text(event, 'update success')
            except Exception as e:
                getException(e)
                reply_text(event, 'woops! something went wrong')
            break
コード例 #12
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def bullshit_mode(event, text, userid, mode):
    """用戶為bullshit_mode下的語句判斷"""

    print('in bullshit mode, text = ', text)
    try:
        for case in switch(text):
            if case('l'):
                leave_mode(event, text, userid, mode)
                break
            if case('h'):
                help_content = "離開模式: L或l\n查看模式: M或m\n----\n產生幹話: {主題}\n指定長度: {主題},{長度}\n像是: 機器人,100"
                reply_text(event, help_content)
                break
            if case('m'):
                reply_text(event, mode + ' mode')
                break
            if case():
                print('get into bulshit')
                content = str(mode_bullshit.bullshit(text))
                reply_text(event, content)
                break
    except Exception as e:
        getException(e)
        reply_text(event, "伺服器繁忙,請稍後在試")
コード例 #13
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def push_sticker(userid, package=1, sticker=1):
    try:
        message = ImageSendMessage(package_id=package, sticker_id=sticker)
        LINE_BOT_API.push_message(userid, message)
    except Exception as e:
        getException(e)
コード例 #14
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def push_text(userid, text):
    try:
        message = TextSendMessage(text=text)
        LINE_BOT_API.push_message(userid, message)
    except Exception as e:
        getException(e)
コード例 #15
0
ファイル: func.py プロジェクト: BOBO-LU/BOBO-LineBot
def normal_mode(event, text, userid):
    try:
        for case in switch(text):
            if case('s'):  #進入stock模式
                users.objects.filter(uid=userid).update(chat_mode="stock")
                content = '進入股票模式,請輸入股票代碼:(離開模式輸入L或l)'
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text=content))
                break
            if case('b'):  #進入bullshit模式
                #content = str(bullshit.bullshit())
                users.objects.filter(uid=userid).update(chat_mode="bullshit")
                content = "進入唬爛模式\n請輸入主題名稱:(離開模式輸入L或l)"
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text=content))
                break
            if case('g'):  #進入gsheet模式
                users.objects.filter(uid=userid).update(chat_mode="gsheet")
                content = '進入上傳模式,請輸入網址:(離開模式輸入L或l)'
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text=content))
                break
            if case('hw'):  #進入NTU hw 模式
                users.objects.filter(uid=userid).update(chat_mode="gsheet_NTU")
                content = '進入上傳模式(NTU pyxl作業)\n請輸入網址:(離開模式輸入L或l)'
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text=content))
                break
            if case('userid'):
                push_text(userid, "userid : " + event.source.user_id)
                push_text(
                    'U4f9b4c95fcee10fc8c72ad40cbef90ca',
                    event.message.text + ", send by " + event.source.user_id)
                break
            if case('test'):
                push_text(userid, 'test')
                break
            if case(
                    '肚子餓'
            ) and userid != 'U715b0aba205ddf78123b47ffb8f28f52':  #如果是妹妹,就不能說不好的話
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text='乾我什麼事'))
                break
            if case('變身'):
                push_image(userid, 'https://i.imgur.com/zTbh6K1.jpg',
                           'https://i.imgur.com/CNhnRs2.jpg')
                break
            if case('小火龍'):
                push_image(userid, 'https://i.imgur.com/zTbh6K1.jpg',
                           'https://i.imgur.com/zTbh6K1.jpg')
                break
            if case('等'):
                sleep(20)
                LINE_BOT_API.reply_message(event.reply_token,
                                           TextSendMessage(text='乾我什麼事'))
                break
            if case('q'):
                message = TextSendMessage(
                    text=" i am bobo",
                    quick_reply=QuickReply(items=[
                        QuickReplyButton(
                            action=MessageAction(label='LOVE', text='LOVE')),
                        QuickReplyButton(
                            image_url="https://i.ibb.co/dJPnTr9/pika-icon.png",
                            action={
                                "type": "message",
                                "label": "Tempura",
                                "text": "PIKACHU"
                            }),
                        QuickReplyButton(
                            image_url="https://i.ibb.co/dJPnTr9/pika-icon.png",
                            action={
                                "type": "message",
                                "label": "Tempura",
                                "text": "PIKACHU"
                            }),
                        QuickReplyButton(action={
                            "type": "camera",
                            "label": "Camera"
                        }),
                        QuickReplyButton(action=DatetimePickerAction(
                            label="depart date", data="data3", mode="date")),
                        QuickReplyButton(action=DatetimePickerAction(
                            label="depart time", data="data3", mode="time"))
                    ]))

                LINE_BOT_API.reply_message(event.reply_token, message)
                break
            if case('push'):
                push_text('Udd66eba9352626779fee2fff43c79f82',
                          'i am bobo')  #蕭瑞昕的ID
                break
            if case():
                print(event.reply_token)
                reply_text(event, event.message.text)  #回應同一個訊息
                #LINE_BOT_API.push_message('U4f9b4c95fcee10fc8c72ad40cbef90ca', TextSendMessage(text=event.message.text+", send by "+event.source.user_id))
                #LINE_BOT_API.reply_message(event.reply_token, TextSendMessage(text=event.message.text+'2'))
                break

    except Exception as e:
        print("exception")
        getException(e)