howto:urlrewrite

Некоторые рассылки не предоставляют правильную ссылку для скачивания торрента, однако ее можно создать из URL описания (или URL загрузки).

Рассмотрим на примере rutracker.org. В их рассылке вместо URL для скачивания торрента есть ссылка на тему раздачи (URL описания):

https://rutracker.org/forum/viewtopic.php?t=NUMBER, где NUMBER – номер раздачи.
Правильная ссылка для скачивания (URL загрузки) будет такой: https://rutracker.org/forum/dl.php?t=NUMBER

Превратить одно в другое можно с помощью регулярных выражений (см. выше) примерно таким образом:

  • создадим выражение для захвата нужных частей строки из URL описания:
    • протокола – (https?://) (чтобы ничего не сломалось, если протокол изменится)
    • суффикса домена rutracker – (org|net) (если придется переходить с одного зеркала на другое)
    • собственно номера раздачи – (\d+)
      Скобки () означают, что мы «захватываем» часть строки, чтобы в дальнейшем ее использовать. Тогда ${1} будет означать «содержимое 1-ой пары скобок», ${2} – второй и т.д.
    • соберем всё вместе: #(https?://)rutracker\.(org|net)/forum/viewtopic\.php\?t=(\d+)#i
  • создадим шаблон для создания URL загрузки:
    • ${1}rutracker.${2}/forum/dl.php?t=${3}
      Это не регулярное выражение; просто строка, в которой ${N} будет заменено на захваченное содержимое N-ной пары скобок
  • создадим новое правило в Менеджере правил:
  • В контекстном меню списка раздач (или в контекстном меню любой рассылки) выберите Менеджер правил
  • Добавьте новое правило – Добавить и дайте ему понятное имя
  • В списке Параметры правила выберите «Если URL описания торрента совпадает с шаблоном»
  • В поле под списком впишите созданное выше регулярное выражение для захвата из URL описания:
    #(https?://)rutracker\.(org|net)/forum/viewtopic\.php\?t=(\d+)#i
  • В списке ниже выберите «заменить URL загрузки на»
  • В поле под списком впишите созданный выше шаблон:
    ${1}rutracker.${2}/forum/dl.php?t=${3}
  • В поле Рассылка выберите «Все рассылки» (поскольку наше правило относится к трекеру, а не к определенной рассылке; рассылки с других трекеров не будут соответствовать регулярному выражению и будут пропущены этим правилом)

После нажатия ОК все новые торренты с рассылок rutracker будут автозагружаться с правильных ссылок.

  • howto/urlrewrite.txt
  • Последнее изменение: 2022/08/30 21:31
  • (внешнее изменение)