#lejournalduhacker#ljdhar #npm

Ljdhar : brancher le Journal du Hacker à un script JavaScript

Retour sur ljdhar, un petit package NPM que j'avais écrit pour récupérer et filtrer les articles du Journal du Hacker depuis un script JavaScript.

2 min de lecture
Résumé IA

Générez un résumé de cet article en un clic.

J'avais besoin de récupérer les articles du Journal du Hacker dans un script sans recopier leur page à la main. J'ai donc écrit ljdhar, un petit package NPM qui transforme le flux du site en objets JavaScript faciles à filtrer.

C'est quoi ljdhar ?

Le package s'appuie sur Puppeteer pour lire la page et extraire les informations utiles. Le site ne fournit pas ici d'API officielle, donc le parseur peut casser si sa structure change. Pour un projet ponctuel ou un agrégateur personnel, ce compromis reste acceptable ; pour un service critique, je partirais plutôt sur un flux maintenu par la source.

Avec ljdhar, tu peux :

  • Recuperer les derniers articles
  • Les trier par score
  • Les rechercher par tag ou par titre

Fonctionnalites

  1. getPostToLJDH(numStories) : recupere les derniers articles.
  2. sortedByScore(stories) : trie les articles par score.
  3. searchArticlesByTag(tag, numStories) : recherche par tag.
  4. searchArticles(search, numStories) : recherche par titre.

Chaque fonction renvoie un tableau d'objets Story (titre, URL, score, tags, nombre de commentaires, auteur).

Installation

npm install ljdhar

Utilisation

import { getPostToLJDH, sortedByScore, searchArticlesByTag, searchArticles } from 'ljdhar'; // Les 10 derniers articles getPostToLJDH(10) .then(stories => { console.log(stories); }).catch(err => { console.log(err) }); // Les 10 derniers tries par score getPostToLJDH(10) .then(stories => { const sortedStories = sortedByScore(stories); console.log(sortedStories); }).catch(err => { console.log(err) }); // Recherche par tag searchArticlesByTag('javascript', 10) .then(stories => { console.log(stories) }).catch(err => { console.log(err) }); // Recherche dans les titres searchArticles('hacker', 10) .then(stories => { console.log(stories) }).catch(err => { console.log(err) });

Contribuer

ljdhar a ete concu pour mon usage perso, mais je suis ouvert aux suggestions. Contacte-moi si tu as des idees.

Liens

Le projet date de mes premiers outils Node orientés automatisation. Il reste surtout intéressant comme exemple de petit adaptateur ciblé : peu de code, une sortie prévisible, et une limite claire dès que la source n'est pas contractuelle.

Article co-écrit avec l'IA · Images générées avec l'IA.