From cec8d97aeb47002697c07ea9ad6d8b0bd5a9b6bf Mon Sep 17 00:00:00 2001 From: "Brendan M. Sleight" Date: Fri, 5 Mar 2021 19:43:06 +0000 Subject: apps: WordClock: Add a new word-based clock app Signed-off-by: Brendan M. Sleight [daniel@redfelineninja.org.uk: Squashed down into a single commit and updated subject] Signed-off-by: Daniel Thompson 32): + hour = hours_a[(self._hour + 1) % 24] + else: + hour = hours_a[self._hour % 24] + if (hour != "midnight" and hour != "twelve"): + if (self._hour >= 22): + part_day = " at night" + elif (self._hour >= 18): + part_day = " in the evening" + elif (self._hour >= 12): + part_day = " in the afternoon" + elif (self._hour >= 6): + part_day = " in the morning" + elif (self._hour >= 3): + part_day = " in the early hours" + elif (self._hour >= 0): + part_day = " at night" + + if (self._min > 57): + part_hour = "" + elif (self._min > 52): + part_hour = "five to " + elif (self._min > 47): + part_hour = "ten to " + elif (self._min > 42): + part_hour = "quarter to " + elif (self._min > 37): + part_hour = "twenty to " + elif (self._min > 32): + part_hour = "twenty-five to " + elif (self._min > 27): + part_hour = "half past " + elif (self._min > 22): + part_hour = "twenty-five past " + elif (self._min > 17): + part_hour = "twenty past " + elif (self._min > 12): + part_hour = "quarter past " + elif (self._min > 7): + part_hour = "ten past " + elif (self._min > 2): + part_hour = "five past " + else: + part_hour = "" + + minute_words_int = (self._min % 5) + if (minute_words_int == 4): + minute_words = "almost" + if (minute_words_int == 3): + minute_words = "coming up to" + if (minute_words_int == 2): + minute_words = "after" + if (minute_words_int == 1): + minute_words = "just gone" + + self._words = "" + if (minute_words !=""): + self._words = minute_words + "\n" + if (part_hour !=""): + self._words = self._words + part_hour + "\n" + self._words = self._words + hour + "\n" + if (part_day !=""): + self._words = self._words + part_day + + # No capitilise in Micropython + # ASCII convert + self._words = chr(ord(self._words[0])-32) + self._words[1:] + + # Some phases may be 5 lines long, some may be 1 + draw.fill(0, 0, 48) + + chunks = draw.wrap(self._words, 240) + lines_of_text = len(chunks)-1 + offset_y=int(((5-lines_of_text/2)*26)) + + for i in range(len(chunks)-1): + sub = self._words[chunks[i]:chunks[i+1]].rstrip() + draw.string(sub, 0, offset_y+26*i, 240) + + draw.string('{} {} {}'.format(now[2], month, now[0]), + 0, 214, width=240) -- cgit v0.10.2