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