Changeset 567

Show
Ignore:
Timestamp:
02/24/07 20:50:46 (2 years ago)
Author:
nicfit
Message:

#291, #292

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Makefile.in

    r559 r567  
    144144        -rm doc/mesk.1 
    145145        -rm ./etc/mesk.desktop 
     146        -rm aclocal.m4 
    146147 
    147148WIKI_README=http://trac.nicfit.net/wiki/Installation?format=txt 
  • trunk/src/mesk/log.py

    r527 r567  
    4141    def __init__(self, name): 
    4242        logging.Logger.__init__(self, name) 
    43         self.format = '%(name)s:[%(levelname)s] %(message)s' 
     43        self.format = '[%(asctime)s][%(levelname)s]%(name)s: %(message)s' 
    4444 
    4545        self.console_handler = logging.StreamHandler() 
  • trunk/src/mesk/playlist/m3u.py

    r536 r567  
    7777        meta_artist = u'' 
    7878 
    79 def save(pl_file, pl): 
    80     fp = file(pl_file, 'w') 
    81  
     79def save(fp, pl): 
    8280    fp.write('#EXTM3U\n') 
    8381    for src in pl: 
     
    9492            fp.write(str(uri)) 
    9593        fp.write('\n') 
    96     fp.close() 
  • trunk/src/mesk/playlist/pls.py

    r536 r567  
    6464            pl.append(src) 
    6565 
    66 def save(pl_path, pl): 
    67     fp = file(pl_path, 'w') 
     66def save(fp, pl): 
    6867    fp.write('[playlist]\n') 
    6968    fp.write('Version=2\n') 
     
    8483 
    8584        count += 1 
    86     fp.close() 
  • trunk/src/mesk/playlist/xspf.py

    r536 r567  
    7979            mesk_elems = ext_elem.getElementsByTagNameNS(MESK_NS, 'browse-dir') 
    8080            if mesk_elems: 
    81                 browse_dir = _get_elem_text(mesk_elems[0]) 
     81                pl.browse_dir = _get_elem_text(mesk_elems[0]) 
    8282 
    8383            # Playlist queue indexes 
     
    139139                pass 
    140140 
    141 def save(pl_path, pl): 
     141def save(fp, pl): 
    142142    import xml.sax.saxutils as saxutils 
    143143    def pad(n): 
    144144        return ' ' * n 
    145145 
    146     fp = file(pl_path, 'w') 
    147146    # We are only serializing pl, so building a DOM would just waste time. 
    148147    fp.write('<?xml version="1.0" encoding="UTF-8"?>\n') 
     
    219218    fp.write(pad(indent) + '</trackList>\n') 
    220219    fp.write('</playlist>\n') 
    221     fp.close() 
    222  
    223220 
    224221def _get_elem_text(elem): 
  • trunk/src/playlist_control.py

    r558 r567  
    1919################################################################################ 
    2020import os 
    21 import datetime 
     21import datetime, tempfile, shutil 
    2222 
    2323import gobject, gtk, gtk.gdk, gtk.glade 
     
    224224        def _save_cb(): 
    225225            self._pl_config.update() 
    226             mesk.playlist.xspf.save(mesk.uri.unescape(self._pl_config.uri.path), 
    227                                     self._playlist) 
     226 
     227            # Write to a tempfile to avoid corruptions on errors 
     228            (tmp_fd, tmp_filename) = tempfile.mkstemp() 
     229            temp_file = os.fdopen(tmp_fd, 'wb+') 
     230            mesk.playlist.xspf.save(temp_file, self._playlist) 
     231            temp_file.close() 
     232            # Move temp file over playlist 
     233            shutil.copyfile(tmp_filename, 
     234                            mesk.uri.unescape(self._pl_config.uri.path)) 
     235            os.unlink(tmp_filename) 
     236 
    228237            # XXX: For debugging 
    229238            #self._debug_show_playlist() 
     
    11471156        buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, 
    11481157                   gtk.STOCK_ADD, gtk.RESPONSE_OK) 
    1149         dialog = gtk.FileChooserDialog(title=_('Add Music'), 
     1158        dialog = gtk.FileChooserDialog(title=_('Add Audio'), 
    11501159                                       action=gtk.FILE_CHOOSER_ACTION_OPEN, 
    11511160                                       buttons=buttons) 
     
    14141423            module = dialog.get_selected_type() 
    14151424            filename = dialog.get_filename() 
    1416             # Add an extension if none provided 
     1425            # Add an extension if none specified 
    14171426            if not os.path.splitext(filename)[1]: 
    14181427                filename += module.EXTENSIONS[0] 
    1419             module.save(filename, self._playlist) 
     1428 
     1429            pl_file = file(filename, 'wb+') 
     1430            module.save(pl_file, self._playlist) 
     1431            pl_file.close() 
    14201432 
    14211433            self._set_status_msg(_('Playlist \'%s\' exported') % \