Skip to main content

Sort screenshots based on rules or through individual review.

Project description

Clown Sort

Sometimes someone is being a clown on the internet. Somewhere on your hard drive is the perfect screenshot to prove to the world that the clown in question is a fool, a hypocrite, a criminal, or worse. But then - horrors - you can't find the screenshot! It has been lost in your vast archive of screenshots of clowns clowning themselves on the internet.

Clown Sort solves this.

What It Do

It sorts screenshots, PDFs, etc. based on their name and/or their textual contents into folders based on a list of rules. The contents of the tweet/reddit post/whatever are prepended to the filename and the ImageDescription EXIF tag is set to the OCR text. As you can configure your own arbitrary rules and run it against any set of images it works on many things other than screenshots of social media clowns, though the default configuration is for cryptocurrency clowns.

For example this screenshot of a tweet by a noteworthy cryptocurrency "reporter"[^1] on the eve of FTX's implosion:

Would be renamed from Screen Shot 2023-02-17 at 7.11.37 PM.png to

Tweet by @lawmaster: "I will say though before this thread gets taken over: 1. I do believe Alameda has the size to easily buy Binance\'s FIT OTC 2. I think the chance of FTX insolvency is near" Screen Shot 2023-02-17 at 7.11.37 PM.png

Other stuff that happens:

  • The ImageDescription EXIF tag will be written (for images)
  • All timestamps will be preserved.
  • Files that match multiple patterns will be copied to multiple destination folders.
  • The original file will be moved into a Processed/ directory after it has been handled.

Note also that:

  • This works on images that are more substantive than just self-clowning screenshots.
  • So far only Tweets and Reddit screenshots have special handling beyond OCR text extraction.
  • PDFs can be sorted by contents or filename, e.g. a PDF named Norton Anthology of Crypto Bro Poetry.pdf containing iambic verse like "Fuck u justin sun and fuck ur dick face... u all play with investing and money of the people !!!!" by the noted bard JOKER_OF_CRYPTO will be copied to the Justin Sun/ folder but not renamed.
  • Videos are not OCRed and can only be moved based on filename matches, e.g. a file called SBF is a big fat liar.mov will be moved to the FTX/ folder but otherwise left alone.

Quick Start

# Installation with pipx is preferred if you have it but you can also use pip which comes standard
# on almost all systems. pipx is only a noticeably better answer if you're a python programmer who
# is concerned about side effects of pip upgrading system python packages.
pip install clown_sort

# Get help
sort_screenshots -h

# Dry run with default cryptocurrency sort rules (dry runs don't actually move anything,
# they just show you what will happen if you run again with the --execute flag)
sort_screenshots

# Execute default cryptocurrency sort rules against ~/Pictures/Screenshots
sort_screenshots --execute

# Sort a different directory of screenshots
sort_screenshots --screenshots-dir /Users/hrollins/Pictures/get_in_the_van/tourphotos --execute

# Sort with custom rules
sort_screenshots --rules-csv /Users/hrollins/my_war.csv --execute

Setup

pip install clown_sort

Optional Components

If you want to use the popup window to manually tag you may need to install:

  • Python TK: brew install python-tk@3.10 (if you don't have homebrew you need to install it to run brew install)

Not required for standard PNG, JPG, etc. images but you may optionally install exiftool for other file types.

Usage

Help screen:

Custom Sorting Rules

The default is to sort cryptocurrency related content but you can define your own CSV of rules with two columns folder and regex. The value in folder specifies the subdirectory to sort into and regex is the pattern to match against. See the default crypto related configuration for an example. An explanation of regular expressions is beyond the scope of this README but many resources are available to help. if you're not good at regexes just remember that any alphanumeric string is a regex that will match that string. pythex is a great website for testing your regexes.

[^1]: Perhaps notable that the "reporter" in question for years maintained a private list of the blockchain addresses of Sam Bankman-Fried's various scams as part of his commitment to "unrivaled transparency".

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clonwn_sort-0.4.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

clonwn_sort-0.4.0-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file clonwn_sort-0.4.0.tar.gz.

File metadata

  • Download URL: clonwn_sort-0.4.0.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for clonwn_sort-0.4.0.tar.gz
Algorithm Hash digest
SHA256 8415708d0bd3d7f9e32c2f451b2b9552c52ab93068c32293f328ef3a637d0a36
MD5 f4f28883b0695f6e0fdcda5da5b4947d
BLAKE2b-256 b93acefb3694019200e78b041f2734a5cacd7ee920059de4fd39dda778ee4408

See more details on using hashes here.

File details

Details for the file clonwn_sort-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: clonwn_sort-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Darwin/21.6.0

File hashes

Hashes for clonwn_sort-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 329dce83f23c2e1dfa111690c84ce131246056923c377c8cb656253bd846189d
MD5 603b44ce22ee75361a844801e82b67e6
BLAKE2b-256 8de2d36b42071076ba3f8ae6c56b6c299fd58270273b6ea7fc27aa42694feedf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page