Exemplo n.º 1
0
class PdsPlugin:
    def __init__(self, matrix=True, delay=0.2):
        self.matrix = matrix
        self.author = 'Infected'
        self.name = 'PDS Plugin'
        self.version = '0.1a'

        self.image = Image(64, 16)
        self.screen = Screen(matrix=matrix, show=True, fps=int(delay))
        self.screen.add(self.image, mode="invert")
        # self.monitor = Stream(matrix=self.matrix)
        # self.delay = float(delay)

    def get_info(self):
        """Get the current state and information of the plugin"""
        print(self.name, self.author, self.version, sep='\n')

    def get_delay(self):
        return self.delay

    def get_image(self):
        return self.image

    def set_pixmap(self, pixmap):
        self.image.set_pixmap(pixmap)

    def get_pixmap(self):
        return self.image.get_pixmap()

    def stream(self):

        self.screen.refresh()

    def blank(self):
        self.image.blank()
Exemplo n.º 2
0
class ExamplePlugin:
    def __init__(self):
        self.screen = Screen(matrix=False, show=True, fps=23)
        self.label = Text()
        self.drawing = Image(64, 16)
        self.drawer = Drawer(self.drawing)
        self.screen.add(self.drawing)
        self.screen.add(self.label)

    def stream(self):
        for i in range(1, 101):
            self.drawer.line(i, 0, 9, i)
            self.label.edit(str(i))
            self.screen.refresh()
            msg("Progression", 0, None, i)
Exemplo n.º 3
0
class ClockPlugin:
    def __init__(self):
        self.author = 'Infected'
        self.name = 'Clock Plugin'
        self.version = 'V3.23-4.2-DOS.26__release'
        self.time = datetime.now()
        self.timer = Text()
        self.canvas = Image(64, 16)
        self.time_frame = Image(64, 16)
        self.canvas_draw = Drawer(self.canvas)
        self.invert = Image(64, 16)
        self.invert.fill()

        self.screen = Screen(matrix=True, show=False, fps=15)
        self.screen.add(self.time_frame, refresh=True)
        self.screen.add(self.timer, refresh=True, x=3, y=3)
        self.screen.add(self.canvas, refresh=False)
        self.screen.add(self.invert, mode='invert', refresh=False)

        self.gen_canvas()

    def get_info(self):
        """Get the current state and information of the plugin"""
        print(color(self.name, "red"),
              color(self.author, "green"),
              color(self.version, "magenta"),
              sep='\n')

    def gen_canvas(self):
        self.canvas_draw.line(0, 0, 63, 0)
        self.canvas_draw.line(0, 0, 0, 15)
        self.canvas_draw.line(0, 15, 63, 15)
        self.canvas_draw.line(63, 0, 63, 15)

    def refresh(self):
        self.time = datetime.now()

    def print_time(self):
        self.timer.edit('{}:{}:{}'.format(
            str(self.time.hour).zfill(2),
            str(self.time.minute).zfill(2),
            str(self.time.second).zfill(2)),
            font='fontbignum')

    def stream(self):
        self.refresh()
        self.print_time()
        self.screen.refresh()
Exemplo n.º 4
0
class Hbd_plugin:
    def __init__(self):
        msg("input()", 2, "Hbd_plugin.__init__()")
        self.name_label = input(color("Enter label: ", "red")).lower()
        self.name_text = input(color("Enter name: ", "yellow")).lower()

        self.mask = Image(64,16)
        self.mask.fill()

        self.bg = Image(64, 16)
        self.drawer = Drawer(self.bg)
        self.drawer.dot(0, 0)
        self.drawer.dot(0, 15)
        self.drawer.dot(63, 0)
        self.drawer.dot(63, 15)

        self.label = Text(text="§" + self.name_label + "§")
        self.name = Text(text=self.name_text)

        self.screen = Screen(matrix=True, show=True, fps=1.7, tty='/dev/ttyACM1')

        self.screen.add(self.bg, refresh=False)

        xloc_label = (64 - abs(self.label.width)) // 2
        self.screen.add(self.label, x=xloc_label, y=1, refresh=False)

        xloc_text = (64 - abs(self.name.width)) // 2
        self.screen.add(self.name, x=xloc_text, y=8, refresh=False)

        self.screen.add(self.mask, refresh=False, mode="invert")

    def stream(self):
        try:
            blink = False
            while True:
                blink = not blink
                if blink:
                    self.mask.blank()
                else:
                    self.mask.fill()

                self.screen.refresh()
        except KeyboardInterrupt:
            print()
            msg(self.name_label, 0, "label")
            msg(self.name_text, 0, "name")
            exit()
Exemplo n.º 5
0
class Updater:
    """
    Class that simply serves to provide a live update to the matrix for the
    user drawing on the gui drawer
    """
    def __init__(self, interface):
        self.interface = interface
        self.screen = Screen(matrix=False, guishow=True, fps=50)
        self.screen.add(self.interface.image, refresh=False)

        self.live = False

    def one_refresh(self):
        self.screen.refresh()

    def toggle_live(self):
        while self.live:
            self.screen.refresh()
Exemplo n.º 6
0
class CrepeBot(ApplicationSession):
    def __init__(self, *args,**kwargs):
        super(CrepeBot, self).__init__(*args, **kwargs)
        self.screen = Screen(matrix=True, show=True)
        self.pbm = Image()
        self.bar = Image()
        self.splash = Text('init v1.0')
        self.percentage_text = Text('0')
        self.bar_x = 40
        self.bar_y = 7

        self.screen.add(self.pbm, 0, 0, False)
        self.screen.add(self.bar, self.bar_x, self.bar_y, True)
        self.screen.add(self.splash, 25, 0, True)
        self.screen.add(self.percentage_text, 40, 10, True)

    @coroutine
    def onJoin(self, details):
        def onRefresh(*queue):
            try:
                self.refresh(queue[0]['percent'], queue[0]['name'])
            except ValueError as e:
                print(e)
            except IndexError as e:
                print(e)
            print(queue)

        self.subscribe(onRefresh, 'queue')

    def refresh(self, percentage, name):
        self.splash.edit(str(name).lower)
        self.refresh_bar(percentage)
        self.percentage_text.edit(str(percentage) + '%')
        self.screen.refresh()

    def refresh_bar(self, percentage):
        self.bar.draw_line(x1=0, y1=0, x2=percentage // 5, y2=0)
        self.bar.draw_line(x1=0, y1=1, x2=percentage // 5, y2=1)
Exemplo n.º 7
0
class LoadPlugin:
    def __init__(self):
        self.screen = Screen(matrix=False, show=False, fps=35)

        self.label = Text("download")
        self.loading = Text(font="fontbignum")
        self.percent = Text("0%")
        self.load = [' l','/','-','\\']

        self.screen.add(self.label, refresh=False, x=0, y=0)
        self.screen.add(self.loading, refresh=True, x=29, y=8)
        self.screen.add(self.percent, refresh=False, x=0, y=6)

    def stream(self):
        msg("Starting download...", 2, "Download", "0%")
        for p in range(0,101):
            self.percent.blank()
            self.percent.edit(p, font="fontbignum")
            for i in self.load:
                self.loading.edit(i)
                self.screen.refresh()
            msg("Downloading...", 1, "Download", "{0}%".format(p))
        msg("Done", 0, "Download", "100%")
Exemplo n.º 8
0
from libs.streamtools import Stream
from libs.image import Image
from libs.drawer import Drawer
from libs.screen import Screen
from libs.text import Text
from libs.slide import Slide
from libs.rainbow import msg, color

if __name__ == '__main__':
    scr = Screen(matrix=True, show=False, fps=60, tty='/dev/ttyACM0')
    aa = Text("the slide frame works!")
    slide = Slide(aa)
    scr.add(slide)

    while True:
        slide.refresh()
        scr.refresh()
Exemplo n.º 9
0
#!/usr/bin/env python3
from libs.screen import Screen
from libs.image import Image
from libs.text import Text
from os import system

screen = Screen(matrix=True, show=True, fps=2555)
label_1 = Text()
label_2 = Text()
screen.add(label_1, y=1)
screen.add(label_2, y=9)

while True:
    try:
        label_1.edit(input('Text line 1: '))
        label_2.edit(input('Text line 2: '))
        screen.refresh()
    except KeyboardInterrupt:
        print('\nEND')
        exit()