2 import sys
, os
, os
.path
3 from shuffle
import ShuffleDB
7 mydir
= os
.path
.abspath( os
.path
.dirname( sys
.argv
[0] ))
12 format
='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
13 datefmt
='%m-%d %H:%M',
14 filename
=os
.path
.join(mydir
, 'update.log'),
16 console
= logging
.StreamHandler()
17 console
.setLevel(logging
.INFO
)
18 formatter
= logging
.Formatter('%(levelname)-8s %(message)s')
19 console
.setFormatter(formatter
)
20 logging
.getLogger('').addHandler(console
)
22 ipod_root
= os
.path
.dirname( mydir
)
23 control
= os
.path
.join(ipod_root
, "iPod_Control", "iTunes")
25 logging
.info( "Loading old database" )
27 tracks
, pstate
= db
.read_all( control
)
28 db
.set_old_tracks( tracks
)
33 for arg
in sys
.argv
[1:]:
45 logging
.info( "Indexing files in dirs: %s", dirs
)
46 logging
.info( "Will force podcast under: %s", bm_dirs
)
50 for root
, dirs
, files
in os
.walk( d
):
52 if f
.endswith(ShuffleDB
.supported_file_types
):
53 path
= os
.path
.join(root
, f
)
54 logging
.debug("Found file %s, making track record", path
)
55 if path
.startswith(ipod_root
):
56 ipod_path
= path
.replace(ipod_root
, u
'')
58 ipod_path
= u
"/" + path
59 t
= db
.make_track_record( ipod_path
)
61 logging
.debug(" - forcing bookmarkflag under %s", d
)
62 t
['bookmarkflag'] = True
63 t
['shuffleflag'] = False
68 old_current
= db
.old_tracks
[ pstate
['trackno'] ]
69 logging
.debug( "old current:", old_current
)
70 for i
in xrange( len(tracks
) ):
71 if tracks
[i
] == old_current
:
77 # if we set these to correct numbers we might override existing bookmark
78 pstate
['trackno'] = -1
79 pstate
['trackpos'] = -1
80 pstate
['shufflepos'] = 0
83 logging
.info( "Writing new database" )
84 db
.write_all(control
, tracks
, pstate
)