微信推送天气预报

/ 5 Comments / 9216 View

只是对 GitHub 上的 Weather_Push_PushBear 项目简单的修改为 pushplus 推送和增加推送内容。

pushplus 是什么

pushplus(推送加)集成了微信、企业微信、钉钉、短信、邮件等实时信息推送平台
你只需要调用简单的API,即可帮助你迅速完成消息的推送,使用简单方便
我们的所做的一切只是为了让推送变的更简单

家里路由器的 IP 变化,NAS 的运行情况等等一些小玩意都是用它来推送。不过感觉涉及到一些隐私,以后打算自建 chanify 来推送应该更安全。

简单教程

1、注册 pushplus,扫码登录后进入一对多推送,获取 token

pushplus.jpg

2、创建群组,如果群组编码不是 tianqi,需要替换 push_data.py 里的 topic。

qunzu.jpg

3、注册心知天气网,进入控制台免费版获取私钥,

seniverse.jpg

4、新建四个 python 文档

get_data.py (当前私钥可以试用到5月11日,请及时替换成自己的)

# -*- coding:utf-8 -*-
import requests

class GetData:
    def get_data(self):
        '获取天气原始信息'
        # 获取指定城市未来最多15天每天的白天和夜间预报,以及昨日的历史天气。
        url = "https://api.seniverse.com/v3/weather/daily.json"
        payload = {'key': 'SqMHNTA_SHxE1MR7-', 'location': '',
                   'language': 'zh-Hans', 'unit': 'c', 'start': '0', 'days': ''}
        # 地区参数
        location = "dongguan"
        payload['location'] = location
        #天气预报天数参数
        days = '2'
        payload['days'] = days
        response = requests.get(url, params=payload)
        weather_dict = response.json()
        return weather_dict

extraction_data.py

# -*- coding:utf-8 -*-

class ExtractionData:
    def extraction_data(self, weather_json):
        '从原始Json中抽取有用信息'
        if(weather_json == None):
            return None
        else:
            results_dict = weather_json['results']
            location_dict = results_dict[0]['location']
            daily_dict = results_dict[0]['daily']
            return location_dict, daily_dict

push_data.py (self.token 替换成在 pushplus 的 token)

# -*- coding:utf-8 -*-
import requests


class PushData:
    def push_data(self, location_dict, daily_dict):
        #向微信推送天气消息
        self.url = 'https://www.pushplus.plus/send?'
        self.payload = {'token': '', 'title': '', 'content ': '', 'template ': 'markdown', 'topic': 'tianqi'}
        # 消息推送Key
        self.token = 'f34yy7415gwagtftw312r129f7c'
        self.payload['token'] = self.token
        # 推送消息Title
        self.title = '%s 天气预报' % location_dict['name']
        self.payload['title'] = self.title
        # 推送消息Description
        self.content = '<b># 今日天气</b>\n* 日间最高温度:%s℃,%s\n* 夜间最高温度:%s℃,%s\n* 相对湿度:%s %%  \n* 风向:%s\n* 风力:%s 级\n* 风速:%s KM/H\n\n<b># 明日天气</b>\n* 日间最高温度:%s℃,%s\n* 夜间最高温度:%s℃,%s\n* 相对湿度:%s %% \n* 风向:%s\n* 风力:%s 级\n* 风速:%s KM/H' % (
            daily_dict[0]['high'], daily_dict[0]['text_day'], daily_dict[0]['low'], daily_dict[0]['text_night'], daily_dict[0]['humidity'], daily_dict[0]['wind_direction'], daily_dict[0]['wind_scale'], daily_dict[0]['wind_speed'], daily_dict[1]['high'], daily_dict[1]['text_day'], daily_dict[1]['low'], daily_dict[1]['text_night'], daily_dict[1]['humidity'], daily_dict[1]['wind_direction'], daily_dict[1]['wind_scale'], daily_dict[1]['wind_speed'])
        self.payload['content'] = self.content
        requests.get(self.url, params=self.payload)

main.py

# -*- coding:utf-8 -*-
from get_data import GetData
from extraction_data import ExtractionData
from push_data import PushData

class Main:
    def __init__(self):
        '初始化程序各模块'
        self.get_data = GetData()
        self.extraction_data = ExtractionData()
        self.push_data = PushData()

    def push(self):
        weather_json = self.get_data.get_data()
        location_dict, daily_dict = self.extraction_data.extraction_data(
            weather_json)
        self.push_data.push_data(location_dict, daily_dict)

if __name__ == '__main__':
    main = Main()
    #while True:
    main.push()

5、最后根据心知天气网的更新频率,每天3~4次,那么就在服务器定时每隔6个小时运行 main.py 就可以啦。

tianqi.jpg

tianqi1.jpg

断更的日子

原本刚建立博客的时候,雄心壮志的计划最少都要月更,结果去年至今变成了季更,或者再变成年更了,哈哈。其实主要也是工作时间工作忙,周末时间陪孩子忙,所以近期也没什么好折腾的。

晚上回来要陪他写作业,练轮滑,周末小孩又有画画课,乐高课。现在自己最快乐的时间应该就是小孩睡觉后的那一两个小时的自由时间了。

农村里的幼儿园就是麻烦,才大班已经开始学20以内的加减法,然后写拼音,写汉字,读英语。小孩每天回来最痛苦的时候就是写作业吧。我们夫妻除了数学,其他都没让他一定要按照老师要求写完,也跟老师沟通过,小孩太小不想他写太多字。

跟园长聊天的时候,园长也说过,其实也不想小孩一下学那么多,不过如果不教多点,某些家长就觉得这家幼儿园不好,下一年招生就很难,学生不够就很难维持下去。

已有 5 条评论
  1. 南柯一梦

    博主这个主题是自己写的吗?很不错,很简约

    回复
  2. 这个主题真的是太棒了,手机下看着更舒服,有没有打算做成WP主题,有偿可否?

    回复
  3. 鸟叔博客首页有福利,赶紧去撸!

    回复
  4. 前段时间不是已经明确不能在幼儿园教小学的课程?看来要真正落实到位很难..

    回复
    1. @Mr.Chou

      如果一个班里有大半家长要求教呢?不教就他们换幼儿园~~

      所以一些家长一边抱怨孩子作业多没休息,一边又抱怨学校没教好。

      回复
发表新评论 / 取消回复