VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/keeview_app/html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/keeview_app/html/cache_module.js
function pullcache(prefix, connector, type, filename, encoder, decoder, ver) {
    var lastdot = -1;
    var i, n;
    n = filename.length;
    for (i = 0; i < n; i++) {
        if (filename.substr(i, 1) == ".") lastdot = i;
    }
    if (lastdot != -1) {
        filename = filename.substr(0, lastdot) + "." + ver + filename.substr(lastdot);
    }
    fetch("https://keeview.com/system/" + filename).catch(function (e) {
        console.log("cache failed");
        window[prefix + "_status"] = "none";
    }).then(function (result) {
        var content, size, data;
        var i;
        if (result.ok) {
            reader = result.body.getReader();
            content = [];
            size = 0;
            var readFunc = function () {
                reader.read().then(function (result) {
                    if (!result.done) {
                        content.push(result.value);
                        size += result.value.length;
                        Thread.setTimeout({func: readFunc});
                    }
                    else {
                        data = new Uint8Array(size);
                        size = 0;
                        for (i = 0; i < content.length; i++) {
                            data.set(content[i], size);
                            size += content[i].length;
                        }
                        content = null;
                        reader = null;
                        ZipWorkerClass.extractu8([{content: data}], function (result) {
                            var keys = Object.keys(result);
                            result = EncodingClass.string.fromUint8Array(result[keys[0]].content);
                            result = encoder(result);
                            connector.write2(
                                [
                                    {
                                        key: "ver_" + type,
                                        value: ver
                                    },
                                    {
                                        key: "data_" + type,
                                        value: result
                                    }
                                ],
                                function (prefix, decoder, result) {
                                    return function () {
                                        try {
                                            decoder(result);
                                        }
                                        catch (e) {
                                            console.error(e);
                                        }
                                        window[prefix + "_status"] = "ready";
                                    }
                                } (prefix, decoder, result)
                            );
                        }, [data.buffer]);
                    }
                });
            }
            Thread.setTimeout({func: readFunc});
        }
    });
}

function checkcachever(prefix, connector, type, filename, encoder, decoder, ver) {
    FormClass.api_call({
        url: "https://keeview.com/system/gettimestamp.php",
        params: [
            {
                name: "fname",
                value: filename
            }
        ],
        func: function (prefix, connector, type, filename, encoder, decoder, ver) {
            return function(success, message) {
                var xver;
                if (success) {
                    if (message.substr(0, 2) == "ok") {
                        xver = parseInt(message.substr(2));
                        if (ver == xver) {
                            connector.read("data_" + type, function (prefix, connector, type, filename, encoder, decoder) {
                                return function (success, value) {
                                    if (success) {
                                        try {
                                            decoder(value);
                                        }
                                        catch (e) {
                                            console.error(e);
                                        }
                                        window[prefix + "_status"] = "ready";
                                    }
                                    else {
                                        pullcache(prefix, connector, type, filename, encoder, decoder, xver);
                                    }
                                }
                            } (prefix, connector, type, filename, encoder, decoder));
                        }
                        else {
                            pullcache(prefix, connector, type, filename, encoder, decoder, xver);
                        }
                    }
                    else {
                        console.log("cache failed", message);
                        window[prefix + "_status"] = "none";
                    }
                }
                else {
                    console.log("cache failed", message);
                    window[prefix + "_status"] = "none";
                }
            }
        } (prefix, connector, type, filename, encoder, decoder, ver)
    });
}

function loadcache(clientcode, type, filename, initFunc, encoder, decoder) {
    if (window.domain.substr(0, 27) == "https://lab.daithangminh.vn") {
        window["cache_" + type + "_status"] = "none";
        return;
    }
    window["cache_" + type + "_status"] = "pending";
    jscache.open("hr_" + clientcode + "_cached", function (clientcode, type, filename, encoder, decoder) {
        return function (success, connector) {
            var prefix = "cache_" + type;
            if (success) {
                initFunc();
                connector.read("ver_" + type, function (prefix, connector, type, filename, encoder, decoder) {
                    return function (success, value) {
                        if (success) {
                            try {
                                checkcachever(prefix, connector, type, filename, encoder, decoder, value);
                            }
                            catch (e) {
                                console.error(e);
                            }
                        }
                        else {
                            checkcachever(prefix, connector, type, filename, encoder, decoder, 0);
                        }
                    }
                } (prefix, connector, type, filename, encoder, decoder));
            }
            else {
                window[prefix + "_status"] = "none";
            }
        }
    } (clientcode, type, filename, encoder, decoder));
}

function cache_forms(clientcode) {
    loadcache(clientcode, "forms", "forms.zip",
        function () {
            window.cache_forms_data = {
                input_form_system_load: [],
                input_form_mobile_system_load: [],
                output_form_system_load: [],
                output_form_mobile_system_load: []
            };
        },
        function (content) {
            var r = [];
            var k, st;
            while (content.length > 0) {
                k = content.indexOf("\r\n");
                if (k == 0) break;
                st = content.substr(0, k);
                r.push(EncodingClass.string.toVariable(st));
                content = content.substr(k + 2);
            }
            return r;
        },
        function (content) {
            var task = {
                input: "input_form_system_load",
                m_input: "input_form_mobile_system_load",
                output: "output_form_system_load",
                m_output: "output_form_mobile_system_load"
            };
            var i, n;
            n = content.length;
            for (i = 0; i < n; i++) {
                cache_forms_data[task[content[i].task]].push(EncodingClass.string.duplicate(content[i]));
            }
        }
    );
}

VaKeR 2022