Skip to content

Instantly share code, notes, and snippets.



View GitHub Profile
kageru / kotlin-python-slice.kt
Created Jul 2, 2019
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.
View kotlin-python-slice.kt
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 end) = RangeTuple(this, Int.MAX_VALUE)
# Original:
# 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"
kageru / mv3u
Last active Feb 15, 2018
A simple script to move/rename a file/folder and change m3u playlist entries accordingly. Portmanteau of mv and m3u
View mv3u
# Move/rename a file/folder and change all m3u playlists in $playlists accordingly
# Usage:
# $ mv3u old_filename "new filename"
# change this
kageru /
Created Jan 28, 2018
just converts framenumbers to split parts for now
#!/usr/bin/env python3
Just very basic for now. It only prints an mkvmerge command.
- 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 /
Last active Jan 17, 2018
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
for _ in range(n):
r = randint(1, m)
s += r
kageru / day20.nim
Created Dec 21, 2017
Advent of Code Day 20 in nim (only the first part)
View day20.nim
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 / day8.nim
Created Dec 20, 2017
Day 8 of the Advent of Code in nim (only the first part)
View day8.nim
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 / day19.nim
Created Dec 20, 2017
Day 19 of the Advent of Code in nim (both parts)
View day19.nim
import sequtils
import future
import nre except toSeq
Direction = enum
up = 0, left = 1, down = 2, right = 3
Grid = seq[seq[char]]
kageru /
Last active Jan 28, 2017 — forked from FichteFoll/
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: [-h] [--epsilon EPSILON] [-o OUTPUT] [-v]
sub_path video_path
kageru /
Last active Nov 17, 2020
Standalone script using Vapoursynth to determine the original resolution of scaled images or videos.

This version is deprecated

I’ve stopped updating this a while ago because some people made a proper respository with a few necessary fixes and changes. Just get this version from now on: