Day29 LineBot总结

linebot其实还有许多功能等待我去了解,
譬如说定时推播及许许多多引用在别的地方的套件,
在这一个月之中我们首先完成了,
这个天气好狗,

import os
import requests
import json
from django.conf import settings
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseForbidden
from django.views.decorators.csrf import csrf_exempt
from linebot import LineBotApi, WebhookHandler
from linebot.exceptions import InvalidSignatureError, LineBotApiError
from linebot.models import MessageEvent, TextMessage, TextSendMessage
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from datetime import datetime

line_bot_api = LineBotApi('阿弥陀佛')
handler = WebhookHandler("阿弥陀佛")

@csrf_exempt
def callback(request):
    if request.method == 'POST':
        signature = request.META['HTTP_X_LINE_SIGNATURE']
        body = request.body.decode('utf-8')
        try:
            handler.handle(body, signature)
        except InvalidSignatureError:
            messages = (
                "Invalid signature. Please check your channel access token/channel secret."
            )
            logger.error(messages)
            return HttpResponseBadRequest(messages)
        return HttpResponse("OK")

@handler.add(event=MessageEvent, message=TextMessage)
def handl_message(event):
    outInfo = crawler("content")
    message = TextSendMessage(text=outInfo)
    line_bot_api.reply_message(
        event.reply_token,
        message)

def crawler(content):
    chrome_options = webdriver.ChromeOptions()
    chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
    chrome_options.add_argument("--headless") #无头模式
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("--no-sandbox")
    driver = webdriver.Chrome(executable_path=os.environ.get("CHROMEDRIVER_PATH"), chrome_options=chrome_options)
    driver.get("https://www.cwb.gov.tw/V8/C/W/Town/Town.html?TID=1000806")
    Temp = driver.find_element_by_id('GT_C_T').text #现在温度
    bodyTemp = driver.find_element_by_id('GT_C_AT').text #体感温度
    RelativeHumidity = driver.find_element_by_id('GT_RH').text #相对湿度
    Rain = driver.find_element_by_id('GT_Rain').text #降雨量
    Sunrise = driver.find_element_by_id('GT_Sunrise').text #日出时间
    Sunset = driver.find_element_by_id('GT_Sunset').text
    driver.quit()
    time = datetime.now()
    timeprint = datetime.strftime(time,"%Y/%m/%d %H:%M")
    
    content="【名间乡当前天气概况】"+"\n"+"\n"+"现在温度 : "+Temp+"°C"+"\n"+"体感温度 : "+bodyTemp+"°C"+"\n"+"相对湿度 : "+RelativeHumidity+"%"+"\n"+"降雨量 : "+Rain+"mm"+"\n"+"日出时间 : "+Sunrise+"\n"+"日落时间 : "+Sunset + "\n"+"现在时间为:"+timeprint
    
    # content = "现在温度:%s 体感温度:%s 相对湿度:%s 降雨量:%s 日出时间:%s 日落时间:%s"%(Temp, bodyTemp, RelativeHumidity, Rain, Sunrise, Sunset)
    # content= {
    #     "现在温度":Temp,
    #     "体感温度":bodyTemp,
    #     "相对湿度":RelativeHumidity,
    #     "降雨量":Rain,
    #     "日出时间":Sunrise,
    #     "日落时间":Sunset
    # }
    # print(content)
    return content

还有能回传机房功能的机房臭狗狗,
回味一下之後就已经拖拖拉拉废话连篇那麽多ㄌ,
接下来就要进入结语ㄌ,来了结这痛苦a30天。


今天是 蔡旻佑 的 我可以 网址如下~~~

https://www.youtube.com/watch?v=xcZBZ1VSyBc&list=PLZ_d6NX2sE80xcb4RjHSCBt3E1nTclmC4&index=22&ab_channel=asd010203



<<:  Day 29 - 大杂烩好吃

>>:  《Day 29》【软件资料库】SQLServer 镜像建置PART 2

[2021铁人赛 Day12] General Skills 09

引言 昨天的题目学习到进位制以及「 ASCII code <-> 字元」转换, 关於 ...

Day05 建构Project(1)

折腾了三天,我们终於要开始正式学习Django了!各位想必都非常兴奋吧! 那现在我们就来进行一个专案...

[Day30] 动画篇7

最後来做个暴击效果吧 先改一下Actor,设定一下暴击率: Action: Sprite_Damag...

Day 2— 你的第一次闻GAS

今天来直接上手开始我们的 Google Apps Script 之旅啦! 我们在使用 Google ...

Day 23-state manipulation 之五:terraform import,专案中途导入 terraform 必经之路

上篇介绍 state rm,强制 terraform 遗忘已经存在的 state。然而 state ...