text=text.replace('*',raw_input('Wofür steht das folgende "*"?\n%s\n'%text))
text=text.replace('\\xe2\\x80\\xa6','...')
text=text.replace('\\xc3\\xa9','e')
text=text.replace('\\xc3\\xa0','a')
returntext
defcheckHDD(self):
database=Database()
database.connect()
# Abfrage notwendiger Werte
hdd=str(raw_input('Welche Nummer hat die Festplatte?\n'))
# Auflisten aller Filme
f=FileManager().escape(sys.argv[2])
f1=str(os.popen("find "+f).read());
f2=f1.split("\n");
f2.sort();
# Abfrage Filme
database.instance.execute("SELECT name, 3d, md5 FROM Filme WHERE hdd = %s ORDER BY name ASC",hdd)
filme=database.instance.fetchall()
# Abfrage Serien
database.instance.execute("SELECT Serien.name, Staffeln.season, Episoden.episodenumber, Episoden.md5, Episoden.name FROM Serien, Staffeln, Episoden WHERE Serien.series_nr = Staffeln.series_nr AND Staffeln.season_nr = Episoden.season_nr AND Episoden.hdd = %s ORDER BY Serien.name, Staffeln.season, Episoden.episodenumber ASC",hdd)
serien=database.instance.fetchall()
# Ermittlung des belegten Speichers für Fortschrittsanzeige
# Wenn der Tabellenkopf mit dem Deutschen Titel gefunden wird, wird column auf die richtige Spalte gesetzt und seasonFound auf False gsetzt, damit nicht weider nach der richtigen Spalte gesucht wird
# Wenn sich der Parser in der richtigen Spalte und gleichzeitig der richtigen Tabelle befindet, so wird der Inhalt der Zelle an das Array episodes angehängt
moviesBegin=self.database.instance.execute("SELECT name FROM Filme")
# Variablen, die fix sein sollten
views=0#raw_input('Wie oft hast du den Film bereits angesehen?\n')
check='null'#raw_input('Ist der Film fehlerfrei?\n\n0 - Film enthaelt Fehler\n1 - Film ist fehlerfrei\nnull - Film wurde noch nicht geprueft\n\n')
comment=''#raw_input('Angabe von Kommentare:\n')
befehl="INSERT INTO Filme VALUES('%s','%s',%s,%d,'%s','%s','%s',%d,%s,'%s',%s,%s,'%s',%s,%s,'%s',%s,%s,%s,%s,%s,%s,'%s','%s',%s)"%(movie['imdbID'],movie['metaData']['name'],movie['year'],movie['metaData']['size'],movie['md5'],movie['metaData']['dimension'],movie['metaData']['videoformat'],movie['metaData']['duration'],movie['metaData']['totalbitrate'],movie['metaData']['resolution'],movie['metaData']['width'],movie['metaData']['height'],movie['metaData']['geraudiocodec'],movie['metaData']['geraudiobitrate'],movie['metaData']['gerchannels'],movie['metaData']['engaudiocodec'],movie['metaData']['engaudiobitrate'],movie['metaData']['engchannels'],movie['hdd'],movie['rating'],check,views,comment,movie['metaData']['added'],'NULL')
befehl=befehl.replace("'NULL'","NULL")
print(befehl)
self.database.instance.execute(befehl)
self.database.connection.commit()
### Eintragen der IMDB Werte
# Eintragen der Schauspieler
self.database.instance.execute("SELECT schauspielerID FROM Schauspieler")
Serien_Input=str(raw_input("Bitte gib die entsprechende NUMMER ein!\n"))
# Berechnung der neuen Staffelnummer
# Abfrage noch fehlender Werte
if(mode=='season'):
views=raw_input("Wie oft hast du die Staffel bereits angesehen?\n")
check=raw_input("Ist die Staffel fehlerfrei?\n\n0 - Staffel enthaelt Fehler\n1 - Staffel ist fehlerfrei\nnull - Staffel wurde noch nicht geprueft\n\n")
hdd=raw_input("Auf welcher Festplatte befindet sich die Staffel?\n")
comment=raw_input("Angabe von Kommentaren:\n")
forxinself.episodes:
ifx['episodenumber']==999:
x['source']=raw_input('Aus welche Quelle stammt das Special "%s"?'%x['name'])
#x['source'] = 'DVD'
befehl_season_nr="SELECT season_nr FROM Staffeln ORDER BY season_nr ASC";
self.database.instance.execute(befehl_season_nr);
all_season_nrs=self.database.instance.fetchall();
season_nr=int(all_season_nrs[-1][0])+1
series_nr=SerienListe[int(Serien_Input)][1]
# Ermittlung restlicher Werte im Fall, dass eine Episode ersetzt werden soll
if(mode=='replaceEpisode'):
check="NULL"
comment=raw_input("Angabe von Kommentaren:\n")
befehl_fehlende_Werte="Select Staffeln.season_nr, Episoden.views, Episoden.hdd from Serien, Staffeln, Episoden where Serien.series_nr = Staffeln.series_nr AND Staffeln.season_nr = Episoden.season_nr AND Staffeln.season = %s AND Serien.series_nr = %s AND Episoden.episodenumber = %d"%(self.seasonMetaData['season'],series_nr,self.episodes[0]['episodenumber'])
raw_input("\nSind alle ermittelten Werte korrekt?\n")
# Eintragen in Datenbank
if(mode=='season'):
befehlStaffeln="INSERT INTO Staffeln VALUES(%s,'%s','%s','%s',%s,'%s',%d,%s)"%(self.seasonMetaData['season'],self.seasonMetaData['resolution'],self.seasonMetaData['sound'],self.episodes[0]['source'],check,comment,season_nr,series_nr)
delete_command="DELETE FROM Episoden WHERE Episoden.series_nr = %s AND Episoden.season_nr = %d AND Episoden.episodenumber = %d"%(series_nr,season_nr,self.episodes[0]['episodenumber'])
self.database.instance.execute(delete_command)
self.database.connection.commit()
# Pruefe Anzahl Episoden hinterher
self.database.instance.execute("SELECT name FROM Episoden")
number_end=len(self.database.instance.fetchall())
if(number_begin-number_end!=1):
print('Es wurden %d Episoden gelöscht !!!'%number_begin-number_end)
sys.exit(0)
else:
print('Das Loeschen war erfolgreich !!!')
forxinself.episodes:
befehlEpisoden="INSERT INTO Episoden VALUES(%d,'%s','%s',%d,%d,'%s','%s',%s,%s,%s,'%s',%s,%s,'%s',%s,%s,%s,'',%s,%s,%s,'%s',%d,%s)"%(x['episodenumber'],x['name'],x['source'],x['size'],x['duration'],x['md5'],x['videoformat'],x['width'],x['height'],x['totalbitrate'],x['geraudiocodec'],x['geraudiobitrate'],x['gerchannels'],x['engaudiocodec'],x['engaudiobitrate'],x['engchannels'],hdd,check,view,'NULL',x['added'],season_nr,series_nr,)