Commit Graph
892 Commits
Author SHA1 Message Date
ForgQi fb4dc2b50a Refactor server code and migrate modules to biliup-cli
Moved and refactored server-related modules from stream-gears to biliup-cli, including API endpoints, configuration, core logic, and infrastructure. Replaced usage of anyhow with error-stack and custom AppError/AppResult types throughout the codebase. Updated dependencies in Cargo.toml and Cargo.lock, and adjusted code to use new error handling and module paths. Removed obsolete modules and files from stream-gears, and updated README and workspace version.
2025-09-21 16:29:33 +08:00
XuanRan_Nyan 0bdcf14a00 chore: Docker Build CI 改用 native arm64 runner (#1470)
* chore: Docker Build CI 改用 native arm64

* fix IMAGE_NAME

* Bypassing build jobs on pull requests
2025-09-21 05:11:01 +00:00
ForgQi 9128183595 Refactor downloader hooks and add post-processing support
Refactored the downloader callback mechanism to use a generic callback instead of direct channel messaging, simplifying the interface for all downloaders. Moved HookStep to its own module and implemented async post-processing hooks (run, move, remove) for video files after successful upload. Enabled login guard in the application controller and updated workspace and version metadata.
2025-09-21 01:29:50 +08:00
ForgQi 2f309ba8a0 Add PUT /v1/configuration endpoint for config updates
Introduces a new put_configuration handler to allow updating configuration via the /v1/configuration endpoint. Updates the router to support PUT requests, modifies the README to improve image rendering, and bumps the workspace version to 1.1.3.
2025-09-20 23:10:36 +08:00
XuanRan_Nyan 89c9b709c7 Fix(Docker): Run with wheel instead (#1468)
* chore: 同步 UploadLines

* revert profile

* Fix(Docker): Optimize Docker build with multi-stage architecture and wheel-based installation

- Split build into separate stages for webui, wheel building, and deployment
- Build Python wheel using Rust/maturin instead of editable install
- Update FFmpeg to version 8.0 with latest builds
- Improve build caching by copying source before conditional git clone
- Upgrade base Python image to 3.13-slim
- Streamline dependency management and cleanup processes
2025-09-20 13:45:59 +00:00
ForgQi a5faefb533 Add QR code login and user management endpoints
Introduces endpoints for QR code-based login and user management in the stream-gears server. Adds support for creating, deleting, and listing users, as well as endpoints for QR code generation and login via QR code. Refactors configuration management to use a global LazyLock, updates model serialization for streamer hooks, and improves context and service registration to support stateless clients. Also updates the frontend to handle new user and QR code flows, and adds an image resource for donation display in the README.
2025-09-20 21:43:51 +08:00
XuanRan_Nyan fe163af02d chore: 同步更新 UploadLines (#1466)
* chore: 同步 UploadLines

* revert profile
2025-09-20 07:41:34 +00:00
ForgQi 50845dc6cd Update .gitignore and refactor douyin.py imports
Added 'logs' to .gitignore to exclude log files from version control. Cleaned up and reorganized imports in douyin.py for better readability and maintainability.

Refactor and clean up imports, logic, and pattern usage

This commit removes unused imports, simplifies logic with let-else and pattern matching, and updates code style for conciseness and clarity across multiple modules. It also adds Default implementations for handler structs, improves error handling, and streamlines repository and service registration code.
2025-09-19 23:24:55 +08:00
ForgQi 4011ccde88 Improve config handling and database initialization
Removes unused data migration from PyInstaller spec. Adds automatic creation of parent directories for the SQLite database in Rust, and improves configuration retrieval by inserting a default config if missing. Updates model and repository code to support insert operations for configuration. Also cleans up unused test URLs in server startup.

Bump version to 1.1.1

Update Cargo.toml and Cargo.lock to reflect the new package version 1.1.1.
2025-09-19 22:59:11 +08:00
ForgQi 1e035df468 Refactor web build output and packaging paths
Updated Dockerfile to copy from /biliup/out instead of /biliup/biliup/web/public. Removed web public directory from PyInstaller and pyproject.toml includes. Adjusted build script in package.json to stop copying build output to web/public. These changes streamline the build and packaging process by consolidating output paths.
2025-09-19 03:34:01 +08:00
ForgQi 3744c0f14c Refactor to remove legacy Python backend and database
Removed legacy Python backend modules, database models, and related utilities from the biliup package. Migrated configuration and main loop handling to use stream_gears bindings, simplifying the codebase and shifting backend responsibilities to the Rust implementation. Updated the login page to support registration and login via the new API, and adjusted frontend API base export.

Update Cargo.toml

Update Cargo.lock
2025-09-19 03:28:17 +08:00
ForgQi b13a6b7f77 Revert "fix: 修复遗漏的接口鉴权 (#1417)"
This reverts commit 244e03c38a.
2025-09-18 00:14:38 +08:00
ForgQi 7dfc81a6d8 Revert "优化登录功能` (#1386)"
This reverts commit 795f2965cc.
2025-09-18 00:13:13 +08:00
cykac04 0f1a3c758d Fix api missing NSFW streams (#1454)
* add plugin for picarto.tv

* add plugin for picarto.tv

* Fetch explore api until last page

* Fix duplicated json()

* Fix explore api missing NSFW streams
2025-09-17 08:32:52 +00:00
DetectiveLemon f22949977f fix(upload): fix glitches in max_upload_limit (#1459) 2025-09-17 08:32:13 +00:00
Ninzore 29499e3bde Fix: Enhance filename handling for percent signs (#1458)
修复文件名中包含%百分号导致输出文件名错误 #1455 ,
经测试对基于ffmpeg和stream-gears的下载方法均可用
2025-09-17 07:30:08 +00:00
cykac04 90bd1381c9 feat: plugins.Picarto (#1452)
* add plugin for picarto.tv

* add plugin for picarto.tv

* Fetch explore api until last page

* Fix duplicated json()
2025-09-11 07:16:10 +00:00
XuanRan_Nyan 685872e70e fix(Douyin): add abogus (#1451) 2025-09-10 15:42:18 +00:00
XuanRan_Nyan 23c40ec5ae refactor(Douyu): 去除对 JSEngine 的强依赖 (#1448)
* refactor(Douyu): 去除对 JSEngine 的强依赖

cleanup test

remove test

修复竞争操作

cleanup

fix some err

补充 jsengine 判断

add missing break

fix unbinding var

* add single-flight
2025-09-09 02:29:05 +00:00
Jovi Hsu b06007954f Fix(bilibili-rs): Usu https instead of http (#1429) 2025-08-25 05:41:56 +00:00
xiaoyu 58d0138b40 Flextv由原地址 https://www.flextv.co.k 更改为 https://www.ttinglive.com (#1430) 2025-08-25 05:41:25 +00:00
ForgQi 448d26eb92 Bump stream-gears to v1.0.7 and update install docs
Updated stream-gears crate version to 1.0.7 in Cargo.toml and Cargo.lock. Revised README to use 'uv' for installation and updated backend dependency installation instructions to use 'maturin dev'.
2025-08-14 01:47:39 +08:00
Heporis 962dde9f68 Update Termux-publish.yml (#1419)
更改Termux中aiohttp版本,以避免出现DNS故障
2025-08-13 06:31:45 +00:00
XiaoMiku01 244e03c38a fix: 修复遗漏的接口鉴权 (#1417) 2025-08-11 15:41:06 +00:00
ForgQi a03e270a89 Bump stream-gears to version 1.0.6 and update README image URL
Updated stream-gears crate version from 1.0.5 to 1.0.6 in Cargo.toml and Cargo.lock. Also changed the image URL in README.md from docs.biliup.me to docs.biliup.rs.
2025-08-09 14:14:12 +08:00
XuanRan_Nyan 8dfc2acd75 feat(bbrs): upload_by_config 支持 submit 选择 (#1413)
* fix(huya): change huya presenter_uid type from i32 to i64

* update huya ua

* feat(bbrs): upload_by_config 支持 submit 选择
2025-08-08 15:36:59 +00:00
XuanRan_Nyan 796e61f82c fix(huya): change huya presenter_uid type from i32 to i64 (#1412)
* fix(huya): change huya presenter_uid type from i32 to i64

* update huya ua
2025-08-08 07:38:28 +00:00
xiaoyu eaca64aa3a 修改充电参数open_elec为charging_pay (#1410) 2025-08-08 05:08:04 +00:00
ForgQi 35024feaa7 Refactor segment handling and SubmitOption parsing
Replaces the custom Segment class in Python with the PySegment class from Rust, and exposes PySegment to Python via PyO3. Refactors SubmitOption to implement FromStr for string parsing, updating usage accordingly. These changes improve interoperability between Python and Rust components and standardize enum parsing.

Bump stream-gears version to 1.0.5

Updated the stream-gears crate version from 1.0.4 to 1.0.5 in Cargo.toml and Cargo.lock to prepare for a new release.
2025-08-08 02:02:01 +08:00
ForgQi 4d992c3486 Refactor web routes and bump stream-gears to 1.0.4
Refactored route registration in biliup/web/__init__.py to use decorators instead of manual app.add_routes, and removed unused or commented code. Updated stream-gears crate version to 1.0.4 in Cargo.toml and Cargo.lock.
2025-08-07 22:01:05 +08:00
XuanRan_Nyan e1171c6dc7 fix(blive): parse error (#1405) 2025-08-07 06:36:31 +00:00
XuanRan_Nyan dba7780c3d feat(biliup-rs): 新增 BCut Android 投稿接口 (#1402)
* remove: blive hack feature

* feat(stream-gears): 支持直播流下载的多条件分割

* 新增 BCut Android 投稿接口

* chore: 优化实现方法

* chore: 完成 Python 实例

* chore: 完善测试用例

* chore: 复用代码

* cleanup
2025-08-07 03:40:33 +00:00
XuanRan_Nyan ce732944f4 feat(stream-gears): 支持直播流下载的多条件分割 (#1400)
* remove: blive hack feature

* feat(stream-gears): 支持直播流下载的多条件分割
2025-08-07 02:21:08 +00:00
xiaoyu 3c18de83c9 增加app接口修改稿件 (#1399) 2025-08-06 14:43:46 +00:00
ForgQi 678b2bfcdd Bump stream-gears to version 1.0.3
Updated the stream-gears crate version in Cargo.toml and Cargo.lock from 1.0.1 to 1.0.3. Also removed the uv.lock file.
2025-08-04 22:29:34 +08:00
XuanRan_Nyan 526767257d remove: blive hack feature (#1394) 2025-08-04 14:22:47 +00:00
XuanRan_Nyan 8293b6cd91 feat(Huya): 支持 Huya Wup 协议以获取正确直播流 (#1385)
* feat(Huya): 支持 Huya Wup 协议以获取正确直播流

* chore: 补充 webui 内容
2025-08-02 08:59:19 +00:00
XiaoMiku01 795f2965cc 优化登录功能` (#1386)
* feat(布局): 在导航栏底部添加退出登录按钮

* fix: 使用本地存储的认证信息检查登录

* style(login): 增强可读性
2025-08-01 09:04:37 +00:00
XuanRan_Nyan b486391e69 fix(douyin): 修复抖音直播流获取问题 (#1378)
* fix(douyin): 修复抖音直播流获取问题

* fix(douyin): 添加缺少的默认值
2025-08-01 04:17:39 +00:00
XiaoMiku01 b3ee6f0e1f 添加登录页面 (#1375)
* feat: 实现完整的用户认证系统

- 添加登录页面和认证上下文
- 创建认证守卫组件保护路由
- 修改API请求添加认证头
- 重构布局组件支持认证状态
- 后端API添加认证中间件

* refactor(auth): 移除调试用的print语句

清理认证中间件中的调试输出,这些语句在生产环境中不需要

* style(login): 更新登录页面样式,添加渐变背景和卡片效果

改进登录页面的视觉设计,使用渐变背景提升整体美观度,并优化卡片样式增加现代感
2025-07-30 04:00:06 +00:00
Noahandgoogle-labs-jules[bot] 5e736756d1 Fix: Prioritize your defined title format for sync-downloader (#1315)
Previously, when using the sync-downloader, the uploader would sometimes
incorrectly use the live stream's actual title instead of your configured
title format. This occurred because the title formatting logic would default
to using the live stream's title if it was available in the input data,
even if your format string didn't explicitly ask for it via the
{title} placeholder.

This commit modifies the `fmt_title_and_desc` function in
`biliup/uploader.py` to address this. Now, your configured
title format string (from `streamers.<streamer_name>.title` in the
config) is inspected first.

- If your format string contains the literal placeholder `{title}`,
  the live stream's actual title will be used for that placeholder.
- If your format string does *not* contain `{title}`, the live
  stream's title will not be injected into the final upload title,
  and your format string will be processed primarily for date
  and other placeholders, preserving your intended title structure.

This ensures that the upload title correctly respects your
configuration, aligning the behavior of sync-downloader with other
downloaders in this regard.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-07-30 03:59:56 +00:00
Heporis 3537a6bde7 更改Termux的wheel发布至Release (#1371)
增加Termux使用教程链接
由于PyPI不支持Termux的platform tag,改为发布至Release
2025-07-26 09:58:39 +08:00
ForgQi 0eeb35918f Update README and remove quickjs dependency
Added a forum link to the README for user reference. Removed the 'quickjs' package from the dependencies in pyproject.toml, likely because it is no longer required.
2025-07-25 00:15:35 +08:00
Heporis fd776a8207 为aarch64架构termux平台自动构建 (#1369)
* Update pyproject.toml

添加quickjs作为斗鱼平台js解释器

* Update ci.yml

增加aarch64架构termux平台自动构建

* Update README.md
2025-07-24 02:32:03 +00:00
ForgQi f4b75bf698 Update docker-publish.yml 2025-07-22 22:24:09 +08:00
ForgQi 2c923cc8da Update lib.rs 2025-07-22 02:17:08 +08:00
某摆烂咸鱼 bd69b76124 feat: 新增上传重试次数限制和上传结果webhook通知 (#1355)
* feat: 新增重试上传次数限制

* feat: 新增上传后WebHook设置选项

* feat: 新增上传webhook逻辑

* mod: 将功能配置移至直播配置中的更多设置

* mod: 修改webhook传输的信息

* mod: 修正错误的数据类型

Refactor webhook upload logic and update build configs

Replaces the 'uploaded_webhook' field with a 'webhook' postprocessor in the upload workflow, updating both backend and frontend to support this change. Updates the Tauri app to use the correct resource path for the sidecar binary, adjusts process management, and modifies build and workflow scripts for improved compatibility. Also bumps the 'stream-gears' crate version to 1.0.1 and adds '_internal' to .gitignore.

Update pyinstaller-publish.yml

Fix pyinstaller copy metadata (#1357)

* Update tauri.conf.json

* Update biliup.spec

Update pyinstaller-publish.yml

feat: 新增上传重试次数限制和上传结果webhook通知 (#1355)

* feat: 新增重试上传次数限制

* feat: 新增上传后WebHook设置选项

* feat: 新增上传webhook逻辑

* mod: 将功能配置移至直播配置中的更多设置

* mod: 修改webhook传输的信息

* mod: 修正错误的数据类型

Refactor webhook upload logic and update build configs

Replaces the 'uploaded_webhook' field with a 'webhook' postprocessor in the upload workflow, updating both backend and frontend to support this change. Updates the Tauri app to use the correct resource path for the sidecar binary, adjusts process management, and modifies build and workflow scripts for improved compatibility. Also bumps the 'stream-gears' crate version to 1.0.1 and adds '_internal' to .gitignore.
2025-07-22 02:02:23 +08:00
ForgQi 18c523e63c Update pyinstaller-publish.yml
Fix pyinstaller copy metadata (#1357)

* Update tauri.conf.json

* Update biliup.spec

Update pyinstaller-publish.yml
2025-07-22 01:52:43 +08:00
ForgQi 380d1d4b25 Update build workflow and improve Tauri sidecar handling
Enhanced the GitHub Actions workflow for Windows builds, including dynamic sidecar binary handling and updated Node version specification. Upgraded stream-gears crate to version 1.0.0. Refactored Tauri app to improve sidecar process management, including encoding handling, process shutdown, and automatic startup/shutdown integration. Added readme field to pyproject.toml and redirected frontend to localhost in App.tsx.
2025-07-18 02:46:11 +08:00
ForgQi 67d041a217 Comment out CI workflow files
All steps in docker-publish.yml, pyinstaller-publish.yml, and python-publish.yml have been commented out, effectively disabling these GitHub Actions workflows. This change may be for temporarily suspending automated builds and releases.

Update ci.yml

Update ci.yml

Update CI workflows and stream-gears version

Fixes a variable reference in the CI workflow for manylinux builds and updates the Windows PyInstaller workflow to use maturin for development installs and a more streamlined build process. Bumps stream-gears crate version to 0.4.102 and removes the stream-gears Python dependency from pyproject.toml.

Delete python-publish.yml
2025-07-16 23:40:35 +08:00