Réécrire des parties d'une URL dans Greasemonkey et FireFox

Un de mes amis a téléchargé une vingtaine de galeries de photos naturees qu'elle a terminées au cours de l'année écoulée sur Webshots.com. Cependant, je viens d'acheter un compte Flickr payé pour elle comme un cadeau d'anniversaire et je veux tout télécharger Des photos à partir de webshots et les préparer à télécharger sur Flickr une fois qu'elle a reçu l'email de sa mise à jour de son compte (elle est hors du pays – pas d'accès à Internet).

Je n'ai pas accès à son compte Webshots, alors j'ai eu recours à Greasemonkey et DownThemAll pour commencer à sauvegarder ses images dans des dossiers sur mon bureau.

Je suis un peu nouveau pour javascript, et tous les "scripts d'utilisateur" disponibles pour Greasemonkey ne font pas exactement ce dont j'ai besoin.

Lorsqu'une page de galerie est chargée:

(http://[category].webshots.com/album/[album-id]), 

J'ai besoin du script Greasemonkey pour trouver tous les liens vers les images:

 (http://[category].webshots.com/photo/[photo-page-id]) 

Et réécrivez-les pour refléter ce schéma:

 (http://community.webshots.com/photo/fullsize/[photo-page-id]) 

Est-ce que c'est facile à faire? Il semble que ce serait, mais je n'arrive pas à bien comprendre.

Voici mon script Greasemonkey actuel qui ne fonctionne pas:

 // ==UserScript== // @name Webshot Gallery Fixer // @namespace WGF // @description Fixes webshot galleries // @include http://*.webshots.com/* // ==/UserScript== var links = document.getElementsByTagName("a"); //array var regex = /^(http:\/\/)([^\.]+)(\.webshots\.com\/photo\/)(.+)$/i; for (var i=0,imax=links.length; i<imax; i++) { links[i].href = liks[i].href.replace(regex,"$1community$3fullsize/$4"); } 

 var links = document.getElementsByTagName("a"); //array var regex = /^(http:\/\/)([^\.]+)(\.webshots\.com\/photo\/)(.+)$/i; for (var i=0,imax=links.length; i<imax; i++) { links[i].href = links[i].href.replace(regex,"$1community$3fullsize/$4"); } 

Devrait faire l'affaire

Votre code était bien mais pour une faute de frappe:

links[i].href = liks [i] .href.replace(regex,"$1community$3fullsize/$4");

Remplacez les liks par des liens et cela fonctionne.

Ouvrez la console Firebug, activez la plupart des avertissements et rechargez la page. Vous pouvez voir les erreurs que votre script pourrait provoquer (plus une tonne métrique d'erreurs du site lui-même).

Une réponse assez tardive, mais je publierai de toute façon au cas où cela va bien faire.

Je suis un peu novice sur ce genre de choses, mais je ne pense pas qu'il aidera à attribuer une valeur aux liens [i] .href car ce n'est qu'une variable. Vous ne changerez rien sur la page en le faisant. Je pense que vous devriez remplacer ceci:

 links[i].href = links[i].href.replace(regex,"$1community$3fullsize/$4"); 

avec ça:

 document.getElementsByTagName("a")[i].href = links[i].href.replace(regex,"$1community$3fullsize/$4");