refactor: move misc/post.ts to native-utils
Co-authored-by: naskya <m@naskya.net>
This commit is contained in:
parent
0d8ee4387b
commit
d6dd6ff897
6 changed files with 33 additions and 25 deletions
|
@ -274,6 +274,7 @@ const {
|
||||||
extractHost,
|
extractHost,
|
||||||
toPuny,
|
toPuny,
|
||||||
toPunyOptional,
|
toPunyOptional,
|
||||||
|
convertToHiddenPost,
|
||||||
sqlLikeEscape,
|
sqlLikeEscape,
|
||||||
safeForSql,
|
safeForSql,
|
||||||
formatMilliseconds,
|
formatMilliseconds,
|
||||||
|
@ -293,6 +294,7 @@ module.exports.isSelfHost = isSelfHost;
|
||||||
module.exports.extractHost = extractHost;
|
module.exports.extractHost = extractHost;
|
||||||
module.exports.toPuny = toPuny;
|
module.exports.toPuny = toPuny;
|
||||||
module.exports.toPunyOptional = toPunyOptional;
|
module.exports.toPunyOptional = toPunyOptional;
|
||||||
|
module.exports.convertToHiddenPost = convertToHiddenPost;
|
||||||
module.exports.sqlLikeEscape = sqlLikeEscape;
|
module.exports.sqlLikeEscape = sqlLikeEscape;
|
||||||
module.exports.safeForSql = safeForSql;
|
module.exports.safeForSql = safeForSql;
|
||||||
module.exports.formatMilliseconds = formatMilliseconds;
|
module.exports.formatMilliseconds = formatMilliseconds;
|
||||||
|
|
|
@ -8,7 +8,7 @@ members = ["migration"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
napi = ["dep:napi", "dep:napi-derive"]
|
napi = ["dep:napi-derive"]
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
crate-type = ["cdylib", "lib"]
|
crate-type = ["cdylib", "lib"]
|
||||||
|
@ -35,7 +35,7 @@ url = "2.5.0"
|
||||||
utoipa = "4.1.0"
|
utoipa = "4.1.0"
|
||||||
|
|
||||||
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
|
# Default enable napi4 feature, see https://nodejs.org/api/n-api.html#node-api-version-matrix
|
||||||
napi = { version = "2.14.1", default-features = false, features = ["napi9", "tokio_rt"], optional = true }
|
napi = { version = "2.14.1", default-features = false, features = ["napi9", "tokio_rt"] }
|
||||||
napi-derive = { version = "2.14.5", optional = true }
|
napi-derive = { version = "2.14.5", optional = true }
|
||||||
basen = "0.1.0"
|
basen = "0.1.0"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
use napi;
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "napi", napi_derive::napi(object))]
|
||||||
|
pub struct Post {
|
||||||
|
pub text: Option<String>,
|
||||||
|
pub cw: Option<String>,
|
||||||
|
pub local_only: bool,
|
||||||
|
pub created_at: napi::JsDate,
|
||||||
|
/// FIXME: introduce enum type (and remove "hiddensomething" visibility if possible)
|
||||||
|
pub visibility: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg_attr(feature = "napi", napi_derive::napi)]
|
||||||
|
pub fn convert_to_hidden_post(original_post: Post) -> Post {
|
||||||
|
Post {
|
||||||
|
text: match original_post.text {
|
||||||
|
Some(s) if !s.is_empty() => Some(s),
|
||||||
|
_ => None,
|
||||||
|
},
|
||||||
|
cw: original_post.cw,
|
||||||
|
local_only: original_post.local_only,
|
||||||
|
created_at: original_post.created_at,
|
||||||
|
visibility: format!("hidden{}", original_post.visibility),
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
pub mod acct;
|
pub mod acct;
|
||||||
pub mod config;
|
pub mod config;
|
||||||
pub mod convert_host;
|
pub mod convert_host;
|
||||||
|
pub mod convert_to_hidden_post;
|
||||||
pub mod escape_sql;
|
pub mod escape_sql;
|
||||||
pub mod format_milliseconds;
|
pub mod format_milliseconds;
|
||||||
pub mod id;
|
pub mod id;
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
export type Post = {
|
|
||||||
text: string | undefined;
|
|
||||||
cw: string | null;
|
|
||||||
localOnly: boolean;
|
|
||||||
createdAt: Date;
|
|
||||||
visibility: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function parse(acct: any): Post {
|
|
||||||
return {
|
|
||||||
text: acct.text || undefined,
|
|
||||||
cw: acct.cw,
|
|
||||||
localOnly: acct.localOnly,
|
|
||||||
createdAt: new Date(acct.createdAt),
|
|
||||||
visibility: `hidden${acct.visibility || ""}`,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function toJson(acct: Post): string {
|
|
||||||
return { text: acct.text, cw: acct.cw, localOnly: acct.localOnly }.toString();
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
import * as Post from "@/misc/post.js";
|
import { convertToHiddenPost } from "native-utils/built/index.js";
|
||||||
import create from "@/services/note/create.js";
|
import create from "@/services/note/create.js";
|
||||||
import { Users } from "@/models/index.js";
|
import { Users } from "@/models/index.js";
|
||||||
import type { DbUserImportMastoPostJobData } from "@/queue/types.js";
|
import type { DbUserImportMastoPostJobData } from "@/queue/types.js";
|
||||||
|
@ -52,7 +52,8 @@ export async function importCkPost(
|
||||||
logger.error(`Skipped adding file to drive: ${url}`);
|
logger.error(`Skipped adding file to drive: ${url}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const { text, cw, localOnly, createdAt, visibility } = Post.parse(post);
|
const { text, cw, localOnly, createdAt, visibility } =
|
||||||
|
convertToHiddenPost(post);
|
||||||
let note = await Notes.findOneBy({
|
let note = await Notes.findOneBy({
|
||||||
createdAt: createdAt,
|
createdAt: createdAt,
|
||||||
text: text,
|
text: text,
|
||||||
|
|
Loading…
Reference in a new issue