X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fvideos%2Fvideo-watch%2Fwebtorrent.service.ts;h=211894bfd3e546559c13955745d9fc957a29b7de;hb=8b13c289f8db1666a3970882797d42f6cfd6128b;hp=bf38b5aaaa38da97edd5d136212422c7cc2c36e5;hpb=4a6995be18b15de1834a39c8921a0e4109671bb6;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/videos/video-watch/webtorrent.service.ts b/client/src/app/videos/video-watch/webtorrent.service.ts index bf38b5aaa..211894bfd 100644 --- a/client/src/app/videos/video-watch/webtorrent.service.ts +++ b/client/src/app/videos/video-watch/webtorrent.service.ts @@ -1,26 +1,33 @@ -// Don't use webtorrent typings for now -// It misses some little things I'll fix later -// +import { Injectable } from '@angular/core' +import { Subject } from 'rxjs/Subject' -import { Injectable } from '@angular/core'; - -// import WebTorrent = require('webtorrent'); -declare var WebTorrent: any; +import * as WebTorrent from 'webtorrent' @Injectable() export class WebTorrentService { - // private client: WebTorrent.Client; - private client: any; + errors = new Subject() + warnings = new Subject() + + // TODO: use WebTorrent @type + // private client: WebTorrent.Client + private client: any + + constructor () { + this.client = new WebTorrent({ dht: false }) + + this.client.on('error', (err) => this.errors.next(err)) + this.client.on('warning', (err) => this.warnings.next(err)) + } - constructor() { - this.client = new WebTorrent({ dht: false }); + add (magnetUri: string, callback: Function) { + return this.client.add(magnetUri, callback) } - add(magnetUri: string, callback: Function) { - return this.client.add(magnetUri, callback); + remove (magnetUri: string) { + return this.client.remove(magnetUri) } - remove(magnetUri: string) { - return this.client.remove(magnetUri); + has (magnetUri: string) { + return this.client.get(magnetUri) !== null } }