mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
fix: migrate gifs to klipy service (#1220)
This commit is contained in:
1 parent
99eedf6d1e
commit
4a741d8396
79 files changed
+3032
-1653
No files matched your search
@@ -2,6 +2,7 @@
|
||||
|
||||
import {APIErrorCodes} from '@fluxer/constants/src/ApiErrorCodes';
|
||||
import {ForbiddenError} from '@fluxer/errors/src/domains/core/ForbiddenError';
|
||||
import {resolveClientIpHeaderName} from '@fluxer/ip_utils/src/ClientIp';
|
||||
import {createMiddleware} from 'hono/factory';
|
||||
import {Config} from '../Config';
|
||||
import {Logger} from '../Logger';
|
||||
@@ -23,7 +24,7 @@ const defaultExemptPaths: Array<string> = [
|
||||
|
||||
export function RequireClientIpMiddleware({
|
||||
exemptPaths = defaultExemptPaths,
|
||||
requiredHeaders = ['x-forwarded-for'],
|
||||
requiredHeaders = [resolveClientIpHeaderName(Config.proxy.client_ip_header)],
|
||||
}: RequireClientIpOptions = {}) {
|
||||
return createMiddleware<HonoEnv>(async (ctx, next) => {
|
||||
if (Config.dev.testModeEnabled) {
|
||||
|
||||
@@ -82,6 +82,7 @@ import {UserChannelRequestService} from '../user/services/UserChannelRequestServ
|
||||
import {UserContentRequestService} from '../user/services/UserContentRequestService';
|
||||
import {UserRelationshipRequestService} from '../user/services/UserRelationshipRequestService';
|
||||
import {UserService} from '../user/services/UserService';
|
||||
import {resolveRequestClientIp} from '../utils/IpUtils';
|
||||
import {VoicePresenceHeartbeatStore} from '../voice/VoicePresenceHeartbeatStore';
|
||||
import {VoiceService} from '../voice/VoiceService';
|
||||
import {WebhookRequestService} from '../webhook/WebhookRequestService';
|
||||
@@ -364,7 +365,7 @@ function getLiveKitWebhookService(): LiveKitWebhookService | null {
|
||||
export const ServiceMiddleware = createMiddleware<HonoEnv>(async (ctx, next) => {
|
||||
const apiContext = createApiContext({
|
||||
requestId: ctx.get('requestId') ?? crypto.randomUUID(),
|
||||
clientIp: ctx.req.header('x-forwarded-for') ?? null,
|
||||
clientIp: resolveRequestClientIp(ctx.req.raw),
|
||||
userAgent: ctx.req.header('user-agent') ?? null,
|
||||
});
|
||||
ctx.set('apiContext', apiContext);
|
||||
|
||||
@@ -38,8 +38,7 @@ import {DownloadService} from '../download/DownloadService';
|
||||
import {createEmailProvider} from '../email/EmailProviderFactory';
|
||||
import {FavoriteMemeRepository} from '../favorite_meme/FavoriteMemeRepository';
|
||||
import {GifService} from '../gif/GifService';
|
||||
import {KlipyGifProvider} from '../gif/KlipyGifProvider';
|
||||
import {TenorGifProvider} from '../gif/TenorGifProvider';
|
||||
import {createNatsGifProvider} from '../gif/NatsGifProvider';
|
||||
import {GuildAuditLogService} from '../guild/GuildAuditLogService';
|
||||
import {GuildDiscoveryRepository} from '../guild/repositories/GuildDiscoveryRepository';
|
||||
import {GuildRepository} from '../guild/repositories/GuildRepository';
|
||||
@@ -349,6 +348,7 @@ export function setInjectedUnfurlerService(service: IUnfurlerService | undefined
|
||||
}
|
||||
|
||||
const getDefaultUnfurlerService = singleton(() => {
|
||||
const instanceConfigRepository = getInstanceConfigRepository();
|
||||
const manager = new NatsConnectionManager({
|
||||
url: Config.nats.coreUrl,
|
||||
token: Config.nats.authToken || undefined,
|
||||
@@ -357,7 +357,11 @@ const getDefaultUnfurlerService = singleton(() => {
|
||||
void manager.connect().catch((error) => {
|
||||
Logger.error({error}, '[nats-unfurl] Failed to establish NATS connection');
|
||||
});
|
||||
return new NatsUnfurlerService(manager, async () => getInstanceConfigRepository().getEffectiveYoutubeApiKey());
|
||||
return new NatsUnfurlerService(
|
||||
manager,
|
||||
async () => instanceConfigRepository.getEffectiveYoutubeApiKey(),
|
||||
async () => (await instanceConfigRepository.getEffectiveGifConfig()).klipy_api_key,
|
||||
);
|
||||
});
|
||||
|
||||
export function getUnfurlerService(): IUnfurlerService {
|
||||
@@ -376,24 +380,10 @@ export const getBotMfaMirrorService = singleton(
|
||||
() => new BotMfaMirrorService(getApplicationRepository(), getUserRepository(), getGatewayService()),
|
||||
);
|
||||
export const getGifService = singleton(() => {
|
||||
const cache = getCacheService();
|
||||
const media = getMediaService();
|
||||
const instanceConfigRepository = getInstanceConfigRepository();
|
||||
return new GifService({
|
||||
providers: [
|
||||
new TenorGifProvider(
|
||||
cache,
|
||||
media,
|
||||
async () => (await instanceConfigRepository.getEffectiveGifConfig()).tenor_api_key,
|
||||
),
|
||||
new KlipyGifProvider(
|
||||
cache,
|
||||
media,
|
||||
async () => (await instanceConfigRepository.getEffectiveGifConfig()).klipy_api_key,
|
||||
),
|
||||
],
|
||||
activeName: async () => (await instanceConfigRepository.getEffectiveGifConfig()).provider,
|
||||
});
|
||||
return new GifService(
|
||||
createNatsGifProvider(async () => (await instanceConfigRepository.getEffectiveGifConfig()).klipy_api_key),
|
||||
);
|
||||
});
|
||||
export const getExpressionAssetPurger = singleton(() => new ExpressionAssetPurger(getAssetDeletionQueue()));
|
||||
export const getGuildAuditLogService = singleton(
|
||||
|
||||
Reference in new issue
Block a user