Цель:
Управлять запущенным 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.