mirror of
https://github.com/flibusta-apps/book_bot.git
synced 2025-12-06 15:35:35 +01:00
Update activity filter
This commit is contained in:
@@ -4,6 +4,8 @@ mod tools;
|
|||||||
|
|
||||||
use teloxide::{prelude::*, types::BotCommand};
|
use teloxide::{prelude::*, types::BotCommand};
|
||||||
|
|
||||||
|
use crate::bots::approved_bot::services::user_settings::create_or_update_user_settings;
|
||||||
|
|
||||||
use self::{
|
use self::{
|
||||||
modules::{
|
modules::{
|
||||||
annotations::get_annotations_handler, book::get_book_handler,
|
annotations::get_annotations_handler, book::get_book_handler,
|
||||||
@@ -18,9 +20,10 @@ use super::{ignore_channel_messages, BotCommands, BotHandler};
|
|||||||
|
|
||||||
async fn _update_activity(me: teloxide::types::Me, user: teloxide::types::User) -> Option<()> {
|
async fn _update_activity(me: teloxide::types::Me, user: teloxide::types::User) -> Option<()> {
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
|
if let Err(err) = update_user_activity(user.id).await {
|
||||||
let allowed_langs = get_user_or_default_lang_codes(user.id).await;
|
let allowed_langs = get_user_or_default_lang_codes(user.id).await;
|
||||||
|
|
||||||
match update_user_activity(
|
if let Ok(_) = create_or_update_user_settings(
|
||||||
user.id,
|
user.id,
|
||||||
user.last_name.clone().unwrap_or("".to_string()),
|
user.last_name.clone().unwrap_or("".to_string()),
|
||||||
user.first_name.clone(),
|
user.first_name.clone(),
|
||||||
@@ -30,8 +33,13 @@ async fn _update_activity(me: teloxide::types::Me, user: teloxide::types::User)
|
|||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(_) => (),
|
#[allow(unused_must_use)]
|
||||||
Err(err) => log::warn!("{}", err),
|
{
|
||||||
|
update_user_activity(user.id).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
log::warn!("{}", err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -45,7 +53,7 @@ fn update_user_activity_handler() -> BotHandler {
|
|||||||
|cq: CallbackQuery, me: teloxide::types::Me| async move {
|
|cq: CallbackQuery, me: teloxide::types::Me| async move {
|
||||||
_update_activity(me, cq.from).await
|
_update_activity(me, cq.from).await
|
||||||
},
|
},
|
||||||
))
|
)),
|
||||||
)
|
)
|
||||||
.branch(Update::filter_message().chain(dptree::filter_map_async(
|
.branch(Update::filter_message().chain(dptree::filter_map_async(
|
||||||
|message: Message, me: teloxide::types::Me| async move {
|
|message: Message, me: teloxide::types::Me| async move {
|
||||||
|
|||||||
@@ -127,26 +127,11 @@ pub async fn get_langs() -> Result<Vec<Lang>, Box<dyn std::error::Error + Send +
|
|||||||
|
|
||||||
pub async fn update_user_activity(
|
pub async fn update_user_activity(
|
||||||
user_id: UserId,
|
user_id: UserId,
|
||||||
last_name: String,
|
|
||||||
first_name: String,
|
|
||||||
username: String,
|
|
||||||
source: String,
|
|
||||||
allowed_langs: Vec<String>,
|
|
||||||
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
) -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let body = json!({
|
|
||||||
"user_id": user_id,
|
|
||||||
"last_name": last_name,
|
|
||||||
"first_name": first_name,
|
|
||||||
"username": username,
|
|
||||||
"source": source,
|
|
||||||
"allowed_langs": allowed_langs
|
|
||||||
});
|
|
||||||
|
|
||||||
let client = reqwest::Client::new();
|
let client = reqwest::Client::new();
|
||||||
let response = client
|
let response = client
|
||||||
.post(format!("{}/users/{user_id}/update_activity", &config::CONFIG.user_settings_url))
|
.post(format!("{}/users/{user_id}/update_activity", &config::CONFIG.user_settings_url))
|
||||||
.header("Authorization", &config::CONFIG.user_settings_api_key)
|
.header("Authorization", &config::CONFIG.user_settings_api_key)
|
||||||
.body(body.to_string())
|
|
||||||
.send()
|
.send()
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user