reformatted files to be pep8 compliant
updated .gitignore
This commit is contained in:
parent
666a377e32
commit
ef148dbbb6
4 changed files with 285 additions and 270 deletions
105
recharge.py
105
recharge.py
|
@ -1,7 +1,7 @@
|
|||
"""
|
||||
Script for the flipdot recharge party animation
|
||||
"""
|
||||
# requires: python-fluepdot, python_dotenv
|
||||
# requires: python-fluepdot, python_dotenv, pillow
|
||||
import os
|
||||
from time import sleep
|
||||
from dotenv import load_dotenv
|
||||
|
@ -26,62 +26,65 @@ logo = """
|
|||
|
||||
"""
|
||||
|
||||
# convert text to framebuffer format
|
||||
def textToFramebuffer(text: str, x:int=0, y:int=0, fontname:str="DejaVuSans.ttf", size:int=14) -> str:
|
||||
from PIL import Image, ImageFont, ImageDraw
|
||||
font = ImageFont.truetype(fontname, size)
|
||||
tw, th = font.getsize(text)
|
||||
while th >= 16:
|
||||
print(th)
|
||||
size -= 1
|
||||
font = ImageFont.truetype(fontname, size)
|
||||
tw, th = font.getsize(text)
|
||||
img = Image.new("1", (tw, 16), 0)
|
||||
draw = ImageDraw.Draw(img)
|
||||
draw.text((0, 0), text=text, font=font, fill=1)
|
||||
|
||||
framebuffer: str = ""
|
||||
for y in range(img.height):
|
||||
for x in range(img.width):
|
||||
framebuffer += "X" if img.getpixel((x, y)) == 1 else " "
|
||||
framebuffer += "\n"
|
||||
return framebuffer
|
||||
# convert text to framebuffer format
|
||||
def textToFramebuffer(text: str, x: int = 0, y: int = 0, fontname: str = "DejaVuSans.ttf", size: int = 14) -> str:
|
||||
from PIL import Image, ImageFont, ImageDraw
|
||||
font = ImageFont.truetype(fontname, size)
|
||||
_, _, tw, th = font.getbbox(text)
|
||||
while th >= 16:
|
||||
print(th)
|
||||
size -= 1
|
||||
font = ImageFont.truetype(fontname, size)
|
||||
_, _, tw, th = font.getbbox(text)
|
||||
img = Image.new("1", (tw, 16), 0)
|
||||
draw = ImageDraw.Draw(img)
|
||||
draw.text((0, 0), text=text, font=font, fill=1)
|
||||
|
||||
framebuffer: str = ""
|
||||
for y in range(img.height):
|
||||
for x in range(img.width):
|
||||
framebuffer += "X" if img.getpixel((x, y)) == 1 else " "
|
||||
framebuffer += "\n"
|
||||
return framebuffer
|
||||
|
||||
|
||||
def scrl_frm(frame, loop: bool or int = False) -> None:
|
||||
def _extend_frame(line: str) -> str:
|
||||
return line+(" "*loop)+line[0:115]
|
||||
def _pad_frame(line: str) -> str:
|
||||
pad = " "*115
|
||||
return pad+line+pad
|
||||
def _extend_frame(line: str) -> str:
|
||||
return line + (" " * loop) + line[0:115]
|
||||
|
||||
frame = frame.split("\n")
|
||||
length = len(frame[0])+loop if type(loop) == int else len(frame[0])+115
|
||||
def _pad_frame(line: str) -> str:
|
||||
pad = " " * 115
|
||||
return pad + line + pad
|
||||
|
||||
if type(loop) == int:
|
||||
frame = list(map(_extend_frame, frame))
|
||||
else:
|
||||
frame = list(map(_pad_frame, frame))
|
||||
frame = frame.split("\n")
|
||||
length = len(frame[0]) + loop if type(loop) == int else len(frame[0]) + 115
|
||||
|
||||
_run_once=True
|
||||
while loop or type(loop)==int or _run_once:
|
||||
_run_once=False
|
||||
for i in range(0, length, 2):
|
||||
print(".\n".join(l[i:i+115] for l in frame))
|
||||
sleep(.1)
|
||||
if type(loop) == int:
|
||||
frame = list(map(_extend_frame, frame))
|
||||
else:
|
||||
frame = list(map(_pad_frame, frame))
|
||||
|
||||
if __name__=="__main__":
|
||||
load_dotenv()
|
||||
hostname = os.getenv("DOTS_HOST")
|
||||
frame = textToFramebuffer("recharge! flipdot e.V.", fontname="DejaVuSans.ttf")
|
||||
fd = Fluepdot(f"http://{hostname}")
|
||||
fd.set_mode(Mode.DIFFERENTIAL)
|
||||
_run_once = True
|
||||
while loop or type(loop) == int or _run_once:
|
||||
_run_once = False
|
||||
for i in range(0, length, 2):
|
||||
print(".\n".join(l[i:i + 115] for l in frame))
|
||||
sleep(.1)
|
||||
|
||||
logoarr = logo.split("\n")
|
||||
nframe = ""
|
||||
for y in range(len(logoarr)):
|
||||
nframe += logoarr[y] + frame.split("\n")[y]+ "\n"
|
||||
nframe = nframe[:-1]
|
||||
print(nframe)
|
||||
fd.post_scroll_frame_raw(nframe, loop=2)
|
||||
#scrl_frm(nframe, loop=2)
|
||||
|
||||
if __name__ == "__main__":
|
||||
load_dotenv()
|
||||
hostname = os.getenv("DOTS_HOST")
|
||||
frame = textToFramebuffer("recharge! flipdot e.V.", fontname="DejaVuSans.ttf")
|
||||
fd = Fluepdot(f"http://{hostname}")
|
||||
fd.set_mode(Mode.DIFFERENTIAL)
|
||||
|
||||
logoarr = logo.split("\n")
|
||||
nframe = ""
|
||||
for y in range(len(logoarr)):
|
||||
nframe += logoarr[y] + frame.split("\n")[y] + "\n"
|
||||
nframe = nframe[:-1]
|
||||
print(nframe)
|
||||
fd.post_scroll_frame_raw(nframe, loop=2)
|
||||
#scrl_frm(nframe, loop=2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue