SikDang Template Loader

2021. 7. 10. 오전 1:37:30

2021-07-09 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

// ==UserScript==
// @name         SikDang Template Loader
// @namespace    http://tampermonkey.net/
// @version      1.0
// @author       -
// @match        https://arca.live/b/smpeople/write
// @icon         https://www.google.com/s2/favicons?domain=arca.live
// @grant        none
// @description  2021. 7. 10. 오전 1:37:30
// ==/UserScript==

const TEMPLATE = {
  '일반': null,
  '요청': 'https://arca.live/b/smpeople/29695511',
  '미번': 'https://arca.live/b/smpeople/29696978',
  '번역': 'https://arca.live/b/smpeople/29697375'
};

const fetchTemplate = async (category) => {
  if(!TEMPLATE[category]) return '';
  return await fetch(TEMPLATE[category])
    .then(res => res.text())
    .then(html => new DOMParser().parseFromString(html, 'text/html'))
    .then(dom => dom.querySelector('.article-content').innerHTML);
}

const loadTemplate = async (category) => {
  const template = await fetchTemplate(category);

  const editorBox = document.querySelector('.write-body .fr-element');
  editorBox.innerHTML = template;

  const editorPlaceHolder = document.querySelector('.fr-placeholder');
  editorPlaceHolder.style.display = template ? 'none' : 'block';
};

const attachTemplate = () => {
  const tabs = document.querySelectorAll('.sub-row span');
  tabs.forEach(tab => {
    const button = tab.querySelector('input');
    const label = tab.querySelector('label');

    if(button && label) {
      button.addEventListener('click', e => {
        loadTemplate(label.innerText);
      });
    }
  });
}

window.addEventListener('load', e => {
  attachTemplate();
});