mirror of
https://github.com/MisskeyIO/misskey
synced 2024-11-27 22:38:30 +09:00
fixes
This commit is contained in:
parent
417f52359d
commit
c8f6bc0dab
@ -61,7 +61,7 @@ type AddFileArgs = {
|
||||
|
||||
type UploadFromUrlArgs = {
|
||||
url: string;
|
||||
user: { id: User['id']; host: User['host'] } | null;
|
||||
user: { id: User['id']; host: User['host']; driveCapacityOverrideMb: User['driveCapacityOverrideMb'] } | null;
|
||||
folderId?: DriveFolder['id'] | null;
|
||||
uri?: string | null;
|
||||
sensitive?: boolean;
|
||||
|
@ -13,20 +13,21 @@ import { HttpRequestService } from './HttpRequestService.js';
|
||||
import type { DOMWindow } from 'jsdom';
|
||||
|
||||
type NodeInfo = {
|
||||
openRegistrations?: any;
|
||||
openRegistrations?: unknown;
|
||||
software?: {
|
||||
name?: any;
|
||||
version?: any;
|
||||
name?: unknown;
|
||||
version?: unknown;
|
||||
};
|
||||
metadata?: {
|
||||
name?: any;
|
||||
nodeName?: any;
|
||||
nodeDescription?: any;
|
||||
description?: any;
|
||||
name?: unknown;
|
||||
nodeName?: unknown;
|
||||
nodeDescription?: unknown;
|
||||
description?: unknown;
|
||||
maintainer?: {
|
||||
name?: any;
|
||||
email?: any;
|
||||
name?: unknown;
|
||||
email?: unknown;
|
||||
};
|
||||
themeColor?: unknown;
|
||||
};
|
||||
};
|
||||
|
||||
@ -81,7 +82,7 @@ export class FetchInstanceMetadataService {
|
||||
} as Record<string, any>;
|
||||
|
||||
if (info) {
|
||||
updates.softwareName = info.software?.name.toLowerCase();
|
||||
updates.softwareName = typeof info.software?.name === 'string' ? info.software.name.toLowerCase() : '?';
|
||||
updates.softwareVersion = info.software?.version;
|
||||
updates.openRegistrations = info.openRegistrations;
|
||||
updates.maintainerName = info.metadata ? info.metadata.maintainer ? (info.metadata.maintainer.name ?? null) : null : null;
|
||||
@ -238,8 +239,10 @@ export class FetchInstanceMetadataService {
|
||||
|
||||
private async getSiteName(info: NodeInfo | null, doc: DOMWindow['document'] | null, manifest: Record<string, any> | null): Promise<string | null> {
|
||||
if (info && info.metadata) {
|
||||
if (info.metadata.nodeName || info.metadata.name) {
|
||||
return info.metadata.nodeName ?? info.metadata.name;
|
||||
if (typeof info.metadata.nodeName === 'string') {
|
||||
return info.metadata.nodeName;
|
||||
} else if (typeof info.metadata.name === 'string') {
|
||||
return info.metadata.name;
|
||||
}
|
||||
}
|
||||
|
||||
@ -260,8 +263,10 @@ export class FetchInstanceMetadataService {
|
||||
|
||||
private async getDescription(info: NodeInfo | null, doc: DOMWindow['document'] | null, manifest: Record<string, any> | null): Promise<string | null> {
|
||||
if (info && info.metadata) {
|
||||
if (info.metadata.nodeDescription || info.metadata.description) {
|
||||
return info.metadata.nodeDescription ?? info.metadata.description;
|
||||
if (typeof info.metadata.nodeDescription === 'string') {
|
||||
return info.metadata.nodeDescription;
|
||||
} else if (typeof info.metadata.description === 'string') {
|
||||
return info.metadata.description;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ export class MetaService implements OnApplicationShutdown {
|
||||
this.redisSubscriber.on('message', this.onMessage);
|
||||
}
|
||||
|
||||
private async onMessage(_, data): Promise<void> {
|
||||
private async onMessage(_: string, data: string): Promise<void> {
|
||||
const obj = JSON.parse(data);
|
||||
|
||||
if (obj.channel === 'internal') {
|
||||
|
@ -534,7 +534,6 @@ export class NoteCreateService {
|
||||
});
|
||||
|
||||
const nm = new NotificationManager(this.mutingsRepository, this.createNotificationService, user, note);
|
||||
const nmRelatedPromises = [];
|
||||
|
||||
await this.createMentionedEvents(mentionedUsers, note, nm);
|
||||
|
||||
@ -583,9 +582,7 @@ export class NoteCreateService {
|
||||
}
|
||||
}
|
||||
|
||||
Promise.all(nmRelatedPromises).then(() => {
|
||||
nm.deliver();
|
||||
});
|
||||
nm.deliver();
|
||||
|
||||
//#region AP deliver
|
||||
if (this.userEntityService.isLocalUser(user)) {
|
||||
|
@ -3,7 +3,7 @@ import { Inject, Injectable } from '@nestjs/common';
|
||||
import bcrypt from 'bcryptjs';
|
||||
import { DataSource, IsNull } from 'typeorm';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import type { UsedUsernamesRepository } from '@/models/index.js';
|
||||
import type { UsedUsernamesRepository, UsersRepository } from '@/models/index.js';
|
||||
import type { Config } from '@/config.js';
|
||||
import { User } from '@/models/entities/User.js';
|
||||
import { UserProfile } from '@/models/entities/UserProfile.js';
|
||||
|
@ -67,6 +67,8 @@ function verifyCertificateChain(certificates: string[]) {
|
||||
const CACert = i + 1 >= certificates.length ? Cert : certificates[i + 1];
|
||||
|
||||
const certStruct = jsrsasign.ASN1HEX.getTLVbyList(certificate.hex!, 0, [0]);
|
||||
if (certStruct == null) throw new Error('certStruct is null');
|
||||
|
||||
const algorithm = certificate.getSignatureAlgorithmField();
|
||||
const signatureHex = certificate.getSignatureValueHex();
|
||||
|
||||
|
@ -9,12 +9,16 @@ import PerUserFollowingChart from '@/core/chart/charts/per-user-following.js';
|
||||
import { DI } from '@/di-symbols.js';
|
||||
import logger from '@/logger.js';
|
||||
import type { UsersRepository, FollowingsRepository, FollowRequestsRepository, BlockingsRepository, UserListsRepository, UserListJoiningsRepository } from '@/models/index.js';
|
||||
import Logger from '@/logger.js';
|
||||
import { UserEntityService } from './entities/UserEntityService.js';
|
||||
import { WebhookService } from './WebhookService.js';
|
||||
import { ApRendererService } from './remote/activitypub/ApRendererService.js';
|
||||
import { LoggerService } from './LoggerService.js';
|
||||
|
||||
@Injectable()
|
||||
export class UserBlockingService {
|
||||
private logger: Logger;
|
||||
|
||||
constructor(
|
||||
@Inject(DI.usersRepository)
|
||||
private usersRepository: UsersRepository,
|
||||
@ -41,7 +45,9 @@ export class UserBlockingService {
|
||||
private webhookService: WebhookService,
|
||||
private apRendererService: ApRendererService,
|
||||
private perUserFollowingChart: PerUserFollowingChart,
|
||||
private loggerService: LoggerService,
|
||||
) {
|
||||
this.logger = this.loggerService.getLogger('user-block');
|
||||
}
|
||||
|
||||
public async block(blocker: User, blockee: User) {
|
||||
@ -181,7 +187,7 @@ export class UserBlockingService {
|
||||
});
|
||||
|
||||
if (blocking == null) {
|
||||
logger.warn('ブロック解除がリクエストされましたがブロックしていませんでした');
|
||||
this.logger.warn('ブロック解除がリクエストされましたがブロックしていませんでした');
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ export class UserCacheService implements OnApplicationShutdown {
|
||||
this.redisSubscriber.on('message', this.onMessage);
|
||||
}
|
||||
|
||||
private async onMessage(_, data) {
|
||||
private async onMessage(_: string, data: string): Promise<void> {
|
||||
const obj = JSON.parse(data);
|
||||
|
||||
if (obj.channel === 'internal') {
|
||||
|
@ -32,7 +32,7 @@ export class WebhookService implements OnApplicationShutdown {
|
||||
return this.webhooks;
|
||||
}
|
||||
|
||||
private async onMessage(_, data) {
|
||||
private async onMessage(_: string, data: string): Promise<void> {
|
||||
const obj = JSON.parse(data);
|
||||
|
||||
if (obj.channel === 'internal') {
|
||||
|
@ -1,4 +1,5 @@
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { IsNull, Not } from 'typeorm';
|
||||
import { Endpoint } from '@/server/api/endpoint-base.js';
|
||||
import type { AccessTokensRepository } from '@/models/index.js';
|
||||
import { AppEntityService } from '@/core/entities/AppEntityService.js';
|
||||
@ -34,6 +35,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||
const tokens = await this.accessTokensRepository.find({
|
||||
where: {
|
||||
userId: me.id,
|
||||
appId: Not(IsNull()),
|
||||
},
|
||||
take: ps.limit,
|
||||
skip: ps.offset,
|
||||
@ -42,7 +44,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
|
||||
},
|
||||
});
|
||||
|
||||
return await Promise.all(tokens.map(token => this.appEntityService.pack(token.appId, me, {
|
||||
return await Promise.all(tokens.map(token => this.appEntityService.pack(token.appId!, me, {
|
||||
detail: true,
|
||||
})));
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user