feat: process quote_url
This commit is contained in:
parent
83b3db8e75
commit
902aabe36b
6 changed files with 53 additions and 3 deletions
|
@ -78,6 +78,7 @@ pub async fn faker(ctx: upub::Context, count: i64) -> Result<(), sea_orm::DbErr>
|
||||||
summary: Set(None),
|
summary: Set(None),
|
||||||
context: Set(Some(context.clone())),
|
context: Set(Some(context.clone())),
|
||||||
in_reply_to: Set(None),
|
in_reply_to: Set(None),
|
||||||
|
quote: Set(None),
|
||||||
content: Set(Some(format!("[{i}] Tic(k). Quasiparticle of intensive multiplicity. Tics (or ticks) are intrinsically several components of autonomously numbering anorganic populations, propagating by contagion between segmentary divisions in the order of nature. Ticks - as nonqualitative differentially-decomposable counting marks - each designate a multitude comprehended as a singular variation in tic(k)-density."))),
|
content: Set(Some(format!("[{i}] Tic(k). Quasiparticle of intensive multiplicity. Tics (or ticks) are intrinsically several components of autonomously numbering anorganic populations, propagating by contagion between segmentary divisions in the order of nature. Ticks - as nonqualitative differentially-decomposable counting marks - each designate a multitude comprehended as a singular variation in tic(k)-density."))),
|
||||||
image: Set(None),
|
image: Set(None),
|
||||||
published: Set(chrono::Utc::now() - std::time::Duration::from_secs(60*i as u64)),
|
published: Set(chrono::Utc::now() - std::time::Duration::from_secs(60*i as u64)),
|
||||||
|
|
|
@ -16,6 +16,7 @@ pub struct Model {
|
||||||
pub summary: Option<String>,
|
pub summary: Option<String>,
|
||||||
pub content: Option<String>,
|
pub content: Option<String>,
|
||||||
pub image: Option<String>,
|
pub image: Option<String>,
|
||||||
|
pub quote: Option<String>,
|
||||||
pub sensitive: bool,
|
pub sensitive: bool,
|
||||||
pub in_reply_to: Option<String>,
|
pub in_reply_to: Option<String>,
|
||||||
pub url: Option<String>,
|
pub url: Option<String>,
|
||||||
|
@ -63,10 +64,18 @@ pub enum Relation {
|
||||||
belongs_to = "Entity",
|
belongs_to = "Entity",
|
||||||
from = "Column::InReplyTo",
|
from = "Column::InReplyTo",
|
||||||
to = "Column::Id",
|
to = "Column::Id",
|
||||||
on_update = "Cascade",
|
on_update = "NoAction",
|
||||||
on_delete = "NoAction"
|
on_delete = "NoAction"
|
||||||
)]
|
)]
|
||||||
Objects,
|
ObjectsReply,
|
||||||
|
#[sea_orm(
|
||||||
|
belongs_to = "Entity",
|
||||||
|
from = "Column::Quote",
|
||||||
|
to = "Column::Id",
|
||||||
|
on_update = "NoAction",
|
||||||
|
on_delete = "NoAction"
|
||||||
|
)]
|
||||||
|
ObjectsQuote,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Related<super::activity::Entity> for Entity {
|
impl Related<super::activity::Entity> for Entity {
|
||||||
|
@ -125,7 +134,7 @@ impl Related<super::mention::Entity> for Entity {
|
||||||
|
|
||||||
impl Related<Entity> for Entity {
|
impl Related<Entity> for Entity {
|
||||||
fn to() -> RelationDef {
|
fn to() -> RelationDef {
|
||||||
Relation::Objects.def()
|
Relation::ObjectsReply.def()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,6 +177,7 @@ impl Model {
|
||||||
.set_context(apb::Node::maybe_link(self.context.clone()))
|
.set_context(apb::Node::maybe_link(self.context.clone()))
|
||||||
.set_conversation(apb::Node::maybe_link(self.context.clone())) // duplicate context for mastodon
|
.set_conversation(apb::Node::maybe_link(self.context.clone())) // duplicate context for mastodon
|
||||||
.set_in_reply_to(apb::Node::maybe_link(self.in_reply_to.clone()))
|
.set_in_reply_to(apb::Node::maybe_link(self.in_reply_to.clone()))
|
||||||
|
.set_quote_url(apb::Node::maybe_link(self.quote.clone()))
|
||||||
.set_published(Some(self.published))
|
.set_published(Some(self.published))
|
||||||
.set_updated(if self.updated != self.published { Some(self.updated) } else { None })
|
.set_updated(if self.updated != self.published { Some(self.updated) } else { None })
|
||||||
.set_audience(apb::Node::maybe_link(self.audience))
|
.set_audience(apb::Node::maybe_link(self.audience))
|
||||||
|
|
|
@ -276,6 +276,7 @@ impl AP {
|
||||||
image: object.image().get().and_then(|x| x.url().id().str()),
|
image: object.image().get().and_then(|x| x.url().id().str()),
|
||||||
context: object.context().id().str(),
|
context: object.context().id().str(),
|
||||||
in_reply_to: object.in_reply_to().id().str(),
|
in_reply_to: object.in_reply_to().id().str(),
|
||||||
|
quote: object.quote_url().id().str(),
|
||||||
published: object.published().unwrap_or_else(|_| chrono::Utc::now()),
|
published: object.published().unwrap_or_else(|_| chrono::Utc::now()),
|
||||||
updated: object.updated().unwrap_or_else(|_| chrono::Utc::now()),
|
updated: object.updated().unwrap_or_else(|_| chrono::Utc::now()),
|
||||||
url: object.url().id().str(),
|
url: object.url().id().str(),
|
||||||
|
|
|
@ -17,6 +17,7 @@ mod m20240628_000002_add_credentials_activated;
|
||||||
mod m20240703_000001_add_audience_index;
|
mod m20240703_000001_add_audience_index;
|
||||||
mod m20240703_000002_add_image_to_objects;
|
mod m20240703_000002_add_image_to_objects;
|
||||||
mod m20240706_000001_add_error_to_jobs;
|
mod m20240706_000001_add_error_to_jobs;
|
||||||
|
mod m20240715_000001_add_quote_uri_to_objects;
|
||||||
|
|
||||||
pub struct Migrator;
|
pub struct Migrator;
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ impl MigratorTrait for Migrator {
|
||||||
Box::new(m20240703_000001_add_audience_index::Migration),
|
Box::new(m20240703_000001_add_audience_index::Migration),
|
||||||
Box::new(m20240703_000002_add_image_to_objects::Migration),
|
Box::new(m20240703_000002_add_image_to_objects::Migration),
|
||||||
Box::new(m20240706_000001_add_error_to_jobs::Migration),
|
Box::new(m20240706_000001_add_error_to_jobs::Migration),
|
||||||
|
Box::new(m20240715_000001_add_quote_uri_to_objects::Migration),
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ pub enum Objects {
|
||||||
Replies,
|
Replies,
|
||||||
Context,
|
Context,
|
||||||
InReplyTo,
|
InReplyTo,
|
||||||
|
Quote, // added with migration m20240715_000001
|
||||||
Cc,
|
Cc,
|
||||||
Bcc,
|
Bcc,
|
||||||
To,
|
To,
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
use sea_orm_migration::prelude::*;
|
||||||
|
|
||||||
|
use crate::m20240524_000001_create_actor_activity_object_tables::Objects;
|
||||||
|
|
||||||
|
#[derive(DeriveMigrationName)]
|
||||||
|
pub struct Migration;
|
||||||
|
|
||||||
|
#[async_trait::async_trait]
|
||||||
|
impl MigrationTrait for Migration {
|
||||||
|
async fn up(&self, manager: &SchemaManager) -> Result<(), DbErr> {
|
||||||
|
manager
|
||||||
|
.alter_table(
|
||||||
|
Table::alter()
|
||||||
|
.table(Objects::Table)
|
||||||
|
.add_column(ColumnDef::new(Objects::Quote).string().null())
|
||||||
|
.to_owned()
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn down(&self, manager: &SchemaManager) -> Result<(), DbErr> {
|
||||||
|
manager
|
||||||
|
.alter_table(
|
||||||
|
Table::alter()
|
||||||
|
.table(Objects::Table)
|
||||||
|
.drop_column(Objects::Quote)
|
||||||
|
.to_owned()
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue