fixing for pylint and pep8 recommendatins

This commit is contained in:
2013-07-12 00:02:42 +10:00
parent ca4c95219a
commit 0e3e1a2b14
7 changed files with 317 additions and 184 deletions

View File

@@ -10,131 +10,131 @@ from libsickbeard import Sickbeard
import os
import shutil
# TODO Move these to settings
#PROCESSDIR="/srv/storage2/files/VideoProcessing/"
#THOMAS="Thomas"
#CHUGGINGTON="Chuggington"
#MIKE="MikeTheKnight"
#OCTONAUTS="Octonauts"
#NIGHTGARDEN="InTheNightGarden"
#RAARAA="RaaRaa"
#INPUTDIR="Input"
def fixepisodeseasonnumber(number):
"""
If the number is single digit, return a string with 0 in front of it.
"""
if len(number) == 1:
return "0{0}".format(number)
else:
return number
class TVData:
"""
Class contains logic for processing information about tv episodes
"""
def __init__(self, settings):
self.settings = settings
def FixEpisodeSeasonNumber(self, number):
if len(number) == 1:
return "0{0}".format(number)
else:
return number
def GetDirectory(self, title, seasonFolder, season, episode):
show = self.settings.GetShow(title)
self.__settings = settings
def getdirectory(self, title, seasonfolder, season, episode):
"""
Get the directory where prepared episodes will be located.
"""
show = self.__settings.getshow(title)
if not show or show == "":
print "Couldn't find show for {0}".format(title)
return self.settings.UnknownDirectory()
return self.__settings.unknowndirectory()
elif season == "S00" or episode == "E00":
return self.settings.GetShowUnknownDirectory(show)
return self.__settings.getshowunknowndirectory(show)
else:
return os.path.join(self.settings.GetShowInputDirectory(show), seasonFolder)
#==============================================================================
# if title == "Thomas and Friends" or title == "Thomas the Tank Engine & Friends":
# directory = THOMAS
# elif title == "Chuggington":
# directory = CHUGGINGTON
# elif title == "Mike the Knight":
# directory = MIKE
# elif title == "Octonauts" or title == "The Octonauts":
# directory = OCTONAUTS
# elif title == "In the Night Garden":
# directory = NIGHTGARDEN
# elif title == "Raa Raa! The Noisy Lion":
# directory = RAARAA
# else:
# print "Didn't match"
#==============================================================================
# return os.path.join(PROCESSDIR, directory, INPUTDIR, season)
def RetrieveEpisodeData(self, inputFile):
file = os.path.basename(inputFile)
mythTv = MythTV(self.settings)
show = mythTv.RetrieveEpisodeData(file)
showsToProcess = self.settings.GetShowNames(True)
if show.title and show.title in showsToProcess:
show.title = self.settings.GetShow(show.title)
return os.path.join(self.__settings.getshowinputdirectory(show),
seasonfolder)
def retrieveepisodedata(self, inputfile):
"""
Retrieve the details of an episode. It first looks up the details that
mythtv recorded about it, then looks up sickbeard to attempt to find
any missing details. Finally it determined the output file for it.
"""
inputfilename = os.path.basename(inputfile)
mythtv = MythTV(self.__settings)
show = mythtv.retrieveepisodedata(inputfilename)
showstoprocess = self.__settings.getshownames(True)
if show.title and show.title in showstoprocess:
show.title = self.__settings.getshow(show.title)
if (show.season == "0" or show.episode == "0"):
sickbeard = Sickbeard(self.settings)
showId = sickbeard.FindShowId(show.title)
sickbeard = Sickbeard(self.__settings)
showid = sickbeard.findshowid(show.title)
if show.subtitle is not None and show.subtitle:
show.subtitle = mythTv.FixMythTVEpisodeName(show.title, show.subtitle)
show.subtitle = sickbeard.FixEpisodeTitle(show.title, show.subtitle)
result = sickbeard.FindEpisode(showId, show.subtitle, show.description)
show.subtitle = mythtv.fixmythtvepisodename(show.title,
show.subtitle)
show.subtitle = sickbeard.fixepisodetitle(show.title,
show.subtitle)
result = sickbeard.findepisode(showid, show.subtitle,
show.description)
show.season = str(result[0])
show.episode = str(result[1])
show.subtitle = result[2]
if show.subtitle is None or show.subtitle == "":
show.subtitle = sickbeard.FindEpisodeName(showId, show.season, show.episode)
#if show.season != "0" and show.episode != "0":
show.season = self.FixEpisodeSeasonNumber(show.season)
show.episode = self.FixEpisodeSeasonNumber(show.episode)
seasonFolder = "Season {0}".format(show.season)
show.subtitle = sickbeard.findepisodename(showid, show.season,
show.episode)
show.season = fixepisodeseasonnumber(show.season)
show.episode = fixepisodeseasonnumber(show.episode)
seasonfolder = "Season {0}".format(show.season)
season = "S{0}".format(show.season)
episode = "E{0}".format(show.episode)
renamedFile = "{0}{1} - {2} - SD TV_.mpg".format(season, episode, show.subtitle)
directory = self.GetDirectory(show.title, seasonFolder, season, episode)
show.outputFile = os.path.join(directory, file[:-4], renamedFile)
show.inputFile = inputFile
renamedfile = "{0}{1} - {2} - SD TV_.mpg".format(season, episode,
show.subtitle)
directory = self.getdirectory(show.title, seasonfolder,
season, episode)
show.outputfile = os.path.join(directory, inputfilename[:-4],
renamedfile)
show.inputfile = inputfile
return show
else:
return None
#==============================================================================
# def CheckTitleIsInList(serverAddress, user, password, database, inputFile):
# """Check that inputFile is a recording of a show that is to be processed."""
# file = os.path.basename(inputFile)
# show = MythTV.RetrieveEpisodeData('localhost', 'script', 'script', 'mythconverg', file)
#
# # TODO get this from settings
# if show.title in ["Thomas and Friends", "Thomas the Tank Engine & Friends",
# "Chuggington", "Mike the Knight", "Octonauts",
# "The Octonauts", "In the Night Garden",
# "Raa Raa! The Noisy Lion"]:
# return True
# else:
# return False
# def __determinetargetfilename(directory, filename, inputfilename):
# """
# Determine the filename for the input file. If the path does not
# exist, it is created.
# """
#
# inputdir = os.path.join(directory, inputfilename[:-4])
#
# if not os.path.exists(inputdir):
# os.makedirs(inputdir)
#
# return os.path.join(inputdir, filename)
#==============================================================================
def DetermineTargetFilename(directory, filename, inputFilename):
dir = os.path.join(directory, inputFilename[:-4])
if not os.path.exists(dir):
os.makedirs(dir)
return os.path.join(dir, filename)
def ProcessEpisode(self, inputFile, outputFile):
outputdir = os.path.dirname(outputFile)
@staticmethod
def processepisode(inputfile, outputfile):
"""
Copy inputfile to outputfile, creating the path for outputfile if
required.
"""
outputdir = os.path.dirname(outputfile)
if not os.path.exists(outputdir):
os.makedirs(outputdir)
shutil.copyfile(inputFile, outputFile)
def PrepareEpisodes(self, showsData):
for showData in showsData:
self.ProcessEpisode(showData.inputFile, showData.outputFile)
shutil.copyfile(inputfile, outputfile)
def prepareepisodes(self, showsdata):
"""
Copy the files in showsdata from their input directory to their output
directory.
"""
for showdata in showsdata:
self.processepisode(showdata.inputfile, showdata.outputfile)