Beispiel #1
0
    def invoke(self):
        size = stats.get_queue_size_stats()
        
        outf = open(os.path.join(STATS_DIR, "queue-stats.html"), "w")
        outf.write("""
        <title>Whazzup queue stats</title>
        <style>
          td { padding-right: 12pt }
          th { text-align: left }
        </style>
        <h1>Whazzup queue stats</h1>

        <p>Queue started: %s<br>
        Report dated: %s</p>

        <h2>Queue stats</h2>

        <table>
        <tr><th>Aspect       <th>Average <th>Min <th>Max
        <tr><td>Size         <td>%s      <td>%s  <td>%s
        </table>

        <h2>Task types</h2>

        <table>
        <tr><th>Task <th>Acc <th>%% <th>Avg <th>Max <th>Min <th>Count
        """ % (startup_time, datetime.datetime.now(),
               size.get_average(), size.get_min(), size.get_max()))

        tasks = feedlib.sort(stats.get_tasks(), TaskStats.get_sum)
        tasks.reverse()
        total = reduce(operator.add, [task.get_sum() for task in tasks], 0)
        
        for task in tasks:
            outf.write("<tr><td>%s <td>%s <td>%s <td>%s <td>%s <td>%s <td>%s\n"%
                       (task.get_name(),
                        str(task.get_sum())[ : 5],
                        str((task.get_sum() / total) * 100)[ : 5],
                        str(task.get_average())[ : 5],
                        str(task.get_max())[ : 5],
                        str(task.get_min())[ : 5],
                        task.get_count()))

        outf.write("""
        </table>
        """)

        outf.write("""
        <h2>Feed downloading</h2>

        <p>Queue size: %s</p>

        <ol>
        """ % feed_queue.get_queue_size())
        for task in downloaders:
            outf.write("<li>%s" % task.get_state())
        outf.write("</ol>")
        outf.close()
Beispiel #2
0
    def invoke(self):
        size = stats.get_queue_size_stats()

        outf = open(os.path.join(STATS_DIR, "queue-stats.html"), "w")
        outf.write("""
        <title>Whazzup queue stats</title>
        <style>
          td { padding-right: 12pt }
          th { text-align: left }
        </style>
        <h1>Whazzup queue stats</h1>

        <p>Queue started: %s<br>
        Report dated: %s</p>

        <h2>Queue stats</h2>

        <table>
        <tr><th>Aspect       <th>Average <th>Min <th>Max
        <tr><td>Size         <td>%s      <td>%s  <td>%s
        </table>

        <h2>Task types</h2>

        <table>
        <tr><th>Task <th>Acc <th>%% <th>Avg <th>Max <th>Min <th>Count
        """ % (startup_time, datetime.datetime.now(),
               size.get_average(), size.get_min(), size.get_max()))

        tasks = feedlib.sort(stats.get_tasks(), TaskStats.get_sum)
        tasks.reverse()
        total = reduce(operator.add, [task.get_sum() for task in tasks], 0)

        for task in tasks:
            outf.write("<tr><td>%s <td>%s <td>%s <td>%s <td>%s <td>%s <td>%s\n"%
                       (task.get_name(),
                        str(task.get_sum())[ : 5],
                        str((task.get_sum() / total) * 100)[ : 5],
                        str(task.get_average())[ : 5],
                        str(task.get_max())[ : 5],
                        str(task.get_min())[ : 5],
                        task.get_count()))

        outf.write("""
        </table>
        """)

        outf.write("""
        <h2>Feed downloading</h2>

        <p>Queue size: %s</p>

        <ol>
        """ % feed_queue.get_queue_size())
        for task in downloaders:
            outf.write("<li>%s" % task.get_state())
        outf.write("</ol>")
        outf.close()
Beispiel #3
0
    def sort(self):
        try:
            self._lock.acquire()
            self._items = feedlib.sort(self._items, Link.get_points)
            self._items.reverse()

            ix = len(self._items) - 1
            while ix >= 0 and len(self._items) > MAX_STORIES:
                if self._items[ix].get_age() > (86400 * 2):
                    del self._items[ix]
                ix -= 1
        finally:
            self._lock.release()
Beispiel #4
0
    def sort(self):
        try:
            self._lock.acquire()
            self._items = feedlib.sort(self._items, Link.get_points)
            self._items.reverse()

            ix = len(self._items) - 1
            while ix >= 0 and len(self._items) > MAX_STORIES:
                if self._items[ix].get_age() > (86400 * 2):
                    del self._items[ix]
                ix -= 1
        finally:
            self._lock.release()
Beispiel #5
0
 def get_feeds(self):
     cur.execute("""
       select id, title, xmlurl, htmlurl, error, time_to_wait, last_read,
              last_error, max_posts, last_modified, up, down
       from feeds
       join subscriptions on id = feed
       where username = %s
     """, (self._username, ))
     subs = [Subscription(Feed(id, title, xmlurl, htmlurl, error,
                               time_to_wait, last_read, last_error,
                               maxposts, lastmod),
                          self, up, down)
             for (id, title, xmlurl, htmlurl, error, time_to_wait,
                  last_read, last_error, maxposts, lastmod, up, down)
             in cur.fetchall()]
     subs = feedlib.sort(subs, Subscription.get_ratio)
     subs.reverse()
     return subs
Beispiel #6
0
 def get_feeds(self):
     cur.execute(
         """
       select id, title, xmlurl, htmlurl, error, time_to_wait, last_read,
              last_error, max_posts, last_modified, up, down
       from feeds
       join subscriptions on id = feed
       where username = %s
     """, (self._username, ))
     subs = [
         Subscription(
             Feed(id, title, xmlurl, htmlurl, error, time_to_wait,
                  last_read, last_error, maxposts, lastmod), self, up, down)
         for (id, title, xmlurl, htmlurl, error, time_to_wait, last_read,
              last_error, maxposts, lastmod, up, down) in cur.fetchall()
     ]
     subs = feedlib.sort(subs, Subscription.get_ratio)
     subs.reverse()
     return subs