Страницы: 1
LA_ так браузер безо всяких расширений может скачивать торрент-файлы
Отредактировано Крошка Ру (04-06-2011 01:18:03)
Отсутствует
... если же имелась в виду возможность качать файлы по протоколу BitTorrent , непосредственно браузером , то Wyzo так может
Отсутствует
Крошка Ру,
ок, похоже надо объяснить, что требуется автоматизировать:
1) я кликаю по ссылке с торрентом - браузер должен данную ссылку перехватить (как вариант - показать себя в списке возможных программ для открытия файла "Как Firefoх следует обработать этот файл?");
2) дальше этот файл должен быть автоматически скачан в какую-нибудь temp-папку;
3) затем этот файл должен быть передан другому серверу (~другому компу в сети, он на торрент-трекере не авторизован);
4) потом этот файл должен быть удален.
Могут ли расширения такое делать?
Отсутствует
Именно так всё и работает. По крайней мере у меня. Вот только удаления торрент-файлов после их запуска нет, но это настраивается в торрент-клиенте.
Из дополнений : Normal "Open In" Dialog, чтоб фокс запоминал, какой тип файлов какой программе передавать , а то он забывчивый ))) И всё.
Arch Linux & xmonad
Отсутствует
С каким сервером у вас все так работает?
Что-то я не видел в предыдущих сообщениях упоминания сервера. А "всё так работает" у меня на ubuntu 10.04.2 ( комп и ноут)
Не уверен, что это осуществимо для NAS, но можно попробовать следующий вариант: установить FlashGot, в его настройках указать внешнюю качалку, которая будет складывать торрент-файлы в указанный каталог. Далее, в настройках торрент-клиента (в Deluge, к примеру, такое есть) активируем пункт "Автоматически добавлять .torrent из..." и указываем на каталог с сохранёнными торрент-файлами.
Как-то так. Костыль конечно, но других вариантов пока не придумал.
Отредактировано =Agasfer= (04-06-2011 12:46:04)
Arch Linux & xmonad
Отсутствует
собственно, потому я и хочу плагинрасширение для ff написать
возвращаюсь к начальному вопросу: плагинамрасширениям можно скачивать файлы из интернета и сохранять их? можно ли потом получить ссылку на данный файл в локальной сети (типа \\192.168.0.1\temp\downloaded_file.torrent)?
Отредактировано LA_ (05-06-2011 17:35:30)
Отсутствует
плагинамрасширениям можно скачивать файлы из интернета и сохранять их?
LA_ ,например это делает DownThemAll!
можно ли потом получить ссылку на данный файл в локальной сети
скорее всего да
Отредактировано Крошка Ру (04-06-2011 18:57:33)
Отсутствует
плагинам можно скачивать файлы из интернета и сохранять их?
Ну уж если расширениям можно:
const { classes: Cc, interfaces: Ci, utils: Cu } = Components; try { Cu.import("resource://gre/modules/Services.jsm"); var srcURL="http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora-l10n/firefox-6.0a2.ru.win32.zip"; var file=Services.dirsvc.get("Desk", Ci.nsILocalFile); file.append(srcURL.replace(/^.*\//,"")); if (!file.exists()) file.create(0x00,0644); var fURI=Services.io.newURI(srcURL,null,null); const nsIWBP=Ci.nsIWebBrowserPersist; var oPersist=Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(nsIWBP); with(nsIWBP) oPersist.persistFlags=PERSIST_FLAGS_REPLACE_EXISTING_FILES | PERSIST_FLAGS_FROM_CACHE; oPersist.progressListener= { onProgressChange: function(aWebProgress,aRequest,aCurSelfProgress, aMaxSelfProgress,aCurTotalProgress,aMaxTotalProgress) {}, onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) { with(Ci.nsIWebProgressListener) if ((aStateFlags & STATE_STOP)==STATE_STOP) Services.console.logStringMessage("dowloading completed"); } } oPersist.saveURI(fURI,null,null,null,null,file); Services.console.logStringMessage("downloading started."); } catch(err){Services.console.logStringMessage(err+"\n"+err.stack);}
, то плагинам можно и подавно.
Отсутствует
Со скачиванием файлов возник такой вопрос - например, есть ссылка
http://dl.rutracker.org/forum/dl.php?t=3667324
Как мне сохранить файл под тем именем, что отдает rutracker? (srcURL.replace(/^.*\//,"") тут, конечно, не подходит)
Отсутствует
hydrolizer
какие преимущества скачивания методом, который вы указали, перед XMLHttpRequest?
И, если мне надо скачать файл, а потом тут же загрузить его на другой сервер - может, мне нет смысла сохранять файл в папку temp? Может, мне его в памяти сохранить (только как)?
Отсутствует
какие преимущества скачивания методом, который вы указали, перед XMLHttpRequest?
Попробуйте XMLHttpRequest'ом принять файл с бинарными данными размером мегабайт в 100 - увидите.
Отсутствует
hydrolizer
ок, торрент-файлы - килобайт 20, так что для меня, видимо, разницы нет.
как мне быть со вторым вопросом?
или, если уж я сохранил файл на диск, как мне его теперь загрузить на другой сервер? как прочитать содержимое файла?
Отсутствует
Отсутствует
hydrolizer
а если я скачал файл вашим способом? как мне его загрузить на другой сервер?
(XMLHttpRequest мне не нравится тем, что для ff 6 код придется менять. кстати, XMLHttpRequest тоже использует кукисы браузера?)
Отсутствует
Таак. Если использовать XMLHttpRequest:
// download the file first var req = new XMLHttpRequest(); req.open('GET', url, false); req.overrideMimeType('text/plain; charset=x-user-defined'); req.send(null); if (req.status != 200) return ''; // upload the file req.open("POST", "http://mysite.com/upload", false); req.setRequestHeader("Content-Length", req.responseText.length); req.sendAsBinary(req.responseText); // ТАК ВЕРНО? alert(req.responseText);
Можно ли как-нибудь файл загрузить как поле формы с именем file?
Попробовал:
var formData = new FormData(); formData.append("file", req.responseText); req.open("POST", "http://mysite.com/upload", false); req.send(formData)
но естесно не работает.
Отредактировано LA_ (28-07-2011 22:39:58)
Отсутствует
Использовал я следующий код для загрузки и сохранения файлов локально:
var downloadCompleted = false; // download the file first var persist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"] .createInstance(Components.interfaces.nsIWebBrowserPersist); // get OS temp folder var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("TmpD", Components.interfaces.nsIFile); file.createUnique(Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 0666); var fURI = Services.io.newURI(url,null,null); const nsIWBP = Components.interfaces.nsIWebBrowserPersist; const flags = nsIWBP.PERSIST_FLAGS_REPLACE_EXISTING_FILES; persist.persistFlags = flags | nsIWBP.PERSIST_FLAGS_FROM_CACHE; persist.progressListener = { onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress) { }, onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) { if (aStateFlags & Components.interfaces.nsIWebProgressListener.STATE_STOP) { downloadCompleted = true; // file has been downloaded } } } persist.saveURI(fURI, null, null, null, "", file); var thread = Components.classes["@mozilla.org/thread-manager;1"] .getService(Components.interfaces.nsIThreadManager) .currentThread; while (!downloadCompleted) // emulate synchronous request thread.processNextEvent(true);
все работало, но теперь файлы с rutracker'a не скачиваются - возвращается ответ, что скачивание нужно производить со страницы rutracker. При простом клике по ссылке всё, естественно, работает.
Как исправить мой код, чтоб он был эквивалентен клику по ссылке?
Отсутствует
LA_
При скачивании torrent-файла на сервер уходит запрос вот с такими заголовками:
handled request: http://dl.rutracker.org/forum/dl.php?t=1517791
header: Cookie: bb_data=1-17430411-fQfvxu8MATCWxpEXjqCE-1579759053-1324787984-1324787984-4280520409-1; bb_dl=1517791
header: Referer: http://rutracker.org/forum/viewtopic.php?t=1517791
header: Connection: keep-alive
header: Accept-Encoding: gzip, deflate
header: Accept-Language: en-us,en;q=0.5
header: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
header: User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:10.0) Gecko/20100101 Firefox/10.0
header: Host: dl.rutracker.org
Судя по всему, принимающая сторона смотрит на referrer - а он у вас null. Попробуйте в saveURI задать его в виде, соответствующем url сохраняемого файла. Если не поможет - поэкспериментируйте с содержимым параметра aExtraHeaders сигнатуры метода.
Отсутствует
Проверял через Firebug - запрос выглядит одинаково...
Тем не менее, попробовал:
var aReferrer = Services.io.newURI(url,null,null); persist.saveURI(fURI, null, aReferrer, null, "", file);
не помогло.
Если не поможет - поэкспериментируйте с содержимым параметра aExtraHeaders сигнатуры метода.
расскажите об этом чуть более подробно, пожалуйста
Отсутствует
Друзья, помогите разобраться с закачкой файлов из интернета.
Возможно я виноват сам, в том что я скачал DM. Теперь и DM не качает и Мазила не качает. Я уже снес DM
но браузер все равно сообщает, чо "закачка передана в DM". А его ужеж то нету. Что делать? ОС Винда 7 Спасибо
Отсутствует
Страницы: 1