Пример #1
0
async def artist(request: web.Request) -> Union[dict, web.HTTPException]:
    artist = request.match_info.get('artist')
    ARTIST_DIR = ARTISTS_DIR / artist
    if ARTIST_DIR.exists():\
        return load_meta(ARTIST_DIR)
    else:
        return web.HTTPBadRequest()
Пример #2
0
def load_release_meta(TARGET_DIR: Path) -> dict:
    meta = load_meta(TARGET_DIR)

    meta['artist'] = load_meta(ARTISTS_DIR / meta['artist'])

    # ITEM_DIR = ITEMS_DIR / meta['link']
    # if ITEM_DIR.exists():
    #     meta['item'] = load_meta(ITEM_DIR)

    total_length = timedelta(0)
    for track in meta['tracklist']:
        track_minutes = int(track['length'].split(':')[0])
        track_seconds = int(track['length'].split(':')[1])
        track_length = timedelta(minutes=track_minutes, seconds=track_seconds)
        total_length += track_length

    meta['total_length'] = ':'.join(str(total_length).split(':')[1:])
    return meta
Пример #3
0
async def artists(request: web.Request) -> dict:
    artists = []
    for ARTIST_DIR in ARTISTS_DIR.glob('*/**'):
        artists.append(load_meta(ARTIST_DIR))
    artists.sort(key=itemgetter('display_name'))
    return {'artists': artists}
Пример #4
0
def load_event_meta(TARGET_DIR: Path) -> dict:
    meta = load_meta(TARGET_DIR)
    meta['date'] = datetime.strptime(meta['date'], '%Y-%m-%d')
    return meta
Пример #5
0
def load_item_meta(TARGET_DIR: Path) -> dict:
    meta = load_meta(TARGET_DIR)
    meta['release'] = load_meta(RELEASES_DIR / meta['release'])
    meta['release']['artist'] = load_meta(ARTISTS_DIR / meta['release']['artist'])
    return meta
Пример #6
0
async def artists(request: web.Request) -> dict:
    artists = []
    for ARTIST_DIR in ARTISTS_DIR.glob('*/**'):
        artists.append(load_meta(ARTIST_DIR))
    artists.sort(key=itemgetter('id'), reverse=True)
    return {'artists': artists}