Видео ролики бесплатно онлайн

Смотреть домашнее видео

Официальный сайт zakonoproekt2010 24/7/365

Смотреть видео бесплатно

23.01.10 23:08 stogerc

Tips & tricksgoogle chrome + magnet-ссылки

Магнет ссылки предназначены для указания на ресурсы, доступные к загрузке через p2p сети. Такие ссылки в основном идентифицируют файлы не по их расположению или имени, а по содержанию, точнее, по хеш-коду.

При клике по такой ссылке google chrome передаёт эту ссылку утилите xdg-open, которая в свою очередь передаёт ссылку конечной программе. Но вряд ли xdg-open точно знает какая программа должна обрабатывать magnet-ссылку и у меня, например, xdg-open передавала ссылку x-www-browser, коим в моей системе является google-chrome. Сейчас я расскажу вам как научить xdg-open открывать magnet-ссылки тем, чем нужно.

Для этого смотрим, где находится файл xdg-open:
whereis xdg-open

и открываем его для редактирования
nano /usr/bin/xdg-open

Далее идем в самый конец файла и видим строки:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case "$DE" in
    kde)
    open_kde "$url"
    ;;
    gnome)
    open_gnome "$url"
    ;;
    xfce)
    open_xfce "$url"
    ;;
    generic)
    open_generic "$url"
    ;;
    *)
    exit_failure_operation_impossible "no method available for opening '$url'"
    ;;
esac

Понятно, что для open_xfce соответствует то, что команда будет выполняться в xfce, для open_kde то, что в kde и т.д. При необходимости ненужные DE можно стереть. Теперь нужно добавить условие, которое будет выполняться, если переданная ссылка magnet. Ниже приведен пример для всех DE и torrent клиента deluge.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
case "$DE" in
    kde)
    if (echo $url | grep '^magnet') then
        deluge "$url"
    else
    open_kde "$url"
    fi
    ;;
    gnome)
    if (echo $url | grep '^magnet') then
        deluge "$url"
    else
    open_gnome "$url"
    fi
    ;;
    xfce)
    if (echo $url | grep '^magnet') then
        deluge "$url"
    else
    open_xfce "$url"
    fi
    ;;
    generic)
    if (echo $url | grep '^magnet') then
        deluge "$url"
    else
        open_generic "$url"
    fi
    ;;
    *)
    exit_failure_operation_impossible "no method available for opening '$url'"
    ;;
esac


Естественно, что вместо deluge вы можете подставить любую программу.
Как я уже сказал ненужные DE можно удалить и для openbox вышепреведённый код можно заменить на:
1
2
3
4
5
  if (echo $url | grep '^magnet') then
        deluge "$url"
    else
        open_generic "$url"
    fi

Вот и всё, теперь можете попробовать покликать magnet-ссылки на piratebay или на torrindex



digiwhite 23.01.10 23:21 # +0
А этот скрипт (имеется в виду xdg-open) использует только chrome? Если знаете что еще его использует то можете написать?
stogerc 24.01.10 00:11 # +0
Если хотите узнать что в вашей системе использует xdg-open, выполните
aptitude remove xdg-utils

и посмотрите какие программы удаляются по зависимости. Потом, естественно, отмените удаление :)
digiwhite 24.01.10 00:15 # +0

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Чтение списков пакетов... Готово
Построение дерева зависимостей      
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  libclucene0ldbl libxine1-x kdebase-runtime-data-common libxine1-misc-plugins libxcb-xv0 kde-icons-oxygen libxine1-bin libexiv2-5 liblzma0 libsoprano4 kdelibs5-data kdiff3-doc
  libxcb-shape0 libstreamanalyzer0 phonon-backend-xine libkonq5-templates libstreams0 exiv2 libxcb-shm0 soprano-daemon kdebase-runtime-data libxine1-console libxine1
Для их удаления используйте 'apt-get autoremove'.
Пакеты, которые будут УДАЛЕНЫ:
  kdebase-runtime kdebase-runtime-bin-kde4 kdelibs-bin kdelibs5 kdiff3 khelpcenter4 libknotificationitem1 libkonq5 libplasma3 python-ubuntuone-client ubuntuone-client
  ubuntuone-client-gnome umbrello xdg-utils
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 14 пакетов, и 0 пакетов не обновлено.
После данной операции, объём занятого дискового пространства уменьшится на 59,1MB.
 

stogerc 24.01.10 01:11 # +0
У меня там был всего лишь deluge, ktorrent, google-chrome и всякая мелочь, так что не удивляйтесь.
divius 24.01.10 00:57 # +0
Общий ответ таков: все, кто следует стандартам в этой области. Но приложения, привязанные к конкретному DE имеют тенденцию игнорировать XDG и обращаться напрямую к ***-open.
stogerc 23.01.10 23:27 # +0
Описывал способ для google chrome потому что в Firefox и Opera все это просто настраивается в опциях.
В firefox нужно зайти в Edit>>Preferences, выбрать вкладку Applications, найти строку magnet и настроить в поле action.
В opera: Tools>>Preferences, вкладка Advanced, подвкладка Programs, далее нажать Add и добавить нужное правило для нужного протокола, в данном случае magnet.
digiwhite 23.01.10 23:29 # +0
Да нет, я к тому, что этому скрипту может можно найти какое-то дополнительное экзотическое применение :).
stogerc 23.01.10 23:34 # +0
Я вас понял, просто вы успели написать комментарий в то время, когда я писал свой =), а где ещё используется xdg-open даже и не знаю.
squ1b3r 23.01.10 23:41 # +0
А может до кучи еще подскажите как научить хром ословые ссылки понимать?
stogerc 23.01.10 23:51 # +0
Ну ведь принцип одинаковый, просто код будет чуть другой, тоесть
1
2
3
4
5
if (echo $url | grep '^ed2k') then
        amule "$url"
    else
        open_generic "$url"
    fi

Условий можно писать сколько угодно, можно использовать case, и главное не забудьте, оставить обработчик простых ссылок, тоесть open_generic "$url"
digiwhite 23.01.10 23:44 # +0
Так ведь так же :).

1
2
3
4
5
6
7
8

  if (echo $url | grep '^magnet') then
        deluge "$url"
  else
     if (echo $url | grep 'ed2k') then
        <имя_клиента> "$url"
  fi
 


Где-то так.
digiwhite 23.01.10 23:45 # +0
а да, в конце если не совпало передать в open_generic. Ну смысл я думаю вы поняли.
squ1b3r 23.01.10 23:47 # +0
благодарствую )
digiwhite 23.01.10 23:59 # +0
grep '^ed2k' Лучше так :).
squ1b3r 24.01.10 00:02 # +0
тут на самом деле не суть как, сама ссылка все равно кривая и ed2k ее просто не перехватывает (
squ1b3r 23.01.10 23:55 # +0
Правда вот вся суть в том что хром как то извращает ed2k ссылки и их даже нельзя просто скопировать и вставить, поэтому и всякий перехват не работает. Давно уже ищу решение этой проблемы да так и не нашел (
digiwhite 24.01.10 00:02 # +0
Как вариант - перехватывать все ссылки и записывать его в журнал. Потом посмотреть что он там передает.

Перед
case "$DE" in
вставьте например:
1
2
3

echo $url >> /tmp/intercepted_urls.log
 


Ссылки можно будет посмотреть в /tmp/intercepted_urls.log.
squ1b3r 24.01.10 00:05 # +0
да нет вы меня не поняли, сам хром как то извращает ссылку, то есть если ее просто скопировать в буфер и вставить в осел, он говорит извиняйте инвалид линк, то есть передавать линк куда-то уже бессмысленно, с ним надо что-то сначала сделать и потом уже передавать. Вот такая котовасия
digiwhite 24.01.10 00:12 # +0
[troll on]
Это что, такая защита от перацтва?
[/troll off]
squ1b3r 24.01.10 00:16 # +0
Это очень давно уже обсасывается на гугле.
Вот для примера, верхняя ссылка от фф нижняя от хрома:

ed2k://|file|%D0%A3%D1%81%D0%BF%D0%B5%D1%82%D1%8C%20%D0%B4%D0%BE%20%D0%BF%D0%BE%D0%BB%D1%83%D0%BD%D0%BE%D1%87%D0%B8.Midnight%20Run.1988.mkv|9121117929
ed2k://xn--%7Cfile%7C%20%20-3fno8d1c1brdcmj7b4azp0k9f.midnight%20run.1988.mkv%7C9121117929%7Ca35a33e91d14dcb48fa4808157eee050%7C/%7Csources,10.51.115.118:4662%7C/
digiwhite 24.01.10 00:18 # +0
Мда... чего-то жостко хром преобразует ссылку то :(
squ1b3r 24.01.10 00:21 # +0
Вот и я о том же, и грустно что довольно давно висит этот вопрос и решения до сих пор нет (
divius 24.01.10 01:20 # +0
Кодирует в соответствие со стандартами, т.е. всё, кроме англицких букв и некоторых символов кодируется символом процента + код символа.
т.е. надо как-то каждый %XX заменить на chr(fromhex(XX))

Как сделать на баше - не знаю, можно написать примочку на питоне что-н типа:
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/python

import sys

if len(sys.argv) < 2:
        sys.exit(1)

import urllib
print urllib.unquote(sys.argv[1])
 

но не уверен, что будет работать с русскими буквами.
digiwhite 24.01.10 01:26 # +0
Так вероятно что UTF. Должно и с русскими работать.
digiwhite 24.01.10 00:16 # +0
Таки покажите что выдает, ради интереса.
pioner14 24.01.10 00:12 # +0
вот что выдает в kde:

Невозможно запустить процесс Невозможно создать вспомогательный процесс ввода/вывода.
Сообщение klauncher: Неизвестный протокол «magnet».
pioner14 24.01.10 00:15 # +0
клиент - ktorrent
booley 24.01.10 02:44 # +0
Стандарт был создан в 2002 году, отчасти как обобщение, независимое от конкретных производителей программного обеспечения и проектов, URI-схем ed2k: и freenet:, использующихся сетями eDonkey2000 и Freenet соответственно. Создание стандарта сопровождалось попыткой следовать стандартам URI от IETF настолько, насколько это было возможным. Среди приложений, поддерживающих magnet-ссылки, Shareaza, aMule, DC++, Azureus, BearShare, gtk-gnutella, Kazaa, LimeWire, Morpheus, Transmission, TrustyFiles и μTorrent.

(c) Wikipedia
Капитан Очевидность считает нужным добавить: ktorrent'a в этом списке нет.
ktorrent начнет поддерживать magnet-ссылку только с четвертой версии.

Пруфлинк: http://ktorrent.org/wiki/index.php/FAQ#Does_KTorrent_support_magnet_links.3F
booley 24.01.10 02:45 # +0
Мои извинения, не увидел этого комментария:
http://welinux.ru/post/2235/#cmnt39196
pioner14 24.01.10 00:14 # +0
Может у меня klauncher из за того что мой KDE 4.3.95 еще сыроват ругается
stogerc 24.01.10 00:16 # +0
Странно очень, попробуйте именно вот так:
1
2
3
4
5
 if (echo $url | grep '^magnet') then
        ktorrent "$url"
    else
        open_kde "$url"
    fi

Удалив все остальные строки
stogerc 24.01.10 00:19 # +0
Ага у меня тоже самое, у меня ktorrent на все магнет-ссылки ругается, даже если я добавляю их из интерфейса.
pioner14 24.01.10 00:24 # +0
Вот при таком виде:
1
2
3
4
5
6
7
8
9
10
11

case "$DE" in
    kde)
    if (echo $url | grep '^magnet') then
        ktorrent "$url"
    else
      open_kde "$url"
    fi
    ;;
   esac
 

Та же ошибка
stogerc 24.01.10 00:30 # +0
Я же говорю, тут ошибка в самом ktorrent, вы попробуйте добавить magnet-ссылку через интерфейс программы, если не получится, то надо копать уже в направлении ktorrent.
pioner14 24.01.10 00:32 # +0
Понятно. Спасибо.
эх...
pioner14 24.01.10 00:35 # +1
Вроде как в ktorrent магнет ссылки будут потдерживаться лишь в версии 4.0 которая выйдет в феврале
dyuss 12.02.10 20:24 # +0
спасибо. Ваша статья мне помогла.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 99)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2018 из 153 городов)
            Топ пользователей Топ блогов
            В сети: ko10ok

            Новенькие: asid, BSDevil, proton13, straton13, chipps
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн