Skip to content

Instantly share code, notes, and snippets.

View KokoseiJ's full-sized avatar
🏠
Y'all, Stay home with your IDE.

Kokosei J KokoseiJ

🏠
Y'all, Stay home with your IDE.
View GitHub Profile
@KokoseiJ
KokoseiJ / db.py
Created January 18, 2024 07:02
Simple Asynchronous MongoDB ORM on Python
import re
import asyncio
from pymongo import MongoClient
from pymongo.collection import Collection as MongoCollection
from pymongo.results import InsertOneResult, UpdateResult, DeleteResult
from typing import Awaitable, Self
mongo: MongoClient = None
DATABASE_NAME = "kokomemo"
@KokoseiJ
KokoseiJ / dns_update.py
Created September 8, 2023 21:20
Automatically update Cloudflare DNS record for Dynamic IP environment
import re
import json
import requests
IP_REGEX = re.compile(r"\nip=((?:[0-9]{,3}\.){3}[0-9]{,3})\n")
token = ""
zone = ""
CDN_CGI = "https://cloudflare.com/cdn-cgi/trace"
@KokoseiJ
KokoseiJ / snowflake.py
Last active December 20, 2023 19:38
Customizable and portable Snowflake generator
import os
import time
from math import floor
class SnowflakeGenerator:
def __init__(self, mid=None, time_start=1288834974657):
self.time_start = time_start
self.mid = mid if mid else os.getpid()
@KokoseiJ
KokoseiJ / lighttpd.conf
Last active May 25, 2023 17:13
Simple sensord setup with Lighttpd for CGI monitoring utilization
server.modules=("mod_cgi")
server.breakagelog="/var/log/cgi_error.log"
server.document-root="/tmp/www"
server.port=1727
cgi.assign=(".cgi"=>"")
@KokoseiJ
KokoseiJ / usc_crawl.py
Last active May 17, 2023 05:16
dump USC song list from PIU USC site
import json
import requests
from bs4 import BeautifulSoup as bs
URL = "https://www.piugame.com/piu.ucs/ucs.sample/ucs.sample.alltunes.php?page={}"
PAGES = 11
def get_page(pagenum):
@KokoseiJ
KokoseiJ / ameow.md
Last active March 1, 2023 07:22
Stepmania MemoryCard mount analysis

meow

  • MemoryCardManager.cpp/ThreadedMemoryCardWorker::DoHeartbeat

  • MemoryCardDriver::DoOneUpdate

  • MemoryCardDriverThreaded_Linux::GetUSBStorageDevices

  • ThreadedMemoryCardWorker inherits RageWorkerThread, which seems to be timeout-able thread worker

    • It runs heartbeat every 0.1 seconds it seems?
    • It waits 0.1 seconds from when the last heartbeat function has finished
  • Running heartbeat means running DoHeartbeat method

@KokoseiJ
KokoseiJ / usbprofileconfig.py
Created February 21, 2023 19:35
Stepmania USB Profiile Setup Script
#!/bin/env python3
import os
import re
def get_usbdevices(exclude=[]):
usbs = [x for x in os.listdir("/dev/disk/by-path") if "usb" in x]
usbs = sanitize_parts(usbs)
return [x for x in usbs if x not in exclude]
@KokoseiJ
KokoseiJ / itg_setup.sh
Last active May 25, 2023 19:55
CHQ cab setup script
installs=()
configs=()
install_ITGmania () {
if [ -d /mnt/stepmania/itgmania ]; then
echo "Seems like ITGmania is already installed. Do you want to update it to newer version?"
echo "WARNING: This will overwrite the directory with new version!"
read -p "Proceed? (y/n): " -n1 ANSWER
echo
@KokoseiJ
KokoseiJ / pygame_smoothmove_poc.py
Created October 17, 2022 10:32
Moving objects smoothly in pygame with decreasing acceleration rate
import pygame
import time
class SmoothMove:
def __init__(self, surface, orig, dest, duration):
self.surface = surface
self.orig = orig
self.dest = dest
@KokoseiJ
KokoseiJ / bpmconfirm.py
Last active May 23, 2023 20:17
Test BPM
import sys
import time
target_str = sys.argv[-1] if len(sys.argv) > 1 else input("target bpm: ")
target = float(target_str)
spb = 1 / target * 60
input("Waiting for start...")