Skip to content

x0x8x/wget-gui-light

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wget GUI Light

license MIT license MIT php 4,5 version

What is it? / Что это?

Это 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.

Supported languages / Поддерживаемые языки

Какие требования к системе?

  Описание
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. Интерфейс выполнен в минималистичном стиле:

screenshot

Все запросы выполняются без перезагрузки страницы. Дизайн — адаптивный. Изменение состояния отображается как на самой странице, так и в заголовке вкладки (окна).

Возможно одновременное добавление нескольких задач, добавляя новые строки нажатием клавиш 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

Локализация / Localization

Для перевода интерфейсной части воспользуйтесь файлом gui/l10n.js. В комментариях этого файла указано в каком виде необходимо указывать локализации. Активная локаль автоматически определяется браузером.

Установка / обновление

Подробная инструкция находится на странице "Установка и обновление"

История изменений

Подробная история изменений и нововведений находится на странице "История изменений"

Расширения для браузеров

Расширения пишутся по мере возможности, в данный момент доступны версии для:

Если у вас есть желание и возможность - вы можете внести свой вклад разработав его самостоятельно, и прислав его исходный код. Ваше имя будет внесено в список разработчиков. Связаться с разработчиками можете воспользовавшись страницей "Задать вопрос"

Ссылки на новости о данном проекте:

Я нашел ошибку / мне необходима функция

Для обсуждения найденных недоработок, ошибок, или не хватающего функционала воспользуйтесь страницей "Сообщить об ошибке / необходимости доработки". К сообщению прикладывайте вывод консоли браузера и содержимое лог-файла wgetgui.log предварительно включив режим отладки:

## In 'settings.php'
define('DEBUG_MODE', true);

Так же максимально подробно описывайте то что вы хотели сделать, какие действия для этого вы произвели, какой результат ожидали получить, и каков результат оказался на самом деле. Так же очень желательно прикреплять к сообщению данные о версиях используемого ПО (cat /proc/version, wget -V, php -v).

Использованы следующие библиотеки и решения:

Лицензия: MIT

Copyright © 2015 Samoylov Nikolay

Данная лицензия разрешает лицам, получившим копию данного программного обеспечения и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»), безвозмездно использовать Программное Обеспечение без ограничений, включая неограниченное право на использование, копирование, изменение, добавление, публикацию, распространение, сублицензирование и/или продажу копий Программного Обеспечения, также как и лицам, которым предоставляется данное Программное Обеспечение, при соблюдении следующих условий:

Указанное выше уведомление об авторском праве и данные условия должны быть включены во все копии или значимые части данного Программного Обеспечения.

ДАННОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНО ВЫРАЖЕННЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ПО ЕГО КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ В КАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО ИСКАМ О ВОЗМЕЩЕНИИ УЩЕРБА, УБЫТКОВ ИЛИ ДРУГИХ ТРЕБОВАНИЙ ПО ДЕЙСТВУЮЩИМ КОНТРАКТАМ, ДЕЛИКТАМ ИЛИ ИНОМУ, ВОЗНИКШИМ ИЗ, ИМЕЮЩИМ ПРИЧИНОЙ ИЛИ СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

About

Web (ajax + php) gui for wget

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 45.0%
  • PHP 33.1%
  • CSS 17.9%
  • HTML 3.8%
  • ApacheConf 0.2%