Merge branch 'master' of https://git.vvvvvvaria.org/varia/televex
This commit is contained in:
commit
8fde14f8d8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1,3 @@
|
||||
.venv*
|
||||
venv*
|
||||
print/__pycache__*
|
||||
|
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -1,3 +1,3 @@
|
||||
[submodule "tools/ascii-art-but-with-unicode"]
|
||||
path = tools/ascii-art-but-with-unicode
|
||||
[submodule "screen/tools/ascii-art-but-with-unicode"]
|
||||
path = screen/tools/ascii-art-but-with-unicode
|
||||
url = https://git.vvvvvvaria.org/mb/ascii-art-but-with-unicode.git
|
||||
|
11
Makefile
Normal file
11
Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
setup:
|
||||
@python3 -m venv .venv && \
|
||||
.venv/bin/pip install -r requirements.txt
|
||||
|
||||
screen:
|
||||
@cd screen && \
|
||||
.venv/bin/python televex.py
|
||||
|
||||
print:
|
||||
$cd print && \
|
||||
.venv/bin/python start.py
|
7
README.md
Normal file
7
README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# TeleVex
|
||||
|
||||
https://televex.vvvvvvaria.org/
|
||||
|
||||
|
||||
Experimental communication tools (televex screen + televex print).
|
||||
|
52
print/start.py
Normal file
52
print/start.py
Normal file
@ -0,0 +1,52 @@
|
||||
# https://github.com/python-escpos/python-escpos
|
||||
# https://python-escpos.readthedocs.io/en/latest/
|
||||
|
||||
import sys
|
||||
import os
|
||||
import flask
|
||||
from flask import request
|
||||
import urllib
|
||||
import json
|
||||
from escpos.escpos import Escpos
|
||||
from escpos import printer
|
||||
|
||||
# Create the application.
|
||||
APP = flask.Flask(__name__)
|
||||
|
||||
# File Initialization
|
||||
try:
|
||||
lp = printer.File("/dev/usb/lp0")
|
||||
except:
|
||||
lp = sys.stdout
|
||||
|
||||
# USB initialization
|
||||
# Bus 001 Device 006: ID 04b8:0e15 Seiko Epson Corp.
|
||||
# lp = printer.Usb(0x4b8, 0xe15)
|
||||
|
||||
lp.text('test :)')
|
||||
lp.image('')
|
||||
lp.cut()
|
||||
|
||||
|
||||
@APP.route('/', methods=['GET', 'POST'])
|
||||
def index():
|
||||
|
||||
plaintext = request.args.get('plaintext', '')
|
||||
|
||||
if plaintext:
|
||||
lp.text(plaintext)
|
||||
lp.cut()
|
||||
|
||||
url = 'https://multi.vvvvvvaria.org/API/latest/5'
|
||||
response = urllib.request.urlopen(url).read()
|
||||
multifeeder = json.loads(response)
|
||||
|
||||
url = 'https://multi.vvvvvvaria.org/API/today/'
|
||||
response = urllib.request.urlopen(url).read()
|
||||
feedstoday = json.loads(response)
|
||||
|
||||
return flask.render_template('index.html', plaintext=plaintext, multifeeder=multifeeder, feedstoday=feedstoday)
|
||||
|
||||
if __name__ == '__main__':
|
||||
APP.debug=True
|
||||
APP.run(port=5000)
|
16
print/static/stylesheet.css
Normal file
16
print/static/stylesheet.css
Normal file
@ -0,0 +1,16 @@
|
||||
body{
|
||||
color:magenta;
|
||||
margin:2em;
|
||||
}
|
||||
div#print,
|
||||
div#multifeeder,
|
||||
div#webcam{
|
||||
|
||||
|
||||
}
|
||||
div#multifeeder div.multipost{
|
||||
margin:1em 0;
|
||||
}
|
||||
div#webcam img{
|
||||
width:500px;
|
||||
}
|
43
print/templates/index.html
Normal file
43
print/templates/index.html
Normal file
@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>TeleVex (print)</title>
|
||||
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='stylesheet.css')}}">
|
||||
</head>
|
||||
<body>
|
||||
<div id="main">
|
||||
|
||||
<div id="print">
|
||||
<h1>Plain Text Printing Point (ASCII only)</h1>
|
||||
<form action="" method="GET">
|
||||
<textarea name="plaintext" cols="42" rows="30">{{ plaintext }}</textarea>
|
||||
<br>
|
||||
<br>
|
||||
<input class="submit" type="submit" value="print"/>
|
||||
</form>
|
||||
<br>
|
||||
<h1>Image printing access point</h1>
|
||||
<form action="" method="GET">
|
||||
<button>Select image</button>
|
||||
<input class="submit" type="submit" value="print image"/>
|
||||
</form>
|
||||
</div>
|
||||
<br>
|
||||
<div id="multifeeder">
|
||||
<h1 id="title">Multifeeder</h1>
|
||||
<div>Last 5 posts added to the Televex print stream:</div>
|
||||
<br>
|
||||
{% for post in multifeeder %}
|
||||
<div class="multipost">
|
||||
<strong>Title</strong>: {{ post.title }}<br>
|
||||
<strong>Link</strong>: {{ post.link }}<br>
|
||||
<strong>Author</strong>: {{ post.author }}<br>
|
||||
<strong>Date</strong>: {{ post.published }}<br>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -2,4 +2,4 @@ feedparser
|
||||
icalendar
|
||||
requests
|
||||
pypandoc
|
||||
pyhyphen
|
||||
python-escpos
|
||||
|
@ -1 +0,0 @@
|
||||
Subproject commit 24c3d8af3e94cf3ce439a945605600d16475f0c4
|
Loading…
Reference in New Issue
Block a user