Перепишите части ссылок, используя Greasemonkey и FireFox - PullRequest
2 голосов
/ 13 июля 2010

Моя подруга загрузила на webshots.com около 20 галерей снимков природы, которые она сделала за последний год или около того, однако я только что приобрела для нее платный аккаунт Flickr в качестве подарка на день рождения и хочу скачатьвсе ее фотографии с веб-сайтов и их готовность загрузить на Flickr, как только она получит электронное письмо с сообщением об обновлении своего аккаунта (ее нет в стране - нет доступа в Интернет).

У меня нет доступа кее учетная запись webshots, поэтому я прибегнул к Greasemonkey и DownThemAll, чтобы начать сохранять ее изображения в папки на моем рабочем столе.

Я немного новичок в javascript и во всех "пользовательских скриптах", доступных для Greasemonkey donТочно делать то, что мне нужно.

Когда страница галереи загружена:

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

Мне нужен скрипт Greasemonkey, чтобы найти все ссылки на изображения:

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

и перепишите их, чтобы отразить эту схему:

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

Это легко сделать?Вроде бы так и было, но я не могу понять, как это правильно.

Вот мой текущий скрипт Greasemonkey, который не работает:

// ==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");
}

Ответы [ 3 ]

6 голосов
/ 13 июля 2010
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");
}

должен сделать трюк

2 голосов
/ 13 июля 2010

Ваш код был в порядке, но для опечатки:

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

Replace liks с ссылками и все работает.

Откройте консоль Firebug, включите большинство предупреждений и перезагрузите страницу.Вы можете увидеть ошибки, которые может вызвать ваш скрипт (плюс метрическая тонна ошибок самого сайта).

1 голос
/ 27 августа 2012

Довольно поздний ответ, но я все равно опубликую на всякий случай, если он пойдет на пользу.

Я сам новичок в этом, но не думаю, что это поможетзначение для links [i] .href, так как это просто переменная.Вы не будете ничего менять на странице, делая это.Я думаю, вы должны заменить это:

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

на это:

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