wget: графическая оболочка

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Ответить
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

wget: графическая оболочка

Сообщение Anton++ »

На прошлой неделе я совершенно случайно познакомился с программой gtkdialog, позволяющей быстро создавать красивый графический интерфейс для программ, написанных на скриптовых языках. Простота реализации и богатые возможности gtkdialog настолько меня впечатлили, что мне захотелось попробовать создать графическую примочку для какой-нибудь популярной консольной программы. И под горячую руку попал всеми любимый wget. :)

Wget - штука довольно мощная. Далеко не в каждой платной качалке есть такое количество настроек. Но, к сожалению, удержать в памяти все ключи командной строки wget невозможно.
Тем, кому нужно настроить какие-то сложные опции или просто лень читать мануал, придёт на помощь моя программка.

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

ИзображениеИзображениеИзображениеИзображениеИзображение

По-моему, получилось удобно. Поскольку wget'ом я пользуюсь часто, программу пишу для себя и постараюсь довести её до ума.
Всем, кому это интересно, предлагаю принять участие в бета-тестировании.

Что для этого нужно:
  • Пакет gtkdialog. (меньше 300 килобайт) В некоторых дистрибутивах (например, Zenwalk) установлен сразу. В других его почти наверняка можно поставить из репозитариев. В крайнем случае, если Вам это интересно, gtkdialog можно собрать из исходников: http://linux.pte.hu/~pipas/gtkdialog/
    Скрипт тестировался на версии 0.7.15
  • Perl. По-моему, имется во всех дистрибутивах.
    Скрипт тестировался на версии 5.8.8
  • Запуск: perl gtkplwget.pl
    Если не будет perl'а, скрипт не запустится. Если не будет найден gtkdialog, скрипт сообщит об этом.
Строго не судите, каких-то сверхцелей я себе не ставил, просто было интересно поковырять gtkdialog.
Вложения
gtkplwget.zip
(9 КБ) 353 скачивания
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус
Контактная информация:

Re: wget: графическая оболочка

Сообщение KiWi »

В плане -- а перенесу-ка весь man wget на несколько вкладок -- вполне удачно.
В плане -- GUI для wget'а -- не особо, ибо:
- порядок опций и группировка в некоторых местах довольно странная...
- собственно, смысла в точности описание из man'а запихивать нет смысла -- можно вполне поиграться с опциями, которые будут по умолчанию
- да и вынесение ВСЕХ настроек для GUI -- это лишнее, есть то, что часто используется и есть то, что используется только в конкретных случаях/очень редко
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Код: Выделить всё

[user@localhost 3]$ perl gtkplwget.pl
gtkdialog not found...


Причем пакет gtkdialogs-2.2-1mdv2007.0.i586 установлен.
Это только у меня так?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

KiWi,
порядок опций и группировка в некоторых местах довольно странная...

Порядок опций на вкладках или в получаемой командной строке? На вкладках поначалу я размещал элементы так, как описано в мане, а позднее перераспределил их так, как мне казалось логичным. В командной строке опции идут в том порядке, в котором они описаны в мане.
собственно, смысла в точности описание из man'а запихивать нет смысла -- можно вполне поиграться с опциями, которые будут по умолчанию

Не совсем понял, что имелось в виду.
да и вынесение ВСЕХ настроек для GUI -- это лишнее, есть то, что часто используется и есть то, что используется только в конкретных случаях/очень редко

Если честно, когда я начинал, я даже не думал, что у wget столько наворотов. Часто используется, наверное, не больше одной десятой от всех возможных опций. Это, скорее всего, --continue, --input-file, --base, --output-document, --load-cookies и логин/пароль ftp. Для того, чтобы написать что-то типа wget -c http://xxx.xx, никакой GUI и даром не нужен.
Сначала я, вообще говоря, хотел сделать GUI для lame. Вот это действительно жесть. Не окно, а пульт управления космическим кораблём. :)

devilr,
Тут есть два варианта.
1. По путям, перечисленным в PATH, gtkdialog, видимо, не найден... Если это так, то нужно просто дописать в PATH путь до каталога с gtkdialog.
2. Есть ощущение, что gtkdialog и gtkdialogs - это не одно и то же. На пробу я скачал gtkdialogs-2.1-1mdk.i586.rpm отсюда, и в архиве находилось совершенно не то, что ожидалось увидеть...
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Я уже понял, что пакет не тот. Скачал gtkdialog-0.59.8. Поставил. Ошибка

Код: Выделить всё

[user@localhost 3]$ perl gtkplwget.pl
Use of uninitialized value in hash element at gtkplwget.pl line 894.
Use of uninitialized value in hash element at gtkplwget.pl line 894.
Couln't execute $cmdLine[user@localhost 3]$

Тестовые примеры на gtkdialog идут нормально.

P.S. Этот gtkdialog как пример очень неплохо может пойти. Когда нужно быстро накидать окошко с кнопками.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Couln't execute $cmdLine - это я накосячил. Ещё опечатка закралась. :blush:
Хотя бы окно-то появляется?
В принципе, я понимал, что foreach ( split(/\n/, `$mainDialogCmdLine`) ) - это экстремально, но решил оставить всё как есть. Как видно, я ошибался. :)
Попробую склепать небольшой патч.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Все, что падает в консоль я показал. И все. Окна нет.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Странно: which gtkdialog срабатывает, а сам gtkdialog, видимо, не запускается...
Попытался сделать заплатку. Не уверен, что скрипт после этого запустится, но, надеюсь, удастся хотя бы понять, чего ему не хватает для счастья.

Код: Выделить всё

patch gtkplwget.pl gtkplwget.01.patch
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Еще веселее
Couldn't execute main dialog

Как говорил мой друг: пиши проще! :)
Он тоже любил усложнять простое.

Примеры же работают нормально.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Помимо Couldn't execute main dialog скрипт должен был вывести PATH: XXX и WHICH: YYY. Собственно, эти XXX и YYY меня и интересовали.
У меня YYY - это /usr/bin/gtkdialog. Если в Вашем случае gtkdialog установлен куда-то в другое место, которое не прописано в XXX (PATH), скрипт, естественно работать не будет.

Попробуйте, если Вас не затруднит, ещё один патч. Если gtkdialog падает с ошибкой, на консоль будут выведены её причины.

Обидно. Не ожидал, что так получится, потому как у меня и ещё у нескольких человек всё работает нормально. :(
То что запускаются примеры - это понятно. Все они сделаны по шаблону export MAIN_DIALOG='blablabla'; gtkdialog --program=MAIN_DIALOG. В моём же случае gtkdialog вызывается из перлового скрипта. Причём проблемы где-то с запуском gtkdialog - ведь окно даже не появляется...
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.
Контактная информация:

Re: wget: графическая оболочка

Сообщение eduard_pustobaev »

Короче не понравилось. Ибо в опциях потерялся. Оно не проще, чем глянуть wget --help и написать что нужно. Просто всё равно нужно знать для чего какая опция.
Хотя против того же gwget никогда ничего не имел против.
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

gtkdialog находится в PATH. Примеры, написанные правильно, работают все.
Ваша программа работать не хочет, даже с 2-мя патчами. Ладно, не заморачивайтесь. Мне проще переписать вашу программу и посмотреть диалог.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Оно не проще, чем глянуть wget --help и написать что нужно.

Сложно не согласиться. Опций получилось слишком много. Но... раз уж начал, решил довести дело до конца.
devilr,
Ну, во-первых, если Вы обратили внимание, патчи были направлены не на исправление ошибки (потому как ошибки-то я не вижу), а на её диагностику. В этом свете было бы любопытно взглянуть на то, что скрипт выдал в PATH:, WHICH: и RESULT: после падения.
Во-вторых, могу предложить запустить диалоговое окно почти такого же вида, но сделанное по аналогии с написанными правильно примерами. Это просто скрипт на sh, здесь нет никакого перла, никакой обработки выходящих данных. Просто тупо диалоговое окно. Если и оно не запустится, то проблемы, скорее всего, не в моём скрипте. (sh gtkshwget.sh)
В-третьих, если Вам действительно проще переписать программу и Вы сможете обнаружить эту злосчастную ошибку, пожалуйста, отпишитесь в этой теме.
Вложения
gtkshwget.zip
(4.78 КБ) 97 скачиваний
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Если сильно интересно, то

Код: Выделить всё

WHICH: /usr/local/bin/gtkdialog

что, однако, совсем не мешает запускать gtkdialog из башевых и перловых скриптов.

Код: Выделить всё

[user@localhost 1]$ sh gtkshwget.sh
Error in line 2, near token '<window>': Unknown tag.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Удалось таки увидеть ваше окно. :)
Тег

Код: Выделить всё

<window>
не понимается совсем
Теги, типа

Код: Выделить всё

<combobox case-sensitive=\"true\" allow-empty=\"false\" value-in-list=\"true\">
, работают, если только написать просто

Код: Выделить всё

<combobox>

Строки, типа

Код: Выделить всё

LBL_IGNORE_LENGTH='Ignore "Content-Length" headers'
 работают, если их заменить на

Код: Выделить всё

LBL_IGNORE_LENGTH="Ignore 'Content-Length' headers"


Но, в целом, окно получилось действительно слишком тяжелым. Море владок и не совсем интуитивно.

P.S. Очень может быть, что скачал не тот пакет. Использовался gtkdialog-0.59.8.tar.gz
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Очень может быть, что скачал не тот пакет. Использовался gtkdialog-0.59.8.tar.gz

Кхм. Дык читаем первый пост: Скрипт тестировался на версии 0.7.15. Причём версия эта не самая последняя. А Ваш 0.59.8 и вовсе 2004 года выпуска. :wacko:
Что же касается кавычек, то лично у меня и bash, и shell спокойно проглатывают конструкции вида

Код: Выделить всё

QTEST='this "is" a test'; echo $QTEST
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

Ну... если следовать логике, то 59 несколько больше, чем 7. ;)
Да, на 0.7.20 все работает без ошибок. И окно выходит сразу же. Еще бы мне научиться смотреть не только на номер версии, а еще и на дату изготовления архива программы.
Не, ну неужели не мог автор написать хотя бы 0.70.20? Для таких, как я. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Добрый человек подкинул мне ссылку на tkwget. Оказывается, я не первый, кому в голову пришло сделать графический фронтэнд для wget'а.
Если теперь и доделывать скрипт, то тогда уж до полноценного менеджера закачек на базе wget + gtkdialog... В общем, есть, к чему стремиться. Хотя теперь я начинаю сомневаться в том, что в этом есть необходимость. :)
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3667
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: wget: графическая оболочка

Сообщение devilr »

А заскриптуйте вообще все. Все команды. Даешь GUI полновесный и непобедимый! :)
Было бы лучше, если бы это помогало в повседневной работе. Программа - это хорошо, но, если, для освоения оной надо прочитать man для выполняемой команды, а потом найти нужную кнопку в диалоговом окне, причем можно все это сделать без окна, а в консоли, пользуясь знаниями того же man... зачем такая программа вообще?
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Anton++
Сообщения: 32
ОС: Zenwalk 4.6.1

Re: wget: графическая оболочка

Сообщение Anton++ »

Для начинающих пользователей полновесный, как Вы выразились, GUI может оказаться вполне полезным. В Zenwalk, например, есть скрипты с графическим интерфейсом для настройки сети, видео, управления языковыми установками и аж модулями ядра.
Мой примитивный фейс к wget'у был эдаким пробным шаром. Теперь я понял, что выносить в GUI все настройки не нужно. Это, скорее, даже вредно, ибо интерфейс получается слишком сложным. Писать просто фронтэнд для какой-то программы особого смысла, наверное, тоже нет. Но вот объединение группы программ, к примеру, mac, flac и lame, в едином интерфейсе конвертера аудиофайлов кажется мне не такой уж плохой идеей.
Спасибо сказали:
Аватара пользователя
Horrible
Сообщения: 256
Статус: Emacs geek
ОС: Emacs
Контактная информация:

Re: wget: графическая оболочка

Сообщение Horrible »

Часто пользуетесь вгетом и при этом досихпор его опции по памяти не осилили?
Единственное что действительно нужно вгет это менеджер закачек, я себе это реализовал шелл-скриптами, кривенько но работает, а потом мне дали ссылку на gnusget - оказывается уже готовое есть.
Спасибо сказали:
KMS
Сообщения: 231
ОС: Leap 42.1

Re: wget: графическая оболочка

Сообщение KMS »

Horrible писал(а):
11.02.2008 03:39
...а потом мне дали ссылку на gnusget - оказывается уже готовое есть.

Поставил себе gnusget, но вот что выдает
09:08 dhcppc1:~ > gnusget --start
/bin/gnusget: line 104: http://files.north.kz/f/ftp2682/Supernatur...kowapo.info.rar : Нет такого файла или каталога
Download error.

Хотя как обычно вгетом эта ссылка качается без проблем.
Спасибо сказали:
Аватара пользователя
JackYF
Сообщения: 129
ОС: Debian GNU/Linux
Контактная информация:

Re: wget: графическая оболочка

Сообщение JackYF »

Так, про gwget ещё никто не упоминал? Пробуйте.
"В природе не существует инструмента, машины или устройства, по силе и виртуозности сравнимого с человеческой рукой."
В. Г. Бэнхэм.
---
Ваяю "нелинейный" клавиатурный тренажёр для GNU/Linux - nlkt.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.
Контактная информация:

Re: wget: графическая оболочка

Сообщение eduard_pustobaev »

JackYF писал(а):
11.02.2008 18:49
Так, про gwget ещё никто не упоминал? Пробуйте.

Как это не упоминал? Прочитали бы хоть топик...
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
JackYF
Сообщения: 129
ОС: Debian GNU/Linux
Контактная информация:

Re: wget: графическая оболочка

Сообщение JackYF »

eduard_pustobaev, я честно в прошлый раз проглядел топик, но не заметил. Извиняюсь.
"В природе не существует инструмента, машины или устройства, по силе и виртуозности сравнимого с человеческой рукой."
В. Г. Бэнхэм.
---
Ваяю "нелинейный" клавиатурный тренажёр для GNU/Linux - nlkt.
Спасибо сказали:
Аватара пользователя
eduard_pustobaev
Сообщения: 2629
Статус: Ленивец
ОС: Arch/Debian.
Контактная информация:

Re: wget: графическая оболочка

Сообщение eduard_pustobaev »

JackYF писал(а):
11.02.2008 21:45
eduard_pustobaev, я честно в прошлый раз проглядел топик, но не заметил. Извиняюсь.

Та ладно, извиняться-то за что? Эт я так, ворчу просто... :)
В дисгармонии со вселенной.
Спасибо сказали:
Аватара пользователя
JackYF
Сообщения: 129
ОС: Debian GNU/Linux
Контактная информация:

Re: wget: графическая оболочка

Сообщение JackYF »

Кстати, в gwget я разочаровался. Оно не умеет following. То есть закачка качается, а эта штука вместо ***********.mp3 показывает index.html с нулевыми статусами, типа ничего не происходит. Посмотрю gnusget...
"В природе не существует инструмента, машины или устройства, по силе и виртуозности сравнимого с человеческой рукой."
В. Г. Бэнхэм.
---
Ваяю "нелинейный" клавиатурный тренажёр для GNU/Linux - nlkt.
Спасибо сказали:
Аватара пользователя
Prorok87
Сообщения: 42
ОС: Ubuntu Linux
Контактная информация:

Re: wget: графическая оболочка

Сообщение Prorok87 »

Блин почитал тему и как то желание отпало писать ГУИ к вгету и делать доступным из форточек. Хотя. Была идея сделать гуи и показать форточкам что мы не хуже их. Хоть и есть программа чето типа вгет для виндовс.
Linux is my friends!
Спасибо сказали:
Ответить