Exemple #1
0
 def _init_queues(self):
     all_prorities = set(cls.priority for
                         cls in util.all_subclasses(TaskMessage))
     for priority in sorted(all_prorities, reverse=True):
         queue = _SinglePriorityQueue(priority)
         self.queues_by_priority.append(queue)
         self.queue_map[queue.priority] = queue
Exemple #2
0
    def lookup_class(key):
        """Find a ItemFilter subclass for a key."""

        for cls in util.all_subclasses(ItemFilter):
            if cls.key == key:
                return cls
        raise KeyError(key)
Exemple #3
0
    def lookup_class(key):
        """Find a ItemFilter subclass for a key."""

        for cls in util.all_subclasses(ItemFilter):
            if cls.key == key:
                return cls
        raise KeyError(key)
Exemple #4
0
 def _init_queues(self):
     all_prorities = set(cls.priority
                         for cls in util.all_subclasses(TaskMessage))
     for priority in sorted(all_prorities, reverse=True):
         queue = _SinglePriorityQueue(priority)
         self.queues_by_priority.append(queue)
         self.queue_map[queue.priority] = queue
Exemple #5
0
 def __init__(self, priority):
     self.priority = priority
     # map message classes to FIFO deques for that class
     self.fifo_map = {}
     # set up our structure for each task with our priority
     for cls in util.all_subclasses(TaskMessage):
         if cls.priority == priority:
             self.fifo_map[cls] = deque()
     # fifo_cycler is used to cycle through each fifo
     self.fifo_cycler = itertools.cycle(self.fifo_map.values())
     self.fifo_count = len(self.fifo_map)
Exemple #6
0
 def __init__(self, priority):
     self.priority = priority
     # map message classes to FIFO deques for that class
     self.fifo_map = {}
     # set up our structure for each task with our priority
     for cls in util.all_subclasses(TaskMessage):
         if cls.priority == priority:
             self.fifo_map[cls] = deque()
     # fifo_cycler is used to cycle through each fifo
     self.fifo_cycler = itertools.cycle(self.fifo_map.values())
     self.fifo_count = len(self.fifo_map)
Exemple #7
0
                              'CASE '
                              'WHEN item.show IS NOT NULL THEN item.show '
                              'ELSE item.parent_title '
                              'END collate name',
                              'item.release_date')
        columns = ['feed.orig_url' 'show', 'parent_title', 'release_date']
        query.set_complex_order_by(columns, sql)

class DRMSort(ItemSort):
    key  = 'drm'
    columns = ['-has_drm']

class RateSort(ItemSort):
    key  = 'rate'
    columns = ['remote_downloader.rate']

class ETASort(ItemSort):
    key  = 'eta'
    columns = ['remote_downloader.eta']

class TorrentDetailsSort(ItemSort):
    # FIXME: need to implement this
    key  = 'torrent-details'
    columns = ['id']

class PlaylistSort(ItemSort):
    key  = 'playlist'
    columns = ['playlist_item_map.position']

SORT_KEY_MAP = dict((sort.key, sort) for sort in util.all_subclasses(ItemSort))