takoochiki
https://scrapbox.io/files/68dd214e3cf3a9fa7bcce897.png
code:script.js
// from : https://scrapbox.io/motoso/%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E5%8B%95%E7%94%BB%E3%81%AEURL%E3%81%8B%E3%82%89%E3%82%B5%E3%83%A0%E3%83%8D%E3%82%A4%E3%83%AB%E7%94%BB%E5%83%8F%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8BUserScript
import { insertText } from "/api/code/customize/scrapbox-insert-text/script.js"
cosense.PageMenu.addMenu({
title: "ニコニコ動画を埋め込む",
// font awesomeにniconivoがないのでビリビリで我慢。cosenseがfont awesome 6にアプデしたら切り替える
// icon: "fab fa-bilibili",
image: "https://i.gyazo.com/3de7600c073e31bf6d4d7240f2fc3f4a.png",
onClick: async () => {
if (!window.get_nicovideo_thumbnail) {
alert("UserScriptが入ってなさそうです?")
window.open("https://scrapbox.io/motoso/nicovideo-thumbnail-proxy", "blank")
return
}
const rawURL = prompt("視聴ページのURLを入力してください").trim()
if (rawURL === null) return;
// 最低限のチェック
const m = rawURL.match(/nicovideo.jp\/watch\/((sm|nm|so)\d+)/)
if (!m) {
alert("無効な形式のURLです")
return
}
try {
const res = await window.get_nicovideo_thumbnail(rawURL);
if (res.status !== 200) {
alert("URL fetch failed(!=200)")
return
}
const thumbnailUrl = res.response.thumbnailUrl;
const nicoIds = rawURL.match(/(sm|nm|so)\d+/);
const nicoId = nicoIds0;
const title = res.response.title;
const shortTitle = title.replace(/ - ニコニコ動画$/, "");
insertText({ text: ${shortTitle}\n#音MAD\n[${rawURL} ${thumbnailUrl}#.png]\n ${nicoId} })
} catch (e) {
console.error(e)
alert("画像URLの取得に失敗しました")
return
}
}
})
#member