This commit is contained in:
syuilo 2020-04-12 19:57:18 +09:00
parent f07047d1e8
commit e7da10ae58
2 changed files with 13 additions and 2 deletions

View file

@ -72,7 +72,9 @@ export default Vue.extend({
methods: { methods: {
async run() { async run() {
this.logs = []; this.logs = [];
const aiscript = new AiScript(createAiScriptEnv(this), { const aiscript = new AiScript(createAiScriptEnv(this, {
storageKey: 'scratchpad'
}), {
in: (q) => { in: (q) => {
return new Promise(ok => { return new Promise(ok => {
this.$root.dialog({ this.$root.dialog({

View file

@ -1,6 +1,6 @@
import { utils, values } from '@syuilo/aiscript'; import { utils, values } from '@syuilo/aiscript';
export function createAiScriptEnv(vm) { export function createAiScriptEnv(vm, opts) {
return { return {
USER_ID: values.STR(vm.$store.state.i.id), USER_ID: values.STR(vm.$store.state.i.id),
USER_USERNAME: values.STR(vm.$store.state.i.username), USER_USERNAME: values.STR(vm.$store.state.i.username),
@ -24,5 +24,14 @@ export function createAiScriptEnv(vm) {
const res = await vm.$root.api(ep.value, utils.valToJs(param), token || null); const res = await vm.$root.api(ep.value, utils.valToJs(param), token || null);
return utils.jsToVal(res); return utils.jsToVal(res);
}), }),
'Mk:save': values.FN_NATIVE(([key, value]) => {
utils.assertString(key);
localStorage.setItem('aiscript:' + opts.storageKey + ':' + key.value, JSON.stringify(utils.valToJs(value)));
return values.NULL;
}),
'Mk:load': values.FN_NATIVE(([key]) => {
utils.assertString(key);
return utils.jsToVal(JSON.parse(localStorage.getItem('aiscript:' + opts.storageKey + ':' + key.value)));
}),
}; };
} }