feat: Jellyfin/Emby recommendations + piracy disclaimer + TOTP fix + AI chat
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s

This commit is contained in:
Krystie
2026-08-13 03:38:46 -07:00
parent 3da8463cef
commit e6ec9c901b
2 changed files with 10 additions and 1 deletions
+3
View File
@@ -53,11 +53,14 @@ const INTENT_PATTERNS = [
message: 'For media streaming, I recommend:', message: 'For media streaming, I recommend:',
recommendations: [ recommendations: [
{ app: 'plex', reason: 'Stream movies and TV shows to any device' }, { app: 'plex', reason: 'Stream movies and TV shows to any device' },
{ app: 'jellyfin', reason: 'Free open-source alternative to Plex, no premium features locked' },
{ app: 'emby', reason: 'Media server with live TV and parental controls' },
{ app: 'sonarr', reason: 'Automatically download TV shows' }, { app: 'sonarr', reason: 'Automatically download TV shows' },
{ app: 'radarr', reason: 'Automatically download movies' }, { app: 'radarr', reason: 'Automatically download movies' },
{ app: 'qbittorrent', reason: 'Download client for media files' }, { app: 'qbittorrent', reason: 'Download client for media files' },
], ],
question: 'Would you like me to deploy any of these?', question: 'Would you like me to deploy any of these?',
disclaimer: 'DashCaddy provides deployment tools only. Users are responsible for complying with all applicable copyright and intellectual property laws. Always stream content you own or have rights to access.',
}), }),
}, },
+6
View File
@@ -71,6 +71,12 @@
if (extra) { if (extra) {
const extraDiv = document.createElement('div'); const extraDiv = document.createElement('div');
extraDiv.style.cssText = 'align-self:flex-start; max-width:85%; margin-top:4px;'; extraDiv.style.cssText = 'align-self:flex-start; max-width:85%; margin-top:4px;';
if (extra.disclaimer) {
const disc = document.createElement('div');
disc.style.cssText = 'font-size:0.7rem; color:var(--text-muted,#666); padding:6px 8px; line-height:1.4; margin-top:4px;';
disc.textContent = '⚠️ ' + extra.disclaimer;
extraDiv.appendChild(disc);
}
if (extra.recommendations) { if (extra.recommendations) {
extra.recommendations.forEach(rec => { extra.recommendations.forEach(rec => {
const btn = document.createElement('button'); const btn = document.createElement('button');