Alexyz21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Сабж позволяет модифицировать меню, вызываемых по ПКМ на объектах страниц. Пример добавления в ПКМ меню закачки магнитов с помощью uTorrent и GreyLink: 1. полной ссылки вида magnet:?xt=urn:... 2. только выделенной 40 символьной hex-последовательности (хэшсуммы) магнита UT, либо 39 символьной GL. 3. 1-го магнита, найденного в теле страницы, полученной по ссылке - например если знаем, что ссылка ведёт на страницу с магнитом на ней. Использованы компоненты актуального билда FAR Manager 3.0, lfluaS.exe, curl.exe. ac_menu.ini Код: [Translate Menu Content] Item, "Magnet DHT ⇒ uTorrent DHT"=Execute Program, "C:\Program Files\FAR\lfluaS.exe", "C:\Lua\MagnetDHT.lua %t",,"magnet" [Link Popup Menu][Image Link Popup Menu][Turbo Image Link Popup Menu] Item, "Magnet DHT ⇒ uTorrent DHT"=Execute Program, "C:\Program Files\FAR\lfluaS.exe", "C:\Lua\MagnetDHT.lua %l",,"magnet" | MagnetDHT.lua Код: local GetAnswer = function(url) return io.popen('curl.exe -s "'..url..'"','rb'):read("*all") end local function Magnet(url) if url and type(url)=='string' then local urll=url:lower() local chksum=urll:match':btih:(%x+)' or urll:match'^(%x+)$' if chksum and chksum:len()==40 then local link='magnet:?xt=urn:btih:'..chksum local appPath=win.GetEnv("APPDATA")..'\\uTorrent\\uTorrent.exe' win.ShellExecute(nil,nil,'"'..appPath..'"','"'..link..'"',nil,0) else chksum=urll:match':tiger:([%d%l]+)' if chksum and chksum:len()==39 then local appPath=win.GetEnv("PROGRAMFILES")..'\\GreyLink\\GreyLink.exe' win.ShellExecute(nil,nil,'"'..appPath..'"','/magnet "'..arg[1]..'"',nil,0) end end end end if arg[1] and (type(arg[1])=='string') and arg[1]:lower():find'^https?:' then Magnet(GetAnswer(arg[1]):lower():match'magnet:%?xt=ur[:%l]+:%l+:%x+') else Magnet(arg[1]) end | Примеры хэшсумм: UT: 68a7ab8390b03c15e8afceea123bf9f246844283 GL: magnet:?xt=urn:tree:tiger:TIS6WLL427DVH7OI267I3HZ5BYLQAOL4EDNCXSA&xl=28911533&dn=01.mp3 | Всего записей: 3658 | Зарегистр. 16-06-2007 | Отправлено: 11:14 08-12-2021 | Исправлено: Alexyz21, 22:28 09-12-2021 |
|