Skip to content

Merge pull request #88 from bobdivx/dev chore: merge dev into main#91

Open
bobdivx wants to merge 17 commits into
devfrom
main
Open

Merge pull request #88 from bobdivx/dev chore: merge dev into main#91
bobdivx wants to merge 17 commits into
devfrom
main

Conversation

@bobdivx
Copy link
Copy Markdown
Owner

@bobdivx bobdivx commented May 24, 2026

No description provided.

github-actions Bot and others added 17 commits May 10, 2026 06:01
…l'URL de flux

Évite les chemins dupliqués (media/media, etc.) lors de la construction de l'URL HLS.

Co-authored-by: Cursor <cursoragent@cursor.com>
Évite l'échec de push sur les tags versionnés après promotion dev→main.

Co-authored-by: Cursor <cursoragent@cursor.com>
- Champs sensibles en type password avec autoComplete=off ; URL announce également.
- Efface le masque TMDB au focus dans TmdbStep ; validation sauvegarde si caractères • résiduels dans TmdbConfig.
- Sentinel : apprentissage sur credentials et prévention announce URLs.

Suite aux commentaires gemini-code-assist sur les PR Sentinel/Jules.

Co-authored-by: Cursor <cursoragent@cursor.com>
…corrigés

Co-authored-by: Cursor <cursoragent@cursor.com>
chore: merge dev into main
chore: merge dev into main
chore: merge dev into main
chore: merge dev into main
@vercel
Copy link
Copy Markdown

vercel Bot commented May 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
popcorn-client Ready Ready Preview, Comment May 24, 2026 7:48am

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses a security vulnerability regarding the exposure of sensitive credentials in UI forms by switching input types from 'text' to 'password' and adding 'autoComplete="off"' across several components. It also introduces a visual placeholder constant for TMDB keys and improves path normalization logic to recursively remove redundant prefixes. Feedback identifies opportunities to remove redundant event handlers in the TMDB configuration and optimize string operations within the path normalization utility.

Comment on lines 221 to 230
onInput={(e) => {
const value = (e.target as HTMLInputElement).value || '';
if (tmdbHasKey && value !== '••••••••••••••••••••••••') setTmdbKey(value);
if (tmdbHasKey && value !== TMDB_KEY_VISUAL_PLACEHOLDER) setTmdbKey(value);
else if (!tmdbHasKey) setTmdbKey(value);
}}
onChange={(e) => {
const value = (e.target as HTMLInputElement).value || '';
if (tmdbHasKey && value !== '••••••••••••••••••••••••') setTmdbKey(value);
if (tmdbHasKey && value !== TMDB_KEY_VISUAL_PLACEHOLDER) setTmdbKey(value);
else if (!tmdbHasKey) setTmdbKey(value);
}}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Les gestionnaires onInput et onChange sont redondants car ils exécutent la même logique. En Preact, onInput est suffisant pour synchroniser l'état avec la valeur de l'input en temps réel. De plus, la condition peut être simplifiée pour améliorer la lisibilité.

            onInput={(e) => {
              const value = (e.target as HTMLInputElement).value || '';
              if (!tmdbHasKey || value !== TMDB_KEY_VISUAL_PLACEHOLDER) {
                setTmdbKey(value);
              }
            }}

Comment on lines +37 to 46
while (changed) {
changed = false;
if (normalizedPath.toLowerCase().startsWith('media/')) {
normalizedPath = normalizedPath.substring(6);
changed = true;
} else if (normalizedPath.toLowerCase().startsWith('downloads/')) {
normalizedPath = normalizedPath.substring(10);
changed = true;
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

L'appel à toLowerCase() est répété à chaque vérification de préfixe. Il est préférable de le calculer une seule fois par itération de la boucle pour optimiser les performances, surtout si le chemin est long.

Suggested change
while (changed) {
changed = false;
if (normalizedPath.toLowerCase().startsWith('media/')) {
normalizedPath = normalizedPath.substring(6);
changed = true;
} else if (normalizedPath.toLowerCase().startsWith('downloads/')) {
normalizedPath = normalizedPath.substring(10);
changed = true;
}
}
while (changed) {
changed = false;
const lowerPath = normalizedPath.toLowerCase();
if (lowerPath.startsWith('media/')) {
normalizedPath = normalizedPath.substring(6);
changed = true;
} else if (lowerPath.startsWith('downloads/')) {
normalizedPath = normalizedPath.substring(10);
changed = true;
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant