Daniel Schulte
860b2fa48b
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. |
||
---|---|---|
.gitignore | ||
README.md | ||
config.toml.example | ||
printer.py | ||
requirements.txt |
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.