| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
签到 —— 一个自动签到框架 base on an HAR editor
操作前请一定要记得备份数据库
不要同时开启新旧版签到框架, 或将不同运行中容器的数据库映射为同一文件, 更新后请重启容器或清空浏览器缓存
docker地址 : https://hub.docker.com/r/a76yyyy/qiandao
docker部署命令
docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao
默认Redis已随容器启动: (该命令与上一条命令等效)
docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao sh -c "redis-server --daemonize yes && python /usr/src/app/run.py"
docker配置邮箱(强制使用SSL)
docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config --env MAIL_SMTP=STMP服务器 --env MAIL_PORT=邮箱服务器端口 --env MAIL_USER=用户名 --env MAIL_PASSWORD=密码 --env DOMAIN=域名 a76yyyy/qiandao
docker 使用MySQL
docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config --ENV DB_TYPE=mysql --ENV JAWSDB_MARIA_URL=mysql://用户名:密码@hostname:port/数据库名 a76yyyy/qiandao
其余可参考 Wiki : Docker部署签到站教程
DockerHub : 介绍
Docker已预装Curl环境, 默认安装pycurl模组
# 如需使用Proxy功能请安装PyCurl
# Windows源码运行, 请执行 pip install pycurl==7.43.0.5
pip install pycurl # pip3 install pycurl
# 如因curl导致500或599错误, 请卸载PyCurl或修改环境变量USE_PYCURL为False
# pip uninstall pycurl# 请先cd到框架源码根目录
pip3 install -r requirements.txtmysql < qiandao.sql
# 请先在框架根目录下新建local_config.py, 在linux环境下可执行以下命令
cp config.py local_config.py
# 修改local_config.py文件的内容不受通过git更新源码的影响python ./run.py数据不随项目分发, 去 https://qiandao.today/tpls/public 查看你需要的模板, 点击下载。 在你自己的主页中 「我的模板+」 点击 + 上传。模板需要发布才会在「公开模板」中展示, 你需要管理员权限在「我的发布请求」中审批通过。
python ./chrole.py your@email.address admin
python ./qiandao.py tpl.har [--key=value]* [env.json]
| 变量名 | 是否必须 | 默认值 | 说明 |
|---|---|---|---|
| BIND | 否 | 0.0.0.0 | 监听地址 |
| PORT | 否 | 8923 | 监听端口 |
| ENABLE_HTTPS | 否 | False | 发送的邮件链接启用HTTPS, 非程序使用HTTPS, 需要HTTPS需要使用反向代理 |
| DB_TYPE | 否 | sqlite3 | 需要使用MySQL时设置为'mysql' |
| JAWSDB_MARIA_URL | 否 | '' | 需要使用MySQL时, 设置为 mysql://用户名:密码@hostname:port/数据库名 |
| REDISCLOUD_URL | 否 | '' | 需要使用Redis或RedisCloud时, 设置为 http://rediscloud:密码@hostname:port |
| REDIS_DB_INDEX | 否 | 1 | 默认为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加密密钥, 强烈建议修改 |
| PROXIES | 否 | "" | 全局代理域名列表,用" |
| PROXY_DIRECT_MODE | 否 | "" | 全局代理黑名单模式,默认不开启 "url"为网址匹配模式;"regexp"为正则表达式匹配模式 |
| PROXY_DIRECT | 否 | "" | 全局代理黑名单匹配规则 |
| USE_PYCURL | 否 | True | 是否启用Pycurl模组 |
| ALLOW_RETRY | 否 | True | 在Pycurl环境下部分请求可能导致Request错误时, 自动修改冲突设置并重发请求 |
| CURL_ENCODING | 否 | True | 是否允许使用Curl进行Encoding操作 |
| CURL_CONTENT_LENGTH | 否 | True | 是否允许Curl使用Headers中自定义Content-Length请求 |
| NOT_RETRY_CODE | 否 | 详见配置... | 详见配置... |
| EMPTY_RETRY | 否 | True | 详见配置... |
详细信息请查阅config.py
| Line | Delete | Modify |
|---|---|---|
| 10 | import urlparse | from urllib.parse import urlparse |
| 18 | mysql_url = urlparse.urlparse(os.getenv('JAWSDB_MARIA_URL', '')) | mysql_url = urlparse(os.getenv('JAWSDB_MARIA_URL', '')) |
| 19 | redis_url = urlparse.urlparse(os.getenv('REDISCLOUD_URL', '')) | redis_url = urlparse(os.getenv('REDISCLOUD_URL', '')) |
| 43 | aes_key = hashlib.sha256(os.getenv('AES_KEY', 'binux').encode('utf-8')).digest() | aes_key = hashlib.sha256(os.getenv('AES_KEY', 'binux')).digest() |
| 44 | cookie_secret = hashlib.sha256(os.getenv('COOKIE_SECRET', 'binux').encode('utf-8')).digest() | cookie_secret = hashlib.sha256(os.getenv('COOKIE_SECRET', 'binux')).digest() |
sh ./update.sh # 先cd到源码所在目录, 执行命令后重启进程
sh /usr/src/app/update.sh # 先进入容器后台, 执行命令后重启进程
Tips: Socks5说明
Socks5h代理: socks5代理通过服务端进行域名解析.
如通过代理请求返回500或599错误时, 可尝试将 socks5://host:port 改为 socks5h://host:port, 以使用Socks5h方式请求
Tips: 全局代理黑名单机制说明
# 以下为全局代理域名列表相关设置
# proxies为全局代理域名列表, 默认为空[], 表示不开启全局代理;
# 代理格式应为'scheme://username:password@host:port',例如:proxies = ['http://admin:admin@127.0.0.1:8923','https://proxy.com:8888'];
# 任务级代理请在新建或修改任务时添加,任务级代理优先级大于全局代理;
proxies = os.getenv('PROXIES', '').split('|') # 若希望部分地址不走代理, 请修改proxy_direct_mode及proxy_direct
proxy_direct_mode = os.getenv('PROXY_DIRECT_MODE', '') # 默认为空, 可选输入:'url'为网址匹配模式;'regexp'为正则表达式匹配模式;''空则不开启全局代理黑名单
# proxy_direct_mode = os.getenv('PROXY_DIRECT_MODE', 'url')进入网址完全匹配模式, 在proxy_direct名单的url均不通过代理请求, 以'|'分隔url网址, url格式应为scheme://domain或scheme://domain:port
# 例如: proxy_direct = os.getenv('PROXY_DIRECT', 'http://127.0.0.1:80|https://localhost');
# proxy_direct_mode= os.getenv('PROXY_DIRECT_MODE', 'regexp')进入正则表达式匹配模式, 满足正则表达式的网址均不通过代理请求;
# 开启regexp模式后自动采用以下默认匹配正则表达式, 如无特别需求请勿修改
proxy_direct = os.getenv('PROXY_DIRECT', r"""(?xi)\A
([a-z][a-z0-9+\-.]*://)? # Scheme
(0(.0){3}|127(.0){2}.1|localhost|\[::([\d]+)?\]) # Domain/Hostname/IPv4/IPv6
(:[0-9]+)? """ # :Port
) Tips: 20210906 -> 20210908版本更新了Python相关特性和前端脚本, 不再与旧版python兼容, 请升级至Python 3.6及以上
本次更新有js脚本更新, 请开启chrome 的 “disable cache”功能更新js脚本
使用前需要进入容器, 将对应已注册邮箱设置为管理员 :
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);
本次更新会把之前的定时设置全部取消, 介意请勿更新
如果使用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, 即可
如果使用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}';
如果使用mysql 在 5.18 请使用以下命令 :
ALTER TABLE `tpl` ADD `tplurl` VARCHAR(1024) NULL DEFAULT '' ; ALTER TABLE `tpl` ADD `updateable` INT UNSIGNED NOT NULL DEFAULT 0;
定时的 "今日是否运行" 修改 为 "今日运行"
添加模板订阅功能, 仓库地址在https://github.com/qiandao-today/templates
主页打开公共模板按钮, 点击订阅后自动导入模板, 需要自己确认保存
模板上传指定格式为.har
如果使用mysql 请使用以下命令 :
ALTER TABLE `task` ADD `_groups` VARBINARY(128) NOT NULL DEFAULT 'None' ;
基于quchaonet的蓝调主题签到增加了:
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;
AragonSnow https://hexo.aragon.wang/
个人项目精力有限, 仅保证对Chrome浏览器的支持。如果测试了其他浏览器可以pull request。
MIT
| Back | FazBrowse Home | New Git URL |