Skip to content

Instantly share code, notes, and snippets.

View tyvsmith's full-sized avatar

Ty Smith tyvsmith

View GitHub Profile
@tyvsmith
tyvsmith / sync-qbittorrent-gluetun-port-forward.sh
Created July 15, 2023 22:08
TrueCharts - Sync QBittorrent Gluetun Port Forwards
#!/bin/bash
# Run on a cron from the host.
NAMESPACE=ix-qbittorrent
CONTAINER_VPN=qbittorrent-vpn
CONTAINER_BITTORRENT=qbittorrent
LAST_PORT_FILE=.last_gluten_forwarded_port
# Fetch the name of the pod with the label "app.kubernetes.io/instance=qbittorrent"
@tyvsmith
tyvsmith / roast-machine.py
Last active December 28, 2023 14:30
Gemini Pro Vision Roast Machine
import cv2
import tkinter as tk
from PIL import Image, ImageTk
import threading
import google.generativeai as genai
import google.ai.generativelanguage as glm
#Code written by Gemini Pro -- don't blame author for quality
API_KEY="YOUR_KEY_HERE" # add your key here
@tyvsmith
tyvsmith / actions_ids_custom_ip.conf:
Last active December 24, 2023 23:13
OPNSense update IDS homenet with WAN addresses
#Install into /usr/local/opnsense/service/conf/actions.d/actions_ids_custom_ip.conf then can enable a cron from the web UI
[update-ip]
command:python3 /root/scripts/update_ids_ips.py
parameters:
type:script
message:update IDS homenet IPs from WAN
description:Update IDS homenet IPs from WAN
@tyvsmith
tyvsmith / Setting.rb
Created June 5, 2011 20:42
Dynamic changes to schedule.rb for Whenever gem
class Setting < ActiveRecord::Base
validates_uniqueness_of :var
validates_presence_of :value
after_save :send_cron_later
#Setting.for(:display).set=(value)
def self.for(var)
find_or_create_by_var(var)

Keybase proof

I hereby claim:

  • I am tyvsmith on github.
  • I am tsmith (https://keybase.io/tsmith) on keybase.
  • I have a public key ASDtWZRebiECxV3QSVPeXXAD4--O4D2P3eZDyX6t03V2lAo

To claim this, I am signing this object:

@tyvsmith
tyvsmith / App.java
Last active October 26, 2018 19:15
If you have multiple Android apps that need to report to the same Crashlytics app endpoint. This allows overriding the package name that Crashlytics discovers and reports.
public class MyApp extends Application {
private final String PACKAGE="me.tysmith.app";
@Override
public void onCreate() {
super.onCreate();
Crashlytics.start(new CrashContextWrapper(this, PACKAGE));
}
}
@tyvsmith
tyvsmith / EvernoteIntentActions
Last active January 9, 2017 11:48
Some helpful intents for interacting with the Evernote Android app.
public static final String SEARCH_NOTES = "com.evernote.action.SEARCH_NOTES";
public static final String VIEW_NOTE_LIST = "com.evernote.action.VIEW_NOTELIST";
public static final String NOTE_PICKER = "com.evernote.action.NOTE_PICKER";
public static final String VIEW_NOTE = "com.evernote.action.VIEW_NOTE";
public static final String NEW_NOTE = "com.evernote.action.CREATE_NEW_NOTE";
public static final String EDIT_NOTE = "com.evernote.action.EDIT_NOTE";
public static final String UPDATE_NOTE = "com.evernote.action.UPDATE_NOTE";
public static final String DELETE_NOTE = "com.evernote.action.DELETE_NOTE";
@tyvsmith
tyvsmith / dex-count.sh
Created July 22, 2013 18:45
"`classes.dex` method count helpers. Requires smali/baksmali from https://code.google.com/p/smali/ and dexdump from the build-tools in the Android SDK be on your PATH." Use this to keep track of methods and fields in your apk. They are both limited to 65536. Example use: $ source dex-count.sh; $ dex-field-count classes.dex; Original method scrip…
function dex-method-count() {
cat $1 | head -c 92 | tail -c 4 | hexdump -e '1/4 "%d\n"'
}
function dex-method-count-by-package() {
dir=$(mktemp -d -t dex)
baksmali $1 -o $dir
for pkg in `find $dir/* -type d`; do
smali $pkg -o $pkg/classes.dex
count=$(dex-method-count $pkg/classes.dex)
@tyvsmith
tyvsmith / CrashReporting
Created August 13, 2013 01:10
Report Custom events to Crashlytics without actually killing the process.
public class CrashReporting {
public static class GenericReportingException extends Exception {
public GenericReportingException(){}
public GenericReportingException(String str){
super(str);
}
}
@tyvsmith
tyvsmith / AsyncBusinesNoteStoreClient notebook list.java
Last active December 14, 2015 18:39
Listing notebooks using the AsynNoteStoreClient
//Creating the business note store makes network requests
//to validate the auth token for the business
mEvernoteSession.getClientFactory().createBusinessNoteStoreClient(
new OnClientCallback<AsyncBusinessNoteStoreClient>() {
@Override
public void onSuccess(final AsyncBusinessNoteStoreClient client) {
//This is running in the UI Thread
client.listNotebooks(new OnClientCallback<List<Notebook>() {
@Override