貼上 Twitter 圖片連結時,改成巴哈能認出來的格式
// ==UserScript==
// @name 巴哈編輯器與留言區圖片網址格式化
// @namespace https://home.gamer.com.tw/homeindex.php?owner=qwert535286
// @version 0.0.6
// @description 貼上 Twitter 圖片連結時,改成巴哈能認出來的格式
// @author 笑翠鳥
// @icon https://www.google.com/s2/favicons?domain=gamer.com.tw
// @match https://forum.gamer.com.tw/C.php?*
// @match https://forum.gamer.com.tw/Co.php?*
// @match https://forum.gamer.com.tw/post1.php?*
// @match https://home.gamer.com.tw/artwork_new.php?*
// @match https://home.gamer.com.tw/artwork_edit.php?*
// @license MIT
// ==/UserScript==
(() => {
function fmtImgUrl(url) {
switch(true) {
case /pbs\.twimg\.com\/media\/[a-zA-Z0-9\-\_]+\?format=(jpg|jpeg|png|webp)/.test(url):
return url.split('&')[0].replace('?format=', '.').replace('webp', 'jpg')
}
}
window.addEventListener('load', () => {
const $iframeEditor = document.getElementById('editor').contentWindow.document.body
$iframeEditor.addEventListener('paste', e => {
const clipboardTxt = e.clipboardData.getData('text')
const fmtUrl = fmtImgUrl(clipboardTxt)
if (fmtUrl) {
const $img = document.createElement('img')
$img.src = fmtUrl
$iframeEditor.querySelector(`[href="${clipboardTxt}"]`).replaceWith($img)
}
})
document.querySelectorAll('textarea').forEach($area => {
$area.addEventListener('paste', e => {
const fmtUrl = fmtImgUrl(e.clipboardData.getData('text'))
if (fmtUrl) {
e.preventDefault()
e.target.value = `${e.target.value.trim()} ${fmtUrl}`.trim()
}
})
})
})
})()