SFTP-based image dropper for OSX with archiving functionality

Wazakindjes c3d7ea8441 Better removal of URL query params imo tbh lmao 7 months ago
icinz ed7a394aca Added WorkingIcon (yell0), implemented EXIF stripping and rotation of muh pics, cleaned up plist and added envvar bs (PYTHONPATH etc) =]] 1 year ago
.gitignore 9cc519cd78 Cleaned up gitignore a bit =] 2 years ago
LICENSE 2d64d0e9cc Repo creation lol 2 years ago
README.md 14046e3016 Extended OSX issue information lel 8 months ago
com.jemoeder.lief.hurr.droppert.plist ed7a394aca Added WorkingIcon (yell0), implemented EXIF stripping and rotation of muh pics, cleaned up plist and added envvar bs (PYTHONPATH etc) =]] 1 year ago
hurr.conf.example af9fadd06b Added exifgps conf var to example c0nf and updated exifrotate description y0 1 year ago
hurr.py c3d7ea8441 Better removal of URL query params imo tbh lmao 7 months ago
load ef105be38f Added load/reload/unload skrips 2 years ago
reload ef105be38f Added load/reload/unload skrips 2 years ago
unload ef105be38f Added load/reload/unload skrips 2 years ago

README.md

The fuck is this

This shit is a premium self-hosted image uploader thingy based on SFTP, written for OSX. 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 OSX Notification Center bullshit, so Growl all the way yo. It relies on the built-in OSX 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). ;]

Dependencies

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

Installation

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]/hurr.py</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 ./hurr.py in a terminal, Pythinz will most likely shit out some errors that will give you an idea of wats goin on. =]

Common issues

After upgrading em OSX (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.