ljdhar : un package NPM pour récupérer les articles du Journal du Hacker
Tags: javascript, npm, webdev, package
Published: 2023-11-13 01:06:04

[![Substack Newsletter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbg4qlzlytxbzbvj97ia.png)](https://benoitpetit.substack.com/subscribe)

> Hello ca roule ? j'espere que oui, j'avais envie de vous partager mon petit projet perso qui me permet de récupérer les derniers articles du Journal du Hacker, le site communautaire qui référence les meilleurs contenus francophones sur l'informatique et le numérique. J'ai décidé de le mettre sur npm pour que tout le monde puisse l'utiliser, et j'espère que ça vous sera utile.

"Tu es fan du Journal du Hacker, le site communautaire qui référence les meilleurs contenus francophones sur l'informatique et le numérique ? Tu aimerais pouvoir accéder facilement aux derniers articles publiés sur ce site dans tes projets JavaScript ? … les trier par score, les rechercher par tag ou par titre ? Alors, tu vas adorer ljdhar 😄, un package NPM qui utilise Puppeteer pour récupérer les données du Journal du Hacker et te les renvoyer sous forme d'objets JavaScript, à intégrer dans tes projets, automatisation, etc ..."

![logo ljdhar](https://raw.githubusercontent.com/ethicalhcb/ljdhar/master/logo.png)

## Comment ça marche ?

Ljdhar contient plusieurs fonctions qui vous permettent de récupérer et de manipuler les articles du Journal du Hacker. Chaque fonction prend en paramètre le nombre d'articles que vous voulez récupérer, et renvoie un tableau d'objets Story. Chaque objet Story contient les détails d'un article, comme le titre, l'URL, le score, les tags, le nombre de commentaires, et le nom d'utilisateur de l'auteur.

Voici la liste des fonctions disponibles :

- `getPostToLJDH(numStories: number)`: Récupère les derniers articles du Journal du Hacker. Le nombre d'articles à récupérer est spécifié par numStories.
- `sortedByScore(stories: Story[])`: Trie les articles par score. Prend en entrée un tableau d'objets Story et renvoie un tableau trié d'objets Story.
- `searchArticlesByTag(tag: string, numStories: number)`: Recherche des articles par tag. Prend en entrée un tag et le nombre d'articles à récupérer, et renvoie un tableau d'objets Story.
- `searchArticles(search: string, numStories: number)`: Recherche des articles par titre. Prend en entrée une chaîne de caractères et le nombre d'articles à récupérer, et renvoie un tableau d'objets Story.

## Comment l'installer ?

Pour installer les dépendances du projet, il suffit de lancer la commande suivante :

```bash
npm install ljdhar
```

## Comment l'utiliser ?

Le fichier index.ts contient les fonctions décrites ci-dessus. Il suffit de les importer dans ton code et de les appeler avec les paramètres de ton choix. Voici quelques exemples :

```javascript
import { getPostToLJDH, sortedByScore, searchArticlesByTag, searchArticles } from 'ljdhar';

// Obtenez les 10 derniers articles
getPostToLJDH(10)
  .then(stories => {
    console.log(stories);
  }).catch(err => {
    console.log(err)
  });

// Obtenez les 10 derniers articles et triez-les par score
getPostToLJDH(10)
  .then(stories => {
    const sortedStories = sortedByScore(stories);
    console.log(sortedStories);
  }).catch(err => {
    console.log(err)
  });

// Recherchez des articles avec le tag 'javascript' et récupérez les 10 premiers
searchArticlesByTag('javascript', 10)
  .then(stories => {
    console.log(stories)
  }).catch(err => {
    console.log(err)
  });

// Recherchez des articles dont le titre contient 'hacker' et récupérez les 10 premiers
searchArticles('hacker', 10)
  .then(stories => {
    console.log(stories)
  }).catch(err => {
    console.log(err)
  });
```

À la base, ljdhar a été conçu pour être utilisé de façons personnelles, mais si vous avez des idées d'améliorations ou des suggestions, n'hésitez pas à me contacter. Beπ ✨

plus d'informations sur le package ici :
- NPM : [https://www.npmjs.com/package/ljdhar](https://www.npmjs.com/package/ljdhar)
- Github : [https://www.npmjs.com/package/ljdhar](https://www.npmjs.com/package/ljdhar)

---

> 🫶 Si vous aimez mes publications et souhaitez soutenir mon travail, vous pouvez faire un don en cliquant sur le lien Stripe Sponsor ci-dessous ou en scannant le code QR. [lien Stripe Sponsor](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

---

[![Stripe Sponsor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohkf7lrymedkort4w9iz.png)](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

--- 

👀 See me here : 

- [Substack](https://benoitpetit.substack.com/subscribe)
- [Mastodon](https://piaille.fr/@codingben) 
- [(X) Twitter](https://twitter.com/codingben_)
- [Github](https://github.com/benoitpetit)
- [NPM Packages](https://www.npmjs.com/~codingben)
- [benoitpetit.dev](https://benoitpetit.dev)
- [Dev.to](https://dev.to/benoitpetit)