// ==UserScript== // @name 旧5ch 画像&動画etc // @namespace http://tampermonkey.net/ // @version 1.2.4 // @description 画像 & YouTube動画読込表示 / 画像レス & 板リンク抽出 / jump(リンク中継ページ)無効 / 規制回避リンク認識 / シンプルな見た目 // @author 匿名Cat // @match https://*.5ch.net/test/read.cgi/*/* // @match http://*.5ch.net/test/read.cgi/*/* // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js // @require https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js // @require https://cdnjs.cloudflare.com/ajax/libs/arrive/2.4.1/arrive.min.js // @resource bootstrap.min.css https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css // @icon https://www.google.com/s2/favicons?domain=5ch.net // @grant GM_download // @grant GM_addStyle // @grant GM_getResourceText // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/457402/%E6%97%A75ch%20%E7%94%BB%E5%83%8F%E5%8B%95%E7%94%BBetc.user.js // @updateURL https://update.greasyfork.icu/scripts/457402/%E6%97%A75ch%20%E7%94%BB%E5%83%8F%E5%8B%95%E7%94%BBetc.meta.js // ==/UserScript== (function() { 'use strict'; console.log('5ch 画像&動画') $?.noConflict() // 設定開始================ 'jpg png webp jpeg gif' const settings = { imgExts: 'jpg png webp jpeg gif'.split(' '), keys: { download: ['d'], removePreview: ['c', 'Escape']} } // 直接生成型画像 サイズ const size = '8rem' const userScriptId = "ch_im_and_video__" // 設定終了============== // bootstrap style読み込み GM_addStyle(GM_getResourceText("bootstrap.min.css")) // util const d = document const isImageUrl = url => new RegExp(`\\.${settings.imgExts.join('|')}$`, 'g').test(url) const utilUnion = arr => [...new Set(arr)] const optionalHttps = hrefStr => /^https?:\/\//.test(hrefStr) ? hrefStr : 'https://' + hrefStr const remove5chJump = url => { const mtc = url.match(/(?:https?:\/\/jump\.5ch\.net\/\?)(.+)/) return mtc?.[1] ?? url } const style = `html { font-size: 1rem; } /* 画像プレビュー周り */ .container.container_body { width: 100%; max-width: 100%; margin: 0; padding: 0; display: flex; position: relative; } .container.container_body>.contents { width: 60vw; padding-left: 4vw; height: 100vh; overflow: auto; resize: horizontal; } .side-container { flex: 1; position: relative; } .settings-win { position: absolute; top: 0; } .preview-img-box:before { content: ""; display: block; padding-top: 75%; } .preview-img-box>img { position: absolute; top: 0; left: 0; bottom: 0; right: 0; width: 100%; max-height: 100vh; object-fit: contain; z-index: 3;} a.image { font-size: 0; } /* ナビゲーションバー */ #${userScriptId} { position: sticky; top: 0; background-color: #fff; } #${userScriptId} .title { margin-top: 0; padding-top: 20px; } #${userScriptId}extract_im { cursor: pointer; } #${userScriptId} .related-thread { display: inline-block; } #${userScriptId}relations { font-size: inherit; } /* 5ch公式のGUI */ .topmenu.centered,.bottommenu.centered,.input-group { display: none; } .submitbtn.btn { font-size: inherit; } .rBtn { border: none; } .post_hover { z-index: 3; } .menujust { margin:0; padding-left: 0; } /* お絵かき */ .wPaint-canvas { box-shadow: 0 0 2rem rgba(0, 0, 0, .2); }` jQuery(d).ready($ => { const $body = $(d.body) // スタイルをあてる $body.append($('