Два дрібних скрипти для Greasemonkey

Бачу, що нагально треба щось написати, тож за браком чогось більш цікавого вирішила поділитися парою дрібниць для Greasemonkey. Вони занадто вузького вжитку, щоб викладати їх кудись на userscripts, але можуть бути зручними.
Я їх використовую в Фаєрфоксі, але нічого FF-специфічного в них нема, тож мають працювати і в Хромі.

Перший скрипт — для популярного хостингу картинок fastpic.ru (що його рекомендовано для вжитку на rutracker.org тощо). Його неважко модифікувати і для будь-якого іншого хостингу картинок. На таких сайтах завантажена картинка зазвичай показується на html-сторінці в оточенні зайвої для відвідувача інформації, як то реклама хостингу та стороння реклама. Цей скрипт знаходить на завантаженій сторінці посилання на власне файл картинки та завантажує її замість html-сторінки. Перевагою є також те, що навіть якщо сайт передбачує завантаження картинки за допомогою javascript, цей скрипт не потребує ввімкненого javascript і за таким же принципом можна написати скрипт, який буде працювати на потенційно небезпечних хостингах (бо деякі з них відомі як розсадники троянів).
Файл fix-fastpic.user.js

// ==UserScript==
// @name          Fix Fastpic
// @namespace     http://ya.nochka/
// @description   Fixes fistpic image hosting (redirects to image)
// @include       http://fastpic.ru/*
// @version       0.1 BETA!
// @lastupdated   2010-03-05
// ==/UserScript==

function main () {
  var body = document.getElementsByTagName("BODY");
  body=body[0];
  var scripts = body.getElementsByTagName("SCRIPT");
  var pic, s;
  for (var i=0; i<scripts.length; i++) {
    s = scripts[i];
    if (pic = s.innerHTML.match(/loading_img\s*\=\s*'([^']*)'/) ) {
      document.location.href = pic[1];
      break;
    }
  }
}

main();

Інший скрипт — для перегляду сторінок Вікіпедії. Він дивиться, чи є для завантаженої сторінки варіанти англійською/російською/українською мовами та, якщо є, додає відповідні посилання після заголовку статті, так що одразу видно, який із цих варіантів існує, і його не треба шукати у довгому списку мов.
Файл wiki-lang.user.js

// ==UserScript==
// @name          wiki-lang
// @namespace     http://ya.nochka/
// @description   Add after title en/ru/ua lang links if they exist
// @include       http://*.wikipedia.org/*
// @version       1.0
// @lastupdated   2011-06-22
// ==/UserScript==

function main () {
  var en="", ru="", uk="";
  var heading = document.getElementById("firstHeading");
  var langs = document.getElementById("p-lang")
                      .getElementsByTagName("li");
  for (var i=0, l=langs.length; i<l; i++ ) {
    if (langs[i].className.match(/\binterwiki-en\b/)) {
       en = langs[i].innerHTML;
    }
    else if (langs[i].className.match(/\binterwiki-ru\b/)) {
       ru = langs[i].innerHTML;
    }
    else if (langs[i].className.match(/\binterwiki-uk\b/)) {
       uk = langs[i].innerHTML;
    }
  }
  var links = (en ? " &nbsp; ["+en+"]": '') + (ru ? " &nbsp; ["+ru+"]": '') + (uk ? " &nbsp; ["+uk+"]": '');
  var elem = document.createElement("div");
  elem.innerHTML=" <span style='font-size:70%'>"+links+"</span>";
  heading.parentNode.insertBefore(elem, heading.nextSibling);
}

main();

коментарі:

tercius 19.08.2011 10:53
Бачу, що нагально треба щось написати
ян лі, ви - молодець ))) справді!

поставив би навіть два плюси, якби система дозволяла )
+1Bossly 19.08.2011 18:47
думаю варто їх запаблішати на userscripts.org - щоб бажаючі могли їх встановити
MFX 19.08.2011 20:43
rutracker.org не потрібен, є hurtom.com

додати коментар: