Skip to content

Instantly share code, notes, and snippets.

View esperecyan's full-sized avatar

100の人 (エスパー・イーシア) esperecyan

View GitHub Profile
@esperecyan
esperecyan / 履歴のURL置換.js
Last active December 9, 2025 15:57
履歴のURL置換.js: Firefox 133以降で動作。7つの定数値を書き替え後、ブラウザーコンソールにコピペして実行。
(async function () {
const FAVICON_URI = NetUtil.newURI('https://www.pixiv.net/favicon.ico');
const PRINCIPAL = Services.scriptSecurityManager.createContentPrincipal(NetUtil.newURI('https://www.pixiv.net/artworks/'), {});
const OLD_URL_SEARCH_TERMS = 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=';
const OLD_URL_PATTERN = /^https:\/\/www\.pixiv\.net\/member_illust.php\?mode=medium&illust_id=[0-9]+$/;
const NEW_URL_SEARCH_TERMS = 'https://www.pixiv.net/artworks/';
const NEW_URL_PATTERN = /^https:\/\/www\.pixiv\.net\/artworks\//;
const REPLACE_PATTERN = [/\/member_illust\.php\?mode=medium&illust_id=/, '/artworks/'];
const faviconDataURI = NetUtil.newURI(await new Promise(async function (resolve) {
! X/Twitterで2023-10-07頃から発生している、プロフィールページなどの短縮されていない投稿にも「さらに表示」が付加される不具合の回避
x.com##[data-testid="tweetText"]:not(:has-text(/([^\n]*\n){10,}|…$/)) + [data-testid="tweet-text-show-more-link"]
x.com##div:not(:has([data-testid="icon-verified"])) + div > [data-testid="tweetText"]:not(:has-text(/([^\n]*\n){10,}/)) + [data-testid="tweet-text-show-more-link"]
x.com##[data-testid="messageEntry"] [data-testid="tweet-text-show-more-link"]
@esperecyan
esperecyan / SortSerializedUdonPrograms.cs
Last active April 17, 2024 11:14
『SortSerializedUdonPrograms.cs』 VRChat SDK3 -Worlds プロジェクト内のSerializedUdonProgramsをUdonアセットのフォルダへ、UdonSharpの場合はそれらをスクリプトのフォルダへ振り分けるUnityエディタ拡張。Assets/Editorフォルダなどを作成してその中に入れてください。上部メニュー→「VRChat SDK」→「Utilities」→「SerializedUdonPrograms、Udonアセットを振り分ける」から実行できます。
using System.IO;
using UnityEditor;
#if UDONSHARP
using UdonSharp;
#endif
namespace Esperecyan.SortSerializedUdonPrograms
{
/// <summary>
/// SerializedUdonProgramsをUdonアセットのフォルダへ、UdonSharpの場合はそれらをスクリプトのフォルダへ振り分けます。
@esperecyan
esperecyan / CreateFrameByFrameAnimation.cs
Last active August 23, 2023 10:25
■『convert-video-to-texture-for-vrchat-quest.ps1.jse』MP4などの動画から、一定間隔ごとにUVを一瞬でズラすことができるシステム向けのテクスチャに変換するスクリプトです。 ■『CreateFrameByFrameAnimation.cs』 VRChatのQuest版における動画再生用のエディタ拡張。テクスチャをHierarchey上のメッシュオブジェクトに設定しておき、そのオブジェクトのコンテクストメニューから生成します。 ■『VCI埋め込み動画再生ライブラリ』バーチャルキャストのアイテム・背景に動画を埋め込めるようにするLuaスクリプト片。 https://twitter.com/esperecyan/status/115569878…
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text.RegularExpressions;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using UnityEditor;
#if VRC_SDK_VRCSDK2
@esperecyan
esperecyan / reset-shortcut-icons.js
Last active July 14, 2023 08:46
『reset-shortcut-icons.js』へフォルダをドラッグ&ドロップすることで、Windowsのショートカットファイル (.lnk) について、アイコンがリンク切れしている、またはアイコンのパスがリンク先と一致するショートカットファイルのアイコンをリセットします。 ※右の「Raw」ボタンからダウンロードすると文字化けを回避できます
/**
* @file 『reset-shortcut-icons.js』へフォルダをドラッグ&ドロップすることで、Windowsのショートカットファイル (.lnk) について、アイコンがリンク切れしている、またはアイコンのパスがリンク先と一致するショートカットファイルのアイコンをリセットします。
* @version 1.0.1
* @license MPL-2.0
* @author 100の人
* @see {@link https://gist.github.com/esperecyan/a195f0195b0ae7c48c1a066e44dfeef2}
*/
var FileSystemObject = WSH.CreateObject('Scripting.FileSystemObject');
var Shell = WSH.CreateObject('WScript.Shell');
@esperecyan
esperecyan / README.md
Last active February 10, 2023 01:11
ニコニコ生放送で、2020-07-27のコメントフィルター実装後も残った、連続した数字などをはじくための運営NGワードを回避するための、NiconamaCommentViewer (NCV) 用の書き込み置換ファイル (書き込み置換設定を保存するファイル) です。

ニコニコ生放送で、2020-07-27のコメントフィルター実装後も残った、連続した数字などをはじくの運営NGワードを回避するための、NiconamaCommentViewer (NCV) 用の書き込み置換ファイル (書き込み置換設定を保存するファイル) です。

▚▚▚▚▚ 導入方法

  1. 「SubstList_Writing.xml」をダウンロードします。
    https://gist.githubusercontent.com/esperecyan/c78ea6033d189d0c44a26a0209613fc3/raw/SubstList_Writing.xml
  2. NiconamaCommentViewer を起動し、ファイルメニューから「ファイル」▸「設定ファイル保存フォルダを開く」を選択します。
  3. NiconamaCommentViewer を終了します。
@esperecyan
esperecyan / mozilla.cfg
Last active January 10, 2023 03:14
これは古いやり方です。次のWikiを参照してください。 http://wiki.nothing.sh/page?userChrome.js%CD%D1%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8#m5c944e2
// -*- mode: javascript;-*-
/**
* @file 「mozilla.cfg」(autoconfig.cfg) として動作するよう修正した簡易版userChromeJS。
* The simplified version of userChromeJS which modified to run as “mozilla.cfg” (autoconfig.cfg).
* @version 3.0.2
* @see [Deploying Firefox in an enterprise environment — Mozilla | MDN]{@link https://developer.mozilla.org/Firefox/Enterprise_deployment#Configuration}
* @see [mozdev.org — userchromejs: index]{@link http://userchromejs.mozdev.org/}
* @see [[Ext] userChromeJS 2.0 [2015-08-02] • mozillaZine Forums]{@link http://forums.mozillazine.org/viewtopic.php?p=14747866#p14747866}
* @see [設定の管理 | 技術的なよくある質問 | 法人向け情報 | Mozilla Japan コミュニティポータル]{@link https://www.mozilla.jp/business/faq/tech/setting-management/#mcd}
* @see [userChrome.js/userChrome.js at master · alice0775/userChrome.js]{@link https://github.com/alice0775/userChrome.js/blob/master/userChrome.js}
@esperecyan
esperecyan / life-and-death-monitor.ps1.jse
Last active October 8, 2022 09:37
『life-and-death-monitor.ps1.jse』 通知領域 (タスクトレイ) に常駐する、Windows向けのシンプルなPowershell製死活監視ツールです。
#@~^AQAAAA==~IAAAAA==^#~@ function toPSString(str) { return "'" + str.replace(/%/g, '"%"').replace(/'/g, "''") + "'"; } /* -*- mode: powershell;-*-
<#*/ var command = 'param(\
$Names, \
$IntervalSeconds = 5 * 60, \
$StartupDelaySeconds = 0, \
$DefaultTemporaryHaltSeconds = 3 * 60 * 60)'
+ '; $_PSCommandPath = ' + toPSString(WSH.ScriptFullName)
+ '; Invoke-Expression (Get-Content ' + toPSString(WSH.ScriptFullName) + ' -Encoding UTF8 -Raw)';
var namePattern = /^-(?!(?:b(?:and|or|xor|not)|sh[lr]|[ic]?(?:eq|ne|gt|ge|lt|le|(?:not)?(?:like|match|contains|in)|replace|split)|join|is(?:not)?|as|and|or|not|f)$)[0-9a-z]+$/i;
var args = ''; for (var i = 0; i < WSH.Arguments.Length; i++) {
@esperecyan
esperecyan / convert-video-to-texture-for-mtoon.ps1.jse
Last active September 14, 2022 14:14
『convert-video-to-texture-for-mtoon.ps1.jse』 動画をMToon上で再生できるきゃぱきゃぱ式テクスチャに変換するスクリプトです。 【16:9で38分割したサンプルFBX】https://cdn.discordapp.com/attachments/511077066628661271/997715603345391638/screen.fbx / https://twitter.com/mirabetakasi64/status/1148233404019642368
#@~^AQAAAA==~IAAAAA==^#~@ function toPSString(str) { return "'" + str.replace(/%/g, '"%"').replace(/'/g, "''") + "'"; } /* -*- mode: powershell;-*-
<#*/ var command = 'param($Path, $FrameCount, $VerticalResolution, [int]$TextureSize = 8192)'
+ '; $_PSCommandPath = ' + toPSString(WSH.ScriptFullName)
+ '; Invoke-Expression (Get-Content ' + toPSString(WSH.ScriptFullName) + ' -Encoding UTF8 -Raw)';
var namePattern = /^-(?!(?:b(?:and|or|xor|not)|sh[lr]|[ic]?(?:eq|ne|gt|ge|lt|le|(?:not)?(?:like|match|contains|in)|replace|split)|join|is(?:not)?|as|and|or|not|f)$)[0-9a-z]+$/i;
var args = ''; for (var i = 0; i < WSH.Arguments.Length; i++) {
var arg = WSH.Arguments(i); args += ' ' + (namePattern.test(arg) ? arg : toPSString(arg)); }
WSH.CreateObject('WScript.Shell').Run('PowerShell -NoExit -Command &{' + command + '}' + args); /*#>
<#
.SYNOPSIS
@esperecyan
esperecyan / suppress-auto-lock.ps1.jse
Last active August 6, 2022 01:56
『suppress-auto-lock.ps1.jse』 指定したプロセスが起動中、画面の自動ロックを抑制します。 使い方: https://pokemori.booth.pm/items/1790917
#@~^AQAAAA==~IAAAAA==^#~@ function toPSString(str) { return "'" + str.replace(/%/g, '"%"').replace(/'/g, "''") + "'"; } /* -*- mode: powershell;-*-
<#*/ var command = 'param($Names, $IntervalSeconds = 60)'
+ '; $_PSCommandPath = ' + toPSString(WSH.ScriptFullName)
+ '; Invoke-Expression (Get-Content ' + toPSString(WSH.ScriptFullName) + ' -Encoding UTF8 -Raw)';
var namePattern = /^-(?!(?:b(?:and|or|xor|not)|sh[lr]|[ic]?(?:eq|ne|gt|ge|lt|le|(?:not)?(?:like|match|contains|in)|replace|split)|join|is(?:not)?|as|and|or|not|f)$)[0-9a-z]+$/i;
var args = ''; for (var i = 0; i < WSH.Arguments.Length; i++) {
var arg = WSH.Arguments(i); args += ' ' + (namePattern.test(arg) ? arg : toPSString(arg)); }
WSH.CreateObject('WScript.Shell').Run('PowerShell -Command &{' + command + '}' + args, 0); /*#>
<#
.SYNOPSIS