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()
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()
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
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