import pymysql def getWebsiteStates(conn: pymysql.Connection) -> dict: # Get latest known states to check against cur = conn.cursor() cur.execute(""" WITH summary AS ( SELECT web.website_id, web.success, ROW_NUMBER() OVER(PARTITION BY web.website_id ORDER BY web.ping_id DESC) AS rk FROM website_pings web) SELECT s.* FROM summary s WHERE s.rk = 1; """) websiteStates = cur.fetchall() cur.close() returnStates = {} for site in websiteStates: returnStates[site[0]] = (site[1] == 1) return returnStates def getServerStates(conn: pymysql.Connection) -> dict: # Get latest known states to check against cur = conn.cursor() cur.execute(""" WITH summary AS ( SELECT srv.server_id, srv.success, ROW_NUMBER() OVER(PARTITION BY srv.server_id ORDER BY srv.ping_id DESC) AS rk FROM server_pings srv) SELECT s.* FROM summary s WHERE s.rk = 1; """) serverStates = cur.fetchall() cur.close() returnStates = {} for server in serverStates: returnStates[server[0]] = (server[1] == 1) return returnStates