chore: upgrade k-ap to 0.4.0
Some checks failed
test / unit (push) Has been cancelled
lint / lint (push) Has been cancelled

Map new fetched_at field in RemoteActor, read last_fetched_at from DB.
This commit is contained in:
2026-05-30 03:00:43 +02:00
parent 3357484bbf
commit 78daca0377
7 changed files with 17 additions and 15 deletions

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
k-ap = { version = "0.3.1", registry = "gitea" }
k-ap = { version = "0.4.0", registry = "gitea" }
domain = { workspace = true }
url = { workspace = true }
serde = { workspace = true }

View File

@@ -124,7 +124,7 @@ fn k_ap_actor_to_domain(a: k_ap::RemoteActor) -> DomainRemoteActor {
display_name: a.display_name,
avatar_url: a.avatar_url,
outbox_url: a.outbox_url,
last_fetched_at: chrono::Utc::now(),
last_fetched_at: a.fetched_at.unwrap_or_else(chrono::Utc::now),
bio: a.bio,
banner_url: a.banner_url,
also_known_as: a.also_known_as,

View File

@@ -4,7 +4,7 @@ version = "0.1.0"
edition = "2021"
[dependencies]
k-ap = { version = "0.3.1", registry = "gitea" }
k-ap = { version = "0.4.0", registry = "gitea" }
sqlx = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }

View File

@@ -59,6 +59,7 @@ struct RemoteActorRow {
followers_url: Option<String>,
following_url: Option<String>,
also_known_as: Option<Vec<String>>,
last_fetched_at: Option<chrono::DateTime<chrono::Utc>>,
}
fn map_remote_actor(r: RemoteActorRow) -> RemoteActor {
@@ -75,6 +76,7 @@ fn map_remote_actor(r: RemoteActorRow) -> RemoteActor {
followers_url: r.followers_url,
following_url: r.following_url,
also_known_as: r.also_known_as.unwrap_or_default(),
fetched_at: r.last_fetched_at,
}
}
@@ -174,7 +176,7 @@ impl FollowRepository for PgFederationRepository {
"SELECT f.remote_actor_url AS url, f.status,
COALESCE(r.handle,'') AS handle, COALESCE(r.inbox_url,'') AS inbox_url,
r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_followers f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1 AND f.status='accepted'",
@@ -209,7 +211,7 @@ impl FollowRepository for PgFederationRepository {
"SELECT f.remote_actor_url AS url, f.status,
COALESCE(r.handle,'') AS handle, COALESCE(r.inbox_url,'') AS inbox_url,
r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_followers f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1 AND f.status='accepted'
@@ -261,7 +263,7 @@ impl FollowRepository for PgFederationRepository {
sqlx::query_as::<_, RemoteActorRow>(
"SELECT f.remote_actor_url AS url, COALESCE(r.handle,'') AS handle,
COALESCE(r.inbox_url,'') AS inbox_url, r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_followers f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1 AND f.status='accepted'
@@ -305,7 +307,7 @@ impl FollowRepository for PgFederationRepository {
sqlx::query_as::<_, RemoteActorRow>(
"SELECT f.remote_actor_url AS url, COALESCE(r.handle,'') AS handle,
COALESCE(r.inbox_url,'') AS inbox_url, r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_followers f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1 AND f.status='pending'",
@@ -389,7 +391,7 @@ impl FollowRepository for PgFederationRepository {
sqlx::query_as::<_, RemoteActorRow>(
"SELECT f.remote_actor_url AS url, COALESCE(r.handle,'') AS handle,
COALESCE(r.inbox_url,'') AS inbox_url, r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_following f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1",
@@ -410,7 +412,7 @@ impl FollowRepository for PgFederationRepository {
sqlx::query_as::<_, RemoteActorRow>(
"SELECT f.remote_actor_url AS url, COALESCE(r.handle,'') AS handle,
COALESCE(r.inbox_url,'') AS inbox_url, r.shared_inbox_url, r.display_name, r.avatar_url, r.outbox_url,
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as
r.bio, r.banner_url, r.followers_url, r.following_url, r.also_known_as, r.last_fetched_at
FROM federation_following f
LEFT JOIN remote_actors r ON r.url=f.remote_actor_url
WHERE f.local_user_id=$1
@@ -585,7 +587,7 @@ impl ActorRepository for PgFederationRepository {
async fn get_remote_actor(&self, actor_url: &str) -> Result<Option<RemoteActor>> {
sqlx::query_as::<_, RemoteActorRow>(
"SELECT url, handle, inbox_url, shared_inbox_url, display_name, avatar_url, outbox_url,
bio, banner_url, followers_url, following_url, also_known_as
bio, banner_url, followers_url, following_url, also_known_as, last_fetched_at
FROM remote_actors WHERE url=$1",
)
.bind(actor_url)