Skip to content

Instantly share code, notes, and snippets.

View JohnMertz's full-sized avatar

John Mertz JohnMertz

View GitHub Profile
@JohnMertz
JohnMertz / opl.pl
Created April 10, 2020 11:02
Script to fetch Holds, Checkouts and Fines for an account with the Ottawa Public Library.
#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
use JSON::XS;
use HTML::TreeBuilder;
my $pretty = 0;
@JohnMertz
JohnMertz / gist:39306b25eada1e658338ef5f434ee629
Created April 10, 2020 11:10
Simple weekly streak counter script
#!/usr/bin/perl
# Manually trigger with `$0 -a` to log an exercise event for the day.
# Automatically run each morning with `$0 -c` to cycle out old data
# Simply outputs Bool for event today, count for the last 7 days and the goal
# Meant for a simple indicator widget so I know if a streak is at risk
use JSON::XS;
use Date::Calc;
@JohnMertz
JohnMertz / miband.pl
Created April 10, 2020 11:15
Script for aggregating MiBand step count from GadgetBridge export
#!/usr/bin/perl
use warnings;
use strict;
use Time::Local;
use JSON::XS;
use DBI;
my $file = "/path/to/export_file";
@JohnMertz
JohnMertz / battery.pl
Created April 10, 2020 11:38
Battery status script
#!/usr/bin/perl
# Not proud of this one. It had multi-battery supported shunted on when I got a new laptop and Waybay output taped on too. Could use to be cleanud up a lot, but it does the job.
my $output;
my $bar = 0;
if ($ARGV[0] eq '-h' || $ARGV[0] eq '--help') {
print'
pow.pl - Power Status Script
@JohnMertz
JohnMertz / traffic.pl
Created April 10, 2020 11:44
Ottawa traffic news and alerts
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dump qw | dump |;
use LWP::UserAgent;
use JSON::XS;
my $ua = LWP::UserAgent->new();
@JohnMertz
JohnMertz / amihome.pl
Created May 28, 2020 19:19
Is a device currently up on LAN (determine if my phone is at home).
#!/usr/bin/perl
use strict;
use warnings;
use Net::Ping;
my $file = "/tmp/amihome";
my $host = "192.168.2.127";
@JohnMertz
JohnMertz / update_minecraft.pl
Created August 16, 2020 04:36
Minecraft Server Backup and Upgrade Script
#!/usr/bin/perl
# Accompanying SystemD Unit file compatible with these locations/user: https://gist.github.com/JohnMertz/c6bb4a9298dd3dc53b8030ff50466226
#
# Expects the following minecraft directories:
# ./ The PWD is taken dynamically. In the SystemD unit, it is /var/lib/minecraft
# current The latest version. This will be the executable directory.
# 1.16.2 Directories will be created for every old version
# update_minecraft.pl This script
#
@JohnMertz
JohnMertz / minecraft.service
Last active August 17, 2020 02:45
Minecraft SystemD Unit File
[Unit]
Description=Minecraft
After=network.target
[Service]
Type=simple
User=minecraft
Group=minecraft
WorkingDirectory=/var/lib/minecraft/current
ExecStart=java -jar -Xmx2G -Xms1G server.jar --nogui
@JohnMertz
JohnMertz / sway_displays.pl
Last active August 27, 2020 17:01
Automatically configure display layout and waybar for Sway
#!/usr/bin/perl
########################################################################
# Dependencies
########################################################################
#
# Depends on JSON::XS and Proc::ProcessTable
#
# Debian:
# apt install libjson-xs-perl libproc-processtable-perl
@JohnMertz
JohnMertz / stream_podcasts.pl
Created November 24, 2020 09:37
Daily podcast player
#!/usr/bin/perl
use strict;
use warnings;
# Dependencies
use LWP::UserAgent; # Usually pre-installed, available on CPAN
use XML::Hash::XS; # CPAN or libxml-hash-xs-perl on Debian
# Feeds that should be used if no arguments are provided