2023-02-16 16:09:41 +02:00
|
|
|
import { Injectable } from '@nestjs/common';
|
2023-02-15 06:06:06 +02:00
|
|
|
import { bindThis } from '@/decorators.js';
|
2022-09-17 21:27:08 +03:00
|
|
|
import { HybridTimelineChannelService } from './channels/hybrid-timeline.js';
|
|
|
|
import { LocalTimelineChannelService } from './channels/local-timeline.js';
|
|
|
|
import { HomeTimelineChannelService } from './channels/home-timeline.js';
|
|
|
|
import { GlobalTimelineChannelService } from './channels/global-timeline.js';
|
|
|
|
import { MainChannelService } from './channels/main.js';
|
|
|
|
import { ChannelChannelService } from './channels/channel.js';
|
|
|
|
import { AdminChannelService } from './channels/admin.js';
|
|
|
|
import { ServerStatsChannelService } from './channels/server-stats.js';
|
|
|
|
import { QueueStatsChannelService } from './channels/queue-stats.js';
|
|
|
|
import { UserListChannelService } from './channels/user-list.js';
|
|
|
|
import { AntennaChannelService } from './channels/antenna.js';
|
|
|
|
import { DriveChannelService } from './channels/drive.js';
|
|
|
|
import { HashtagChannelService } from './channels/hashtag.js';
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class ChannelsService {
|
|
|
|
constructor(
|
|
|
|
private mainChannelService: MainChannelService,
|
|
|
|
private homeTimelineChannelService: HomeTimelineChannelService,
|
|
|
|
private localTimelineChannelService: LocalTimelineChannelService,
|
|
|
|
private hybridTimelineChannelService: HybridTimelineChannelService,
|
|
|
|
private globalTimelineChannelService: GlobalTimelineChannelService,
|
|
|
|
private userListChannelService: UserListChannelService,
|
|
|
|
private hashtagChannelService: HashtagChannelService,
|
|
|
|
private antennaChannelService: AntennaChannelService,
|
|
|
|
private channelChannelService: ChannelChannelService,
|
|
|
|
private driveChannelService: DriveChannelService,
|
|
|
|
private serverStatsChannelService: ServerStatsChannelService,
|
|
|
|
private queueStatsChannelService: QueueStatsChannelService,
|
|
|
|
private adminChannelService: AdminChannelService,
|
|
|
|
) {
|
|
|
|
}
|
|
|
|
|
2022-12-04 08:03:09 +02:00
|
|
|
@bindThis
|
2022-09-17 21:27:08 +03:00
|
|
|
public getChannelService(name: string) {
|
|
|
|
switch (name) {
|
|
|
|
case 'main': return this.mainChannelService;
|
|
|
|
case 'homeTimeline': return this.homeTimelineChannelService;
|
|
|
|
case 'localTimeline': return this.localTimelineChannelService;
|
|
|
|
case 'hybridTimeline': return this.hybridTimelineChannelService;
|
|
|
|
case 'globalTimeline': return this.globalTimelineChannelService;
|
|
|
|
case 'userList': return this.userListChannelService;
|
|
|
|
case 'hashtag': return this.hashtagChannelService;
|
|
|
|
case 'antenna': return this.antennaChannelService;
|
|
|
|
case 'channel': return this.channelChannelService;
|
|
|
|
case 'drive': return this.driveChannelService;
|
|
|
|
case 'serverStats': return this.serverStatsChannelService;
|
|
|
|
case 'queueStats': return this.queueStatsChannelService;
|
|
|
|
case 'admin': return this.adminChannelService;
|
|
|
|
|
|
|
|
default:
|
|
|
|
throw new Error(`no such channel: ${name}`);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|