Skip to content

A simple Twitter bot that posts random images by Swedish photographer Hilding Mickelsson, using the K-samsök/SOCH API.

License

Notifications You must be signed in to change notification settings

carwash/hilding_bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Hilding bot

A simple Twitter bot that posts random images by Swedish photographer Hilding Mickelsson, using the K-samsök/SOCH API.

About

This is the code that runs the @hilding_bot Twitter bot. It posts random images by Swedish photographer Hilding Mickelsson, using the K-samsök/SOCH API. Aside from a few parts that are peculiar to that particular collection of photos, the code is otherwise fairly generic and could very easily be adapted to find and post any set of photos from K-samsök/SOCH, simply by changing the CQL search query at the top of hilding_cache.pl.

The archive of Hilding Mickelsson's photographs is curated by Hälsinglands Museum, who publish them under a CC BY-NC license on DigitaltMuseum, from where they are aggregated to K-samsök/SOCH.

Configuration and usage

You'll need a modern (≥5.16) version of Perl (I suggest using Perlbrew). The scripts use a few non-core modules which you'll also need to install: run perl -c on each of the scripts (or just check the use directives at the top) and install whatever it complains about with cpanm until it stops complaining. 😊 (Perlbrew lets you easily bootstrap cpanm with perlbrew install-cpanm.)

There are two scripts:

  • hilding_bot.pl is the Twitter bot itself. It fetches RDF data from K-samsök/SOCH and image data from DigitaltMuseum, mungs it a bit to make a suitable tweet text, and posts the image and data to Twitter.
    To use it, create a new application in the Twitter Developer site. Copy oauth.yml.example to oauth.yml and edit it to add your consumer key and secret. hilding_bot.pl will prompt you to authenticate the first time it is run on the command line, and save an access token and secret for future authentication.
    After the first interactive run for authentication, hilding_bot.pl is intended to be run as a scheduled cron job.

  • hilding_cache.pl is a support script that generates and maintains a list of K-samsök/SOCH URIs matching its search criteria in uri-cache.yml. This lets the bot quickly pick a URI at random while excluding those it has already tweeted (which it saves to used-uris.yml). hilding_cache.pl parallelises its search, but even so it can take a few minutes to run if the search results in a large number of hits; I suggest setting a weekly cron job.
    The caches need to be primed before hilding_bot.pl is run for the first time: run hilding_cache.pl and when it's finished, copy uri-cache.yml to used-uris.yml; the bot will take care of the book-keeping after that.

If you don't care about potentially posting the same thing twice, you could dispense with hilding_cache.pl and the YAML caches entirely, and instead adapt hilding_bot.pl to just pick a URI at random from the K-samsök/SOCH search result at run-time.

About

A simple Twitter bot that posts random images by Swedish photographer Hilding Mickelsson, using the K-samsök/SOCH API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages