spreadsplugΒΆ

spreadsplug package

This package contains all of the plugins and device drivers that are shipped with the application and supported by the spreads developers themselves.

In alphabetical order:

spreadsplug.autorotate
Postprocessing plugin to rotate captured images according to their EXIF orientation tag.
spreadsplug.dev.chdkcamera
Driver for Canon cameras with the CHDK firmware.
spreadsplug.dev.gphoto2
Driver for cameras supported by libgphoto2
spreadsplug.dev.dummy
Dummy driver that implements the driver interface and just spits out one of the two test images. Intended for rapid development, not for general usage.
spreadsplug.djvubind
Output plugin to compress and bundle images (and OCRed text) into a single DJVU file using the djvubind utility.
spreadsplug.gui
Subcommand plugin for a graphical wizard using Qt (via the PySide bindings)
spreadsplug.hidtrigger
Trigger plugin to initiate a capture from USB HID devices (like foot-pedals or gamepads)
spreadsplug.intervaltrigger
Trigger plugin to initiate a capture in a configurable interval.
spreadsplug.pdfbeads
Output plugin to compress and bundle images (and OCRed text) into a single PDF file using the pdfbeads utility.
spreadsplug.scantailor
Postprocesing plugin to put captured images through the ScanTailor application.
spreadsplug.tesseract
Postprocessing plugin to perform optical character recognition on the images, using the tesseract application
spreadsplug.web
Subcommand plugin for a RESTful HTTP API (implemented with Flask and Tornado) and a single-page JavaScript web application (implemented with ReactJS)

Trigger plugin that triggers in a configurable interval.

Plugin to provide a RESTful HTTP API and a single-page web application for controlling the software.

The code for the plug in is split across the following server-side modules:

spreadsplug.web.app
Contains the subcommand hook as well as the initialization code for the web application.
spreadsplug.web.endpoints
WSGI endpoints that provide most parts of the RESTful interface, implemented with Flask.
spreadsplug.web.handlers
Tornado HTTP handlers for long-polling and chunked downloading endpoints, as well as a WebSocket handler for sending out server-side events to all clients.
spreadsplug.web.tasks
Implementations of long-running tasks that are performed in the background, across multiple request-response-cycles, through the Huey task queue.
spreadsplug.web.discovery
Code for both advertising of postprocessing-servers via UDP multi-casting, as well as the auto-discovery of said servers from other instances.
spreadsplug.web.util
Various utility classes and functions for the plugin.
spreadsplug.web.winservice
Code for a simple Windows service that runs the application in the background and provides a small taskbar-icon to allow opening a browser and shutting down the appplication.

For the documentation of the client-side part, please refer to the following document: TODO