Creating a Portable IslandLives on a PirateBox

I love IslandLives.ca, Robertson Library’s digitization project for Prince Edward Island community histories (disclaimer: I played a small role in the project’s early days, coding some of the project related to automatic named entity recognition). And I’m recently in love with the PirateBox project, which lets you create a standalone wireless file-sharing device based on cheap hardware; you can create your own single-node Internet for distributing content where the Internet itself isn’t available, or where you don’t want it available.

So it seemed like a good idea to marry the two.

I bought a TP-Link MR3020 for $39.99 from The Source, and when it arrived a few days later I set it up with OpenWRT and PirateBox using the refreshingly clear instructions.

I then wrote some code, which you can grab here from Github that harvests data out of IslandLives via OAI, scrapes out PDF files and thumbnail images for every book that has a PDF copy available, creates an index.html file with an index of all the books linked from their thumbnails, and dumps this all into a directory suitable for copying onto a PirateBox USB drive, ready for serving.

Once the data is scraped and copied and on the USB stick in the PirateBox, then for users it’s a simple matter of connecting to the PirateBox SSID, clicking on “Browse and download files here”, selecting the IslandLives directory, and exploring. Here’s what it looks like on an iPad:

islandlives-ipad

And here’s what it looks like on my Firefox OS phone:

islandlives-firefoxos

In theory it should be possible to adapt the code to harvest data out of other Islandora instances, so creating a PirateBox version of the data inside islandvoices.ca or islandimagined.ca would be an easy next step.