Protoball:Add Ids to Games Tab

From Protoball
Jump to navigation Jump to search
def add_ids_to_games_tab(site, regions):
	import re
	date_re = re.compile(".*?(?P<day>\d+) (?P<month>(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)), (?P<year>\d+).*?")
	dates = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

	for region in regions:
		page = site.Pages['Games_Tab:' + region]
		text = page.edit()
		lines  = [line for line in text.split("\n")]
		previous_date = ""
		next_is_date = False
		for i, line in enumerate(lines):
			if line.startswith("|-"):
				next_is_date = True
			elif next_is_date:
				m = date_re.match(line)
				if m:
					date = "%s-%s-%s" % (m.group("year"), dates.index(m.group("month")), m.group("day"))
					if date != previous_date:
						lines[i-1] = '|- id="date'+ date + '"'
						previous_date = date
				next_is_date = False
		text = "\n".join(lines)
		page.save(text, "Add ids to rows")