Aller au contenu

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.

Intégration Archivé
  • Mis à jour
  • 3
  • JavaScript · 97.74%
Langages du dépôtJavaScript 97.74%2

Parts calculées à partir des octets GitHub Linguist.

Langage%Octets
JavaScript97.74%12 092
CSS2.26%279

GitHub · README · Statistiques de langages

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.

Documentation source

2 documents lus parmi 2 candidats.

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.

Contexte système Contexte
  1. Page du dépôt
  2. Script injecté
  3. Extraction des liens du DOM
  4. Requête du fichier brut
  5. 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.

Vue statique de l’architecture de GithubSimpleFileDownloader
Aperçu statique. Le diagramme interactif le remplace après le chargement de Mermaid.
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

Fichiers à lire 3

Références