Python scripting

Talvez pode ser útil para alguém :).

Este script pega a lista de músicas do mpd, seleciona um playlist aleatório, e coloca no ipod shuffle.


#!/usr/bin/python

import os,random

# ipod mountpoint - must be mounted!
MOUNTPOINT="/mnt/ipod"

def get_files():
    '''Reads the list of mp3 files from mpd database'''
    data = open(".mpd.db").readlines()
    files = []
    for l in data:
        fields = l.strip().split(":",2)
        if len(fields) < 2:
            continue
        if fields[0] == "file":
            files.append(fields[1].strip())
    return files

def get_free_space():
    '''Gets available space from IPOD partition'''
    line = os.popen("df -k %s | awk '{print $4}'" % MOUNTPOINT).readlines()[-1]
    return int(line)

def fullcp(file, target):
    '''copies file and directory structure'''
    os.system('tar cf - "%s" | (cd %s && tar xf -)' % (file, target))

if __name__ == "__main__":
    try:
        os.mkdir("%s/mp3" % MOUNTPOINT)
    except:
        print "Not creating %s/mp3!" % MOUNTPOINT
    files = get_files()
    freespace = get_free_space()
    while 1:
        # pega arquivo aleatorio
        pos = random.randint(0, len(files))
        curfile = files[pos]
        del files[pos]
        # determina o tamanho
        res = os.stat(curfile)
        size = res[6] / 1000
        if freespace - size < 1:
            break
        freespace -= size
        # copia
        print "Copying [%8dK left]: %s" % (freespace, curfile)
        fullcp(curfile, "%s/mp3/" % MOUNTPOINT)

É melhor usar ele junto com Shuffle-DB.

Aria and other news

Bem, como ficou meio parado o blog por esses dias — mais por causa de outros projetos, mas também para eu conseguir finalmente finalizar algumas coisas para a usp :).

Entre as novidades — a TDNN está funcionando finalmente (nem eu acredito nisso)!

Entre outras novidades — finalmente aprendi a usar o LAST.FM, realmente é o que o orkut podia ter sido mas não foi :(.

E, como uma das novidades principais :), o novo cd de Ariya está praticamente decorado já. Mas também, após andar a pé semana passada (e essa também — tadinho do carro que não sai do mecânico) só escutando esse CD… :)

Evanescence!!!

Evanescence — The Open Door.

Esperei, esperei, e finalmente aqui está ele, o novo cd de evanescence! BitTorrent é o que há! :)

Mp3 updates

Novidades na coleção - Harizma (russo), GoDo (russo), Tochka Rosy (russo), neNasty (russo), Kluchi (russo), IRON MAIDEN (ingles ;)).

Os melhores - Iron e Harizma. Harizma foi a melhor surpresa musical dos últimos para mim.

Iron Maiden!!

O novo cd do Iron é simplesmente SEM NOÇÃO!!!