Skip to content

NodeJS app that scrap leboncoin.fr every minutes with the latest offers then send push notifications

Notifications You must be signed in to change notification settings

Tucsky/push-leboncoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

push-leboncoin

This is a implementation of the Firebase Cloud Messaging quickstart for NodeJS The app itself scrap leboncoin.fr every minutes with the latest offers then send push notifications
It just monitor ONE url at the moment, the default config aims to scrap the latest Paris bike related offers (see #configuration)

  • Scrap le contenu d'un feed leboncoin
  • Formate les données, filtre par mot-clé(s) (nom / description d'annonce)
  • Sert une web app (via express) pour s'enregistrer au flux de notif push
  • Envois les push aux devices enregistrées dès qu'une annonce est récupérée par le scraper

Requirements

Vous aurez besoin d'un Projet Firebase
Firebase fournit 2 fichiers conf, à intégrer au projet comme ceci :

Usage

npm install --only=production
node server.js

Au démarrage le serveur récupère la première page d'annonce et envois une push de test, ensuite l'app va scrape la liste toutes les 5 minutes (paramétrable) en envoyant un push à tous les appareils enregistrés et ce pour toutes les nouvelles qui sont conforme au filtres (blacklist/whitelist)

Enregistrement des appareils

Pour recevoir les push un appareil doit autoriser les notifications depuis sont navigateur (chrome/firefox/android) lors de l'autorisation le serveur garde le token généré en mémoire et s'en servira pour envoyer les notifs. Pour enregistrer l'appareil l'utilisateur doit aller sur la web app localhost:1337 (port configurable :) et acceptez les permissions "autoriser les notifications".

Configuration

Les configurations se situent dans config.js

Propriété Description
url Url leboncoin.fr pointant vers une liste d'annonces filtrée
port Port du serveur
whitelist Mot clés obligatoires dans la fiche de l'annonce (optionnel)
blacklist Mot clés interdits dans la fiche de l'annonce (optionnel)
interval Intervale de récupération des dernieres annonces (en ms)
countdown Delais d'envois des notifications push après récupération des dernières annonces (en ms)
timetolive Passé ce nombre de seconde la notification ne pourra plus être envoyée (appareil en veille / hors ligne)

Le fichier de conf se créé automatiquement au premier démarrage et prend les valeurs par défaut suivantes

{
	"url": "https://www.leboncoin.fr/velos/offres/ile_de_france/?th=1&ps=6&pe=12",
	"port": 1337,
	"whitelist": [],
	"blacklist": [],
	"countdown": 10000,
	"interval": 180000,
	"timetolive": 10800,
}

Développement

Le backend se situe dans server.js, le front dans public avec la logique frontend dans public)
Le projet utilise gulp pour minifier les ressources front en 2 fichiers app.min.js/css.

Installez gulp si vous ne l'avez pas déjà fait

npm install -g gulp

Pour activer la compilation automatique du sass à la sauvegarde (et la minification automatique des fichiers .js)

gulp watch

About

NodeJS app that scrap leboncoin.fr every minutes with the latest offers then send push notifications

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published