]> code.delx.au - bg-scripts/commitdiff
Automated merge with ssh://hg@kagami.tsukasa.net.au/bg_scripts/
authorGreg Darke <greg@tsukasa.net.au>
Wed, 16 Jul 2008 06:59:23 +0000 (16:59 +1000)
committerGreg Darke <greg@tsukasa.net.au>
Wed, 16 Jul 2008 06:59:23 +0000 (16:59 +1000)
1  2 
randombg.py

diff --cc randombg.py
index e58875ade1a623c5563a49655d3e1699b92c61ae,bb4050c9f95fa2c21e6349a8b5dd6b71a321ee90..d069b4983c990b358e1639af2de4d01d7fe33d6f
@@@ -77,9 -104,15 +107,15 @@@ class RandomFileList(BaseFileList)
        def get_next_image(self):
                n = random.randint(0, len(self.list)-1)
                self.last_image = self.list[n]
 -              debug("Picked file '%s' from list" % self.last_image)
 +              logging.debug("Picked file '%s' from list" % self.last_image)
                return self.last_image
        
+       def get_current_image(self):
+               if self.last_image:
+                       return self.last_image
+               else:
+                       return self.get_next_image()
        def is_empty(self):
                return len(self.list) == 0
  
@@@ -161,31 -162,37 +197,39 @@@ class FolderRandomFileList(BaseFileList
        """A file list that will pick a file randomly within a directory. Each
        directory has the same chance of being chosen."""
        def __init__(self):
+               super(FolderRandomFileList, self).__init__()
                self.directories = {}
+               self.last_image = None
        
        def scan_paths(self):
 -              for path in self.paths:
 -                      for dirpath, dirs, filenames in os.walk(path):
 -                              debug('Scanning "%s" for images' % dirpath)
 -                              if self.directories.has_key(dirpath):
 -                                      continue
 -                              filenames = list(filter_images(filenames))
 -                              if len(filenames):
 -                                      self.directories[dirpath] = filenames
 -                                      debug('Adding "%s" to "%s"' % (filenames, dirpath))
 -                              else:
 -                                      debug("No images found in '%s'" % dirpath)
 -
 +              pass
 +      
 +      def add_path(self, path):
 +              logging.debug('Added path "%s" to the list' % path)
 +              for dirpath, dirs, filenames in os.walk(path):
 +                      logging.debug('Scanning "%s" for images' % dirpath)
 +                      if self.directories.has_key(dirpath):
 +                              continue
 +                      filenames = list(filter_images(filenames))
 +                      if len(filenames):
 +                              self.directories[dirpath] = filenames
 +                              logging.debug('Adding "%s" to "%s"' % (filenames, dirpath))
 +                      else:
 +                              logging.debug("No images found in '%s'" % dirpath)
 +      
        def get_next_image(self):
                directory = random.choice(self.directories.keys())
 -              debug('directory: "%s"' % directory)
 +              logging.debug('directory: "%s"' % directory)
                filename = random.choice(self.directories[directory])
 -              debug('filename: "%s"' % filename)
 -              self.last_image = os.path.join(directory, filename)
 -              return self.last_image
 +              logging.debug('filename: "%s"' % filename)
 +              return os.path.join(directory, filename)
        
+       def get_current_image(self):
+               if self.last_image:
+                       return self.last_image
+               else:
+                       return self.get_next_image()
        def is_empty(self):
                return len(self.directories.values()) == 0