用Python在00:00给微信好友发元旦祝福语
2019年的元旦即将来临,这里用Python撸一串简单的代码来实现定点给微信里的所有小伙伴发祝福语
环境说明
Python版本: 不限
第三方库: itchat, schedule
注:所有祝福语来源于网络,代码运行周期较长,最好跑在服务器上
代码如下
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 18-12-9 上午9:08
# @Author : KainHuck
# @Email : kainhoo2333@gmail.com
# @File : 元旦祝福.py
import itchat
import random
import schedule
import datetime
import time
# 登录,并暂存登录状态
itchat.auto_login(hotReload=True)
# 获取所有好友信息
friends = itchat.get_friends(update=True)
# 筛选掉没有备注名的好友, 并将要发送祝福语的好友放置在一个字典里
final_friends = {}
for each in friends:
if len(each['RemarkName']) > 0:
final_friends[each['RemarkName']] = each['UserName']
# 祝福语列表
greeting = ['元旦到了,在辞旧迎新的日子里,我愿为你送走烦恼迎来开心,送走压力迎来健康,送走失意迎来顺利,送走意外迎来平安,并希望你快快乐乐过个元旦节。',
'圆圆的梦想,七色的花;圆圆的人生,五彩的画;圆圆的元旦,幸福的家;圆圆的问候,事业大发;圆圆的祝福,你笑哈哈!祝你元旦快乐! ',
'元旦即将来到,信息不能迟到;好友前来报到,祝福提前送到:爱情浪漫美好,友情温暖笼罩,亲情时刻围绕,工作业绩攀高,生活幸福欢笑,来年更美好! ',
'喜悦,在心中荡漾;笑容,在脸颊洋溢;歌声,在悠扬回荡;舞步,在惬意游走;礼花,在尽情绽放;祝福,在频频发送。朋友,元旦快乐!祝你幸福,阖家欢乐! ',
'元旦加祝福,新的一年好幸福;元旦加努力,新的一年好成绩;元旦加上你,新的一年好给力!祝元旦的你格外美丽,快乐一整个世纪!',
'新的开始新希望,新的一天新阳光,开始新的追求,播下新的梦想,翻开新的一页,写下新的辉煌。新的一年开始,送你深深的祝福,元旦快乐。',
'元旦将来到,我心费思量。朋友关系好,送个什么好。我无多钱财,也没中彩票。短信送祝福,礼轻情意重。祝你轻轻松松无烦恼,快快乐乐过元旦!',
'将快乐化作短信,发送给你,愿你新的一年快乐无边;将好运融入信息,传达给你,愿新的一年里,好运连连幸福不断;元旦里我将所有的祝福复制,一并发于你,愿你明年万事如意! ']
# 发送祝福函数
def send_greet(RemarkName,userName):
greet = random.choice(greeting) # 随机选择一句祝福语
message = RemarkName + ',' + greet # 添加上备注名
itchat.send(message, toUserName=userName)
# 定义任务
def job():
now_date = str(datetime.datetime.now().date()) # 获取函数执行时的时间
if now_date == '2019-01-01' or now_date == '2019-1-1': # 如果是2019年元旦就执行(PS:忘记datetime.datetime.now().date()输出的格式了...)
for each_friend in final_friends:
send_greet(each_friend, final_friends['final_friends'])
# 每天00:00执行一次job函数
schedule.every().day.at("00:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
用Python在00:00给微信好友发元旦祝福语的更多相关文章
- python 操作 mysql 数据库 datetime 属性字段为 0000-00-00 00:00:00 的问题
撇开 sqlalchemy, 先讲 MySQLdb 和 pymysql mysql 版本 mysql Ver 14.14 Distrib 5.1.73 新建一个测试表 test, 结构如下: mys ...
- 1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)
转载自(http://jm.ncxyol.com/post-88.html) 今天在看Python API时,看到time模块: The epoch is the point where the ...
- SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.
相信很多人进行数据存储时,会遇上如标题的异常错误. 其实也不算上一个错误. 当你的程序中有宣告一个字段的数据类型为DateTime时,但你又没有赋值给它,就进行存储时,它就会得到这样一个结果. 看看下 ...
- “SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。”
原因: .NET中 DateTime最小值为: 0001-1-1 0:00:00 数据库中DateTime最小值为: 1753-1-1 0:00:00, 很明显:.NET中的最小值超出了数据库时间类 ...
- '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error
'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp error 异常现象 ### Cause: java.sql.SQ ...
- mysql解决Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp
同步发布:http://www.yuanrengu.com/index.php/mysqlsolvetimestamp.html 在使用mysql时,如果数据库中的字段类型是timestamp,默认为 ...
- 错误:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;的解决
问题: 代码中查询MySQL的结果集时报错,提示Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;刚开始 ...
- Mysql-提示java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 7 to TIMESTAMP.
在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp ...
- extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办。。。
extjs DateField 的值用getValue()方法获取后是一大堆字符串,类似Tue Dec 07 2010 00:00:00 GMT 0800,这玩意存入数据库实在不好办...所以要把它格 ...
随机推荐
- Unity游戏开发面试基础知识
面试第一次知识总结: 一.Unity基本操作 1.unity提供哪几种光源? 点光源.平行光.聚光灯.区域光. 2.物体发生碰撞的必要条件什么? 两个物体必须有碰撞体Collider组件,一个物体上必 ...
- Linux下如何查找sqlnet.ora 和listener.ora 和tnsnames.ora 配置文件的目录
1.首先切换到oracle 用户下 使用env 查看数据库配置文件信息 2.然后找到LD_LIBRARY_PATH=/home/opt/oracle/product/11.2.0.4/db_1 (配置 ...
- uboot前传
1.uboot到底是干嘛的 uboot主要作用是用来启动操作系统内核. uboot还要负责部署整个计算机系统. uboot中还有操作Flash等板子上硬盘的驱动. uboot还得提供一个命令行界面供人 ...
- C++连接sqlite数据库的增删查改操作
这个代码是接着上次说的,要用VS2013操作数据库,首先要配置好环境,创建好数据库表等. 不明白的翻我前面2篇看看~~~ 关于前面的用到的goto 语句,这个我也是参考其他博主写的,现在我注释掉了,毕 ...
- Day 26:Dom4j修改xml
Dom4j:Writing a document to a file import java.io.File; import java.io.FileOutputStream; import org. ...
- P 1035 插入与归并
转跳点 :
- POJ1611 && POJ2524 并查集入门
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 28293 Accepted: 13787 De ...
- C++ 检测物理内存以及磁盘空间
BOOL CheckResource() { MEMORYSTATUSEX statex; statex.dwLength = sizeof (statex); GlobalMemoryStatusE ...
- Sass - &引用父选择器
描述: 您可以使用&字符选择父级选择器. 它告诉父选择器应该插入的位置. 例一:&在前 h3 { font-size: 20px margin-bottom: 10px &.s ...
- php.laravel.log
看代码,原厂代码写的比较清楚,版本(laravel5.7) 简单使用,方便调试,详细使用需要详细查看文档. 在config/app.php 添加 'log' => env('APP_LOG', ...