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

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()