タイムラインの画像をダウンロード後印刷
忙しいのでソースはあまり整形してません。
media_urlがあるデータから画像を1つダウンロードして印刷し終了(動画の場合は不明)
from escposjp import Network
from PIL import Image,ImageDraw
import tweepy
import settings # キー情報やユーザID等
import os
import urllib.request, urllib.error
import tempfile
p = Network("192.168.10.21")
p.hw("INIT")
p.JpInit()
auth = tweepy.OAuthHandler(settings.consumer_key,settings.consumer_secret)
auth.set_access_token(settings.access_token,settings.access_token_secret)
api = tweepy.API(auth)
# ユーザータイムライン取得
user_tweets = api.user_timeline(user_id=settings.user_id)
print_count = 0
for tweet in user_tweets:
# full_text取得のため個別で更に取得
status = api.get_status(tweet.id,tweet_mode="extended",include_ext_alt_text=True,include_card_uri=True)
if hasattr(status, "extended_entities"):
print_count += 1
p.JpText(status.full_text + "\n")
for m in status.extended_entities['media']:
url = m['media_url']
url_orig = '%s:orig' % url
response = urllib.request.urlopen(url=url_orig)
tmpdir = tempfile.TemporaryDirectory()
file = os.path.join(tmpdir.name,os.path.basename(url))
with open(file,"wb") as f:
f.write(response.read())
# iamge
img = Image.open(file)
h = round(img.height * 512 / img.width)
resize_imge = img.resize((512, h))
mask = Image.new("L", resize_imge.size, 0)
draw = ImageDraw.Draw(mask)
draw.rounded_rectangle((0,0, resize_imge.width,resize_imge.height), fill=255, radius=20)
resize_imge.putalpha(mask)
p.image(resize_imge,impl="graphics")
tmpdir.cleanup()
p.JpText("─────────────────────\n")
if print_count >= 1:
break
p.cut()
サーマルプリンタ古いけど幅512ドットまでいける