Beispiel #1
0
def handle_text_message(event):
    state = handle_session(event)
    text = event.message.text.lower()

    if text == 'cancel':
        bot_api.reply_message(
            event.reply_token,
            TextMessage(
                text=
                'Activity cancelled.\n\nType "menu" to view main menu.\nTo view other instructions, type "help".'
            ))
        state.switch_handler(DefaultHandler())
    elif text == 'done':
        bot_api.reply_message(
            event.reply_token,
            TextMessage(
                text=
                'Type "menu" to view main menu.\nTo view other instructions, type "help".'
            ))
        state.switch_handler(DefaultHandler())
    #else:
    #	bot_api.reply_message(
    #    event.reply_token,
    #    TextMessage(text='Are you lost?\nPlease type "done" or "cancel"'))
    #	state.switch_handler(DefaultHandler())

    state.handle_text(event, bot_api)
Beispiel #2
0
def bookTicketsMessage(step=0):
    if step == 1:
        message = TextSendMessage(text='''請告知我您註冊的使用者名稱''')
    elif step == 2:
        message = TextSendMessage(text='''請告知我去程乘車的日期,請按照格式輸入 EX:20180911''')
    elif step == 3:
        message = TextSendMessage(text='''請告知我您的起站 EX:台北''')
    elif step == 4:
        message = TextSendMessage(text='''請告知我您的訖站 EX:台北''')
    elif ((step == 5) or (step == 11)):
        message = TemplateSendMessage(
            alt_text="車種確認",
            template=ConfirmTemplate(text="請確認預定車種",
                                     actions=[
                                         PostbackTemplateAction(
                                             label="1-自強號",
                                             text="1-自強號",
                                             data='action=buy&itemid=1'),
                                         MessageTemplateAction(label="2-莒光號",
                                                               text="2-莒光號")
                                     ]))
    elif ((step == 6) or (step == 12)):
        message = TextMessage(text='''欲搭乘時間範圍的開始時間,請以整點為單位 EX:0900''')
    elif ((step == 7) or (step == 13)):
        message = TextMessage(
            text='''欲搭乘時間範圍的結束時間,請以整點為單位,最晚時間到23:59 EX:0900''')
    elif ((step == 8) or (step == 14)):
        message = TextSendMessage(text='''請告知我您欲搭乘的車次代碼,請按照格式輸入 EX:122''')
    elif (step == 9):
        message = TextSendMessage(
            text='''請告知您的訂票數 EX:1 (如超過6張票以上,請分兩次訂票),如果是預定來回票,票數會自動購買相同數量。''')
    elif step == 10:
        message = TextSendMessage(text='''請告知我回程乘車的日期,請按照格式輸入 EX:20180911''')

    return message
Beispiel #3
0
def handle_image(event):
    message_id = event.message.id
    message_content = line_bot_api.get_message_content(message_id)

    image = BytesIO(message_content.content)
    image = Image.open(image)
    recipe_list, object_name = predict(image)
    if recipe_list:
        print(recipe_list)
        for recipe in recipe_list:
            try:
                messages = [
                    TextMessage(text='{}が見えるな〜'.format(object_name)),
                    TextSendMessage(
                        text=str(recipe['_source']['recipeTitle'])),
                    TextSendMessage(text=str(recipe['_source']['recipeUrl']))
                ]
                reply_message(event, messages)
            except Exception as e:
                print("error:", e)
                reply_message(event, TextSendMessage(text='エラーが発生しました'))
    else:
        print("No recipe hit")
        try:
            messages = [
                TextMessage(text='{}が見えるな〜'.format(object_name)),
                TextSendMessage(text="レシピはないみたい・・・")
            ]
            reply_message(event, messages)
        except Exception as e:
            print("error:", e)
            reply_message(event, TextSendMessage(text='エラーが発生しました'))
    def send_currentSituation_picture_message(self, reply_token, pictures):

        template_message = self._generate_anotherQuestion_confirmTemplate()

        if len(pictures) == 0:
            text_message = TextMessage(text='目前還沒更新照片,你可以看看其他館喔:)')
            self.line_bot_api.reply_message(
                reply_token, messages=[text_message, template_message])
            return

        imageCarouselColumns = []

        for picture in pictures:

            imageCarouselColumn = ImageCarouselColumn(
                image_url="https://2018floraexpo.tk/" + picture["path"],
                action=URIAction(uri="https://2018floraexpo.tk/" +
                                 picture["path"]))

            imageCarouselColumns.append(imageCarouselColumn)

        image_carousel_template_message = TemplateSendMessage(
            alt_text='照片如下',
            template=ImageCarouselTemplate(columns=imageCarouselColumns))

        text_message = TextMessage(text='以上是展館的前三張照片,希望可以幫助到您:)')

        self.line_bot_api.reply_message(reply_token,
                                        messages=[
                                            image_carousel_template_message,
                                            text_message, template_message
                                        ])
Beispiel #5
0
def handle_text_message(event):
    text = event.message.text.lstrip()
    match = "使い方使いかたつかいかたhelpHelpへるぷヘルプルールるーる"

    if match.count(text) > 0:
        text = "使い方表示します。\nこのチャット欄へ文字を送信すると、その文字数をカウントし返信します。\nまた同時に原稿用紙へ単純に記述した場合とおおよそのルールに従って書いた場合の、枚数と行数を返信します。\n\n(ルールとは)\nプログラムの判定により、改行と行の始めに 」』)>。、 の記号がある場合(本来は前行の終わりに記述する)の書き方のこと。\n\n(注意)\nプログラムの自動判定のため、枚数、行数などが正確でない場合があります。目安としてご使用いただければ幸いです。"
        line_bot_api.reply_message(
            event.reply_token,
            TextMessage(text=text))

    if isinstance(event.source, SourceUser):
        if not(is_japanese(text)):
            profile = line_bot_api.get_profile(event.source.user_id)
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text=profile.display_name + en_complete(text)))

        else:
            profile = line_bot_api.get_profile(event.source.user_id)
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text=profile.display_name + jp_complete(text)))

    else:

        if not(is_japanese(text)):
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text="みな" + en_complete(text)))

        else:
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text="みな" + jp_complete(text)))
Beispiel #6
0
def handler_message(event):
  text=event.message.text

  if text.split(",")[0]=="電車乗り換え":
    stations=text.split(",")
    t_routes=get_train_routes(stations[1],stations[2])
    line_bot_api.reply_message(
      event.reply_token,
      TextMessage(text=t_routes)
    )
  elif text=="遅延情報":
    line_bot_api.reply_message(
      event.reply_token,
      # TextMessage(text="遅延情報")
    )
  elif text.split(",")[0]=="駅情報":
    ary=get_station_equipment(text.split(",")[1])
    user=line_bot_api.get_profile(event.source.user_id)
    for i in range(len(ary)):
      image_url="{}access_token={}&logo=false".format(ary[i][0],MAPBOX_ACCESS_TOKEN)
      station_name=ary[i][1]
      titles = ary[i][2].split(" ")[:-1]
      contents=ary[i][3].split("separation")[:-1]
      output=""
      for j in range(len(titles)):
        output+= "{}{}".format(titles[j],contents[j])
      text=TextSendMessage(text="------------------------\n{}\n{}\n-----------------------".format(station_name,output))
      line_bot_api.push_message(user.user_id, messages=image_message(image_url))
      line_bot_api.push_message(user.user_id, messages=text)
  else :
    message =  "無効な値が入力されました。"
    line_bot_api.reply_message(
      event.reply_token,
      TextMessage(text=message)
    )
Beispiel #7
0
def handle_image(event):
    classes = ["工学部", "法学部"]
    print("handel_message:", event)

    # 画像データを取得
    image = getImageLine(event)
    # 顔画像が含まれているかcheck
    image = check_face(event, image)

    if image is None:
        line_bot_api.reply_message(
            event.reply_token,
            TextMessage(
                text=
                'あなたの顔が検出されませんでした。以下の点に注意してもう一度顔画像を送信してみてください。\n\n・明るい場所で撮影された顔画像\n・正面を向いている顔画像\n・1人だけの顔が映っている画像'
            ))
        return
    else:
        # モデルを使って判定を行う
        print('モデルで判定を行う')
        pred_label, score = pred(image, PRED_MODEL)
        score = round(score * 100, 2)
        print('score: ', score)
        result_text = 'あなたは' + str(score) + '%の確率で' + classes[
            pred_label] + 'です。\n\n※本botはジョークアプリです。判定結果に一切責任も負いません。'
        print(result_text)
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text=result_text))
Beispiel #8
0
def handleNonMessageEvent(event):
    if event.source.user_id:
        profile = line_bot_api.get_profile(event.source.user_id)
        msg_list = [TextSendMessage(text="Hi!"+profile.display_name + "\n歡迎加入破冰機器人-小明同學官方帳號(ゝ∀・)")]
        msg_list.append(TextSendMessage(text="輸入「小明小明,關鍵字」即可搜尋關鍵字笑話\n輸入「小明功能」可查看小明同學的操作說明"))
        msg_list.append(TextSendMessage(text="有任何建議都歡迎填寫表單回饋喔♥(´∀` )人\nhttps://docs.google.com/forms/d/e/1FAIpQLSf3btrWypa9L43CIfF6VpK6bSwegU3pfS3pv6L2tkltZ7BoCw/viewform"))
    else:
        msg_list = []
    if event.type == 'join':
        msg_list = [TextSendMessage(text="Hi!\n感謝您邀請小明(,,・ω・,,)")]
        msg_list.append(TextSendMessage(text="輸入「小明小明,關鍵字」即可搜尋關鍵字笑話\n輸入「小明功能」可查看聊天小明同學的操作說明"))
    elif event.type == 'leave':
        if isinstance(event.source, SourceGroup):
            line_bot_api.reply_message(
                event.reply_token, TextMessage(text='我離開了。再見!'))
            line_bot_api.leave_group(event.source.group_id)
        elif isinstance(event.source, SourceRoom):
            line_bot_api.reply_message(
                event.reply_token, TextMessage(text='我離開了。再見!'))
            line_bot_api.leave_room(event.source.room_id)
        else:
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text="Bot can't leave from 1:1 chat"))

    else:
        #msg_list.append(TextSendMessage(text=event.type))
        pass

    line_bot_api.reply_message( # reply to Line and then to the user
        event.reply_token,
        msg_list
    )
Beispiel #9
0
def handle_text_message(event):
    text = event.message.text

    if text == 'profile':
        if isinstance(event.source, SourceUser):
            profile = line_bot_api.get_profile(event.source.user_id)
            line_bot_api.reply_message(
                event.reply_token, [
                    TextSendMessage(
                        text='Display name: ' + profile.display_name
                    ),
                    TextSendMessage(
                        text='Status message: ' + profile.status_message
                    )
                ]
            )
        else:
            line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text="Bot can't use profile API without user ID"))
    elif text == 'Hi':
      line_bot_api.reply_message(
                event.reply_token,
                TextMessage(text="Hello I'm Bot LINE API"))
    else:   
Beispiel #10
0
 def __set_group_admin(self):
     # 取得使用者資料
     user_profile = self.line_bot_api.get_group_member_profile(
         self.group_id, self.user_id)
     user_name = user_profile.display_name
     # 將管理員資料存進資料庫
     try:
         reply = []
         group_admin, created = GroupAdmin.objects.get_or_create(
             user_id=self.user_id, user_name=user_name)
         with transaction.atomic():
             group = Group.objects.get(group_id=self.group_id)
             if not group.admin:
                 group.admin = group_admin
                 group.save()
                 reply.append(
                     TextMessage(text=f"已將「{user_name}」設為此群組的機器人管理員"))
             else:
                 reply.append(
                     TextMessage(text=f"機器人管理員已是「{group.admin.user_name}」"))
                 reply.append(TextMessage(text="目前還沒有設置多個管理者的打算"))
     except:
         logger.exception(f"{user_name} set admin fail!")
     else:
         self.line_bot_api.reply_message(self.event.reply_token, reply)
Beispiel #11
0
def handle_message(event):
    if event.message.text == 'ออกไปได้แล้ว':
        if isinstance(event.source, SourceGroup):
            if event.source.user_id == 'U52e9cfb8b6e5ef5906699aeb7cdbb3ca':
                line_bot_api.reply_message(event.reply_token,
                                           TextMessage(text='บะบายเจ้า'))
                line_bot_api.leave_group(event.source.group_id)
            else:
                line_bot_api.reply_message(event.reply_token,
                                           TextMessage(text='ไม่!'))

    elif event.message.text == 'profile':
        user_id = event.source.user_id
        profile = line_bot_api.get_profile(user_id)
        #image_message = ImageSendMessage(
        #    original_content_url=profile.picture_url,
        #    preview_image_url=profile.picture_url
        # )
        line_bot_api.reply_message(
            event.reply_token,
            [
                TextSendMessage(text=profile.display_name),
                TextSendMessage(text=profile.user_id),
                TextSendMessage(text=profile.picture_url),
                TextSendMessage(text=profile.status_message),
                #image_message
            ])

    # Handle webhook verification
    elif event.reply_token == "00000000000000000000000000000000":
        return 'OK'

    elif event.message.text == 'ราคาน้ำมัน':
        l = ptt.get_prices()
        s = ""
        for p in l:
            s += "%s %.2f บาท\n" % (p[0], p[1])
        line_bot_api.reply_message(event.reply_token, TextSendMessage(text=s))
    elif event.message.text == 'วิเคราะห์รูป':
        line_bot_api.reply_message(event.reply_token,
                                   [TextSendMessage(text='สักครู่ค่ะ')])
        try:
            lp = LicencePlate()
            result = lp.process(lastet_image_path)
            s = lp.translate(result)

            line_bot_api.push_message(event.source.user_id,
                                      [TextSendMessage(text=s)])
        except Exception as e:
            print('Exception:', type(e), e)
            line_bot_api.push_message(
                event.source.user_id,
                [TextSendMessage(text='ไม่สามารถวิเคราะห์รูปได้ค่ะ')])

    else:

        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=event.message.text + 'เจ้า'))
Beispiel #12
0
def callback():
    signature = request.headers['X-Line-Signature']

    # get request body as text
    body = request.get_data(as_text=True)
    app.logger.info("Request body: " + body)

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

    session = ''

    with open('session.json') as file:
        session = json.load(file)
        print(session['session'])
        # upload session
        for event in events:

            if isinstance(event,
                          MessageEvent) and TextMessage is type(event.message):
                if event.message.text == 'UPLOAD':
                    session['session'] = 'UPLOAD'
                    line_bot_api.reply_message(
                        event.reply_token,
                        TextMessage(text="Please Upload Some File"))

                if event.message.text == 'CANCEL':
                    session['session'] = ''
                    line_bot_api.reply_message(
                        event.reply_token,
                        TextMessage(text="You have cancel upload session"))

            if isinstance(
                    event,
                    MessageEvent) and (FileMessage is type(event.message)):
                if session['session'] == 'UPLOAD':
                    session['file_name'] = str(
                        event.message.file_name).split('.')[0]

                    filetype = str(event.message.file_name).split('.')[-1]
                    print(filetype)

                    download_file(str(event.message.id), filetype,
                                  session['file_name'])
                    line_bot_api.reply_message(
                        event.reply_token,
                        TextMessage(text=session['file_name'] + "     " +
                                    "ํYour Upload session is Complete"))
                    session['session'] = ''
        file.close()

    with open('session.json', 'w') as w_file:
        json.dump(session, w_file)
        w_file.close()

    return 'OK'
def ci_post():
    data = request.json
    drone_repo_name = data[
        "drone_repo_name"] if "drone_repo_name" in data else "-"
    drone_commit_branch = data[
        "drone_commit_branch"] if "drone_commit_branch" in data else "-"
    drone_commit_author = data[
        "drone_commit_author"] if "drone_commit_author" in data else "-"
    drone_commit_message = data[
        "drone_commit_message"] if "drone_commit_message" in data else "-"
    drone_build_event = data[
        "drone_build_event"] if "drone_build_event" in data else "-"
    drone_build_status = data[
        "drone_commit_status"] if "drone_commit_status" in data else "-"
    drone_commit_link = data[
        "drone_commit_link"] if "drone_commit_link" in data else "-"
    build_status_color = "#33aa55" if drone_build_status.lower(
    ) == "success" else "#cc3d33"
    ci_build_number = data[
        "ci_build_number"] if "ci_build_number" in data else "-"

    template = template_env.get_template(FLEX_JSON_FP)
    rendered_template = template.render(
        build_status_color=build_status_color,
        drone_repo_name=drone_repo_name,
        drone_commit_branch=drone_commit_branch,
        drone_commit_author=drone_commit_author,
        drone_commit_message=drone_commit_message,
        drone_build_event=drone_build_event,
        drone_build_status=drone_build_status,
        drone_commit_link=drone_commit_link,
        ci_build_number=ci_build_number,
    )

    dict_template = eval(rendered_template)
    print("[DEBUG][dict_template]", dict_template)

    ### Random Pick PR Reviewer if pr and build success
    collection = MongoClient(
        env["mongo"]["url"])[env["mongo"]["db"]][env["mongo"]["collection"]]
    repo = collection.find_one({"repo_name": drone_repo_name})
    users = list(repo["users"])
    group_id = [(item["name"], item["group_id"]) for item in env["projects"]
                if item["name"] == drone_repo_name][0][1]
    flex_message = FlexSendMessage(
        alt_text="{} repo 有最新更動!".format(drone_repo_name),
        contents=BubbleContainer.new_from_json_dict(dict_template))
    messages = list()
    if drone_build_event == "pull_request" and drone_build_status == "success":
        try:
            text_message = TextMessage(text="請 *{}*  負責審 PR !".format(
                random.choice(users)["user_name"]))
        except:
            text_message = TextMessage(text="孤單寂寞,沒有人關心我,嗚...")
        messages.append(text_message)
    messages.append(flex_message)
    line_bot_api.push_message(group_id, messages)
    return 'OK'
Beispiel #14
0
def handle_text_message_konotanngowotsuika(event):  #

    profile = line_bot_api.get_profile(event.source.user_id)
    name = profile.display_name
    print(f"profileの中身を表示します!!!!中身は{profile}です!")
    print(f"あなたの名前を表示します!!あなたは{name}です!")

    subject = False

    if event.message.text.startswith("メモ") or event.message.text.startswith(
            "めも") or event.message.text.startswith("め\n"):
        subject = "memorandum"
        subject_name = "メモ"

    elif event.message.text.startswith("か\n") or event.message.text.startswith(
            "カレンダー"):
        subject = "calender"
        subject_name = "カレンダー"

    if not subject == False:

        #img_thumbnail = cv2.imread(f"../img/thumbnail/{subject}.png") #subject名でサムネイル画像を取得(あんま良くないかも)
        line_bot_api.push_message(
            profile.user_id,
            TextMessage(text=f"{back_channeling} {subject_name}ね"))

        time.sleep(5)

        line_bot_api.push_message(
            profile.user_id,
            TemplateSendMessage(
                alt_text="Buttons template",
                template=ButtonsTemplate(
                    thumnail_image_url=
                    "https://github.com/nagi900/LinebotNotebooks/blob/master/img/thumbnail/calender.png",
                    title=f"{subject_name}",
                    text="なんもないよ",
                    actions=[MessageAction(text="なんもないよ", label="ラベル")])))

    line_bot_api.reply_message(event.reply_token, [
        TextSendMessage(text=event.message.text + "\n okよ"),
        TextMessage(text=name),
        TextMessage(text=profile.user_id),
        TextMessage(text=back_channeling)
    ])

    time.sleep(10)

    line_bot_api.push_message(profile.user_id, TextMessage(text="プッシュできてるよ!"))


#応答は一度しかできない 配列で返せば5つまでいける

#↓これができない
#@handler.add(MessageEvent, message=TextMessage)
#def handle_text_message_konobunnshouwotsuika(event):#
##    time.sleep(20.0)
#    line_bot_api.push_message(to=,TextMessage(text=back_channeling))
Beispiel #15
0
def handle_message(event):
    global latest_image_path
    
    if event.reply_token == "00000000000000000000000000000000":
        return "OK"

    if event.message.text == 'ออกไปได้แล้ว':
       if isinstance(event.source,SourceGroup):
           if event.source.user_id == 'U991007deaa6c52bd776443e7d89f2032':
               line_bot_api.reply_message(
                   event.reply_token,
                   TextMessage(text='บะบายค่า')
               )
               line_bot_api.leave_group(event.source.group_id)
           else:
               line_bot_api.reply_message(
                   event.reply_token,
                   TextMessage(text='ไม่!')
               )   

    if event.message.text == 'ราคาน้ำมัน':
        l = oil_price.get_prices()
        s = ""
        for p in l:
            s += "%s %.2f บาท\n"%(p[0],p[1])

        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=s))
    elif event.message.text == 'วิเคราะห์รูป':
        line_bot_api.reply_message(
            event.reply_token, [
                TextSendMessage(text='สักครู่ค่ะ')
            ])

        # Process image
        try:
            lp = LicencePlate()
            result = lp.process(latest_image_path)
            s = lp.translate(result)

            line_bot_api.push_message(
                     event.source.user_id, [
                           TextSendMessage(text = s)
                    ])

        except Exception as e:
            print('Exception:',type(e),e) 
            line_bot_api.push_message(
                 event.source.user_id,[
                     TextSendMessage(text='ไม่สามารถวิเคราะห์รูปได้')
                ])
            
    else:
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text=event.message.text+'จ้า'))
Beispiel #16
0
def sendChangedMoney(event):
    try:
        message4 = status[3] + '\n' + status[
            1] + event.message.text + '\n換匯後: $'
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text=message4))
    except:
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text='發生錯誤!'))
def text_message_handler(event):
    if event.message.text.lower() == BOT_NAME.lower():
        show_menu_handler(event.source.group_id)
    elif re.findall("我要加入.*,嗷!", event.message.text.lower()) != []:
        repo_name = event.message.text[4:-3]
        join_repo(event.source.user_id, event.source.group_id, repo_name)
    elif event.message.text.lower() == "groupid":
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text=event.source.group_id))
    elif event.message.text.lower() == "userid":
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text=event.source.user_id))
Beispiel #18
0
def skill(reply_token):
    
    message1 = ImageSendMessage(
		original_content_url='https://imgur.com/kpKimU4.jpg',
        preview_image_url='https://imgur.com/kpKimU4.jpg')

    message2 = TextMessage(text="在程式語言的部分我接觸過前端設計(JavaScript、HTML、CSS)等做網頁設計與應用程式開發,也利用過C#、JAVA等做後端程式應用\n"+"而在研究所後由於課程與競賽需求我自學Python語言做資料分析與視覺處理\n"+"我主要運用的開發工具有Visual Studio、Jupyter、Unity、Eclipse等")
    message3= TextMessage(text="由於我的興趣是畫畫,因此有在自學電繪,主要使用的電繪軟體為Painting及Photoshop,大學時為了訂立目標,我曾經上架過LINE貼圖(不過當時繪畫能力還不夠成熟,就不獻醜了"+"\uDBC0\uDC8E !) \n"+"另外我的文書處理能力(包括Word撰寫與PPT製作能力...等)都很不錯喔!")

    line_bot_api.reply_message(
        reply_token,
        [message1,message2,message3])
Beispiel #19
0
def work(reply_token):
   
    message1 = ImageSendMessage(
		original_content_url='https://imgur.com/unEjMBg.jpg',
        preview_image_url='https://imgur.com/unEjMBg.jpg')

    message2 = TextMessage(text="以上經歷是曾經在校支援的一些工作\n"+"(包含計畫撰寫、課程助教、輔導教師等)")
    message3= TextMessage(text="但我還沒有參與過任何企業實習計畫\n"+"希望能在碩一到畢業前獲取實習經驗!而LINE正是我夢想的企業之一"+"\uDBC0\uDC8D \n"+"期望有機會能夠加入你們的團隊,為你們盡心盡力!")

    line_bot_api.reply_message(
        reply_token,
        [message1,message2,message3])
Beispiel #20
0
def handle_join(event):
    newcoming_text = "大家好,我是CA!\n麻煩大家先加我好友\n需要功能說明請輸入help"
    groupID = {
        "groupID": event.source.group_id,
        "datetime": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    }

    groups_db.insert_one(groupID)
    line_bot_api.push_message(admin_user_id,
                              TextMessage(text='剛加入一個群組已將groupID存入資料庫!'))

    line_bot_api.reply_message(event.reply_token,
                               TextMessage(text=newcoming_text))
Beispiel #21
0
 def cmd_克魯生成(self,event:MessageEvent,cmdline:str):
     logging.warning(f"src {event.source} try to generate token")
     
     if (event.source.user_id != ADMIN):
         self.line_bot_api.reply_message(
             event.reply_token,
             TextMessage(text="だが断る")
         )
     else:
         self.line_bot_api.reply_message(
             event.reply_token,
             TextMessage(text=cq_create_token())
         )
Beispiel #22
0
def handle_text_message(event):
    text = event.message.text #message from user
    
    if (text.lower()) == 'organi':
            line_bot_api.reply_message(event.reply_token,TextMessage(text=meraki.orgdetail()))
    elif (text.lower()) == 'networkdetail':
            line_bot_api.reply_message(event.reply_token,TextMessage(text=meraki.networkdetail()))
    elif (text.lower()) == 'networkname':
            line_bot_api.reply_message(event.reply_token,TextMessage(text=meraki.NetworkName()))
    elif (text.lower()) == 'client':
            line_bot_api.reply_message(event.reply_token,TextMessage(text=meraki.ClientCount()))
    elif (text.lower()) == 'license':
            line_bot_api.reply_message(event.reply_token,TextMessage(text=meraki.Licenselist()))
    else : 
            line_bot_api.reply_message(event.reply_token,TextSendMessage(text='What is '+text+' ((MerakiPongpan)) Not Understand'))
Beispiel #23
0
def process_postback_event(event):
    query_string_dict = parse_qs(event.postback.data)    
    print(query_string_dict)

    if 'ans' in query_string_dict:
        reply_message_array = ['magic_answer', 'next_section']

        with open('material/magic_data.json' , 'r', encoding='utf8') as f:
            readjson = json.loads(f.read())
            magic_number = str(random.randint(1,348))
            magic_words = readjson[magic_number]
        reply_message_array[0] = TextMessage(text=magic_words)
        
        replyJsonPath = 'material/'+ query_string_dict.get('folder')[0] +"/reply.json"
        reply_message_array[1] = detect_json_array_to_new_message_array(replyJsonPath)[0]

        line_bot_api.reply_message(event.reply_token, reply_message_array)

    elif 'folder' in query_string_dict:        
        reply_message_array = []
        replyJsonPath = 'material/'+ query_string_dict.get('folder')[0] +"/reply.json"
        reply_message_array = detect_json_array_to_new_message_array(replyJsonPath)
        line_bot_api.reply_message(event.reply_token, reply_message_array)

    elif 'menu' in query_string_dict: 
        linkRichMenuId = open('material/'+ query_string_dict.get('menu')[0] +'/rich_menu_id', 'r', encoding='utf8').read()
        line_bot_api.link_rich_menu_to_user(event.source.user_id, linkRichMenuId)
        
        replyJsonPath = 'material/'+ query_string_dict.get('menu')[0] +"/reply.json"
        reply_message_array = detect_json_array_to_new_message_array(replyJsonPath)
        line_bot_api.reply_message(event.reply_token, reply_message_array)
Beispiel #24
0
def handle_message(event):
	msg = event.message.text
	r = '請你再說一次'

	#if '貼圖' in msg:
	#E	sticker_message = StickerSendMessage(
	#	package_id='1',
	#	sticker_id='1'
	#)
	#line_bot_api.reply_message(
	#event.reply_token,
	#sticker_message)	
	#return


	if msg in ['strong', '壯']:
		r = 'go get it'
	elif '錢' in msg:
		r = '衝阿 專心工作'

	elif '甜點' in msg:
		r = '還吃?!'

	elif '貼圖' in msg:
		r = StickerSendMessage(
		package_id='1',
		sticker_id='1'
	)


	line_bot_api.reply_message(
		event.reply_token,
		TextMessage(text=r))
Beispiel #25
0
def ReadCSV(csvfile):
    items = list()
    with open(csvfile) as f:  #アンケートファイルを読み込む
        reader = csv.reader(f)
        header = next(reader)
        for row in reader:
            items.append(\
                {   'Num':row[0],
                    'Quest':row[1],
                    'Choice':row[2:]
                }
            )

    MessageObj = list()
    for quest in items:
        Obj = list()
        for choose in quest['Choice']:
            Obj.append(\
                QuickReplyButton(action=MessageAction(label="{}-{}".format(quest['Num'],choose),
                                text=choose))
            )
        MessageObj.append(
            TextMessage(text=quest['Quest'],
                        quick_reply=QuickReply(items=Obj)))
    return MessageObj
Beispiel #26
0
def message_sticker(event):
    logger = logging.getLogger('linecallbacklogger')
    logger.info("[LC] start handling StickerMessage")
    src = event.source
    displayName = ""
    if src.type == "user":
        userId = src.user_id
        profile = line_bot_api.get_profile(userId)
        displayName = profile.display_name
        lu = LineUser(user_id=profile.user_id,
                      display_name=profile.display_name,
                      picture_url=profile.picture_url,
                      status_message=profile.status_message)
        logger.info(lu)
        lu.save

    elif src.type == "group":
        groupId = src.group_id
        userId = src.user_id
        if userId:
            profile = line_bot_api.get_profile(userId)
            displayName = profile.display_name

    elif src.type == "room":
        roomId = src.room_id
        userId = src.user_id
        if userId:
            profile = line_bot_api.get_profile(userId)
            displayName = profile.display_name

    line_bot_api.reply_message(event.reply_token,
                               TextMessage(text="(´・ω・`)<" + displayName))
    logger.info("[LC] end handling StickerMessage")
Beispiel #27
0
    def cmd_註冊農場(self,event:MessageEvent,cmdline:str):
        register_farm(event.source.user_id, cmdline)

        self.line_bot_api.reply_message(
            event.reply_token,
            TextMessage(text="ok惹~~")
        )
    def send_non_update_venues(self, venue):

        manager_list = []

        text_message = TextMessage(text="提醒超過一小時沒有更新照片的展館: " + venue)

        self.line_bot_api.multicast(manager_list, messages=text_message)
Beispiel #29
0
def AIOT(reply_token):
    message1 = TextMessage(text="這個比賽是由台北醫學大學與麻省理工共同合辦的智慧醫療黑克松競賽,主要期望參賽者在為期3天的期間運用其給予之醫療相關open data,發想製作出對醫學界有幫助的事物或研究\n"+"--------------------------------------------------------------\n"+"本小組組成成員共有五位,分別有2位醫學界與3位資訊領域學生\n"+"我們有幸在最後拿到 Most WOW Position的特別獎殊榮!!")
    message2 = ImageSendMessage(
    original_content_url='https://imgur.com/KaWDXdw.jpg',
    preview_image_url='https://imgur.com/KaWDXdw.jpg')

    line_bot_api.reply_message(reply_token, [message1,message2])
Beispiel #30
0
def handle_message(event):
    print("event =", event)
    if event.message.text == "查詢個人檔案":
        user_id = event.source.user_id
        profile = line_bot_api.get_profile(user_id, timeout=None)
        line_bot_api.reply_message(event.reply_token,
                                   TextMessage(text=str(profile), ))

    else:
        button_template_message = ButtonsTemplate(
            thumbnail_image_url="https://i.imgur.com/eTldj2E.png?1",
            title='Menu',
            text='Please select',
            image_size="cover",
            actions=[
                #                                PostbackTemplateAction 點擊選項後,
                #                                 除了文字會顯示在聊天室中,
                #                                 還回傳data中的資料,可
                #                                 此類透過 Postback event 處理。
                PostbackTemplateAction(label='查詢個人檔案顯示文字-Postback',
                                       text='查詢個人檔案',
                                       data='action=buy&itemid=1'),
                PostbackTemplateAction(label='不顯示文字-Postback',
                                       text=None,
                                       data='action=buy&itemid=1'),
                MessageTemplateAction(label='查詢個人檔案-Message', text='查詢個人檔案'),
            ])

        line_bot_api.reply_message(
            event.reply_token,
            TemplateSendMessage(alt_text="Template Example",
                                template=button_template_message))