From 9eccdba0759a92010ec424c61472d14be414741b Mon Sep 17 00:00:00 2001 From: naskya Date: Wed, 24 Apr 2024 00:23:13 +0900 Subject: [PATCH] chore (backend-rs): move add_note_to_antenna to misc --- packages/backend-rs/index.d.ts | 2 +- packages/backend-rs/index.js | 4 ++-- .../src/{service => misc}/add_note_to_antenna.rs | 12 +++++------- packages/backend-rs/src/misc/mod.rs | 1 + packages/backend-rs/src/service/mod.rs | 1 - packages/backend-rs/src/service/stream.rs | 2 ++ packages/backend-rs/src/service/stream/antenna.rs | 10 ++++++++++ 7 files changed, 21 insertions(+), 11 deletions(-) rename packages/backend-rs/src/{service => misc}/add_note_to_antenna.rs (69%) create mode 100644 packages/backend-rs/src/service/stream/antenna.rs diff --git a/packages/backend-rs/index.d.ts b/packages/backend-rs/index.d.ts index 69de833dcc..dec480d79c 100644 --- a/packages/backend-rs/index.d.ts +++ b/packages/backend-rs/index.d.ts @@ -193,6 +193,7 @@ export interface Acct { } export function stringToAcct(acct: string): Acct export function acctToString(acct: Acct): string +export function addNoteToAntenna(antennaId: string, note: Note): void /** * @param host punycoded instance host * @returns whether the given host should be blocked @@ -1119,7 +1120,6 @@ export interface Webhook { latestSentAt: Date | null latestStatus: number | null } -export function addNoteToAntenna(antennaId: string, note: Note): void /** Initializes Cuid2 generator. Must be called before any [create_id]. */ export function initIdGenerator(length: number, fingerprint: string): void export function getTimestamp(id: string): number diff --git a/packages/backend-rs/index.js b/packages/backend-rs/index.js index b4d86dccdf..d801e28fce 100644 --- a/packages/backend-rs/index.js +++ b/packages/backend-rs/index.js @@ -310,12 +310,13 @@ if (!nativeBinding) { throw new Error(`Failed to load native binding`) } -const { loadEnv, loadConfig, stringToAcct, acctToString, isBlockedServer, isSilencedServer, isAllowedServer, checkWordMute, getFullApAccount, isSelfHost, isSameOrigin, extractHost, toPuny, isUnicodeEmoji, sqlLikeEscape, safeForSql, formatMilliseconds, getNoteSummary, toMastodonId, fromMastodonId, fetchMeta, metaToPugArgs, nyaify, hashPassword, verifyPassword, isOldPasswordAlgorithm, decodeReaction, countReactions, toDbReaction, AntennaSrcEnum, DriveFileUsageHintEnum, MutedNoteReasonEnum, NoteVisibilityEnum, NotificationTypeEnum, PageVisibilityEnum, PollNotevisibilityEnum, RelayStatusEnum, UserEmojimodpermEnum, UserProfileFfvisibilityEnum, UserProfileMutingnotificationtypesEnum, addNoteToAntenna, initIdGenerator, getTimestamp, genId, secureRndstr } = nativeBinding +const { loadEnv, loadConfig, stringToAcct, acctToString, addNoteToAntenna, isBlockedServer, isSilencedServer, isAllowedServer, checkWordMute, getFullApAccount, isSelfHost, isSameOrigin, extractHost, toPuny, isUnicodeEmoji, sqlLikeEscape, safeForSql, formatMilliseconds, getNoteSummary, toMastodonId, fromMastodonId, fetchMeta, metaToPugArgs, nyaify, hashPassword, verifyPassword, isOldPasswordAlgorithm, decodeReaction, countReactions, toDbReaction, AntennaSrcEnum, DriveFileUsageHintEnum, MutedNoteReasonEnum, NoteVisibilityEnum, NotificationTypeEnum, PageVisibilityEnum, PollNotevisibilityEnum, RelayStatusEnum, UserEmojimodpermEnum, UserProfileFfvisibilityEnum, UserProfileMutingnotificationtypesEnum, initIdGenerator, getTimestamp, genId, secureRndstr } = nativeBinding module.exports.loadEnv = loadEnv module.exports.loadConfig = loadConfig module.exports.stringToAcct = stringToAcct module.exports.acctToString = acctToString +module.exports.addNoteToAntenna = addNoteToAntenna module.exports.isBlockedServer = isBlockedServer module.exports.isSilencedServer = isSilencedServer module.exports.isAllowedServer = isAllowedServer @@ -352,7 +353,6 @@ module.exports.RelayStatusEnum = RelayStatusEnum module.exports.UserEmojimodpermEnum = UserEmojimodpermEnum module.exports.UserProfileFfvisibilityEnum = UserProfileFfvisibilityEnum module.exports.UserProfileMutingnotificationtypesEnum = UserProfileMutingnotificationtypesEnum -module.exports.addNoteToAntenna = addNoteToAntenna module.exports.initIdGenerator = initIdGenerator module.exports.getTimestamp = getTimestamp module.exports.genId = genId diff --git a/packages/backend-rs/src/service/add_note_to_antenna.rs b/packages/backend-rs/src/misc/add_note_to_antenna.rs similarity index 69% rename from packages/backend-rs/src/service/add_note_to_antenna.rs rename to packages/backend-rs/src/misc/add_note_to_antenna.rs index 4f294cc881..2ed698d7e6 100644 --- a/packages/backend-rs/src/service/add_note_to_antenna.rs +++ b/packages/backend-rs/src/misc/add_note_to_antenna.rs @@ -1,13 +1,14 @@ use crate::database::{redis_conn, redis_key}; use crate::model::entity::note; -use crate::service::stream::{publish_to_stream, Error, Stream}; +use crate::service::stream; use crate::util::id::get_timestamp; use redis::{streams::StreamMaxlen, Commands}; type Note = note::Model; #[crate::export] -pub fn add_note_to_antenna(antenna_id: String, note: &Note) -> Result<(), Error> { +pub fn add_note_to_antenna(antenna_id: String, note: &Note) -> Result<(), stream::Error> { + // for timeline API redis_conn()?.xadd_maxlen( redis_key(format!("antennaTimeline:{}", antenna_id)), StreamMaxlen::Approx(200), @@ -15,9 +16,6 @@ pub fn add_note_to_antenna(antenna_id: String, note: &Note) -> Result<(), Error> &[("note", ¬e.id)], )?; - publish_to_stream( - &Stream::Antenna { antenna_id }, - Some("note"), - Some(serde_json::to_string(note)?), - ) + // for streaming API + stream::antenna::publish(antenna_id, note) } diff --git a/packages/backend-rs/src/misc/mod.rs b/packages/backend-rs/src/misc/mod.rs index 24cec14969..8246b6a31a 100644 --- a/packages/backend-rs/src/misc/mod.rs +++ b/packages/backend-rs/src/misc/mod.rs @@ -1,4 +1,5 @@ pub mod acct; +pub mod add_note_to_antenna; pub mod check_server_block; pub mod check_word_mute; pub mod convert_host; diff --git a/packages/backend-rs/src/service/mod.rs b/packages/backend-rs/src/service/mod.rs index cc239e3f9e..baf29e06ad 100644 --- a/packages/backend-rs/src/service/mod.rs +++ b/packages/backend-rs/src/service/mod.rs @@ -1,2 +1 @@ -pub mod add_note_to_antenna; pub mod stream; diff --git a/packages/backend-rs/src/service/stream.rs b/packages/backend-rs/src/service/stream.rs index 6c5e6be4dd..1e84d5f866 100644 --- a/packages/backend-rs/src/service/stream.rs +++ b/packages/backend-rs/src/service/stream.rs @@ -1,3 +1,5 @@ +pub mod antenna; + use crate::config::CONFIG; use crate::database::redis_conn; use redis::{Commands, RedisError}; diff --git a/packages/backend-rs/src/service/stream/antenna.rs b/packages/backend-rs/src/service/stream/antenna.rs new file mode 100644 index 0000000000..08ae391caf --- /dev/null +++ b/packages/backend-rs/src/service/stream/antenna.rs @@ -0,0 +1,10 @@ +use crate::model::entity::note; +use crate::service::stream::{publish_to_stream, Error, Stream}; + +pub fn publish(antenna_id: String, note: ¬e::Model) -> Result<(), Error> { + publish_to_stream( + &Stream::Antenna { antenna_id }, + Some("note"), + Some(serde_json::to_string(note)?), + ) +}