summary refs log tree commit diff
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-07-07 20:18:21 +0200
committerRory& <root@rory.gay>2026-07-07 20:18:21 +0200
commit3bf0267176ee0b4f3c3db6dd2a19c426931080a2 (patch)
treebb0ff9c5b25ab444071e9b65b0c3653c2d47d84a
parentSwitch default GIF provider to klipy since tenor is no longer supported (diff)
downloadserver-ts-dev/rewrite-gif-support.tar.xz
Add endpoint to get enabled/known gif providers github/dev/rewrite-gif-support dev/rewrite-gif-support
-rw-r--r--src/api/Server.ts4
-rw-r--r--src/integrations/gifs/GifProviderManager.ts11
2 files changed, 15 insertions, 0 deletions
diff --git a/src/api/Server.ts b/src/api/Server.ts

index 7fa5476d..1266bf42 100644 --- a/src/api/Server.ts +++ b/src/api/Server.ts
@@ -191,6 +191,10 @@ export class SpacebarServer extends Server { }); }); + app.get("/_spacebar/api/v1/integrations/gif", (req, res) => { + res.json({ providers: GifProviderManager.getProviders() }); + }); + // Pickup non-expired polls const nonExpiredPolls = await Message.createQueryBuilder("message").where("message.poll->>'expiry' > :now", { now: new Date().toISOString() }).getMany(); diff --git a/src/integrations/gifs/GifProviderManager.ts b/src/integrations/gifs/GifProviderManager.ts
index 8bbfccf5..799ee002 100644 --- a/src/integrations/gifs/GifProviderManager.ts +++ b/src/integrations/gifs/GifProviderManager.ts
@@ -48,4 +48,15 @@ export class GifProviderManager { throw new Error(`Unknown GIF provider, or it is not enabled: ${id}, known GIF providers: ${this._providers.keys().toArray().join(", ")}`); } + + public static getProviders() { + const providers: { [key: string]: { available: boolean } } = {}; + for (const [id, provider] of this._providers) { + providers[id] = { + available: provider.available, + }; + } + + return providers; + } }