Go to file
Daniel Schulte 860b2fa48b Refactor Tweet printing to work in a line based fashion using the textwrap library
The textwrap library is contained in the python standard library.
The code contains a workaround for textwrap.wrap discarding newlines which should be preserved.
Therefore the text is first split into lines and non empty lines get processed by textwrap.wrap.
Empty lines get appended to the line buffer.
2018-03-18 19:05:28 +01:00
.gitignore Initial commit 2018-03-18 16:56:49 +01:00
README.md Add section about developing/testing the application to README.md 2018-03-18 17:14:00 +01:00
config.toml.example Initial commit 2018-03-18 16:56:49 +01:00
printer.py Refactor Tweet printing to work in a line based fashion using the textwrap library 2018-03-18 19:05:28 +01:00
requirements.txt Initial commit 2018-03-18 16:56:49 +01:00

README.md

About:

This application monitors your Twitter home timeline or any number (within the Twitter API limits) of hashtags of your choice and prints all incoming Tweets via an ESC/POS compatible thermal printer.

Installation:

System requirements

This application has been developed and tested on Linux, targeting python3.6 or newer. It might work on macOS (likely) and Windows (very unlikely).

Create a virtualenv with the required dependencies

python3 -m venv venv
venv/bin/pip install -r requirements.txt

Getting Twitter API access

  • If you already have access enter your consumer key/secret and access token/secret in the next step.
  • If you don't have such credentials you must create a Twitter App and get the required information after you've created it.

Create and fill in config.toml

cp config.toml.example config.toml
$EDITOR config.toml
# Put the required information into config.toml

Printing Tweets

Check your thermal printer

  • Ensure it supports ESC/POS.
  • See if your operating system detects your printer (look at the output of dmesg).
  • Check if the user that will be running this application can access the printer (check ls -l /dev/usb/lp*, id $USER).
  • A line width of 48 characters and Latin-1 as printer codepage 6 are assumed.
  • This application was tested with a Excelvan/Hoin HOP-E801 printer. No other models/printers have been tested yet.

Printing your home timeline

venv/bin/python3 printer.py --printer /path/to/printer

If you don't want to see retweets make sure to include the -n or--no-retweets option in the commandline above

Printing a specific (or multiple) hashtags

venv/bin/python3 printer.py --printer /path/to/print "#hashtag1" "#hashtag2"

If you want to see retweets in this mode make sure to include the -r or --retweets option in the commandline above

Developing/Testing

You can test this application without a thermal printer connected by simply omitting the -p/--printer argument when starting it. In that case you'll just get the output in your terminal.