LanCrawler v2
LanCrawler — сетевой ползун, позволяющий преобразить поиск файлов в локальной сети.
LanCrawler составляет базу данных доступных файлов в локальной сети и предоставляет веб-интерфейс для поиска среди них. Фильмы дополняются информацией из интернета, скачиваются картинки фильма, актёров, описания.
Для поиска служит Веб-Интерфейс. Веб-интерфейс построен по концепциям Web 2.0, с ajax и динамикой. Пользователи могут оставлять комментарии, оценивать фильмы и добавлять теги. Веб-интерфейс позволяет искать самые последние фильмы и файлы, доступные в локальной сети.
Возможности веб-интерфейса:
- Мгновенный поиск по файлам.
- Возможность отложить интересный фильм для просмотра позже.
- Автоматическая регистрация пользователей локальной сети по связке IP и MAC, нету надобности в введения пароля.
- Возможно оставить комментарий для файла
- Поиск среди включённых компьютеров в локальной сети.
- Фильмы дополняются описание и информацией об актёрах, режиссерах.
- Поиск самых новых файлов в локальной сети.
- При поиске выводится информация о файле: фильме, или музыке, если такая имеется.
- Поиск похожих результатов (опечатки, неточности)
- Автоматическая проверка доступности компьютеров быстрым встроенным пингером
- Периодическое обнаружение новых файлов, автоматическое обновление базы.
- Настраиваемая маска фильтра для файлов (*.avi, *.*, т.д.) и минимального размера файла.
В будущих планах:
- Импорт информации из Ant Movie Catalog.
- Теги, рейтинги, и автоскачивание информации с инета
- Автоматическое распознавание MP3 тегов ID3v1 и ID3v2.
- Система rating'ов в базе, система Digg'ов.
- Вывод популярных поисков
Требования
Программа написана на C# 2.0, требует .Net Framework 2.0. Программа включает в себя встроенную базу данных, веб сервер, и индексатор. Для работы требуется OC Windows, Mono не тестировался. Веб-интерфейс доступен в локальной сети через веб-браузер.
Установка
Скачать последнюю версию.
Инсталлятор самостоятельно качает дистрибутив .Net Framework 2.0. При запуске программа попытается открыть веб-сервер на порту 80, сайт будет доступен на http://localhost/.
Лицензия
Программа распространяется по GPL 2.0, это означает, что можно смотреть и изменять программу, но распространять её можно только под лицензией GPL 2.0. Коммерческое использование запрещено. Исходники доступны на svn.
История
Программа разрабатывается для моей локальной сети в моём клёвом посёлке Металлострое, под Санкт-Петербургом, в России.
- Сайт Металлостроя: www.metallostroy.ru.
- Сайт локальной сети: www.metallonet.ru.
Первая версия программы была написана под РНР с базой MS Access, картинки можно посмотреть здесь.
Так же, программа оформлена как моя Научно-Исследовательская работа для получения диплома Мастера в Санкт-Петербургском Государственном Политехническом Университете, Факультет Технической Кибернетики.
Об авторе
Автор — Дмитрий Садаков, 21-ти летний программист из России.
- Ведёт блог http://cdima.livejournal.com
- Сайт: http://dima.sadakov.com
- Русский сайт: http://sadakov.spb.ru
- Логи разработки можно прочитать в блоге: логи разработки
Технические аспекты программы
Разрабатывая программу, я сумел реализовать довольно любопытные, на мой взгляд, вещи:
- Встроенная база данных: полноценная СУБД Firebird. Не требуется внешняя база данных, в памяти употребляет меньше 2-ти мегабайт, полная поддержка SQL и ADO.Net.
- Встроенный веб-сервер: C# 2.0 предоставляет базовые классы для работы с Http-запросами. Расширив эти классы до многопоточного, полноценного http-сервера, с корректными mime-ответами и XSLT-шаблонами ответов, я сумел избежать потребности в внешнем веб-сервере типа Apacha и IIS. В итоге программа может быть запущена под любой Windows машиной и так же просто удалена.
- Один из плюсов встроенного веб-сервера позволил пользователям локальной сети авторизоваться по связке IP и MAC, которые иначе можно было бы подделать.
- Веб-сайт построен на шаблонах XSLT, что отделяет запросы к базе данных и других источников данных от представления.
- Веб-сайт расположен физически как скин в одной папке, и выбрать другой веб-сайт можно одним кликом в самой программе.
- Используется библиотека prototype.js для AJAX-запросов к серверу в веб-интерфейсе. И javascript-библиотека moo.fx для динамики интерфейса. Вмести они позволили построить современный, удобный веб-интерфейс в славных традициях Web 2.0.
- Используется порт Lucene под .Net — Lucene.Net — чтобы предоставить чертовски быстрые ответы, с возможностью опечаток, звёздочек, и в целом намного больше гибкости чем можно было достичь в SQL базе. Индекс Lucene аккуратно держится в синхронизации с основной базой данной. Гибкий поиск производится по индексам Lucene, а затем подтягиваются данные с Firebird. Таким образом я получаю плюсы двух миров. (Для Lucene есть обалденная книга — Lucene in Action.)
Подобные программы:
- sharehound @ sourceforge.net — написана на java, работает под Tomcat, и использует Lucene; Открытый проект, автор мне сильно помогал, за что ему огромное спасибо.
- Скрипт видео-каталога @ lanmediaservice.com — $100, закрытый, РНР + MySQL, ориентированный на видео, и сделан с мега ajax-интерфейсом. На сайте есть демоверсия.
Спасибо за внимание,
Дмитрий Садаков