comparison gpodutil.py @ 0:206b58198b48

add gpodutil.py
author paulo@twcdns.fastsearch.net
date Wed, 09 Feb 2011 23:29:12 -0800
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:19ba987dfc41
1 import os
2 import sys
3 import shutil
4 import gpod
5
6
7 def exportTracks(tracks):
8 for t in tracks:
9 artist = t["artist"]
10 title = t["title"]
11 src_fn = t.ipod_filename()
12 (root, ext) = os.path.splitext(src_fn)
13 dst_fn = artist + " - " + title + ext
14
15 # check if dst exists
16 i = 0
17 while os.path.exists(dst_fn):
18 dst_fn = artist + " - " + title + '.' + str(i) + ext
19 i += 1
20
21 shutil.copy(src_fn, dst_fn)
22
23
24 def _trackName(track):
25 return str(track["artist"]) + " - " + str(track["title"])
26
27
28 def importTracks(db, pl, filenames):
29 # set of tracks already in database
30 dbTracks = set()
31 for i in db:
32 dbTracks.add(_trackName(i))
33
34 for fn in filenames:
35 (root, ext) = os.path.splitext(os.path.basename(fn))
36 name = root.split('-', 1)
37 if len(name) < 2:
38 artist = None
39 title = name[0].strip()
40 else:
41 artist = name[0].strip()
42 title = name[1].strip()
43 t = gpod.Track(fn)
44 t["artist"] = artist
45 t["title"] = title
46
47 print "artist: %s, title: %s" % (artist, title)
48
49 # only add if track is not already in database
50 trackName = _trackName(t)
51 if trackName not in dbTracks:
52 dbTracks.add(trackName)
53 db.add(t)
54 pl.add(t)
55
56
57 def safeClose(db):
58 db.copy_delayed_files()
59 db.close()
60
61
62 if __name__ == "__main__":
63
64 ipodMountPoint = "/mnt/sda1"
65
66 db = gpod.Database(ipodMountPoint)
67 pl0 = db.get_playlists()[0]
68
69 fnargs = sys.argv[1:]
70
71 #pl_shoutcast = db.get_playlists()[-1]
72
73 #importTracks(db, pl_shoutcast, fnargs)
74 #safeClose(db)