Skip to content

Instantly share code, notes, and snippets.

View kageru's full-sized avatar

kageru

View GitHub Profile
@kageru
kageru / inc_to_pory.sh
Last active January 13, 2022 18:12
A simple script that will rename .inc files to .pory and wrap their contents in `raw` blocks. Something for gen 3 rom hacking.
#!/bin/sh
# Save this somewhere and call it in a loop of your choice, e.g.
# find -name 'scripts.inc' -exec ./inc_to_pory.sh {} \;
# to wrap all `scripts.inc` files in raw blocks and rename them to pory or
# find -name '*.inc' -exec ./inc_to_pory.sh {} \;
# to do the same with *all* .inc scripts in the current folder or subfolders.
f="$(echo $1 | rev | cut -c 5- | rev)"
echo 'raw `' >> "$f.pory"
@kageru
kageru / kotlin-python-slice.kt
Created July 2, 2019 20:16
Mainly a proof of concept. There are better ways to do this, but it was a quick experiment to create something like Python’s slicing in Kotlin.
import kotlin.math.min
object start {
infix fun to(other: Int) = RangeTuple(0, other)
infix fun to(other: end) = RangeTuple(0, Int.MAX_VALUE)
}
object end
infix fun Int.to(other: end) = RangeTuple(this, Int.MAX_VALUE)
#!/bin/bash
#
# Original: https://github.com/Nyr/openvpn-install
#
# Copyright (c) 2013 Nyr. Released under the MIT License.
# Minor changes by kageru to make the script run on Arch.
if [[ "$EUID" -ne 0 ]]; then
echo "Sorry, you need to run this as root"
exit
@kageru
kageru / mv3u
Last active February 15, 2018 17:41
A simple script to move/rename a file/folder and change m3u playlist entries accordingly. Portmanteau of mv and m3u
#!/bin/bash
# Move/rename a file/folder and change all m3u playlists in $playlists accordingly
# Usage:
# $ mv3u old_filename "new filename"
# change this
playlists='/path/to/your/playlists'
src="$1"
@kageru
kageru / mkvmerge-audiocut.py
Created January 28, 2018 12:12
just converts framenumbers to split parts for now
#!/usr/bin/env python3
"""
Just very basic for now. It only prints an mkvmerge command.
TODOs:
- properly get input file (or get it at all, lul)
- do the splitting for the user
- actually parse vs scripts
- get delay from source file (and --sync the output)
- add pluses automatically so you only get one file
@kageru
kageru / pydie.py
Last active January 17, 2018 20:36
digital die, just paste in into the python/ipython shell
from random import randint
from functools import partial
def d(m, n=1):
s = 0
print(f'{n}d{m}')
for _ in range(n):
r = randint(1, m)
s += r
print(r)
@kageru
kageru / day20.nim
Created December 21, 2017 00:50
Advent of Code Day 20 in nim (only the first part)
import strutils
import future
import nre
# 3-dimensional vector type with attributes for x, y, and z
# Mainly used for readability
type Vector = object
x, y, z: int
@kageru
kageru / day8.nim
Created December 20, 2017 02:25
Day 8 of the Advent of Code in nim (only the first part)
import tables
import nre
import strutils
let pattern = re"(?<target>\w+)\s(?<opcode>(inc|dec))\s(?<value>-?\d+)\sif\s(?<comptarget>\w+)\s(?<compop>(<|>|==|!=|<=|>=))\s(?<comp2>-?\d+)"
var registers = initTable[string, int]();
@kageru
kageru / day19.nim
Created December 20, 2017 02:22
Day 19 of the Advent of Code in nim (both parts)
import sequtils
import future
import nre except toSeq
type
Direction = enum
up = 0, left = 1, down = 2, right = 3
Grid = seq[seq[char]]
@kageru
kageru / snap_scenechanges.py
Last active January 28, 2017 14:16 — forked from FichteFoll/snap_scenechanges.py
Snap start and end times of ASS subtitles to scene changes using WWXD
#!/usr/bin/env python3.6
"""Snap start and end times of ASS subtitles to scene changes using WWXD.
Does not work with variable frame rate (VFR).
usage: snap_scenechanges.py [-h] [--epsilon EPSILON] [-o OUTPUT] [-v]
sub_path video_path