Пример #1
0
    def _draw_listener(self, draw):
        font_bb = get_font("ter-124b.pcf", 24)
        font_s = get_font("ter-112b.pcf", 12)
        font_ss = get_font("tom-thumb.bdf", 6)

        listener = self.listener
        if listener:
                if listener['total_count'] > 0:
                    total_count = "%d" % listener['total_count']
                    total_count_size = font_bb.getsize(total_count)
                    draw.text((2, -3), total_count, 1, font_bb)

                    offset = total_count_size[0] + 12

                    per_stream = listener['per_stream']

                    mp3 = "mp3: %2d" % (per_stream['mp3']['count'] if 'mp3' in per_stream else 0)
                    draw.text((offset, 1), mp3, 1, font=font_ss)

                    ogg = "ogg: %2d" % (per_stream['ogg']['count'] if 'ogg' in per_stream else 0)
                    draw.text((offset, 10), ogg, 1, font=font_ss)

                    row_size = font_ss.getsize(mp3)
                    offset += (row_size[0] + 8)

                    opus = "opus: %2d" % (per_stream['opus']['count'] if 'opus' in per_stream else 0)
                    draw.text((offset, 1), opus, 1, font=font_ss)

                    oggh = "oggh: %2d" % (per_stream['ogghq']['count'] if 'ogghq' in per_stream else 0)
                    draw.text((offset, 10), oggh, 1, font=font_ss)

                else:
                    draw.text((1, -6), ";__;", 1, font=font_bb)
                    draw.text((60, -3), "NONE", 1, font=font_bb)
Пример #2
0
 def _draw_date(self, draw):
     font_bb = get_font("ter-124b.pcf", 24)
     font_s = get_font("ter-112b.pcf", 12)
     font_ss = get_font("ter-112n.pcf", 12)
     month = datetime.today().strftime('%d')
     msize = font_bb.getsize(month)
     wd = datetime.today().strftime('%b')
     m = datetime.today().strftime('%Y')
     draw.text((0, -3), month, 1, font=font_bb)
     draw.text((msize[0] + 2, -2), wd, 1, font=font_ss)
     draw.text((msize[0] + 2, 6), m, 1, font=font_s)
Пример #3
0
 def _draw_value(self, draw, width):
     font = get_font("tom-thumb.bdf", 6)
     text = "{value}{unit}".format(value=self._current_value,
                                   unit=self._unit)
     textsize = font.getsize(text)
     draw.text((width-textsize[0]+1, 0), text, 1, font=font)
     return textsize[0]
Пример #4
0
    def get_view(self, width, height):
        font_bb = get_font("ter-124b.pcf", 24)
        font_s = get_font("ter-112b.pcf", 12)
        font_ss = get_font("ter-112n.pcf", 12)

        image = Image.new('1', (width, height), (0))
        draw = ImageDraw.Draw(image)

        if time.time() - self._last_fetch > self.api_interval:
            if self._get_data():
                self._last_fetch = time.time()
            else:
                draw.text((1, -3), "API ERROR", 1, font=font_bb)
                return list(image.getdata())

        self._draw_listener(draw)
        return list(image.getdata())
Пример #5
0
 def _draw_clock(self, draw, width):
     font = get_font("ter-124b.pcf", 24)
     if datetime.today().second % 2 == 0:
         self.dot = False
         text = datetime.today().strftime('%H:%M')
     else:
         self.dot = True
         text = datetime.today().strftime('%H %M')
     
     tsize = font.getsize(text)
     draw.text(((width - tsize[0]) // 2 + 25, -3), text, (1), font=font)
Пример #6
0
    def get_view(self, width, height):
        image = Image.new('1', (width, height), 0)
        draw = ImageDraw.Draw(image)
        status = self._get_status()
        if status['status'] != 'stopped':
            draw.line(((0, 14), ((status['position'] / 100) * width, 14)), 1, 2)
            font_ss = get_font("ter-112n.pcf", 12)
            tsize = font_ss.getsize(status['title'])

            draw.text((-self.offset, 0), status['title'], 1, font=font_ss)
            if time.time() - self._last_offset > self._scrolltime:
                if tsize[0] - self.offset > width:
                    self.offset += 50
                elif tsize[0] - self.offset <= width:
                    self.offset = 0
                self._last_offset = time.time()
        return list(image.getdata())
Пример #7
0
 def _draw_title(self, draw):
     font = get_font("tom-thumb.bdf", 6)
     draw.text((0, 0), self._label or self._data.get('id', '<unknown>'), 1, font=font)