Skip to content

Instantly share code, notes, and snippets.

View curegit's full-sized avatar

curegit curegit

View GitHub Profile
@curegit
curegit / line-sticon.js
Created June 12, 2025 10:15
LINE Sticon をダウンロードするやつ
javascript: (async function () {
function validateSticonIdFormat(id) {
return /^[a-f0-9]{8,}$/.test(id);
}
function buildSticonZipUri(id, animation = false, platform = "iphone") {
const suffix = animation ? "_animation" : "";
/* No content difference between iPhone and Android for now */
return `https://stickershop.line-scdn.net/sticonshop/v1/${id}/sticon/${platform}/package${suffix}.zip`;
}
function downloadSticonZip(id, animation = false, blank = false) {
@curegit
curegit / capture.js
Last active April 21, 2025 00:51
Download a video via Media Capture and Streams API
async function newRecorder(
target = "stream",
querySelector = "video",
frameRate = 60,
systemAudio = false,
flushMinutes = 10,
) {
let stream = null;
let beforeUnloadListener = null;
switch (target) {
@curegit
curegit / startup.py
Last active April 10, 2025 05:21
My IPython startup script to make it more useful as a shell
# ~/.ipython/profile_default/startup/startup.py
import sys
import os
import os.path
import pathlib
import glob
import shutil
import subprocess as sp
import io
@curegit
curegit / embed_and_download.js
Last active February 25, 2025 13:25
画像と CSS を HTML に埋め込んでダウンロードするブックマークレット
javascript: (async function() {
async function stringifyRule(rule, contextStyleSheet) {
return rule instanceof CSSImportRule ? (rule.stylesheet ? await stringifyStyleSheet(rule.stylesheet) : "") : await inlinizeStyleImages(rule.cssText || "", (contextStyleSheet.href ?? contextStyleSheet.ownerNode?.baseURI ?? document.baseURI));
}
async function stringifyStyleSheet(style) {
try {
return style.cssRules ? (await Promise.all([...style.cssRules].map(r => stringifyRule(r, style)))).join("\n") : "";
} catch (e) {
console.warn(e);
return "";
@curegit
curegit / twtimerename.py
Last active January 24, 2025 16:15
Twitter から保存した画像を時系列順にリネームするスクリプト
#!/usr/bin/env python3
import os
import os.path
import pathlib
import sys
import glob
def map(char):
a = ord(char)
@curegit
curegit / contextmenu.js
Last active November 17, 2024 17:17
右クリックの禁止を無効にするブックマークレット
javascript: document.addEventListener("contextmenu", function (e) { e.stopPropagation(); }, true);
@curegit
curegit / takeout-css.js
Created September 10, 2024 05:19
ページの CSS を締め出すブックマークレット
javascript: [...document.styleSheets].forEach(x => x.disabled = true)
@curegit
curegit / line-theme.js
Last active August 16, 2024 01:04
LINE Theme をダウンロードするやつ
javascript: (async function () {
function validateThemeIdFormat(id) {
return /^[-a-z0-9]{6,}$/.test(id);
}
function buildThemeZipUri(id, version, platform) {
const subdir1 = id.substring(0, 2);
const subdir2 = id.substring(2, 4);
const subdir3 = id.substring(4, 6);
const baseuri = "https://stickershop.line-scdn.net/themeshop/v1/products";
return `${baseuri}/${subdir1}/${subdir2}/${subdir3}/${id}/${version}/${platform}/theme.zip`;
@curegit
curegit / nonlocal-means-video.py
Created July 29, 2024 09:40
OpenCV で Non-local Means フィルタ(動画)
import itertools
from collections import deque
from rich.progress import track
import cv2
n = 5
process_frames = 60 * 3
cap = cv2.VideoCapture("SSX.avi")
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
@curegit
curegit / beatseg.py
Created July 23, 2024 10:28
拍の位置を考慮してトラックを断片化する
import itertools
import os
import shutil
import soundfile as sf
import librosa
import librosa.beat
import librosa.effects
beat = 4