bump requirements
fix some minor issues code cleanup
This commit is contained in:
@@ -151,7 +151,7 @@ def write(image, xy, box_size, text, font=None, **kwargs):
|
||||
box_width, box_height = box_size
|
||||
|
||||
# Increase fontsize to fit specified height and width of text box
|
||||
if (autofit == True) or (fill_width != 1.0) or (fill_height != 0.8):
|
||||
if autofit or (fill_width != 1.0) or (fill_height != 0.8):
|
||||
size = 8
|
||||
font = ImageFont.truetype(font.path, size)
|
||||
text_width, text_height = font.getsize(text)[0], font.getsize('hg')[1]
|
||||
@@ -169,7 +169,7 @@ def write(image, xy, box_size, text, font=None, **kwargs):
|
||||
while (text_width, text_height) > (box_width, box_height):
|
||||
text = text[0:-1]
|
||||
text_width, text_height = font.getsize(text)[0], font.getsize('hg')[1]
|
||||
logs.debug((text))
|
||||
logs.debug(text)
|
||||
|
||||
# Align text to desired position
|
||||
if alignment == "center" or None:
|
||||
@@ -192,7 +192,7 @@ def write(image, xy, box_size, text, font=None, **kwargs):
|
||||
# space = Image.new('RGBA', (box_width, box_height), color= 'red')
|
||||
# ImageDraw.Draw(space).text((x, y), text, fill='white', font=font)
|
||||
|
||||
if rotation != None:
|
||||
if rotation:
|
||||
space.rotate(rotation, expand=True)
|
||||
|
||||
# Update only region with text (add text with transparent background)
|
||||
|
@@ -34,53 +34,65 @@ import sys
|
||||
|
||||
from ctypes import *
|
||||
|
||||
EPD_SCK_PIN =11
|
||||
EPD_MOSI_PIN =10
|
||||
EPD_SCK_PIN = 11
|
||||
EPD_MOSI_PIN = 10
|
||||
|
||||
EPD_M1_CS_PIN =8
|
||||
EPD_S1_CS_PIN =7
|
||||
EPD_M2_CS_PIN =17
|
||||
EPD_S2_CS_PIN =18
|
||||
EPD_M1_CS_PIN = 8
|
||||
EPD_S1_CS_PIN = 7
|
||||
EPD_M2_CS_PIN = 17
|
||||
EPD_S2_CS_PIN = 18
|
||||
|
||||
EPD_M1S1_DC_PIN =13
|
||||
EPD_M2S2_DC_PIN =22
|
||||
EPD_M1S1_DC_PIN = 13
|
||||
EPD_M2S2_DC_PIN = 22
|
||||
|
||||
EPD_M1S1_RST_PIN =6
|
||||
EPD_M2S2_RST_PIN =23
|
||||
EPD_M1S1_RST_PIN = 6
|
||||
EPD_M2S2_RST_PIN = 23
|
||||
|
||||
EPD_M1_BUSY_PIN =5
|
||||
EPD_S1_BUSY_PIN =19
|
||||
EPD_M2_BUSY_PIN =27
|
||||
EPD_S2_BUSY_PIN =24
|
||||
EPD_M1_BUSY_PIN = 5
|
||||
EPD_S1_BUSY_PIN = 19
|
||||
EPD_M2_BUSY_PIN = 27
|
||||
EPD_S2_BUSY_PIN = 24
|
||||
|
||||
additional_driver_path = f"{os.path.dirname(os.path.realpath(__file__))}/epd_12_in_48_lib.so"
|
||||
find_dirs = [
|
||||
os.path.dirname(os.path.realpath(__file__)),
|
||||
'/usr/local/lib',
|
||||
'/usr/lib',
|
||||
]
|
||||
spi = None
|
||||
for find_dir in find_dirs:
|
||||
so_filename = os.path.join(find_dir, 'epd_12_in_48_lib.so')
|
||||
if os.path.exists(so_filename):
|
||||
spi = CDLL(so_filename)
|
||||
break
|
||||
if spi is None:
|
||||
RuntimeError('Cannot find epd_12_in_48_lib.so')
|
||||
|
||||
if not os.path.exists(additional_driver_path):
|
||||
RuntimeError("Inkycal cannot find the additional driver files for 12in48 3-colour")
|
||||
|
||||
spi = CDLL(additional_driver_path)
|
||||
|
||||
def digital_write(pin, value):
|
||||
GPIO.output(pin, value)
|
||||
|
||||
|
||||
def digital_read(pin):
|
||||
return GPIO.input(pin)
|
||||
|
||||
def spi_writebyte(value):
|
||||
|
||||
def spi_writebyte(value):
|
||||
spi.DEV_SPI_WriteByte(value)
|
||||
|
||||
|
||||
|
||||
def delay_ms(delaytime):
|
||||
time.sleep(delaytime / 1000.0)
|
||||
|
||||
|
||||
|
||||
def module_init():
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
GPIO.setwarnings(False)
|
||||
GPIO.setup(EPD_SCK_PIN, GPIO.OUT)
|
||||
GPIO.setup(EPD_SCK_PIN, GPIO.OUT)
|
||||
GPIO.setup(EPD_MOSI_PIN, GPIO.OUT)
|
||||
|
||||
|
||||
logging.debug("python call wiringPi Lib")
|
||||
|
||||
GPIO.setup(EPD_M2S2_RST_PIN, GPIO.OUT)
|
||||
|
||||
GPIO.setup(EPD_M2S2_RST_PIN, GPIO.OUT)
|
||||
GPIO.setup(EPD_M1S1_RST_PIN, GPIO.OUT)
|
||||
GPIO.setup(EPD_M2S2_DC_PIN, GPIO.OUT)
|
||||
GPIO.setup(EPD_M1S1_DC_PIN, GPIO.OUT)
|
||||
@@ -93,12 +105,12 @@ def module_init():
|
||||
GPIO.setup(EPD_S2_BUSY_PIN, GPIO.IN)
|
||||
GPIO.setup(EPD_M1_BUSY_PIN, GPIO.IN)
|
||||
GPIO.setup(EPD_M2_BUSY_PIN, GPIO.IN)
|
||||
|
||||
|
||||
digital_write(EPD_M1_CS_PIN, 1)
|
||||
digital_write(EPD_S1_CS_PIN, 1)
|
||||
digital_write(EPD_M2_CS_PIN, 1)
|
||||
digital_write(EPD_S2_CS_PIN, 1)
|
||||
|
||||
|
||||
digital_write(EPD_M2S2_RST_PIN, 0)
|
||||
digital_write(EPD_M1S1_RST_PIN, 0)
|
||||
digital_write(EPD_M2S2_DC_PIN, 1)
|
||||
@@ -106,6 +118,7 @@ def module_init():
|
||||
|
||||
spi.DEV_ModuleInit()
|
||||
|
||||
|
||||
def module_exit():
|
||||
digital_write(EPD_M2S2_RST_PIN, 0)
|
||||
digital_write(EPD_M1S1_RST_PIN, 0)
|
||||
@@ -116,25 +129,25 @@ def module_exit():
|
||||
digital_write(EPD_M1_CS_PIN, 1)
|
||||
digital_write(EPD_M2_CS_PIN, 1)
|
||||
|
||||
|
||||
def spi_readbyte(Reg):
|
||||
GPIO.setup(EPD_MOSI_PIN, GPIO.IN)
|
||||
j=0
|
||||
j = 0
|
||||
# time.sleep(0.01)
|
||||
for i in range(0, 8):
|
||||
GPIO.output(EPD_SCK_PIN, GPIO.LOW)
|
||||
GPIO.output(EPD_SCK_PIN, GPIO.LOW)
|
||||
# time.sleep(0.01)
|
||||
j = j << 1
|
||||
if(GPIO.input(EPD_MOSI_PIN) == GPIO.HIGH):
|
||||
j = j << 1
|
||||
if (GPIO.input(EPD_MOSI_PIN) == GPIO.HIGH):
|
||||
j |= 0x01
|
||||
else:
|
||||
j &= 0xfe
|
||||
# time.sleep(0.01)
|
||||
GPIO.output(EPD_SCK_PIN, GPIO.HIGH)
|
||||
j &= 0xfe
|
||||
# time.sleep(0.01)
|
||||
GPIO.output(EPD_SCK_PIN, GPIO.HIGH)
|
||||
# time.sleep(0.01)
|
||||
GPIO.setup(EPD_MOSI_PIN, GPIO.OUT)
|
||||
return j
|
||||
|
||||
return j
|
||||
|
||||
|
||||
def delay_ms(delaytime):
|
||||
time.sleep(delaytime / 1000.0)
|
||||
|
||||
|
||||
|
@@ -9,33 +9,17 @@ Copyright by aceisace
|
||||
import glob
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import traceback
|
||||
from logging.handlers import RotatingFileHandler
|
||||
|
||||
import arrow
|
||||
import numpy
|
||||
|
||||
from inkycal.custom import *
|
||||
from inkycal.display import Display
|
||||
from inkycal.modules.inky_image import Inkyimage as Images
|
||||
|
||||
try:
|
||||
from PIL import Image
|
||||
except ImportError:
|
||||
print('Pillow is not installed! Please install with:')
|
||||
print('pip3 install Pillow')
|
||||
|
||||
try:
|
||||
import numpy
|
||||
except ImportError:
|
||||
print('numpy is not installed!. \nIf you are on Windows '
|
||||
'run: pip3 install numpy \nIf you are on Raspberry Pi '
|
||||
'remove numpy: pip3 uninstall numpy \nThen try again.')
|
||||
|
||||
# (i): Logging shows logs above a threshold level.
|
||||
# e.g. logging.DEBUG will show all from DEBUG until CRITICAL
|
||||
# e.g. logging.ERROR will show from ERROR until CRITICAL
|
||||
# #DEBUG > #INFO > #ERROR > #WARNING > #CRITICAL
|
||||
from PIL import Image
|
||||
|
||||
# On the console, set a logger to show only important logs
|
||||
# (level ERROR or higher)
|
||||
@@ -51,6 +35,10 @@ if on_rtd:
|
||||
handlers=[stream_handler])
|
||||
|
||||
else:
|
||||
|
||||
if not os.path.exists(f'{top_level}/logs'):
|
||||
os.mkdir(f'{top_level}/logs')
|
||||
|
||||
# Save all logs to a file, which contains more detailed output
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
|
@@ -112,10 +112,9 @@ class Feeds(inkycal_module):
|
||||
parsed_feeds.append(f"•{posts.title}: {re.sub('<[^<]+?>', '', posts.summary)}")
|
||||
# if "description" in posts:
|
||||
|
||||
parsed_feeds = [i.split("\n") for i in parsed_feeds][0]
|
||||
parsed_feeds = [i for i in parsed_feeds if i]
|
||||
|
||||
self._parsed_feeds = parsed_feeds
|
||||
if parsed_feeds:
|
||||
parsed_feeds = [i.split("\n") for i in parsed_feeds][0]
|
||||
parsed_feeds = [i for i in parsed_feeds if i]
|
||||
|
||||
# Shuffle the list to prevent showing the same content
|
||||
if self.shuffle_feeds:
|
||||
@@ -134,7 +133,6 @@ class Feeds(inkycal_module):
|
||||
if counter < max_lines:
|
||||
filtered_feeds.append(wrapped)
|
||||
filtered_feeds = flatten(filtered_feeds)
|
||||
self._filtered_feeds = filtered_feeds
|
||||
|
||||
logger.debug(f'filtered feeds -> {filtered_feeds}')
|
||||
|
||||
|
@@ -16,7 +16,7 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class Todoist(inkycal_module):
|
||||
"""Todoist api class
|
||||
parses todo's from api-key
|
||||
parses todos from the todoist api.
|
||||
"""
|
||||
|
||||
name = "Todoist API - show your todos from todoist"
|
||||
|
Reference in New Issue
Block a user