@ArtX

Как в BitTorrent Sync адаптировать модуль от Node.js на исполнение в браузере?

Цель:
Управлять запущенным BitTorrent Sync из браузера. Для этого нужно адаптировать библиотеку написанную для Node.js.

Задача:
1. Взять готовую библиотеку node-bittorrent-sync: https://github.com/yannickcr/node-bittorrent-sync/...
2. Адаптировать ее выполнение в браузере IE. Можно c использованием jQuery.

Документация:
BitTorrent Sync API: www.bittorrent.com/intl/ru/sync/developers/api
Зачем нужен BitTorrent Sync: habrahabr.ru/post/201072

Кто может помочь в реализации данной задачи?

Инструкции, которые могут быть полезны
Чтобы запустить Bittorent Sync с включенным API, нужно:
1. Установить сам Bittorent Sync
2. В папке рядом с exe-файлом создать cmd: BTSync.exe /config "C:\Program Files (x86)\BitTorrent Sync\config.txt»
3. И рядом создать config.txt:
{
    // path to folder where Sync will store its internal data,
    // folder must exist on disk
    //"storage_path" : "C:\Program Files (x86)\BitTorrent Sync",

    // run Sync in GUI-less mode
    "use_gui" : false,

    "webui" : {
        // IP address and port to access HTTP API
        "listen" : "127.0.0.1:8888",
        // login and password for HTTP basic authentication
        // authentication is optional, but it's recommended to use some
        // secret values unique for each Sync installation
        "login" : "api",
        "password" : "secret",
        // Это мой ключ, который я получил от Bittorent
        "api_key" : "63OPLBB3ZFSLX4LYQYY7ITXGJGS4ICKIRDYVN6ZKEP7XNQGRK7MM7VC3Z2BDIJBWP7UFXEHOJEPWTAUQQTPH7JZGPVG5WAQYPO75EDJ6USHCEQ2A4GWHGKTOULJMZEDBIYAAF7Y"
    }
}


Чтобы запустить node-bittorrent-sync, нужно:
1. Установить node.js
2. Установить node-bittorrent-sync коммандой: npm install bittorrent-sync
3. Запускаем в cmd: node lib\bittorrent-sync.js
4. Устанавливаем все модули, которые он требует
5. Пробуем запусть тест, но упремся в проблему с Jasmine: node test\getOs.js

Автотесты написанны на Jasmine. Надо разобраться, как именно это работает.
Если код getOs.js упростить, чтобы было без Jasmine, то все запустится, например:
nock('http://localhost:8888')
      .get('/api?method=get_os');
btsync.getOs(function(err, result) {
	  console.log(result);
    });
nock.cleanAll();


P.S.:
Всякие библиотеки, которые подключаются через require(), надо подменять стандартными функциями JavaScript.
  • Вопрос задан
  • 3446 просмотров
Пригласить эксперта
Ответы на вопрос 3
pomeo
@pomeo
Вы конечно молодец и много всего понаписали, но забыли самое главное, JAVASCRIPT В БРАУЗЕРЕ НЕ РАБОТАЕТ С ФАЙЛАМИ.
А сделать вам надо следующее, выкинуть всё это то что вы выше написали. Взять ту библиотеку для node.js и написать rest api или rpc api или чего хотите. Накрутить простенький интерфейс на это и стучать с этого интерфейса в этом api, а там уже нода будет делать то что вам надо.
Ответ написан
Смотрели в сторону browserify?
Ответ написан
Вот набросал по быстрому: jQuery Bittorent Sync.
Если Bittorrent Sync настроен, тогда можно пройти вот сюда, здесь небольшая демонстрация работы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы