def getIndexerDownloadStats(): results = [] allDownloadsCount = IndexerNzbDownload.select().count() for p in Indexer.select().order_by(Indexer.name): try: indexer = getIndexerByName(p.name) if not indexer.settings.enabled: logger.debug("Skipping download stats for %s" % p.name) continue except IndexerNotFoundException: logger.error("Unable to find indexer %s in configuration" % p.name) continue dlCount = IndexerNzbDownload().\ select(Indexer.name, IndexerApiAccess.response_successful). \ join(IndexerApiAccess, JOIN.LEFT_OUTER). \ join(Indexer, JOIN.LEFT_OUTER).\ where(Indexer.id == p).\ count() results.append({ "name": p.name, "total": dlCount, "share": 100 / (allDownloadsCount / dlCount) if allDownloadsCount > 0 and dlCount > 0 else 0 }) results = sorted(results, key=lambda x: x["name"]) results = sorted(results, key=lambda x: x["share"], reverse=True) return results
def getIndexerDownloadStats(): results = [] allDownloadsCount = IndexerNzbDownload.select().count() for p in Indexer.select().order_by(Indexer.name): dlCount = IndexerNzbDownload().select(Indexer.name, IndexerApiAccess.response_successful).join(IndexerSearch, JOIN.LEFT_OUTER).join(Search, JOIN.LEFT_OUTER).switch(IndexerNzbDownload).join(IndexerApiAccess, JOIN.LEFT_OUTER).join(Indexer, JOIN.LEFT_OUTER).where(Indexer.id == p).count() results.append({"name": p.name, "total": dlCount, "share": 100 / (allDownloadsCount / dlCount) if allDownloadsCount > 0 and dlCount > 0 else 0}) return results
def getIndexerDownloadStats(): results = [] allDownloadsCount = IndexerNzbDownload.select().count() for p in Indexer.select().order_by(Indexer.name): dlCount = IndexerNzbDownload().select( Indexer.name, IndexerApiAccess.response_successful).join( IndexerSearch, JOIN.LEFT_OUTER).join( Search, JOIN.LEFT_OUTER).switch(IndexerNzbDownload).join( IndexerApiAccess, JOIN.LEFT_OUTER).join( Indexer, JOIN.LEFT_OUTER).where(Indexer.id == p).count() results.append({ "name": p.name, "total": dlCount, "share": 100 / (allDownloadsCount / dlCount) if allDownloadsCount > 0 and dlCount > 0 else 0 }) return results
def getIndexerDownloadStats(): results = [] allDownloadsCount = IndexerNzbDownload.select().count() for p in Indexer.select().order_by(Indexer.name): try: indexer = getIndexerByName(p.name) if not indexer.settings.enabled: logger.debug("Skipping download stats for %s" % p.name) continue except IndexerNotFoundException: logger.error("Unable to find indexer %s in configuration" % p.name) continue dlCount = IndexerNzbDownload().\ select(Indexer.name, IndexerApiAccess.response_successful). \ join(IndexerApiAccess, JOIN.LEFT_OUTER). \ join(Indexer, JOIN.LEFT_OUTER).\ where(Indexer.id == p).\ count() results.append({"name": p.name, "total": dlCount, "share": 100 / (allDownloadsCount / dlCount) if allDownloadsCount > 0 and dlCount > 0 else 0}) return results