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 选择
This commit is contained in:
XuanRan_Nyan authored and GitHub committed 2025-08-08 15:36:59 +00:00
1 parent 796e61f82c
commit 8dfc2acd75
6 files changed
+35 -10

No files matched your search

+2 -1
View File
@@ -47,4 +47,5 @@ downloads/
target
_internal
.trae/
pnpm-lock.yaml
pnpm-lock.yaml
cookies.json
+4 -4
View File
@@ -35,8 +35,8 @@ pub enum Commands {
/// 上传视频
Upload {
/// 提交接口
#[arg(long, default_value = "app")]
submit: SubmitOption,
#[arg(long)]
submit: Option<SubmitOption>,
// Optional name to operate on
// name: Option<String>,
@@ -64,8 +64,8 @@ pub enum Commands {
/// 是否要对某稿件追加视频
Append {
/// 提交接口
#[arg(long, default_value = "app")]
submit: SubmitOption,
#[arg(long)]
submit: Option<SubmitOption>,
// Optional name to operate on
// name: Option<String>,
+13 -3
View File
@@ -10,6 +10,7 @@ use time::macros::format_description;
use crate::cli::{Cli, Commands};
use crate::downloader::{download, generate_json};
use crate::uploader::{append, list, login, renew, show, upload_by_command, upload_by_config};
use biliup::uploader::util::SubmitOption;
use clap::Parser;
@@ -62,7 +63,7 @@ async fn main() -> Result<()> {
video_path,
line,
limit,
submit,
submit.unwrap_or(SubmitOption::App),
cli.proxy.as_deref(),
)
.await?
@@ -70,8 +71,17 @@ async fn main() -> Result<()> {
Commands::Upload {
video_path: _,
config: Some(config),
submit,
..
} => upload_by_config(config, cli.user_cookie, cli.proxy.as_deref()).await?,
} => {
upload_by_config(
config,
cli.user_cookie,
submit,
cli.proxy.as_deref()
)
.await?;
}
Commands::Append {
video_path,
vid,
@@ -86,7 +96,7 @@ async fn main() -> Result<()> {
video_path,
line,
limit,
submit,
submit.unwrap_or(SubmitOption::App),
cli.proxy.as_deref(),
)
.await?
+7 -1
View File
@@ -96,6 +96,7 @@ pub async fn upload_by_command(
pub async fn upload_by_config(
config: PathBuf,
user_cookie: PathBuf,
submit_override: Option<SubmitOption>,
proxy: Option<&str>,
) -> Result<()> {
// println!("number of concurrent futures: {limit}");
@@ -122,7 +123,12 @@ pub async fn upload_by_config(
config.limit,
)
.await?;
bilibili.submit(&studio, proxy).await?;
// 命令行参数优先,如果没有提供则使用配置文件中的设置
let submit_option = submit_override.clone().unwrap_or(config.submit.clone());
match submit_option {
SubmitOption::BCutAndroid => bilibili.submit_by_bcut_android(&studio, proxy).await?,
_ => bilibili.submit_by_app(&studio, proxy).await?,
};
}
Ok(())
}
+7
View File
@@ -1,4 +1,5 @@
use crate::uploader::bilibili::Studio;
use crate::uploader::util::SubmitOption;
use crate::{Stream, error};
use bytes::Bytes;
use serde::{Deserialize, Serialize};
@@ -42,6 +43,8 @@ pub struct Config {
pub line: Option<String>,
#[serde(default = "default_limit")]
pub limit: usize,
#[serde(default = "default_submit")]
pub submit: SubmitOption,
pub streamers: HashMap<String, Studio>,
}
@@ -49,6 +52,10 @@ fn default_limit() -> usize {
3
}
fn default_submit() -> SubmitOption {
SubmitOption::App
}
pub fn load_config(config: &Path) -> error::Result<Config> {
let file = std::fs::File::open(config)?;
let config: Config = serde_yaml::from_reader(file)?;
+2 -1
View File
@@ -1,8 +1,9 @@
use std::str::FromStr;
#[cfg(feature = "cli")]
use clap::ValueEnum;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone)]
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "cli", derive(ValueEnum))]
pub enum SubmitOption {
// Client,