فهرست منبع

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)