403Webshell
Server IP : 39.108.156.168  /  Your IP : 216.73.216.104
Web Server : nginx/1.24.0
System : Linux e2.ksyuki.com 6.11.0-25-generic #25~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 15 17:20:50 UTC 2 x86_64
User : root ( 0)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/pfm/h5mota/extensions/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/pfm/h5mota/extensions/localSave.js
/**
 * 离线游戏使用本地存储扩展。
 * 开启本拓展后,将会把所有存档存至 _saves 目录下。
 * 需配合样板V2.8.2+使用
 */

"use strict";

(function () {
    // 将这一行改成 false 可以禁用本拓展
    var __enabled = true;

    if (window.jsinterface || !window.fs || !__enabled) return;  

    function rewrite() {
        core.utils._setLocalForage_set = function (name, str, callback) {
            var data = LZString.compressToBase64(str);
            core.saves.cache[name] = data;
            fs.writeFile('_saves/' + name, data, 'utf-8', callback);
        }

        core.utils._getLocalForage_get = function (name, callback) {
            fs.readFile('_saves/' + name, 'utf-8', function (err, data) {
                if (err) return callback(err);
                callback(null, data);
            });
        }

        core.utils.decompress = function (data) {
            try {
                return JSON.parse(LZString.decompressFromBase64(data))
            } catch (e) {
                return null;
            }
        }

        core.utils._removeLocalForage_remove = function (name, callback) {
            fs.deleteFile('_saves/' + name, callback);
        }

        core.utils.clearLocalForage = function (callback) {
            fs.deleteFile('_saves', function () {
                fs.mkdir('_saves', callback);
            })
        }

        core.utils.iterateLocalForage = function (iter, callback) {
            fs.readdir('_saves', function (err, data) {
                if (err) callback(err);
                else {
                    data.forEach(function (one) {
                        iter(null, one, null);
                    });
                    callback();
                }
            });
        }

        core.utils.keysLocalForage = function (callback) {
            fs.readdir('_saves', callback);
        }

        core.utils.lengthLocalForage = function (callback) {
            fs.readdir('_saves', function (err, data) {
                if (err) callback(err);
                else callback(null, data.length);
            });
        }
    }


    var _export = function () {
        var toExport = [];

        localforage.iterate(function (value, key, n) {
            if (value == null || !key.startsWith(core.firstData.name)) return;
            value = core.decompress(value);
            if (value == null) return;
            var str = JSON.stringify(value).replace(/[\u007F-\uFFFF]/g, function (chr) {
                return "\\u" + ("0000" + chr.charCodeAt(0).toString(16)).substr(-4)
            });
            str = LZString.compressToBase64(str);
            toExport.push(key);
            core.saves.cache[key] = str;
            fs.writeFile('_saves/' + key, str, 'utf-8', function () {});
        }, function () {
            if (toExport.length > 0) {
                alert('提示!本塔已开启存档本地化!原始存档已全部导出至 _saves/ 目录下。');
            }
            fs.writeFile('_saves/.exported', '1', 'utf-8', function () {});
            rewrite();
            core.control.getSaveIndexes(function (indexes) { core.saves.ids = indexes; });
        });
    }

    fs.mkdir('_saves', function (err) {
        if (err) return;

        fs.readFile('_saves/.exported', 'utf-8', function(err, data) {
            if (!err && data) {
                rewrite();
                core.control.getSaveIndexes(function (indexes) { core.saves.ids = indexes; });
                return;
            }
            _export();
        });
    });
})();



Youez - 2016 - github.com/yon3zu
LinuXploit