mirror of
https://github.com/TheFunny/TelegramTwitterMediaBot.git
synced 2026-09-26 23:52:05 +00:00
refactor(send): inline parse_media_url, drop photos_first's rebind
parse_media_url had a single caller (input_file_for) and read better as the one expression it wrapped; photos_first rebound its argument only to gain mut.
This commit is contained in:
@@ -7,10 +7,6 @@ use teloxide::types::{
|
||||
InputFile, InputMedia, InputMediaAnimation, InputMediaPhoto, InputMediaVideo, ParseMode,
|
||||
};
|
||||
|
||||
fn parse_media_url(s: &str) -> Result<url::Url, String> {
|
||||
url::Url::parse(s).map_err(|e| format!("invalid media URL: {e}"))
|
||||
}
|
||||
|
||||
pub(super) fn item_url(item: &MediaItemPayload) -> &str {
|
||||
match item {
|
||||
MediaItemPayload::Photo { media, .. }
|
||||
@@ -23,7 +19,8 @@ pub(super) fn item_url(item: &MediaItemPayload) -> &str {
|
||||
/// (e.g. a locally encoded ugoira MP4) is uploaded directly.
|
||||
pub(super) fn input_file_for(media: &str) -> Result<InputFile, String> {
|
||||
if media.starts_with("http://") || media.starts_with("https://") {
|
||||
Ok(InputFile::url(parse_media_url(media)?))
|
||||
let url = url::Url::parse(media).map_err(|e| format!("invalid media URL: {e}"))?;
|
||||
Ok(InputFile::url(url))
|
||||
} else if !std::path::Path::new(media).exists() {
|
||||
// A retried task may reference a temp file the original send's
|
||||
// TempDir already cleaned up; fail fast and permanent instead of
|
||||
|
||||
@@ -349,8 +349,7 @@ pub fn chunk_media_items<T>(items: Vec<T>) -> Vec<Vec<T>> {
|
||||
/// mixed, the first item must be a photo (Telegram's sendMediaGroup rule).
|
||||
/// Stable sort keeps the source order within each kind; a lone animation is
|
||||
/// untouched (it takes the SendAnimation path before this runs).
|
||||
pub fn photos_first(items: Vec<MediaItemPayload>) -> Vec<MediaItemPayload> {
|
||||
let mut items = items;
|
||||
pub fn photos_first(mut items: Vec<MediaItemPayload>) -> Vec<MediaItemPayload> {
|
||||
items.sort_by_key(|item| match item {
|
||||
MediaItemPayload::Photo { .. } => 0,
|
||||
MediaItemPayload::Video { .. } | MediaItemPayload::Animation { .. } => 1,
|
||||
|
||||
Reference in New Issue
Block a user