synchronized developers and entries
This commit is contained in:
@ -186,7 +186,7 @@ class DevelopersMaintainer:
|
||||
if not self.developers:
|
||||
print('developers not yet loaded')
|
||||
return
|
||||
developer_names = [x['Name'] for x in self.developers]
|
||||
developer_names = list(self.developers.keys())
|
||||
for index, name in enumerate(developer_names):
|
||||
for other_name in developer_names[index + 1:]:
|
||||
if osg.name_similarity(name, other_name) > 0.8:
|
||||
@ -197,9 +197,9 @@ class DevelopersMaintainer:
|
||||
if not self.developers:
|
||||
print('developers not yet loaded')
|
||||
return
|
||||
for dev in self.developers:
|
||||
for dev in self.developers.values():
|
||||
if not dev['Games']:
|
||||
print(' {} has no "Games" field'.format(dev['Name']))
|
||||
print(' {} has no games'.format(dev['Name']))
|
||||
print('orphanes checked')
|
||||
|
||||
def check_for_missing_developers_in_entries(self):
|
||||
@ -209,7 +209,7 @@ class DevelopersMaintainer:
|
||||
if not self.entries:
|
||||
print('entries not yet loaded')
|
||||
return
|
||||
for dev in self.developers:
|
||||
for dev in self.developers.values():
|
||||
dev_name = dev['Name']
|
||||
for entry_name in dev['Games']:
|
||||
x = [x for x in self.entries if x['Title'] == entry_name]
|
||||
@ -222,6 +222,29 @@ class DevelopersMaintainer:
|
||||
print('Entry "{}" listed in developer "{}" but not listed in that entry'.format(entry_name, dev_name))
|
||||
print('missed developer checked')
|
||||
|
||||
def update_developers_from_entries(self):
|
||||
if not self.developers:
|
||||
print('developer not yet loaded')
|
||||
return
|
||||
if not self.entries:
|
||||
print('entries not yet loaded')
|
||||
return
|
||||
# loop over all developers and delete all games
|
||||
for dev in self.developers.values():
|
||||
dev['Games'] = []
|
||||
# loop over all entries and add this game to all developers of this game
|
||||
for entry in self.entries:
|
||||
entry_name = entry['Title']
|
||||
entry_devs = entry.get('Developer', [])
|
||||
for entry_dev in entry_devs:
|
||||
entry_dev = entry_dev.value # ignored the comment
|
||||
if entry_dev in self.developers:
|
||||
self.developers[entry_dev]['Games'].append(entry_name)
|
||||
else:
|
||||
# completely new developer
|
||||
self.developers[entry_dev] = {'Name': entry_dev, 'Games': entry_name}
|
||||
print('developers updated')
|
||||
|
||||
def read_entries(self):
|
||||
self.entries = osg.read_entries()
|
||||
print('{} entries read'.format(len(self.entries)))
|
||||
@ -237,6 +260,7 @@ if __name__ == "__main__":
|
||||
'Check for duplicates': m.check_for_duplicates,
|
||||
'Check for orphans': m.check_for_orphans,
|
||||
'Check for games in developers not listed': m.check_for_missing_developers_in_entries,
|
||||
'Update developers from entries': m.update_developers_from_entries,
|
||||
'Read entries': m.read_entries
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user