Пример #1
0
 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()
Пример #2
0
 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))
Пример #3
0
    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)
Пример #4
0
    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)
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
    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)
Пример #8
0
 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)
Пример #9
0
 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)
Пример #10
0
    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)
Пример #11
0
    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)
Пример #12
0
 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
Пример #13
0
    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)
Пример #14
0
def main(args):
    cwd = getcwd()

    albumSegments = {}
    discSegments = {}

    for ifile in findPattern("./", pattern="."):
        mid = mp3ID(ifile)

        try:
            mid = mp3ID(ifile)
        except:
            print("Error reading file {0}".format(ifile))
            continue
        album = mid.getAlbum()
        print("Album: {0}".format(album))
        if album is not None:
            album = album[0]
        if albumSegments.get(album) is None:
            albumSegments[album] = []
        albumSegments[album].append(ifile)

        disc = mid.getDiscNumber()
        if disc is not None:
            disc = disc[0]
        if discSegments.get(disc) is None:
            discSegments[disc] = []
        discSegments[disc].append(ifile)

    if args.album is True:
        print("Album Segments: {0}".format(albumSegments.keys()))
        for album, albumFiles in albumSegments.items():
            albumDir = setDir(cwd, album)
            mkDir(albumDir)
            for ifile in albumFiles:
                src = ifile
                dst = setFile(albumDir, getBasename(ifile))
                print("Moving [{0}] to [{1}]".format(src, dst))
                moveFile(src, dst, debug=True)

    if args.disc is True:
        print("Disc Segments: {0}".format(discSegments.keys()))
        for disc, discFiles in discSegments.items():
            discDir = setDir(cwd, "Disc {0}".format(disc))
            mkDir(discDir)
            for ifile in discFiles:
                src = ifile
                dst = setFile(discDir, getBasename(ifile))
                #print("Moving [{0}] to [{1}]".format(src, dst))
                moveFile(src, dst, debug=True)
Пример #15
0
 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)
Пример #16
0
 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)
Пример #17
0
    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)
Пример #18
0
def actionOnAlbum(albumDir, artistDir, retval):

    if any([retval["Skip"], retval["Extra"]]):
        return

    ## Set Needed Directories
    todoDir = setDir(artistDir, "Todo", forceExist=False)
    multiDir = setDir(artistDir, "Multi", forceExist=False)
    titleDir = setDir(artistDir, "Title", forceExist=False)
    randomDir = setDir(artistDir, "Random", forceExist=False)
    mixDir = setDir(artistDir, "Mix", forceExist=False)

    testTitle = retval["Title"]
    testTitle = False
    testTrackNo = retval["Track"]
    testMulti = retval["Multi"]
    testMix = retval["Mix"]

    #print(testTitle,testTrackNo,testMulti)

    if testTitle is True:
        if not isDir(titleDir):
            mkDir(titleDir)
        srcdir = albumDir
        dstdir = setDir(titleDir, getDirBasics(albumDir)[-1])
        print("!!! Moving {0}  ==> {1}".format(srcdir, dstdir))
        sleep(1)
        moveDir(srcdir, dstdir)
    elif testMix is True:
        if not isDir(mixDir):
            mkDir(mixDir)
        srcdir = albumDir
        dstdir = setDir(mixDir, getDirBasics(albumDir)[-1])
        print("!!! Moving {0}  ==> {1}".format(srcdir, dstdir))
        sleep(1)
        moveDir(srcdir, dstdir)
    elif testTrackNo is True:
        if not isDir(todoDir):
            mkDir(todoDir)
        srcdir = albumDir
        dstdir = setDir(todoDir, getDirBasics(albumDir)[-1])
        print("!!! Moving {0}  ==> {1}".format(srcdir, dstdir))
        sleep(1)
        moveDir(srcdir, dstdir)
    elif testMulti is True:
        if not isDir(multiDir):
            mkDir(multiDir)
        srcdir = albumDir
        dstdir = setDir(multiDir, getDirBasics(albumDir)[-1])
        print("!!! Moving {0}  ==> {1}".format(srcdir, dstdir))
        sleep(1)
        moveDir(srcdir, dstdir)
Пример #19
0
def main(args):
    args = addDefault(args)
    
    if args.debug is True:
        print('Show        = {!r}'.format(args.show))
        print('Search      = {!r}'.format(args.search))
        print('Artist      = {!r}'.format(args.artist))
        print('Album       = {!r}'.format(args.album))
        print('AlbumArtist = {!r}'.format(args.albumartist))
        print('Title       = {!r}'.format(args.title))
        print('DiscNo      = {!r}'.format(args.discno))
        print('TrackNo     = {!r}'.format(args.trackno))
        print('File        = {!r}'.format(args.file))
        print('Dir         = {!r}'.format(args.dir))

    searchResults = {}
    
    files = getFiles(args.file, args.dir)
    for i,(dirval,filevals) in enumerate(files.items()):
        searchResults[dirval] = []
        j = 0
        first = False

        for jf, ifile in enumerate(filevals):
            results = MusicID(ifile, debug=args.debug)
            if results.skip is True:
                continue
            if first is False:
                first = True
            if first is True:
                print("\nDirectory: {0}".format(dirval))
                header()
                first = None
            r  = results.getInfo()
            j += 1
            
            if args.search is True:
                if args.album is not None:
                    if args.album in r["Album"][0]:
                        searchResults[dirval].append(ifile)
                        continue
                else:
                    raise ValueError("Can only search for album names right now")

            
            if args.show is True:
                p([j, r["DiscNo"], r["TrackNo"], r["AlbumArtist"], r["Artist"], r["Album"], r["Title"], r["Size"]])
                continue

            ## Artst
            if args.artist is not None:
                oldName = r["Artist"]
                results.setTag("Artist", args.artist)

            ## Album
            if args.album is not None:
                oldName = r["Album"]
                results.setTag("Album", args.album)

            ## AlbumArtist
            if args.albumartist is not None:
                oldName = r["AlbumArtist"]
                results.setTag("AlbumArtist", args.albumartist)

            ## Title
            if args.title is not None:
                oldName = r["Title"]
                results.setTag("Title", args.title)

            ## DiscNo
            if args.discno is not None:
                oldName = r["DiscNo"]
                results.setTag("DiscNo", args.discno)

            ## TrackNo
            if args.trackno is not None:
                oldName = r["TrackNo"]
                results.setTag("TrackNo", args.trackno)

            r = results.getInfo()
            p([j, r["DiscNo"], r["TrackNo"], r["AlbumArtist"], r["Artist"], r["Album"], r["Title"], r["Size"]])


    if args.search is True:
        for dirval,files in searchResults.items():
            tmpDir = mkDir(setDir(dirval, "tmp"))
            for ifile in files:
                moveFile(ifile, tmpDir)
Пример #20
0
def main(args):
    print(args)
    args = addDefault(args)

    if args.artist:
        print('Artist      = {!r}'.format(args.artist))
        outdir = mkDir(setDir(args.dir, "Artist"))
    if args.album:
        print('Album       = {!r}'.format(args.album))
        outdir = mkDir(setDir(args.dir, "Album"))
    if args.albumartist:
        print('AlbumArtist = {!r}'.format(args.albumartist))
        outdir = mkDir(setDir(args.dir, "AlbumArtist"))
    if args.disc:
        print('Disc        = {!r}'.format(args.disc))
        outdir = mkDir(setDir(args.dir, "Disc"))
    if args.track:
        print('Track       = {!r}'.format(args.track))
        outdir = mkDir(setDir(args.dir, "Track"))
    if args.dir:
        print('Dir         = {!r}'.format(args.dir))

    tomove = []
    files = findWalk(args.dir)
    for idir, ifiles in files.items():
        for jf, ifile in enumerate(ifiles):
            results = MusicID(ifile, debug=args.debug)
            if results.skip is True:
                continue
            tags = results.getInfo()
            if args.artist:
                if args.artist == tags["Artist"][0]:
                    tomove.append(ifile)
                    continue

            if args.albumartist:
                if args.albumartist == tags["AlbumArtist"][0]:
                    tomove.append(ifile)
                    continue

            if args.album:
                if args.album == tags["Album"][0]:
                    tomove.append(ifile)
                    continue

            if args.disc:
                print(args.disc, tags["DiscNo"][0])
                if args.disc == tags["DiscNo"][0]:
                    tomove.append(ifile)
                    continue

            if args.track:
                if args.track == tags["TrackNo"][0]:
                    tomove.append(ifile)
                    continue

    if len(tomove) > 0:
        for ifile in tomove:
            src = ifile
            fname = getBasename(ifile)
            dst = setFile(outdir, fname)
            moveFile(src, dst)
            print("Moved {0}  ===>  {1}".format(src, dst))
    else:
        removeDir(outdir)
        print("Didn't find any matching files...")
Пример #21
0
 def getCorrectionsDir(self):
     dirname = setDir(self.getMovieDBDir(), "corrections")
     if not isDir(dirname): mkDir(dirname)
     return dirname
Пример #22
0
 def getMovieDir(self):
     dirname = self.basedir
     if not isDir(dirname): mkDir(dirname)
     return dirname
Пример #23
0
 def getDataDir(self):
     dirname = setDir(self.getMovieDBDir(), self.datadir)
     if not isDir(dirname): mkDir(dirname)
     return dirname
Пример #24
0
 def getResultsDir(self):
     dirname = setDir(self.getMovieDBDir(), self.resultsdir)
     if not isDir(dirname): mkDir(dirname)
     return dirname