qiandao
操作前请一定要记得备份数据库
操作前请一定要记得备份数据库
操作前请一定要记得备份数据库
鸣谢
AragonSnow https://hexo.aragon.wang/
个人项目精力有限,仅保证对Chrome浏览器的支持。如果测试了其他浏览器可以pull request让我修改。
因为需要测试,docker镜像会晚于gitHub几天更新
docker地址:https://hub.docker.com/r/asdaragon/qiandao
变量名 | 是否必须 | 默认值 | 说明 |
---|---|---|---|
BIND | 否 | 0.0.0.0 | 监听地址 |
PORT | 否 | 8923 | 监听端口 |
ENABLE_HTTPS | 否 | False | 发送的邮件链接启用HTTPS,非程序使用HTTPS,需要HTTPS需要使用反向代理 |
DB_TYPE | 否 | sqlite3 | 需要使用MySQL时设置为'mysql' |
JAWSDB_MARIA_URL | 否 | '' | 需要使用MySQL时设置为 mysql://用户名:密码@链接/数据库名 |
REDISCLOUD_URL | 否 | '' | 不懂 |
REDIS_DB_INDEX | 否 | 1 | 不懂 |
DOMAIN | 否 | qiandao.today | 指定域名,建议修改,不然邮件重置密码之类的功能无效 |
MAIL_SMTP | 否 | "" | 邮箱SMTP服务器 |
MAIL_PORT | 否 | "" | 邮箱SMTP服务器端口 |
MAIL_USER | 否 | "" | 邮箱用户名 |
MAIL_PASSWORD | 否 | "" | 邮箱密码 |
MAIL_DOMAIN | 否 | mail.qiandao.today | 邮箱域名,没啥用,使用的DOMAIN |
AES_KEY | 否 | binux | AES加密密钥,强烈建议修改 |
COOKIE_SECRET | 否 | binux | cookie加密密钥,强烈建议修改 |
docker部署命令:docker run -d --name qiandao -p 12345:80 -v $(pwd)/qiandao/config:/usr/src/app/config asdaragon/qiandao
数据库备份指令:docker cp 容器名:/usr/src/app/config/database.db .
数据库恢复指令:docker cp database.db 容器名:/usr/src/app/config/
docker配置邮箱(强制使用SSL):docker run -d --name qiandao -p 12345:80 -v $(pwd)/qiandao/config:/usr/src/app/config --env MAIL_SMTP=STMP服务器 --env MAIL_PORT=邮箱服务器端口 --env MAIL_USER=用户名 --env MAIL_PASSWORD=密码 --env DOMAIN=域名 asdaragon/qiandao
docker 使用MySQL:docker run -d --name qiandao -p 12345:80 -v $(pwd)/qiandao/config:/usr/src/app/config --ENV DB_TYPE=mysql --ENV JAWSDB_MARIA_URL=mysql://用户名:密码@链接/数据库名 asdaragon/qiandao
自定义推送示例:
WXPusher
{
"url": "http://wxpusher.zjiecode.com/api/send/message",
"headers": "",
"postData":"{"appToken":"你的token","content":"{log}","contentType":3,"uids":["你的UID"]}",
"postMethod": "json"
}
bark:
{
"postData": "{"title":"{t}","body":"{log}"}",
"headers": "",
"mode": "POST",
"postMethod": "x-www-form-urlencoded",
"curl": "https://barkurl/key/",
}
2021.06.28 更新
- 修改Dockfile,采用密钥更新
2021.06.26 更新
- 公共仓库添加评论功能,跳转到github,国内打不开的问题自行解决
- 公共仓库添加强制更新按钮
- 修复mysql创建数据库错误
- 修复about页面打开500错误
2021.06.21 更新
- 重写公共模板仓库的订阅方法,允许添加第三方库(具体规范参考)
- 模板使用缓存的方式,默认是每隔一天重新读取,可以手动刷新缓存
- 新增多任务禁用/启用/删除/定时/分组
- 任务和模板分组栏修改颜色
- 修复注册用户时没有创建md5密码的bug
2021.04.13 更新
- 添加代理功能,目前暂时不可用(By billypon)
2021.02.20 更新
- 完善MD5
- 修复部分站点500的问题
- 公共模板添加清缓存功能
2021.02.20 更新
- 修复容忍错误推送的失效的BUG
- 主循环修改为0.5s,使定时运行更准确
- 修复/register没有注册按钮的BUG
- 密码验证修改为md5
- 更换默认微信推送图片
2021.01.22 更新
- 整合推送模块
- 添加定时cron支持
- ENABLE_HTTPS 使能时邮件链接为https
2021.01.17 更新
- 添加企业微信支持
- 支持在用户管理里修改密码
2021.01.16 更新
- 修复点击登陆失败后注册按钮消失的问题
2021.01.13 更新
- 开启邮箱验证前必须验证管理员邮箱
2021.01.08 更新
- 修复20210122注册按钮丢失的BUG
- 添加记事本访问接口
- 添加自定义推送示例
- sqlite3_db_task_converter放在web启动之前
2021.01.07 更新
- 底部添加本项目链接
- 禁止注册时隐藏注册按钮
- 显示注册推送的前值
- 添加记事本功能,用户可以将数据保存在本地
- 推送注册和推送设置按钮移动到工具箱
- 定时时间以任务起始时间为依据
- 新增自定义推送功能
- bark推送改为POST,可以推送日志
2020.12.24 更新
- 修复模板编辑中'{{变量}}'自动urlencode的问题
2020.12.23 更新
- 添加EMAIL发送开关
2020.12.22 更新
- 修复任务运行结束后'logDay'报错
- 邮箱变量设置为环境变量获取
2020.12.04 更新
- 修复任务运行结束后'logDay'报错
2020.11.20 更新
- 修复模板订阅时url太长报错的问题,模板按照修改时间来排序
- 支持网站设置仅保留一定天数的日志,日志清理时间在任务成功完成之后,默认365天
- 手动清除一定天数的日志
- 分组折叠/展开 支持记忆
- 修复模板编辑页面反选错误的bug
2020.11.05 更新
- 用户管理,备份,网站管理,密码不显示明文,不输入账号密码返回页面显示中文
2020.10.31 更新
- 允许普通用户备份/恢复
- 模板编辑页显示请求排序
- 模板编辑页可以同时删除多个请求
- 主页允许多项操作删除/分组,取消分组的勾选框,改为点击即可显示隐藏
- 公共仓库打开失败时使用本地仓库
2020.09.18 更新
- 允许备份/恢复 用户的所有任务和模板
- 修复模板编辑时,变量作为url会自动url转码的bug
- 模板编辑时允许拖拽请求
- 模板订阅添加错误显示,避免500
2020.09.14 更新(By liubei121212)
- 添加 unicode 函数
- 优化 api 页样式
- 在模板编辑页中测试时也可以复制错误信息了
- 优化日志页复制错误信息的实现方式
- 添加常用 api/过滤器
- 修复主页和推送设置中长用户名的显示
- 前值、edit 页面的错误信息增加复制按钮
2020.09.10 更新
- 鉴于github 污染严重,使用gitee代替作为订阅源,地址:https://gitee.com/qiandao-today/templates
- 首页的检查模板更新取消,打开公共模板仓库会自动检查更新
- 修复邮箱验证,注册后未验证可以再次点击注册验证
- 修改任务时显示前值
本次更新有js脚本更新,请开启chrome 的 “disable cache”功能更新js脚本
2020.09.07 更新
- 在数据库管理中增加一键备份/恢复所有模板的功能
2020.09.01 更新
- 正则提取支持post方式
- 取消getcookie插件提示(By powersee)
- 管理员可以查看用户是否验证邮箱,可以设置不验证邮箱无法登陆
- 支持任务分组
- 推送带上任务备注
2020.07.19更新
- 修改按钮“推送通知开关”为“推送设置”
- 添加错误提醒容忍。在自动签到到一定次数错误后,才推送提醒。
2020.07.17更新
- 使报错显示中文,添加点击复制错误日志按钮(by liubei121212)
- 主页版本从alpha修改为20200717
2020.07.09更新
- 添加 管理员 备份数据库功能
- 添加任务日志清空功能
- 修复定时的随机延时取消失败的BUG
- 添加任务禁用功能
- 为了提高兼容性,请求不验证SSL
2020.6.22 更新
- 修复检查公共模板更新功能;
- 美化左侧三按钮(By 十六君)
- 修复插入RSA加密实际是字符串替换的BUG
- 修改请求为不验证SSL,提升兼容性
2020.6.14 更新
- 添加RSA加密/解密
- 用户管理页面添加用户最后登陆时间
- 字符串替换功能可以返回纯文本,避免有转义'\'的出现,需要替换参数r=text
2020.6.12 更新
- 定时日志BUG太多,修不过来,取消此功能
- 修复用户不存在时登录500错误
2020.6.11 更新
- 修复MySQL的支持,不需要手动更新Mysql数据库
2020.6.10 更新
- 添加管理员管理用户功能,可以将用户禁用/开启/删除
- 添加关闭/开启注册功能
- 修改主页的'检查更新'为'检查模板更新'
使用前需要进入容器,将对应已注册邮箱设置为管理员:
docker exec -it 容器名 /bin/bash
python ./chrole.py 邮箱 admin
被禁用的账户将不能登录网站,所有任务将被禁用。 被删除的账户,会删除该用户的所有任务,模板和日志
如果使用mysql 在 20200604 请使用以下命令:
ALTER TABLE `user` ADD `status` VARBINARY(1024) NOT NULL DEFAULT 'Enable';
CREATE TABLE IF NOT EXISTS `site` (
`id` INTEGER NOT NULL PRIMARY KEY,
`regEn` INT UNSIGNED NOT NULL DEFAULT 1
);
INSERT INTO `site` VALUES(1,1);
2020.6.6 更新
- 修复用户不存在依然能登陆的BUG(具体表现为:新用户新建模板保存时500错误,注册推送时提示NoneType)
- 完善注册推送的注册消息
- 修复自动完成不推送的bug
- 添加定时 “今日已签过” 选项,可以直接定时第二天
- 修复公共模板的HAR订阅功能
2020.6.5 更新
- 修复 sqlite3 数据库初始值错误的问题,仅影响新建数据库的用户
2020.6.4 更新
- 根据反馈,HAR编辑里插入链接修改默认地址为localhost
- 修复2020601版,插入请求后修改为localhost地址, 点击测试的500错误的问题
- 支持定时后 随机延时
本次更新会把之前的定时设置全部取消,介意请勿更新
如果使用mysql 在 20200601 请使用以下命令:
ALTER TABLE `task` ADD `newontime` VARBINARY(256) NOT NULL DEFAULT '{\"sw\":false,\"time\":\"00:10:10\",\"randsw\":false,\"tz1\":0,\"tz2\":0 }'
延时的另一种用法,间隔定时运行:如果要实现每1周定时运行一次,设置最大最小值都是604800,即可
2020.6.1 更新
- 时间显示修改为具体时间,取消之前的 "1小时后"等模糊显示(By 戏如人生)
- 新建任务时可以选择分组
- Bark推送支持保存历史信息,需要升级APP。
- HAR编辑里添加添加插入unicode解码,url解码,正则表达式,字符串替换的功能
2020.5.31 更新
- 修复定时 ‘day out of month’ 的BUG
- 取消定时界面的今日运行选项,自动判断当前时间是今天还是第二天
- 集成了时间戳获取、unicode转换、url转换功能(By gxitm)
- 集成了正则表达式、字符串替换功能。
2020.5.30 更新
- 修改 任务失败时 推送的消息内容为 任务日志;
- 因浏览器支持不好,取消 2020.5.18更新的 ‘模板上传指定格式为.har’;
- 新增模板编辑 追加HAR 的功能;
- 新增模板请求删除功能。
2020.5.26 更新
- 修复定时日志发送的最后一条日志的bug
- 修复定时日志出错影响程序运行的bug
2020.5.25 更新
- Bark, S酱, WXPusher 注册合并为一个按钮
- 任务推送支持注册后也能关闭
- 支持分任务开/关推送
- 新增每日日志功能,可以将每日定时前的最后一个日志推送到S酱和WXPusher
- 修复“↓”按钮定位不准的bug
如果使用mysql 在 5.22 请使用以下命令:
ALTER TABLE `task` ADD `pushsw` VARBINARY(128) NOT NULL DEFAULT '{\"logen\":false,\"pushen\":true}';
ALTER TABLE `user` ADD `logtime` VARBINARY(128) NOT NULL DEFAULT '{\"en\":false,\"time\":\"20:00:00\",\"ts\":0,\"schanEn\":false,\"WXPEn\":false}';
2020.5.22 更新
- 分组增加折叠/展开功能
- 左侧增加新建模板按钮,“↑”回到顶部, “↓”表示跳转到模板页面
- 修复删除任务时日志不删除bug
2020.5.19 更新
- 添加手动检查模板更新的按钮。
如果使用mysql 在 5.18 请使用以下命令:
ALTER TABLE `tpl` ADD `tplurl` VARCHAR(1024) NULL DEFAULT '' ;
ALTER TABLE `tpl` ADD `updateable` INT UNSIGNED NOT NULL DEFAULT 0;
2020.5.18 更新
- 定时的 "今日是否运行" 修改 为 "今日运行"
- 添加模板订阅功能,仓库地址在https://github.com/qiandao-today/templates 主页打开公共模板按钮,点击订阅后自动导入模板,需要自己确认保存
- 模板上传指定格式为.har
2020.5.16 更新
- 添加任务分类功能
如果使用mysql 请使用以下命令:
ALTER TABLE `task` ADD `groups` VARBINARY(128) NOT NULL DEFAULT 'None' ;
- 定时功能显示之前的定时值
初始版本
基于quchaonet的蓝调主题签到增加了:
- 设置任务最低间隔时间及任务request最高100限制 (by 戏如人生)
http://cordimax.f3322.net:5558/381.html
-
增加了server酱、bark推送,WXPusher推送,并可以设置推送开关(by AragonSnow) 需要推送的:登录账号以后点击注册bark/s酱/WXPusher,测试推送没有问题以后,再点击提交
-
增加定时功能,在新建任务以后会出现定时按钮,设置每天的定时时间。
不兼容旧版的数据库, 旧版数据库导入会自动转换,旧版将无法使用
使用SQLite3的,默认路径改为config文件夹里面,方便挂载后备份
使用Mysq的,请使用一下命令更新数据库:
ALTER TABLE `task` ADD `ontimeflg` INT UNSIGNED NOT NULL DEFAULT 0;
ALTER TABLE `task` ADD `ontime` VARCHAR(256) NOT NULL DEFAULT '00:10:00';
ALTER TABLE `user` ADD `skey` VARBINARY(128) NOT NULL DEFAULT '' ;
ALTER TABLE `user` ADD `barkurl` VARBINARY(128) NOT NULL DEFAULT '' ;
ALTER TABLE `user` ADD `wxpusher` VARBINARY(128) NOT NULL DEFAULT '' ;
ALTER TABLE `user` ADD `noticeflg` INT UNSIGNED NOT NULL DEFAULT 1;
以下为原镜像说明:
签到 —— 一个自动签到框架 base on an HAR editor
HAR editor 使用指南:https://github.com/binux/qiandao/blob/master/docs/har-howto.md
Web
需要 python2.7, 虚拟主机无法安装
apt-get install python-dev autoconf g++ python-pbkdf2
pip install tornado u-msgpack-python jinja2 chardet requests pbkdf2 pycrypto
可选 redis, Mysql
mysql < qiandao.sql
启动
./run.py
数据不随项目分发,去 https://qiandao.today/tpls/public 查看你需要的模板,点击下载。 在你自己的主页中 「我的模板+」 点击 + 上传。模板需要发布才会在「公开模板」中展示,你需要管理员权限在「我的发布请求」中审批通过。
设置管理员
./chrole.py your@email.address admin
使用Docker部署站点
可参考 Wiki Docker部署签到站教程
qiandao.py
pip install tornado u-msgpack-python jinja2 chardet requests
./qiandao.py tpl.har [--key=value]* [env.json]
config.py
优先用mailgun
方式发送邮件,如果要用smtp方式发送邮件,请填写mail_smtp, mail_user, mail_password
mail_smtp = "" # 邮件smtp 地址
mail_user = "" # 邮件账户
mail_passowrd = "" # 邮件密码
mail_domain = "mail.qiandao.today"
mailgun_key = ""
许可
MIT