Releases: AkimioJR/MediaWarp
Releases · AkimioJR/MediaWarp
v0.1.3
Changelog
- fc827ea MediaWarp v0.1.3
- 2d790c9 docker: 调整 Dockerfile 命名
- f369448 fix(router): robots.txt使用ginR作为根路由而不是mediawarpRouter
- 90af0ba refactor(constants): 将 MediaServerType 从字符串类型更改为 uint8
- 587e182 refactor: 优化初始化过程,统一日志输出,移除冗余代码
- dbb0e59 refactor: 使用当前目录作为项目根目录
- 25c4011 refactor: 重构日志相关功能、分离日志写入 hook 与 日志输出格式化
- e8e5d8b update: 将不必要配置默认设为 False 避免未修改配置默认启动失败
- a4c8516 update: 更新 Dockerfile 名称格式为 Dockerfile.goreleaser
- 81a71b2 update: 更新项目链接
v0.1.2
v0.1.1
Changelog
- e8e0a76 MediaWarp v0.1.1
- f4cb788 feat(EmbyServerHandler、JellyfinHandler): 添加 HTTPStrm 最终 URL 获取功能,减少客户端重定向次数
- 79112fe feat(getFinalURL): 在获取最终URL 的函数中添加 User-Agent 参数以优化请求
- cf0f17a feat(getFinalURL): 添加获取最终 URL 的解析耗时时间
- fde308e feat: 在日志初始化中添加上游媒体服务器类型和地址的打印
- 28a9329 fix(EmbyRegexp): 提高对 Afusekt 客户端的兼容性 #37
- 16a07c9 fix(EmbyServer): ItemsServiceQueryItem 函数请求增加查询参数 Recursive 匹配新版 Emby(beta)
- 40f1b4f perfect(responseModifyCreater): 优化闭包函数,可以捕捉内层函数的 panic 信息
- e837a09 refacor(main): 将 gin 始终设置为 ReleaseMode
- c087af4 refactor(RegisterRoutesWithPrefixs): 移除不必要多前缀注册路由函数
- 021cd5e refactor(logger): 将访问日志和服务日志的初始化移至变量声明
- 0e05db7 refactor(main): 提前日志等奖设置位置
- 6afabca refactor: 优化日志输出格式,统一使用 Infof 和 Debugf 方法
- e7ecd80 refactor: 调整 main 函数
- e794e44 report(bug.yaml): 添加客户端版本输入字段以收集更多问题信息
- a223cc8 update: 修改 .gitignore 文件以包含更多忽略规则
- 3eae980 update: 移除测试函数,更新依赖
v0.1.0
Changelog
- 557cb59 MediaWarp v0.1.0
- 106a66c feat(JellyfinHandler): 添加自定义首页功能及相关响应处理
- 76eff3b feat(web): 添加 crx 美化功能
- 7e6318c feat: 修改 updateBody 函数以支持响应体内容压缩
- 78da011 feat: 添加 Jellyfin API 服务支持
- 519a60f feat: 添加 Jellyfin 服务器支持及相关路由处理
- 0addc1b feat: 添加 jellyfin-danmaku 子模块以支持jellyfin 弹幕功能
- 7ae1c42 fix: readBody 函数区分处理无 Content-Encoding 头和未知编码类型
- bf4cb78 fix: 修复自定义静态资源路径错误问题
- 7820532 fix: 修正 Jellyfin 直链播放链接的格式及日志记录信息
- 89c465d fix: 修正弹幕脚本路径以确保正确加载
- 3e89b47 fix: 更新弹幕脚本路径以支持 jellyfin-danmaku 模块
- 8ac2b86 fix: 调整 Jellyfin 视频处理接口匹配范围
- 035db7c perfect: 优化 readBody 函数并简化代码逻辑
- a9289d8 style: 修改日志信息以更准确地描述 GZIP 和 Brotli 数据解码
- b543344 style: 更新 Referer 策略类型的命名以符合 go-lang 风格
- 885ae6e style: 调整颜色相关常量命名以更符合 go-lang 命名习惯
v0.0.10
Changelog
- 3035341 MediaWarp v0.0.10
- ec05e64 feat: 在恢复中间件中添加详细的错误日志记录以处理 panic 错误
- b954576 feat: 在正则路由处理器中添加调试日志以记录匹配成功的 URL
- 25c9d08 feat: 支持通过命令行参数指定配置文件路径
- 3543f27 feat: 添加 GZIP、Brotli 解压支持并重构读取响应体的逻辑
- ae105e3 fix: 修复日志中间件颜色控制输出错误问题
- 36a1862 fix: 修复配置初始化失败时的日志输出,改为使用标准输出
- 7cd57d2 perfect: 使用自定义恢复中间件以处理 panic 错误并且过滤 httputil.ReverseProxy 中正常的 panic: http.ErrAbortHandler
- 4afe6a5 perfect: 添加信号处理和错误处理机制,优化服务退出流程
- bcff26e refactor: 将responseModifyCreater、recgonizeStrmFileType、updateBody函数移至 utils.go 并独立与 EmbyServerHandler,便于后续复用
- 2ca8466 refactor: 将部分逻辑从 emby.EmbyServer 移至 handler.EmbyServerHandler
- 88e438e refactor: 重构媒体服务器处理器初始化逻辑,改为返回错误以便更好地处理初始化失败情况
- 9097e9d report: 修改 bug 模板中的配置文件字段 ID
- 1d01220 style: 优化正则路由处理器的日志记录格式
v0.0.9
Changelog
- 1cb2504 MediaWarp v0.0.9
- b55368f chore: 检出时克隆子模块
- ba87c3a feat(logging): 使用常量定义时间格式化,提升代码可维护性
- 2f2109a fix(EmbeddedStaticAssets): 补全 jellyfin-crx 和 emby-crx 的 main.js 文件的嵌入
- 4c5f258 fix(EmbyServerHandler): 修复 ModifyPlaybackInfo 和 ModifySubtitles 函数中的响应体关闭顺序,确保正确读取 HTTP 响应
- 52bc397 fix: 修复响应体关闭顺序,确保正确读取 HTTP 响应
- 569243c fix: 移除内存缓存相关设计,避免内存泄漏(不缓存 Alist API 的响应,AlistStrm 重定向速度可能收到影响)
- 2d8320d perfect(EmbyServerHandler): 优化 responseModifyCreater 闭包逻辑
- c790404 perfect(router): 使用 gin.Recovery() 捕获 panic
- 0624132 refactor(ClientFilter): 使用 switch 语句重构客户端过滤器逻辑,移除未知模式处理
- 468c362 refactor(EmbyServerHandler): 简化 ModifyPlaybackInfo 函数中的响应体更新逻辑
- 09f0a58 refactor(config): 优化程序启动逻辑,改进错误处理,重命名静态目录函数
- e79d746 refactor(config): 改进自定义静态资源文件夹创建错误处理,移除 panic
- 73083e3 refactor(config): 解析构建时间格式,改进构建日期处理逻辑
- f0cd543 refactor(logging): 优化访问日志记录逻辑,调整时间记录位置,改进日志格式
- 8729d92 refactor(logging): 修改日志函数参数类型为 any,关闭服务日志调用方报告,增加格式话日志方法,移除不常用日志方法
- 4af69bf refactor: 使用 git 子模块的方式引入 js、css 等文件,移除 emby css 美化功能
- ec35210 refactor: 调整静态资源、自定义目录
- dd03fd9 style(EmbyServerHandler): 调整 ModifyPlaybackInfo 函数的日志输出
- af8ee5e style(logging): 修改日志格式,增加时间和消息之间的制表符
- 96806fd style: 优化 config.yaml.example 文件中的注释和格式
- 6fa11ed update: 更新 go-lang 版本及第三方依赖
v0.0.8
Changelog
- e59791e MediaWarp v0.0.8
- 9cb603d docs(config.yaml.exaple): 修正 AlistStrm.RawURL 配置注释
- 500d079 feat(main): 添加版本信息标志,支持显示当前版本信息
- b1d8096 fix(EmbyServerHandler): 优化重定向链接构建逻辑,确保在 alist 启用签名时正确添加查询参数 sign
- 33c3d51 fix(EmbyServerHandler): 修复 ModifySubtitles 方法中的 defer 语句位置,确保正确关闭响应体
- 82872cb fix(router): 修改正则路由处理,使用不带查询参数的 URL 路径(Path)进行路由匹配
- 0051802 perf(utils): 将 SRT2ASS 方法参数类型从 string 改为 []byte,优化字幕格式转换性能
- d67995a perfect(EmbyServerHandler): 优化 ModifyIndex 方法,确保正确关闭响应体避免内存泄露减少 GC 压力,使用 []byte 替代 string,提高性能
- e0dd17f perfect(EmbyServerHandler): 优化 ModifySubtitles 和 ModifyBaseHtmlPlayer 方法,使用 []byte 替代 string 更新响应体,提高性能
- 8082c53 perfect(EmbyServerHandler): 确保 EmbyServerHandler 实现 MediaServerHandler 接口
- aba6f5d perfect(handler): 使用 os.ReadFile 替代 utils.GetFileContent 读取文件内容
- c7ba750 perfect(utils): 优化 SRT2ASS 方法,使用 bytes.Buffer 替代切片,减少内存分配,提高性能,提升代码健壮性
- 47dd4e3 perfect(utils): 优化 SRT2ASS 方法,使用预定义常量替代硬编码字符串,减少 []byte 转换 降低内存分配次数,减少 GC 压力
- 40da14e perfect(utils): 优化 SRT2ASS 方法,复用 newLine
- 4e51516 refactor(constants): 重构 EmbyRegexp 结构,优化正则表达式管理
- 76eea37 优化 SRT2ASS 方法,简化时间行处理逻辑,减少嵌套,提高代码可读性
v0.0.7
Changelog
- 37ad907 MediaWarp v0.0.7
- f1d9592 chore(go.mod): 更新依赖项以添加新字体库和图像处理库
- f8660b2 chore(goreleaser): 更新构建配置,启用 Docker 镜像推送并添加元数据标签
- 0587e11 dev: 增加触发条件
- c7e7842 dev: 开发工作流运行单元测试
- c3f8b9d feat(AlistServer): 支持使用永久令牌 token 登录
- 8f988a3 feat(EmbyServerHandler): PlaybackInfoHandler 函数正确处理 AlistStrm 视频文件大小
- fa92a1e feat(EmbyServerHandler): 添加 RawURL 配置选项以控制 AlistStrm 的重定向链接
- 1d8395a feat(EmbyServerHandler): 添加转码设置选项以支持 HTTPStrm 和 AlistStrm 是否返回 PlaybackInfo 通告客户端禁止转码
- 2ea17f3 feat(WebSetting): 添加 VideoTogether 设置以支持共同观影功能
- 3afbb6a feat: 提供字幕接口相关正则
- ea003d3 feat: 提供集合对象
- 37cbe99 feat: 新增 SRT 字幕转 ASS 字幕功能
- 3db00ea feat: 新增判断字幕格式、SRT 字幕 转 ASS 字幕函数
- 8c2edb6 fix(EmbyServerHandler): 修复 AlistStrm 存储的路径存在文件时导致无法正确重定向
- c72d52b fix: 修改 VideosHandler 和 PlaybackInfoHandler 的匹配规则,避免匹配到字幕
- eadb8d3 fix: 避免当 MediaStreams 为空数组的情况移除该字段导致导致部分客户端报错
- dd53416 perfect(EmbyServerHandler): VideosHandler 函数中优先判断是否为 HEAD 请求
- 843b6a1 perfect(EmbyServerHandler): 优化 PlaybackInfoHandler 函数中对 AlistStrm 的处理,避免 api_key 错误解析无法返回响应
- e839f75 perfect(EmbyServerHandler): 优化 PlaybackInfoHandler 函数中添加 continue,避免错误解析无法返回响应
- 1332c57 perfect(EmbyServerHandler): 优化 PlaybackInfoHandler 接口日志输出
- 30b4e8c perfect(EmbyServerHandler): 使用 responseModifyCreater 对修改上游响应的处理器的封装 减少每次进入 gin.HandlerFunc 处理器时判断对应 *httputil.ReverseProxy 是否已经生成
- 0c9150d perfect(EmbyServerHandler): 在 Init 函数中完成初始化,调用 GetRegexpRouteRules 函数时无需重复计算路由规则,提高性能
- b67c0f4 perfect(EmbyServerHandler): 在从 Alist 获取媒体源大小时检查是否为空值检查,避免重复获取
- 8b720f7 perfect(EmbyServerHandler): 在初始化函数中为 modifyProxyMap 分配空间,减少每次调用函数进行判断
- aee94b6 perfect(IsSRT): 匹配成功后直接返回提高性能
- 267267d perfect(IsSRT): 使用 []byte 代替 string 提高性能
- ec66f59 perfect(SRT2ASS): 使用 []rune 作为字幕缓存区,提高性能
- 22b828d perfect: 优化 EmbyServerHandler.PlaybackInfoHandler 中对 HTTPStrm 的处理
- 704e1b5 perfect: 优化特殊样式中字重解析方法,移除正则表达式,减少判断次数
- 50e67de perfect: 使用集合 Set 简化流程、提高性能
- d206a62 perfect: 对于未注册 Alist 服务器不会造成 panic,而是返回 error
- d91efb2 perfect: 将 MediaSourceInfo 中某些属性添加 omitempty,减少返回 null
- 37a9291 perfect: 提供解析 ASS 字幕工具(主要用于字幕子集化)
- fb9edb7 perfect: 禁止 AlistStrm 进行转码,强制直接播放(经测试 FileBall 已支持重定向)
- f614b25 refactor: 修改相关正则位置,提供测试函数
- 45356fd refactor: 将 Emby API 解析函数移至 uitls 包中
- 77526b8 refactor: 重构 EmbyRoute 测试用例以使用显式命名的测试案例
- 0ed65c4 report: 更新 bug.yaml 模板,必须提供详细信息
- 7b94071 style: 统一常量声明位置、修改部分命名
- 5fffdea style: 调整包引入顺序
v0.0.6
Changelog
- 0bd03e2 feat(router): 添加获取版本信息的接口
- 1d859fa feat: EmbyServerHandler.PlaybackInfoHandler 拦截修改响应
- 9f848f6 fix(EmbyServerHandler): VideosHandler 可能匹配字幕流导致字幕无法正常转发,将未正确匹配流量直接转发
- f1334da fix: 使用变量才能在编译时赋值
- ea5eed1 fix: 调整 EmbyServerHandler.VideosHandler 处理范围,避免错误匹配
- ddfddf7 git: 更新 .gitignore 文件
- 5817e9b perfect(AlistServer): 将token缓存到结构体中,避免后续使用Redis缓存将token缓存至Redis
- 9da4b50 perfect: EmbyServerHandler.VideosHandler 区分本地视频和本地 Strm 文件处理流程
- da13765 perfect: 优化 EmbyServerHandler.VideosHandler 中非规范请求重定向逻辑
- 7810120 perfect: 更新路由表
- 7100cbd perfect: 独立 EmbyServerHandler.RecgonizeStrmFileType 函数
- 356da24 perfect: 统一管理 Emby 相关的正则表达式
- c61e486 perfect: 调整中间件顺序,先记录日志在将查询参数转为小写
- 2e57a55 perfect: 需要修改响应体时可复用之前实例化的 httputil.ReverseProxy
- a086597 refactor: 将日志模块从 logger 改为 logging
- e331d6c refactor: 移动文件夹 pkg 到 utils
- 8fcb86b refactor: 移除无效文件
- 559d7ab style: 优化日志输出
- 66b5616 style: 优化访问日志信息输出结果
- b84447d update: config.Version 提供更多信息
v0.0.5
MediaWarp v0.0.5
- 扩大 VideosHandler 匹配范围(修复 FileBall 下 Strm 文件播放问题,不完美)
- 中间件缓存可选是否开启(避免内存缓存缓存大量图片、css、js 等资源)
- 修改 internal/config、internal/logger、internal/cache 这几个包,使其使用方式更加 “golang”
- 支持加载多种格式的配置文件(JSON、TOML、YAML、YML、Java properties、Java props)