Skip to content

Instantly share code, notes, and snippets.

@dvdbng
dvdbng / copy-aws-eb-env-vars.js
Created June 16, 2021 14:41
Copy/paste all ENV variables from one AWS beanstalk env to another
// Copy/paste all ENV variables from one AWS beanstalk env to another. Use this functions in the browser console
// Copy ENV as json
copy(
JSON.stringify(
Object.fromEntries(
Array.from(
document.querySelectorAll('.env-props-table tbody tr:not(.ng-hide)')
).map(e => [
e.querySelector('[ng-model="option.optionName"]').value,
@dvdbng
dvdbng / ssh_proxy.js
Created May 12, 2020 16:58
TCP forwarding proxy over ssh
const net = require('net');
const child_process = require('child_process');
function makeProxy(port, jump, target) {
const server = net.createServer(socket => {
const subprocess = child_process.spawn(
'ssh',
[jump, '-W', target],
{ stdio: ['pipe', 'pipe', 'inherit'] }
);
@dvdbng
dvdbng / gsubrb
Created April 10, 2020 13:24
Recursive replace in directory, replacement is dynamically created by ruby code
#!/usr/bin/env ruby
# frozen_string_literal: true
require 'optparse'
require 'active_support/all'
options = {}
OptionParser.new do |opts|
opts.banner = 'Usage: gsubrb [options]'
opts.on('-r', '--replace [CODE]', String, 'Block that will be executed for each match') do |code|
@dvdbng
dvdbng / awsenv
Created April 2, 2020 17:06
Set AWS credentials from pass store
#!/bin/bash
# Usage awsenv enviromnent command...
search="$1"
shift
file=$(find "$HOME"/.password-store/AWS | grep "$search.*/AKIA.*gpg$")
if [[ x"$file" = x ]]; then
echo "Could not find a AWS key at $search" >&2
exit 1
#!/bin/bash
# Usage: ./eth-balance address
wei="$(curl -s https://api.blockcypher.com/v1/eth/main/addrs/"$1" | jq .balance)"
eth="$(echo "$wei / (10 ^ 18)" | bc -l)"
echo $eth
#!/bin/bash
# Usage: ./btc-balance address
satoshis="$(curl https://insight.bitpay.com/api/addr/"$1"/balance)"
btc="$(echo "$satoshis/100000000" | bc -l)"
echo $btc
#!/bin/bash
cat /etc/dictionaries-common/words | grep -P '^[a-z]{1,10}$' | shuf -n 4 | tr '\n' '-' | sed 's/-$/\n/'
@dvdbng
dvdbng / pinyin-subtitles.py
Created November 15, 2019 18:56
Convert chinese subtitle to chinese + pinyin (Output is like this: 最zùi高gāo法fǎ院yuàn在zài今jīn天tiān早zǎo上shàng)
#!/usr/bin/python3
import sys
import re
import pysrt
import pinyin
def to_pinyin(text):
pinyins = pinyin.get(text, delimiter=" ").split(' ')
@dvdbng
dvdbng / merge_subtitles.py
Created November 15, 2019 18:31
Merge two or more subtitles
#!/usr/bin/python3
"""
LPT: If your original subtitles are not .srt, convert them using ffmpeg
"""
import sys
import pysrt
def merge_subtitles(srts):
@dvdbng
dvdbng / vlc-speed-sub.py
Created October 20, 2018 22:18
VLC: Set a different playback speed for dialog and not-dialog scenes (using subtitles)
#!/usr/bin/env python3
# This changes the playback speed to a different speed when there is and when there isn't subtitles.
# You need to activate the Lua HTTP interface in VLC and
# configure the password here, then run the script with a .srt as first argument.
# Ended up not being very nice because VLC janks for a few milliseconds when the playback speed changes
import requests
import pysrt
import sys