Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

zhaojunliing/scripts_v2

Repository files navigation

scripts_v2

基于Go语言开发的自动化脚本合集:

  • 采用模块化开发, 可扩展性高, 可用于二次开发。
  • 支持自动更新和自动编译脚本。
  • 支持docker一键部署, 用户可自定义crontab任务。
  • 支持某东脚本并发执行。
  • 目前仅有jd的几个脚本, 后续会持续增加一些脚本。

目录说明

├── Dockerfile // docker build
├── LICENSE
├── README.md
├── com // 通用包
│  └── file.go
├── config 
│  ├── config.go // 根配置
│  ├── config.json // 配置文件
│  └── jd // 子配置项
├── contracts // interface 定义
│  ├── jd.go
│  └── notify.go
├── database // database 相关
│  └── database.go
├── global // 全局变量
│  ├── const.go
│  ├── logger.go
│  └── user_agent.go
├── go.mod
├── go.sum
├── manage.go
├── models // 模型定义
├── repositories // 模型操作
├── scripts // 脚本存放路径
│  └── jd // 存放某东脚本
├── shell // 存放shell脚本
│  └── docker-entrypoint.sh
├── storage // 存放资源,日志文件
│  └── logs // 日志目录
├── structs // 结构体定义
│  ├── jd.go
│  └── notify.go
└── tools // 工具函数
 ├── build_scripts.go
 ├── update_config.go
 ├── update_crontab.go
 └── update_readme.go

安装

  • 拉取镜像: docker pull classmatelin/scripts_v2:latest
  • 创建容器: docker run -itd --name scripts_v2 classmatelin/scripts_v2:latest
  • 进入容器: docker exec -it scripts_v2 bash
  • 注: n1盒子等请将classmatelin/scripts_v2:latest替换为classmatelin/scripts_v2:n1

使用

配置文件

  • 配置文件: config/config.json:
{
 "logger": {
 "directory": "storage/logs", // 日志文件夹
 "filename": "logger.log" // 日志名称
 },
 "jd": {
 "cookies": [
 "pt_pin=jd1;pt_key=sssss;", // 最简配置
 "pt_pin=jd2;ws_key=sfsfsf;", // 使用ws_key;
 "pt_pin=jd3:ws_key=sfsfsfsf;remark=账号3;", // remark为备注账号名
 "pt_pin=jd4;pt_key=sfasfafaf;remark=账号4;push_plus=fasfasfasfafaf;", // 备注账号4, 并且单独配置push_plus通知.
 // 同时单独配置server_jd, push_plus, tg通知
 "pt_pin=j;pt_key=s;remark=g;push_plus=af;server_j=sfsaf;tg_bot_token=sfasf;tg_user_id=2;",
 // notify_type, 1: 开启单独通知并且推送到总通知, 2 开启单独通知但不推送到总通知。
 "pt_pin=j;pt_key=s;remark=g;push_plus=af;notify_type=2",
 ]
 },
 "notify": {
 "server_j": "", // server 酱通知send key
 "push_plus": "", // push+通知 token
 "tg": { 
 "bot_token": "", // tg机器人token
 "user_id": "" // tg chat id.
 }
 }
}

定时任务

  • 定时任务配置文件: config/crontab.json
  • 键为脚本名称(不带后缀.go), 值为定时任务值, 设为false则关闭脚本定时任务。
{
 "jd_check_cookies": "0 */4 * * *", 
 "jd_joy_park": false 
}

手动执行

  • go/src/scripts目录下的*.bin结尾的文件均为可执行文件。
  • 例如: ./jd_check_cookies.bin执行检测cookies。

开发脚本

在scripts/jd目录下建立JdHello.go:

  • 文件头cron可设置定时任务执行时间:
// @Description: Jd Hello
// @Cron: 0 4 * * *
  • 定义struct:
type JdHello struct {
	structs.JdBase
	client *resty.Request
}
// 定义New方法并且返回constracts.Jd
func (JdFanLi) New(user jd.User) constracts.Jd {
	obj := JdFanLi{}
	return obj
}
// GetTitle
// @description: 返回脚本名称
// @receiver : j
// @return: interface{}
func (j JdFanLi) GetTitle() interface{} {
	return "Jd hello"
}
// 该方法是脚本入口, 脚本逻辑必须在这里调用
func (j JdFanLi) Exec() {
 fmt.Println("hello world")
}
// 使用RunJd批量执行即可
func main() {
	structs.RunJd(JdFanLi{}, jd.UserList)
}

其他

免责声明

一切下载及使用脚本(scripts_v2)时均被视为已经仔细阅读并完全同意以下条款:

  • 脚本(scripts_v2)仅供个人学习与交流使用,严禁用于商业以及不良用途。
  • 如有发现任何商业行为以及不良用途,脚本(scripts_v2)作者有权撤销使用权。
  • 使用本脚本所存在的风险将完全由其本人承担,脚本(scripts_v2)作者不承担任何责任。
  • 脚本(scripts_v2)注明之服务条款外,其它因不当使用本脚本而导致的任何意外、疏忽、合约毁坏、诽谤、版权或其他知识产权侵犯及其所造成的任何损失,本脚本作者概不负责,亦不承担任何法律责任。
  • 对于因不可抗力或因黑客攻击、通讯线路中断等不能控制的原因造成的服务中断或其他缺陷,导致用户不能正常使用,脚本(scripts_v2)作者不承担任何责任,但将尽力减少因此给用户造成的损失或影响。
  • 本声明未涉及的问题请参见国家有关法律法规,当本声明与国家有关法律法规冲突时,以国家法律法规为准。
  • 本脚本相关声明版权及其修改权、更新权和最终解释权均属脚本(scripts_v2)作者所有。
  • 您必须在下载后的24小时内从计算机或手机中完全删除以上内容。

About

jd scripts(golang) https://t.me/+fo3HSUe3nbRiNjY1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Go 97.2%
  • Shell 2.3%
  • Dockerfile 0.5%

AltStyle によって変換されたページ (->オリジナル) /