Moved checks for sufficient info in order to move series or movie to the class. Homelocation in now a class function for each movie and series class.
This commit is contained in:
25
src/core.py
25
src/core.py
@@ -272,28 +272,11 @@ def scan_folder(path):
|
|||||||
|
|
||||||
return videos
|
return videos
|
||||||
|
|
||||||
def movingToCollege(video, home_path):
|
|
||||||
video.home = titlecase(home_path)
|
|
||||||
|
|
||||||
def pickforgirlscouts(video):
|
def pickforgirlscouts(video):
|
||||||
if isinstance(video, Movie):
|
if video.sufficientInfo():
|
||||||
if video.title != None and video.year != None:
|
video.moveLocation()
|
||||||
home_path = '{} ({})'.format(video.title, video.year)
|
print(video.home)
|
||||||
try:
|
return True
|
||||||
movingToCollege(video, home_path)
|
|
||||||
return True
|
|
||||||
except:
|
|
||||||
return False
|
|
||||||
|
|
||||||
elif isinstance(video, Episode):
|
|
||||||
if video.series != None and video.season != None and video.episode != None and type(video.episode) != list:
|
|
||||||
# Handle the list problems
|
|
||||||
home_path = '{} S{:02d}E{:02d}'.format(str(video.series), str(video.season), str(video.episode))
|
|
||||||
try:
|
|
||||||
movingToCollege(video, home_path)
|
|
||||||
return True
|
|
||||||
except:
|
|
||||||
return False
|
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|||||||
23
src/video.py
23
src/video.py
@@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
from guessit import guessit
|
from guessit import guessit
|
||||||
import os
|
import os
|
||||||
|
from titlecase import titlecase
|
||||||
import hashlib, tvdb_api
|
import hashlib, tvdb_api
|
||||||
|
|
||||||
#: Video extensions
|
#: Video extensions
|
||||||
@@ -165,6 +166,17 @@ class Episode(Video):
|
|||||||
def fromname(cls, name):
|
def fromname(cls, name):
|
||||||
return cls.fromguess(name, guessit(name, {'type': 'episode'}))
|
return cls.fromguess(name, guessit(name, {'type': 'episode'}))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def sufficientInfo(self):
|
||||||
|
return None not in [self.series, self.season, self.episode] and list not in [type(self.series), type(self.episode)]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def moveLocation(self):
|
||||||
|
series = titlecase(self.series)
|
||||||
|
grandParent = '{}/{} {:02d}'.format(series, series, self.season)
|
||||||
|
parent = '{} S{:02d}E{:02d}'.format(series, self.season, self.episode)
|
||||||
|
self.home = os.path.join(grandParent, parent, self.name)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.year is None:
|
if self.year is None:
|
||||||
return '<%s [%r, %dx%s]>' % (self.__class__.__name__, self.series, self.season, self.episode)
|
return '<%s [%r, %dx%s]>' % (self.__class__.__name__, self.series, self.season, self.episode)
|
||||||
@@ -204,6 +216,17 @@ class Movie(Video):
|
|||||||
def fromname(cls, name):
|
def fromname(cls, name):
|
||||||
return cls.fromguess(name, guessit(name, {'type': 'movie'}))
|
return cls.fromguess(name, guessit(name, {'type': 'movie'}))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def sufficientInfo(self):
|
||||||
|
return None not in [self.title, self.year]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def moveLocation(self):
|
||||||
|
title = titlecase(self.title)
|
||||||
|
parent = '{} ({})'.format(title, self.year)
|
||||||
|
self.home = os.path.join(parent, self.name)
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
if self.year is None:
|
if self.year is None:
|
||||||
return '<%s [%r]>' % (self.__class__.__name__, self.title)
|
return '<%s [%r]>' % (self.__class__.__name__, self.title)
|
||||||
|
|||||||
Reference in New Issue
Block a user