mirror of
https://github.com/TheFunny/TelegramTwitterMediaBot.git
synced 2026-10-05 01:12:06 +00:00
refactor(x-media): share the HTTP-status error mapping
twitter, twitter auth and bsky carried the same 404/410 -> NotFound, 401/403 -> Blocked, else Transient block (comments included). site::status_error holds it once. bilibili and misskey keep their own matches: neither maps 404/410 and each has a status the others do not (412 risk control, 400 + NO_SUCH_NOTE), so routing them through the shared block would have reclassified those statuses for the user.
This commit is contained in:
@@ -321,13 +321,7 @@ pub async fn fetch(handle: &str, rkey: &str) -> Result<Post, FetchError> {
|
||||
// 404/410 = gone (permanent); 429/5xx = transient and retried by fetch.
|
||||
let status = response.status();
|
||||
if !status.is_success() {
|
||||
return match status.as_u16() {
|
||||
404 | 410 => Err(FetchError::NotFound),
|
||||
// A refusal or an auth demand is not a bad moment: retrying it
|
||||
// three times only delays an error the user has to see.
|
||||
401 | 403 => Err(FetchError::Blocked),
|
||||
_ => Err(FetchError::Transient(format!("bsky status {status}"))),
|
||||
};
|
||||
return Err(crate::site::status_error("bsky", status));
|
||||
}
|
||||
let text = response.text().await?;
|
||||
Post::from_json(&text, rkey.to_string())
|
||||
|
||||
Reference in New Issue
Block a user