Sfoglia il codice sorgente

setup proper subcommands

Tobias Simetsreiter 4 anni fa
parent
commit
8d1349dc06
2 ha cambiato i file con 34 aggiunte e 22 eliminazioni
  1. 17 7
      simpilib/cli.py
  2. 17 15
      simpilib/eink.py

+ 17 - 7
simpilib/cli.py

@@ -1,26 +1,36 @@
 #!/usr/bin/env python3
 #
 
+
 def main():
     p = parser()
     args = p.parse_args()
     if "func" in args:
         return args.func(args)
 
-    from simpilib.eink import update_quote
-    return update_quote(args)
+    p.print_help()
 
 def parser():
     from argparse import ArgumentParser
     from simpilib.install import install
-    from simpilib.eink import update_quote, update_qr
+    from simpilib.eink import eink_quote, eink_text, eink_quote_qr, eink_qr
     p = ArgumentParser()
     sub = p.add_subparsers()
-    install_parser = sub.add_parser("update_quote")
-    install_parser.set_defaults(func=update_quote)
-    install_parser = sub.add_parser("qr")
-    install_parser.set_defaults(func=update_qr)
+
+    install_parser = sub.add_parser("eink_quote")
+    install_parser.set_defaults(func=eink_quote)
+
+    install_parser = sub.add_parser("eink_text")
+    install_parser.set_defaults(func=eink_text)
     install_parser.add_argument("text")
+
+    install_parser = sub.add_parser("eink_quote_qr")
+    install_parser.set_defaults(func=eink_quote_qr)
+
+    install_parser = sub.add_parser("eink_qr")
+    install_parser.set_defaults(func=eink_qr)
+    install_parser.add_argument("text")
+
     install_parser = sub.add_parser("install")
     install_parser.set_defaults(func=install)
     return p

+ 17 - 15
simpilib/eink.py

@@ -2,7 +2,7 @@
 import os as _os
 fontpath = _os.path.realpath(_os.path.join(__file__,"..","..","wavesharelib","pic", 'Font.ttc'))
 
-def update_qr(args):
+def eink_qr(args):
     from waveshare_epd import epd2in13_V2
     from PIL import Image,ImageDraw
     import qrcode
@@ -18,38 +18,40 @@ def update_qr(args):
     epd.sleep()
     epd.Dev_exit()
 
-def update_quote(args):
-    import logging
-    from waveshare_epd import epd2in13_V2
-    from PIL import Image,ImageDraw
-    import simpilib
+def eink_quote_qr(args):
+    pass
 
+def eink_quote(args):
+    import simpilib
     quote = simpilib.getQuote()
     if not quote:
         return
-    pic = simpilib.convert_qr(quote)
-    text = quote["content"]
+    args.text = quote["content"] + ' - ' + quote["author"]
+    eink_text(args)
+
+def eink_text(args):
+    from waveshare_epd import epd2in13_V2
+    from PIL import Image,ImageDraw
+    import simpilib
 
     epd = epd2in13_V2.EPD()
-    logging.info("init and Clear")
+    print("init and Clear")
     epd.init(epd.FULL_UPDATE)
     # epd.Clear(0xFF)
     image = Image.new('1', (epd.height, epd.width), 0)
-    image.paste(pic, (int(epd.height-pic.width),0), pic)
     draw = ImageDraw.Draw(image)
 
-    text, longline = simpilib.wrapText(text, line_width_factor=3)
+    text, longline = simpilib.wrapText(args.text, line_width_factor=5)
     font = simpilib.loadFontSize(text, draw, image, fontpath)
 
     w, h = draw.textsize(text, font=font)
 
     # epd parameters are rotated 90°
     center = [
-        int((epd.height - pic.width - w)/2),
-        int((epd.width-h)/2),
+        int((epd.height - w)/2),
+        int((epd.width-h)/2) - 3,
     ]
-    # leave some space for low characters
-    center[1] = center[1] - 3
+    # -3 px to leave some space for low characters
 
     print("Drawing:", (w, h), (epd.height, epd.width), center)
     draw.text(center, text, align="center", font = font, fill = 255)