Это web-интерфейс для wget - программы загрузки файлов по сети. Построен по принципу клиент/сервер, где клиент построен с использованием Ajax и CSS3, и PHP с серверной.
This is web-interface for wget - program for downloading files from network. Built on the principle client/server, where client based on Ajax and CSS3 technologies, and PHP on the server side.
- Русский (Ru)
- English (En)
- French (FR) (Translator: Florian M)
- Deutsch (DE) (Translator: Olga Kleinknecht)
Описание | |
---|---|
unix | Написано и протестировано именно для ОС данного семейства. Для запуска на других ОС потребуются рабочие порты wget , ps и rm . Протестирована работа на версиях Debian Linux 2.6.32.11, FreeBSD 8.3, CentOS 7 |
bash | Используется создание подпроцессов и проверка условий, написано именно под эту командную оболочку. Для запуска под другой потребуется изменить все запуски системных команд. Протестирована работа на версиях 4.1.11(2), 4.2.24(1) и 4.2.46(1) |
php | Необходим выключенный safe_mode, разрешение на выполнение exec(), posix_kill(), unlink() и ряда других функций. Протестирована работа на версиях 5.2.6, 5.3.13 и 5.4.16 |
Серверная часть выполняет следующие задачи:
- Получение информации о запущенных задачах (через запуск
ps
и парсинг лог-файловwget
); - Отмена запущенных задач (через выполнение posix_kill() или
kill
при недоступности первой); - Добавление новых задач (производя запуск
wget
в подпроцессе через exec()); - Получение списка истории (парсинг файла истории);
- Ведение логов;
- Тестирование серверной части;
- Возвращение результатов в формате JSON.
Нужно заметить, что некоторые системы ограничивают длинну вывода команды
ps
, что делает работу данного проекта невозможной в полной (задачи добавляются, но получить их список или отменить какую либо из них - невозможно). Такое явление бывает редко, но на некоторых системах - встречается.
Основные настройки вынесены в файл settings.php
, и устанавливаются в формате:
define('параметр', 'значение');
Описание параметров приведено в таблице ниже:
Параметр | Описание |
---|---|
WGET_GUI_LIGHT_VERSION |
Версия пакета. Изменять это значение не нужно |
DEBUG_MODE |
Режим отладки (добавляет подробный вывод в лог-файл и консоль браузера). По умолчанию выключен |
BASEPATH |
Путь до директории, где расположен Wget GUI Light .Изменять это значение не нужно без необходимости |
BASEURL |
URL адрес, где расположен Wget GUI Light .Изменять это значение не нужно без необходимости |
DOWNLOAD_PATH |
Путь до директории, в которую будет происходить сохранение всех загружаемых файлов. Обязательный параметр. По умолчанию BASEPATH.'/downloads' |
DOWNLOAD_URL |
URL адрес до директории, где располагаются загруженные файлы. Если этот путь указать и он будет валидный - в списке загруженных файлов и истории задач вместо ссылок на исходные файлы будет выводиться адрес для открытия уже загруженный файлов прямо в браузере. По умолчанию BASEURL.'downloads/' |
TMP_PATH |
Путь для временных лог-файлов wget . Автоматически удаляются при завершении или прерывании задачи.Обязательный параметр. По умолчанию '/tmp' |
LOG_PATH |
Директория для лог-файлов серверной части. Возможен режим записи разных типов сообщений в разные файлы (устанавливаются в константах класса log ). По умолчанию запись всех сообщений происходит в файл wgetgui.log .По умолчанию BASEPATH.'/log' |
LOG_HISTORY |
Вести запись истории задач. Так же отображается в GUI. По умолчанию BASEPATH.'/log/history.log' |
HISTORY_LENGTH |
Количество элементов истории, которое возвращается при запросе 'get_history'. По умолчанию 5 |
WGET_ONE_TIME_LIMIT |
Лимит на количество одновременно запущенных задач. По умолчанию 10 |
WGET_DOWNLOAD_LIMIT |
Ограничение скорости закачки wget в Кб/сек.По умолчанию 2048 |
WGET_SECRET_FLAG |
Параметр wget , дописываемый ко всем запускаемым задачам, для определения источника запуска. Без необходимости не надо его изменять.Обязательный параметр. По умолчанию --max-redirect=4321 |
wget , ps и rm |
Возможно указать свои пути до исполняемых фалов wget , ps и rm в случае, если в этом есть необходимость.По умолчанию параметры выключены |
Скрипт отвечает на POST и GET запросы, запросы из командной строки. Например:
php ./rpc.php get_list
php ./rpc.php add_task http://goo.gl/5Qi0Xs`
Поддерживается работа (автоматическое получение прямых ссылок) со следующими ресурсами:
- YouTube, примеры ссылок:
http://www.youtube.com/watch?v=o1k8hJ1d8G4
http://youtu.be/o1k8hJ1d8G4
www.youtube.com/embed/o1k8hJ1d8G4
- vk.com, примеры ссылок:
<iframe src="http://vk.com/video_ext.php?oid=-24589324&id=166211165&hash=aaefd0ae8321e482&hd=1" width="607" height="360" frameborder="0"></iframe>
http://vk.com/video_ext.php?oid=-24589324&id=166211165&hash=aaefd0ae8321e482
Для браузера обязательна поддержка JavaScript и крайне желательна свойств CSS3. Интерфейс выполнен в минималистичном стиле:
Все запросы выполняются без перезагрузки страницы. Дизайн — адаптивный. Изменение состояния отображается как на самой странице, так и в заголовке вкладки (окна).
Возможно одновременное добавление нескольких задач, добавляя новые строки нажатием клавиш Ctrl (⌘) и Enter (одна строка - одна задача).
Для того, чтобы задать имя сохраняемого файла необходимо добавить к строке задачи с URL строку вида " -> filename.ext
" (с пробелом в начале), полный вид запроса при этом будет:
htttp://somehost.io/oldfilename.zip -> newfilename.zip
Если указанное указанный файл имеется - он будет перезаписан.
При нажатии клавиши F5 происходит обновление списка задач, страница перезагружается только по нажатию на кнопку "Обновить страницу" в браузере.
Основной JavaScript код расположен в файле js/core.js
, но его основные настройки (как и настройки rpc.php
) располагаются в файле settings.php
:
Параметр | Описание |
---|---|
addTasksLimitCount |
Лимит на количество одновременно добавляемых задач. Обязательный параметр. По умолчанию 5 |
updateStatusInterval |
Интервал обновления данных в открытой вкладке или окне (будьте аккуратны с этим параметром на слабых серверах). По умолчанию 5000 |
DEBUG_MODE |
Режим отладки, при активации которого выводится отладочная информация в console.log(). По умолчанию false |
CheckForUpdates |
Функция автоматической проверки обновлений. При наличии обновления выводит информационную ссылку рядом с указателем текущей версии в выдвижном меню. По умолчанию true |
CheckExtensionInstalled |
Функция проверки установленного расширения для браузера. В случае его отсутствия или деактивированности - выводит ссылку на него в выдвижном меню. По умолчанию true |
rpc |
Путь до скрипта серверной части. По умолчанию rpc.php |
Для перевода интерфейсной части воспользуйтесь файлом gui/l10n.js
. В комментариях этого файла указано в каком виде необходимо указывать локализации. Активная локаль автоматически определяется браузером.
Подробная инструкция находится на странице "Установка и обновление"
Подробная история изменений и нововведений находится на странице "История изменений"
Расширения пишутся по мере возможности, в данный момент доступны версии для:
- Google Chrome Extension
- Firefox (в планах)
- Opera (в планах)
Если у вас есть желание и возможность - вы можете внести свой вклад разработав его самостоятельно, и прислав его исходный код. Ваше имя будет внесено в список разработчиков. Связаться с разработчиками можете воспользовавшись страницей "Задать вопрос"
- Новость на ресурсе Хабрахабр
- Запись в блоге blog.kplus.pro
Для обсуждения найденных недоработок, ошибок, или не хватающего функционала воспользуйтесь страницей "Сообщить об ошибке / необходимости доработки". К сообщению прикладывайте вывод консоли браузера и содержимое лог-файла wgetgui.log
предварительно включив режим отладки:
## In 'settings.php'
define('DEBUG_MODE', true);
Так же максимально подробно описывайте то что вы хотели сделать, какие действия для этого вы произвели, какой результат ожидали получить, и каков результат оказался на самом деле. Так же очень желательно прикреплять к сообщению данные о версиях используемого ПО (
cat /proc/version
,wget -V
,php -v
).
- Библиотека "JQuery"
- Парсер ссылок "url.js"
- JQuery-плагин уведомлений "jquery.owl"
- CSS код из статьи "CSS3 progress bar"
- JQuery-плагин для работы с cookies "jquery.cookie.js"
- JQuery-плагин "выплывающих окон" "bPopup"
- Редактор readme.md
Copyright © 2015 Samoylov Nikolay
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, добавление, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, также как и лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:
Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.
ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.