Tactical Media Broadcast Hub — initial release
Self-hosted multi-platform broadcast newsroom for activist collectives: publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style column wall with hostile-content-safe rendering, live control room with Auto Director, bridged chat governance with polls and quorum, distributed sandboxed transcode workers, encrypted content-addressed archive, monthly analytics. MIT licensed. See README.md and docs/.
This commit is contained in:
commit
aa5e262f3a
880 changed files with 111042 additions and 0 deletions
19
apps/api/src/live-monitor/live-monitor.module.ts
Normal file
19
apps/api/src/live-monitor/live-monitor.module.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
import { Inject, Module } from "@nestjs/common";
|
||||
import { HttpAdapterHost } from "@nestjs/core";
|
||||
import type { ExpressAdapter } from "@nestjs/platform-express";
|
||||
import { LiveMonitorController } from "./live-monitor.controller.js";
|
||||
import { LiveMonitorService } from "./live-monitor.service.js";
|
||||
import { LiveMonitorPoller } from "./poller/poller.js";
|
||||
import { MonitorWebhookController } from "./webhook.controller.js";
|
||||
import { MonitorWebhookService, WEBHOOK_MAX_BYTES } from "./webhook.service.js";
|
||||
|
||||
@Module({ controllers: [LiveMonitorController, MonitorWebhookController], providers: [LiveMonitorService, LiveMonitorPoller, MonitorWebhookService], exports: [LiveMonitorService] })
|
||||
export class LiveMonitorModule {
|
||||
constructor(@Inject(HttpAdapterHost) adapter: HttpAdapterHost) {
|
||||
// Installed while Nest creates modules, before init registers its default JSON parser.
|
||||
(adapter.httpAdapter as ExpressAdapter).useBodyParser("raw", false, {
|
||||
type: (request: { url?: string }) => request.url?.startsWith("/live-monitor/webhooks/") === true,
|
||||
limit: WEBHOOK_MAX_BYTES, inflate: false,
|
||||
});
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue