All Projects → qiandao-today → qiandao

qiandao-today / qiandao

Licence: MIT license
[当前版本: 20230111] Qiandao —— 一个HTTP请求定时任务自动执行框架 base on HAR Editor and Tornado Server

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects
coffeescript
4710 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to qiandao

qd-templates
基于开源新版签到框架站发布的公共har模板库,整理自用 qiandao 框架可用的各种网站和App的 Har 模板,仅供学习参考。
Stars: ✭ 77 (-96.33%)
Mutual labels:  har, checkin, qiandao
templates
基于开源新版签到框架站发布的公共har模板库,仅供示例
Stars: ✭ 306 (-85.43%)
Mutual labels:  har, qiandao
AutoCloudSign
百度贴吧、哔哩哔哩、毕方、网易云音乐 云签到
Stars: ✭ 24 (-98.86%)
Mutual labels:  checkin, qiandao
ExampleForSCF
腾讯云SCF(云函数)、Github Actions的python脚本,用于每天自动签到,一个是吾爱破解论坛的一个是哔哩哔哩的,作为我了解SCF的示例。
Stars: ✭ 120 (-94.29%)
Mutual labels:  checkin
Httprunner
One-stop solution for HTTP(S) testing, written in Python.
Stars: ✭ 2,628 (+25.14%)
Mutual labels:  har
request-capture-har
Wrapper for request module that saves all traffic as a HAR file.
Stars: ✭ 37 (-98.24%)
Mutual labels:  har
har-server
Serve responses from a HAR file.
Stars: ✭ 31 (-98.52%)
Mutual labels:  har
node-fetch-har
Generate HAR entries for requests made with node-fetch
Stars: ✭ 23 (-98.9%)
Mutual labels:  har
Human Activity Recognition
A new and computationally cheap method to perform human activity recognition using PoseNet and LSTM. Where we use PoseNet for Preprocessing and LSTM for understand the sequence.
Stars: ✭ 25 (-98.81%)
Mutual labels:  har
json-caching-proxy
Node caching HTTP proxy built on top of express-http-proxy. Persists requests and responses to an in-memory HAR-like data structure based on HAR1.2 . Caches JSON content-type responses by default with the ability to cache an entire site; including content-types describing images. Useful for testing front end code, mocking api, and saving the cac…
Stars: ✭ 31 (-98.52%)
Mutual labels:  har
haralyzer
A Framework For Using HAR Files To Analyze Web Pages
Stars: ✭ 89 (-95.76%)
Mutual labels:  har
har-reader
Library for accessing HTTP Archives (HAR) with Java
Stars: ✭ 66 (-96.86%)
Mutual labels:  har
HAR
Code for WWW2019 paper "A Hierarchical Attention Retrieval Model for Healthcare Question Answering"
Stars: ✭ 22 (-98.95%)
Mutual labels:  har
har-to-k6
JSON config representation of K6 script
Stars: ✭ 73 (-96.52%)
Mutual labels:  har
har-rs
A HTTP Archive format (HAR) serialization & deserialization library, written in Rust.
Stars: ✭ 25 (-98.81%)
Mutual labels:  har
NeteaseCheckIn
ONLY FUNCTION : Netease checkin 网易云自动签到
Stars: ✭ 12 (-99.43%)
Mutual labels:  checkin
earth
🌏 A map of places I've checked in on Earth.
Stars: ✭ 96 (-95.43%)
Mutual labels:  checkin
chaoxing
Make Github to help u for signing on Superstar Xuexitong every 5 minutes, base on github actions.
Stars: ✭ 58 (-97.24%)
Mutual labels:  qiandao

QianDao for Python3

Qiandao —— 一个HTTP请求定时任务自动执行框架 base on HAR Editor and Tornado Server

HomePage Github Gitee license Build Image last commit commit activity docker version docker pulls docker stars docker image size repo size python version

All Contributors

操作说明

HAR editor 使用指南

操作前请一定要记得备份数据库

请勿同时运行新旧版 Qiandao 框架, 或将不同运行中容器的数据库映射为同一文件, 更新后请重启容器或清空浏览器缓存

请勿使用阿里云镜像源拉取 Docker 容器, 会导致无法拉取最新镜像

首位注册用户默认为管理员, 需要先登出再登陆才能获得完整管理员权限

Docker容器部署方式

  1. Docker地址 : https://hub.docker.com/r/a76yyyy/qiandao

  2. Docker Compose部署方式

    # 创建并切换至 qiandao 目录
    mkdir -p $(pwd)/qiandao/config && cd $(pwd)/qiandao
    # 下载 docker-compose.yml
    wget https://fastly.jsdelivr.net/gh/qiandao-today/qiandao@master/docker-compose.yml
    # 根据需求和配置描述修改配置环境变量
    vi ./docker-compose.yml
    # 执行 Docker Compose 命令
    docker-compose up -d

    配置描述见下文配置环境变量

    如不需要OCR功能或者硬盘空间不大于600M, 请使用 a76yyyy/qiandao:lite-latest 镜像, 该镜像仅去除了OCR相关功能, 其他与主线版本保持一致

    请勿使用 阿里云镜像源 拉取 Docker 容器, 会导致无法拉取最新镜像

  3. Docker部署方式

    docker run -d --name qiandao -p 8923:80 -v $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao

    容器内部无法连通外网时尝试该命令:

    # 使用 Host 网络模式创建容器, 端口号: 8923
    docker run -d --name qiandao --env PORT=8923 --net=host -v $(pwd)/qiandao/config:/usr/src/app/config a76yyyy/qiandao

    请注意使用该命令创建容器后, 请将模板里 http://localhost/ 形式的api请求, 手动改成api://http://localhost:8923/ 后, 才能正常完成相关API请求。

  4. 数据库备份指令 :

    docker cp 容器名:/usr/src/app/config/database.db .

    数据库恢复指令 :

    docker cp database.db 容器名:/usr/src/app/config/
  5. 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
  6. 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
  7. 其余可参考 Wiki : Docker部署 Qiandao 站教程

  8. DockerHub : 介绍

  9. Docker已预装Curl环境, 默认安装pycurl模组

Web源码部署方式

  1. Version >= python3.8

    # 请先cd到框架源码根目录
    pip3 install -r requirements.txt
  2. 修改相关设置

    # 请先在框架根目录下新建local_config.py, 在linux环境下可执行以下命令
    cp config.py local_config.py
    # 修改local_config.py文件的内容不受通过git更新源码的影响
  3. 启动

    python ./run.py

    数据不随项目分发, 去 https://github.com/qiandao-today/templates 查看你需要的模板, 点击下载。

    在你自己的主页中 「我的模板 +」 点击 + 上传模板。

    模板需要发布才会在「公开模板」中展示, 你需要管理员权限在「我的发布请求」中审批通过。

  4. 设置管理员

    python ./chrole.py [email protected] admin
  5. qiandao.py-CMD操作

    python ./qiandao.py tpl.har [--key=value]* [env.json]

config.py-配置环境变量

变量名 是否必须 默认值 说明
BIND 0.0.0.0 监听地址
PORT 8923 监听端口
QIANDAO_DEBUG False 是否启用Debug模式
WORKER_METHOD Queue 任务定时执行方式,
默认为 Queue, 可选 Queue 或 Batch,
Batch 模式为旧版定时任务执行方式, 性能较弱,
建议仅当 Queue 定时执行模式失效时使用
MULTI_PROCESS False 是否启用多进程模式,
Windows平台无效
AUTO_RELOAD False 是否启用自动热加载,
MULTI_PROCESS=True时无效
ENABLE_HTTPS False 发送的邮件链接启用HTTPS,
非程序使用HTTPS, 需要HTTPS需要使用反向代理
DOMAIN qiandao.today 指定访问域名,
<建议修改>, 否则邮件重置密码等功能无效
AES_KEY binux AES加密密钥, <强烈建议修改>
COOKIE_SECRET binux cookie加密密钥, <强烈建议修改>
COOKIE_DAY 5 Cookie在客户端保留天数
DB_TYPE sqlite3 需要使用MySQL时设置为'mysql'
JAWSDB_MARIA_URL '' 需要使用MySQL时,
设置为 mysql://用户名:密码@hostname:port/数据库名?auth_plugin=
QIANDAO_SQL_ECHO False 是否启用 SQLAlchmey 的日志输出, 默认为 False,
设置为 True 时, 会在控制台输出 SQL 语句,
允许设置为 debug 以启用 debug 模式
QIANDAO_SQL_LOGGING_NAME qiandao.sql_engine SQLAlchmey 日志名称, 默认为 'qiandao.sql_engine'
QIANDAO_SQL_LOGGING_LEVEL Warning SQLAlchmey 日志级别, 默认为 'Warning'
QIANDAO_SQL_ECHO_POOL True 是否启用 SQLAlchmey 的连接池日志输出, 默认为 True,
允许设置为 debug 以启用 debug 模式
QIANDAO_SQL_LOGGING_POOL_NAME qiandao.sql_pool SQLAlchmey 连接池日志名称, 默认为 'qiandao.sql_pool'
QIANDAO_SQL_LOGGING_POOL_LEVEL Warning SQLAlchmey 连接池日志级别, 默认为 'Warning'
QIANDAO_SQL_POOL_SIZE 10 SQLAlchmey 连接池大小, 默认为 10
QIANDAO_SQL_MAX_OVERFLOW 50 SQLAlchmey 连接池最大溢出, 默认为 50
QIANDAO_SQL_POOL_PRE_PING True 是否在连接池获取连接前,
先ping一下, 默认为 True
QIANDAO_SQL_POOL_RECYCLE 3600 SQLAlchmey 连接池回收时间, 默认为 3600
QIANDAO_SQL_POOL_TIMEOUT 60 SQLAlchmey 连接池超时时间, 默认为 60
QIANDAO_SQL_POOL_USE_LIFO True SQLAlchmey 是否使用 LIFO 算法, 默认为 True
REDISCLOUD_URL '' 需要使用Redis或RedisCloud时,
设置为 http://rediscloud:密码@hostname:port
REDIS_DB_INDEX 1 默认为1
QIANDAO_EVIL 500 (限Redis连接已开启)登录用户或IP在1小时内
操作失败(如登录, 验证, 测试等操作)次数*相应惩罚分值
达到evil上限后自动封禁直至下一小时周期
EVIL_PASS_LAN_IP True 是否关闭本机私有IP地址用户及Localhost_API请求的evil限制
TRACEBACK_PRINT False 是否启用在控制台日志中打印Exception的TraceBack信息
PUSH_PIC_URL push_pic.png 默认为push_pic.png
PUSH_BATCH_SW True 是否允许开启定期推送 Qiandao 任务日志, 默认为True
MAIL_SMTP "" 邮箱SMTP服务器
MAIL_PORT "" 邮箱SMTP服务器端口
MAIL_USER "" 邮箱用户名
MAIL_PASSWORD "" 邮箱密码
MAIL_FROM MAIL_USER 发送时使用的邮箱,默认与MAIL_USER相同
MAIL_DOMAIN mail.qiandao.today 邮箱域名,没啥用, 使用的DOMAIN
PROXIES "" 全局代理域名列表,用"
PROXY_DIRECT_MODE "" 全局代理黑名单模式,默认不启用
"url"为网址匹配模式;"regexp"为正则表达式匹配模式
PROXY_DIRECT "" 全局代理黑名单匹配规则
USE_PYCURL True 是否启用Pycurl模组
ALLOW_RETRY True 在Pycurl环境下部分请求可能导致Request错误时,
自动修改冲突设置并重发请求
DNS_SERVER "" 通过Curl使用指定DNS进行解析(仅支持Pycurl环境),
如 8.8.8.8
CURL_ENCODING True 是否允许使用Curl进行Encoding操作
CURL_CONTENT_LENGTH True 是否允许Curl使用Headers中自定义Content-Length请求
NOT_RETRY_CODE 详见配置... 详见配置...
EMPTY_RETRY True 详见配置...
USER0ISADMIN True 第一个注册用户为管理员,False关闭
EXTRA_ONNX_NAME "" config目录下自定义ONNX文件名
(不填 ".onnx" 后缀)
多个onnx文件名用"|"分隔
EXTRA_CHARSETS_NAME "" config目录下自定义ONNX对应自定义charsets.json文件名
(不填 ".json" 后缀)
多个json文件名用"|"分隔

详细信息请查阅config.py

旧版local_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()

更新方法

  1. 源码部署更新

    # 先cd到源码所在目录, 执行命令后重启进程 
    wget https://gitee.com/a76yyyy/qiandao/raw/master/update.sh -O ./update.sh && \
    sh ./update.sh 
  2. Docker容器部署更新

    # 先进入容器后台, 执行命令后重启容器 
    wget https://gitee.com/a76yyyy/qiandao/raw/master/update.sh -O /usr/src/app/update.sh && \
    sh /usr/src/app/update.sh
  3. 强制同步最新源码

    # 先cd到仓库代码根目录, 执行命令后重启进程 
    wget https://gitee.com/a76yyyy/qiandao/raw/master/update.sh -O ./update.sh && \
    sh ./update.sh -f

更新日志

详见 CHANGELOG.md

维护项目精力有限, 仅保证对 Chrome 浏览器的支持。如果测试了其他浏览器可以 Pull Request。

许可

MIT 许可协议

致谢

Contributors

Thanks goes to these wonderful people (emoji key):


a76yyyy

🎨 💻 🚧

Roy Binux

🎨 💻 🚧

AragonSnow

💻 🎨 🚧

Mark

🎨 📝 💡 📖

pidan

🎨

buzhibujue

💻

billypon

💻

acooler15

💻 🚧

shxyke

💻

xiaoxiao

💻

hiCasper

💻

旋子

💻

chen8945

💻

seiuneko

💻

powersee

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Stargazers over time

Stargazers over time

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].