diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2020-07-12 00:38:55 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-12 00:38:55 +0900 |
| commit | 9b73e897df134ba57d4ac4d0e6e6924f8ddbc23d (patch) | |
| tree | 2885511bc46ab67c7ef7b7b40f7598e788edcd18 /src/client/init.ts | |
| parent | feat(client): 無限にダイアログを出すように (diff) | |
| download | misskey-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.ts | 31 |
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'); |