Opera to FlashGet redirector
|
elGeminy 11/15/06 08:35 PM |
|
В общем, решил и я накатать приблуду к Опере, которая бы направляла линки во FlashGet.
Че умеем:
- закачать выбранный линк
- закачать все линки со страницы
- закачать все картинки со страницы (включая фоновую картинку)
- закачать все с фильтром типа файла
- парсить на предмет флешек
- закачать видео с сайта типа youtube.com и video.google.com. Загрузка основывается на движке VideoDownloader. Какие сайты поддерживаются, смотрим тут: _//javimoya.com._
Какие проблемы:
- с русской азбукой
Как используем, пример:
Code:
[Link Popup Menu]
; закачать линку
Item, "Download with FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l /src %u"
--------------------1
; закачать все линки
Item, "Download all" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href /img /flash"
--------------------2
; качаем архивы, типы указываем
Item, "Archives" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href |rar|zip|cab|arj|lzh|ace|7z|tar|gzip|uue|bz2|jar|iso|z|exe|dll|"
; качаем картинки
Item, "Images" = Execute program, "eof.exe", "/nowindow /page %S /src %u /img /href |jpeg|jpg|gif|tif|svg|tiff|bmp|png|ico|cur|ai|ani|dib|psd|"
; качаем видео с сайта типа youtube.com
Item, "Video special" = Execute program, "eof.exe", "/video %u %T"
Подробности в архиве
Все предложения приветствуюся
Все баги плз сопровождать страницей, на которой они были замечены )
Примечания:
- Все это, конечно, можно было сделать и на скриптах, но с ними я с детства плохо дружу... кроме того, используется не стандатрный MS парсер
- парсится не страница прямо в опере, а сохраненная копия в кэше. Иногда Опера не успевает создать кэш, и приходится вызывать по второму разу
|
Re: Opera to FlashGet redirector
|
elGeminy 11/16/06 10:37 PM |
|
Маленькое исправление и маленькое дополнение.
Дополнение: Наткнулся на сайт, где были маленькие превьюхи картинок, с ссылками на большие. Задолбало кликать по ссылке, искать на ней картинку и сохранять ее. Короче.
Умеем: по клику на ссылку выкачивать страницу по этой ссылке и парсить ее на предмет чего там вам нужно.
Code:
[Link Popup Menu]
Item, "Download all images on from link with FlashGet" = Execute program, "eof.exe", "/sourcepage %l /src %l /img /href |jpeg|jpg|gif|tif|svg|tiff|bmp|png|ico|cur|ai|ani|dib|psd|"
[Hotclick Popup Menu]
Item, 999000019 = Execute program, "eof.exe", "/sourcepage %T /src %l /img /href |jpeg|jpg|gif|tif|svg|tiff|bmp|png|ico|cur|ai|ani|dib|psd|"
См. readme
Получается всяко быстрее, чем если грузить ее браузером, + она не мешает. Главное найти среди полученных ссылок нужную
Я вот только не знаю, нужно ли сюда выкладывать обновления какие-сь, если народ не заинтересован - тута не очень удобный интерфейс...
|
Re: Opera to FlashGet redirector
|
Monax 11/19/06 08:37 AM |
|
elGeminy, тема несомненно востребована, но сложновато это все (я про коды говорю). Я, например, понятия не имею что с этими кодами, которые ты даешь, делать (а разом со мной и большая часть людей использующих Оперу). Прикрепленные файлы скачал и никакой инструкции там в упор не нашел. Идеально будет, если ты сделаешь типа саморазорхивирующегося файлика на котором клацнуть надо и все или на худой конец напиши файлик инструкцию, что с этими кодами делать. И спасибо тебе за желание изменить жизнь с Оперой к лучшему!
|
Re: Opera to FlashGet redirector
|
elGeminy 11/19/06 03:49 PM |
|
Черт. Не подумал. Рассказываю. Это утилита, ехе-шник, который запускается оперой по клику меню и говорит утилите, что нужно пропарсить страничку в кэше на предмет нужных объектов и, если таковые найдены, передать их в FlashGet. Можно, кстати, передавать их в любой другой качальщик, поддерживающий такие закидоны (а поддерживать должны все), но их нет у меня и желания ставить и ковырять их API нету. Утилита написана в C++ и используется не стандартный MSHTML парсер (как было бы на скриптах), но много более легкий и быстрый парсер, но имеющий некоторые ограничения, кот. пока что никак не мешають.
То была прелюдия, теперь как эту хрень использовать. Во первых, в процессе парсинга можно показывать маленькое прозрачное окошко статуса внизу справа экрана. В нем пишется процесс работы и ошибки, если такие есть. Оно может быть полезен при длительных парсингах, чтобы было видно, работает улитита еще или нет. Если в процессе есть критическая ошибка, она пишется красным цветом и окно не закрывается и висит ждет ответа. Также буудет, если не найдено ни одного требуемого объекта. Окно в любой момент закрывается правым кликом по нему, а левым - таскается. Ключ, кот. говорит НЕ показывать окно вообще: /nowindow. Кстати, этот ключ можно убрать везде хотя бы на время тестирования утилиты и проверки правильности расположения ключей (если программа считает ключи неверными, она напишет в окне что то типа "неверный аргумент").
Далее, что означают ключи и как ими пользоваться.
------
Есть 4 ключа первого уровня. Они всегда должны идти первыми в списке ключей и не могут использоваться друг с другом. Исключение - ключ /nowindow может идти перед ними.
/lnk ключ, который говорит взять одну линку и передать FlashGet. Вторым параметром идет сама линка: /lnk %l Третьим параметром может идти описание линка, оно будет в FlashGet в поле Description (это если вы выделите линку на странице и нажмете на нее правым кликом - выделенный текст пойдет в описание): /lnk %l %T
/page ключ, который говорит взять сраницу из кэша и пропарсить ее на предмет кого там вам нужно. Вторым параметром идет адрес кэшированной сраницы на диске: /page %S
/sourcepage ключ, который говорит взять линку и закачать ее (закачивает ее программа, а не FlashGet!), и пропарсить закачанную сраницу на предмет кого там вам нужно. Вторым параметром идет сама линка: /sourcepage %l Поддерживаются только http страницы
/video ключ, который говорит найти видео на странице. Видео имеется в виду то, которое показывается на сайтах типа youtube.com и video.google.com. Обычно это видео с расширением .flv. Сама программа видео не ищет . Она передает адрес страницы одному движку в сети (Videodownloader.com), кот. ее парсит и возвращает программе ответ. Если у вас есть файерволл, то тут нужно будет пропустить программу в сеть, естессно. Программа передает найденный линк с видео FlashGet. Во-первых, бывают сбои в движке, во-вторых, к закачанному файлу нужно добавить расширение .flv (если его еще нет). Вторым параметром идет адрес страницы, содержащей видео: /video %u Третьим параметром может идти описание видео, оно будет в FlashGet в поле Description (это если вы выделите название видео на странице - выделенный текст пойдет в описание): /video %u %T
------
Есть один обязательный параметр. Он должен быть всегда - это адрес страницы-источника: /src %u Исключение только для ключа /video, там источник передается и так.
------
Далее ключи, которые указывают, на предмет чего парсить страницу.
/href Искать ссылки (теги <a href />) Если вы хотите передать Flashget все ссылки, вы пишете просто этот ключ и все. Но можно отфильтровать ссылки по типам файлов. Для этого вторым параметром пишем типы файлов, которые удовлетворяют фильтру. Типы должны быть в таком виде: |тип1|тип2|. Напрмер, вы хотите передать Flashget только ссылки, которые ссылаются на архивы типов zip, rar, 7z и cab: /href |rar|zip|7z|cab|
/img искать картинки (теги <img src />) Фильтр тут не предусмотрен. Сначала хотел сделать фильтр по размеру картинки, потом вспомнил возможные нюнсы html и забил на это Также смотрится тег <body>, если есть фоновая картинка, она гребется тоже. Я знаю только такие варианты описание фоновых картинок: <body background = "image.jpg"> <body style = "background-image:url(image.jpg)">
/flash Искать флеш-ролики. Я не силен в данном вопросе, полазив по сети, решил, что флешки могут скрываться только так: <object><param name = "movie" value = "flash.swf" /></object> Только я забил на <object>, я ищу просто такую комбинацию: <param name = "movie" value = "flash.swf"> Если кто-то знает другие варианты расположения флешек на сранице - вэлкам
------
Это были возможные ключи. Теперь как эту всю срань использовать и как встроить в меню Оперы. Ищем свой файл меню Оперы. Надеюсь, все уже знают, где воно валяется и как его редактировать, этот вопрос обсасывался уже раз сто по всей сети.
------
1. Втыкаем просто как нам привычно по IE, без всяких наворотов:
Code:
; меню ссылки [Link Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l %T /src %u" Item, "Закачать все с этой ссылки при помощи FlashGet" = Execute program, "eof.exe", "/sourcepage %l /src %l /href /img /flash"
; меню ссылки-картинки [Image Link Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l /src %u" Item, "Закачать все с этой ссылки при помощи FlashGet" = Execute program, "eof.exe", "/sourcepage %l /src %l /href /img /flash"
; меню выделенного текста [Hotclick Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l %T /src %u" Item, "Закачать все с этой ссылки при помощи FlashGet" = Execute program, "eof.exe", "/sourcepage %l /src %l /href /img /flash"
; меню страницы [Document Popup Menu] Item, "Закачать все при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href /img /flash" Item, "Закачать видео при помощи FlashGet" = Execute program, "eof.exe", "/video %u %T"
2. наворачиваем с фильтрами. Я лично для фильтров создал свое меню.
Code:
; новый раздел меню. Фильтры по наиболее распрастраненным типам. Кому мало - добавляйте свои :) [All with FlashGet menu] Item, "All" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href /img /flash" --------------------1 Item, "Archives" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href |rar|zip|cab|arj|lzh|ace|7z|tar|gzip|uue|bz2|jar|iso|z|exe|bin|dll|" Item, "Docs" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href |doc|rtf|djvu|pdf|xls|txt|djv|" Item, "Images" = Execute program, "eof.exe", "/nowindow /page %S /src %u /img /href |jpeg|jpg|gif|tif|svg|tiff|bmp|png|ico|cur|ai|ani|dib|psd|" Item, "Audio" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href |mp3|aac|cda|mid|midi|ogg|wma|wav|wmv|asf|" Item, "Video" = Execute program, "eof.exe", "/nowindow /page %S /src %u /href |avi|dat|mpeg|mpg|vob|flv| /flash"
; новый раздел меню. Фильтры по наиболее распрастраненным типам. Кому мало - добавляйте свои :) [All with FlashGet OnLink menu] Item, "All" = Execute program, "eof.exe", "/sourcepage %l /src %l /href /img /flash" --------------------1 Item, "Archives" = Execute program, "eof.exe", "/sourcepage %l /src %l /href |rar|zip|cab|arj|lzh|ace|7z|tar|gzip|uue|bz2|jar|iso|z|exe|bin|dll|" Item, "Docs" = Execute program, "eof.exe", "/sourcepage %l /src %l /href |doc|rtf|djvu|pdf|xls|txt|djv|" Item, "Images" = Execute program, "eof.exe", "/sourcepage %l /src %l /img /href |jpeg|jpg|gif|tif|svg|tiff|bmp|png|ico|cur|ai|ani|dib|psd|" Item, "Audio" = Execute program, "eof.exe", "/sourcepage %l /src %l /href |mp3|aac|cda|mid|midi|ogg|wma|wav|wmv|asf|" Item, "Video" = Execute program, "eof.exe", "/sourcepage %l /src %l /href |avi|dat|mpeg|mpg|vob|flv| /flash"
; меню ссылки [Link Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l %T /src %u" Submenu, "Закачать с этой ссылки при помощи FlashGet", All with FlashGet OnLink menu
; меню ссылки-картинки [Image Link Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l /src %u" Submenu, "Закачать с этой ссылки при помощи FlashGet", All with FlashGet OnLink menu
; меню выделенного текста [Hotclick Popup Menu] Item, "Закачать при помощи FlashGet" = Execute program, "eof.exe", "/nowindow /lnk %l %T /src %u" Submenu, "Закачать с этой ссылки при помощи FlashGet", All with FlashGet OnLink menu
; меню страницы [Document Popup Menu] Item, "Закачать видео при помощи FlashGet" = Execute program, "eof.exe", "/video %u %T" Submenu, "Закачать все при помощи FlashGet", All with FlashGet menu
Примечание 1. По поводу того, как писать путь к программе. Вы конечно можете написать так: ... Execute program, "полный путь\eof.exe", ... Также можно писать просто имя ехе-ника, положив его в системную директорию. Но мне, чесно говря, это не совсем удобно. Я делал так. Создал на диске отдельную папку, бросил в нее программу, и добавил в переменные среды путь к этой папке. Тогда достаточно писать просто имя ехе-шника Мне это еще удобно тем, что я частенько люблю писать себе утилиты, требующие быстрого доступа из командной строки + не мусорятся системные папки. У меня там уже собрались 9 утилит
Примечание 2. По поводу инсталлятора. Написать конечно можно, то не проблема. Но у меня займет больше времени его писать, чем вам вручную поправить один файлик. Дать свой файл меню тоже не буду, так как Опера у меня сильно перестроенная, особенно что касается меню и панелей.
Эт кажись все.
пс. выложил архив с обновлением. Воно касается окна - добавлена иконка и убрано с панели задач. А были ли исправления по коду... не помню, блин
|
Re: Opera to FlashGet redirector
|
elGeminy 01/23/07 07:32 PM |
|
Если кому интересно. Случайно нашел баг - через третьи руки - тулза неправильно интерпретировала адрес ссылки, если она начиналась со слеша. Выкладываю именно из-за исправления, ибо нехорошо оставлять что-то без фикса. Какие были добавления, вспоминать сейчас не буду.
|
|