summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2020-07-18 20:03:46 +0900
committersyuilo <syuilotan@yahoo.co.jp>2020-07-18 20:03:46 +0900
commit705d40ab37bedb1e43e4677457497c342517a23d (patch)
treea08759da8d5aae1964a3d6f3174d3a1cbfad15e5
parentfeat(client): AiScriptプラグインからAPIアクセスできるように (diff)
downloadmisskey-705d40ab37bedb1e43e4677457497c342517a23d.tar.gz
misskey-705d40ab37bedb1e43e4677457497c342517a23d.tar.bz2
misskey-705d40ab37bedb1e43e4677457497c342517a23d.zip
fix(client): プラグインの動作を修正
-rw-r--r--package.json2
-rw-r--r--src/client/init.ts5
-rw-r--r--src/client/pages/preferences/plugins.vue5
-rw-r--r--yarn.lock8
4 files changed, 11 insertions, 9 deletions
diff --git a/package.json b/package.json
index 1b7a513ff0..8868fede5b 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"@koa/multer": "3.0.0",
"@koa/router": "9.0.1",
"@sinonjs/fake-timers": "6.0.1",
- "@syuilo/aiscript": "0.7.2",
+ "@syuilo/aiscript": "0.8.0",
"@types/bcryptjs": "2.4.2",
"@types/bull": "3.14.0",
"@types/cbor": "5.0.0",
diff --git a/src/client/init.ts b/src/client/init.ts
index 134285ca8e..b819a16e5a 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -9,6 +9,8 @@ import PortalVue from 'portal-vue';
import VAnimateCss from 'v-animate-css';
import VueI18n from 'vue-i18n';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
+import { AiScript } from '@syuilo/aiscript';
+import { deserialize } from '@syuilo/aiscript/built/serializer';
import VueHotkey from './scripts/hotkey';
import App from './app.vue';
@@ -26,7 +28,6 @@ import createStore from './store';
import { clientDb, get, count } from './db';
import { setI18nContexts } from './scripts/set-i18n-contexts';
import { createPluginEnv } from './scripts/aiscript/api';
-import { AiScript } from '@syuilo/aiscript';
Vue.use(Vuex);
Vue.use(VueHotkey);
@@ -267,7 +268,7 @@ os.init(async () => {
store.commit('initPlugin', { plugin, aiscript });
- aiscript.exec(plugin.ast);
+ aiscript.exec(deserialize(plugin.ast));
}
if (store.getters.isSignedIn) {
diff --git a/src/client/pages/preferences/plugins.vue b/src/client/pages/preferences/plugins.vue
index ee0ac3652c..8bd522ddc6 100644
--- a/src/client/pages/preferences/plugins.vue
+++ b/src/client/pages/preferences/plugins.vue
@@ -42,12 +42,13 @@
<script lang="ts">
import Vue from 'vue';
+import { AiScript, parse } from '@syuilo/aiscript';
+import { serialize } from '@syuilo/aiscript/built/serializer';
import { faPlug, faSave, faTrashAlt, faFolderOpen, faDownload, faCog } from '@fortawesome/free-solid-svg-icons';
import MkButton from '../../components/ui/button.vue';
import MkTextarea from '../../components/ui/textarea.vue';
import MkSelect from '../../components/ui/select.vue';
import MkInfo from '../../components/ui/info.vue';
-import { AiScript, parse } from '@syuilo/aiscript';
export default Vue.extend({
components: {
@@ -131,7 +132,7 @@ export default Vue.extend({
id, name, version, author, description, permissions, config
},
token,
- ast // TODO: astにはMapが含まれることがあり、MapはJSONとしてシリアライズできないのでバグる。どうにかする
+ ast: serialize(ast)
});
this.$root.dialog({
diff --git a/yarn.lock b/yarn.lock
index cc5c90beac..2000b823ee 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -192,10 +192,10 @@
dependencies:
"@sinonjs/commons" "^1.7.0"
-"@syuilo/aiscript@0.7.2":
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.7.2.tgz#2f30adb14ffa9f1180af83c059927ab306b175a5"
- integrity sha512-l8HVTJTq9KLzDqGswOIGlBepkacudUp70EScrLjL7nEL2NKcti7Ui5fwZCrmxazxgGz6NrVNX5UBIOFFyrwr0A==
+"@syuilo/aiscript@0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@syuilo/aiscript/-/aiscript-0.8.0.tgz#3a895ddd9f5bd5afa1648acb5fd3e6f94f434cbb"
+ integrity sha512-mrZ3awYf1R81D+OWZctRFiAWUt6xL3A5ovBn2OD8+1hZyX3T7S+awqrhYVLoQPhd/cijz1RT6PE8AEUtuR1J8Q==
dependencies:
autobind-decorator "2.4.0"
chalk "4.0.0"