Merge branch 'develop' into sw-notification-action

This commit is contained in:
tamaina 2021-03-23 21:25:39 +09:00
commit f2b5118bda
783 changed files with 5464 additions and 3649 deletions

View file

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

View file

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

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { Announcements } from '../../../../../models';
import { ApiError } from '../../../error';

View file

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

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { Announcements } from '../../../../../models';
import { ApiError } from '../../../error';

View file

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

View file

@ -14,5 +14,5 @@ export const meta = {
};
export default define(meta, async (ps) => {
await Logs.delete({});
await Logs.clear(); // TRUNCATE
});

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFiles } from '../../../../../models';

View file

@ -1,11 +1,11 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis, DriveFiles } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
import { getConnection } from 'typeorm';
import { insertModerationLog } from '../../../../../services/insert-moderation-log';
import { ApiError } from '../../../error';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import rndstr from 'rndstr';
import { publishBroadcastStream } from '../../../../../services/stream';

View file

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

View file

@ -1,9 +1,9 @@
import $ from 'cafy';
import define from '../../../define';
import { Emojis } from '../../../../../models';
import { toPuny } from '../../../../../misc/convert-host';
import { toPuny } from '@/misc/convert-host';
import { makePaginationQuery } from '../../../common/make-pagination-query';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
export const meta = {
desc: {

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import define from '../../../define';
import { Emojis } from '../../../../../models';
import { makePaginationQuery } from '../../../common/make-pagination-query';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { Emoji } from '../../../../../models/entities/emoji';
export const meta = {

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { Emojis } from '../../../../../models';
import { getConnection } from 'typeorm';
import { insertModerationLog } from '../../../../../services/insert-moderation-log';

View file

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

View file

@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { Instances } from '../../../../../models';
import { toPuny } from '../../../../../misc/convert-host';
import { toPuny } from '@/misc/convert-host';
import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata';
export const meta = {

View file

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

View file

@ -1,7 +1,7 @@
import rndstr from 'rndstr';
import define from '../../define';
import { RegistrationTickets } from '../../../../models';
import { genId } from '../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
export const meta = {
desc: {
@ -38,7 +38,7 @@ export default define(meta, async () => {
chars: '2-9A-HJ-NP-Z', // [0-9A-Z] w/o [01IO] (32 patterns)
});
await RegistrationTickets.save({
await RegistrationTickets.insert({
id: genId(),
createdAt: new Date(),
code,

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Users } from '../../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { Users } from '../../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { getNote } from '../../../common/getters';
@ -53,7 +53,7 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.alreadyPromoted);
}
await PromoNotes.save({
await PromoNotes.insert({
noteId: note.id,
createdAt: new Date(),
expiresAt: new Date(ps.expiresAt),

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import * as bcrypt from 'bcryptjs';
import rndstr from 'rndstr';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { AbuseUserReports } from '../../../../models';

View file

@ -2,7 +2,7 @@ import * as os from 'os';
import * as si from 'systeminformation';
import { getConnection } from 'typeorm';
import define from '../../define';
import redis from '../../../../db/redis';
import { redisClient } from '../../../../db/redis';
export const meta = {
requireCredential: true as const,
@ -115,7 +115,7 @@ export default define(meta, async () => {
os: os.platform(),
node: process.version,
psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version),
redis: redis.server_info.redis_version,
redis: redisClient.server_info.redis_version,
cpu: {
model: os.cpus()[0].model,
cores: os.cpus().length

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import deleteFollowing from '../../../../services/following/delete';
import { Users, Followings, Notifications } from '../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Users } from '../../../../models';
import { insertModerationLog } from '../../../../services/insert-moderation-log';

View file

@ -3,8 +3,8 @@ import define from '../../define';
import { getConnection } from 'typeorm';
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';
import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits';
import { ID } from '@/misc/cafy-id';
export const meta = {
desc: {

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { getRemoteUser } from '../../common/getters';
import { updatePerson } from '../../../../remote/activitypub/models/person';

View file

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

View file

@ -1,9 +1,10 @@
import $ from 'cafy';
import define from '../../define';
import { genId } from '../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
import { Antennas, UserLists, UserGroupJoinings } from '../../../../models';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { ApiError } from '../../error';
import { publishInternalEvent } from '../../../../services/stream';
export const meta = {
desc: {
@ -108,7 +109,7 @@ export default define(meta, async (ps, user) => {
}
}
const antenna = await Antennas.save({
const antenna = await Antennas.insert({
id: genId(),
createdAt: new Date(),
userId: user.id,
@ -123,7 +124,9 @@ export default define(meta, async (ps, user) => {
withReplies: ps.withReplies,
withFile: ps.withFile,
notify: ps.notify,
});
}).then(x => Antennas.findOneOrFail(x.identifiers[0]));
publishInternalEvent('antennaCreated', antenna);
return await Antennas.pack(antenna);
});

View file

@ -1,8 +1,9 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas } from '../../../../models';
import { publishInternalEvent } from '../../../../services/stream';
export const meta = {
desc: {
@ -42,4 +43,6 @@ export default define(meta, async (ps, user) => {
}
await Antennas.delete(antenna.id);
publishInternalEvent('antennaDeleted', antenna);
});

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { Antennas, Notes, AntennaNotes } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
@ -73,7 +73,11 @@ export default define(meta, async (ps, user) => {
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
.andWhere(`note.id IN (${ antennaQuery.getQuery() })`)
.leftJoinAndSelect('note.user', 'user')
.innerJoinAndSelect('note.user', 'user')
.leftJoinAndSelect('note.reply', 'reply')
.leftJoinAndSelect('note.renote', 'renote')
.leftJoinAndSelect('reply.user', 'replyUser')
.leftJoinAndSelect('renote.user', 'renoteUser')
.setParameters(antennaQuery.getParameters());
generateVisibilityQuery(query, user);

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Antennas } from '../../../../models';

View file

@ -1,8 +1,9 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
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';
export const meta = {
desc: {
@ -141,5 +142,7 @@ export default define(meta, async (ps, user) => {
notify: ps.notify,
});
publishInternalEvent('antennaUpdated', Antennas.findOneOrFail(antenna.id));
return await Antennas.pack(antenna.id);
});

View file

@ -1,15 +1,15 @@
import $ from 'cafy';
import define from '../../define';
import config from '../../../../config';
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 { ApiError } from '../../error';
import { extractDbHost } from '../../../../misc/convert-host';
import { extractDbHost } from '@/misc/convert-host';
import { Users, Notes } from '../../../../models';
import { Note } from '../../../../models/entities/note';
import { User } from '../../../../models/entities/user';
import { fetchMeta } from '../../../../misc/fetch-meta';
import { fetchMeta } from '@/misc/fetch-meta';
import { validActor, validPost } from '../../../../remote/activitypub/type';
export const meta = {

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Apps } from '../../../../models';

View file

@ -3,8 +3,8 @@ import $ from 'cafy';
import define from '../../define';
import { ApiError } from '../../error';
import { AuthSessions, AccessTokens, Apps } from '../../../../models';
import { genId } from '../../../../misc/gen-id';
import { secureRndstr } from '../../../../misc/secure-rndstr';
import { genId } from '@/misc/gen-id';
import { secureRndstr } from '@/misc/secure-rndstr';
export const meta = {
tags: ['auth'],
@ -58,7 +58,7 @@ export default define(meta, async (ps, user) => {
const now = new Date();
// Insert access token doc
await AccessTokens.save({
await AccessTokens.insert({
id: genId(),
createdAt: now,
lastUsedAt: now,

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import create from '../../../../services/blocking/create';
import define from '../../define';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import deleteBlocking from '../../../../services/blocking/delete';
import define from '../../define';

View file

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

View file

@ -3,8 +3,8 @@ import define from '../../define';
import { ApiError } from '../../error';
import { Channels, DriveFiles } from '../../../../models';
import { Channel } from '../../../../models/entities/channel';
import { genId } from '../../../../misc/gen-id';
import { ID } from '../../../../misc/cafy-id';
import { genId } from '@/misc/gen-id';
import { ID } from '@/misc/cafy-id';
export const meta = {
tags: ['channels'],

View file

@ -1,9 +1,10 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, ChannelFollowings } from '../../../../models';
import { genId } from '../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
import { publishUserEvent } from '../../../../services/stream';
export const meta = {
tags: ['channels'],
@ -36,10 +37,12 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.noSuchChannel);
}
await ChannelFollowings.save({
await ChannelFollowings.insert({
id: genId(),
createdAt: new Date(),
followerId: user.id,
followeeId: channel.id,
});
publishUserEvent(user.id, 'followChannel', channel);
});

View file

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

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels } from '../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Notes, Channels } from '../../../../models';
@ -87,7 +87,11 @@ export default define(meta, async (ps, user) => {
//#region Construct query
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId, ps.sinceDate, ps.untilDate)
.andWhere('note.channelId = :channelId', { channelId: channel.id })
.leftJoinAndSelect('note.user', 'user')
.innerJoinAndSelect('note.user', 'user')
.leftJoinAndSelect('note.reply', 'reply')
.leftJoinAndSelect('note.renote', 'renote')
.leftJoinAndSelect('reply.user', 'replyUser')
.leftJoinAndSelect('renote.user', 'renoteUser')
.leftJoinAndSelect('note.channel', 'channel');
//#endregion

View file

@ -1,8 +1,9 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, ChannelFollowings } from '../../../../models';
import { publishUserEvent } from '../../../../services/stream';
export const meta = {
tags: ['channels'],
@ -39,4 +40,6 @@ export default define(meta, async (ps, user) => {
followerId: user.id,
followeeId: channel.id,
});
publishUserEvent(user.id, 'unfollowChannel', channel);
});

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Channels, DriveFiles } from '../../../../models';

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { convertLog } from '../../../../../services/chart/core';
import { perUserDriveChart } from '../../../../../services/chart';

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { convertLog } from '../../../../../services/chart/core';
import { perUserFollowingChart } from '../../../../../services/chart';

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { convertLog } from '../../../../../services/chart/core';
import { perUserNotesChart } from '../../../../../services/chart';

View file

@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../../define';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { convertLog } from '../../../../../services/chart/core';
import { perUserReactionsChart } from '../../../../../services/chart';

View file

@ -1,9 +1,9 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ClipNotes, Clips } from '../../../../models';
import { ApiError } from '../../error';
import { genId } from '../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
import { getNote } from '../../common/getters';
export const meta = {
@ -68,7 +68,7 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.alreadyClipped);
}
await ClipNotes.save({
await ClipNotes.insert({
id: genId(),
noteId: note.id,
clipId: clip.id

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Clips } from '../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ClipNotes, Clips, Notes } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
@ -71,7 +71,11 @@ export default define(meta, async (ps, user) => {
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
.andWhere(`note.id IN (${ clipQuery.getQuery() })`)
.leftJoinAndSelect('note.user', 'user')
.innerJoinAndSelect('note.user', 'user')
.leftJoinAndSelect('note.reply', 'reply')
.leftJoinAndSelect('note.renote', 'renote')
.leftJoinAndSelect('reply.user', 'replyUser')
.leftJoinAndSelect('renote.user', 'renoteUser')
.setParameters(clipQuery.getParameters());
if (user) {

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Clips } from '../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Clips } from '../../../../models';

View file

@ -1,5 +1,5 @@
import define from '../define';
import { fetchMeta } from '../../../misc/fetch-meta';
import { fetchMeta } from '@/misc/fetch-meta';
import { DriveFiles } from '../../../models';
export const meta = {

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFiles, Notes } from '../../../../../models';

View file

@ -1,6 +1,6 @@
import * as ms from 'ms';
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import create from '../../../../../services/drive/add-file';
import define from '../../../define';
import { apiLogger } from '../../../logger';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { deleteFile } from '../../../../../services/drive/delete-file';
import { publishDriveStream } from '../../../../../services/stream';
import define from '../../../define';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFile } from '../../../../../models/entities/drive-file';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { publishDriveStream } from '../../../../../services/stream';
import define from '../../../define';
import { ApiError } from '../../../error';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import uploadFromUrl from '../../../../../services/drive/upload-from-url';
import define from '../../../define';

View file

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

View file

@ -1,10 +1,10 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { publishDriveStream } from '../../../../../services/stream';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFolders } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
export const meta = {
desc: {

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { publishDriveStream } from '../../../../../services/stream';
import { ApiError } from '../../../error';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { DriveFolders } from '../../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFolders } from '../../../../../models';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { publishDriveStream } from '../../../../../services/stream';
import define from '../../../define';
import { ApiError } from '../../../error';

View file

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

View file

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

View file

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

View file

@ -1,8 +1,8 @@
import $ from 'cafy';
import config from '../../../../config';
import config from '@/config';
import define from '../../define';
import { Instances } from '../../../../models';
import { fetchMeta } from '../../../../misc/fetch-meta';
import { fetchMeta } from '@/misc/fetch-meta';
export const meta = {
tags: ['federation'],

View file

@ -1,8 +1,8 @@
import $ from 'cafy';
import define from '../../define';
import { Instances } from '../../../../models';
import { toPuny } from '../../../../misc/convert-host';
import config from '../../../../config';
import { toPuny } from '@/misc/convert-host';
import config from '@/config';
export const meta = {
tags: ['federation'],

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import create from '../../../../services/following/create';
import define from '../../define';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import * as ms from 'ms';
import deleteFollowing from '../../../../services/following/delete';
import define from '../../define';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import acceptFollowRequest from '../../../../../services/following/requests/accept';
import define from '../../../define';
import { ApiError } from '../../../error';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import cancelFollowRequest from '../../../../../services/following/requests/cancel';
import define from '../../../define';
import { ApiError } from '../../../error';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import rejectFollowRequest from '../../../../../services/following/requests/reject';
import define from '../../../define';
import { ApiError } from '../../../error';

View file

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

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import Reversi from '../../../../../../games/reversi/core';
import define from '../../../../define';
import { ApiError } from '../../../../error';

View file

@ -1,5 +1,5 @@
import $ from 'cafy';
import { ID } from '../../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { publishReversiGameStream } from '../../../../../../services/stream';
import define from '../../../../define';
import { ApiError } from '../../../../error';

View file

@ -1,11 +1,11 @@
import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import { ID } from '@/misc/cafy-id';
import { publishMainStream, publishReversiStream } from '../../../../../services/stream';
import { eighteight } from '../../../../../games/reversi/maps';
import define from '../../../define';
import { ApiError } from '../../../error';
import { getUser } from '../../../common/getters';
import { genId } from '../../../../../misc/gen-id';
import { genId } from '@/misc/gen-id';
import { ReversiMatchings, ReversiGames } from '../../../../../models';
import { ReversiGame } from '../../../../../models/entities/games/reversi/game';
import { ReversiMatching } from '../../../../../models/entities/games/reversi/matching';

View file

@ -1,6 +1,6 @@
import define from '../define';
import redis from '../../../db/redis';
import config from '../../../config';
import { redisClient } from '../../../db/redis';
import config from '@/config';
export const meta = {
tags: ['meta'],
@ -13,7 +13,7 @@ export const meta = {
export default define(meta, (ps, user) => {
return new Promise((res, rej) => {
redis.pubsub('numsub', config.host, (_, x) => {
redisClient.pubsub('numsub', config.host, (_, x) => {
res({
count: x[1]
});

View file

@ -2,7 +2,7 @@ import $ from 'cafy';
import define from '../../define';
import { ApiError } from '../../error';
import { Hashtags } from '../../../../models';
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
import { normalizeForSearch } from '@/misc/normalize-for-search';
export const meta = {
desc: {

View file

@ -1,10 +1,10 @@
import { Brackets } from 'typeorm';
import define from '../../define';
import { fetchMeta } from '../../../../misc/fetch-meta';
import { fetchMeta } from '@/misc/fetch-meta';
import { Notes } from '../../../../models';
import { Note } from '../../../../models/entities/note';
import { safeForSql } from '../../../../misc/safe-for-sql';
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
import { safeForSql } from '@/misc/safe-for-sql';
import { normalizeForSearch } from '@/misc/normalize-for-search';
/*
a分間のユニーク投稿数が今からa分前b分前の間のユニーク投稿数のn倍以上5

View file

@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { Users } from '../../../../models';
import { normalizeForSearch } from '../../../../misc/normalize-for-search';
import { normalizeForSearch } from '@/misc/normalize-for-search';
export const meta = {
requireCredential: false as const,

View file

@ -1,6 +1,5 @@
import define from '../define';
import { RegistryItems, UserProfiles, Users } from '../../../models';
import { genId } from '../../../misc/gen-id';
import { Users } from '../../../models';
export const meta = {
desc: {
@ -23,28 +22,8 @@ export const meta = {
export default define(meta, async (ps, user, token) => {
const isSecure = token == null;
// TODO: そのうち消す
const profile = await UserProfiles.findOneOrFail(user.id);
for (const [k, v] of Object.entries(profile.clientData)) {
await RegistryItems.insert({
id: genId(),
createdAt: new Date(),
updatedAt: new Date(),
userId: user.id,
domain: null,
scope: ['client', 'base'],
key: k,
value: v
});
}
await UserProfiles.createQueryBuilder().update()
.set({
clientData: {},
})
.where('userId = :id', { id: user.id })
.execute();
return await Users.pack(user, user, {
// ここで渡ってきている user はキャッシュされていて古い可能性もあるので id だけ渡す
return await Users.pack(user.id, user, {
detail: true,
includeSecrets: isSecure
});

View file

@ -9,7 +9,7 @@ import {
AttestationChallenges,
Users
} from '../../../../../models';
import config from '../../../../../config';
import config from '@/config';
import { procedures, hash } from '../../../2fa';
import { publishMainStream } from '../../../../../services/stream';

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