return members
+def copy_existing_data(oldmembers, newmembers):
+ '''
+ Check if newmembers contains some keys and if missing, copy them from
+ oldmembers:
+ colonized, active: if alliance is forced, these keys are not fetched
+ x, y: only fetch them when neded.
+ '''
+ for nick, data in newmembers.items():
+ for key in ['colonized', 'active', 'x', 'y' ]:
+ if data.get(key, None) is None:
+ # missing or None
+ value = oldmembers.get(nick, {}).get(key, None)
+ newmembers[nick][key] = value
+
def members_to_field(members):
"""
Takes a full information dict "members"
newmembers = members_fetch(options.alliance)
if oldmembers is not None:
+ copy_existing_data(oldmembers, newmembers)
csvfilename = os.path.join(BASE_DIRECTORY, 'results.csv')
csvfile = open(csvfilename, mode='a', encoding='utf-8')
field_compare(oldmembers, newmembers, csvfile)
members_csvfilename = os.path.join(BASE_DIRECTORY, "members.csv")
members_csvfilename_new = members_csvfilename + '.new'
f = open(members_csvfilename_new, mode='w', encoding='utf-8')
- f.write('grade,nick,field,techno,anthill,active,colonized\n')
+ f.write('grade,nick,field,techno,anthill,active,colonized,x,y\n')
for nick, data in newmembers.items():
data = [
data['grade'],
data['anthill'],
data['active'],
data['colonized'],
+ data['x'],
+ data['y'],
]
data = [ str(x) for x in data ]
f.write(','.join(data) + '\n')