LiveDC

livedc_line

В продолжение темы Нужен ли такой DC-клиент:

Позвольте представить вам мою программу LiveDC. Это эскиз того, как должен выглядеть файлообменный клиент:

livedc

В основу его разработки легли следующие положения:

  • Автонастройка

Клиентом можно пользоваться сразу же после установки. Он сам выберет псевдоним, настроит хабы, выберет подходящий режим для соединения.

  • Моментальный доступ к файлам

После нажатия на магнет-ссылку, файл мгновенно появляется на виртуальном диске. LiveDC найдет источники и начнет загрузку. До начала воспроизведения фильма, в среднем, проходит около 10 сек. Если не удается скачать ни одного сегмента, можно отправить файл в очередь и подождать, когда он загрузится полностью.

  • Минималистичный интерфейс

У клиента нет привычного огромного «окна», а все необходимые функции доступны из области уведомлений. 

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

При запуске LiveDC начинает обрабатывать магнет-ссылки и создает виртуальный диск (L:\), где можно найти все файлы, когда-либо открытые через клиент. Три последних файла становятся видны при нажатии на значок программы в области уведомлений.

После нажатия на магнет-ссылку появляется окно:

livedc_starting

Программа еще сырая: возможны ошибки и внезапные перезагрузки компьютера (BSOD). Обязательно сохраняйте важные документы перед ее запуском.

LiveDC 1.1.8
Скачать (1,9 МБ)

Немного технической информации

На разработку работающего прототипа ушла примерно неделя. На доработку и интерфейс —  примерно столько же. Клиент написан на C# в Visual Studio 2012 с использованием библиотеки SharpDC. Для реализации возможности моментального доступа через виртуальный диск используется библиотека Dokan, дистрибутив которой я адаптировал для Windows 8. Дистрибутив собран в InnoSetup.

Баг-трекер

https://bitbucket.org/ErtyHackward/livedc/issues

История обновленй

1.1.8
— добавлена поддержка торрентов
— добавлена возможность поиска по сайтам с помощью плагинов
— изменена форма поиска на хабе (быстрее)
1.0.6
— Продлен срок работы приложения до января 2014
— Обновлена иконка поиска
1.0.5
— Исправлена ошибка, когда клиент не предлагал ввести хаб, если не мог найти ни одного.

  • Xitr

    Здравствуйте, Владислав.
    Обычно использую FlylinkDC++ для загрузки файлов из домовой сети.
    Меня заинтересовала Ваша программа LiveDC.
    Столкнулся с такой проблемой.
    Компьютер с программой за роутером.
    Чтобы работала LiveDC мне нужно её настроить. Для правильного соединения мне нужно указать ip адрес сетевого сервера и внешний WAN IP. А таких настроек там нет.

    Сейчас программа просто пишет «Подключение к хабам». Что на самом деле происходит не ясно.
    И такой вопрос. Программа иницилизирует соединение в активном или в пассивном режиме?

    • ErtyHackward

      Программа проверяет TCP/UPD порты через скрипт на сервере. Через него же она получает внешний IP-адрес. Если соединение на порт не удается, должен активироваться пассивный режим. Клиент просил ввести адрес хаба?

      • Xitr

        Нет. Не просил.

        Я указал в настройках программы LiveDC TCP/UPD порт проброшенный на роутере наружу.
        Открыл магнет-ссылку. Появилось окно «Подключение к хабам». Больше ничего не происходит.

        • ErtyHackward

          Установите, пожалуйста, клиент из этого архива и добавьте файл NLog.config из архива в папку с клиентом. Запустите, во временной папке %temp% клиент создаст лог-файл livedc-2013-06-x.log. Отправьте его мне на почту hackward@gmail.com. Было бы отлично еще перед запуском удалить папку %appdata%LiveDC

          http://hackward.april32.com/wp-content/uploads/2013/06/Debug.rar

        • ErtyHackward

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

          • Xitr

            1. Запустил клиент с чистой папкой %appdata%LiveDC
            Файлы livedc-001.ini и livedc-2013-06-08-001.log после закрытия клиента
            2. Указал в настройках проброшенные порты.
            Файлы livedc-002.ini и livedc-2013-06-08-002.log после закрытия клиента
            2.5 Перезапустил. Нет никакого результата.
            2.6 Перезапустил. Нет никакого результата.
            2.7 Перезапустил. Нет никакого результата.
            3. Указал вручную в файле livedc.ini адрес хаба dchub://dchub.zone.itnet
            Статус: в сети.
            Клиент заработал.
            Файлы загружаются, видео показывает. Супер.
            Файлы livedc-003.ini и livedc-2013-06-08-003.log после закрытия клиента
            4. Следующий запуск. Соединение не происходит. Клиент спрашивает адрес хаба.
            После ввода адреса.
            Статус: в сети.
            Клиент заработал.
            Файлы livedc-004.ini и livedc-2013-06-08-004.log после закрытия клиента

            Версия 1.0.5beta Windows 7 home 64

            Архив отправил на почту hackward@gmail.com

          • ErtyHackward

            Спасибо за информацию и тестирование!
            Сегодня утром я исправил ошибку и выложил обновление, версия клиента осталась той же 1.0.5, но если вы брали файлы из Debug.rar то файлы там старые, не исправленные. Переустановите, пожалуйста, программу отсюда: http://livedc.april32.com/setup_livedc.rar

            Все должно заработать само.

          • Xitr

            Да. Здорово. Теперь работает, как заявлено.
            Вопросы
            1) Как программа связала мой ip и адрес хаба?
            Иначе говоря, адрес dchub://dchub.zone.itnet я не вводил, конфиги были чистые. А программа адрес сама заполнила.

            2) Невозможно удалить уже закаченный файл.
            На виртуальном диске удаление не проходит, ссылается на lock.
            А в самом окне доступны только два последних файла.
            Хорошо бы если можно было удалять прямо с виртуального диска.

            3) Программа не проверяет наличие уже целиком загруженного файла в кэше.
            В результате файл на виртуальном диске есть, а приложение доступ к нему не имеет.
            Возможно, в этом случае стоит начинать загрузку сначала.

          • ErtyHackward

            1. Программа определяет город откуда запущена и запрашивает список хабов с сервера для этого города.
            2. 3. Согласен, добавлю в список задач.

          • Xitr

            Предложение.
            1) Подумайте о расширении возможностей программы в рамках той же концепции.
            На том же виртуальном диске отображать папку с именем хаба.
            В этой папке выводить всех пользователей, которые подключены к хабу. Опять же в виде папок.
            А в папке пользователя отображать его шару. С кэшированием и загрузкой файла при попытке доступа к файлу.
            Т.е. смонтировать содержимое хаба на виртуальный диск.
            2) Напрашивается из первого.
            Концепция. Мы заходим в папку хаба, в папку пользователя и средствами windows копируем папку в буфер обмена (Сам путь, не содержимое. Что то вроде dchub://superhub.ru/pupkin/mult )/ ). А затем вставляем в корень виртуального диска. Т.е. получаем папку находящуюся на удалённом компьютере.

          • ErtyHackward

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

            Создал трекер для задач.
            https://bitbucket.org/ErtyHackward/livedc/issues

  • Romich777

    Все также не всегда предлагает ввести хаб (Win 8.1 x64, Win 7 x32) добавьте в настройки список хабов с возможностью редактирования (я понимаю, что это не совсем вписывается в ваш концепт минималистичности, но, как по мне жертвовать функциональностью не стоит, просто спрятать настройки папки, диска, хабов спрятать на уровоне глубже)

  • Александр Бондарев

    Заинтересовался Вашим клиентом DC++. Могу ли я из программы передать клиенту адрес магнет ссылки, узнать процент закачки и удалить файл? Так же не могу настроить LiveDC++ на определенный хаб ((

    • ErtyHackward

      Если вам нужно скачать что-то в своей программе проще использовать библиотеку и написать под нее небольшую обвязку с тем что вам нужно. В клиенте API для управления нет. Добавить хаб можно только в настройках в %appdata%LiveDclivedc.ini