浏览代码

implement url shortener

Tobias Simetsreiter 4 年之前
父节点
当前提交
60391813ea
共有 2 个文件被更改,包括 19 次插入2 次删除
  1. 5 1
      simpilib/cli.py
  2. 14 1
      simpilib/eink.py

+ 5 - 1
simpilib/cli.py

@@ -13,7 +13,7 @@ def main():
 def parser():
     from argparse import ArgumentParser
     from simpilib.install import install
-    from simpilib.eink import eink_quote, eink_text, eink_quote_qr, eink_qr
+    from simpilib.eink import eink_quote, eink_text, eink_quote_qr, eink_qr, eink_qr_shorturl
     p = ArgumentParser()
     sub = p.add_subparsers()
 
@@ -31,6 +31,10 @@ def parser():
     install_parser.set_defaults(func=eink_qr)
     install_parser.add_argument("text")
 
+    install_parser = sub.add_parser("eink_qr_shorturl")
+    install_parser.set_defaults(func=eink_qr_shorturl)
+    install_parser.add_argument("text")
+
     install_parser = sub.add_parser("install")
     install_parser.set_defaults(func=install)
     return p

+ 14 - 1
simpilib/eink.py

@@ -18,6 +18,19 @@ def eink_qr(args):
     epd.sleep()
     epd.Dev_exit()
 
+def eink_qr_shorturl(args):
+    import requests
+    from urllib.parse import urlencode
+    try:
+        params = urlencode({
+            "url": args.text,
+        })
+        r = requests.get('https://tinyurl.com/api-create.php?'+str(params))
+        args.text = r.text
+    except Exception as ex:
+        args.text = str(ex)[:100]
+    eink_qr(args)
+
 def eink_quote_qr(args):
     pass
 
@@ -41,7 +54,7 @@ def eink_text(args):
     image = Image.new('1', (epd.height, epd.width), 0)
     draw = ImageDraw.Draw(image)
 
-    text, longline = simpilib.wrapText(args.text, line_width_factor=5)
+    text, longline = simpilib.wrapText(args.text, line_width_factor=7)
     font = simpilib.loadFontSize(text, draw, image, fontpath)
 
     w, h = draw.textsize(text, font=font)