refactor (backend): port renderHashtag to backend-rs
This commit is contained in:
parent
306723fd53
commit
fcfe6c877b
7 changed files with 41 additions and 11 deletions
9
packages/backend-rs/index.d.ts
vendored
9
packages/backend-rs/index.d.ts
vendored
|
@ -133,6 +133,12 @@ export interface ApFollow {
|
|||
object: string
|
||||
}
|
||||
|
||||
export interface ApHashtag {
|
||||
id: string
|
||||
type: ApObject
|
||||
name: string
|
||||
}
|
||||
|
||||
export interface ApMention {
|
||||
type: ApObject
|
||||
href: string
|
||||
|
@ -143,6 +149,7 @@ export type ApObject = 'Accept'|
|
|||
'Emoji'|
|
||||
'Flag'|
|
||||
'Follow'|
|
||||
'Hashtag'|
|
||||
'Mention'|
|
||||
'Image'|
|
||||
'Read'|
|
||||
|
@ -1329,6 +1336,8 @@ export declare function renderFollow(follower: UserLike, followee: UserLike, req
|
|||
|
||||
export declare function renderFollowRelay(relayId: string): Promise<ApFollow>
|
||||
|
||||
export declare function renderHashtag(tagName: string): ApHashtag
|
||||
|
||||
export declare function renderMention(user: UserLike): ApMention
|
||||
|
||||
export declare function renderRead(userId: string, messageUri: string): ApRead
|
||||
|
|
|
@ -443,6 +443,7 @@ module.exports.renderEmoji = nativeBinding.renderEmoji
|
|||
module.exports.renderFlag = nativeBinding.renderFlag
|
||||
module.exports.renderFollow = nativeBinding.renderFollow
|
||||
module.exports.renderFollowRelay = nativeBinding.renderFollowRelay
|
||||
module.exports.renderHashtag = nativeBinding.renderHashtag
|
||||
module.exports.renderMention = nativeBinding.renderMention
|
||||
module.exports.renderRead = nativeBinding.renderRead
|
||||
module.exports.renderTombstone = nativeBinding.renderTombstone
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
use super::*;
|
||||
use crate::config::CONFIG;
|
||||
|
||||
#[macros::export(object)]
|
||||
pub struct ApHashtag {
|
||||
pub id: String,
|
||||
pub r#type: ApObject,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
impl ActivityPubObject for ApHashtag {}
|
||||
|
||||
impl ApHashtag {
|
||||
#[allow(dead_code)] // TODO: remove this line
|
||||
fn new(tag_name: &str) -> Self {
|
||||
Self {
|
||||
id: format!("{}/tags/{}", CONFIG.url, urlencoding::encode(tag_name)),
|
||||
r#type: ApObject::Hashtag,
|
||||
name: format!("#{}", tag_name),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[macros::ts_export]
|
||||
pub fn render_hashtag(tag_name: &str) -> ApHashtag {
|
||||
ApHashtag::new(tag_name)
|
||||
}
|
|
@ -2,6 +2,7 @@ pub mod accept;
|
|||
pub mod emoji;
|
||||
pub mod flag;
|
||||
pub mod follow;
|
||||
pub mod hashtag;
|
||||
pub mod mention;
|
||||
pub mod read;
|
||||
pub mod tombstone;
|
||||
|
@ -14,6 +15,7 @@ pub enum ApObject {
|
|||
Emoji,
|
||||
Flag,
|
||||
Follow,
|
||||
Hashtag,
|
||||
Mention,
|
||||
Image,
|
||||
Read,
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
import { config } from "@/config.js";
|
||||
|
||||
export default (tag: string) => ({
|
||||
type: "Hashtag",
|
||||
href: `${config.url}/tags/${encodeURIComponent(tag)}`,
|
||||
name: `#${tag}`,
|
||||
});
|
|
@ -6,8 +6,7 @@ import { DriveFiles, Notes, Users, Emojis, Polls } from "@/models/index.js";
|
|||
import type { Emoji } from "@/models/entities/emoji.js";
|
||||
import type { Poll } from "@/models/entities/poll.js";
|
||||
import toHtml from "@/remote/activitypub/misc/get-note-html.js";
|
||||
import { renderEmoji, renderMention } from "backend-rs";
|
||||
import renderHashtag from "./hashtag.js";
|
||||
import { renderEmoji, renderHashtag, renderMention } from "backend-rs";
|
||||
import renderDocument from "./document.js";
|
||||
|
||||
export default async function renderNote(
|
||||
|
|
|
@ -8,8 +8,7 @@ import { toHtml } from "@/mfm/to-html.js";
|
|||
import renderImage from "./image.js";
|
||||
import renderKey from "./key.js";
|
||||
import { getEmojis } from "./note.js";
|
||||
import { renderEmoji } from "backend-rs";
|
||||
import renderHashtag from "./hashtag.js";
|
||||
import { renderEmoji, renderHashtag } from "backend-rs";
|
||||
import type { IIdentifier } from "../models/identifier.js";
|
||||
|
||||
export async function renderPerson(user: ILocalUser) {
|
||||
|
|
Loading…
Reference in a new issue