Skip to content

Instantly share code, notes, and snippets.

View schroneko's full-sized avatar

ぬこぬこ | NUKO schroneko

View GitHub Profile
@schroneko
schroneko / privacy-policy.md
Created April 2, 2026 17:17
Welcome to X privacy policy

Welcome to X Privacy Policy

Last updated: 2026-04-03

Welcome to X is an unofficial browser extension that replaces the X home For you timeline with a static empty state.

Data collection

Welcome to X does not collect personal information, browsing history, account data, health information, financial information, authentication information, personal communications, location, web history, or any other user data.

@schroneko
schroneko / bark-notify.sh
Last active February 27, 2026 17:51
Claude Code Notification Hook - Bark with AES-256-CBC encryption
#!/bin/bash
BARK_KEY="${BARK_DEVICE_KEY:?Set BARK_DEVICE_KEY in settings.json env}"
ENCRYPT_KEY="${BARK_ENCRYPT_KEY:?Set BARK_ENCRYPT_KEY in settings.json env}"
ENCRYPT_IV="${BARK_ENCRYPT_IV:?Set BARK_ENCRYPT_IV in settings.json env}"
INPUT=$(cat)
{
read -r TITLE
read -r MESSAGE
const CONFIG = {
baseUrl: "https://x.com/",
followingPagePath: "/following",
unfollowButtonSelector: 'button[data-testid$="-unfollow"]',
followIndicatorSelector: 'div[data-testid="userFollowIndicator"]',
confirmUnfollowButtonSelector:
'button[data-testid="confirmationSheetConfirm"]',
scrollAmount: 0.8,
scrollRetryDelay: 800,
dryRunScrollDelay: 200,

Privacy Policy for Local-Processing Browser Extensions

Last updated: August 10, 2026

Scope

This policy applies to browser extensions published by schroneko that link to this page from their official browser extension store listing and whose user data processing remains on the user's device. These products are referred to as Covered Extensions.

This policy describes the handling rules shared by all Covered Extensions. Each extension's store listing and Privacy practices disclosure identify its specific purpose, data categories, permissions, site access, and local storage behavior.

curl -s -X POST "localhost:10101/audio_query?speaker=888753760" --get --data-urlencode text="タスクが完了したの!" | curl -s -H "Content-Type: application/json" -X POST "localhost:10101/synthesis?speaker=888753760" -d @- > aivis_task_done.wav && afplay aivis_task_done.wav
curl -s -X POST "localhost:50021/audio_query?speaker=1" --get --data-urlencode text="タスクガカンリョウシタノダ!" | jq --argjson accents "$(curl -s -X POST "localhost:50021/accent_phrases?speaker=1&is_kana=true" --get --data-urlencode text="タ'スクガ/カンリョウシ'タノダ")" '.accent_phrases = $accents' | curl -s -H "Content-Type: application/json" -X POST "localhost:50021/synthesis?speaker=1" -d @- > voicevox_task_done.wav && afplay voicevox_task_done.wav
@schroneko
schroneko / Open_Chrome_Tabs_In_Safari.scpt
Created March 23, 2025 12:40
Google Chrome で開いているすべてのタブを Safari で開き直す AppleScript
tell application "Google Chrome"
set tab_list to every tab in the front window
repeat with the_tab in tab_list
set the_url to the URL of the_tab
tell application "Safari" to open location the_url
end repeat
end tell
import torch
import torch.nn as nn
import torch.nn.functional as F
from torchvision import datasets, transforms
class ConvNet(nn.Module):
def __init__(self):
super(ConvNet, self).__init__()
# 畳み込み層
self.conv1 = nn.Conv2d(1, 32, 3, padding=1)
import email
import os
from email import policy
from email.parser import BytesParser
def extract_email_content(eml_file):
"""Extract plain text content from email file."""
with open(eml_file, 'rb') as f:
msg = BytesParser(policy=policy.default).parse(f)
import re
from bs4 import BeautifulSoup
import json
def extract_rss_urls(html_file):
with open(html_file, 'r', encoding='utf-8') as f:
html_content = f.read()
soup = BeautifulSoup(html_content, 'html.parser')