Пример #1
0
    oceny = usos.pobierz_oceny()
    debug("Pobranie ocen udane")
  except Exception,e:
    if str(e[0]).count("Blad logowania")>0:
      print("Potrzebuje ponownie sie zalogowac..."),
      usos.login(login,haslo)
      baza.zapisz_login(usos)
      oceny = usos.pobierz_oceny()
    else:
      raise
  
  
  for ocena in oceny:
    z_bazy = baza.pobierz(ocena)
    if z_bazy == ocena:
      continue
    print ".", ; sys.stdout.flush()
    ocena.do_sredniej=usos.do_sredniej(ocena.url,ocena.typ)
    if z_bazy==None:
      baza.dodaj(ocena)
    else:
      baza.aktualizuj(ocena)
    #w razie bledow z kodowaniem, nalezy odkomentowac jedna z
    #ponizszych linijek, a zakomentowac druga:
    
    powiadom("USOS: %s: %s" % (ocena.przedmiot,ocena.oceny))
    #powiadom(("USOS: %s: %s" % (ocena.przedmiot,ocena.oceny)).encode(
    #  'latin1'))
  print "OK."
  sys.exit(0)
Пример #2
0
def policz_srednia():
    usos = USOS()
    t_login = getpass('PESEL: ')
    t_haslo = getpass('Haslo: ')
    usos.login(t_login,t_haslo)
    oceny = usos.pobierz_oceny()

    #uporzadkuj oceny wedlug slownika 'kody'
    kody = {}
    for ocena in oceny:
      tmp_kody = ocena.kod.split(' ')
      if len(tmp_kody)!=2:
        debug("tmp_kody!=2 - %s" % ocena.przedmiot)
        break
      kierunek=tmp_kody[0]
      semestr = tmp_kody[1].replace('('+tmp_kody[0], '').rstrip(')')
      if not semestr:
        semestr='?'
      elif semestr.find(')')!=-1:
        semestr = semestr.rsplit(')',1)[1]
      if not kierunek in kody:
        kody[kierunek] = {}
      if not semestr in kody[kierunek]:
         kody[kierunek][semestr] = []
      kody[kierunek][semestr].append(ocena)

    wszystkie_liczba=0.0
    wszystkie_suma=0
    for kierunek in kody:
      kierunek_liczba=0.0
      kierunek_suma=0
      print "Kierunek %s" % kierunek
      semestry = kody[kierunek].keys()
      semestry.sort()
      for semestr in semestry:
        print "->Semestr %s -" % semestr, 
        liczba = 0.0
        suma = 0
        for przedmiot in kody[kierunek][semestr]:
          if przedmiot.oceny=="ZWL":
            continue
          if przedmiot.do_sredniej=="-1":
	    print ".", ; sys.stdout.flush()
            przedmiot.do_sredniej=usos.do_sredniej(przedmiot.url,przedmiot.typ)
          if przedmiot.oceny.startswith('('):
            if przedmiot.do_sredniej:
              liczba+=1
              suma+=float(przedmiot.oceny.split(') ')[0].replace(
                ',','.').strip('('))+float(przedmiot.oceny.split(
                ') ')[1].replace(',','.'))/2
              #suma+=float(przedmiot.oceny.split(') ')[1].replace(',','.'))
          else:
            if przedmiot.do_sredniej:
              liczba+=1
              suma+=float(przedmiot.oceny.replace(',','.'))
        if liczba!=0:
          print "średnia: %f" % (float(suma)/liczba),
        print " "
        kierunek_liczba+=liczba
        wszystkie_liczba+=kierunek_liczba
        kierunek_suma+=suma
        wszystkie_suma+=kierunek_suma
      if kierunek_liczba!=0:
        print "Średnia dla kierunku: %s\n" % (
          float(kierunek_suma)/kierunek_liczba)
    print "Średnia ogólna: %s" % (float(wszystkie_suma)/wszystkie_liczba)