pico-epaper/storage.py

48 lines
1.5 KiB
Python
Raw Permalink Normal View History

2023-04-22 17:14:21 +00:00
import machine
import sdcard
import uos
import random
class Storage:
def __init__(self):
self.cs = machine.Pin(17, machine.Pin.OUT)
self.spi = machine.SPI(0,
baudrate=1000000,
polarity=0,
phase=0,
bits=8,
firstbit=machine.SPI.MSB,
sck=machine.Pin(18),
mosi=machine.Pin(19),
miso=machine.Pin(16))
self.sd = None
self.vfs = None
self.sd_path = "/sd"
def mount(self):
self.sd = sdcard.SDCard(self.spi, self.cs)
self.vfs = uos.VfsFat(self.sd)
uos.mount(self.vfs, self.sd_path)
def umount(self):
uos.umount(self.sd_path)
def get_root_path(self):
return self.sd_path
def load_joke(root):
filename = root + "/jokes.json"
num_lines = sum(1 for line in open(filename))
with open(filename, mode="r") as f:
joke = None
start_pattern = "\"joke\": \""
end_pattern = "\""
for i in range(random.randrange(num_lines)):
line = f.readline()
for i in range(10):
line = f.readline()
joke_start = line.find(start_pattern)
joke_end = line.rfind(end_pattern)
if joke_start >= 0 and joke_end >= 0:
joke = line[joke_start+len(start_pattern):joke_end]
return joke
return None