Exemplo n.º 1
0
def update_cache():
	# First, make sure that the base XML file is here
	if not os.path.isfile(Settings.local_base_xml_filename()):
		print "Looks like we need to fetch the XML file"
		fetch_xml()

	# Next, try to get any missing episodes
	for number in Settings.get_missing_episodes():
		if Settings.have_podcast(number):
			print "Looks like we already had podcast #{0}".format(number)
			Settings.remove_missing_episode(number)
		else:
			print "Trying to fetch missing episode #{0}".format(number)
			if fetch_pair(number):
				print "   Got it!"
				Settings.remove_missing_episode(number)
			else:
				print "   Failed again"

	# Now, try getting episodes beyond what we already have
	number = Settings.get_highest_episode() + 1
	missing = []
	while len(missing) < Settings.MAX_CONSECUTIVE_404S:
		if Settings.have_podcast(number):
			print "Looks like we already had podcast #{0}".format(number)
			Settings.set_highest_episode(number)
		else:
			print "Checking to see if episode {0} is there".format(number)
			if fetch_pair(number):
				print "   Got it!"
				Settings.set_highest_episode(number)
				# Did we miss some before this? If so, mark them as missed
				if len(missing) > 0:
					for num in missing:
						Settings.add_missing_episode(num)
			else:
				print "   Not there."
				missing.append(number)
			# Otherwise, try for the next episode
		number += 1
	print "Looks like {0} is the highest episode number, so far.".format(Settings.get_highest_episode())