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:
1 parent
796e61f82c
commit
8dfc2acd75
6 files changed
+35
-10
No files matched your search
+2
-1
@@ -47,4 +47,5 @@ downloads/
|
||||
target
|
||||
_internal
|
||||
.trae/
|
||||
pnpm-lock.yaml
|
||||
pnpm-lock.yaml
|
||||
cookies.json
|
||||
@@ -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>,
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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(())
|
||||
}
|
||||
|
||||
@@ -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)?;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user