Telegram Web K with changes to work inside I2P
https://web.telegram.i2p/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
909 B
29 lines
909 B
/* |
|
* https://github.com/morethanwords/tweb |
|
* Copyright (C) 2019-2021 Eduard Kuzmenko |
|
* https://github.com/morethanwords/tweb/blob/master/LICENSE |
|
*/ |
|
|
|
import {getServiceMessagePort} from '../mtproto/mtproto.worker'; |
|
import ServiceMessagePort from '../serviceWorker/serviceMessagePort'; |
|
import StreamWriter from './streamWriter'; |
|
|
|
export default class DownloadWriter implements StreamWriter { |
|
constructor( |
|
private serviceMessagePort: ServiceMessagePort<true>, |
|
private downloadId: string |
|
) { |
|
this.serviceMessagePort = getServiceMessagePort(); |
|
} |
|
|
|
public async write(part: Uint8Array, offset?: number) { |
|
return this.serviceMessagePort.invoke('downloadChunk', { |
|
id: this.downloadId, |
|
chunk: part |
|
}); |
|
} |
|
|
|
public finalize(saveToStorage?: boolean): Promise<Blob> { |
|
return this.serviceMessagePort.invoke('downloadFinalize', this.downloadId).then(() => undefined); |
|
} |
|
}
|
|
|