Appli: Metabook - search ebooks on multiple websites

Parfois un pouet sur Mastodon pour partager une URL et une idée concorde avec un truc que t'avais déjà fait : https://framapiaf.org/@bronco/108423992250980547

Ainsi, Gilles me fait passer une adresse de métamoteur de recherche d'ebooks ( https://recherche-ebook.fr/ ) tout en notant que ce serait bien de faire une version qui soit plus propre... (pas de JS, de redirections, de pubs etc..)

therese.jpeg

écoutez Thérèse, comme la vie est savoureuse, n'est-ce pas...

Il se trouve que je m'étais fait un script dont le but était justement de charger des urls, de les parser, de récupérer et d'organiser du contenu.

Ça s'appelle Slurp
Pour faire simple, on crée des «profils» correspondant à une série d'URL avec la regex de parsing et le template correspondants. Il suffit alors d'appeler le profil pour obtenir une page de résultats mise en forme.

Comment ça marche ?

  1. on accède au script : ?p=<profil>
  2. slurp accède au fichier de configuration du profil dans packs/<profil>.php
  3. pour chaque url du pack, il charge la page, la parse, met en forme les données dans le template

Le pack est un array du type:

$packs['<profil>']=[
    [
        'url'=>'http://urltoparse.com/',
        'pattern'=>'REGEX PATTERN with (?<name>..) capture',
        'template'=>'<li> HTML Template where data is inserted to : use %name% '
    ],
    [
        'url'=>'http://urltoparse.com/',
        'pattern'=>'REGEX PATTERN with (?<name>..) capture',
        'template'=>'<li> HTML Template where data is inserted to : use %name% '
    ],

];

Dans le template de chaque url,

  • on peut utiliser %variable% pour placer les captures regex : (?<title>[^"]*?)%title%
  • deux variables sont toujours accessibles:
    • %ROOT% pour accéder à l'url du pack
    • %DOMAIN% pour accéder au domaine de cette url (pour compléter une URL relative par exemple)
Ya plus qu'à   adapter

J'ai ajouté la possibilité de créer un dossier au nom du pack contenant un header et un footer pour qu'on puisse faire un site à partir d'un profil. packstemplates/<profil>/

J'ai ensuite créé un pack contenant les principaux sites d'epubs, cherché les patterns regex...

Et voilà: metapub cherche sur six sites en même temps: http://slurp.warriordudimanche.net/?p=ebook

meta.jpg

Comme d'hab

  1. c'est fait à l'arrache, mais vous avez l'habitude
  2. c'est cadeau, faites-en ce que vous voulez: avec slurp, vous pouvez parser les sites que vous voulez (warez, catalogues, porno... )
  3. vous pouvez installer slurp sur votre serveur et adapter le pack ebook au fur et à mesure que des changements se font (domaine, html de la page etc)
  4. vous pouvez télécharger slurp avec le pack ebook ici: http://slurp.warriordudimanche.net/?download

A venir ?

  • On peut déjà commencer par faire une UI moins dégueu, ce sera pas mal
  • slurp permet de récupérer le résultat en json mais le RSS n'est pas encore implémenté...
  • ajouter des sites... et les maintenir.

Enjoy !

Quelques alternatives à T411 - De l’épice pour la pensée

Fil RSS des articles