diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2021-07-20 12:11:07 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2021-07-20 12:11:07 +0900 |
| commit | acb92442058fa2458967425efb7324ab0646a335 (patch) | |
| tree | afc2ac62a7bbddce5756fc49f1caba9f7cba5407 /src/server/api/endpoints | |
| parent | Merge branch 'develop' (diff) | |
| parent | 12.84.0 (diff) | |
| download | misskey-acb92442058fa2458967425efb7324ab0646a335.tar.gz misskey-acb92442058fa2458967425efb7324ab0646a335.tar.bz2 misskey-acb92442058fa2458967425efb7324ab0646a335.zip | |
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints')
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/copy.ts | 9 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/suspend-user.ts | 6 | ||||
| -rw-r--r-- | src/server/api/endpoints/i/delete-account.ts | 4 | ||||
| -rw-r--r-- | src/server/api/endpoints/i/regenerate-token.ts | 7 | ||||
| -rw-r--r-- | src/server/api/endpoints/i/revoke-token.ts | 9 | ||||
| -rw-r--r-- | src/server/api/endpoints/pinned-users.ts | 2 |
6 files changed, 32 insertions, 5 deletions
diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts index 1a784f4061..72c2b014a4 100644 --- a/src/server/api/endpoints/admin/emoji/copy.ts +++ b/src/server/api/endpoints/admin/emoji/copy.ts @@ -7,6 +7,7 @@ import { ApiError } from '../../../error'; import { DriveFile } from '../../../../../models/entities/drive-file'; import { ID } from '@/misc/cafy-id'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; +import { publishBroadcastStream } from '@/services/stream'; export const meta = { tags: ['admin'], @@ -57,7 +58,7 @@ export default define(meta, async (ps, me) => { throw new ApiError(); } - const copied = await Emojis.save({ + const copied = await Emojis.insert({ id: genId(), updatedAt: new Date(), name: emoji.name, @@ -66,10 +67,14 @@ export default define(meta, async (ps, me) => { url: driveFile.url, type: driveFile.type, fileId: driveFile.id, - }); + }).then(x => Emojis.findOneOrFail(x.identifiers[0])); await getConnection().queryResultCache!.remove(['meta_emojis']); + publishBroadcastStream('emojiAdded', { + emoji: await Emojis.pack(copied.id) + }); + return { id: copied.id }; diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts index 9f3c8eb6f8..912d6a5162 100644 --- a/src/server/api/endpoints/admin/suspend-user.ts +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -6,6 +6,7 @@ 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 { publishUserEvent } from '@/services/stream'; export const meta = { tags: ['admin'], @@ -43,6 +44,11 @@ export default define(meta, async (ps, me) => { targetId: user.id, }); + // Terminate streaming + if (Users.isLocalUser(user)) { + publishUserEvent(user.id, 'terminate', {}); + } + (async () => { await doPostSuspend(user).catch(e => {}); await unFollowAll(user).catch(e => {}); diff --git a/src/server/api/endpoints/i/delete-account.ts b/src/server/api/endpoints/i/delete-account.ts index 0f04c4c92d..f5f0f32a4a 100644 --- a/src/server/api/endpoints/i/delete-account.ts +++ b/src/server/api/endpoints/i/delete-account.ts @@ -3,6 +3,7 @@ import * as bcrypt from 'bcryptjs'; import define from '../../define'; import { Users, UserProfiles } from '../../../../models'; import { doPostSuspend } from '../../../../services/suspend-user'; +import { publishUserEvent } from '@/services/stream'; export const meta = { requireCredential: true as const, @@ -30,4 +31,7 @@ export default define(meta, async (ps, user) => { await doPostSuspend(user).catch(e => {}); await Users.delete(user.id); + + // Terminate streaming + publishUserEvent(user.id, 'terminate', {}); }); diff --git a/src/server/api/endpoints/i/regenerate-token.ts b/src/server/api/endpoints/i/regenerate-token.ts index 3596e20197..3665ed0532 100644 --- a/src/server/api/endpoints/i/regenerate-token.ts +++ b/src/server/api/endpoints/i/regenerate-token.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream, publishUserEvent } from '../../../../services/stream'; import generateUserToken from '../../common/generate-native-user-token'; import define from '../../define'; import { Users, UserProfiles } from '../../../../models'; @@ -36,4 +36,9 @@ export default define(meta, async (ps, user) => { // Publish event publishMainStream(user.id, 'myTokenRegenerated'); + + // Terminate streaming + setTimeout(() => { + publishUserEvent(user.id, 'terminate', {}); + }, 5000); }); diff --git a/src/server/api/endpoints/i/revoke-token.ts b/src/server/api/endpoints/i/revoke-token.ts index d71a1bd135..d22d9ca693 100644 --- a/src/server/api/endpoints/i/revoke-token.ts +++ b/src/server/api/endpoints/i/revoke-token.ts @@ -2,6 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { AccessTokens } from '../../../../models'; import { ID } from '@/misc/cafy-id'; +import { publishUserEvent } from '@/services/stream'; export const meta = { requireCredential: true as const, @@ -19,6 +20,12 @@ export default define(meta, async (ps, user) => { const token = await AccessTokens.findOne(ps.tokenId); if (token) { - AccessTokens.delete(token.id); + await AccessTokens.delete({ + id: ps.tokenId, + userId: user.id, + }); + + // Terminate streaming + publishUserEvent(user.id, 'terminate'); } }); diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts index ae165ab46d..bcef072fed 100644 --- a/src/server/api/endpoints/pinned-users.ts +++ b/src/server/api/endpoints/pinned-users.ts @@ -1,7 +1,7 @@ import define from '../define'; import { Users } from '../../../models'; import { fetchMeta } from '@/misc/fetch-meta'; -import parseAcct from '@/misc/acct/parse'; +import { parseAcct } from '@/misc/acct'; import { User } from '../../../models/entities/user'; export const meta = { |