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

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

Похожие вопросы