imports from osgameclones, added backlog and rejected lists, started libregamewiki synchronization

This commit is contained in:
Trilarion
2019-08-26 15:39:29 +02:00
parent acb0763f59
commit 135d5b3968
67 changed files with 1468 additions and 188 deletions

View File

@ -79,6 +79,7 @@
"https://github.com/BackupTheBerlios/netpanzer-svn.git",
"https://github.com/BlindMindStudios/StarRuler2-Source.git",
"https://github.com/Blzut3/CatacombSDL.git",
"https://github.com/CamHenlin/ExecutiveMan.git",
"https://github.com/CamHenlin/Roguish.git",
"https://github.com/ChaosForge/doomrl.git",
"https://github.com/Circular-Studios/Dash.git",
@ -107,6 +108,7 @@
"https://github.com/Illarion-eV/Illarion-Server.git",
"https://github.com/Interkarma/daggerfall-unity.git",
"https://github.com/Interrupt/delverengine.git",
"https://github.com/Kerndog73/EnTT-Pacman.git",
"https://github.com/Kromster80/kam_remake.git",
"https://github.com/LWJGL/lwjgl3.git",
"https://github.com/Leejjon/Battleround.git",
@ -140,6 +142,7 @@
"https://github.com/OpenTTD/OpenTTD.git",
"https://github.com/PCGen/pcgen.git",
"https://github.com/PlatinumArts/Platinum-Arts-Sandbox-Free-Game-Maker.git",
"https://github.com/Project-F/F.LF.git",
"https://github.com/REGoth-project/REGoth-bs.git",
"https://github.com/REGoth-project/REGoth.git",
"https://github.com/Rails-18xx/Rails.git",
@ -152,9 +155,11 @@
"https://github.com/Scorched-Moon/server.git",
"https://github.com/SimHacker/micropolis.git",
"https://github.com/SimonAlling/kurve.git",
"https://github.com/SimonLarsen/duckmarines.git",
"https://github.com/SpaceTraderGame/SpaceTrader-Windows.git",
"https://github.com/SupSuper/OpenXcom.git",
"https://github.com/TASVideos/desmume.git",
"https://github.com/TIHan/FQuake3.git",
"https://github.com/TVTower/TVTower.git",
"https://github.com/TheAssemblyArmada/Chronoshift.git",
"https://github.com/TimPietrusky/asdf.git",
@ -187,11 +192,13 @@
"https://github.com/akarnokd/open-ig.git",
"https://github.com/albertz/openlierox.git",
"https://github.com/alemart/opensurge.git",
"https://github.com/alexknvl/fonline.git",
"https://github.com/alphaonex86/CatchChallenger.git",
"https://github.com/anael-seghezzi/Maratis-4.git",
"https://github.com/andrettin/wyrmsun.git",
"https://github.com/andybalaam/rabbit-escape.git",
"https://github.com/angband/angband.git",
"https://github.com/anirudhjoshi/fluid_table_tennis.git",
"https://github.com/antionio/game-off-2013.git",
"https://github.com/anttisalonen/kingdoms.git",
"https://github.com/aperture-software/colditz-escape.git",
@ -203,6 +210,7 @@
"https://github.com/blockattack/blockattack-game.git",
"https://github.com/boostorg/boost.git",
"https://github.com/bote-team/bote.git",
"https://github.com/bradharding/doomretro.git",
"https://github.com/brandon-rhodes/python-adventure.git",
"https://github.com/bridgecommand/bc.git",
"https://github.com/bsutton/BattlefieldJava.git",
@ -223,26 +231,35 @@
"https://github.com/crawl/crawl.git",
"https://github.com/cthielen/Epiar.git",
"https://github.com/cubosphere/cubosphere-code.git",
"https://github.com/cxong/FallingTime.git",
"https://github.com/cxong/cdogs-sdl.git",
"https://github.com/daid/EmptyEpsilon.git",
"https://github.com/daid/SeriousProton.git",
"https://github.com/darklegion/tremulous.git",
"https://github.com/davidjoffe/dave_gnukem.git",
"https://github.com/delight-im/OpenSoccer.git",
"https://github.com/dgengin/DGEngine.git",
"https://github.com/dhewm/dhewm3.git",
"https://github.com/diasurgical/devilution.git",
"https://github.com/diasurgical/devilutionX.git",
"https://github.com/djyt/cannonball.git",
"https://github.com/dmecke/OpenSoccerStar.git",
"https://github.com/dorkster/freeblocks.git",
"https://github.com/doxygen/doxygen.git",
"https://github.com/dreamchess/dreamchess.git",
"https://github.com/dsallen7/ransack-python.git",
"https://github.com/dulsi/btbuilder.git",
"https://github.com/dungeons-of-moria/umoria.git",
"https://github.com/dxx-rebirth/dxx-rebirth.git",
"https://github.com/ec429/harris.git",
"https://github.com/egoboo/egoboo.git",
"https://github.com/ellisonleao/clumsy-bird.git",
"https://github.com/emezeske/digbuild.git",
"https://github.com/endless-sky/endless-sky.git",
"https://github.com/enigma-dev/enigma-dev.git",
"https://github.com/etlegacy/etlegacy.git",
"https://github.com/exult/exult.git",
"https://github.com/ezQuake/ezquake-source.git",
"https://github.com/fabianschuiki/OpenSkyscraper.git",
"https://github.com/fabiensanglard/chocolate_duke3D.git",
"https://github.com/fariazz/World-of-Heroes.git",
@ -257,7 +274,6 @@
"https://github.com/freeors/War-Of-Kingdom.git",
"https://github.com/freeserf/freeserf.git",
"https://github.com/gabrielecirulli/2048.git",
"https://github.com/galaxyhaxz/devilution.git",
"https://github.com/gemrb/gemrb.git",
"https://github.com/glennrp/libpng.git",
"https://github.com/goblinhack/goblinhack.git",
@ -278,6 +294,7 @@
"https://github.com/hhirsch/ardentryst.git",
"https://github.com/hinogi/eternalwinterwars.git",
"https://github.com/iamCode/Dawn.git",
"https://github.com/id-Software/DOOM-iOS.git",
"https://github.com/ihofmann/open-websoccer.git",
"https://github.com/infidel-/cult.git",
"https://github.com/institution/cc94.git",
@ -293,6 +310,7 @@
"https://github.com/jpmalkiewicz/decker.git",
"https://github.com/jsettlers/settlers-remake.git",
"https://github.com/juanjepl/polisgame.git",
"https://github.com/juzzlin/DustRacing2D.git",
"https://github.com/jwvhewitt/dmeternal.git",
"https://github.com/jwvhewitt/gearhead-1.git",
"https://github.com/jwvhewitt/gearhead-2.git",
@ -352,20 +370,25 @@
"https://github.com/qirien/personal-space.git",
"https://github.com/qt/qtbase.git",
"https://github.com/raduprv/Eternal-Lands.git",
"https://github.com/rafaelcastrocouto/enduro.git",
"https://github.com/rayjohannessen/songofalbion.git",
"https://github.com/red-eclipse/base.git",
"https://github.com/richardjs/Maelstrom.git",
"https://github.com/riksweeney/edgar.git",
"https://github.com/rohit-n/Clonepoint.git",
"https://github.com/rotators/play-fonline-data.git",
"https://github.com/sabetts/bratwurst.git",
"https://github.com/sago007/annchienta.git",
"https://github.com/samcv/brainworkshop.git",
"https://github.com/sandsmark/freeaoe.git",
"https://github.com/scottschiller/ArmorAlley.git",
"https://github.com/scummvm/scummvm.git",
"https://github.com/segrax/DrCreep.git",
"https://github.com/shinyquagsire23/DesktopAdventures.git",
"https://github.com/silverweed/lifish.git",
"https://github.com/simeonpilgrim/coab.git",
"https://github.com/singularity/singularity.git",
"https://github.com/skyjake/Doomsday-Engine.git",
"https://github.com/snauts/game-lv.git",
"https://github.com/spring/spring.git",
"https://github.com/stephank/arashi-js.git",
@ -388,6 +411,7 @@
"https://github.com/thousandparsec/tpserver-cpp.git",
"https://github.com/topherredden/freestars.git",
"https://github.com/triplea-game/triplea.git",
"https://github.com/ttyborg/erampage.git",
"https://github.com/ufo2000/ufo2000.git",
"https://github.com/ufoai/ufoai.git",
"https://github.com/unknown-horizons/unknown-horizons.git",
@ -404,6 +428,7 @@
"https://github.com/weidai11/cryptopp.git",
"https://github.com/wesnoth/wesnoth.git",
"https://github.com/wfx/teg.git",
"https://github.com/wheybags/freeablo.git",
"https://github.com/whoozle/btanks.git",
"https://github.com/widelands/widelands.git",
"https://github.com/worldforge/cyphesis.git",
@ -598,6 +623,7 @@
"https://bitbucket.org/Darthman/quad/src",
"https://bitbucket.org/allacrost/allacrost/src",
"https://bitbucket.org/arigo/bub-n-bros",
"https://bitbucket.org/ecwolf/ecwolf",
"https://bitbucket.org/featheredmelody/lost-sky-project-public/src",
"https://bitbucket.org/genericcontainer/goblin-camp/src",
"https://bitbucket.org/giszmo/glob2",

247
tools/backlog.txt Normal file
View File

@ -0,0 +1,247 @@
dark city (https://github.com/darken33) maybe he wants to import from sourceforge, ansonsten svn import to github
DOOM engine (https://github.com/id-Software/DOOM)
endgame singularity recursive clone (bei anderen auch)
fosslinux.com
github - dwarfcorp
github.com/Attnam/ivan
gitlab.com/librebob/athenaeum
Hedgewars
heXon
holyspirit/lechemindeladam cvs conversion?
http://directpython.sourceforge.net/
http://icculus.org/airstrike/
http://icculus.org/asciiroth/
http://icculus.org/avp/
http://icculus.org/bitstream/
http://icculus.org/blackshades/
http://icculus.org/d2x/
http://icculus.org/duke3d/
http://icculus.org/freespace2/
http://icculus.org/freyja/
http://icculus.org/hge-unix/ http://hge.relishgames.com/
http://icculus.org/jugglemaster/
http://icculus.org/jumpnbump/
http://icculus.org/pyddr/
http://icculus.org/rott/
http://icculus.org/tennix/
http://icculus.org/toby/
http://libsdl-android.sourceforge.net/
http://linball.sourceforge.net/
http://psyco.sourceforge.net/
http://pyopengl.sourceforge.net/
http://sam.zoy.org/monsterz/
http://vamos.sourceforge.net/
http://www.fifengine.net/
http://www.newbreedsoftware.com/s
http://www.plasmapong.com/plasma-pong/plasma-pong/
http://www.zsnes.com/ emulator/platform
https://appimage.org/
https://blends.debian.org/games/tasks/
https://cocainediesel.fun/
https://duion.com/games/uebergame/main
https://empiredirectory.net/
https://empiredirectory.net/index.php/downloads/viewdownload/6-server-software/13-empire-server
https://en.wikipedia.org/w/index.php?title=Etterna_(Game)&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=GNU_Backgammon&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Golden_Age_of_Civilizations&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Kdegames&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Minetest&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Simon_Tatham%27s_Portable_Puzzle_Collection&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Simple_Solitaire_Collection&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Super_Tux_Party&action=edit&redlink=1
https://en.wikipedia.org/w/index.php?title=Trigger_Rally&action=edit&redlink=1
https://en.wikipedia.org/wiki/Abuse_(video_game)
https://en.wikipedia.org/wiki/Arx_Fatalis
https://en.wikipedia.org/wiki/AssaultCube prop. content
https://en.wikipedia.org/wiki/Crystal_Space
https://en.wikipedia.org/wiki/GNOME_Games_Collection
https://en.wikipedia.org/wiki/GNU_Chess
https://en.wikipedia.org/wiki/GNU_Go
https://en.wikipedia.org/wiki/List_of_commercial_video_games_with_available_source_code
https://en.wikipedia.org/wiki/MUD#Spread
https://en.wikipedia.org/wiki/MUD_client
https://en.wikipedia.org/wiki/No_Gravity_(video_game)
https://en.wikipedia.org/wiki/One_Hour_One_Life
https://en.wikipedia.org/wiki/Passage_(video_game)
https://en.wikipedia.org/wiki/Rigs_of_Rods
https://en.wikipedia.org/wiki/Rocks%27n%27Diamonds
https://en.wikipedia.org/wiki/Scorched_3D
https://en.wikipedia.org/wiki/Seven_Kingdoms_(video_game)
https://en.wikipedia.org/wiki/Sopwith_(video_game)
https://en.wikipedia.org/wiki/StepMania
https://en.wikipedia.org/wiki/SuperTux
https://en.wikipedia.org/wiki/Teeworlds
https://en.wikipedia.org/wiki/Ten%C3%A9s_Empanadas_Graciela
https://en.wikipedia.org/wiki/Tux,_of_Math_Command
https://en.wikipedia.org/wiki/Warmux
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://freegamer.blogspot.com/2015/11/top-3-open-source-pinball-games.html
https://futurepinball.com/
https://github.com/a-nikolaev/curseofwar
https://github.com/afritz1/OpenTESArena
https://github.com/ajweeks/FlexEngine
https://github.com/amerkoleci/alimer
https://github.com/amerkoleci/vortice
https://github.com/AmrikSadhra/OpenNFS
https://github.com/amroibrahim/DIYDoom
https://github.com/angband/angband
https://github.com/Anthonymcqueen21/Pygame---Alien-Invasion
https://github.com/ao-libre/ao-cliente
https://github.com/apsillers/lords-of-the-fey
https://github.com/apsillers/Taggem
https://github.com/arianne/stendhal
https://github.com/ArmageddonGames/ZeldaClassic
https://github.com/AxioDL/urde
https://github.com/b3dgs/lionengine
https://github.com/bitcraft/PyTMX
https://github.com/bvschaik/julius
https://github.com/ByoxCode/DrawView
https://github.com/Calinou/libre-pinball
https://github.com/Chluverman/android-gltron
https://github.com/Chris3606/GoRogue
https://github.com/ChrisDill/Raylib-cs
https://github.com/codepath/android_snake_game
https://github.com/collections/game-engines (only OS)
https://github.com/collections/javascript-game-engines (only OS)
https://github.com/collections/pixel-art-tools (tools)
https://github.com/collections/productivity-tools (maybe for statistical purposes)
https://github.com/collections/software-development-tools (maybe we can apply some of them across the board)
https://github.com/collections/tools-for-open-source (maybe we can apply some)
https://github.com/collections/web-games (only OS)
https://github.com/CompletelyFairGames/dwarfcorp
https://github.com/Cortrah/SpaceOperaDesign, https://github.com/Cortrah/SpaceOperaRuby/blob/master/design/turnstyles.md
https://github.com/cubei/FlappyCow
https://github.com/cxong/cdogs-sdl
https://github.com/cyberegoorg/cetech
https://github.com/DaemonEngine/Daemon
https://github.com/Dariasteam/TowerJumper
https://github.com/demonixis/C3DE
https://github.com/discosultan/penumbra
https://github.com/eprikazchikov/thunder
https://github.com/ErikLetson/torso-ninja
https://github.com/ErikLetson/torso-ninja-2
https://github.com/Esenthel/EsenthelEngine
https://github.com/estevaofon/angry-birds-python
https://github.com/etternagame/etterna
https://github.com/francot514/FreeSims
https://github.com/freeboardgame/FreeBoardGame.org
https://github.com/FreeCol/freecol
https://github.com/FreezingMoon/AncientBeast
https://github.com/gamearians
https://github.com/GentenStudios/quartz-engine
https://github.com/GlPortal/glPortal
https://github.com/GunshipPenguin/open_flood
https://github.com/hedgewars/hw
https://github.com/hparcells/cards-against-humanity
https://github.com/Interkarma/daggerfall-unity
https://github.com/Interrupt/delverengine
https://github.com/jcarolus/android-chess
https://github.com/juzzlin/DustRacing2D
https://github.com/lexica/lexica
https://github.com/magefree/mage
https://github.com/marukrap/ProceduralMapGenerator
https://github.com/miki151/keeperrl
https://github.com/MovingBlocks/DestinationSol
https://github.com/nicolodavis/boardgame.io
https://github.com/notapixelstudio/superstarfighter
https://github.com/Novum/vkQuake
https://github.com/NYRDS/remixed-dungeon
https://github.com/OpenDungeons/OpenDungeons
https://github.com/openitg/openitg
https://github.com/OpenMandrivaAssociation
https://github.com/opensourcedesign
https://github.com/opentomb/OpenTomb
https://github.com/OpMonTeam/OpMon
https://github.com/OSSGames
https://github.com/OSSGames/GAME-SDL-ACTION-Blobwars_Metal_Blob_Solid
https://github.com/PanosK92/SpartanEngine
https://github.com/pelya/commandergenius
https://github.com/pld-linux
https://github.com/raysan5/rfxgen
https://github.com/REGoth-project/REGoth-bs
https://github.com/romlok/godot-gdhexgrid
https://github.com/RonenNess/GeonBit.UI
https://github.com/rpgboss/rpgboss
https://github.com/rwengine/openrw
https://github.com/saniv/free-game-art/blob/master/foss-copyright-infringement-records.md
https://github.com/search?p=1&q=sunrider&type=Repositories, sunrider
https://github.com/smcameron/space-nerds-in-space
https://github.com/SneakyTactician/MagicalLife
https://github.com/sourcehold/Sourcehold
https://github.com/sphair/ClanLib
https://github.com/sromku/memory-game
https://github.com/stephenjsweeney/blobwarsAttrition
https://github.com/STJr/SRB2
https://github.com/SuperTux/supertux
https://github.com/taisei-project/taisei
https://github.com/team-eternity/eternity
https://github.com/The-Powder-Toy/The-Powder-Toy
https://github.com/theaigames
https://github.com/TheAssemblyArmada/Chronoshift
https://github.com/TheAssemblyArmada/Thyme
https://github.com/tonihele/OpenKeeper
https://github.com/tpcstld/2048
https://github.com/unknown-horizons/godot-port
https://github.com/ValyriaTear/ValyriaTear
https://github.com/vilbeyli/VQEngine
https://github.com/Vocaluxe/Vocaluxe
https://github.com/Wargus/stratagus
https://github.com/wesnoth/haldric
https://github.com/xLAva/JediOutcastLinux
https://github.com/XProger/OpenLara
https://github.com/xyzz/openmw-android
https://github.com/yairm210/UnCiv
https://github.com/yiotro/Antiyoy
https://keeperrl.com/
https://lgdb.org/game/wolfpack-empire
https://libregamewiki.org/Libregamewiki:Suggested_games#Likely_sources_for_more_free_games
https://neverball.org/
https://openage.sft.mx/
https://osdn.net/softwaremap/trove_list.php?form_cat=80
https://packages.debian.org/sid/games/etw
https://play.google.com/store/apps/dev?id=8387589286898375037 (where is the source, not open source otherwise)
https://pypi.org/project/CherryPy/
https://pypi.org/project/neteria/
https://pypi.org/project/networkx/
https://pypi.org/project/PyAMF/
https://pypi.org/project/simplejson/
https://pypi.org/project/SQLAlchemy/
https://pypi.org/project/TurboGears/
https://revolutionarygamesstudio.com/ Trhive
https://salsa.debian.org/games-team/etw
https://secretchronicles.org/en/
https://sourceforge.net/projects/actiongame/
https://sourceforge.net/projects/deng/
https://sourceforge.net/projects/ettu/
https://sourceforge.net/projects/hhexen/
https://sourceforge.net/projects/librecardgame/
https://sourceforge.net/projects/mininghaze/ - download didn't work
https://sourceforge.net/projects/pinball/
https://sourceforge.net/projects/pixellight/
https://sourceforge.net/projects/realmforge/
https://sourceforge.net/projects/uhexen2/
https://sourceforge.net/projects/vpinball/
https://sourceforge.net/projects/webchess/
https://sourceforge.net/projects/zaz/
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://wiki.debian.org/Games/Unsuitable
https://www.fosshub.com/about.html
https://www.reddit.com/r/opensource/comments/cs6m3y/a_list_of_fossrelated_projects_people_to_follow/
https://www.reddit.com/r/opensourcegames/
https://www.reddit.com/r/opensourcegames/comments/celw6c/top_3_open_source_pinball_games_2015/
https://www.renpy.org/ (also all projects linked there)
https://zope.readthedocs.io/en/latest/
lionengine github
nexuiz - https://github.com/atphalix/nexuiz
nexuiz - https://github.com/OpenMandrivaAssociation/nexuiz/blob/master/nexuiz.spec
nexuiz - https://github.com/pld-linux/nexuiz/blob/master/nexuiz.spec
nexuiz - https://github.com/smlinux/nexuiz
nexuiz - https://gitlab.com/nyov/nyovs-nexuiz
nexuiz - https://gitlab.com/xonlegacy/xonlegacy
pyglet
Quatter
query alternativeto with only open source...
TrueCraft
wxPython

View File

@ -7,7 +7,7 @@ unique imported fields: 'assets license', 'categories', 'code language', 'code l
"""
import json
from utils.utils import *
from utils.osg import *
def get_unique_field_content(field, entries):
@ -21,14 +21,60 @@ def get_unique_field_content(field, entries):
return sorted(list(unique_content))
platform_replacements = {'Mac': 'macOS'}
name_replacements = {'Eat the Whistle': 'Eat The Whistle', 'Scorched 3D': 'Scorched3D', 'Silver Tree': 'SilverTree', 'Blob Wars Episode 1 : Metal Blob Solid': 'Blobwars: Metal Blob Solid',
'Fall Of Imiryn': 'Fall of Imiryn', 'Liquid War 6': 'Liquid War', 'Gusanos': 'GUSANOS'}
language_replacements = {'lua': 'Lua'}
ignored_languages = ['HTML', 'XML', 'WML']
def list_compare(a, b, k):
"""
"""
x = [x for x in a if x not in b]
p = ''
for x in x:
p += ' {} {} missing\n'.format(k, x)
return p
if __name__ == "__main__":
similarity_threshold = 0.8
# paths
root_path = os.path.realpath(os.path.join(os.path.dirname(__file__), os.path.pardir))
# import lgw import
json_path = os.path.join(os.path.dirname(__file__), 'lgw_import.json')
json_path = os.path.join(root_path, 'tools', 'lgw_import.json')
text = read_text(json_path)
lgw_entries = json.loads(text)
# perform replacements and disregarding
for index, lgw_entry in enumerate(lgw_entries):
if lgw_entry['name'] in name_replacements:
lgw_entry['name'] = name_replacements[lgw_entry['name']]
if 'code language' in lgw_entry:
languages = lgw_entry['code language']
languages = ['Python' if x.startswith('Python') else x for x in languages]
languages = ['PHP' if x.startswith('PHP') else x for x in languages]
h = []
for l in languages:
for g in ('/', 'and'):
if g in l:
l = l.split(g)
l = [x.strip() for x in l]
if type(l) == str:
l = [l]
h.extend(l)
languages = ['C++' if x.startswith('C++') else x for x in h]
languages = ['C' if x.startswith('C ') else x for x in languages]
languages = [language_replacements[x] if x in language_replacements else x for x in languages]
languages = [x for x in languages if x not in ignored_languages]
lgw_entry['code language'] = languages
lgw_entries[index] = lgw_entry
# check for unique field names
unique_fields = set()
for lgw_entry in lgw_entries:
@ -44,4 +90,52 @@ if __name__ == "__main__":
print('{}: {}'.format('library', get_unique_field_content('library', lgw_entries)))
print('{}: {}'.format('code license', get_unique_field_content('code license', lgw_entries)))
print('{}: {}'.format('assets license', get_unique_field_content('assets license', lgw_entries)))
print('{}: {}'.format('engine', get_unique_field_content('engine', lgw_entries)))
print('{}: {}'.format('engine', get_unique_field_content('engine', lgw_entries)))
# read our database
games_path = os.path.join(root_path, 'games')
our_entries = assemble_infos(games_path)
print('{} entries with us'.format(len(our_entries)))
# just the names
lgw_names = set([x['name'] for x in lgw_entries])
our_names = set([x['name'] for x in our_entries])
common_names = lgw_names & our_names
lgw_names -= common_names
our_names -= common_names
print('{} in both, {} only in LGW, {} only with us'.format(len(common_names), len(lgw_names), len(our_names)))
# find similar names among the rest
#print('similar names')
#for lgw_name in lgw_names:
# for our_name in our_names:
# if game_name_similarity(lgw_name, our_name) > similarity_threshold:
# print('{} - {}'.format(lgw_name, our_name))
# iterate over their entries
print('\n')
for lgw_entry in lgw_entries:
lgw_name = lgw_entry['name']
is_included = False
for our_entry in our_entries:
our_name = our_entry['name']
# find those that entries in LGW that are also in our database and compare them
if lgw_name == our_name:
is_included = True
# a match, check the fields
name = lgw_name
p = ''
# platform
key = 'platform'
p += list_compare(lgw_entry.get(key, []), our_entry.get(key, []), key)
# code language
key = 'code language'
p += list_compare(lgw_entry.get(key, []), our_entry.get(key, []), key)
if p:
print('{}\n{}'.format(name, p))

View File

@ -731,6 +731,19 @@ def export_git_code_repositories_json():
text = json.dumps(urls, indent=1)
write_text(json_path, text)
def sort_text_file(file, name):
"""
Reads a text file, splits in lines, removes duplicates, sort, writes back.
"""
text = read_text(file)
text = text.split('\n')
text = sorted(list(set(text)), key=str.casefold)
print('{} contains {} items'.format(name, len(text)))
text = '\n'.join(text)
write_text(file, text)
if __name__ == "__main__":
# paths
@ -763,3 +776,7 @@ if __name__ == "__main__":
# check external links (only rarely)
# check_validity_external_links()
# sort backlog and rejected
sort_text_file(os.path.join(root_path, 'tools', 'backlog.txt'), 'backlog')
sort_text_file(os.path.join(root_path, 'tools', 'rejected.txt'), 'rejected games list')

View File

@ -35,21 +35,17 @@ video: not used
"""
import ruamel_yaml as yaml
from difflib import SequenceMatcher
from utils.osg import *
# should change on osgameclones
osgc_name_aliases = {}
osgc_name_aliases = {'4DTris': '4D-TRIS', 'fheroes2': 'Free Heroes 2'}
# conversion between licenses
osgc_licenses_map = {'GPL2': 'GPL-2.0', 'GPL3': 'GPL-3.0', 'AGPL3': 'AGPL-3.0', 'LGPL3': 'LGPL-3.0', 'LGPL2': 'LGPL-2.1', 'MPL': 'MPL-2.0', 'Apache': 'Apache-2.0', 'Artistic': 'Artistic License'}
# ignore osgc entries (for various reasons like unclear license etc.)
osgc_ignored_entries = ["A Mouse's Vengeance", 'achtungkurve.com', 'AdaDoom3', 'Agendaroids', 'Alien 8', 'Ard-Reil', 'Balloon Fight', 'bladerunner (Engine within SCUMMVM)', 'Block Shooter', 'Bomb Mania Reloaded', 'boulder-dash', 'Cannon Fodder', 'Contra_remake', 'CosmicArk-Advanced', 'Deuteros X', 'datastorm'
,'div-columns', 'div-pacman2600', 'div-pitfall', 'div-spaceinvaders2600']
def similarity(a, b):
return SequenceMatcher(None, str.casefold(a), str.casefold(b)).ratio()
,'div-columns', 'div-pacman2600', 'div-pitfall', 'div-spaceinvaders2600', 'EXILE', 'Free in the Dark', 'Football Manager', 'Fight Or Perish', 'EarthShakerDS', 'Entombed!']
def unique_field_contents(entries, field):
@ -142,13 +138,13 @@ if __name__ == "__main__":
print('{} in both, {} only in osgameclones, {} only with us'.format(len(common_names), len(osgc_names), len(our_names)))
# find similar names among the rest
#for osgc_name in osgc_names:
# for our_name in our_names:
# if similarity(osgc_name, our_name) > similarity_threshold:
# print('{} - {}'.format(osgc_name, our_name))
for osgc_name in osgc_names:
for our_name in our_names:
if game_name_similarity(osgc_name, our_name) > similarity_threshold:
print('{} - {}'.format(osgc_name, our_name))
newly_created_entries = 0
# iterate over their entries
for osgc_entry in osgc_entries:
osgc_name = osgc_entry['name']

33
tools/rejected.txt Normal file
View File

@ -0,0 +1,33 @@
8 Kingdoms (https://sourceforge.net/projects/kralovstvi/, https://svn.code.sf.net/p/kralovstvi/code/): No license found
Aeron (https://sourceforge.net/projects/aeron/, https://svn.code.sf.net/p/aeron/code/): Very early development
Age of Magic (https://sourceforge.net/projects/ageofmagic/, https://svn.code.sf.net/p/ageofmagic/code/): Only supports outdated Hardware (Symbian)
Altera Terra (https://sourceforge.net/projects/alteraterra/, https://svn.code.sf.net/p/alteraterra/code/): Early development stage, no clear license information
Arthur's Knights (http://ainenn.org/KingArthur/, https://sourceforge.net/projects/king-arthur/): Unclear license, author could not be contacted
Atral Clades (https://sourceforge.net/projects/astralclades/, https://svn.code.sf.net/p/astralclades/code/): No clear license information
Begin2 (https://sourceforge.net/projects/begin2/, https://svn.code.sf.net/p/begin2/code/): No source available
Camelia Girls (https://web.archive.org/web/20140523011334/http://pigux.com:80/cameliagirls/): Sources not available
Cycle (https://sourceforge.net/projects/meegocycle/): Proprietary license (freeware, source available)
Drop Shock (http://www.tinywarz.com/index.php, https://sourceforge.net/projects/dropshock/, https://git.code.sf.net/p/dropshock/code): No license found
EarthShakerDS (http://simianzombie.com/posts/2011/05/10/earth-shaker-ds-released, https://github.com/ant512/EarthShakerDS.git): Target only Nintendo DS as hardware platform
Eleconics (https://sourceforge.net/projects/eleconics/): No license found
Entombed! (http://www.newbreedsoftware.com/entombed/, ftp://ftp.tuxpaint.org/unix/x/entombed/entombed-2007.07.04.tar.gz): Game very small
EXILE (http://forums.datarealms.com/viewtopic.php?f=82&t=19266, https://github.com/Geti/EXILE.git): Early development stage
Fight Or Perish (http://www.newbreedsoftware.com/fop/, ftp://ftp.tuxpaint.org/unix/x/fop/src/fop-0.5.tar.gz): Early development stage
Football Manager (https://github.com/autismuk/Football-Manager.git): Very early development stage
Free in the Dark (https://sourceforge.net/projects/fitd/): No source code available
Grow (https://sourceforge.net/projects/grow/): Insufficient content
Moopy (https://code.google.com/archive/p/moopy/, https://code.google.com/archive/p/moopy/source/default/source): Early development stage
Open General (http://www.open-general.com/, https://sourceforge.net/projects/opengeneral/, https://svn.code.sf.net/p/opengeneral/code/): Proprietary license (see credits.txt)
OpenPop (http://openpopulous.sourceforge.net/, https://sourceforge.net/projects/openpopulous/, https://svn.code.sf.net/p/openpopulous/code/): Very early development
Project Diaspora (http://pdiaspora.sourceforge.net/): Proprietary license (see file headers)
Promisance (https://sourceforge.net/projects/promisance/,http://promisance.sourceforge.net/): Went closed source with version >= 4.0
RuneSword II (https://sourceforge.net/projects/runesword/, http://runesword.sourceforge.net/, https://github.com/mattiascibien/Runesword.net, https://github.com/aceofspades19/Runesword-II-OS.Net): No license found
sCoreForge Pathfinder Character Creator (https://sourceforge.net/projects/scoreforge/): No license found
Scoreus (https://web.archive.org/web/20120618143653/http://scoreos.org:80/about, https://code.google.com/archive/p/scoreos/, https://github.com/Lozza999/scoreos.git, https://code.google.com/archive/p/scoreos/): Source code not found
Sokoban (https://sourceforge.net/projects/sokoban/): Proprietary license
Solar Empire (https://sourceforge.net/projects/solar-empire/, https://git.code.sf.net/p/solar-empire/code): No license found
Solaris (https://sourceforge.net/projects/solaristhegame/, https://svn.code.sf.net/p/solaristhegame/code/): Very early development stage
Sworsorc (https://svn.code.sf.net/p/alteraterra/code/): Proprietary license (copyright headers in files)
VegaTrek (https://sourceforge.net/projects/vegatrek/, https://svn.code.sf.net/p/vegatrek/code/)
Visions from the Other Side (http://www.insani.org/mukou.html): Source not available
WarGame (https://archive.codeplex.com/?p=wargame): Unclear license, could not contact authors

View File

@ -3,16 +3,22 @@ Specific functions working on the games.
"""
import re
from difflib import SequenceMatcher
from utils.utils import *
essential_fields = ('Home', 'State', 'Keywords', 'Code repository', 'Code language', 'Code license')
valid_fields = ('Home', 'Media', 'State', 'Play', 'Download', 'Platform', 'Keywords', 'Code repository', 'Code language',
'Code license', 'Code dependencies', 'Assets license', 'Build system', 'Build instructions')
valid_platforms = ('Windows', 'Linux', 'macOS', 'Android', 'Web')
valid_platforms = ('Windows', 'Linux', 'macOS', 'Android', 'iOS', 'Web')
recommended_keywords = ('action', 'arcade', 'adventure', 'visual novel', 'sports', 'platform', 'puzzle', 'role playing', 'simulation', 'strategy', 'card game', 'board game', 'music', 'educational', 'tool', 'game engine', 'framework', 'library', 'remake')
regex_sanitize_name = re.compile(r"[^A-Za-z 0-9-]+")
regex_sanitize_name_space_eater = re.compile(r" +")
def game_name_similarity(a, b):
return SequenceMatcher(None, str.casefold(a), str.casefold(b)).ratio()
def entry_iterator(games_path):
"""