// load the mirror list
Mirror[] serverDefindeMirros = getServerDefinedMirrors();
Mirror[] mirrorArr = Mirror.loadMirrorList(new File(mDataDir, getId() + "_" + Mirror.MIRROR_LIST_FILE_NAME), mMirrorUrlArr, serverDefindeMirros);
// Get a random Mirror that is up to date
Mirror mirror = Mirror.chooseUpToDateMirror(mirrorArr, monitor, getName(), getId(), TvBrowserDataServiceChannelGroup.class, " Please contact the TV data provider for help.");
if(mirror != null) {
mLog.info("Using mirror " + mirror.getUrl());
// Update the mirrorlist (for the next time)
updateMetaFile(mirror.getUrl(), getId() + "_" + Mirror.MIRROR_LIST_FILE_NAME);
// Update the groupname file
updateMetaFile(mirror.getUrl(), getId() + "_info");
// Update the channel list
updateChannelList(mirror, true);
return getAvailableChannels();
}