refactor: replace old bot code with Matrix infra configs and scripts

- Remove obsolete Python bot (Wordle, commands, callbacks, welcome)
- Add hookshot/ — all 11 webhook transformation functions + deploy.sh
- Add cinny/ — config.json and dev-update.sh (nightly dev branch build)
- Add landing/ — matrix.lotusguild.org landing page HTML
- Add systemd/ — livekit-server, draupnir, cinny cron unit files
- Add draupnir/ — production config (access token redacted)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-18 10:36:51 -04:00
parent e6b1030b04
commit 0e275d725e
31 changed files with 1148 additions and 5087 deletions

35
hookshot/radarr.js Normal file
View File

@@ -0,0 +1,35 @@
var ev = data.eventType || 'Unknown';
if (ev === 'Test') {
result = { version: 'v2', plain: '🧪 Radarr: Connection test successful', msgtype: 'm.notice' };
} else {
var m = data.movie || {};
var movie = m.title ? m.title + (m.year ? ' (' + m.year + ')' : '') : 'Unknown Movie';
var quality = (data.release && data.release.quality) || (data.movieFile && data.movieFile.quality) || '';
var releaseGroup = (data.release && data.release.releaseGroup) || (data.movieFile && data.movieFile.releaseGroup) || '';
var client = data.downloadClient || '';
var upgrade = data.isUpgrade ? ' \u2191upgrade' : '';
var healthMsg = data.message || '';
var healthWiki = data.wikiUrl || '';
var prevVer = data.previousVersion || '';
var newVer = data.newVersion || '';
var emojiMap = { 'Grab':'📥','Download':'✅','Rename':'✏️','MovieAdded':'','MovieDelete':'🗑️','MovieFileDelete':'🗑️','HealthIssue':'⚠️','HealthRestored':'💚','ApplicationUpdate':'🔄','ManualInteractionRequired':'🔔' };
var emoji = emojiMap[ev] || '🎬';
var plain, html;
if (ev === 'HealthIssue' || ev === 'HealthRestored') {
plain = emoji + ' Radarr ' + ev + ': ' + healthMsg + (healthWiki ? '\n' + healthWiki : '');
html = '<b>' + emoji + ' Radarr ' + ev + '</b>: ' + healthMsg + (healthWiki ? '<br><a href="' + healthWiki + '">Wiki</a>' : '');
} else if (ev === 'ApplicationUpdate') {
plain = emoji + ' Radarr updated: ' + prevVer + ' \u2192 ' + newVer;
html = '<b>' + emoji + ' Radarr updated</b>: ' + prevVer + ' \u2192 ' + newVer;
} else if (ev === 'MovieAdded' || ev === 'MovieDelete') {
plain = emoji + ' Radarr ' + ev + ': ' + movie;
html = '<b>' + emoji + ' Radarr ' + ev + '</b>: ' + movie;
} else {
var qualPart = quality ? ' [' + quality + ']' : '';
var groupPart = releaseGroup ? ' {' + releaseGroup + '}' : '';
var clientPart = client ? ' via ' + client : '';
plain = emoji + ' Radarr ' + ev + ': ' + movie + qualPart + groupPart + upgrade + clientPart;
html = '<b>' + emoji + ' Radarr ' + ev + '</b>: ' + movie + qualPart + groupPart + upgrade + clientPart;
}
result = { version: 'v2', plain: plain, html: html, msgtype: 'm.notice' };
}