Модуль для Node.js -> исполнить в браузере. BitTor

Александр15 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
13.12.2013

Цель:

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

Задача:

1. Взять готовую библиотеку node-bittorrent-sync: https://github.com/yannickcr/node-bittorrent-sync/tree/master/test/mock

2. Адаптировать ее выполнение в браузере IE. Можно c использованием jQuery.

Документация:

BitTorrent Sync API: http://www.bittorrent.com/intl/ru/sync/developers/api

Зачем нужен BitTorrent Sync: http://habrahabr.ru/post/201072/

Проект не оплачиваемый. За карму. Кто хочет заморочиться интересной задачей? :)

Инструкции, которые могут быть полезны:

Чтобы запустить Bittorent Sync с включенным API, нужно:

Установить сам Bittorent Sync

В папке рядом с exe-файлом создать cmd: BTSync.exe /config "C:\Program Files (x86)\BitTorrent Sync\config.txt»

И рядом создать 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, нужно:

Установить node.js

Установить node-bittorrent-sync коммандой: npm install bittorrent-sync

Запускаем в cmd: node lib\bittorrent-sync.js

Устанавливаем все модули, которые он требует

Пробуем запусть тест, но упремся в проблему с 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.