def __init__(self, debug=False): self.db = "DatPiff" self.disc = dbBase(self.db.lower()) self.artist = artistDP(self.disc) self.dutils = datpiffUtils() self.dutils.setDiscogs(self.disc) self.debug = debug ## MultiArtist self.mulArts = multiartist() print("DatPiff ArtistsDir: {0}".format(self.disc.getArtistsDir())) if not isDir(self.disc.getArtistsDir()): raise ValueError("Could not find artist dir for DatPiff") self.knownDir = setDir(self.disc.getArtistsDir(), "known") if not isDir(self.knownDir): print("Make sure that Piggy is loaded!!!") raise ValueError("Could not find known [{0}] dir for DatPiff".format(self.knownDir)) self.knownFile = setFile(self.knownDir, "datPiffKnown.p") if not isFile(self.knownFile): raise ValueError("Known File [{0}] does not exist".format(self.knownFile)) self.baseURL = "https://www.datpiff.com/" self.searchURL = "https://www.datpiff.com/mixtapes-search?" super().__init__(self.db, self.disc, self.artist, self.dutils, debug=debug)
def moveMyMatchedMusicAlbums(self, show=False): rename = True albumsToMove = getFile(ifile=self.moveFilename) print("Found {0} music <-> discogs albums maps".format( len(albumsToMove))) for db, dbValues in albumsToMove.items(): if dbValues is None: continue for artistName, artistAlbums in dbValues.items(): print("==>", artistName) for myAlbumName, albumVals in artistAlbums.items(): dirval = albumVals["Dir"] albumVal = albumVals["Album"] ratio = albumVals["Ratio"] dbAlbumName = albumVal["Name"] dbAlbumCode = albumVal["Code"] mediaType = albumVal["MediaType"] matchedDir = setDir(dirval, "Match") mkDir(matchedDir) srcName = myAlbumName srcDir = setDir(dirval, srcName) if not isDir(srcDir): print("{0} does not exist".format(srcDir)) continue mediaDir = setDir(matchedDir, self.discConv(mediaType)) mkDir(mediaDir) if rename is True: dstName = self.getMatchedDirName( self.discConv(dbAlbumName), dbAlbumCode, db) else: dstName = self.getMatchedDirName( myAlbumName, dbAlbumCode, db) if show is True: print('\t{0}'.format(mediaDir)) print("\t\t[{0}]".format(srcName)) print("\t\t[{0}]".format(dstName)) continue dstDir = setDir(mediaDir, dstName) if isDir(dstDir): print("{0} already exists".format(dstDir)) continue print("\tMoving {0} ---> {1}".format(srcDir, dstDir)) moveDir(srcDir, dstDir, debug=True)
def installData(self): if not isDir(self.multiArtistDir): print("Install: Making Prefix Dir [{0}]".format( self.multiArtistDir)) mkDir(self.multiArtistDir) if not isFile(self.getFilename(fast=True, local=False)): print("Install: Creating Prefix Data From Local Data") self.writeToMainPickleFromLocalYAML()
def installData(self): if not isDir(self.musicDataDir): print("Install: Making Prefix Dir [{0}]".format(self.musicDataDir)) mkDir(self.musicDataDir) if not isFile(self.getFilename(local=False)): print("Install: Creating Prefix Data From Local Data") fileIO().save(idata=fileIO().get(self.getFilename(local=True)), ifile=self.getFilename(local=False))
def getCanadaCategoryData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) categories = ["Best_Motion_Picture"] for category in categories: self.downloadCanadaCategoryData(category, outdir, debug)
def getArtistNameDirvalsMap(artistName): primeDir = getPrimeDirectory(artistName) dirvals = [] for matchedDir in getMatchedDirs(): primeDirVal = setDir(matchedDir, primeDir) possibleDir = setDir(primeDirVal, normalize('NFC', artistName), forceExist=False) if isDir(possibleDir): dirvals.append(possibleDir) return dirvals
def getBAFTACategoryData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) categories = ["Best_Film", "Best_British_Film", "Best_Direction"] for category in categories: self.downloadBAFTACategoryData(category, outdir, debug)
def getFilms101YearlyData(self, startYear = 1900, endYear = 2018, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) #outdir = setDir(getBoxOfficeDir(), "data") if not isDir(outdir): mkDir(outdir) years = range(int(startYear), int(endYear)+1) for year in years: self.downloadFilms101YearlyData(year, outdir, debug)
def getWikiFilmYearlyData(self, startYear=1921, endYear=2017, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) if startYear < 1921: raise ValueError("Must start at or after 1921") years = range(int(startYear), int(endYear) + 1) for year in years: self.downloadWikiFilmYearlyData(year, outdir, debug)
def getArtistMusicDir(self, artistName): primeDirs = [setDir(musicDir, self.getPrimeDirectory(artistName)) for musicDir in self.musicDirs] artistMusicDirs = [setDir(primeDir, artistName) for primeDir in primeDirs] artistMusicDirs = [x for x in artistMusicDirs if isDir(x)] if len(artistMusicDirs) > 1: raise ValueError("Found more than one artist music directories...") elif len(artistMusicDirs) == 1: return artistMusicDirs[0] else: return None
def getRazziesCategoryData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) categories = [ "Worst_Picture", "Worst_Actor", "Worst_Actress", "Worst_Director" ] for category in categories: self.downloadRazziesCategoryData(category, outdir, debug)
def getRottenTomatoesYearlyData(self, startYear=1980, endYear=2017, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) years = range(int(startYear), int(endYear) + 1) for year in years: self.downloadRottenTomatoesYearlyData(year, outdir, debug)
def __init__(self, debug=False): super().__init__() self.debug = debug self.musicDirs = ["/Volumes/Piggy/Music/Matched"] self.musicDirs = [x for x in self.musicDirs if isDir(x)] print("My Music Base: {0}".format(self.musicDirs)) ### My Music Directory Names self.artistFileCount = {} self.artistAlbums = {} self.artistPrimeDirMap = {}
def downloadRottenTomatoesTop100Data(self, genre, outdir, debug=False): baseurl = "https://www.rottentomatoes.com" outdir = setDir(self.getDataDir()) if not isDir(outdir): mkDir(outdir) url = "/top/bestofrt/top_100_" + genre + "_movies/" url = baseurl + url savename = setFile(outdir, genre + ".p") if isFile(savename): return if debug: print("Downloading/Saving {0}".format(savename)) getWebData(base=url, savename=savename, useSafari=False, dtime=10) sleep(2)
def getSAGCategoryData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) categories = ["Outstanding_Performance_by_a_Cast_in_a_Motion_Picture", "Outstanding_Performance_by_a_Male_Actor_in_a_Leading_Role", "Outstanding_Performance_by_a_Female_Actor_in_a_Leading_Role", "Outstanding_Performance_by_a_Male_Actor_in_a_Supporting_Role", "Outstanding_Performance_by_a_Female_Actor_in_a_Supporting_Role"] for category in categories: self.downloadSAGCategoryData(category, outdir, debug)
def getAACTACategoryData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) categories = [ "Best_Film", "Best_Direction", "Best_Actor_in_a_Leading_Role", "Best_Actress_in_a_Leading_Role", "Best_Actor_in_a_Supporting_Role", "Best_Actress_in_a_Supporting_Role" ] for category in categories: self.downloadAACTACategoryData(category, outdir, debug)
def createDirnameDirectories(self, savedir, dirnames): localdirnames = dict( zip(dirnames, [setDir(savedir, x) for x in dirnames])) for name, dirname in localdirnames.items(): if not isDir(dirname): print("Creating {0}".format(dirname)) try: mkDir(dirname, debug=True) except: print("Cannot create {0}".format(dirname)) else: if self.debug: print("{0} exists".format(dirname)) return localdirnames
def getUltimateMovieRankingsYearlyData(self, startYear=2017, endYear=2017, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) #outdir = setDir(getBoxOfficeDir(), "data") if not isDir(outdir): mkDir(outdir) years = range(int(startYear), int(endYear) + 1) for year in years: if year >= 1988 and year <= 2010: continue self.downloadUltimateMovieRankingsYearlyData(year, outdir, debug)
def getRottenTomatoesGenreData(self, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) if not isDir(outdir): mkDir(outdir) genres = [ "action__adventure", "animation", "art_house__international", "classics", "comedy", "documentary", "drama", "horror", "kids__family", "musical__performing_arts", "mystery__suspense", "romance", "science_fiction__fantasy", "special_interest", "sports__fitness", "television", "western" ] for genre in genres: self.downloadRottenTomatoesTop100Data(genre, outdir, debug)
def getBoxOfficeMojoWeekendData(self, startYear=1982, endYear=1982, debug=False): outdir = self.getDataDir() if debug: print("Data Directory: {0}".format(outdir)) #outdir = setDir(getBoxOfficeDir(), "data") if not isDir(outdir): mkDir(outdir) years = range(int(startYear), int(endYear) + 1) weeks = range(1, 53) for year in years: for week in weeks: self.downloadBoxOfficeMojoWeekendData(year, week, outdir, debug)
def __init__(self): self.name = "output" self.dirval = "/Volumes/Blue/Football" if not isDir(self.dirval): self.dirval = "/Users/tgadfort/Documents/football"
def getCorrectionsDir(self): dirname = setDir(self.getMovieDBDir(), "corrections") if not isDir(dirname): mkDir(dirname) return dirname
def getResultsDir(self): dirname = setDir(self.getMovieDBDir(), self.resultsdir) if not isDir(dirname): mkDir(dirname) return dirname
def getDataDir(self): dirname = setDir(self.getMovieDBDir(), self.datadir) if not isDir(dirname): mkDir(dirname) return dirname
def getMovieDir(self): dirname = self.basedir if not isDir(dirname): mkDir(dirname) return dirname
def main(args): ######################## ## Sep ######################## if args.sep is not None: sep = args.sep print("Delimiter = [{0}]".format(sep)) if args.files is not None: print("Fixing Files not Directories") for fname in findPattern("./", pattern=args.files): fname = fname[2:] vals = fname.split(sep) if len(vals) >= 2: newName = sep.join(vals[1:]) if isFile(fname): if not isFile(newName): moveFile(fname, newName, debug=True) else: print("Cannot move [{0}]".format(fname)) else: print("Not moving [{0}] to [{1}]".format(fname, newName)) else: for dname in findDirs("./"): dname = dname[2:] vals = dname.split(sep) if len(vals) >= 2: newName = sep.join(vals[1:]) if isDir(dname): if not isDir(newName): moveDir(dname, newName, debug=True) else: print("Cannot move [{0}]".format(dname)) else: print("Not moving [{0}] to [{1}]".format(dname, newName)) ######################## ## Remove/Replace ######################## if args.remove is not None or args.replace is not None: print("Remove = [{0}]".format(args.remove)) print("Replace = [{0}]".format(args.replace)) if args.files is not None: print("Fixing Files not Directories") for fname in findPattern("./", pattern=args.files): fname = fname[2:] if args.replace is not None: newName = fname.replace(args.remove, args.replace) else: newName = fname.replace(args.remove, "") if isFile(fname): if not isFile(newName): moveFile(fname, newName, debug=True) else: print("Cannot move [{0}]".format(fname)) else: print("Not moving [{0}] to [{1}]".format(fname, newName)) else: for dname in findDirs("./"): dname = dname[2:] if args.replace is not None: newName = dname.replace(args.remove, args.replace) else: newName = dname.replace(args.remove, "") if isDir(dname): if not isDir(newName): moveDir(dname, newName, debug=True) else: print("Cannot move [{0}]".format(dname)) else: print("Not moving [{0}] to [{1}]".format(dname, newName)) ######################## ## Add ######################## if args.add is not None: print("Add = [{0}]".format(args.add)) if args.files is not None: print("Fixing Files not Directories") for fname in findPattern("./", pattern=args.files): fname = fname[2:] fname = "{0} {1}".format(fname, args.add) if isFile(fname): if not isFile(newName): moveFile(fname, newName, debug=True) else: print("Cannot move [{0}]".format(fname)) else: print("Not moving [{0}] to [{1}]".format(fname, newName)) else: for dname in findDirs("./"): dname = dname[2:] newName = "{0} {1}".format(dname, args.add) if isDir(dname): if not isDir(newName): moveDir(dname, newName, debug=True) else: print("Cannot move [{0}]".format(dname)) else: print("Not moving [{0}] to [{1}]".format(dname, newName))