Модуль для Node.js -> исполнить в браузере. BitTor
Цель:
Управлять запущенным 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.