"""
2020. október: Sorozatok
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("lista.txt")

sorozatok=[]
for sor in betxt:
    datum=sor.strip()      
    cim=next(betxt).strip()
    evxep=next(betxt).strip()     
    ephossz=int(next(betxt).strip())
    latta=int(next(betxt).strip()) # 0: nem látta 1: látta 
    sorozatok.append([datum, cim, evxep, ephossz, latta])
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

ismertek=list(filter(lambda s: s[0]!="NI",sorozatok))
print(f'A listában {len(ismertek)} db vetítési dátummal rendelkező epizód van.')



print("\n3. feladat\n")

latta=list(filter(lambda s: s[4]==1 ,sorozatok))
print(f'A listában lévő epizódok {100*len(latta)/len(sorozatok):.2f}%-át látta.')



print("\n4. feladat\n")

hosszak=list(map(lambda i: latta[i][3], range(len(latta))))
osszhossz=sum(hosszak)
perc, ora = osszhossz%60, osszhossz//60
nap, ora = ora//24, ora%24

print(f'Sorozatnézéssel {nap} napot {ora} órát és {perc} percet töltött.')



print("\n5. feladat\n")

aktdat=input("Adjon meg egy dátumot (pl. 2017.10.18)! Dátum = ")
addignem=list(filter(lambda s: s[0]<=aktdat and s[4]==0 ,sorozatok))
for an in addignem:
   print(f'{an[2]} {an[1]}')



print("\n6. feladat\n")

def hetnapja(ev, ho, nap):
    napok=["v", "h", "k", "sze", "cs", "p", "szo"]
    honapok=[0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]
    if ho<3:
        ev-=1
    return napok[(ev + ev//4 - ev//100 + ev//400 + honapok[ho-1] + nap)%7]

print(f'Az elkészített függvény:\n\n\
def hetnapja(ev, ho, nap):\n\
    napok=["v", "h", "k", "sze", "cs", "p", "szo"]\n\
    honapok=[0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]\n\
    if ho<3:\n\
        ev-=1\n\
    return napok[(ev + ev//4 - ev//100 + ev//400 + honapok[ho-1] + nap)%7]')   



print("\n7. feladat\n")

aktnap=input("Adja meg a hét egy napját (h k sze cs p szo v)! Nap = ").strip()
print("\nA következő sorozatokat vetítik a hét megadott napján:")
aktnapon=list(filter(lambda s: \
         s[0]!="NI" and hetnapja(int(s[0][:4]),int(s[0][5:7]),int(s[0][8:]))==aktnap ,sorozatok))

aktfilmlista=[]
for a in aktnapon:
    if a[1] not in aktfilmlista:
        aktfilmlista.append(a[1])

if len(aktfilmlista)>0:
    for f in aktfilmlista:
        print(f)
else:
    print("Az adott napon nem kerül adásba sorozat.")
    


print("\n8. feladat\n")

kitxt = open("summa.txt","w")

filmlista=[]
for s in sorozatok:
    if s[1] not in filmlista:
        filmlista.append(s[1])

for f in filmlista:
    aktfilmek=list(filter(lambda s: s[1]==f ,sorozatok))
    kitxt.write(f'{f} {len(aktfilmek)*aktfilmek[0][3]} {len(aktfilmek)}\n')

kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
