Merge branch 'develop' into swn

This commit is contained in:
tamaina
2021-08-20 00:30:52 +09:00
752 changed files with 5003 additions and 3570 deletions

View File

@@ -1,5 +1,5 @@
import * as crypto from 'crypto';
import config from '@/config';
import config from '@/config/index';
import * as jsrsasign from 'jsrsasign';
const ECC_PRELUDE = Buffer.from([0x04]);

View File

@@ -1,7 +1,7 @@
import isNativeToken from './common/is-native-token';
import { User } from '../../models/entities/user';
import { Users, AccessTokens, Apps } from '../../models';
import { AccessToken } from '../../models/entities/access-token';
import { User } from '@/models/entities/user';
import { Users, AccessTokens, Apps } from '@/models/index';
import { AccessToken } from '@/models/entities/access-token';
export class AuthenticationError extends Error {
constructor(message: string) {

View File

@@ -1,10 +1,10 @@
import { performance } from 'perf_hooks';
import limiter from './limiter';
import { User } from '../../models/entities/user';
import { User } from '@/models/entities/user';
import endpoints from './endpoints';
import { ApiError } from './error';
import { apiLogger } from './logger';
import { AccessToken } from '../../models/entities/access-token';
import { AccessToken } from '@/models/entities/access-token';
const accessDenied = {
message: 'Access denied.',

View File

@@ -1,6 +1,29 @@
import { User } from '../../../models/entities/user';
import { Blockings } from '../../../models';
import { SelectQueryBuilder } from 'typeorm';
import { User } from '@/models/entities/user';
import { Blockings } from '@/models/index';
import { Brackets, SelectQueryBuilder } from 'typeorm';
// ここでいうBlockedは被Blockedの意
export function generateBlockedUserQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }) {
const blockingQuery = Blockings.createQueryBuilder('blocking')
.select('blocking.blockerId')
.where('blocking.blockeeId = :blockeeId', { blockeeId: me.id });
// 投稿の作者にブロックされていない かつ
// 投稿の返信先の作者にブロックされていない かつ
// 投稿の引用元の作者にブロックされていない
q
.andWhere(`note.userId NOT IN (${ blockingQuery.getQuery() })`)
.andWhere(new Brackets(qb => { qb
.where(`note.replyUserId IS NULL`)
.orWhere(`note.replyUserId NOT IN (${ blockingQuery.getQuery() })`);
}))
.andWhere(new Brackets(qb => { qb
.where(`note.renoteUserId IS NULL`)
.orWhere(`note.renoteUserId NOT IN (${ blockingQuery.getQuery() })`);
}));
q.setParameters(blockingQuery.getParameters());
}
export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: { id: User['id'] }) {
const blockingQuery = Blockings.createQueryBuilder('blocking')

View File

@@ -1,5 +1,5 @@
import { User } from '../../../models/entities/user';
import { ChannelFollowings } from '../../../models';
import { User } from '@/models/entities/user';
import { ChannelFollowings } from '@/models/index';
import { Brackets, SelectQueryBuilder } from 'typeorm';
export function generateChannelQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) {

View File

@@ -1,5 +1,5 @@
import { User } from '../../../models/entities/user';
import { MutedNotes } from '../../../models';
import { User } from '@/models/entities/user';
import { MutedNotes } from '@/models/index';
import { SelectQueryBuilder } from 'typeorm';
export function generateMutedNoteQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }) {

View File

@@ -1,5 +1,5 @@
import { User } from '../../../models/entities/user';
import { Mutings } from '../../../models';
import { User } from '@/models/entities/user';
import { Mutings } from '@/models/index';
import { SelectQueryBuilder, Brackets } from 'typeorm';
export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }, exclude?: User) {

View File

@@ -1,4 +1,4 @@
import { User } from '../../../models/entities/user';
import { User } from '@/models/entities/user';
import { Brackets, SelectQueryBuilder } from 'typeorm';
export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) {

View File

@@ -1,5 +1,5 @@
import { User } from '../../../models/entities/user';
import { Followings } from '../../../models';
import { User } from '@/models/entities/user';
import { Followings } from '@/models/index';
import { Brackets, SelectQueryBuilder } from 'typeorm';
export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) {

View File

@@ -1,7 +1,7 @@
import { IdentifiableError } from '@/misc/identifiable-error';
import { User } from '../../../models/entities/user';
import { Note } from '../../../models/entities/note';
import { Notes, Users } from '../../../models';
import { User } from '@/models/entities/user';
import { Note } from '@/models/entities/note';
import { Notes, Users } from '@/models/index';
/**
* Get note for API processing

View File

@@ -1,8 +1,9 @@
import rndstr from 'rndstr';
import { Note } from '../../../models/entities/note';
import { User } from '../../../models/entities/user';
import { Notes, UserProfiles, NoteReactions } from '../../../models';
import { Note } from '@/models/entities/note';
import { User } from '@/models/entities/user';
import { Notes, UserProfiles, NoteReactions } from '@/models/index';
import { generateMutedUserQuery } from './generate-muted-user-query';
import { generateBlockedUserQuery } from './generate-block-query';
// TODO: リアクション、Renote、返信などをしたートは除外する
@@ -29,6 +30,7 @@ export async function injectFeatured(timeline: Note[], user?: User | null) {
query.andWhere('note.userId != :userId', { userId: user.id });
generateMutedUserQuery(query, user);
generateBlockedUserQuery(query, user);
const reactionQuery = NoteReactions.createQueryBuilder('reaction')
.select('reaction.noteId')

View File

@@ -1,7 +1,7 @@
import rndstr from 'rndstr';
import { Note } from '../../../models/entities/note';
import { User } from '../../../models/entities/user';
import { PromoReads, PromoNotes, Notes, Users } from '../../../models';
import { Note } from '@/models/entities/note';
import { User } from '@/models/entities/user';
import { PromoReads, PromoNotes, Notes, Users } from '@/models/index';
export async function injectPromo(timeline: Note[], user?: User | null) {
if (timeline.length < 5) return;

View File

@@ -1,18 +1,18 @@
import { publishMainStream, publishGroupMessagingStream } from '../../../services/stream';
import { publishMessagingStream } from '../../../services/stream';
import { publishMessagingIndexStream } from '../../../services/stream';
import { pushNotification } from '../../../services/push-notification';
import { User, IRemoteUser } from '../../../models/entities/user';
import { MessagingMessage } from '../../../models/entities/messaging-message';
import { MessagingMessages, UserGroupJoinings, Users } from '../../../models';
import { publishMainStream, publishGroupMessagingStream } from '@/services/stream';
import { publishMessagingStream } from '@/services/stream';
import { publishMessagingIndexStream } from '@/services/stream';
import { pushNotification } from '@/services/push-notification';
import { User, IRemoteUser } from '@/models/entities/user';
import { MessagingMessage } from '@/models/entities/messaging-message';
import { MessagingMessages, UserGroupJoinings, Users } from '@/models/index';
import { In } from 'typeorm';
import { IdentifiableError } from '@/misc/identifiable-error';
import { UserGroup } from '../../../models/entities/user-group';
import { toArray } from '../../../prelude/array';
import { renderReadActivity } from '../../../remote/activitypub/renderer/read';
import { renderActivity } from '../../../remote/activitypub/renderer';
import { deliver } from '../../../queue';
import orderedCollection from '../../../remote/activitypub/renderer/ordered-collection';
import { UserGroup } from '@/models/entities/user-group';
import { toArray } from '@/prelude/array';
import { renderReadActivity } from '@/remote/activitypub/renderer/read';
import { renderActivity } from '@/remote/activitypub/renderer/index';
import { deliver } from '@/queue/index';
import orderedCollection from '@/remote/activitypub/renderer/ordered-collection';
/**
* Mark messages as read

View File

@@ -1,8 +1,8 @@
import { publishMainStream } from '../../../services/stream';
import { pushNotification } from '../../../services/push-notification';
import { User } from '../../../models/entities/user';
import { Notification } from '../../../models/entities/notification';
import { Notifications, Users } from '../../../models';
import { publishMainStream } from '@/services/stream';
import { pushNotification } from '@/services/push-notification';
import { User } from '@/models/entities/user';
import { Notification } from '@/models/entities/notification';
import { Notifications, Users } from '@/models/index';
import { In } from 'typeorm';
export async function readNotification(

View File

@@ -1,10 +1,10 @@
import * as Koa from 'koa';
import config from '@/config';
import { ILocalUser } from '../../../models/entities/user';
import { Signins } from '../../../models';
import config from '@/config/index';
import { ILocalUser } from '@/models/entities/user';
import { Signins } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { publishMainStream } from '../../../services/stream';
import { publishMainStream } from '@/services/stream';
export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) {
if (redirect) {

View File

@@ -1,15 +1,15 @@
import * as bcrypt from 'bcryptjs';
import { generateKeyPair } from 'crypto';
import generateUserToken from './generate-native-user-token';
import { User } from '../../../models/entities/user';
import { Users, UsedUsernames } from '../../../models';
import { UserProfile } from '../../../models/entities/user-profile';
import { User } from '@/models/entities/user';
import { Users, UsedUsernames } from '@/models/index';
import { UserProfile } from '@/models/entities/user-profile';
import { getConnection } from 'typeorm';
import { genId } from '@/misc/gen-id';
import { toPunyNullable } from '@/misc/convert-host';
import { UserKeypair } from '../../../models/entities/user-keypair';
import { usersChart } from '../../../services/chart';
import { UsedUsername } from '../../../models/entities/used-username';
import { UserKeypair } from '@/models/entities/user-keypair';
import { usersChart } from '@/services/chart/index';
import { UsedUsername } from '@/models/entities/used-username';
export async function signup(username: User['username'], password: UserProfile['password'], host: string | null = null) {
// Validate username

View File

@@ -1,9 +1,9 @@
import * as fs from 'fs';
import { ILocalUser } from '../../models/entities/user';
import { ILocalUser } from '@/models/entities/user';
import { IEndpointMeta } from './endpoints';
import { ApiError } from './error';
import { SchemaType } from '@/misc/schema';
import { AccessToken } from '../../models/entities/access-token';
import { AccessToken } from '@/models/entities/access-token';
type NonOptional<T> = T extends undefined ? never : T;

View File

@@ -1,8 +1,14 @@
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import { Context } from 'cafy';
import * as path from 'path';
import * as glob from 'glob';
import { Schema } from '@/misc/schema';
//const _filename = fileURLToPath(import.meta.url);
const _filename = __filename;
const _dirname = dirname(_filename);
export type Param = {
validator: Context<any>;
transform?: any;
@@ -102,7 +108,7 @@ export interface IEndpoint {
}
const files = glob.sync('**/*.js', {
cwd: path.resolve(__dirname + '/endpoints/')
cwd: path.resolve(_dirname + '/endpoints/')
});
const endpoints: IEndpoint[] = files.map(f => {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { AbuseUserReports } from '../../../../models';
import { AbuseUserReports } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {

View File

@@ -1,5 +1,5 @@
import define from '../../../define';
import { Users } from '../../../../../models';
import { Users } from '@/models/index';
import { signup } from '../../../common/signup';
export const meta = {

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { Ads } from '../../../../../models';
import { Ads } from '@/models/index';
import { genId } from '@/misc/gen-id';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Ads } from '../../../../../models';
import { Ads } from '@/models/index';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Ads } from '../../../../../models';
import { Ads } from '@/models/index';
import { makePaginationQuery } from '../../../common/make-pagination-query';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Ads } from '../../../../../models';
import { Ads } from '@/models/index';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { Announcements } from '../../../../../models';
import { Announcements } from '@/models/index';
import { genId } from '@/misc/gen-id';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Announcements } from '../../../../../models';
import { Announcements } from '@/models/index';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Announcements, AnnouncementReads } from '../../../../../models';
import { Announcements, AnnouncementReads } from '@/models/index';
import { makePaginationQuery } from '../../../common/make-pagination-query';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Announcements } from '../../../../../models';
import { Announcements } from '@/models/index';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { deleteFile } from '../../../../services/drive/delete-file';
import { DriveFiles } from '../../../../models';
import { deleteFile } from '@/services/drive/delete-file';
import { DriveFiles } from '@/models/index';
import { ID } from '@/misc/cafy-id';
export const meta = {

View File

@@ -1,5 +1,5 @@
import define from '../../define';
import { Logs } from '../../../../models';
import { Logs } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,5 +1,5 @@
import define from '../../../define';
import { createCleanRemoteFilesJob } from '../../../../../queue';
import { createCleanRemoteFilesJob } from '@/queue/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import { IsNull } from 'typeorm';
import define from '../../../define';
import { deleteFile } from '../../../../../services/drive/delete-file';
import { DriveFiles } from '../../../../../models';
import { deleteFile } from '@/services/drive/delete-file';
import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';
import { DriveFiles } from '@/models/index';
import { makePaginationQuery } from '../../../common/make-pagination-query';
import { ID } from '@/misc/cafy-id';

View File

@@ -2,7 +2,7 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFiles } from '../../../../../models';
import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,13 +1,13 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis, DriveFiles } from '../../../../../models';
import { Emojis, DriveFiles } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { getConnection } from 'typeorm';
import { insertModerationLog } from '../../../../../services/insert-moderation-log';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { ApiError } from '../../../error';
import { ID } from '@/misc/cafy-id';
import rndstr from 'rndstr';
import { publishBroadcastStream } from '../../../../../services/stream';
import { publishBroadcastStream } from '@/services/stream';
export const meta = {
tags: ['admin'],

View File

@@ -1,12 +1,12 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis } from '../../../../../models';
import { Emojis } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { getConnection } from 'typeorm';
import { ApiError } from '../../../error';
import { DriveFile } from '../../../../../models/entities/drive-file';
import { DriveFile } from '@/models/entities/drive-file';
import { ID } from '@/misc/cafy-id';
import uploadFromUrl from '../../../../../services/drive/upload-from-url';
import uploadFromUrl from '@/services/drive/upload-from-url';
import { publishBroadcastStream } from '@/services/stream';
export const meta = {

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis } from '../../../../../models';
import { Emojis } from '@/models/index';
import { toPuny } from '@/misc/convert-host';
import { makePaginationQuery } from '../../../common/make-pagination-query';
import { ID } from '@/misc/cafy-id';

View File

@@ -1,9 +1,9 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis } from '../../../../../models';
import { Emojis } from '@/models/index';
import { makePaginationQuery } from '../../../common/make-pagination-query';
import { ID } from '@/misc/cafy-id';
import { Emoji } from '../../../../../models/entities/emoji';
import { Emoji } from '@/models/entities/emoji';
export const meta = {
tags: ['admin'],

View File

@@ -1,9 +1,9 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Emojis } from '../../../../../models';
import { Emojis } from '@/models/index';
import { getConnection } from 'typeorm';
import { insertModerationLog } from '../../../../../services/insert-moderation-log';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '@/misc/cafy-id';
import { Emojis } from '../../../../../models';
import { Emojis } from '@/models/index';
import { getConnection } from 'typeorm';
import { ApiError } from '../../../error';

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { deleteFile } from '../../../../../services/drive/delete-file';
import { DriveFiles } from '../../../../../models';
import { deleteFile } from '@/services/drive/delete-file';
import { DriveFiles } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import define from '../../../define';
import { Instances } from '../../../../../models';
import { Instances } from '@/models/index';
import { toPuny } from '@/misc/convert-host';
import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata';
import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import deleteFollowing from '../../../../../services/following/delete';
import { Followings, Users } from '../../../../../models';
import deleteFollowing from '@/services/following/delete';
import { Followings, Users } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { Instances } from '../../../../../models';
import { Instances } from '@/models/index';
import { toPuny } from '@/misc/convert-host';
export const meta = {

View File

@@ -1,6 +1,6 @@
import rndstr from 'rndstr';
import define from '../../define';
import { RegistrationTickets } from '../../../../models';
import { RegistrationTickets } from '@/models/index';
import { genId } from '@/misc/gen-id';
export const meta = {

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
import { Logs } from '../../../../models';
import { Logs } from '@/models/index';
import { Brackets } from 'typeorm';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Users } from '../../../../../models';
import { Users } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Users } from '../../../../../models';
import { Users } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { getNote } from '../../../common/getters';
import { PromoNotes } from '../../../../../models';
import { PromoNotes } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import define from '../../../define';
import { destroy } from '../../../../../queue';
import { insertModerationLog } from '../../../../../services/insert-moderation-log';
import { destroy } from '@/queue/index';
import { insertModerationLog } from '@/services/insert-moderation-log';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import { URL } from 'url';
import define from '../../../define';
import { inboxQueue } from '../../../../../queue';
import { inboxQueue } from '@/queue/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import { URL } from 'url';
import $ from 'cafy';
import define from '../../../define';
import { addRelay } from '../../../../../services/relay';
import { addRelay } from '@/services/relay';
import { ApiError } from '../../../error';
export const meta = {

View File

@@ -1,5 +1,5 @@
import define from '../../../define';
import { listRelay } from '../../../../../services/relay';
import { listRelay } from '@/services/relay';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { removeRelay } from '../../../../../services/relay';
import { removeRelay } from '@/services/relay';
export const meta = {
tags: ['admin'],

View File

@@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id';
import define from '../../define';
import * as bcrypt from 'bcryptjs';
import rndstr from 'rndstr';
import { Users, UserProfiles } from '../../../../models';
import { Users, UserProfiles } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { AbuseUserReports } from '../../../../models';
import { AbuseUserReports } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import define from '../../define';
import { driveChart, notesChart, usersChart, instanceChart } from '../../../../services/chart';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { driveChart, notesChart, usersChart, instanceChart } from '@/services/chart/index';
import { insertModerationLog } from '@/services/insert-moderation-log';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
import { sendEmail } from '../../../../services/send-email';
import { sendEmail } from '@/services/send-email';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ModerationLogs } from '../../../../models';
import { ModerationLogs } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { Users } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
import { Users } from '../../../../models';
import { Users } from '@/models/index';
export const meta = {
tags: ['admin'],

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { Users } from '@/models/index';
import { insertModerationLog } from '@/services/insert-moderation-log';
export const meta = {
tags: ['admin'],

View File

@@ -1,11 +1,11 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import deleteFollowing from '../../../../services/following/delete';
import { Users, Followings, Notifications } from '../../../../models';
import { User } from '../../../../models/entities/user';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { doPostSuspend } from '../../../../services/suspend-user';
import deleteFollowing from '@/services/following/delete';
import { Users, Followings, Notifications } from '@/models/index';
import { User } from '@/models/entities/user';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { doPostSuspend } from '@/services/suspend-user';
import { publishUserEvent } from '@/services/stream';
export const meta = {

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { Users } from '@/models/index';
import { insertModerationLog } from '@/services/insert-moderation-log';
export const meta = {
tags: ['admin'],

View File

@@ -1,9 +1,9 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { doPostUnsuspend } from '../../../../services/unsuspend-user';
import { Users } from '@/models/index';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { doPostUnsuspend } from '@/services/unsuspend-user';
export const meta = {
tags: ['admin'],

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import define from '../../define';
import { getConnection } from 'typeorm';
import { Meta } from '../../../../models/entities/meta';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { Meta } from '@/models/entities/meta';
import { insertModerationLog } from '@/services/insert-moderation-log';
import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits';
import { ID } from '@/misc/cafy-id';
@@ -145,6 +145,10 @@ export const meta = {
validator: $.optional.nullable.str,
},
deeplAuthKey: {
validator: $.optional.nullable.str,
},
enableTwitterIntegration: {
validator: $.optional.bool,
},
@@ -562,6 +566,14 @@ export default define(meta, async (ps, me) => {
set.objectStorageS3ForcePathStyle = ps.objectStorageS3ForcePathStyle;
}
if (ps.deeplAuthKey !== undefined) {
if (ps.deeplAuthKey === '') {
set.deeplAuthKey = null;
} else {
set.deeplAuthKey = ps.deeplAuthKey;
}
}
await getConnection().transaction(async transactionalEntityManager => {
const meta = await transactionalEntityManager.findOne(Meta, {
order: {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { getConnection } from 'typeorm';
import { insertModerationLog } from '../../../../services/insert-moderation-log';
import { insertModerationLog } from '@/services/insert-moderation-log';
export const meta = {
tags: ['admin'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../define';
import { Announcements, AnnouncementReads } from '../../../models';
import { Announcements, AnnouncementReads } from '@/models/index';
import { makePaginationQuery } from '../common/make-pagination-query';
export const meta = {

View File

@@ -1,10 +1,10 @@
import $ from 'cafy';
import define from '../../define';
import { genId } from '@/misc/gen-id';
import { Antennas, UserLists, UserGroupJoinings } from '../../../../models';
import { Antennas, UserLists, UserGroupJoinings } from '@/models/index';
import { ID } from '@/misc/cafy-id';
import { ApiError } from '../../error';
import { publishInternalEvent } from '../../../../services/stream';
import { publishInternalEvent } from '@/services/stream';
export const meta = {
tags: ['antennas'],

View File

@@ -2,8 +2,8 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas } from '../../../../models';
import { publishInternalEvent } from '../../../../services/stream';
import { Antennas } from '@/models/index';
import { publishInternalEvent } from '@/services/stream';
export const meta = {
tags: ['antennas'],

View File

@@ -1,5 +1,5 @@
import define from '../../define';
import { Antennas } from '../../../../models';
import { Antennas } from '@/models/index';
export const meta = {
tags: ['antennas', 'account'],

View File

@@ -1,11 +1,12 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Antennas, Notes, AntennaNotes } from '../../../../models';
import { Antennas, Notes, AntennaNotes } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { generateMutedUserQuery } from '../../common/generate-muted-user-query';
import { ApiError } from '../../error';
import { generateBlockedUserQuery } from '../../common/generate-block-query';
export const meta = {
tags: ['antennas', 'account', 'notes'],
@@ -77,6 +78,7 @@ export default define(meta, async (ps, user) => {
generateVisibilityQuery(query, user);
generateMutedUserQuery(query, user);
generateBlockedUserQuery(query, user);
const notes = await query
.take(ps.limit!)

View File

@@ -2,7 +2,7 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas } from '../../../../models';
import { Antennas } from '@/models/index';
export const meta = {
tags: ['antennas', 'account'],

View File

@@ -2,8 +2,8 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas, UserLists, UserGroupJoinings } from '../../../../models';
import { publishInternalEvent } from '../../../../services/stream';
import { Antennas, UserLists, UserGroupJoinings } from '@/models/index';
import { publishInternalEvent } from '@/services/stream';
export const meta = {
tags: ['antennas'],

View File

@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
import Resolver from '../../../../remote/activitypub/resolver';
import Resolver from '@/remote/activitypub/resolver';
import { ApiError } from '../../error';
export const meta = {

View File

@@ -1,16 +1,16 @@
import $ from 'cafy';
import define from '../../define';
import config from '@/config';
import { createPerson } from '../../../../remote/activitypub/models/person';
import { createNote } from '../../../../remote/activitypub/models/note';
import Resolver from '../../../../remote/activitypub/resolver';
import config from '@/config/index';
import { createPerson } from '@/remote/activitypub/models/person';
import { createNote } from '@/remote/activitypub/models/note';
import Resolver from '@/remote/activitypub/resolver';
import { ApiError } from '../../error';
import { extractDbHost } from '@/misc/convert-host';
import { Users, Notes } from '../../../../models';
import { Note } from '../../../../models/entities/note';
import { User } from '../../../../models/entities/user';
import { Users, Notes } from '@/models/index';
import { Note } from '@/models/entities/note';
import { User } from '@/models/entities/user';
import { fetchMeta } from '@/misc/fetch-meta';
import { isActor, isPost, getApId } from '../../../../remote/activitypub/type';
import { isActor, isPost, getApId } from '@/remote/activitypub/type';
export const meta = {
tags: ['federation'],

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import define from '../../define';
import { Apps } from '../../../../models';
import { Apps } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { unique } from '../../../../prelude/array';
import { unique } from '@/prelude/array';
import { secureRndstr } from '@/misc/secure-rndstr';
export const meta = {

View File

@@ -2,7 +2,7 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Apps } from '../../../../models';
import { Apps } from '@/models/index';
export const meta = {
tags: ['app'],

View File

@@ -2,7 +2,7 @@ import * as crypto from 'crypto';
import $ from 'cafy';
import define from '../../define';
import { ApiError } from '../../error';
import { AuthSessions, AccessTokens, Apps } from '../../../../models';
import { AuthSessions, AccessTokens, Apps } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { secureRndstr } from '@/misc/secure-rndstr';

View File

@@ -1,9 +1,9 @@
import { v4 as uuid } from 'uuid';
import $ from 'cafy';
import config from '@/config';
import config from '@/config/index';
import define from '../../../define';
import { ApiError } from '../../../error';
import { Apps, AuthSessions } from '../../../../../models';
import { Apps, AuthSessions } from '@/models/index';
import { genId } from '@/misc/gen-id';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ApiError } from '../../../error';
import { AuthSessions } from '../../../../../models';
import { AuthSessions } from '@/models/index';
export const meta = {
tags: ['auth'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { ApiError } from '../../../error';
import { Apps, AuthSessions, AccessTokens, Users } from '../../../../../models';
import { Apps, AuthSessions, AccessTokens, Users } from '@/models/index';
export const meta = {
tags: ['auth'],

View File

@@ -1,11 +1,11 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import create from '../../../../services/blocking/create';
import create from '@/services/blocking/create';
import define from '../../define';
import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
import { Blockings, NoteWatchings, Users } from '../../../../models';
import { Blockings, NoteWatchings, Users } from '@/models/index';
export const meta = {
tags: ['account'],

View File

@@ -1,11 +1,11 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import deleteBlocking from '../../../../services/blocking/delete';
import deleteBlocking from '@/services/blocking/delete';
import define from '../../define';
import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
import { Blockings, Users } from '../../../../models';
import { Blockings, Users } from '@/models/index';
export const meta = {
tags: ['account'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Blockings } from '../../../../models';
import { Blockings } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {

View File

@@ -1,8 +1,8 @@
import $ from 'cafy';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, DriveFiles } from '../../../../models';
import { Channel } from '../../../../models/entities/channel';
import { Channels, DriveFiles } from '@/models/index';
import { Channel } from '@/models/entities/channel';
import { genId } from '@/misc/gen-id';
import { ID } from '@/misc/cafy-id';

View File

@@ -1,5 +1,5 @@
import define from '../../define';
import { Channels } from '../../../../models';
import { Channels } from '@/models/index';
export const meta = {
tags: ['channels'],

View File

@@ -2,9 +2,9 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, ChannelFollowings } from '../../../../models';
import { Channels, ChannelFollowings } from '@/models/index';
import { genId } from '@/misc/gen-id';
import { publishUserEvent } from '../../../../services/stream';
import { publishUserEvent } from '@/services/stream';
export const meta = {
tags: ['channels'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Channels, ChannelFollowings } from '../../../../models';
import { Channels, ChannelFollowings } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Channels } from '../../../../models';
import { Channels } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
export const meta = {

View File

@@ -2,7 +2,7 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels } from '../../../../models';
import { Channels } from '@/models/index';
export const meta = {
tags: ['channels'],

View File

@@ -2,9 +2,9 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Notes, Channels } from '../../../../models';
import { Notes, Channels } from '@/models/index';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { activeUsersChart } from '../../../../services/chart';
import { activeUsersChart } from '@/services/chart/index';
export const meta = {
tags: ['notes', 'channels'],

View File

@@ -2,8 +2,8 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, ChannelFollowings } from '../../../../models';
import { publishUserEvent } from '../../../../services/stream';
import { Channels, ChannelFollowings } from '@/models/index';
import { publishUserEvent } from '@/services/stream';
export const meta = {
tags: ['channels'],

View File

@@ -2,7 +2,7 @@ import $ from 'cafy';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, DriveFiles } from '../../../../models';
import { Channels, DriveFiles } from '@/models/index';
export const meta = {
tags: ['channels'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { activeUsersChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { activeUsersChart } from '@/services/chart/index';
export const meta = {
tags: ['charts', 'users'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { driveChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { driveChart } from '@/services/chart/index';
export const meta = {
tags: ['charts', 'drive'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { federationChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { federationChart } from '@/services/chart/index';
export const meta = {
tags: ['charts'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { hashtagChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { hashtagChart } from '@/services/chart/index';
export const meta = {
tags: ['charts', 'hashtags'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { instanceChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { instanceChart } from '@/services/chart/index';
export const meta = {
tags: ['charts'],

View File

@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { convertLog } from '../../../../services/chart/core';
import { networkChart } from '../../../../services/chart';
import { convertLog } from '@/services/chart/core';
import { networkChart } from '@/services/chart/index';
export const meta = {
tags: ['charts'],

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