Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修改了几行代码,设置为每天0点开始签到。 #135

Open
WoChen5770 opened this issue Sep 1, 2019 · 33 comments
Open

修改了几行代码,设置为每天0点开始签到。 #135

WoChen5770 opened this issue Sep 1, 2019 · 33 comments

Comments

@WoChen5770
Copy link

WoChen5770 commented Sep 1, 2019

文件:/web/handlers/task.py
第9行下新增一行
import datetime
108行下新增
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) if time.localtime().tm_hour >= 16: next = next+16*60*60+24*60*60 else: next = next+16*60*60
119行下新增
self.db.task.mod(task['id'], next = next)
130行 修改为
next = next)

文件:worker.py
168-170修改为
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) if time.localtime().tm_hour >= 16: next = next+16*60*60+24*60*60 else: next = next+16*60*60

如果想为了前端显示准确时间 可以设置 libs/utils.py 第53行: full_format=True
这样的话,在页面上点击立即签到,或者是新增签到,下一次签到时间都是下一天0点
自动签到失败还是保留原来的隔段时间重试

希望能够帮到你们,如有错误 请指正

@WoChen5770
Copy link
Author

WoChen5770 commented Sep 1, 2019

1
2
3

微信图片_20190901231404

@jjss520
Copy link

jjss520 commented Sep 3, 2019

老大,能贴个修改后的代码图吗,修改过微信提醒,按照你的教程,一直无限重启,有的行数应该和你的不一样

@WoChen5770
Copy link
Author

WoChen5770 commented Sep 3, 2019

老大,能贴个修改后的代码图吗,修改过微信提醒,按照你的教程,一直无限重启,有的行数应该和你的不一样

已经补图。这个修改是针对于服务器是utc时区的,如果已经是北京时间了
那么上面的
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) if time.localtime().tm_hour >= 16: next = next+16*60*60+24*60*60 else: next = next+16*60*60
直接为
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) + 24*60*60
就可以了

@hunter8605
Copy link

修改时区后还是提示错误,无法启用,不知道哪里出错了

@WoChen5770
Copy link
Author

修改时区后还是提示错误,无法启用,不知道哪里出错了

如果修改了启动不了,估计你是代码可能哪里漏了括号什么的。

@hunter8605
Copy link

worker.py 和task.py里的时区都修改了,括号也检查了,代码都是复制粘贴上去的,还是不行呢?
QQ截图20190903123750

QQ截图20190903123837

QQ截图20190903123927

@WoChen5770
Copy link
Author

worker.py 和task.py里的时区都修改了,括号也检查了,代码都是复制粘贴上去的,还是不行呢?
QQ截图20190903123750

QQ截图20190903123837

QQ截图20190903123927

看起来似乎是没错,启动报什么错?

@hunter8605
Copy link

Docker 容器:qiandao 意外停止。

有几个签到我设置的是每隔6小时,或者12小时,不是每天签到,不知道是不是这个原因

@hunter8605
Copy link

修改时区后还是提示错误,无法启用,不知道哪里出错了

如果修改了启动不了,估计你是代码可能哪里漏了括号什么的。

只修改 libs/utils.py 第53行: full_format=True这里,能正常启动

@jjss520
Copy link

jjss520 commented Sep 3, 2019

搞定,谢谢分享

@WoChen5770
Copy link
Author

Docker 容器:qiandao 意外停止。

有几个签到我设置的是每隔6小时,或者12小时,不是每天签到,不知道是不是这个原因

有可能是间隔的问题,建议新开一个容器试试。你上面那个大兄弟也成功了

@skypjsfly
Copy link

有些时候可能论坛时间存在短时间的误差,会导致签到没签上。如果我想改成凌晨1点或者0点过5分,应该怎么改呢?

@WoChen5770
Copy link
Author

WoChen5770 commented Sep 3, 2019

有些时候可能论坛时间存在短时间的误差,会导致签到没签上。如果我想改成凌晨1点或者0点过5分,应该怎么改呢?

+24*60*60 就是加一天
想多过5分 就再加5*60
以此内推

@jjss520
Copy link

jjss520 commented Sep 3, 2019

有些时候可能论坛时间存在短时间的误差,会导致签到没签上。如果我想改成凌晨1点或者0点过5分,应该怎么改呢?

+24*60*60 就是加一天
想多过5分 就再加5*60
以此内推

next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) + 246060 + 5*60

这样吗?

@skypjsfly
Copy link

这样不会导致签到周期变成24小时5分钟么?

@WoChen5770
Copy link
Author

WoChen5770 commented Sep 3, 2019

int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d')))

这样不会导致签到周期变成24小时5分钟么?

周期还是24小时

@jjss520
Copy link

jjss520 commented Sep 6, 2019

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

@WoChen5770
Copy link
Author

WoChen5770 commented Sep 7, 2019

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

@iamvicliu
Copy link

mark

@hunter8605
Copy link

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

@iamvicliu
Copy link

iamvicliu commented Sep 14, 2019

求助大佬,我的时区好像已经是CST了,但网页里还是提示“预计下次签到时间”为 2019-9-15 8:00:00

这个是怎么回事呀?

————————
两处都改为了这句话:
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) + 246060

————————
date -R
Sun, 15 Sep 2019 01:56:35 +0800

date
Sun Sep 15 01:56:37 CST 2019

我也按照这个帖子的方法对服务器重新对时了:
——
Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法 - wangmj518的专栏 - CSDN博客
https://blog.csdn.net/wangmj518/article/details/49683305

@WoChen5770
Copy link
Author

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

@WoChen5770
Copy link
Author

求助大佬,我的时区好像已经是CST了,但网页里还是提示“预计下次签到时间”为 2019-9-15 8:00:00

这个是怎么回事呀?

————————
两处都改为了这句话:
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) + 24_60_60

————————
date -R
Sun, 15 Sep 2019 01:56:35 +0800

date
Sun Sep 15 01:56:37 CST 2019

我也按照这个帖子的方法对服务器重新对时了:
——
Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法 - wangmj518的专栏 - CSDN博客
https://blog.csdn.net/wangmj518/article/details/49683305

试一下一楼的改法

@iamvicliu
Copy link

求助大佬,我的时区好像已经是CST了,但网页里还是提示“预计下次签到时间”为 2019-9-15 8:00:00
这个是怎么回事呀?
————————
两处都改为了这句话:
next = int(time.mktime(time.strptime(str(datetime.date.today()), '%Y-%m-%d'))) + 24_60_60
————————
date -R
Sun, 15 Sep 2019 01:56:35 +0800
date
Sun Sep 15 01:56:37 CST 2019
我也按照这个帖子的方法对服务器重新对时了:
——
Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法 - wangmj518的专栏 - CSDN博客
https://blog.csdn.net/wangmj518/article/details/49683305

试一下一楼的改法

用一楼的改法,OK了。
作为一个对code一知半解的产品汪,就先这么用吧~~ (^▽^)

@iamvicliu
Copy link

喔,难道是因为docker内的容器,是独立的系统,需要重新设定时区?

我上面的方法只是对主机自己设定了时区

@iamvicliu
Copy link

果然如此。
找到了解决办法

修改docker时区 - 哎幽的成长 - CSDN博客
https://blog.csdn.net/u012373815/article/details/52782807

@iamvicliu
Copy link

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

大佬。想做下伸手党,签到间隔的数值存储在哪里? 在task 和 worky里可以直接调用么?

@WoChen5770
Copy link
Author

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

大佬。想做下伸手党,签到间隔的数值存储在哪里? 在task 和 worky里可以直接调用么?

签到间隔是 tpl['interval'],签到任务是task表,里面有个tplid字段。
具体实现方法 应该是 通过task的tplid去查tpl表得到tpl['interval']数值。
作者已经写了相关的查询方法,在代码里直接调用即可

@hunter8605
Copy link

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

大佬。想做下伸手党,签到间隔的数值存储在哪里? 在task 和 worky里可以直接调用么?

签到间隔是 tpl['interval'],签到任务是task表,里面有个tplid字段。
具体实现方法 应该是 通过task的tplid去查tpl表得到tpl['interval']数值。
作者已经写了相关的查询方法,在代码里直接调用即可

大神能举个例子吗,不会些代码,只能傻瓜化的举一反三

@WoChen5770
Copy link
Author

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

大佬。想做下伸手党,签到间隔的数值存储在哪里? 在task 和 worky里可以直接调用么?

签到间隔是 tpl['interval'],签到任务是task表,里面有个tplid字段。
具体实现方法 应该是 通过task的tplid去查tpl表得到tpl['interval']数值。
作者已经写了相关的查询方法,在代码里直接调用即可

大神能举个例子吗,不会些代码,只能傻瓜化的举一反三
举个例子不就相当于我帮你改好了,这东西不用反三。
等有时间我改一下发上来

@iamvicliu
Copy link

@WoChen5770 大佬。 借楼再请教一个问题。多个签到任务都是0点签到,怎么设定签到顺序? 我想让某个任务第一时间运行。

@WoChen5770
Copy link
Author

@WoChen5770 大佬。 借楼再请教一个问题。多个签到任务都是0点签到,怎么设定签到顺序? 我想让某个任务第一时间运行。

这个没有研究,建议看看源代码。或者试试把任务放在第一位或者最后一位

@livingli
Copy link

livingli commented Mar 8, 2020

老哥,现在用了你的方法,所以签到都零点开始,有没有方法把其中某一个签到,改在定时开始,比如有一个签到我要8点开始签到,请问一下,有什么办法?可以解决

提供个思路 把“签到间隔”改成“每天签到时间”
因为我改成每天0点后 签到间隔就是多余的字段了,正好可以 改为每天签到时间

请问具体怎么改啊,能举一个例子吗?

计算下次签到时间时加上模版的“签到间隔”

大佬。想做下伸手党,签到间隔的数值存储在哪里? 在task 和 worky里可以直接调用么?

签到间隔是 tpl['interval'],签到任务是task表,里面有个tplid字段。
具体实现方法 应该是 通过task的tplid去查tpl表得到tpl['interval']数值。
作者已经写了相关的查询方法,在代码里直接调用即可

大神能举个例子吗,不会些代码,只能傻瓜化的举一反三
举个例子不就相当于我帮你改好了,这东西不用反三。
等有时间我改一下发上来

这个功能可以的,期待大佬上传,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants