const PLUGIN_API_VERSION = "1.0"

const PLUGINS = {
    /**
     * Register new buttons to show on each output image.
     * 
     * Example:
     * PLUGINS['IMAGE_INFO_BUTTONS'].push({
     *   text: 'Make a Similar Image',
     *   on_click: function(origRequest, image) {
     *     let newTaskRequest = getCurrentUserRequest()
     *     newTaskRequest.reqBody = Object.assign({}, origRequest, {
     *       init_image: image.src,
     *       prompt_strength: 0.7,
     *       seed: Math.floor(Math.random() * 10000000)
     *     })
     *     newTaskRequest.seed = newTaskRequest.reqBody.seed
     *     createTask(newTaskRequest)
     *   },
     *   filter: function(origRequest, image) {
     *     // this is an optional function. return true/false to show/hide the button
     *     // if this function isn't set, the button will always be visible
     *     return true
     *   }
     * })
     */
    IMAGE_INFO_BUTTONS: []
}

async function loadUIPlugins() {
    try {
        let res = await fetch('/get/ui_plugins')
        if (res.status === 200) {
            res = await res.json()
            res.forEach(pluginPath => {
                let script = document.createElement('script')
                script.src = pluginPath + '?t=' + Date.now()

                console.log('loading plugin', pluginPath)

                document.head.appendChild(script)
            })
        }
    } catch (e) {
        console.log('error fetching plugin paths', e)
    }
}