Вот доработанный вариант VBS-скрипта для интеграции Reget в контекстное меню браузера Opera.
Основные отличия от старого варианта скрипта:
Теперь скрипт корректно обрабатывает искаженные ссылки, которые часто публикуются на различных форумах с целью умышленно скрыть прямую ссылку. Например искаженная ссылка вида _hххp://server.com/file.zip. при помощи скрипта будет преобразованна в корректную, полностью работоспособную ссылку вида
http://server.com/file.zip и сразу же отправится на закачку в Reget. Примеры преобразований искаженных ссылок в нормальные:
_http:// - преобразует в http:// и отправит на закачку в Reget
hххp:// - преобразует в http:// и отправит на закачку в Reget
_фтп:// - преобразует в ftp:// и отправит на закачку в Reget
fxp:// - преобразует в ftp:// и отправит на закачку в Reget
и т.п.
Также удаляются знаки препинания в самом конце ссылки(после имени файла), которые во всех случаях являются лишними.
Чтобы использовать возможность закачки искаженных ссылок, необходимо прописать эти строчки в файл вашего меню, в секцию [Hotclick Popup Menu]:
Item, "Загрузить с помощью ReGet" = Execute program, "wscript", "AddLinkReGet.vbs %l %T %u"
Item, "Загрузить с помощью ReGet (Без подтверждения)" = Execute program, "wscript", "AddLinkReGet.vbs %l %T %u NoConfirm"
Создайте файл AddLinkReGet.vbs с этим содержанием:
Code:
desc=""
ref=""
addr=""
Confirm=True
if WScript.Arguments.Count>1 then
desc=WScript.Arguments(1)
end if
if WScript.Arguments.Count>2 then
ref=WScript.Arguments(2)
end if
if WScript.Arguments.Count>3 then
if CStr(WScript.Arguments(3))="NoConfirm" then Confirm=False
end if
addr = WScript.Arguments(0)
if Left(addr,1) = "_" then addr = Right(addr,Len(addr)-1)
If Right(addr,1) = "." Then addr = Left(addr,Len(addr)-1)
If Right(addr,1) = "," Then addr = Left(addr,Len(addr)-1)
If Right(addr,1) = "?" Then addr = Left(addr,Len(addr)-1)
If Right(addr,1) = "!" Then addr = Left(addr,Len(addr)-1)
If Right(addr,1) = ":" Then addr = Left(addr,Len(addr)-1)
If Right(addr,1) = ";" Then addr = Left(addr,Len(addr)-1)
addr = Replace(addr,"hxxp://", "http://")
addr = Replace(addr,"hххp://", "http://")
addr = Replace(addr,"хттп://", "http://")
addr = Replace(addr,"h__p://", "http://")
addr = Replace(addr,"fxp://", "ftp://")
addr = Replace(addr,"фтп://", "ftp://")
if Left(addr,4) = "ftp." then
addr = "ftp://" + addr
elseif Left(addr,7) <> "http://" and Left(addr,6) <> "ftp://" then
addr = "http://" + addr
end if
AddLink WScript.Arguments(0), desc, ref, Confirm
Sub AddLink(ByVal Url, ByVal Info, ByVal Refer, ByVal Confirm)
Set Catch = CreateObject("ReGetDx.ReGetDownloadApi")
With Catch
.Info = Info
.Confirmation = Confirm
.Url = Url
.Referer = Refer
.AddDownload
End With
End Sub
Переместите этот файл в папку браузера Opera
В своём файле меню в разделы [Link Popup Menu], [Image Link Popup Menu], [Hotclick Popup Menu] добавьте следующие строки:
Item, "Загрузить с помощью ReGet" = Execute program, "wscript", "AddLinkReGet.vbs %l %T %u"
Item, "Загрузить с помощью ReGet (Без подтверждения)" = Execute program, "wscript", "AddLinkReGet.vbs %l %T %u NoConfirm"
Сохраняем файл меню в кодировке UTF-8.
Что получаем:
В контекстном меню ссылки появляются команды "Загрузить с помощью Reget" и "Загрузить с помощью ReGet (Без подтверждения)". Выполняют они одно и то же (запускают, если не запущен, ReGet и добавляют в него закачку), но вторая не выводит никаких диалоговых окон.
При добавлении заполняются свойства закачки Referrer (Ссылка) и Описание. Выделите какой нибудь текст на странице перед вызовом контекстного меню, он будет служить описанием.
Теперь можно закачивать "текстовые" ссылки, в том числе намеренно искаженные приставками "_http://", "hxxp://" и тому подобные. А в тех ссылках, где не указан протокол, скрипт автоматически добавит приставку "http://" или "ftp://".