1、需求说明

需要在工作日向部门钉钉群发送特定信息,本次是每日待办任务更新,同时有明天地区的天气预报以及打工寄语

2、获取钉钉机器人

在项目群中获取钉钉机器人, 主要是获取Webhook值,通过Webhook值向机器人发送消息。我的钉钉机器人认证方式为加密认证,所以需要特定的进行处理,获取url地址。请根据自己需求变更secret及url信息。

def get_url():timestamp = str(round(time.time() * 1000))secret = '你的SEC证书'secret_enc = secret.encode('utf-8')string_to_sign = '{}\n{}'.format(timestamp, secret)string_to_sign_enc = string_to_sign.encode('utf-8')hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))url = "钉钉机器人url地址&timestamp={}&sign={}".format(timestamp,sign)return  url

三、获取本地明日天气预报

本人只获取了明天的天气预报,可获取未来5天天气预报,同时可以根据自己需要提醒明日是否需要带雨伞,不过本人并未添加。

#获取天气,可以根据data获取未来五日天气预报,本次只获取明日天气
def getWeather(name):url = 'http://wthrcdn.etouch.cn/weather_mini'response = requests.get(url, {'city': name})result = json.loads(response.content.decode())data = result.get('data').get('yesterday')data = result.get('data').get('forecast')i=data[1]temper = "气温范围:"+i.get('low').split(" ")[1] + "~" +i.get('high').split(" ")[1] +" "+i.get('type')+" "+i.get('fengli').replace('<![CDATA[', '').replace(']]>', '')+i.get('fengxiang')return temper

四、获取当日是否为工作日及时候为法定假假日

本人很苦逼,单双休,所以判断复杂了一点,各位如果是双休就很好判断

#判断时候为节假日
def is_rest(t):time_ratio = str(t).split(" ")[0]rest_list = ["2022-09-11","2022-09-10","2022-09-12","2022-10-01","2022-10-02","2022-10-03","2022-10-04","2022-10-05","2022-10-06","2022-10-07"]if time_ratio in rest_list:return Trueelse:return False
#判断节假日调休
def if_lieu(t):time_ratio = str(t).split(" ")[0]lieu = ["2022-10-08","2022-10-09"]if time_ratio in lieu:return Trueelse:return False
#判断当前日期是否为上班时间,双数周六即为上班,单数为休息,周天休息。节假日正常休息。
def is_workday(t):workday = t.isoweekday()if is_rest(t):return Falseelif if_lieu(t):return  Trueelif workday  == 6 and t.day % 2 == 0:return Falseelif workday == 7:return Falseelse:return True

五:打工人寄语

def get_spark():data = "不拼爹,不拼娘,不拼工作,不拼钱,我们运维人只拼命。努力!运维人! 敢上九天揽月,敢下五洋捉鳖,但却不敢迟到,因为迟到扣钱。早安,运维人! 只要我够努力,老板很快就能过上他想要的生活!该起床奋斗了!早安,运维人! 很喜欢运维人的一句话:打工赚不了几个钱,但是多打几份工可以让你没时间花钱。 老板对你说,加油小伙子,你好好努力,明年给你娶个漂亮的嫂子。加油,运维人! 世上有两种最耀眼的光芒,一种是太阳,一种是运维人努力的模样。早上好,运维人! 不打工没钱,打工也没钱,只不过打工一时饿不死而已,不打工很快就饿死。早安,运维人! 本人已上班,所有业务全面开启! 上班=有钱,有钱=快乐,所以上班=快乐。再这样上班下去,我的头顶就要跟机关枪一-样秃秃秃秃秃秃秃.......想要上班以外的生活".split(" ")return random.choice(data)

六:全部代码

# -*- coding: utf-8 -*-
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json
import random
from datetime import datetime
from chinese_calendar import  is_holiday
#根据机器人签名规则获取url地址
def get_url():timestamp = str(round(time.time() * 1000))secret = 'SEC证书信息'secret_enc = secret.encode('utf-8')string_to_sign = '{}\n{}'.format(timestamp, secret)string_to_sign_enc = string_to_sign.encode('utf-8')hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))url = "url信息&timestamp={}&sign={}".format(timestamp,sign)return  url#判断当前日期是否为上班时间,双数周六即为上班,单数为休息,周天休息。
# -*- coding: utf-8 -*-
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json
import random
from datetime import datetime
from chinese_calendar import  is_holiday#根据机器人签名规则获取url地址
def get_url():timestamp = str(round(time.time() * 1000))secret = 'SEC证书信息'secret_enc = secret.encode('utf-8')string_to_sign = '{}\n{}'.format(timestamp, secret)string_to_sign_enc = string_to_sign.encode('utf-8')hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))url = "https://oapi.dingtalk.com/robot/send?access_token=ef6aebecb7ead183952b9bec33b8a25e67456a398e9e8806c33b90ca57caec26&timestamp={}&sign={}".format(timestamp,sign)return  urldef is_holidays(date):'''判断是否为节假日'''Y = date.yearM = date.monthD = date.dayapril_last = datetime.date(Y, M, D)return is_holiday(april_last)#判断时候为节假日
def is_rest(t):time_ratio = str(t).split(" ")[0]rest_list = ["2022-09-11","2022-09-10","2022-09-12","2022-10-01","2022-10-02","2022-10-03","2022-10-04","2022-10-05","2022-10-06","2022-10-07"]if time_ratio in rest_list:return Trueelse:return False
#判断节假日调休
def if_lieu(t):time_ratio = str(t).split(" ")[0]lieu = ["2022-10-08","2022-10-09"]if time_ratio in lieu:return Trueelse:return False
#判断当前日期是否为上班时间,双数周六即为上班,单数为休息,周天休息。节假日正常休息。
def is_workday(t):workday = t.isoweekday()if is_rest(t):return Falseelif if_lieu(t):return  Trueelif workday  == 6 and t.day % 2 == 0:return Falseelif workday == 7:return Falseelse:return True
#获取天气,可以根据data获取未来五日天气预报,本次只获取明日天气
def getWeather(name):url = 'http://wthrcdn.etouch.cn/weather_mini'response = requests.get(url, {'city': name})result = json.loads(response.content.decode())data = result.get('data').get('yesterday')data = result.get('data').get('forecast')i=data[1]temper = "气温范围:"+i.get('low').split(" ")[1] + "~" +i.get('high').split(" ")[1] +" "+i.get('type')+" "+i.get('fengli').replace('<![CDATA[', '').replace(']]>', '')+i.get('fengxiang')return temperdef get_spark():data = "不拼爹,不拼娘,不拼工作,不拼钱,我们运维人只拼命。努力!运维人! 敢上九天揽月,敢下五洋捉鳖,但却不敢迟到,因为迟到扣钱。早安,运维人! 只要我够努力,老板很快就能过上他想要的生活!该起床奋斗了!早安,运维人! 很喜欢运维人的一句话:打工赚不了几个钱,但是多打几份工可以让你没时间花钱。 老板对你说,加油小伙子,你好好努力,明年给你娶个漂亮的嫂子。加油,运维人! 世上有两种最耀眼的光芒,一种是太阳,一种是运维人努力的模样。早上好,运维人! 不打工没钱,打工也没钱,只不过打工一时饿不死而已,不打工很快就饿死。早安,运维人! 本人已上班,所有业务全面开启! 上班=有钱,有钱=快乐,所以上班=快乐。再这样上班下去,我的头顶就要跟机关枪一-样秃秃秃秃秃秃秃.......想要上班以外的生活".split(" ")return random.choice(data)addr_word = "https://alidocs.dingtalk.com/i/team/dBgX430pnLNYOz8e/docs/dBgX4bRKEv3awG8e"
weather = getWeather('重庆市')
spark_data = get_spark()
data = {"msgtype": "text","text": {"content": "主题:每日待办任务更新 \n文档链接地址:{} \n明日天气预报:{} \n寄语:{}".format(addr_word,weather,spark_data)},"at": {"isAtAll": True}}if __name__ == '__main__':if is_workday(datetime.now()) == True:url = get_url()headers = {'Content-Type': 'application/json;charset=utf-8'}r = requests.post(url=url, headers=headers, data=json.dumps(data))else:quit()

七:设置定时任务,本人是Windows的定时任务,关键点如图所示:

八:效果如图所示

利用python编写钉钉机器人工作日提醒相关推荐

  1. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  2. 利用android实现汇率计算器,利用python编写一个汇率计算器

    利用python编写一个汇率计算器 发布时间:2020-11-10 15:03:44 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍利用python编写一个汇率计算器 ...

  3. python编写游戏测试机器人客户端(一)

    系列文章目录 python编写游戏测试机器人客户端(一) python编写游戏测试机器人客户端(二) python编写游戏测试机器人客户端(三) python编写游戏测试机器人客户端(四) pytho ...

  4. 利用python实现短信和电话提醒功能

    有时候,我们需要程序帮我们自动检测某些事件的发生 这个需求是广泛存在的 因此,这里整理了利用python实现短信和电话提醒功能的方法 主要需要完成以下4个步骤: - 安装核心库:twilio - 注册 ...

  5. python提醒事件_利用python实现短信和电话提醒功能的例子

    有时候,我们需要程序帮我们自动检测某些事件的发生 这个需求是广泛存在的 因此,这里整理了利用python实现短信和电话提醒功能的方法 主要需要完成以下4个步骤: - 安装核心库:twilio - 注册 ...

  6. 利用python编写手机脚本

    利用python编写手机脚本 adb连接安卓模拟器 在手机里编写python脚本控制手机 如何使用python控制手机(以微信游戏跳一跳为例) adb连接安卓模拟器 链接(转载)https://www ...

  7. 利用Python编写代码实现消息自动回复

    前言   利用python编写一小段代码可代码实现QQ.微信好友自动发消息的功能,从而达到"消息轰炸"的效果.代码很简单也很有趣,快来一起看看吧 目录 准备条件   焦点获取  代 ...

  8. 利用python编写一段手柄控制程序

    好的,以下是一个简单的利用Python编写的手柄控制程序: 首先,需要导入所需的模块.这里我们使用 Pygame 和 Pygame 手柄模块,Pygame 可以让我们轻松地处理游戏输入和输出,而 Py ...

  9. 利用Python编写一个高斯正反算程序

    一.前言 这次的高斯正反算程序是使用的Python编写的. 环境信息是:Win10.PyCharm 2021.3.1.PySide6 6.3.1.Python 3.9.9,基于QT Designer设 ...

  10. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

最新文章

  1. 创建虚拟机并安装CentOS操作系统
  2. java compareto方法怎么排序的_深入理解Java中Comparable和Comparator排序
  3. 关于安装VS2010过程中的错误
  4. 在ubuntu中使用cookiecutter搭建django项目时命令迟迟没有反应
  5. EasyUI下拉框级联
  6. 一文带你看完ZooKeeper!
  7. BlackBerry 应用程序开发者指南 第二卷:高级--第11章 管理通知(Notification)
  8. java启动项目报错,org.apache.catalina.lifecycleException..............以及解决方案
  9. AspectJ注解版和XML版
  10. offer上不写具体薪资合理吗_拿着OFFER当白菜?职场菜鸟不带这么玩的
  11. 拿什么重建你,巴黎圣母院?
  12. python主要用来做什么-python主要用来做什么?Python开发简单吗?
  13. 通过高速计算机网络和多媒体,全国2014.10办公自动化原理及应用试题
  14. DB2之CLOB对象用法
  15. python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
  16. C++的multi_map如何输出所有key值相等的元素
  17. python写界面c这算法_OpenCV算法精解:基于Python与C.pdf
  18. 20145201 《信息安全系统设计基础》期中总结
  19. 外链建设的22种方法
  20. Confluence(wiki)配置数据库及修改数据库地址

热门文章

  1. Bezier曲线的生成算法
  2. 计算机专业用集显电脑够用吗,科技教程:买电脑该选择独立显卡还是集成显卡好呢?...
  3. 李嘉诚先生给年轻人的忠告
  4. Asp.net WebAPI Attribute Rout
  5. 家用工具套装_家用工具套装种类多,这套实用的请收好
  6. Radware扩大企业业务
  7. 阅读圣经丨关于DAX(修订版)
  8. HTTP/HTTPS及CDN 原理
  9. 害羞的伦琴是如何掀起X-射线狂热的?
  10. 计算机教育软件参评作品例子,关于转发《关于举办滁州学院2012年教育软件评比活动的通知》的通知...