comments update

This commit is contained in:
Trilarion
2021-02-03 16:40:23 +01:00
parent 9c87fc08ee
commit 575da53feb
58 changed files with 181 additions and 139 deletions

View File

@ -4,10 +4,6 @@ http://antongerdelan.net/blog/ (other projects besides TestDrive)
http://cdetect.sourceforge.net/
http://circularstudios.com/
http://cyxdown.free.fr/bs/
https://projects.tuxfamily.org/ (all of them)
https://www.artsoft.org/rocksndiamonds/
https://web.archive.org/web/20171228172756/http://www.oletus.fi/static/whichwayisup/
https://gitlab.com/luckeyproductions/games (all of them)
http://cyxdown.free.fr/f2b/
http://dead-code.org/home/
http://e-adventure.e-ucm.es/login/index.php (games of eAdventure)
@ -181,6 +177,7 @@ https://en.wikipedia.org/wiki/Catacomb_(video_game) (released under GNU)
https://en.wikipedia.org/wiki/Category:Open-source_video_games (all of them)
https://en.wikipedia.org/wiki/GNOME_Games_Collection
https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_available_source_code
https://en.wikipedia.org/wiki/List_of_cult_video_games (all of them)
https://en.wikipedia.org/wiki/List_of_free_and_open-source_Android_applications#Games
https://en.wikipedia.org/wiki/M.U.G.E.N
https://en.wikipedia.org/wiki/MUD#Spread (all there)
@ -349,7 +346,6 @@ https://github.com/ogarcia/opensudoku
https://github.com/Ogmo-Editor-3/OgmoEditor3-CE
https://github.com/OGRECave/scape
https://github.com/openfl/starling
https://github.com/OpenHV/OpenHV
https://github.com/OpenMandrivaAssociation
https://github.com/OpenMandrivaAssociation/nexuiz/blob/master/nexuiz.spec
https://github.com/OpenRA/d2
@ -378,6 +374,7 @@ https://github.com/qiciengine/qiciengine
https://github.com/Quaver/Wobble
https://github.com/quinnvoker/qurobullet
https://github.com/rakugoteam/Rakugo
https://github.com/RandyGaul/qu3e
https://github.com/rds1983/Jord
https://github.com/rds1983/Myra
https://github.com/redomar/JavaGame
@ -413,6 +410,7 @@ https://github.com/Soldat/soldat
https://github.com/SPC-Some-Polish-Coders/PopHead
https://github.com/SPC-Some-Polish-Coders/PopHead/
https://github.com/Squalr/Squally
https://github.com/SSBMTonberry/tileson
https://github.com/stackos/Viry3D
https://github.com/stolencatkarma/CataclysmLD
https://github.com/Suprcode/mir3-zircon
@ -451,6 +449,7 @@ https://github.com/zcaliptium/gdinv
https://github.com/zhangdoa/InnocenceEngine
https://github.com/zurn/zapper (or any other tapper clone)
https://gitlab.com/LibreGames
https://gitlab.com/luckeyproductions/games (all of them)
https://gitlab.com/nyov/nyovs-nexuiz
https://gitlab.com/vgstation/vgstation-old (and vgstation in general)
https://gitlab.com/xonlegacy/xonlegacy
@ -484,6 +483,7 @@ https://packages.debian.org/sid/games/etw
https://pixeldoctrine.com/index.html (more than just slime volleyball)
https://play.google.com/store/apps/dev?id=8387589286898375037 (where is the source, not open source otherwise)
https://playcanvas.com/
https://projects.tuxfamily.org/ (all of them)
https://pygame.org/project-Dododu-1134-.html
https://pygame.org/project-Lands+of+Elderlore-294-.html
https://pygame.org/project-LOF-2296-.html
@ -546,6 +546,7 @@ https://web.archive.org/web/20060411054656/http://home.gna.org/oomadness/en/inde
https://web.archive.org/web/20150526225753/http://sourceforge.net/projects/mameosx/
https://web.archive.org/web/20150527150705/http://sourceforge.net/p/forge/community-docs/SourceForge%20Games/ (schon erledigt)
https://web.archive.org/web/20170714065728/http://users.olis.net.au/zel/
https://web.archive.org/web/20171228172756/http://www.oletus.fi/static/whichwayisup/
https://wiki.debian.org/Games/Unsuitable
https://www.adventuregamestudio.co.uk/
https://www.allegro.cc/depot/strategy/ (and all other genres there)
@ -560,6 +561,7 @@ https://www.fosshub.com/about.html
https://www.fosslinux.com/
https://www.freegamesutopia.com/
https://www.frictionalgames.com/forum/forum-28.html
https://www.gamingonlinux.com/free-games/ (all of them that are open source)
https://www.glitchthegame.com/ (Glitch the game, by Tiny Speck Inc. public domain)
https://www.libretro.com/
https://www.libsdl.org/

View File

@ -566,7 +566,7 @@ def convert_entries(entries, inspirations, developers):
if isinstance(e[0], osg.osg_parse.ValueWithComment):
e = [x.value for x in e]
if field == 'Code language':
e = [make_url(code_language_references[x.value], make_text(x, 'is-size-7')) for x in e]
e = [make_url(code_language_references[x], make_text(x, 'is-size-7')) for x in e]
elif field == 'Code license' or field == 'Assets license':
e = [make_url(c.license_urls[x], x, css_class='is-size-7') if x in c.license_urls else make_text(x, 'is-size-7') for x in e]
elif field in c.url_fields:

View File

@ -593,7 +593,7 @@ class EntriesMaintainer:
field = 'Code repository'
for entry in self.entries:
popular = False
for repo in entry[field]:
for repo in entry.get(field, []):
for popular_repo in popular_code_repositories:
if popular_repo in repo.value:
popular = True
@ -781,7 +781,7 @@ class EntriesMaintainer:
# for every entry filter those that are known git repositories (add additional repositories)
for entry in self.entries:
repos = entry['Code repository']
repos = entry.get('Code repository', [])
repos = [x.value for x in repos]
# keep the first and all others containing @add
if not repos:
@ -868,6 +868,8 @@ class EntriesMaintainer:
values = [value for entry in self.entries for value in entry.get(field, [])]
if isinstance(values[0], osg_parse.ValueWithComment):
comments = [value.comment for value in values if value.comment]
# split by comma
comments = [c.strip() for comment in comments for c in comment.split(',')]
print('field {} has {} comments'.format(field, len(comments)))
for comment in set(comments):
print(' {} - {}'.format(comment, comments.count(comment)))

View File

@ -53,7 +53,6 @@ valid_fields = ('File', 'Title') + valid_properties + ('Note', 'Building')
url_fields = ('Home', 'Media', 'Play', 'Download', 'Code repository')
valid_url_prefixes = ('http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://')
extended_valid_url_prefixes = valid_url_prefixes + ('@see-', '@not-', '?')
valid_building_properties = ('Build system', 'Build instruction')
valid_building_fields = valid_building_properties + ('Note',)
@ -61,6 +60,9 @@ valid_building_fields = valid_building_properties + ('Note',)
# these are the only valid platforms currently (and must be given in this order)
valid_platforms = ('Windows', 'Linux', 'macOS', 'Android', 'iOS', 'Web')
# these fields are not allowed to have comments
fields_without_comments = ('Inspiration', 'Play', 'Download', 'Platform', 'Code dependency')
# at least one of these must be used for every entry, this gives the principal categories and the order of the categories
recommended_keywords = (
'action', 'arcade', 'adventure', 'visual novel', 'sports', 'platform', 'puzzle', 'role playing', 'simulation',

View File

@ -301,7 +301,7 @@ def check_and_process_entry(entry):
if index == len(c.valid_fields): # must be valid fields and must be in the right order
message += 'Field "{}" either misspelled or in wrong order\n'.format(field)
# order is fine we can convert to dictionary
# order is fine we can convert now to dictionary
d = {}
for field, value in entry:
if field in d:
@ -336,6 +336,13 @@ def check_and_process_entry(entry):
if canonical_file_name != file and canonical_file_name != file[:-5] + '.md':
message += 'file name should be {}\n'.format(canonical_file_name)
# check that fields without comments have no comments, set to field without comment
for field in c.fields_without_comments:
if field in entry:
content = entry[field]
if any(item.has_comment() for item in content):
message += 'field without comments {} has comment\n'.format(field)
# state must contain either beta or mature but not both
state = entry['State']
for t in state:
@ -350,7 +357,7 @@ def check_and_process_entry(entry):
for value in values:
if value.value.startswith('<') and value.value.endswith('>'):
value.value = value.value[1:-1]
if not any(value.startswith(x) for x in c.extended_valid_url_prefixes):
if not any(value.startswith(x) for x in c.valid_url_prefixes):
message += 'URL "{}" in field "{}" does not start with a valid prefix'.format(value, field)
# github/gitlab repositories should end on .git and should start with https

View File

@ -112,6 +112,9 @@ class ValueWithComment:
def is_empty(self):
return self.value == ''
def has_comment(self):
return self.comment is not None
def startswith(self, str):
return self.value.startswith(str)