async def pitchblack_data_loop(self):
     """
     fetch PitchBlack recovery data every six hours
     """
     while True:
         LOGGER.info("Refreshing PitchBlack downloads data")
         self.pitchblack_data = await load_pitchblack_data()
         await asyncio.sleep(60 * 60 * 6)
 async def firmware_codenames_loop(self):
     """
     fetch devices' firmware codenames every six hours
     """
     while True:
         LOGGER.info("Refreshing firmware codenames")
         self.firmware_codenames = await load_firmware_codenames()
         await asyncio.sleep(60 * 60 * 6)
 async def arb_loop(self):
     """
     fetch arb data every 12 hours
     """
     while True:
         LOGGER.info("Refreshing ARB data")
         self.arb = await get_arb_table()
         await asyncio.sleep(60 * 60 * 12)
 async def twrp_data_loop(self):
     """
     fetch devices' twrp_data info every six hours
     """
     while True:
         LOGGER.info("Refreshing twrp data")
         self.twrp_data = await load_twrp_data()
         await asyncio.sleep(60 * 60 * 6)
 async def eu_data_loop(self):
     """
     fetch devices' Xiaomi.eu data every hour
     """
     while True:
         LOGGER.info("Refreshing eu downloads data")
         self.eu_data = await load_eu_data()
         await asyncio.sleep(60 * 60)
 async def specs_data_loop(self):
     """
     fetch devices' specs every six hours
     """
     while True:
         LOGGER.info("Refreshing specs data")
         self.specs_data = await load_specs_data()
         await asyncio.sleep(60 * 60 * 6)
 async def models_loop(self):
     """
     fetch devices' models every six hours
     """
     while True:
         LOGGER.info("Refreshing models data")
         self.models_data = await load_models()
         await asyncio.sleep(60 * 60 * 6)
 async def eu_codenames_loop(self):
     """
     fetch devices' Xiaomi.eu codenames every hour
     """
     while True:
         LOGGER.info("Refreshing eu codenames data")
         self.eu_codenames = await load_eu_codenames()
         await asyncio.sleep(60 * 60 * 6)
 async def vendor_codenames_loop(self):
     """
     fetch devices' vendor codenames every six hours
     """
     while True:
         LOGGER.info("Refreshing vendor codenames")
         self.vendor_codenames = await load_vendor_codenames()
         await asyncio.sleep(60 * 60 * 6)
 async def miui_codenames_loop(self):
     """
     fetch devices' miui codenames every six hours
     """
     while True:
         LOGGER.info("Refreshing miui codenames")
         self.miui_codenames = await load_miui_codenames()
         await asyncio.sleep(60 * 60 * 6)
 async def vendor_data_loop(self):
     """
     fetch devices' vendor data every hour
     """
     while True:
         LOGGER.info("Refreshing vendor data")
         self.bak_vendor_data = self.vendor_data
         self.vendor_data = await load_vendor_data()
         await asyncio.sleep(60 * 60)
 async def firmware_data_loop(self):
     """
     fetch devices' firmware data every hour
     """
     while True:
         LOGGER.info("Refreshing firmware data")
         self.bak_firmware_data = self.firmware_data
         self.firmware_data = await load_firmware_data()
         await asyncio.sleep(60 * 60)
 async def miui_recovery_loop(self):
     """
     fetch devices' miui recovery roms data every hour
     """
     while True:
         LOGGER.info("Refreshing miui recovery data")
         self.bak_miui_recovery_updates = self.miui_recovery_updates
         self.miui_recovery_updates = await load_recovery_data()
         await asyncio.sleep(60 * 60)
 async def miui_fasboot_loop(self):
     """
     fetch devices' miui fasboot roms data every hour
     """
     while True:
         LOGGER.info("Refreshing miui fasboot data")
         self.bak_miui_fastboot_updates = self.miui_fastboot_updates
         self.miui_fastboot_updates = await load_fastboot_data()
         await asyncio.sleep(60 * 60)
 async def devices_names_loop(self):
     """
     fetch devices' codenames and names every six hours
     """
     while True:
         LOGGER.info("Refreshing devices codenames and names")
         self.codenames_names, self.names_codenames = await load_devices_names(
         )
         await asyncio.sleep(60 * 60 * 6)