Как стать автором
Обновить

Комментарии 62

Интересно, но паузы/дозакачки не хватает. Имхо, иногда полезная вещь.
Вещь несомненно полезная, но здесь немного задача другая — качать файлы с тех файлообменников которые как раз не поддерживают докачку, т.е. ни поставить на паузу ни закрыть браузер нельзя (если качать обычным образом), все остальное — приятные бонусы. К тому же, интуитивно-понятным способом не получится прикрутить функцию пауза, к единственно доступной кнопке «Отмена», это уже ограничения zenity. Если сильно хочется, можно включить докачку добавив опцию -с для wget, но вот возобновлять её будет не всегда возможно.

Я люблю знаете ли, почитать пару статеек, за закрыть браузер нафег %), и о горе мне если в фоне качались (неразбочиво) с файлообменников. Дабы не чувствовать дискомфорт от включенного в фоне браузера, я и написал этот скрипт.
Браузер должен веб отображать а wget качать файлы, каждому своё, «ящитаю».
Оставьте открытым окно менеджера закачек, тогда закрытие основного окна не оборвёт закачки. По сути то же самое, что и окно Wget.
а мне брау3ер всегда напоминает что если я его закрою то закачки оборвутся
Юзай Kget работает на том же Wget-е и функционала побольше, кстати рекомендую автору глянуть тож, думаю будет пару идей что добавить.
Подсвети код же!
Сделано.
Эх написал бы кто нибудь уже нормальный WebUI для wget было бы здорово!
А есть ненормальный?
ну есть такая поделка Wget4web но он практически ничего не умеет и неудобный.
Когда-то написал простенький вэб-сервис, позволяющий качать файлы пользователям из сети — используется curl (консольный, для определения размера\имени файла), wget — для закачки файлов, mysql — для хранения очереди закачек.
  • Для каждого ИП возможен только 1 недокаченный файл
  • Корявое разделение прав — в index.php, в массиве $fav — список ИП, имеющих расширенные права
  • Если в очереди > 1 незаконченного файла (при этом у текущего файла нет флага favorite) — каждый файл качается по TIME_LIMIT минут.
  • Поддерживается дневное и ночное ограничение скорости
  • очень кривой код :)

Хабр скрывает маркеры списка в комментариях :(
Исходники. На досуге планирую переписать, да, возможно, оформить в виде топика.
Спасибо. Удобная вещь.
О_о какие люди :)
фак… не дописал. зачем экспортом балуешься? можно же просто:
[ "$p" = "" ] || proxy="http_proxy=http://$p";
...
id=$($proxy wget -b -o"$output" -P"$downdir" --referer="$2" --post-data="$3" "$urs" | egrep -o "[0-9]+");
Ну или так, ничего вроде криминального не делаю… Там вообще-то других огрехов стиля хватает.

Привет, ага :)
Этот пост наглядно демонстрирует кривизну линукса для тех, кто еще о ней не знает.
Столько геморроя что бы качать файл? Неудивительно, что он до сих пор в полумертвом состоянии, что последние организации уже заканчивают переход на профессиональные системы от Microsoft.
Этот пост демонстрирует то, что линукс гибкий, а не кривой. И вообще, если вы не любитель Linux — так не читайте посты этого раздела, еще не дай бог психика пострадает.
Толсто :) Будем считать что мы поверили, что Вы не тролль, лжец и девственник… :)
В посте уже сказано что download manager's в линуксе есть и не мало. Я использую лично KGet. Так что скачать файл можно легко.
А можно ли так же легко в windows написать скрипт который, с нужной мне логикой скачает файл? unix like системы пилились для этого годами и имеют кучу подручных кирпичиков которые легко соеденять вмести.
В линуксе можно сделать все просто и гламурно. НО — если мне надо, я всегда могу опуститься на более низкий уровень.
А что в винде? CMD? WMH? На них можно писать, но они убоги… PowerShell? Уже многим лучше, но Боже, нормальный шел, который был десятилетиями в unix / linux в винде появился буквально пару лет назад. :)
Так что данный пост просто показывает широкие возможности Linux. За что спасибо топикастеру — мне лично данный пост был полезен.
а как из консоли в windows скачать файл? можно кусочек кода?
Звеняйте барин, давно в винде уже не работаю. Уверен что есть множество способов.
Первое что приходит в голову это, простите, gnuwin32.sourceforge.net/packages/wget.htm :)
Можно попробовать и боле windows way — написать скрипт для WHS. Я не люблю чисты bash/sh скрипты, но это значительно, значительно хуже :)

Насколько я знаю из PowerShell можно использовать .NET сборки, что делает задачу тривиальной, ноо… простите с PowerShell в реале не сталкивался. Немного погуглил… :) вот и вот Хм, выглядит не плохо. MS сделали большой шаг вперед.
Да я в курсе что все это можно сделать и даже как. Это был едкий вопрос виндузятнику, который жаловался на то, что в линуксе все настолько плохо что файл скачать — сущая проблема.
Ну что же, мы только доказали что линуксойд может скачать, что угодно даже в винде :) Слава линуксу и человекоподобным роботам!
google wget.exe :)
<сарказм>вау, да я и не знал</сарказм>, читай выше
«Linux для всех». Для кого для всех? Пока я вижу, что линукс приемлем только для четырехглазых гиков, которым просто нечего делать по вечерам, кроме как насиживать геморрой, вместо того чтобы сразу начать пользоваться профессиональными продуктами от Microsoft.
WinТролль детектед! Походу он даже не читал статью.
Пост отличный! zenity — отличная либа, wget — бесподобен! Сменить Linux на Win? не думаю что смогу!
Да неудобно мне в «профессиональных системах от Microsoft» и сами «профессиональные продукты от Microsoft» мне тоже неудобны. Такие дела.
Или все же имеется ввиду не только Майкрософт, а, например, WestByte?

Я как разработчик скрипта, разобрался в аспектах по решению задачи скачивания файла, написал скрипт и раздаю его всем желающим, которые могут поставить его к себе в систему несколькими кликами мышкой. Чем эта ситуация кардинально отличается от распространия дистрибутивов программ например?..
Ведь не станете же вы утверждать, что для того чтобы пользоваться менеджером закачек, пользователь должен пройти весь путь разработчиков DownloadMaster написав и скомпилировав программу предварительно, не так ли? ;)

Ну или другая аналогия, скажем… макросы или шаблоны которые делают для MS Office, их же тоже пишут, ставят, пользуются и никто не жужит по поводу насиживания гемороя, наоборот все счастливы, что все красиво и как нужно работает.

Теперь вам понятен просчет в вашей логике?.. :) Путь разработчика пользователь не обязан проходить.
Единственное отличие от «профессиональных продуктов Microsoft», то что, если пользователь захочет пройти путь разработки, он это сможет сделать.
Однако, велосипед. Есть же GWget
Кто ж спорит, велосипед и есть, об этом я написал в первых двух абзацах, которые вы только что прочитали :)

Скажем так, это полезное закрепление полученных знаний Advanced Bash scripting Guide и справке по Zenity.

Без «велосипедов» нет прогресса, как говорил сами-знаете-кто.
А для пользователей Firefox есть аддон https://addons.mozilla.org/ru/firefox/addon/201 Качает как надо :) Ну а если вы не пользователь ff то данный топ вам в помощь :)
Я бы с вами согласился, если бы не одно но — то что DownThemAll! качает в отдельном окне, не означает, что он работает независимо от браузера, все равно браузер загружен в памяти, а жрет фокс, сами знаете, огого. К тому же бывали печальные случаи падения браузера (особенно при перехождении на ветку 3.5) или нужно было перезапустить Firefox при установке плагина…
Вообщем, отказался я от этого плагина.
Что значит независимо от браузера? Только что проверил, поставил закачку в DTA, закрыл браузер. Аддон спокойно работал без браузера, качая, скачав и ждав дальнейших действий. Ну это так придирка ;) все равно ваш способ намного эффективней, ведь не каждый пользуется FF
Вы невнимательны :) плагин просто работает в отдельном окне и даже при закрытии основного окна браузера процесс firefox загружен в память. Следовательно, перезапустить его для установки/удаления другого плагина нельзя. Если вдруг фокс упадет закачки тоже утянутся в «бездну», проверьте сами, к тому что вы сделали выше выполните: killall firefox если они действительно независимы, то на DownThemAll! не повлияетэта команда, но это не так. По другому и быть не может потому, что это плагин. Не отдельная программа.
Круть! Люблю темы по созданию GUI для старых добрых консольных утилит с помощью скриптовых фреймворков типа tcl/tk или вот zenity
НЛО прилетело и опубликовало эту надпись здесь
Знаете, в рунете довольно известна «Сыворотка правды» от Алекса Каинита…
НЛО прилетело и опубликовало эту надпись здесь
К сожалению для вас, я только из этого поста узнал, что такое zenity и понятия не имею как и зачем в окне этой самой z. нужно менять курсор.
Извините, если омрачил вам искреннюю радость от того обстоятельства, что вы «дорвались до бабы».
НЛО прилетело и опубликовало эту надпись здесь
Возможно. Хотя я считаю, что в С.В. нет ничего принципиально нового, всего лишь упорядочивание наблюдений за поведением некоторых персонажей.
Такие персонажи, в частности, могут влезть в пост о программировании (именно так, основная ценность этого поста не в представлении финального продукта, а в описании процесса разработки) и начать корчить из себя психолога и сексо(пато)лога, параллельно стараясь уверить всех, что у них-то точно в единственно важной сфере всё в порядке.
Кстати, явление вполне себе массовое.
Некоторое время здесь же на Хабре, некие существа числом до полудюжины пытались использовать возраст как аргумент (в мой профиль они посмотреть поленились).
НЛО прилетело и опубликовало эту надпись здесь
Если вам больно слышать про узкую специализацию скрипта, спешу вас обрадовать — работа скрипта распространяется и на другие области: скачивание роликов с YouTube в HD качестве (скорость интернета не позволяет смотреть ролики он-лайн, знаете ли), или скачивание подкастов, или скачивание других тяжелых файлов, например, (о боже мой!) дистрибутива Windows 7 для разработчиков!

Скрипт был написан одним июньским вечером, и в перерывах между лежками на пляжах доведен до ума (логи не дадут соврать), затем, в течении двух месяцев активно пользовался, поправлял мелкие баги, прежде чем выкладывать это в продакшн на хабр. Если вы считаете, что написание этого скрипта занимает у меня больше времени чем девушка, у меня для вас внезапные новости! ;)
НЛО прилетело и опубликовало эту надпись здесь
Ну так приделайте! Напишите свой разгромный пост, что мол как же так, простой шейпер не могли приделать, куда мир катится!
Если кратко, то я отказался от шейпера.

Если вдруг возметесь, вот мои соображения по этому поводу: добавить функциональность ограничения канала возможно (опция --limit-rate в wget) выводим новое модальное окошко zenity --scale и взаимодействуем с пользователем. Это все легко, а вот дальше начинаются дебри с представлением данных — для того чтобы правильно отобразить шейпер нужно заранее знать ширину канала, а эта величина не известна вообще, если качать нужно через прокси, это основная причина моего отказа от него, расчеты периода скорости невозможна, а жесткое органичение сверху сводит на нет универсальность, да и просто некрасивое решение. К тому же ограничение скорости задается один раз и действует на весь период скачки, что далеко не всегда удобно, но это уже ограничения wget.
Ньюансов море вообщем и представить логично и удобно ограничение скорости задача бОльшая чем сам этот скрипт :)
1. wget — совершенство! :-)

2. плагины к браузеру, например, download statusbar, тоже очень удобны для загрузки файлов

Кто-нибудь в курсе — есть качалка с регулировкой скорости скачивания?
wget ;)

$ wget --limit-rate=20k <some_url_and_other_options>
Ну-ка, а теперь во время скачивания мне надо увеличить скорость до 50 кб/сек, как это провернуть? ;)
В общем случае — никак, потому что wget — не интерактивная качалка. В отдельных случаях (если поддерживается докачка) — прервать и перезапустить с новым параметром.

А вообще, если хотите услышать ответ на какой-то вопрос — то задавайте его чётко и полностью, а не добавляя детали по ходу дела и придумывая новые требования.
Я изначально так и написал — качалка с регулировкой скорости.
Как видите, регулировка может быть различной: 1) один раз выставить ограничение для закачки; или 2) «I like to move it, move it» — регулировка туда-сюда в процессе закачки.

Однозначно заданный вопрос в большинстве случаев влечёт за собой однозначный ответ и не провоцирует длинные обсуждения с уточнениями и уходами в оффтоп (как в нашем случае :)).

Тем не менее, мы довольно быстро выяснили, что wget не умеет интерактивно регулировать скорость в процессе закачки (due to its design). Умеют ли другие качалки — пусть расскажут товарищи, пользующиеся другими качалками. Я же пользуюсь только wget-ом (и чрезвычайно редко использую даже однократное ограничение скорости).
Да, вот поэтому я и спросил. Жена мне постоянно тычет в нос DownloadMaster'ом :)
Спасибо, попробовал — но мне не особо понравилось ;)
FlashGet точно умеет ограничивать и менять скорость в процессе.
есть ядро линуха с поддержкой приоритета tcp пакетов через tc qdisc и другие алгоритмы. Помечать же пакеты можно через l7proto или вообще просто через dscp у пакетов.

а после этого в принципе нет смысла регулировать скорость. =))))
Спасибо автору за то, что делиться опытом. Тема написания скриптов актуальна и для обычних пользователей nix систем, так как умение написать скрипт даже в одну строку экономит уйму времени.
Кому не нравиться пусть не читают. Я, например не знал «с чем едят» этот zenity. Когда будет время сам его пощупаю.
А что за обои на рабочем столе? Поделитесь, пожалуйста! :)
[off]
Похоже на штатные из Debian lenny
Спасибо!
на самом деле после того как скорости шагнули в десятое измерение у меня вообще исчезло ощущени ожидания закачек.

все большое — торрент (deluge)
все что поменьше — либо просто wget, либо быстрое упражнение на клаве: wget… && kdialog --msgbox done || kdialog --msgbox oops (хочется следить за прогрессом — велкам в yakuake «для турбооткрытия нужной консоли на долю секунды»)

а вообще очень приятный теперь способ загрузки в kde4 — через глобальный менеджер IO оперций (впрочем, в kde3 его тоже можно было включить). Правда, с http линками я пока не придумал способа удобно юзать, если не сидеть в konqueror. А вот sftp/ftp и прочие kioslaves — без проблем вообще и с паузами и с остановками и с нотификацией.

по поводу Windows и разных Download master-ов. Удобно, но ровно до тех пор пока не узнаешь unix way. В Windows удобству предел есть, а в unix — нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории