GithubSimpleFileDownloader : Une extension liée à la structure des pages
Cette extension archivée tentait d’ajouter des boutons de téléchargement aux explorateurs de dépôts. Son implémentation GitHub montre la fragilité d’une intégration fondée sur le DOM d’un autre site plutôt que sur une interface stable.
Langages du dépôtJavaScript 97.74%2
Parts calculées à partir des octets GitHub Linguist.
| Langage | % | Octets |
|---|---|---|
| JavaScript | 12 092 | |
| CSS | 279 |
Aperçu
Pourquoi il existe
Extension de navigateur injectant un bouton de téléchargement direct de fichier unique dans GitHub et GitLab.
Cas d’usage
Téléchargement immédiat d'un fichier isolé sans cloner le dépôt entier.
Démarrage
Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.
Commandes déclarées dans les manifestes
Références du dépôt
Le dépôt ne fournit pas de guide détaillé pour ces étapes. Commencez par le README et les fichiers commentés ci-dessus.
Fonctions et composants 2
- Injection dans la page
- Le script GitHub attend que le document soit prêt, trouve les cellules td.content et insère icônes, liens et tailles. Des scripts distincts visent GitLab et Bitbucket. Chaque adaptateur dépend du balisage du site.
- Téléchargement du fichier brut
- Le script transforme un lien de fichier en lien brut, récupère le texte et crée un téléchargement Blob. Ce parcours textuel ne doit pas être supposé préserver tous les fichiers binaires.
Architecture
Les composants et leurs liens restent lisibles en texte. Le diagramme ajoute une vue interactive.
- Page du dépôt
- Script injecté
- Extraction des liens du DOM
- Requête du fichier brut
- Lien de téléchargement Blob
Liens vérifiés dans le dépôt.
Mermaid Diagramme interactif (chargement à l’ouverture)
Vue générale des composants et des échanges vérifiés dans le dépôt.

flowchart LR
n0["Page du dépôt"]
n1["Script injecté"]
n2["Extraction des liens du DOM"]
n3["Requête du fichier brut"]
n4["Lien de téléchargement Blob"]
n0 --> n1
n1 --> n2
n2 --> n3
n3 --> n4
Version texte du diagramme
- Page du dépôt → Script injecté
- Script injecté → Extraction des liens du DOM
- Extraction des liens du DOM → Requête du fichier brut
- Requête du fichier brut → Lien de téléchargement Blob
Suivre un parcours dans le code
Partez de querySelectorAll('td.content') et examinez les positions des nœuds utilisés pour trouver le lien. Une modification du tableau peut casser ce parcours avant toute requête réseau.
Structure des fichiers
La carte montre les fichiers inspectés et leur organisation.
Référence
8 / 8 fichiers admissibles lus (42 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.
Ce que couvre l’analyse
Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.
Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.
Carte des fichiers
flowchart TD
root["GithubSimpleFileDownloader"]
f0["src/inject/inject_github.js"]
root --> f0
f1["src/inject/inject_gitlab.js"]
root --> f1
f2["README.md"]
root --> f2
f3["src/inject/inject_bitbucket.js"]
root --> f3
f4["src/assets/js/jquery/README.md"]
root --> f4
f5["src/assets/js/jquery/composer.json"]
root --> f5
f6["src/assets/js/jquery/jquery.js"]
root --> f6
f7["src/assets/js/jquery/package.json"]
root --> f7