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.
 
 
 
 
 

52 lines
1.5 KiB

import apiManager from "./apiManager";
import AppStorage from '../storage';
import cryptoWorker from "../crypto/cryptoworker";
import networkerFactory from "./networkerFactory";
//const ctx: Worker = self as any;
const ctx = self;
//console.error('INCLUDE !!!', new Error().stack);
networkerFactory.setUpdatesProcessor((obj, bool) => {
ctx.postMessage({update: {obj, bool}});
});
ctx.onmessage = function(e) {
var taskID = e.data.taskID;
if(e.data.useLs) {
AppStorage.finishTask(e.data.taskID, e.data.args);
return;
}
switch(e.data.task) {
case 'unzip':
return cryptoWorker.gzipUncompress.apply(cryptoWorker, e.data.args).then(result => {
ctx.postMessage({taskID: taskID, result: result});
});
default: {
try {
let result = apiManager[e.data.task].apply(apiManager, e.data.args);
if(result instanceof Promise) {
result.then(result => {
//console.log(e.data.task + ' result:', result, taskID);
ctx.postMessage({taskID: taskID, result: result});
}).catch(err => {
//console.error(e.data.task + ' err:', err, taskID);
ctx.postMessage({taskID: taskID, error: err});
});
} else {
ctx.postMessage({taskID: taskID, result: result});
}
} catch(err) {
ctx.postMessage({taskID: taskID, error: err});
}
//throw new Error('Unknown task: ' + e.data.task);
}
}
}
ctx.postMessage('ready');