mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-08-01 04:45:51 +00:00
729abbef62
* add channel_muting table and entities
* add channel_muting services
* タイムライン取得処理への組み込み
* misskey-jsの型とインターフェース生成
* Channelスキーマにミュート情報を追加
* フロントエンドの実装
* 条件が逆だったのを修正
* 期限切れミュートを掃除する機能を実装
* TLの抽出条件調節
* 名前の変更と変更不要の差分をロールバック
* 修正漏れ
* isChannelRelatedの条件に誤りがあった
* [wip] テスト追加
* テストの追加と検出した不備の修正
* fix test
* fix CHANGELOG.md
* 通常はFTTにしておく
* 実装忘れ対応
* fix merge
* fix merge
* add channel tl test
* fix CHANGELOG.md
* remove unused import
* fix lint
* fix test
* fix favorite -> favorited
* exclude -> include
* fix CHANGELOG.md
* fix CHANGELOG.md
* maintenance
* fix CHANGELOG.md
* fix
* fix ci
* regenerate
* fix
* Revert "fix"
This reverts commit 699d50c6ec.
* fixed
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
/*
|
|
* SPDX-FileCopyrightText: syuilo and misskey-project
|
|
* SPDX-License-Identifier: AGPL-3.0-only
|
|
*/
|
|
|
|
import { Inject, Injectable } from '@nestjs/common';
|
|
import { DI } from '@/di-symbols.js';
|
|
import type { MutingsRepository } from '@/models/_.js';
|
|
import type Logger from '@/logger.js';
|
|
import { bindThis } from '@/decorators.js';
|
|
import { UserMutingService } from '@/core/UserMutingService.js';
|
|
import { ChannelMutingService } from '@/core/ChannelMutingService.js';
|
|
import { QueueLoggerService } from '../QueueLoggerService.js';
|
|
|
|
@Injectable()
|
|
export class CheckExpiredMutingsProcessorService {
|
|
private logger: Logger;
|
|
|
|
constructor(
|
|
@Inject(DI.mutingsRepository)
|
|
private mutingsRepository: MutingsRepository,
|
|
|
|
private userMutingService: UserMutingService,
|
|
private channelMutingService: ChannelMutingService,
|
|
private queueLoggerService: QueueLoggerService,
|
|
) {
|
|
this.logger = this.queueLoggerService.logger.createSubLogger('check-expired-mutings');
|
|
}
|
|
|
|
@bindThis
|
|
public async process(): Promise<void> {
|
|
this.logger.info('Checking expired mutings...');
|
|
|
|
const expired = await this.mutingsRepository.createQueryBuilder('muting')
|
|
.where('muting.expiresAt IS NOT NULL')
|
|
.andWhere('muting.expiresAt < :now', { now: new Date() })
|
|
.innerJoinAndSelect('muting.mutee', 'mutee')
|
|
.getMany();
|
|
|
|
if (expired.length > 0) {
|
|
await this.userMutingService.unmute(expired);
|
|
}
|
|
|
|
await this.channelMutingService.eraseExpiredMutings();
|
|
|
|
this.logger.succ('All expired mutings checked.');
|
|
}
|
|
}
|