Skip to content

Instantly share code, notes, and snippets.

@jikamens
jikamens / download-helpscout-mailbox.py
Last active October 27, 2021 16:47
Python script for doanloding conversations, customers, and attachments from a Help Scout mailbox
#!/usr/bin/env python
"""Download conversations, customers, and attachments from a Help Scout mailbox
Written by Jonathan Kamens (jik@kamens.us).
Released into the public domain.
Email me patches if you have enhancements you'd like me to incorporate. Don't
bother emailing me bug reports or suggestions; this script does exactly what I
#!/usr/bin/env perl
# Memorable, typeable password generator. See https://blog.kamens.us/?p=5969.
#
# By Jonathan Kamens <jik@kamens.us>.
#
# This script is in the public domain. You are welcome to do whatever you want
# with it, though it would be nice if you'd give me credit somehow or at least
# send me email and let me know how you're using it.
#
#!/usr/bin/bash -e
# Pick the first updatable package that isn't held, and list what was
# updated.
trap "rm /tmp/*.$$" EXIT
cp /var/log/dpkg.log /tmp/dpkg.log.$$
apt-mark showhold | awk -F: '{print $1}' |sort -u > /tmp/held.$$
apt list --upgradable 2>/dev/null | awk -F/ 'NR>1 {print $1}' | sort -u > \
// https://bugzilla.mozilla.org/show_bug.cgi?id=128072#c32
// Credit: Alexander Bergmann
"use strict;"
// Toggle Replied and Forwarded
if (location == "chrome://messenger/content/messenger.xhtml") {
let toggleRepliedAndForward = {
@jikamens
jikamens / wayback-check.py
Last active December 24, 2022 16:10
Script for filtering URLs before submitting them to the Wayback Machine for archiving
#!/usr/bin/env python3
# This script filters a list of URLs to determine which of them should be
# submitted to the Internet Archive's Wayback Machine for archiving because
# they are valid URLs and/or they aren't already archived in the Wayback
# Machine.
#
# To check for and filter out URLs which are invalid, specify --check on the
# command line. To filter out URLs that are already archived in the Wayback
# Machine, specify --check-archive on the command line. You must specify either
@jikamens
jikamens / auto-dnsbl.pl
Last active February 3, 2023 15:32
auto-dnsbl.py - add DNSBL entries to /etc/hosts.deny automatically
#!/usr/bin/env perl
=pod
=head1 SUMMARY
auto-dnsbl.py - add DNSBL entries to /etc/hosts.deny automatically
=head1 DESCRIPTION
@jikamens
jikamens / auto-dnsbl.pl
Last active February 17, 2023 05:07
auto-dnsbl.pl (iptables version)
#!/usr/bin/env perl
=pod
=head1 SUMMARY
auto-dnsbl.py - add DNSBL entries to iptables automatically
=head1 DESCRIPTION
@jikamens
jikamens / find_perl_module.py
Created March 9, 2023 17:12
Ansible module to figure out from where to install Perl modules
#!/usr/bin/python
# Copyright: (c) 2023, Jonathan Kamens <jik@kamens.us>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
DOCUMENTATION = r'''
---
module: find_perl_module
@jikamens
jikamens / bwsc-usage.py
Created June 16, 2023 21:22
Check your daily Boston Water (BWSC) usage and alert about potential leaks
#!/usr/bin/env python3
"""
Check your daily Boston Water (BWSC) usage and alert about potential leaks
This script logs into the Boston Water and Sewer Commission customer portal
using the Chrome Selenium driver, downloads your daily usage for the past 30
days, and prints a warning if the most recent daily usage number is more than
three standard deviations higher than the mean of all the usage numbers. This
@jikamens
jikamens / bitwarden-backup.py
Created June 26, 2023 15:10
Simple script for backing up your Bitwarden vault using the Bitwarden CLI
#!/usr/bin/env python3
# Simple script for backing up your Bitwarden vault using the Bitwarden CLI
#
# Copyright 2021 Jonathan Kamens <jik@kamens.us>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.