comments update
This commit is contained in:
@ -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/
|
||||
|
@ -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:
|
||||
|
@ -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)))
|
||||
|
@ -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',
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
Reference in New Issue
Block a user