检查你家乡的天气预报,如果预报有降水,发送电子邮件提醒你打包雨具。

wolkenbruch的Python项目详细描述


rain cloud

沃尔肯布鲁克

检查天气预报中可配置的位置并发送电子邮件 如果天气预报有降水,提醒你带上雨具。在

Wolkenbruch使用MET Norway API,并使用OpenStreetmap从地名中查找位置。在

依赖性

Wolkenbruch是用python3编写的,它依赖于Python模块geocoderrequests和{a5}。在

安装

  • 使用pip或类似的:
pip3 install wolkenbruch
  • 或:手动:

    • 克隆此存储库
    ^{pr2}$
    • 切换到克隆目录
    • 使用Pythonsetuptools安装包:
    cd wolkenbruch
    python3 ./setup.py install
    
  • 或:(仅限Arch Linux)来自AUR:

# e.g. using yay
yay python-wolkenbruch

配置

根据您的操作系统,将示例配置文件wolkenbruch.yml.example复制到合适的位置:

  • 在Linux系统上:
    • 系统范围的配置:/etc/wolkenbruch.yml
    • 每用户配置:
      • ~/.config/wolkenbruch.yml
      • ${XDG_CONFIG_HOME}/wolkenbruch.yml
  • 在MacOS系统上:
    • 每用户配置:
      • ${XDG_CONFIG_HOME}/wolkenbruch.yml
  • 在Microsoft Windows系统上:
    • 每用户配置: %APPDATA%\wolkenbruch.yml

调整配置:

  • 更改预测搜索的位置。对于较大的城市来说,它们的名字就足够了(支持Unicode),例如“赫尔辛基”。当涉及到较小的地方,或者与世界不同地区的其他地方同名的地方时,你可能需要加上一个国家、州或郡名,例如“斯普林菲尔德,菲菲”。在
  • 调整SMTP主机和凭据(如果不需要身份验证,请将用户和密码留空)。小心:凭证(显然)保存为纯文本。使用chmod 0600 "~/.config/wolkenbruch.yml"保护对配置文件的访问,例如在GNU/Linux或MacOS系统上。在
  • 设置发送者和接收者的电子邮件地址(它们可以并且经常是同一个地址)
  • 如果您愿意,请更改电子邮件的主题行和邮件正文。消息体可以包含Python string formatting code,用于浮点变量a和{}(未来14小时的平均和最大降水量,单位为mm/h)。在
  • 调整你能承受的降雨量:average_precipitation_rate_threshold是未来14小时内的平均降水量(单位:mm/h),必须超过该值才能向你发送提醒,max_precipitation_rate_threshold使你不想忘记雨具的最高单小时值。在
  • verbose标志用于切换wolkenbruch是打印状态还是静默操作。在
# example configuration file# (/etc/wolkenbruch.yml, ~/.config/wolkenbruch.yml,#    %APPDATA%/wolkenbruch.yml, ${XDG_CONFIG_HOME}/wolkenbruch.yml)smtp:host:localhost:587user:foobarpassword:BARFOOemail:from:me@whereever.comto:myself@whereever.comsubject:Pack your rain gear!message:The forecast precipitation rate for today is {a:.2f} mm/h, maximum {m:2f} mm/h.place:Helsinkiaverage_precipitation_rate_threshold:0.1max_precipitation_rate_threshold:0.5verbose:False

用法

运行wolkenbruch检查接下来14小时的降水量,并向您发送电子邮件提醒。理想情况下,设置一个cron作业或systemd计时器来运行wolkenbruch,例如每天早上。在

系统定时器

wolkenbruch.service和{}从extra/systemd/复制到/etc/systemd/user/或{},并使计时器在每天早上6:30运行wolkenbruch:

systemctl --user daemon-reload
systemctl --user enable --now wolkenbruch.timer 

如果要在未登录时触发systemd计时器,请为用户启用lingering

sudo loginctl enable-linger USERNAME

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java找不到适合makeText的方法   如何将java数组转换为prolog列表并使用它进行jpl查询?   安卓中显示ArrayList的java子类ArrayAdapter   Java8GroupingBy到包含列表的映射中   java Json字符串,带有要映射的嵌套对象<string,string>   java Hibernate中的包和列表有什么区别?   java Spring REST模板指定Jackson视图   java如何在继承的类中返回字符串?   调试Java ArrayQue删除和轮询方法错误   带有NetBeans 7.4的java JSP自定义标记Struts2   java无法从加载jar文件。蝙蝠锉   无法解析java image_项“未显示在下拉列表中且无法键入”   jdoDetachedState设置为null的java查询实体   scala使用Cypher CREATE命令和属性映射,来自Java   minecraft中的java/me并没有被我编写的插件禁用   java Cucumber框架设置   java以奇怪的方式遍历LinkedList?   java JPA将布尔字段配置为保留为整数   月球着陆器中的java Android垃圾收集