3.4 KB

The fuck is this

This shit is a premium self-hosted image uploader thingy based on SFTP, written for Mac OS X. It may or may not work with other OSes (cuz I've never tested it l m a o), provided Growl is available. I don't like the OS X Notification Center bullshit, so Growl all the way yo. It relies on the built-in OS X Cmd+Shift+3/4 key combo for scrots as that dumps them on your Desktop right away. You could probably use different software for scr0tting and run this skrip to upload that shit to your own server. Your own server must be *NIX as it runs a few specific commands that e.g. Windongs won't have.

It connects to yo server over SSH and dumps the scrot, then copies a URL to ur clipb0ardins. =] You can monitor up to 3 directories (fully configurable), which you could use for the default scrot location (normally ~/Desktop), some remote/networked dir and Dropbox/Camera Uploads or some shit. It werks by checking file differences in those dirs and uploads everything that matches the regex in the config.

Furthermore, it supports archiving your pics so the main directory doesn't get cluttered af as well as strippin' of EXIF tags (and rotating pics w/ EXIF orientation tags y0). ;]


Be sure to install the following libs (either pip install or easy_install should werks):

  • gntp -- Growl Notification Transport Protocol shit
  • paramiko -- SSH/SFTP bs
  • piexif -- Required for modifying EXIF sections
  • PIL/Pillow -- Python Image Library to rotate images ;]
  • pyperclip -- Clipboard hecks lol

There are other libs but they should be built-in. You'll receive an error message about a missing library anyways. =]

Also, it requires the following:

  • A *NIX server with a web service (like Apache, nginx, etc)
  • A domain to go with it, 2 subdomains are best obv (one for "live" pics and another for archived ones)
  • Key-based SSH authentication cuz fuck passwerds


Copy hurr.conf.example to hurr.conf and fire up een editor. All the options are explained in there so git to reading fam.

After that change the contents of the com.jemoeder.lief.hurr.droppert.plist file, namely the line that says <string>/Users/[user]/[dir]/</string>. Then just copy it to ~/Library/LaunchAgents and run ./load. This makes sure it gets restarted after you reboot or log out and in again. Also it has a keepalive flag so if it died it'll be restarted. ;3

Depending on your setup, you may also need the EnvironmentVariables key in the plist file (in my case launchctl wouldn't import PIL lmao). Just remove the <!-- --> shit and ur gucci mane. Don't forget to ./reload if you already l0aded em before doing dis.

Hurrrr pls halp it's br0ke

Simply ./unload that shit and do ./ in a terminal, Pythinz will most likely shit out some errors that will give you an idea of wats goin on. =]

Alternatively, uncomment the StandardOutPath/StandardErrorPath directives in the plist file and reload that shit. Then check the lawg files obv. ;]

Common issues

After upgrading em OS X (I'll keep saying that instead of macOS, fucking deal w/ it) your GNTP might have been fucked over. Verify your Python is still alive w/ python --version and pip --version, then make sure pip is up to date and reinstall gntp:

sudo pip install --upgrade pip
pip install --upgrade --ignore-installed --user gntp

Shud b gucci after that. ;] If shit's still rip, your Growl might have vanished entirely so just reinstall the application itself.