forked from alemi/upub
fix: user update task without deleting
This commit is contained in:
parent
07d0d400d8
commit
78f71deead
1 changed files with 10 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
||||||
use futures::TryStreamExt;
|
use futures::TryStreamExt;
|
||||||
use sea_orm::{ColumnTrait, EntityTrait, QueryFilter};
|
use sea_orm::{ActiveValue::{Set, NotSet}, ColumnTrait, EntityTrait, QueryFilter};
|
||||||
|
|
||||||
use crate::server::fetcher::Fetcher;
|
use crate::server::fetcher::Fetcher;
|
||||||
|
|
||||||
|
@ -19,8 +19,11 @@ pub async fn update_users(ctx: crate::server::Context, days: i64) -> crate::Resu
|
||||||
match ctx.pull_user(&user.id).await {
|
match ctx.pull_user(&user.id).await {
|
||||||
Err(e) => tracing::warn!("could not update user {}: {e}", user.id),
|
Err(e) => tracing::warn!("could not update user {}: {e}", user.id),
|
||||||
Ok(doc) => match crate::model::actor::ActiveModel::new(&doc) {
|
Ok(doc) => match crate::model::actor::ActiveModel::new(&doc) {
|
||||||
Ok(u) => {
|
Ok(mut u) => {
|
||||||
insertions.push((user.id, u));
|
u.internal = NotSet;
|
||||||
|
u.updated = Set(chrono::Utc::now());
|
||||||
|
let uid = u.id.take().unwrap_or(user.id.clone());
|
||||||
|
insertions.push((uid, u));
|
||||||
count += 1;
|
count += 1;
|
||||||
},
|
},
|
||||||
Err(e) => tracing::warn!("failed deserializing user '{}': {e}", user.id),
|
Err(e) => tracing::warn!("failed deserializing user '{}': {e}", user.id),
|
||||||
|
@ -31,8 +34,10 @@ pub async fn update_users(ctx: crate::server::Context, days: i64) -> crate::Resu
|
||||||
|
|
||||||
for (uid, user_model) in insertions {
|
for (uid, user_model) in insertions {
|
||||||
tracing::info!("updating user {}", uid);
|
tracing::info!("updating user {}", uid);
|
||||||
crate::model::actor::Entity::delete_by_ap_id(&uid).exec(ctx.db()).await?;
|
crate::model::actor::Entity::update(user_model)
|
||||||
crate::model::actor::Entity::insert(user_model).exec(ctx.db()).await?;
|
.filter(crate::model::actor::Column::Id.eq(uid))
|
||||||
|
.exec(ctx.db())
|
||||||
|
.await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
tracing::info!("updated {count} users");
|
tracing::info!("updated {count} users");
|
||||||
|
|
Loading…
Reference in a new issue