Пример #1
0
#!/usr/bin/python

import yaml
config = yaml.safe_load(open("config.yml"))

from notes import Notes, Note
notebook = Notes()

import sys

if len(sys.argv) < 1:
	print("usage: add_note.py <text>")
	sys.exit()
filename = sys.argv.pop(0)
note_text = " ".join([str(x) for x in sys.argv])

if note_text != "":
  notebook.add_note(note_text)
Пример #2
0
#!/usr/bin/python

import yaml
config = yaml.safe_load(open("config.yml"))

from notes import Notes, Note
notebook = Notes()

import sys

if len(sys.argv) < 1:
    print("usage: add_note.py <text>")
    sys.exit()
filename = sys.argv.pop(0)
note_text = " ".join([str(x) for x in sys.argv])

if note_text != "":
    notebook.add_note(note_text)
Пример #3
0
parser.add_argument('-ap', '--append', help='Append to note', type=str)
parser.add_argument('-d', '--delete', help='Delete note', type=str)
parser.add_argument('-da',
                    '--delall',
                    help='Delete all notes',
                    action='store_true')
parser.add_argument('-v', '--view', help='View a note', type=str)
parser.add_argument('-t', '--tick', help='Check off completed note', type=str)
parser.add_argument('--step', help='unknown, required for tick', type=int)

args = parser.parse_args()

try:
    notesShelf = shelve.open('notes')
    if args.add:
        Notes.add_note(notesShelf, args.add)
    elif args.append:
        Notes.add_step(notesShelf, args.append)
    elif args.delete:
        Notes.delete_note(notesShelf, args.delete)
    elif args.delall:
        Notes.delete_all_notes(notesShelf)
    elif args.view:
        Notes.view_note(notesShelf, args.view)
    elif args.tick:
        Notes.delete_step(notesShelf, args.tick, args.step)
    elif args.list:
        Notes.list_notes(notesShelf)

except ImportError:
    print('There was an error')
Пример #4
0
class Epilader:
    INTRA_URL = "https://intra.epitech.eu/"
    JSON_CONF = "./Config/conf.json"

    def __init__(self, arg):
        self.curl = pycurl.Curl()
        self.option = Option()
        self.option.parse(arg)
        self.log = Log(self.option.isVerboseMode())
        self.datas = []
        config = json.loads(open(Epilader.JSON_CONF).read())
        self.login    = config["login"]
        self.password = config["password"]
        self.notes = Notes(config["projets"], config["modules"])

    def __del__(self):
        self.curl.close()

    def set_cookies(self):
        self.curl.setopt(self.curl.POST, 1)
        self.curl.setopt(self.curl.URL, Epilader.INTRA_URL)
        self.curl.setopt(self.curl.POSTFIELDS, 'login='******'&password='******'')

    def find_gpa(self, request_result):
        request_result = json.loads(request_result)
        try:
            gpa = float([x for x in request_result["gpa"] if (x["cycle"] == "bachelor")][0]['gpa'])
        except:
            self.log.error(Log.NO_GPA)
            return -1
        return gpa

    def find_moyenne(self, request_result):
        self.notes.init()
        request_result = json.loads(request_result)
        for note in request_result["notes"]:
            self.notes.add_note(note)
        return self.notes.moyenne()

    def request(self, href):
        self.curl.setopt(self.curl.URL, href)
        reponse = io.BytesIO()
        self.curl.setopt(self.curl.WRITEFUNCTION, reponse.write)
        try:
            self.curl.perform()
        except KeyboardInterrupt:
            raise KeyboardInterrupt
        except:
            self.log.error(Log.REQUEST_FAIL)
            print ; return ""
        return reponse.getvalue().decode("utf-8")

    def launch(self):
        try:
            while True:
                user = input()
                if user == "" or user == "EOF":
                    return
                href_gpa = Epilader.INTRA_URL + "user/" + user + "/?format=json"
                href_note = Epilader.INTRA_URL + "user/" + user + "/notes/?format=json"
                if user[0] != '#':
                    gpa = self.find_gpa(self.request(href_gpa))
                    moyenne = self.find_moyenne(self.request(href_note))
                    self.log.write(user + "\t: " + str(gpa) + "\t: " + str(moyenne))
                    if gpa > 0:
                      self.datas.append([user, gpa, moyenne])
        except (KeyboardInterrupt, EOFError):
            print("KeyboardInterrupt") ; return

    def sort(self):
        self.datas.sort(key=lambda x: x[1], reverse=True)

    def display(self):
        rank = 1
        for d in self.datas:
            self.option.write(str(rank) + " " + d[0] + "\t" + str(d[1]) + "\t" + str(d[2]) + "\n")
            rank += 1