Skip to content

l3xx/wget-gui-light

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wget GUI Light

license MIT license MIT php 4,5 version

Что это?

Это web-интерфейс для wget - программы загрузки файлов по сети. Построен по принципу клиент/сервер, где клиент построен с использованием Ajax и CSS3, и PHP с серверной.

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

  Описание
unix Написано и протестировано именно для ОС данного семейства. Для запуска на других ОС потребуются рабочие порты wget, ps и rm. Протестирована работа на версиях Debian Linux 2.6.32.11 и FreeBSD 8.3
bash Используется создание подпроцессов и проверка условий, написано именно под эту командную оболочку. Для запуска под другой потребуется изменить все запуски системных команд. Протестирована работа на версиях 4.1.11(2) и 4.2.24(1)
php Необходим выключенный safe_mode, разрешение на выполнение exec(), posix_kill(), unlink() и ряда других функций. Протестирована работа на версиях 5.2.6 и 5.3.13

Особенности и настройки серверной части

Серверная часть выполняет следующие задачи:

  • Получение информации о запущенных задачах (через запуск ps и парсинг лог-файлов wget);
  • Отмена запущенных задач (через выполнение posix_kill());
  • Добавление новых задач (производя запуск wget в подпроцессе через exec());
  • Получение списка истории (парсинг файла истории);
  • Ведение логов;
  • Тестирование серверной части;
  • Возвращение результатов в формате JSON.

Основные настройки вынесены в файл settings.php, и устанавливаются в формате:

define('параметр', 'значение');

Описание параметров приведено в таблице ниже:

Параметр Описание
download_path Путь до директории, в которую будет происходить сохранение всех загружаемых файлов.
Обязательный параметр.
По умолчанию BASEPATH.'/downloads'
tmp_path Путь для временных лог-файлов wget. Автоматически удаляются при завершении или прерывании задачи.
Обязательный параметр.
По умолчанию '/tmp'
log_path Директория для лог-файлов серверной части. Возможен режим записи разных типов сообщений в разные файлы (устанавливаются в константах класса log). По умолчанию запись всех сообщений происходит в файл wgetgui.log.
По умолчанию '/log'
history Вести запись истории задач. Так же отображается в GUI.
По умолчанию /log/history.log
WgetOnetimeLimit Лимит на количество одновременно запущенных задач.
По умолчанию 10
wget_download_limit Ограничение скорости закачки wget в Кб/сек.
По умолчанию 2048
wget_secret_flag Параметр wget, дописываемый ко всем запускаемым задачам, для определения источника запуска. Без необходимости не надо его изменять.
Обязательный параметр.
По умолчанию --max-redirect=4321
DebugMode Включается режим отладки (добавляет подробный вывод в лог-файл).
По умолчанию выключен
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=25654706&id=167596549&hash=22e03c697e10f723&hd=1" width="607" height="360" frameborder="0"></iframe>
    • http://vk.com/video_ext.php?oid=25654706&id=167596549&hash=22e03c697e10f723

Особенности и настройки клиентской части

Для браузера обязательна поддержка 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
DebugMode Режим отладки, при активации которого выводится отладочная информация в console.log().
По умолчанию false
CheckForUpdates Функция автоматической проверки обновлений. При наличии обновления выводит информационную ссылку рядом с указателем текущей версии в выдвижном меню.
По умолчанию true
CheckExtensionInstalled Функция проверки установленного расширения для браузера. В случае его отсутствия или деактивированности - выводит ссылку на него в выдвижном меню.
По умолчанию true
prc Путь до скрипта серверной части.
По умолчанию rpc.php

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

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

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

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

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

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

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

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

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

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

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

Лицензия: MIT

Copyright © 2014 Samoylov Nikolay

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

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

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

About

Web (ajax + php) gui for wget

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 43.4%
  • PHP 33.7%
  • CSS 18.5%
  • HTML 4.3%
  • ApacheConf 0.1%