from appPublic.uniqueID import getID from sqlor.dbpools import DBPools async def main(request): db = DBPools() async with db.sqlorContext('sage') as sor: items = await sor.R('hotspot_item', {'order': 'fetch_time desc'}) sources = await sor.R('hotspot_source', {}) total = len(items) rising = sum(1 for i in items if i.get('status') == 'rising') hot = sum(1 for i in items if i.get('status') == 'hot') cooling = sum(1 for i in items if i.get('status') == 'cooling') expired = sum(1 for i in items if i.get('status') == 'expired') sources_count = len([s for s in sources if s.get('enabled') == '1']) return { 'total': total, 'rising': rising, 'hot': hot, 'cooling': cooling, 'expired': expired, 'sources': sources_count }