mirror of
https://github.com/amtoaer/bili-sync.git
synced 2026-08-28 19:47:54 +08:00
feat: telegram 通知渠道支持仅发送文字 (#701)
This commit is contained in:
@@ -9,7 +9,7 @@ use sea_orm::DatabaseConnection;
|
||||
use crate::api::wrapper::{ApiError, ApiResponse, ValidatedJson};
|
||||
use crate::bilibili::BiliClient;
|
||||
use crate::config::{Config, VersionedConfig};
|
||||
use crate::notifier::Notifier;
|
||||
use crate::notifier::{Message, Notifier};
|
||||
|
||||
pub(super) fn router() -> Router {
|
||||
Router::new()
|
||||
@@ -41,7 +41,10 @@ pub async fn ping_notifiers(
|
||||
*ignore_cache = Some(());
|
||||
}
|
||||
notifier
|
||||
.notify(bili_client.inner_client(), "This is a test notification from BiliSync.")
|
||||
.notify(bili_client.inner_client(), Message{
|
||||
message: "This is a test notification from BiliSync.".into(),
|
||||
image_url: Some("https://socialify.git.ci/amtoaer/bili-sync/image?description=1&font=KoHo&issues=1&language=1&logo=https%3A%2F%2Fs2.loli.net%2F2023%2F12%2F02%2F9EwT2yInOu1d3zm.png&name=1&owner=1&pattern=Signal&pulls=1&stargazers=1&theme=Light".to_owned()),
|
||||
})
|
||||
.await?;
|
||||
Ok(ApiResponse::ok(()))
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ pub enum Notifier {
|
||||
Telegram {
|
||||
bot_token: String,
|
||||
chat_id: String,
|
||||
#[serde(default)]
|
||||
skip_image: bool,
|
||||
},
|
||||
Webhook {
|
||||
url: String,
|
||||
@@ -60,8 +62,14 @@ impl Notifier {
|
||||
|
||||
async fn notify_internal<'a>(&self, client: &reqwest::Client, message: &Message<'a>) -> Result<()> {
|
||||
match self {
|
||||
Notifier::Telegram { bot_token, chat_id } => {
|
||||
if let Some(img_url) = &message.image_url {
|
||||
Notifier::Telegram {
|
||||
bot_token,
|
||||
chat_id,
|
||||
skip_image,
|
||||
} => {
|
||||
if let Some(img_url) = &message.image_url
|
||||
&& !*skip_image
|
||||
{
|
||||
let url = format!("https://api.telegram.org/bot{}/sendPhoto", bot_token);
|
||||
let params = [
|
||||
("chat_id", chat_id.as_str()),
|
||||
|
||||
Reference in New Issue
Block a user