Firefish v1.0.5-dev21

This commit is contained in:
naskya 2023-11-17 06:01:31 +09:00
parent c3dc2db3eb
commit b98707c37b
Signed by: naskya
GPG key ID: 164DFF24E2D40139
518 changed files with 1073 additions and 1179 deletions

View file

@ -168,11 +168,11 @@ cacheRemoteFiles: "Cache remote files"
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded
directly from the remote server. Disabling this will decrease storage usage, but
increase traffic, as thumbnails will not be generated."
flagAsBot: "Mark this account as a bot"
flagAsBot: "Mark this account as automated"
flagAsBotDescription: "Enable this option if this account is controlled by a program.
If enabled, it will act as a flag for other developers to prevent endless interaction
chains with other bots and adjust Firefish's internal systems to treat this account
as a bot."
chains with other automated accounts and adjust Firefish's internal systems to treat this
account as an automated account."
flagAsCat: "Are you a cat? 😺"
flagAsCatDescription: "You'll get cat ears and speak like a cat!"
flagSpeakAsCat: "Speak as a cat"
@ -1117,7 +1117,7 @@ noGraze: "Please disable the \"Graze for Mastodon\" browser extension, as it int
with Firefish."
silencedWarning: "This page is showing because these users are from servers your admin
silenced, so they may potentially be spam."
isBot: "This account is a bot"
isBot: "This account is automated"
isLocked: "This account has follow approvals"
isModerator: "Moderator"
isAdmin: "Administrator"

View file

@ -114,7 +114,7 @@ you: "Vous"
clickToShow: "Cliquer pour afficher"
sensitive: "Contenu sensible"
add: "Ajouter"
reaction: "Réactions"
reaction: "Réaction"
reactionSetting: "Réactions à afficher dans le sélecteur de réactions"
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser
« + » pour ajouter."
@ -1148,7 +1148,7 @@ _wordMute:
langDescription: Cacher du fil de publication les publications qui correspondent
à ces langues.
muteLangs: Langages filtrés
muteLangsDescription: Séparer avec des espaces or des retours à la ligne pour une
muteLangsDescription: Séparer avec des espaces ou des retours à la ligne pour une
condition OU (OR).
_instanceMute:
instanceMuteDescription2: "Séparer avec des sauts de lignes"
@ -2225,3 +2225,14 @@ indexable: Indexable
languageForTranslation: Langage post-traduction
vibrate: Jouer les vibrations
clickToShowPatterns: Cliquer pour montrer les patrons de modules
iconSet: Jeu d'icônes
_iconSets:
fill: Rempli
regular: Normal
bold: Gras
duotone: Deux tons
light: Fin
reactions: Réactions
replies: Réponses
quotes: Citations
renotes: Boosts

View file

@ -148,11 +148,11 @@ cacheRemoteFiles: "Tembolokkan berkas remote"
cacheRemoteFilesDescription: "Ketika pengaturan ini dinonaktifkan, berkas luar akan
dimuat langsung dari server luar. Menonaktifkan ini akan mengurangi penggunaan penyimpanan,
tapi dapat menyebabkan meningkatkan lalu lintas, mengingat keluku tidak akan dihasilkan."
flagAsBot: "Atur akun ini sebagai Bot"
flagAsBotDescription: "Jika akun ini dikendalikan oleh program, tetapkanlah opsi ini.
flagAsBot: "Tandai akun ini sebagai akun otomatis"
flagAsBotDescription: "Jika akun ini dikendalikan oleh program, aktifkan opsi ini.
Jika diaktifkan, ini akan berfungsi sebagai tanda bagi pengembang lain untuk mencegah
interaksi berantai dengan bot lain dan menyesuaikan sistem internal Firefish untuk
memperlakukan akun ini sebagai bot."
interaksi berantai dengan akun otomatis lain dan menyesuaikan sistem internal Firefish
untuk memperlakukan akun ini sebagai akun otomatis."
flagAsCat: "Atur akun ini sebagai kucing"
flagAsCatDescription: "Kamu akan mendapatkan telinga kucing dan berbicara seperti
seekor kucing!"
@ -2005,7 +2005,7 @@ signupsDisabled: Pendaftaran ke server ini nonaktif, tapi kamu dapat selalu mend
ke server lain! Jika kamu memiliki kode undangan server ini, harap masukkan di bawah
ini.
enableCustomKaTeXMacro: Aktifkan makro KaTeX khusus
isBot: Akun ini bot
isBot: Akun ini akun otomatis
customMOTD: MOTD khusus (pesan layar percik)
recommendedInstancesDescription: Server yang direkomendasikan dipisahkan dengan garis
baru untuk tampil di linimasa rekomendasi.

View file

@ -147,11 +147,11 @@ cacheRemoteFiles: "Mantieni i file remoti nella cache"
cacheRemoteFilesDescription: "Disabilitando questa opzione, i file remoti verranno
scaricati direttamente dal loro server. L'opzione permette di risparmiare spazio
ma aumenta il traffico di rete e non verranno generate anteprime."
flagAsBot: "Questo account è un bot"
flagAsBot: "Questo account è automatizzato"
flagAsBotDescription: "Se l'account esegue principalmente operazioni automatiche,
attiva quest'opzione. Quando attivata, opera come un segnalatore per gli altri sviluppatori
allo scopo di prevenire catene dinterazione senza fine con altri bot, e di adeguare
i sistemi interni di Firefish perché trattino questo account come un bot."
attiva quest'opzione. Quando attivata, permette agli sviluppatori di prevenire catene
dinterazione senza fine con altri account automatizzati. Inoltre imposta Firefish
perché tratti questo account come automatizzato."
flagAsCat: "Sei un gatto? 😺"
flagAsCatDescription: "Ti compariranno le orecchie e parlerai come un gatto!"
autoAcceptFollowed: "Accetta in automatico i follow dagli account che segui"
@ -2079,7 +2079,7 @@ noGraze: Per favore disattiva l'estenzione del browser "Graze for Mastodon", per
interferisce con Firefish.
silencedWarning: Vedi questa pagina perché gli utenti sono su un server che il tuo
admin ha silenziato, quindi potrebbero essere spam.
isBot: Questo account è un bot
isBot: Questo account è automatizzato
isLocked: Serve una approvazione per seguire questo account
moveFromDescription: Questa operazione crea un alias del vecchio account in modo che
tu possa migrare su questo nuovo account. Fallo PRIMA di migrare il tuo vecchio

View file

@ -149,8 +149,8 @@ addEmoji: "絵文字を追加"
settingGuide: "おすすめ設定"
cacheRemoteFiles: "リモートのファイルをキャッシュする"
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクします。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
flagAsBot: "Botとして設定"
flagAsBotDescription: "このアカウントがBotである場合は、この設定をオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Firefishのシステム上での扱いがBotに合ったものになります。"
flagAsBot: "自動化されたアカウントとして設定"
flagAsBotDescription: "このアカウントが自動で投稿する場合は、この設定をオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Firefishのシステム上での扱いが自動で投稿するアカウントに合ったものになります。"
flagAsCat: "あなたは…猫?😺"
flagAsCatDescription: "このアカウントが猫であることを示す猫モードを有効にするには、このフラグをオンにします。"
flagSpeakAsCat: "猫語で話す"
@ -1968,7 +1968,7 @@ isModerator: モデレーター
audio: 音声
image: 画像
video: 動画
isBot: このアカウントはBotで
isBot: このアカウントは自動で投稿しま
isLocked: このアカウントのフォローは承認制です
isAdmin: 管理者
isPatron: Firefish 後援者

View file

@ -2151,3 +2151,14 @@ deletePasskeysConfirm: Это действие безвозвратно удал
на этом аккаунте. Продолжить?
inputNotMatch: Введённые данные не совпадают
addRe: Добавить "re:" в начале комментария в ответ на запись с предупреждением о содержимом
detectPostLanguage: Автоматическое определение языка и отображение кнопки перевода
для сообщений на иностранных языках
indexableDescription: Разрешить встроенной поисковой системе искать ваши публичные
записи
reactions: Реакции
indexable: Индексируемый(-ая)
languageForTranslation: Язык перевода поста
replies: Ответы
quotes: Цитаты
clickToShowPatterns: Нажмите, чтобы показать модуль шаблонов
renotes: Репосты

View file

@ -1 +1 @@
3b3320d5323648a5ad9a9c3e12561613e3b89a6c
465a585f47037ce26834587429f0bd341e35f76f

View file

@ -1,6 +1,6 @@
{
"name": "firefish",
"version": "1.0.5-dev20",
"version": "1.0.5-dev21",
"codename": "aqua",
"repository": {
"type": "git",

View file

@ -41,7 +41,7 @@
"ajv": "8.12.0",
"archiver": "6.0.1",
"argon2": "0.31.2",
"aws-sdk": "2.1496.0",
"aws-sdk": "2.1498.0",
"axios": "1.6.2",
"bcryptjs": "2.4.3",
"blurhash": "2.0.5",
@ -95,7 +95,7 @@
"nsfwjs": "2.4.2",
"opencc-js": "1.0.5",
"os-utils": "0.0.14",
"otpauth": "9.1.5",
"otpauth": "9.2.0",
"parse5": "7.1.2",
"pg": "8.11.3",
"private-ip": "3.0.1",
@ -135,7 +135,7 @@
"xev": "3.0.2"
},
"devDependencies": {
"@swc/cli": "0.1.62",
"@swc/cli": "0.1.63",
"@swc/core": "1.3.78",
"@types/adm-zip": "0.5.4",
"@types/bcryptjs": "2.4.6",
@ -158,6 +158,8 @@
"@types/node-fetch": "2.6.9",
"@types/nodemailer": "6.4.14",
"@types/oauth": "0.9.4",
"@types/opencc-js": "1.0.3",
"@types/pg": "8.10.9",
"@types/probe-image-size": "7.2.3",
"@types/pug": "2.0.9",
"@types/punycode": "2.1.2",
@ -169,6 +171,7 @@
"@types/sanitize-html": "2.9.4",
"@types/semver": "7.5.5",
"@types/sinonjs__fake-timers": "8.1.5",
"@types/syslog-pro": "1.0.3",
"@types/tinycolor2": "1.4.6",
"@types/tmp": "0.2.6",
"@types/uuid": "9.0.7",

View file

@ -10,10 +10,9 @@ import semver from "semver";
import Logger from "@/services/logger.js";
import loadConfig from "@/config/load.js";
import type { Config } from "@/config/types.js";
import { lessThan } from "@/prelude/array.js";
import { envOption } from "../env.js";
import { envOption } from "@/env.js";
import { showMachineInfo } from "@/misc/show-machine-info.js";
import { db, initDb } from "../db/postgre.js";
import { db, initDb } from "@/db/postgre.js";
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);

View file

@ -1,6 +1,5 @@
import cluster from "node:cluster";
import { initDb } from "../db/postgre.js";
import config from "@/config/index.js";
import { initDb } from "@/db/postgre.js";
import os from "node:os";
/**

View file

@ -1,5 +1,5 @@
import Xev from "xev";
import { deliverQueue, inboxQueue } from "../queue/queues.js";
import { deliverQueue, inboxQueue } from "@/queue/queues.js";
const ev = new Xev();

View file

@ -2,7 +2,7 @@ import si from "systeminformation";
import Xev from "xev";
import * as osUtils from "os-utils";
import { fetchMeta } from "@/misc/fetch-meta.js";
import meilisearch from "../db/meilisearch.js";
import meilisearch from "@/db/meilisearch.js";
const ev = new Xev();

View file

@ -74,9 +74,10 @@ import { UserIp } from "@/models/entities/user-ip.js";
import { NoteEdit } from "@/models/entities/note-edit.js";
import { entities as charts } from "@/services/chart/entities.js";
import { envOption } from "../env.js";
import { dbLogger } from "./logger.js";
import { redisClient } from "./redis.js";
// TODO?: should we avoid importing things from built directory?
import { nativeInitDatabase } from "native-utils/built/index.js";
const sqlLogger = dbLogger.createSubLogger("sql", "gray", false);

View file

@ -1,4 +1,4 @@
import { redisClient } from "../db/redis.js";
import { redisClient } from "@/db/redis.js";
import { Mutex } from "redis-semaphore";
/**

View file

@ -1,6 +1,6 @@
import fetch from "node-fetch";
import { URLSearchParams } from "node:url";
import { getAgentByUrl } from "./fetch.js";
import { getAgentByUrl } from "@/misc/fetch.js";
import config from "@/config/index.js";
export async function verifyRecaptcha(secret: string, response: string) {

View file

@ -4,9 +4,9 @@ import type { User } from "@/models/entities/user.js";
import { Blockings, Followings, UserProfiles } from "@/models/index.js";
import { getFullApAccount } from "./convert-host.js";
import * as Acct from "@/misc/acct.js";
import type { Packed } from "./schema.js";
import { Cache } from "./cache.js";
import { getWordHardMute } from "./check-word-mute.js";
import type { Packed } from "@/misc/schema.js";
import { Cache } from "@/misc/cache.js";
import { getWordHardMute } from "@/misc/check-word-mute.js";
const blockingCache = new Cache<User["id"][]>("blocking", 60 * 5);
const mutedWordsCache = new Cache<string[][] | undefined>("mutedWords", 60 * 5);

View file

@ -7,7 +7,6 @@ import {
ManyToOne,
} from "typeorm";
import { User } from "./user.js";
import { Note } from "./note.js";
import { id } from "../id.js";
@Entity()

View file

@ -1,14 +1,5 @@
import {
PrimaryColumn,
Entity,
Index,
JoinColumn,
Column,
ManyToOne,
PrimaryGeneratedColumn,
} from "typeorm";
import { Entity, Index, Column, PrimaryGeneratedColumn } from "typeorm";
import { id } from "../id.js";
import { Note } from "./note.js";
import type { User } from "./user.js";
@Entity()

View file

@ -1,9 +1,7 @@
import {} from "typeorm";
import { db } from "@/db/postgre.js";
import { Announcement } from "./entities/announcement.js";
import { AnnouncementRead } from "./entities/announcement-read.js";
import { Instance } from "./entities/instance.js";
import { Poll } from "./entities/poll.js";
import { PollVote } from "./entities/poll-vote.js";
import { Meta } from "./entities/meta.js";

View file

@ -2,12 +2,10 @@ import { db } from "@/db/postgre.js";
import { DriveFile } from "@/models/entities/drive-file.js";
import type { User } from "@/models/entities/user.js";
import { toPuny } from "@/misc/convert-host.js";
import { awaitAll, Promiseable } from "@/prelude/await-all.js";
import { awaitAll } from "@/prelude/await-all.js";
import type { Packed } from "@/misc/schema.js";
import config from "@/config/index.js";
import { query, appendQuery } from "@/prelude/url.js";
import { Meta } from "@/models/entities/meta.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
import { Users, DriveFolders } from "../index.js";
import { deepClone } from "@/misc/clone.js";

View file

@ -1,4 +1,4 @@
import { In, Repository } from "typeorm";
import { In } from "typeorm";
import { Notification } from "@/models/entities/notification.js";
import { awaitAll } from "@/prelude/await-all.js";
import type { Packed } from "@/misc/schema.js";
@ -6,7 +6,6 @@ import type { Note } from "@/models/entities/note.js";
import type { NoteReaction } from "@/models/entities/note-reaction.js";
import type { User } from "@/models/entities/user.js";
import { aggregateNoteEmojis, prefetchEmojis } from "@/misc/populate-emojis.js";
import { notificationTypes } from "@/types.js";
import { db } from "@/db/postgre.js";
import {
Users,

View file

@ -7,7 +7,6 @@ import type { Packed } from "@/misc/schema.js";
import type { Promiseable } from "@/prelude/await-all.js";
import { awaitAll } from "@/prelude/await-all.js";
import { populateEmojis } from "@/misc/populate-emojis.js";
import { getAntennas } from "@/misc/antenna-cache.js";
import { USER_ACTIVE_THRESHOLD, USER_ONLINE_THRESHOLD } from "@/const.js";
import { Cache } from "@/misc/cache.js";
import { db } from "@/db/postgre.js";

View file

@ -6,7 +6,7 @@ import { Notes } from "@/models/index.js";
import { MoreThan } from "typeorm";
import { index } from "@/services/note/create.js";
import { Note } from "@/models/entities/note.js";
import meilisearch from "../../../db/meilisearch.js";
import meilisearch from "@/db/meilisearch.js";
const logger = queueLogger.createSubLogger("index-all-notes");

View file

@ -1,14 +1,12 @@
import type Bull from "bull";
import * as fs from "node:fs";
import { ulid } from "ulid";
import mime from "mime-types";
import archiver from "archiver";
import { queueLogger } from "../../logger.js";
import { addFile } from "@/services/drive/add-file.js";
import { format as dateFormat } from "date-fns";
import { Users, Emojis } from "@/models/index.js";
import {} from "@/queue/types.js";
import { createTemp, createTempDir } from "@/misc/create-temp.js";
import { downloadUrl } from "@/misc/download-url.js";
import config from "@/config/index.js";

View file

@ -5,7 +5,7 @@ import * as Acct from "@/misc/acct.js";
import { resolveUser } from "@/remote/resolve-user.js";
import { downloadTextFile } from "@/misc/download-text-file.js";
import { isSelfHost, toPuny } from "@/misc/convert-host.js";
import { Users, DriveFiles, Blockings } from "@/models/index.js";
import { Users, DriveFiles } from "@/models/index.js";
import type { DbUserImportJobData } from "@/queue/types.js";
import block from "@/services/blocking/create.js";
import { IsNull } from "typeorm";

View file

@ -5,7 +5,6 @@ import { queueLogger } from "../../logger.js";
import type Bull from "bull";
import { htmlToMfm } from "@/remote/activitypub/misc/html-to-mfm.js";
import { resolveNote } from "@/remote/activitypub/models/note.js";
import { Note } from "@/models/entities/note.js";
import { uploadFromUrl } from "@/services/drive/upload-from-url.js";
import type { DriveFile } from "@/models/entities/drive-file.js";
import { Notes, NoteEdits } from "@/models/index.js";

View file

@ -1,11 +1,12 @@
import type Bull from "bull";
import { Notes, PollVotes } from "@/models/index.js";
import { queueLogger } from "../logger.js";
// import { queueLogger } from "../logger.js";
import type { EndedPollNotificationJobData } from "@/queue/types.js";
import { createNotification } from "@/services/create-notification.js";
import { deliverQuestionUpdate } from "@/services/note/polls/update.js";
const logger = queueLogger.createSubLogger("ended-poll-notification");
// unused
// const logger = queueLogger.createSubLogger("ended-poll-notification");
export async function endedPollNotification(
job: Bull.Job<EndedPollNotificationJobData>,

View file

@ -4,7 +4,6 @@ import { UserProfiles } from "@/models/index.js";
import { Not } from "typeorm";
import { queueLogger } from "../../logger.js";
import { verifyLink } from "@/services/fetch-rel-me.js";
import config from "@/config/index.js";
const logger = queueLogger.createSubLogger("verify-links");

View file

@ -1,4 +1,3 @@
import { URL } from "node:url";
import type Bull from "bull";
import Logger from "@/services/logger.js";
import type { WebhookDeliverJobData } from "../types.js";

View file

@ -8,7 +8,6 @@ import type {
CacheableRemoteUser,
CacheableUser,
} from "@/models/entities/user.js";
import { User } from "@/models/entities/user.js";
type Visibility = "public" | "home" | "followers" | "specified";

View file

@ -3,7 +3,7 @@ import type { IRead } from "../type.js";
import { getApId } from "../type.js";
import { isSelfHost, extractDbHost } from "@/misc/convert-host.js";
import { MessagingMessages } from "@/models/index.js";
import { readUserMessagingMessage } from "../../../server/api/common/read-messaging-message.js";
import { readUserMessagingMessage } from "@/server/api/common/read-messaging-message.js";
export const performReadActivity = async (
actor: CacheableRemoteUser,

View file

@ -1,5 +1,4 @@
import unfollow from "@/services/following/delete.js";
import cancelRequest from "@/services/following/requests/cancel.js";
import type { IAccept } from "../../type.js";
import type { CacheableRemoteUser } from "@/models/entities/user.js";
import { Followings } from "@/models/index.js";

View file

@ -1,6 +1,6 @@
import * as mfm from "mfm-js";
import type { Note } from "@/models/entities/note.js";
import { toHtml } from "../../../mfm/to-html.js";
import { toHtml } from "@/mfm/to-html.js";
export default function (note: Note) {
if (!note.text) return "";

View file

@ -1,6 +1,6 @@
import type { IObject } from "../type.js";
import { extractApHashtagObjects } from "../models/tag.js";
import { fromHtml } from "../../../mfm/from-html.js";
import { fromHtml } from "@/mfm/from-html.js";
export function htmlToMfm(html: string, tag?: IObject | IObject[]) {
const hashtagNames = extractApHashtagObjects(tag)

View file

@ -1,11 +1,10 @@
import { uploadFromUrl } from "@/services/drive/upload-from-url.js";
import type { CacheableRemoteUser } from "@/models/entities/user.js";
import { IRemoteUser } from "@/models/entities/user.js";
import Resolver from "../resolver.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
import { apLogger } from "../logger.js";
import type { DriveFile } from "@/models/entities/drive-file.js";
import { DriveFiles, Users } from "@/models/index.js";
import { DriveFiles } from "@/models/index.js";
import { truncate } from "@/misc/truncate.js";
import { DB_MAX_IMAGE_COMMENT_LENGTH } from "@/misc/hard-limits.js";

View file

@ -1,7 +1,6 @@
import promiseLimit from "promise-limit";
import { toArray, unique } from "@/prelude/array.js";
import type { CacheableUser } from "@/models/entities/user.js";
import { User } from "@/models/entities/user.js";
import type { IObject, IApMention } from "../type.js";
import { isMention } from "../type.js";
import Resolver from "../resolver.js";

View file

@ -6,10 +6,7 @@ import post from "@/services/note/create.js";
import { extractMentionedUsers } from "@/services/note/create.js";
import { resolvePerson } from "./person.js";
import { resolveImage } from "./image.js";
import type {
ILocalUser,
CacheableRemoteUser,
} from "@/models/entities/user.js";
import type { CacheableRemoteUser } from "@/models/entities/user.js";
import { htmlToMfm } from "../misc/html-to-mfm.js";
import { extractApHashtags } from "./tag.js";
import { unique, toArray, toSingle } from "@/prelude/array.js";
@ -52,7 +49,6 @@ import { In } from "typeorm";
import { DB_MAX_IMAGE_COMMENT_LENGTH } from "@/misc/hard-limits.js";
import { truncate } from "@/misc/truncate.js";
import { type Size, getEmojiSize } from "@/misc/emoji-meta.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
import { langmap } from "@/misc/langmap.js";
const logger = apLogger;

View file

@ -8,7 +8,6 @@ import { updateUsertags } from "@/services/update-hashtag.js";
import {
Users,
Instances,
DriveFiles,
Followings,
UserProfiles,
UserPublickeys,
@ -32,8 +31,8 @@ import { publishInternalEvent } from "@/services/stream.js";
import { db } from "@/db/postgre.js";
import { apLogger } from "../logger.js";
import { htmlToMfm } from "../misc/html-to-mfm.js";
import { fromHtml } from "../../../mfm/from-html.js";
import type { IActor, IObject, IApPropertyValue } from "../type.js";
import { fromHtml } from "@/mfm/from-html.js";
import type { IActor, IObject } from "../type.js";
import {
isCollectionOrOrderedCollection,
isCollection,
@ -312,7 +311,9 @@ export async function createPerson(
await transactionalEntityManager.save(
new UserProfile({
userId: user.id,
description: person.summary
description: person._misskey_summary
? truncate(person._misskey_summary, summaryLength)
: person.summary
? htmlToMfm(truncate(person.summary, summaryLength), person.tag)
: null,
url: url,

View file

@ -1,8 +1,5 @@
import config from "@/config/index.js";
import { IObject, IActivity } from "@/remote/activitypub/type.js";
import type { ILocalUser } from "@/models/entities/user.js";
import { IRemoteUser } from "@/models/entities/user.js";
import { getInstanceActor } from "@/services/instance-actor.js";
// to anonymise reporters, the reporting actor must be a system user
// object has to be a uri or array of uris

View file

@ -43,6 +43,7 @@ export const renderActivity = (x: any): IActivity | null => {
_misskey_talk: "misskey:_misskey_talk",
_misskey_reaction: "misskey:_misskey_reaction",
_misskey_votes: "misskey:_misskey_votes",
_misskey_summary: "misskey:_misskey_summary",
isCat: "misskey:isCat",
// Fedibird
fedibird: "http://fedibird.com/ns#",

View file

@ -74,6 +74,7 @@ export async function renderPerson(user: ILocalUser) {
summary: profile.description
? toHtml(mfm.parse(profile.description))
: null,
_misskey_summary: profile.description,
icon: avatar ? renderImage(avatar) : null,
image: banner ? renderImage(banner) : null,
tag,

View file

@ -1,6 +1,5 @@
import config from "@/config/index.js";
import type { User } from "@/models/entities/user.js";
import { ILocalUser } from "@/models/entities/user.js";
export default (object: any, user: { id: User["id"] }) => {
if (object == null) return null;

View file

@ -7,13 +7,7 @@ import { extractDbHost, isSelfHost } from "@/misc/convert-host.js";
import { signedGet } from "./request.js";
import type { IObject, ICollection, IOrderedCollection } from "./type.js";
import { isCollectionOrOrderedCollection, getApId } from "./type.js";
import {
FollowRequests,
Notes,
NoteReactions,
Polls,
Users,
} from "@/models/index.js";
import { Notes, NoteReactions, Polls, Users } from "@/models/index.js";
import { parseUri } from "./db-resolver.js";
import renderNote from "@/remote/activitypub/renderer/note.js";
import { renderLike } from "@/remote/activitypub/renderer/like.js";

View file

@ -205,6 +205,7 @@ export interface IActor extends IObject {
};
"vcard:bday"?: string;
"vcard:Address"?: string;
_misskey_summary?: string;
}
export const isCollection = (object: IObject): object is ICollection =>

View file

@ -9,7 +9,7 @@ import renderKey from "@/remote/activitypub/renderer/key.js";
import { renderPerson } from "@/remote/activitypub/renderer/person.js";
import renderEmoji from "@/remote/activitypub/renderer/emoji.js";
import { inbox as processInbox } from "@/queue/index.js";
import { isSelfHost, toPuny } from "@/misc/convert-host.js";
import { isSelfHost } from "@/misc/convert-host.js";
import {
Notes,
Users,
@ -22,7 +22,6 @@ import { renderLike } from "@/remote/activitypub/renderer/like.js";
import { getUserKeypair } from "@/misc/keypair-store.js";
import {
checkFetch,
hasSignature,
getSignatureUser,
} from "@/remote/activitypub/check-fetch.js";
import { getInstanceActor } from "@/services/instance-actor.js";

View file

@ -1,7 +1,6 @@
import { performance } from "perf_hooks";
import type Koa from "koa";
import type { CacheableLocalUser } from "@/models/entities/user.js";
import { User } from "@/models/entities/user.js";
import type { AccessToken } from "@/models/entities/access-token.js";
import { getIpHash } from "@/misc/get-ip-hash.js";
import { limiter } from "./limiter.js";
@ -10,7 +9,6 @@ import endpoints from "./endpoints.js";
import compatibility from "./compatibility.js";
import { ApiError } from "./error.js";
import { apiLogger } from "./logger.js";
import type { AccessToken } from "@/models/entities/access-token.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
const accessDenied = {

View file

@ -1,7 +1,6 @@
import * as fs from "node:fs";
import Ajv from "ajv";
import type { CacheableLocalUser } from "@/models/entities/user.js";
import { ILocalUser } from "@/models/entities/user.js";
import type { Schema, SchemaType } from "@/misc/schema.js";
import type { AccessToken } from "@/models/entities/access-token.js";
import type { IEndpointMeta } from "./endpoints.js";

View file

@ -1,6 +1,6 @@
import define from "../../define.js";
import define from "@/server/api/define.js";
import { AbuseUserReports } from "@/models/index.js";
import { makePaginationQuery } from "../../common/make-pagination-query.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Users } from "@/models/index.js";
import { signup } from "../../../common/signup.js";
import { signup } from "@/server/api/common/signup.js";
import { IsNull } from "typeorm";
export const meta = {

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Users } from "@/models/index.js";
import { doPostSuspend } from "@/services/suspend-user.js";
import { publishUserEvent } from "@/services/stream.js";

View file

@ -2,7 +2,7 @@ import config from "@/config/index.js";
import { Meta } from "@/models/entities/meta.js";
import { insertModerationLog } from "@/services/insert-moderation-log.js";
import { db } from "@/db/postgre.js";
import define from "../../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Ads } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Ads } from "@/models/index.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Ads } from "@/models/index.js";
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Ads } from "@/models/index.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Announcements } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Announcements } from "@/models/index.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,7 +1,7 @@
import { Announcements, AnnouncementReads } from "@/models/index.js";
import type { Announcement } from "@/models/entities/announcement.js";
import define from "../../../define.js";
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
import define from "@/server/api/define.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Announcements } from "@/models/index.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import { Users, UserProfiles } from "@/models/index.js";
import { publishMainStream } from "@/services/stream.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import { Users } from "@/models/index.js";
import { deleteAccount } from "@/services/delete-account.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,4 +1,4 @@
import define from "../../define.js";
import define from "@/server/api/define.js";
import { deleteFile } from "@/services/drive/delete-file.js";
import { DriveFiles } from "@/models/index.js";

View file

@ -1,6 +1,6 @@
import { Users, UserProfiles, UserSecurityKeys } from "@/models/index.js";
import { publishMainStream } from "@/services/stream.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,4 +1,4 @@
import define from "../../define.js";
import define from "@/server/api/define.js";
import { Users } from "@/models/index.js";
import { insertModerationLog } from "@/services/insert-moderation-log.js";
import { publishInternalEvent } from "@/services/stream.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { createCleanRemoteFilesJob } from "@/queue/index.js";
export const meta = {

View file

@ -1,5 +1,5 @@
import { IsNull } from "typeorm";
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { deleteFile } from "@/services/drive/delete-file.js";
import { DriveFiles } from "@/models/index.js";

View file

@ -1,6 +1,6 @@
import { DriveFiles } from "@/models/index.js";
import define from "../../../define.js";
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
import define from "@/server/api/define.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
export const meta = {
tags: ["admin"],

View file

@ -1,6 +1,6 @@
import { DriveFiles } from "@/models/index.js";
import define from "../../../define.js";
import { ApiError } from "../../../error.js";
import define from "@/server/api/define.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,7 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,8 +1,8 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis, DriveFiles } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";
import { insertModerationLog } from "@/services/insert-moderation-log.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
import rndstr from "rndstr";
import { publishBroadcastStream } from "@/services/stream.js";
import { db } from "@/db/postgre.js";

View file

@ -1,7 +1,7 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
import type { DriveFile } from "@/models/entities/drive-file.js";
import { uploadFromUrl } from "@/services/drive/upload-from-url.js";
import { publishBroadcastStream } from "@/services/stream.js";

View file

@ -1,8 +1,7 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { insertModerationLog } from "@/services/insert-moderation-log.js";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,7 +1,7 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { insertModerationLog } from "@/services/insert-moderation-log.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { createImportCustomEmojisJob } from "@/queue/index.js";
import { ApiError } from "../../../error.js";

View file

@ -1,7 +1,7 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { toPuny } from "@/misc/convert-host.js";
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
import { sqlLikeEscape } from "@/misc/sql-like-escape.js";
import { ApiError } from "../../../error.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { makePaginationQuery } from "../../../common/make-pagination-query.js";
import type { Emoji } from "@/models/entities/emoji.js";

View file

@ -1,7 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,7 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,7 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,7 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { In } from "typeorm";
import { ApiError } from "../../../error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Emojis } from "@/models/index.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { deleteFile } from "@/services/drive/delete-file.js";
import { DriveFiles } from "@/models/index.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Instances } from "@/models/index.js";
import { toPuny } from "@/misc/convert-host.js";
import { fetchInstanceMetadata } from "@/services/fetch-instance-metadata.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import deleteFollowing from "@/services/following/delete.js";
import { Followings, Users } from "@/models/index.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Instances } from "@/models/index.js";
import { toPuny } from "@/misc/convert-host.js";

View file

@ -1,4 +1,4 @@
import define from "../../define.js";
import define from "@/server/api/define.js";
import { db } from "@/db/postgre.js";
export const meta = {

View file

@ -1,5 +1,5 @@
import { db } from "@/db/postgre.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
requireCredential: true,

View file

@ -1,5 +1,5 @@
import { UserIps } from "@/models/index.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,5 +1,5 @@
import rndstr from "rndstr";
import define from "../../define.js";
import define from "@/server/api/define.js";
import { RegistrationTickets } from "@/models/index.js";
import { genId } from "@/misc/gen-id.js";

View file

@ -1,7 +1,7 @@
import config from "@/config/index.js";
import { fetchMeta } from "@/misc/fetch-meta.js";
import { MAX_NOTE_TEXT_LENGTH, MAX_CAPTION_TEXT_LENGTH } from "@/const.js";
import define from "../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["meta"],

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Users } from "@/models/index.js";
import { publishInternalEvent } from "@/services/stream.js";

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { Users } from "@/models/index.js";
import { publishInternalEvent } from "@/services/stream.js";

View file

@ -1,6 +1,6 @@
import define from "../../../define.js";
import { ApiError } from "../../../error.js";
import { getNote } from "../../../common/getters.js";
import define from "@/server/api/define.js";
import { ApiError } from "@/server/api/error.js";
import { getNote } from "@/server/api/common/getters.js";
import { PromoNotes } from "@/models/index.js";
export const meta = {

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { destroy } from "@/queue/index.js";
import { insertModerationLog } from "@/services/insert-moderation-log.js";

View file

@ -1,6 +1,6 @@
import { deliverQueue } from "@/queue/queues.js";
import { URL } from "node:url";
import define from "../../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,5 +1,5 @@
import { URL } from "node:url";
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { inboxQueue } from "@/queue/queues.js";
export const meta = {

View file

@ -5,7 +5,7 @@ import {
objectStorageQueue,
backgroundQueue,
} from "@/queue/queues.js";
import define from "../../../define.js";
import define from "@/server/api/define.js";
export const meta = {
tags: ["admin"],

View file

@ -1,7 +1,7 @@
import { URL } from "node:url";
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { addRelay } from "@/services/relay.js";
import { ApiError } from "../../../error.js";
import { ApiError } from "@/server/api/error.js";
export const meta = {
tags: ["admin"],

View file

@ -1,4 +1,4 @@
import define from "../../../define.js";
import define from "@/server/api/define.js";
import { listRelay } from "@/services/relay.js";
export const meta = {

Some files were not shown because too many files have changed in this diff Show more