summaryrefslogtreecommitdiff
path: root/src/client/init.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2020-07-12 00:38:55 +0900
committerGitHub <noreply@github.com>2020-07-12 00:38:55 +0900
commit9b73e897df134ba57d4ac4d0e6e6924f8ddbc23d (patch)
tree2885511bc46ab67c7ef7b7b40f7598e788edcd18 /src/client/init.ts
parentfeat(client): 無限にダイアログを出すように (diff)
downloadmisskey-9b73e897df134ba57d4ac4d0e6e6924f8ddbc23d.tar.gz
misskey-9b73e897df134ba57d4ac4d0e6e6924f8ddbc23d.tar.bz2
misskey-9b73e897df134ba57d4ac4d0e6e6924f8ddbc23d.zip
Plugin system (#6479)
* wip * wip * wip * wip * Update store.ts
Diffstat (limited to 'src/client/init.ts')
-rw-r--r--src/client/init.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/client/init.ts b/src/client/init.ts
index d00b4f5cca..7e11efe37c 100644
--- a/src/client/init.ts
+++ b/src/client/init.ts
@@ -25,6 +25,8 @@ import { isDeviceDarkmode } from './scripts/is-device-darkmode';
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);
@@ -231,6 +233,35 @@ os.init(async () => {
//store.commit('instance/set', );
});
+ for (const plugin of store.state.deviceUser.plugins) {
+ console.info('Plugin installed:', plugin.name, 'v' + plugin.version);
+
+ const aiscript = new AiScript(createPluginEnv(app, {
+ plugin: plugin,
+ storageKey: 'plugins:' + plugin.id
+ }), {
+ in: (q) => {
+ return new Promise(ok => {
+ app.dialog({
+ title: q,
+ input: {}
+ }).then(({ canceled, result: a }) => {
+ ok(a);
+ });
+ });
+ },
+ out: (value) => {
+ console.log(value);
+ },
+ log: (type, params) => {
+ },
+ });
+
+ store.commit('initPlugin', { plugin, aiscript });
+
+ aiscript.exec(plugin.ast);
+ }
+
if (store.getters.isSignedIn) {
const main = os.stream.useSharedConnection('main');