Fix Post::from_activity07()

This commit is contained in:
Kitaiti Makoto 2022-05-01 13:00:04 +09:00
parent 38ebc9ea41
commit de6e9c0e2e
1 changed files with 17 additions and 10 deletions

View File

@ -1031,21 +1031,28 @@ impl FromId07<DbConn> for Post {
let article = article.inner; let article = article.inner;
let (blog, authors) = article let (blog, authors) = article
.ap_object_ref()
.attributed_to() .attributed_to()
.ok_or(Error::MissingApProperty) .ok_or(Error::MissingApProperty)?
.iter() .iter()
.fold((None, vec![]), |(blog, mut authors), link| { .fold((None, vec![]), |(blog, mut authors), link| {
let url = link.to_as_uri().expect("Exists"); if let Some(url) = link.id() {
match User::from_id(conn, &url, None, CONFIG.proxy()) { match User::from_id07(conn, url.as_str(), None, CONFIG.proxy()) {
Ok(u) => { Ok(u) => {
authors.push(u); authors.push(u);
(blog, authors) (blog, authors)
} }
Err(_) => ( Err(_) => (
blog.or_else(|| Blog::from_id(conn, &url, None, CONFIG.proxy()).ok()), blog.or_else(|| {
Blog::from_id07(conn, url.as_str(), None, CONFIG.proxy()).ok()
}),
authors, authors,
), ),
} }
} else {
// logically, url possible to be an object without id proprty like {"type":"Person", "name":"Sally"} but we ignore the case
(blog, authors)
}
}); });
let cover = article.icon().and_then(|icon| { let cover = article.icon().and_then(|icon| {