AnimeGo

module
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2022 License: MIT

README

AnimeGo

使用Golang编写的全自动追番工具,简单的部署和使用,方便的模块化扩展

使用帮助

-config string
    配置文件路径;配置文件中的相对路径均是相对与程序的位置 (default "data/animego.yaml")
-debug
    Debug模式,将会输出更多的日志 (default false)
0.安装插件 [可选]
1.首次启动
./AnimeGo

会在程序所在目录输出data文件夹,其中data/animego.yaml为配置文件。

2.修改配置

打开并编辑data/animego.yaml

其中主要需要修改的配置项为:

  • setting/client/qbittorrent : 必填,qbittorrent客户端webapi信息
  • setting/feed/mikan/url : Mikan订阅url,如果仅使用浏览器插件手动下载则无需填写
  • setting/save_path: 下载保存路径
  • setting/data_path: 程序所需数据文件路径,可以通过修改此项,移动程序自动生成的data文件夹
  • 其余配置项根据需求修改
3.启动程序
./AnimeGo -config=data/animego.yaml

可选-debug,启用后将输出更详细的日志
如不修改data/animego.yaml位置,直接启动程序即可

可以使用如screen等工具放至后台执行,也可以创建服务并启动

更多待补充...

文档

  1. 配置文件
  2. 插件函数文档(仅过滤器)
  3. webapi(Swagger)接口文档

目的

  • 简化部署和使用,以及模块化扩展
  • 学习

目前进度

开发计划

版本计划

TODO
  • 使用bangumi archive数据
  • 自动联网更新
  • 文件名解析改为外部js插件,允许自定义
  • 修复bug

开发日志

v0.5.3 (2022.12.21)
  • 修复重复打开bolt导致死锁的问题
  • 新增查询数据库相关接口
    • GET /api/bolt
    • GET /api/bolt/value
v0.5.2 (2022.12.21)
  • 增加休眠机制
    • 下载器中无正在下载、正在做种或已下载项目时,将不会扫描本地文件
v0.5.1 (2022.12.21)
  • 新增schedule定时任务
    • 每周四固定更新AnimeGoData数据
  • 移除从bangumi获取当前ep信息流程
  • 移动部分代码位置
  • 清理无用models
v5.0.0 (2022.12.20)
  • 配置文件版本号为1.1.0
  • 全新的downloader manager
    • 更加准确的判断是否重复下载
    • 移除无用配置项
  • 取消对下载器的依赖
    • 以AnimeGo自身数据库为准
    • 权限的rename模块,根据下载状态判断重命名
  • bolt中使用json存储
    • 移除gob依赖
  • 移除不完全的dmhy支持
v0.4.3 (2022.11.13)
  • 更改webapi插件相关接口中,插件名搜索规则
    • 不需要传递 'plugin' 这一层文件夹
    • 插件名可以忽略'.js'后缀
    • 插件名可以使用上层文件夹名,会自动加载文件夹内部的 'main.js' 或 'plugin.js'
  • webapi支持Swagger
  • webapi增加配置项值获取、配置项注释获取和yaml配置文件获取接口
v0.4.2 (2022.11.12)
  • 修改代码兼容性
  • 简单支持dmhy(未开放)
v0.4.1 (2022.11.9)
  • 支持根据插件名搜索插件文件
    • 插件名可以忽略'.js'后缀
    • 插件名可以使用上层文件夹名,会自动加载文件夹内部的 'main.js' 或 'plugin.js'
  • 使用最新bolt分支: bbolt
  • 支持bolt cache批量写入数据
    • 使AnimeGoData写入数据库速度大大提升
v0.4.0 (2022.11.6)
  • 配置文件版本号为1.0.0
  • 修复下载路径为相对路径时,qbt下载位置错误的问题
  • 首次使用自动释放资源
  • 配置文件动态创建
  • 支持缓存时间自定义
  • 彩色日志输出
2022.10.30 (v0.3.0)
  • 修改配置文件结构
  • 使用gorequest作为网络请求库
    • 更好的重试等待和超时
  • 默认关闭debug模式
2022.10.23 (v0.2.3)
  • 修改插件读取文件规范,现在仅能够读取所在路径文件
  • 请求响应非200不再进行缓存
  • 修复webapi参数绑定问题
2022.10.23 (v0.2.2)
  • 修复错误信息嵌套问题,优化错误提示
  • UserAgent
2022.10.15
  • 修改和增加webapi
    • 支持access_key认证
    • 修改url地址
    • 支持设置和获取插件的json配置文件
2022.10.14
  • 统一错误提示[未完成]
  • 修正js和bangumi部分bug
2022.10.6 alpha-0.1
  • qBittorrent关闭重连功能
    • qbt退出期间下载项会暂存于下载队列中,重启后恢复下载
    • 下载队列在qbt客户端关闭期间满的话,会停止解析、停止下载
  • 更好的日志分类
    • 一般提示[INFO]
    • 已知错误[WARN],根据具体错误类型自动判断是否继续解析此项
    • 未知错误[ERROR],可能会影响功能的正常使用
  • tmdb默认值设置
2022.10.5
  • 支持WebAPI
  • 整理项目初始化相关的代码结构
  • 整理测试文件初始化
  • 修复重复下载的问题
2022.10.4
  • 增加种子大小Length字段
  • 增加资源释放程序
  • 修改部分配置结构
2022.10.2
  • 初步的插件模型:内置javascript虚拟机引擎 goja
  • 支持js脚本编写Rss过滤器
    • 支持筛选
    • 支持日志、获取Mikan信息等基础内置函数
  • 支持 poketto初步解析下载项名
2022.8.28
  • 项目正式更名为AnimeGo
  • 更改项目结构
  • 增加filter接口(暂无实现)
  • 将feed更新manager移动到filter manager
  • 增加部分包注释
  • 增加http请求超时重试机制(mikan除外)
2022.8.27
  • 更改项目结构
  • 更改缓存方式
    • 新增memorizer组件
    • 改用函数缓存,入参为key,返回值为value
  • anisource使用单例模式,避免不必要的对象创建
2022.8.17
  • 更改项目结构
    • 将anisource抽离到pkg,可单独使用
  • 优化错误处理
  • 使用goreq来进行网络请求
2022.8.14
  • 增加主函数
    • 支持安全退出
  • 修复bug
    • tmdb报错问题
    • 自动创建不存在的文件夹
    • 安全退出错误
    • ...
2022.8.13
  • 优化下载流程,修复重复下载问题
  • 更改项目结构
2022.8.4
  • 重构项目结构
    • 删除不必要interface定义
    • 修改为较规范的go项目结构(未完成)
    • parser包不使用结构体,直接使用函数
  • 修改关键结构体命名
    • Bangumi->Anime,和bgm.tv网站作区分
  • 统一订阅、下载器的manager结构,均采用协程方式运行
    • 订阅和下载器之间,支持使用chan传递下载项
  • 待补充和完善...
2022.8.3
  • 下载流程管理基本完成
  • 完整的mikan rss自动下载基本完成
2022.7.31
  • 修改项目结构
    • 优化config包结构,删除不必要函数
    • 将config和cache放在store文件夹中,并交由store包统一管理
2022.7.26 - 7.30
  • 修改部分代码结构、细节,增加部分字段
  • 日志使用zap
  • cache等放在全局变量store中
  • cache bucket命名常量化
  • 修正qbittorrent方法
  • 新增manager
    • 支持使用client进行下载
    • 支持下载流程的管理,包括排队、进度获取等
    • 支持重命名、移动正在下载项
2022.6.27
  • 番剧信息完全缓存,即同一个url、同一个番剧、同一集仅需请求一次
    • 使用gob来序列化与反序列化数据
  • 支持高级设置,包括各种数据的缓存过期时间等细致配置
2022.6.22
  • 增加boltDB 作为缓存数据库的调用接口
  • 调整models.Bangumi结构,使数据传递更合理
  • 支持获取当前ep的信息
2022.6.21
  • 调整项目结构
  • 调整配置文件结构
  • 支持设置代理
  • 支持标签通配符
2022.6.19
  • 调整项目结构
  • 完善TheMovieDB 信息获取,多次查询
    • 完成番剧别名处理
  • 完善部分错误处理
2022.6.14 2
  • 完成Bangumi 信息获取
  • 完成TheMovieDB 信息获取
    • 搜索存在缺陷待修复
  • 增加process包来调用core下功能
2022.6.14
  • 完成Mikan Rss信息获取与解析
2022.6.13
  • 配置文件读取
  • qBittorrent客户端api的简单再封装
2022.6.12
  • 项目框架搭建

Directories

Path Synopsis
cmd
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag
internal
animego/anisource
Package anisource @Description: 番剧源包,用来收集番剧信息
Package anisource @Description: 番剧源包,用来收集番剧信息
animego/downloader
Package downloader @Description: 下载器包,用来调用外部下载器
Package downloader @Description: 下载器包,用来调用外部下载器
animego/feed
Package feed @Description: 订阅包,主要用来解析订阅信息
Package feed @Description: 订阅包,主要用来解析订阅信息
animego/feed/rss
Package rss @Description: 获取并解析rss
Package rss @Description: 获取并解析rss
animego/filter
Package filter @Description: 过滤器包,用来过滤符合条件的下载条目
Package filter @Description: 过滤器包,用来过滤符合条件的下载条目
animego/manager/filter
Package filter @Description: 筛选输入feed条目,并通过anisource获取符合条目的详细信息,信息完整则传递给下载器进行下载
Package filter @Description: 筛选输入feed条目,并通过anisource获取符合条目的详细信息,信息完整则传递给下载器进行下载
web
pkg
third_party

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL