Intent share URL Query string for Pinafore

recieve "text" and overwrite compose-box

Fra 01.02.2023. Se den seneste versjonen.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name           Intent share URL Query string for Pinafore
// @name:ja        共有URLクエリ文字列 for Pinafore
// @namespace      https://greasyfork.org/ja/users/747568-yomosu
// @description    recieve "text" and overwrite compose-box
// @description:ja 「text」を受け取り投稿ボックスを上書きする
// @version        0.1.20230201.1
// @license        CC0-1.0
// @match          *://pinafore.social/?text=*
// @grant          none
// @run-at         document-start
// ==/UserScript==

(function() {
    'use strict';
    const params = (new URL(document.location)).searchParams;
    console.log(params);
    const encoded = params.get('text');
    if (!encoded) return;

    const currentInstance = localStorage.getItem("store_currentInstance").slice(1,-1);
    if (!currentInstance) return;
    const savedData = localStorage.getItem("store_composeData");
    let tmpJson = {};
    if (savedData) {
        tmpJson = JSON.parse(savedData);
    } else {
        tmpJson[currentInstance] = {"home": {"ts" : 0}};
    }
    const decoded = decodeURIComponent(encoded);
    tmpJson[currentInstance].home.text = decoded;
    const newData = JSON.stringify(tmpJson);
    localStorage.setItem("store_composeData", newData);
})();