You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
Python
77 lines
1.8 KiB
Python
import glob
|
|
import math
|
|
import mimetypes
|
|
import os
|
|
import subprocess
|
|
import urllib
|
|
import yaml
|
|
from random import choice
|
|
|
|
from PIL import Image
|
|
|
|
from bureau import Bureau, add_command, add_api
|
|
|
|
|
|
class Soup(Bureau):
|
|
"""
|
|
This bureau cooks few texts with xpub's python function recipes .
|
|
"""
|
|
|
|
name = "Canteen of the Screenless Office"
|
|
prefix = "SB"
|
|
version = 0
|
|
|
|
def __init__(self):
|
|
Bureau.__init__(self)
|
|
|
|
@add_command("1sentence", "1 Sentence Game Ideas")
|
|
def print_game(self):
|
|
"""
|
|
Prints one entry from the one sentence game ideas.
|
|
"""
|
|
|
|
onesentencegames = os.path.join(self.mdir, 'onesentenceg.yml')
|
|
with open(onesentencegames, 'r') as f:
|
|
games = yaml.load(f)
|
|
game = choice(games['games'])
|
|
|
|
self.print_small(game)
|
|
|
|
@add_command("ptrn", 'Set Pattern')
|
|
def print_pattern(self, data):
|
|
"""
|
|
Prints a pattern composed with A and B characters.
|
|
"""
|
|
|
|
pattern, _ = data.split(".")
|
|
self.print_small(pattern)
|
|
|
|
@add_command('list', 'Return a list of contents')
|
|
def list_contents(self):
|
|
files = glob.glob(os.path.join(self.mdir, 'contents', '*.txt'))
|
|
|
|
prn = self._get_small_printer()
|
|
|
|
for file in files:
|
|
filename, ext = os.path.basename(file).split('.')
|
|
self.print_small(filename)
|
|
prn.soft_barcode("code128", "SBtp." + filename)
|
|
|
|
@add_command('tp', 'Print a short excerpt of a text')
|
|
def print_preview(self, data):
|
|
filename, _ = data.split(".")
|
|
|
|
with open(os.path.join(self.mdir, 'contents', filename + '.txt'), 'r') as f:
|
|
text = f.read()
|
|
|
|
self.print_small(filename + '\n' + text[:200] + '...')
|
|
|
|
|
|
def main():
|
|
sb = Soup()
|
|
sb.run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|