aboutsummaryrefslogtreecommitdiff
path: root/themes/base16-ocean.rasi
AgeCommit message (Expand)Author
2018-03-01Update themes with base16-builderJordi Pakey-Rodriguez
2017-12-07Support Rofi 1.4.x (#5)Andrea Scarpino
>23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
#!/usr/bin/env python
import configparser
import mutagen
import os

from models.track import Track


def run(path=None):
    print("Scanning files")

    if path is not None:
        if os.path.isdir(path):
            store_dir(path)
        else:
            store_file(path)
    else:
        store_dir("/media/Music")


def store_file(path):
    m = mutagen.File(path, easy=True)
    if m:
        if not Track.store(path, m):
            print("Problem saving %s" % (path,))


def store_dir(path):
    file_store = []

    for root, dirs, files in os.walk(path):
        for name in files:
            file_path = "".join([root, "/", name])
            file_store.append(file_path)

    file_store.sort()
    j = 0
    media_files = 0
    print("Storing files")
    for file_path in file_store:
        j += 1
        m = mutagen.File(file_path, easy=True)
        if m:
            if not Track.store(file_path, m):
                print("Problem saving %s" % (file_path,))

            media_files += 1
        print(
            "%d%% complete, (%d files)" % (((j / len(file_store)) * 100),
                                           j)
        )
    print("Stored %d tracks" % (media_files,))


def delete_file(path):
    track = Track.find_by_path(path)

    if track:
        track_album = track.album
        track_artists = track.artists

        track.delete()

        if track_album and len(track_album.tracks) == 0:
            track_album.delete()

        for artist in track_artists:
            if len(artist.tracks) == 0:
                artist.delete()


def update_file(path):
    m = mutagen.File(path, easy=True)
    if m:
        track = Track.find_by_path(path)
        track.update(m)


def update_track_filename(oldpath, newpath):
    track = Track.find_by_path(oldpath)
    track.filename = newpath
    track.save()

if __name__ == "__main__":
    config = configparser.ConfigParser()
    config.read("mach2.ini")

    run(config["DEFAULT"]["media_dir"])