Skip to content

Instantly share code, notes, and snippets.

View djfdyuruiry's full-sized avatar

matthew snoddy djfdyuruiry

View GitHub Profile
@djfdyuruiry
djfdyuruiry / hash-transmission-daemon-password.py
Last active March 25, 2020 00:14
Get a password hash that you can store in the Transmission Daemon settings JSON file: `./hash-transmission-daemon-password.py --help` - supports reading password from a file, stdin and outputting hash to a file
#! /usr/bin/env python3
from argparse import ArgumentParser
from getpass import getpass
from hashlib import sha1
from itertools import chain
from random import choices
from sys import stdin
SALT_LENGTH = 8
@djfdyuruiry
djfdyuruiry / MultiThreadedCsvReaderWriter.java
Last active August 25, 2023 11:25
Multi-threaded CSV Reader/Writer for Java
// uses Apache commons CSV, IO and Lang
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
@djfdyuruiry
djfdyuruiry / alfresco-postman-generator.js
Last active October 4, 2018 07:52
NodeJS Script to Generate Postman Collections/Environments for the Alfresco v1 REST API (uses https://www.npmjs.com/package/swagger2-postman-generator)
// see: https://www.npmjs.com/package/swagger2-postman-generator
const Swagger2Postman = require("swagger2-postman-generator");
function alfrescoRequestPostProcessor(postmanRequest, swaggerSpec) {
if (postmanRequest.url.includes("/authentication/versions/1/tickets")) {
// add a test post login event to save the ticket to an environment variable
postmanRequest.events = [
{
"listen": "test",
"script": {
@djfdyuruiry
djfdyuruiry / generatePseudoUniqueId.lua
Last active August 23, 2018 23:21
Pseudo unique ID generator using a combination of memory addresses, time and random number generators. IDs are unique at worst unique 55% of the time, and at best up to 95% of the time.
MAX_ID_LENGTH = 10
local generatePseudoUniqueId = function()
local threadAddress = tostring({}):sub(10)
local threadAddressLetters = threadAddress:gsub("%d", "")
local threadAddressNumbers = threadAddress:gsub("[a-z]", "")
local threadAddressNumber = tonumber(threadAddressNumbers)
local maxNumberWidth = MAX_ID_LENGTH - threadAddressLetters:len()
@djfdyuruiry
djfdyuruiry / alpine-lua
Created August 19, 2018 21:15
Docker container which provides a Lua interpreter with access to luarocks; uses alpine linux as the base image
#!/usr/bin/env ash
read -r -d '' PROMPT_LUA << EOM
_PROMPT = '[alpine-lua]# '
luarocks =
{
install = function(pkg)
return os.execute('luarocks install ' .. pkg)
end
@djfdyuruiry
djfdyuruiry / ApiResponseBuilder.java
Last active November 17, 2021 13:25
Response builder which wraps around JAX-RS responses, provides built in error handling.
import javax.ws.rs.core.Response;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Supplier;
import static javax.ws.rs.core.MediaType.TEXT_PLAIN_TYPE;
import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR;
import static javax.ws.rs.core.Response.Status.OK;
@djfdyuruiry
djfdyuruiry / queryMavenCentral.sh
Last active July 21, 2018 16:57
Maven Central Search Script
#/usr/bin/env bash
if [ "$#" -lt 1 ] || [ -z "$1" ]; then
>&2 echo "Usage: $0 searchTerm [searchResultLimit] # default searchResultLimit is 5"
exit 1
fi
if [ -z "$(command -v python)" ]; then
>&2 echo "$0 requires python to be installed and in the current PATH"
exit 1
@djfdyuruiry
djfdyuruiry / quartz.properties
Created July 6, 2018 08:40
File Based Quartz Scheduler JDBC JobStore using H2
# On disk local Quartz JobStore using H2; add 'com.h2database:h2:1.4.197' to your dependencies
org.quartz.scheduler.instanceName = MyScheduler
org.quartz.threadPool.threadCount = 3
# generic jdbc job store
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = disk
# persist to H2 database at path '/tmp/MyScheduler.quartz.h2'
@djfdyuruiry
djfdyuruiry / Grafana-snapshot.py
Last active August 19, 2018 21:10
Automated Grafana Snapshots using Python
from datetime import datetime, timedelta
from requests import get, post
GRAFANA_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
GRAFANA_CREDS = ('user', 'password')
dashboardResponse = get('https://grafana.host/api/dashboards/a/dashboard', auth = GRAFANA_CREDS)
dashboard = dashboardResponse.json()['dashboard']
@djfdyuruiry
djfdyuruiry / json-path-query.sh
Last active June 21, 2018 22:43
JSON path bash util function using python, supports array queries, array indices, list object fields and array length query.
#!/usr/bin/env bash
jsonLoadFromStdIn="json.load(sys.stdin)"
loopOverItems=false
loopJsonOperation=""
__doJsonOperation() {
json="$1"
operation="$2"
operationWithJsonLoad=${operation/__JSON__/$jsonLoadFromStdIn}