Exemplo n.º 1
0
 def generate_content(self):
     import json
     from operator import itemgetter
     data = f_read_json('awards')
     self.add_title(self.title)
     for a in self.awards:
         award_show(self,a,data,self.icon)
Exemplo n.º 2
0
def add_award(name, award):
    data = f_read_json('awards')
    if award not in data:
        data[award] = {}
    if name in data[award]:
        data[award][name] += 1
    else:
        data[award][name] = 1
    with open(join(expanduser('~'), '.klb/awards'), 'w+') as f:
        json.dump(data, f)
Exemplo n.º 3
0
    def generate_content(self):
        import json
        from operator import itemgetter
        data = f_read_json('flat_points')
        larg = 0
        seco = 0
        for house in data:
            pts = int(data[house])
            if pts > larg:
                seco = larg
                larg = pts
            elif pts > seco:
                seco = pts
        log = len(str(seco)) - 3

        points_names = ["points", "decapoints", "hectopoints", "kilopoints"]

        if log >= len(points_names):
            log = len(points_names) - 1
        if log < 0:
            log = 0

        if "mike" in data: mike = points_format(data["mike"], log)
        else: mike = "0"
        if "scroggs" in data: scroggs = points_format(data["scroggs"], log)
        else: scroggs = "0"
        if "adam" in data: adam = points_format(data["adam"], log)
        else: adam = "0"
        if "alan" in data: alan = points_format(data["alan"], log)
        else: alan = "0"

        self.add_title("Flat " + points_names[log])

        self.move_cursor(x=0, y=7)
        self.add_title(mike, bg="LIGHTGREEN", fg="BLACK")
        self.move_cursor(x=2, y=13)
        self.add_text("Mike", fg="LIGHTGREEN")

        self.move_cursor(x=40, y=7)
        self.add_title(scroggs, bg="LIGHTBLUE", fg="BLACK", pre=40)
        self.move_cursor(x=42, y=13)
        self.add_text("Scroggs", fg="LIGHTBLUE")

        self.move_cursor(x=0, y=15)
        self.add_title(adam, bg="YELLOW", fg="BLACK")
        self.move_cursor(x=2, y=21)
        self.add_text("Adam", fg="YELLOW")

        self.move_cursor(x=40, y=15)
        self.add_title(alan, bg="PINK", fg="BLACK", pre=40)
        self.move_cursor(x=42, y=21)
        self.add_text("Alan", fg="PINK")
Exemplo n.º 4
0
    def generate_content(self):
        import json
        from operator import itemgetter
        data = f_read_json('flat_points')
        larg = 0
        seco = 0
        for house in data:
            pts = int(data[house])
            if pts>larg:
                seco = larg
                larg = pts
            elif pts>seco:
                seco = pts
        log = len(str(seco))-3
        
        points_names = ["points","decapoints","hectopoints","kilopoints"]

        if log>=len(points_names):
            log = len(points_names)-1
        if log<0:
            log = 0

        if "mike" in data:    mike = points_format(data["mike"],log)
        else:                 mike = "0"
        if "scroggs" in data: scroggs = points_format(data["scroggs"],log)
        else:                 scroggs = "0"
        if "adam" in data:    adam = points_format(data["adam"],log)
        else:                 adam = "0"
        if "alan" in data:    alan = points_format(data["alan"],log)
        else:                 alan = "0"

        content = self.colours.colour_print(printer.text_to_ascii("Flat "+points_names[log]))
        content += "\n\n"
        content += self.colours.colour_print_join([
                        (printer.text_to_ascii(mike,False)+"\n  Mike",
                            self.colours.Background.GREEN+self.colours.Style.BLINK,
                            self.colours.Foreground.BLACK),
                        (printer.text_to_ascii(scroggs,False)+"\n Scroggs",
                            self.colours.Background.BLUE+self.colours.Style.BLINK,
                            self.colours.Foreground.BLACK)
                    ],"   ","   ")
        content += "\n\n"
        content += self.colours.colour_print_join([
                        (printer.text_to_ascii(adam,False)+"\n  Adam",
                            self.colours.Background.YELLOW+self.colours.Style.BLINK,
                            self.colours.Foreground.BLACK),
                        (printer.text_to_ascii(alan,False)+"\n  Alan",
                            self.colours.Background.MAGENTA,
                            self.colours.Foreground.BLACK)
                    ],"   ","   ")
        self.content = content
Exemplo n.º 5
0
 def generate_content(self):
     self.add_title("OXMAS " + self._name, fg="GREEN", bg="BLACK")
     ls = [p for p in f_read_json("db.json") if self.test(p)]
     self.add_newline()
     self.start_fg_color("GREEN")
     self.add_text(str(len(ls)))
     self.end_fg_color()
     self.add_text(" people are " + self.verb)
     self.add_newline()
     i = 0
     for person in ls:
         self.add_text(person["name"][1] + " (" + person["name"][0] + ")")
         if i % 2 == 0:
             self.move_cursor(x=35)
         else:
             self.add_newline()
         i += 1
Exemplo n.º 6
0
 def generate_content(self):
     import json
     from operator import itemgetter
     data = f_read_json('awards')
     self.add_title("The most awards")
     for a,b in data.items():
         m = 0
         mp = ""
         for person,n in b.items():
             if n > m:
                 m = n
                 mp = person
             elif n==m:
                 mp += " & " + person
         self.add_newline()
         self.add_text(a,fg="GREEN")
         self.add_text(" (see page "+str(get_page(a))+") ")
         self.add_text(mp,fg="RED")
Exemplo n.º 7
0
    def background(self):
        birthdays = f_read_json("birthdays.json")
        more_birthdays = {
            "Kathleen Lonsdale": (1, 28),
            "Martin Gardner": (10, 21),
            "Jesus": (12, 25),
            "Jigsaw": (1, 3),
            "The Queen": (4, 21),
            "Chalkdust": (1, 27),
            "ScroggsBot": (1, 10)
        }

        for birth in more_birthdays:
            birthdays[birth] = more_birthdays[birth]

        self.c_b = {}
        self.months = {
            1: "January",
            2: "February",
            3: "March",
            4: "April",
            5: "May",
            6: "June",
            7: "July",
            8: "August",
            9: "September",
            10: "October",
            11: "November",
            12: "December"
        }

        for i in range(1, 13):
            self.c_b[i] = {}

        for person in birthdays:
            bp = birthdays[person]
            if bp is not None:
                if bp[1] not in self.c_b[bp[0]]:
                    self.c_b[bp[0]][bp[1]] = person
                else:
                    self.c_b[bp[0]][bp[1]] += " & " + person
Exemplo n.º 8
0
    def generate_content(self):
        import json
        from operator import itemgetter
        data = f_read_json('points')
        larg = 0
        seco = 0
        for house in data:
            pts = int(data[house])
            if pts>larg:
                seco = larg
                larg = pts
            elif pts>seco:
                seco = pts
        log = len(str(seco))-3
        
        points_names = ["points","decapoints","hectopoints","kilopoints"]

        if log>=len(points_names):
            log = len(points_names)-1
        if log<0:
            log = 0

        if "Gryffindor" in data: g = points_format(data["Gryffindor"],log)
        else:                    g = "0"
        if "Hufflepuff" in data: h = points_format(data["Hufflepuff"],log)
        else:                    h = "0"
        if "Slytherin" in data:  s = points_format(data["Slytherin"],log)
        else:                    s = "0"
        if "Squib" in data:     sq = points_format(data["Squib"],log)
        else:                   sq = "0"
        if "Ravenclaw" in data:  r = points_format(data["Ravenclaw"],log)
        else:                    r = "0"
        if "Durmstrang" in data: d = points_format(data["Durmstrang"],log)
        else:                    d = "0"

        content = self.colours.colour_print(printer.text_to_ascii(points_names[log]))
        content += "\nWhat do points mean?\n"

        content += self.colours.colour_print_join([
                        (printer.text_to_ascii(g,False)+"\nGryffindor",
                            self.colours.Background.RED,
                            self.colours.Foreground.YELLOW+self.colours.Style.BOLD),
                        (printer.text_to_ascii(s,False)+"\nSlytherin",
                            self.colours.Style.BLINK,
                            self.colours.Foreground.GREEN),
                        (printer.text_to_ascii(sq,False)+"\nSquib",
                            self.colours.Background.BLUE,
                            self.colours.Foreground.MAGENTA)
                    ]," "," ")
        content += "\n"
        content += self.colours.colour_print_join([
                        (printer.text_to_ascii(r,False)+"\nRavenclaw",
                            self.colours.Background.BLUE,
                            self.colours.Foreground.WHITE+self.colours.Style.BOLD),
                        (printer.text_to_ascii(h,False)+"\nHufflepuff",
                            self.colours.Style.BLINK,
                            self.colours.Foreground.YELLOW+self.colours.Style.BOLD),
                        (printer.text_to_ascii(d,False)+"\nDurmstrang",
                            self.colours.Background.GREEN,
                            self.colours.Foreground.RED)
                    ]," "," ")
        content += "\n"
        sorted_pts = sorted(data.items(),key=itemgetter(1),reverse=True)

        content += "Full List\n"
        i=0
        for house,points in sorted_pts:
            i+=1
            content += self.colours.Foreground.YELLOW + house + self.colours.Foreground.DEFAULT
            content += " "
            content += self.colours.Foreground.GREEN + str(points) + self.colours.Foreground.DEFAULT
            if i%5==0:  content += "\n"
            else:       content += "  "

        self.content = content
Exemplo n.º 9
0
    def generate_content(self):
        import json
        from operator import itemgetter
        data = f_read_json('points')
        larg = 0
        seco = 0
        for house in data:
            pts = int(data[house])
            if pts > larg:
                seco = larg
                larg = pts
            elif pts > seco:
                seco = pts
        log = len(str(seco)) - 3

        points_names = ["points", "decapoints", "hectopoints", "kilopoints"]

        if log >= len(points_names):
            log = len(points_names) - 1
        if log < 0:
            log = 0

        if "Gryffindor" in data: g = points_format(data["Gryffindor"], log)
        else: g = "0"
        if "Hufflepuff" in data: h = points_format(data["Hufflepuff"], log)
        else: h = "0"
        if "Slytherin" in data: s = points_format(data["Slytherin"], log)
        else: s = "0"
        if "Squib" in data: sq = points_format(data["Squib"], log)
        else: sq = "0"
        if "Ravenclaw" in data: r = points_format(data["Ravenclaw"], log)
        else: r = "0"
        if "Durmstrang" in data: d = points_format(data["Durmstrang"], log)
        else: d = "0"
        if "Postdoc" in data: po = points_format(data["Postdoc"], log)
        else: po = "0"

        self.add_title(points_names[log])
        self.add_text("What do points mean?")

        self.move_cursor(x=0, y=8)
        self.add_title(g, fg="YELLOW", bg="RED", fill=False)
        self.move_cursor(x=0, y=15)
        self.add_text("Gryffindor", fg="YELLOW", bg="RED")

        self.move_cursor(x=27, y=8)
        self.add_title(s, fg="GREEN", bg="GREY", fill=False, pre=27)
        self.move_cursor(x=27, y=15)
        self.add_text("Slytherin", fg="GREEN", bg="GREY")

        self.move_cursor(x=54, y=8)
        self.add_title(sq, fg="PINK", bg="BLUE", fill=False, pre=54)
        self.move_cursor(x=54, y=15)
        self.add_text("Squib", fg="PINK", bg="BLUE")

        self.move_cursor(x=0, y=16)
        self.add_title(r, fg="BRIGHTWHITE", bg="BLUE", fill=False)
        self.move_cursor(x=0, y=23)
        self.add_text("Ravenclaw", fg="BRIGHTWHITE", bg="BLUE")

        self.move_cursor(x=27, y=16)
        self.add_title(h, fg="YELLOW", bg="GREY", fill=False, pre=27)
        self.move_cursor(x=27, y=23)
        self.add_text("Hufflepuff", fg="YELLOW", bg="GREY")

        if config.NAME == "KLBFAX":
            self.move_cursor(x=54, y=16)
            self.add_title(d, fg="RED", bg="GREEN", fill=False, pre=54)
            self.move_cursor(x=54, y=23)
            self.add_text("Durmstrang", fg="RED", bg="GREEN")
        else:
            self.move_cursor(x=54, y=16)
            self.add_title(po, fg="RED", bg="GREEN", fill=False, pre=54)
            self.move_cursor(x=54, y=23)
            self.add_text("Postdoc", fg="RED", bg="GREEN")

        self.add_newline()

        sorted_pts = sorted(data.items(), key=itemgetter(1), reverse=True)

        self.add_rainbow_text("Full List")
        self.add_newline()
        i = 0
        for house, points in sorted_pts:
            i += 1
            self.add_text(house, fg="YELLOW")
            self.add_text(" ")
            self.add_text(str(points), fg="GREEN")
            if i % 5 == 0: self.add_newline()
            else: self.add_text("  ")
Exemplo n.º 10
0
from page import Page
from colours import colour_print
from printer import instance as printer
from random import choice
from datetime import date
import json
import config
import logging
import sys
from file_handler import f_read_json

birthdays = f_read_json("birthdays.json")


more_birthdays = {
            "Kathleen Lonsdale": (1, 28),
            "Martin Gardner": (10, 21),
            "Jesus": (12, 25),
            "Jigsaw": (1, 3),
            "Chalkdust": (1, 27),
            "ScroggsBot": (1, 10)
}

for birth in more_birthdays:
    birthdays[birth] = more_birthdays[birth]

c_b = {}

months = {1:"January",2:"February",3:"March",4:"April",5:"May",6:"June",7:"July",8:"August",9:"September",10:"October",11:"November",12:"December"}

for i in range(1,13):