maintenance of entries, backlog, ..
This commit is contained in:
@ -3,33 +3,17 @@ ftp://ftp.tuxpaint.org/unix/x/
|
||||
http://antongerdelan.net/blog/ (other projects besides TestDrive)
|
||||
http://cdetect.sourceforge.net/
|
||||
http://circularstudios.com/
|
||||
https://github.com/SadConsole/SadConsole
|
||||
https://github.com/tlgkccampbell/ultraviolet
|
||||
https://github.com/amerkoleci/Vortice.Windows
|
||||
https://github.com/horde3d/Horde3D
|
||||
https://github.com/delaford/game
|
||||
https://github.com/cxong/cdogs-sdl
|
||||
https://moaiwebsite.github.io/
|
||||
http://cyxdown.free.fr/bs/
|
||||
http://cyxdown.free.fr/f2b/
|
||||
https://github.com/tlgkccampbell/ultraviolet
|
||||
https://github.com/ianfab/Fairy-Stockfish
|
||||
https://github.com/tomlooman/SimpleFPSTemplate
|
||||
https://github.com/nfprojects/nfengine
|
||||
http://dead-code.org/home/
|
||||
http://e-adventure.e-ucm.es/login/index.php (games of eAdventure)
|
||||
http://ethernet.wasted.ch/
|
||||
http://evolonline.org/about
|
||||
http://game-editor.com/Main_Page
|
||||
http://giderosmobile.com/
|
||||
https://github.com/skylicht-lab/skylicht-engine
|
||||
https://github.com/etlegacy/etlegacy
|
||||
https://github.com/Soldat/soldat
|
||||
https://github.com/guillaumechereau/goxel
|
||||
http://haxepunk.com/
|
||||
http://hcsoftware.sourceforge.net/jason-rohrer/ (various games there)
|
||||
https://github.com/cxong/cdogs-sdl
|
||||
https://github.com/terrafx/terrafx
|
||||
http://hge.relishgames.com/
|
||||
http://hgm.nubati.net/
|
||||
http://icculus.org/
|
||||
http://icculus.org/asciiroth/
|
||||
@ -39,7 +23,7 @@ http://icculus.org/blackshades/
|
||||
http://icculus.org/d2x/
|
||||
http://icculus.org/freespace2/
|
||||
http://icculus.org/freyja/
|
||||
http://icculus.org/hge-unix/ http://hge.relishgames.com/
|
||||
http://icculus.org/hge-unix/
|
||||
http://icculus.org/jugglemaster/
|
||||
http://icculus.org/pyddr/
|
||||
http://icculus.org/toby/
|
||||
@ -48,7 +32,6 @@ http://insideastarfilledsky.net/
|
||||
http://lazerbears.wixsite.com/lazerbears/cr-editor
|
||||
http://libagar.org/agar/index.html.en
|
||||
http://libsdl-android.sourceforge.net/
|
||||
http://libsdl-android.sourceforge.net/ (Open source games ported to Android)
|
||||
http://lukaszjakowski.pl/ (games apart from uMario)
|
||||
http://m484games.ucoz.com/
|
||||
http://martindrapeau.github.io/backbone-game-engine/
|
||||
@ -149,7 +132,7 @@ http://www.zsnes.com/ (emulator/platform)
|
||||
https://001gamecreator.com/
|
||||
https://agateau.com/games/
|
||||
https://aleph-one-marathon.github.io/
|
||||
https://alternativeto.net/ (query with only open source as opten)
|
||||
https://alternativeto.net/ (query with only open source as option)
|
||||
https://app.assembla.com/spaces/openrpg/wiki
|
||||
https://app.assembla.com/spaces/Project_Valkyrie2/wiki
|
||||
https://appimage.github.io/categories/Game
|
||||
@ -201,7 +184,8 @@ https://en.wikipedia.org/wiki/Teeworlds
|
||||
https://enigma-dev.org/about.htm
|
||||
https://faq.tuxfamily.org/Games/En
|
||||
https://fedoraproject.org/wiki/SIGs/Games#List_of_games_we_will_NOT_package
|
||||
https://flathub.org/home (use it for Linux packaging) / https://flathub.org/apps/category/Game
|
||||
https://flathub.org/apps/category/Game
|
||||
https://flathub.org/home (use it for Linux packaging)
|
||||
https://forum.freegamedev.net/viewtopic.php?f=20&t=11627
|
||||
https://forums.scummvm.org/viewtopic.php?t=13512&highlight=open+source
|
||||
https://freegamer.blogspot.com (maybe there is something interesting)
|
||||
@ -246,7 +230,8 @@ https://github.com/collections/web-games (only OS)
|
||||
https://github.com/collinhover/kaiopua
|
||||
https://github.com/cookgreen/Yuris-Revenge
|
||||
https://github.com/corewar/corewar.io
|
||||
https://github.com/Cortrah/SpaceOperaDesign, https://github.com/Cortrah/SpaceOperaRuby/blob/master/design/turnstyles.md
|
||||
https://github.com/Cortrah/SpaceOperaDesign
|
||||
https://github.com/Cortrah/SpaceOperaRuby/blob/master/design/turnstyles.md
|
||||
https://github.com/cping/LGame
|
||||
https://github.com/cymonsgames/CymonsGames (collection)
|
||||
https://github.com/DaanVanYperen/artemis-odb-contrib
|
||||
@ -284,10 +269,13 @@ https://github.com/godot-extended-libraries/godot-next
|
||||
https://github.com/godot-mega-man/Mega-Man-Engine
|
||||
https://github.com/godotengine/godot-design
|
||||
https://github.com/grantjenks/free-python-games (check all)
|
||||
https://github.com/guillaumechereau/goxel
|
||||
https://github.com/H-uru/Plasma
|
||||
https://github.com/horde3d/Horde3D
|
||||
https://github.com/Hotride/OrionUO
|
||||
https://github.com/hparcells/cards-against-humanity
|
||||
https://github.com/i42output/neoGFX
|
||||
https://github.com/ianfab/Fairy-Stockfish
|
||||
https://github.com/ictrobot/Cubes
|
||||
https://github.com/id-Software
|
||||
https://github.com/Illation/ETEngine
|
||||
@ -325,6 +313,7 @@ https://github.com/MustaphaTR/Romanovs-Vengeance
|
||||
https://github.com/MyGUI/mygui
|
||||
https://github.com/MyreMylar/pygame_gui
|
||||
https://github.com/nCine/nCine
|
||||
https://github.com/nfprojects/nfengine
|
||||
https://github.com/Noesis/UE4-ShooterGame
|
||||
https://github.com/ogarcia/opensudoku
|
||||
https://github.com/OGRECave/scape
|
||||
@ -375,8 +364,10 @@ https://github.com/senior-sigan/WHY_CPP
|
||||
https://github.com/septag/glslcc
|
||||
https://github.com/septag/rizz
|
||||
https://github.com/sinshu/managed-doom
|
||||
https://github.com/skylicht-lab/skylicht-engine
|
||||
https://github.com/skypjack/entt
|
||||
https://github.com/smlinux/nexuiz
|
||||
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
|
||||
@ -386,12 +377,15 @@ https://github.com/Suprcode/mir3-zircon
|
||||
https://github.com/Sygmei/ObEngine
|
||||
https://github.com/tainicom/Aether.Physics2D
|
||||
https://github.com/tangziwen/Cube-Engine
|
||||
https://github.com/terrafx/terrafx
|
||||
https://github.com/the-insulines
|
||||
https://github.com/theaigames
|
||||
https://github.com/TheGameCreators/GameGuruRepo
|
||||
https://github.com/Tinob/Ishiiruka (https://github.com/shiiion/Ishiiruka, https://github.com/SirMangler/PrimeHack-Updater)
|
||||
https://github.com/tizian/Cendric2
|
||||
https://github.com/tlgkccampbell/ultraviolet
|
||||
https://github.com/TomBebb/awe
|
||||
https://github.com/tomlooman/SimpleFPSTemplate
|
||||
https://github.com/topics/top-down-shooter
|
||||
https://github.com/uberspot/2048-android
|
||||
https://github.com/untakenstupidnick/nbsdgames (Blockout II)
|
||||
@ -432,6 +426,7 @@ https://libregamewiki.org/index.php?title=Libregamewiki_talk:Community_Portal&ol
|
||||
https://libregamewiki.org/Libregamewiki:Suggested_games#Likely_sources_for_more_free_games
|
||||
https://lmemsm.dreamwidth.org/8013.html (List of some of my favorite Open Source games)
|
||||
https://love2d.org/forums/viewforum.php?f=14 (check them if time)
|
||||
https://moaiwebsite.github.io/
|
||||
https://notabug.org/Calinou/awesome-gamedev#games
|
||||
https://odr.chalmers.se/handle/20.500.12380/219006
|
||||
https://osdn.net/softwaremap/trove_list.php?form_cat=80
|
||||
|
@ -45,19 +45,6 @@ def extract_links():
|
||||
urls = sorted(list(urls), key=str.casefold)
|
||||
return urls
|
||||
|
||||
def split_infos(infos):
|
||||
"""
|
||||
Split into games, tools, frameworks, libraries
|
||||
"""
|
||||
games = [x for x in infos if not any([y in x['keywords'] for y in ('tool', 'framework', 'library')])]
|
||||
tools = [x for x in infos if 'tool' in x['keywords']]
|
||||
frameworks = [x for x in infos if 'framework' in x['keywords']]
|
||||
libraries = [x for x in infos if 'library' in x['keywords']]
|
||||
return games, tools, frameworks, libraries
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -745,24 +732,6 @@ def sort_text_file(file, name):
|
||||
utils.write_text(file, text)
|
||||
|
||||
|
||||
def clean_backlog(stripped_game_urls):
|
||||
# read backlog and split
|
||||
file = os.path.join(c.root_path, 'code', 'backlog.txt')
|
||||
text = utils.read_text(file)
|
||||
text = text.split('\n')
|
||||
|
||||
# remove those that are in stripped_game_urls
|
||||
text = [x for x in text if utils.strip_url(x) not in stripped_game_urls]
|
||||
|
||||
# remove duplicates and sort
|
||||
text = sorted(list(set(text)), key=str.casefold)
|
||||
print('backlog contains {} items'.format(len(text)))
|
||||
|
||||
# join and save again
|
||||
text = '\n'.join(text)
|
||||
utils.write_text(file, text)
|
||||
|
||||
|
||||
def check_validity_backlog():
|
||||
import requests
|
||||
|
||||
|
@ -14,6 +14,9 @@ code_path = os.path.join(root_path, 'code')
|
||||
inspirations_file = os.path.join(root_path, 'inspirations.md')
|
||||
developer_file = os.path.join(root_path, 'developers.md')
|
||||
|
||||
backlog_file = os.path.join(code_path, 'backlog.txt')
|
||||
rejected_file = os.path.join(code_path, 'rejected.txt')
|
||||
|
||||
# local config
|
||||
local_config_file = os.path.join(root_path, 'local-config.ini')
|
||||
|
||||
@ -43,7 +46,8 @@ 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://', '@see-', '@not-', '?')
|
||||
valid_url_prefixes = ('http://', 'https://', 'git://', 'svn://', 'ftp://', 'bzr://')
|
||||
extended_valid_url_prefixes = valid_url_prefixes + ('@see-', '@not-', '?')
|
||||
|
||||
valid_building_properties = ('Build system', 'Build instructions')
|
||||
valid_building_fields = valid_building_properties + ('Note',)
|
||||
|
@ -321,7 +321,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 valid_url_prefixes):
|
||||
if not any(value.startswith(x) for x in extended_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
|
||||
@ -381,7 +381,6 @@ def extract_inactive_year(entry):
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def write_entries(entries):
|
||||
"""
|
||||
|
||||
@ -467,3 +466,37 @@ def create_entry_content(entry):
|
||||
content += entry['Building']['Note']
|
||||
|
||||
return content
|
||||
|
||||
|
||||
def is_url(str):
|
||||
"""
|
||||
Could be too generous. See https://stackoverflow.com/questions/7160737/how-to-validate-a-url-in-python-malformed-or-not for other possibilities.
|
||||
:param str:
|
||||
:return:
|
||||
"""
|
||||
if any(str.startswith(x) for x in valid_url_prefixes) and not ' ' in str:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def all_urls(entries):
|
||||
"""
|
||||
Gets all urls of all entries in a dictionary (key=url value=list of entries (file name) with this url
|
||||
:param entries:
|
||||
:return:
|
||||
"""
|
||||
urls = {}
|
||||
# iterate over entries
|
||||
for entry in entries:
|
||||
file = entry['File']
|
||||
for field in url_fields: # TODO there are other fields, maybe just regex on the whole content
|
||||
for value in entry.get(field, []):
|
||||
if value.comment:
|
||||
value = value.value + ' ' + value.comment
|
||||
else:
|
||||
value = value.value
|
||||
for subvalue in value.split(' '):
|
||||
subvalue = subvalue.strip()
|
||||
if is_url(subvalue):
|
||||
urls[subvalue] = urls.get(subvalue, []) + [file]
|
||||
return urls
|
Reference in New Issue
Block a user