| @@ -22,7 +22,7 @@ def get_founderless_regions(): | |||||
| r = requests.get('https://www.nationstates.net/cgi-bin/api.cgi?q=regionsbytag;tags=founderless', | r = requests.get('https://www.nationstates.net/cgi-bin/api.cgi?q=regionsbytag;tags=founderless', | ||||
| headers=R_HEADERS) | headers=R_HEADERS) | ||||
| tree = et.fromstring(r.text) | tree = et.fromstring(r.text) | ||||
| return tree[0].text.split(',') | |||||
| return [canonicalize(region) for region in tree[0].text.split(',')] | |||||
| def download_region_dump(): | def download_region_dump(): | ||||
| @@ -44,7 +44,8 @@ def get_region_endos(regions): | |||||
| root = tree.getroot() | root = tree.getroot() | ||||
| for region in root: | for region in root: | ||||
| if region[0].text in regions: | if region[0].text in regions: | ||||
| endo_dict[region[0].text] = int(region[5].text) - 1 | |||||
| region_name = canonicalize(region[0].text) | |||||
| endo_dict[region_name] = int(region[5].text) - 1 | |||||
| return endo_dict | return endo_dict | ||||
| @@ -97,17 +98,25 @@ class FounderlessNotify(commands.Cog): | |||||
| await channel.send(f'Beginning {update_type} check...') | await channel.send(f'Beginning {update_type} check...') | ||||
| new_founderless_regions = get_founderless_regions() | new_founderless_regions = get_founderless_regions() | ||||
| previous_founderless_regions = await self.config.previous_founderless() | previous_founderless_regions = await self.config.previous_founderless() | ||||
| # A region is now foundered if it was in the previous list, but isn't in the current list | |||||
| # now_foundered = [region for region in previous_founderless_regions if (region not in new_founderless_regions)] | |||||
| # A region is now founderless if it is in the current list, but wasn't in the previous list | # A region is now founderless if it is in the current list, but wasn't in the previous list | ||||
| now_founderless = [region for region in new_founderless_regions if (region not in previous_founderless_regions)] | now_founderless = [region for region in new_founderless_regions if (region not in previous_founderless_regions)] | ||||
| # Get the region endos for both lists | # Get the region endos for both lists | ||||
| # now_foundered_endos = get_region_endos(now_foundered) | |||||
| now_founderless_endos = get_region_endos(now_founderless) | now_founderless_endos = get_region_endos(now_founderless) | ||||
| message_content = "The following regions are now **Founderless**:\n" | |||||
| # Create an ordered set with each region's name and delegate endorsement level | |||||
| out = [] | |||||
| for region in now_founderless: | for region in now_founderless: | ||||
| message_content += f"https://www.nationstates.net/region={canonicalize(region)} " \ | |||||
| f"({now_founderless_endos[region]})\n" | |||||
| try: | |||||
| region_endos = now_founderless_endos[region] | |||||
| except KeyError: | |||||
| region_endos = -1 | |||||
| out.append((region_endos, region)) | |||||
| # Sort the output by delegate endos in descending order | |||||
| out.sort() | |||||
| out.reverse() | |||||
| # Prep output | |||||
| message_content = "The following regions are now **Founderless**:\n" | |||||
| for region in out: | |||||
| message_content += f"https://www.nationstates.net/region={region[1]} ({region[0]})\n" | |||||
| for page in pagify(message_content): | for page in pagify(message_content): | ||||
| await channel.send(page) | await channel.send(page) | ||||
| await self.config.previous_founderless.set(new_founderless_regions) | await self.config.previous_founderless.set(new_founderless_regions) | ||||