update Github information (devs and project stars)
This commit is contained in:
@ -5,7 +5,6 @@ repositories to be checked out. Works on bare repositories.
|
||||
|
||||
import json
|
||||
import re
|
||||
import urllib.parse
|
||||
|
||||
from utils.utils import *
|
||||
from utils.archive import *
|
||||
|
@ -1,11 +1,9 @@
|
||||
{
|
||||
"git": [
|
||||
"git://git.blender.org/blender.git",
|
||||
"git://git.colm.net/ragel.git",
|
||||
"git://opensimulator.org/git/opensim",
|
||||
"http://git.pond.sub.org/empserver",
|
||||
"http://hgm.nubati.net/cgi-bin/gitweb.cgi?p=fairymax.git",
|
||||
"https://anongit.freedesktop.org/git/pkg-config.git",
|
||||
"https://anongit.kde.org/ksudoku.git",
|
||||
"https://bitbucket.org/Knitter/puzzlemoppet.git",
|
||||
"https://bitbucket.org/SteveSmith16384/teamtactics.git",
|
||||
@ -126,13 +124,11 @@
|
||||
"https://git.savannah.nongnu.org/git/stellarengine.git",
|
||||
"https://git.savannah.nongnu.org/git/tangomon.git",
|
||||
"https://git.tartarus.org/simon/puzzles.git",
|
||||
"https://git.tukaani.org/xz.git",
|
||||
"https://git.tuxfamily.org/baller/baller.git",
|
||||
"https://git.tuxfamily.org/boohu/boohu.git",
|
||||
"https://git.tuxfamily.org/fanwor/fanwor.git",
|
||||
"https://git.tuxfamily.org/harmonist/harmonist.git",
|
||||
"https://git.tuxfamily.org/rba/rogueboxadventures.git",
|
||||
"https://git.xiph.org/vorbis.git",
|
||||
"https://git.xonotic.org/xonotic/xonotic.git",
|
||||
"https://gitea.it/rixty/OpenValley.git",
|
||||
"https://github.com/00-Evan/shattered-pixel-dungeon.git",
|
||||
@ -176,6 +172,7 @@
|
||||
"https://github.com/Blecki/dwarfcorp.git",
|
||||
"https://github.com/BlindMindStudios/StarRuler2-Source.git",
|
||||
"https://github.com/Blzut3/CatacombSDL.git",
|
||||
"https://github.com/Bollos00/LibreMines.git",
|
||||
"https://github.com/BrooklynKing/Grimsonland.git",
|
||||
"https://github.com/BrunoAOR/Space-Harrier-Clone.git",
|
||||
"https://github.com/Bubu/android-dice-game.git",
|
||||
@ -248,7 +245,6 @@
|
||||
"https://github.com/GarageGames/Torque2D.git",
|
||||
"https://github.com/GarageGames/Torque3D.git",
|
||||
"https://github.com/GentenStudios/QuartzEngine.git",
|
||||
"https://github.com/GerHobbelt/pthread-win32.git",
|
||||
"https://github.com/GlPortal/RadixEngine.git",
|
||||
"https://github.com/GlPortal/glPortal.git",
|
||||
"https://github.com/Gnomescroll/Gnomescroll.git",
|
||||
@ -550,6 +546,7 @@
|
||||
"https://github.com/aroldanju/raptor-call-of-the-shadows.git",
|
||||
"https://github.com/arturkot/the-house-game.git",
|
||||
"https://github.com/arx/ArxLibertatis.git",
|
||||
"https://github.com/asc-community/MxEngine.git",
|
||||
"https://github.com/asiekierka/reconstruction-of-super-zzt.git",
|
||||
"https://github.com/asiekierka/reconstruction-of-zzt.git",
|
||||
"https://github.com/asiekierka/zeta.git",
|
||||
@ -578,7 +575,6 @@
|
||||
"https://github.com/bni/orbium.git",
|
||||
"https://github.com/boardgameio/boardgame.io.git",
|
||||
"https://github.com/bobthekingofegypt/BobBall.git",
|
||||
"https://github.com/boostorg/boost.git",
|
||||
"https://github.com/bote-team/bote.git",
|
||||
"https://github.com/bradhannah/Ultima5Redux.git",
|
||||
"https://github.com/bradharding/doomretro.git",
|
||||
@ -675,7 +671,6 @@
|
||||
"https://github.com/dorkster/freeblocks.git",
|
||||
"https://github.com/dougmencken/HeadOverHeels.git",
|
||||
"https://github.com/doukutsu-rs/doukutsu-rs.git",
|
||||
"https://github.com/doxygen/doxygen.git",
|
||||
"https://github.com/dozingcat/Vector-Pinball.git",
|
||||
"https://github.com/dreamchess/dreamchess.git",
|
||||
"https://github.com/drodin/TuxRider.git",
|
||||
@ -755,7 +750,6 @@
|
||||
"https://github.com/ghewgill/puzzles.git",
|
||||
"https://github.com/gideros/gideros.git",
|
||||
"https://github.com/ginkgo/pink-pony.git",
|
||||
"https://github.com/glennrp/libpng.git",
|
||||
"https://github.com/gliptic/liero.git",
|
||||
"https://github.com/goblinhack/goblinhack.git",
|
||||
"https://github.com/godotengine/godot.git",
|
||||
@ -778,7 +772,6 @@
|
||||
"https://github.com/haleymt/CrystalQuest.git",
|
||||
"https://github.com/hankmorgan/UnderworldExporter.git",
|
||||
"https://github.com/haqu/tiny-wings.git",
|
||||
"https://github.com/harfbuzz/harfbuzz.git",
|
||||
"https://github.com/haroldo-ok/datastorm.git",
|
||||
"https://github.com/hedgewars/hw.git",
|
||||
"https://github.com/henkboom/pax-britannica.git",
|
||||
@ -821,7 +814,6 @@
|
||||
"https://github.com/jazztickets/emptyclip.git",
|
||||
"https://github.com/jazztickets/irrlamb.git",
|
||||
"https://github.com/jazzyjester/Mario-Game.git",
|
||||
"https://github.com/jbeder/yaml-cpp.git",
|
||||
"https://github.com/jcarolus/android-chess.git",
|
||||
"https://github.com/jdah/minecraft-weekend.git",
|
||||
"https://github.com/jdmclark/gorc.git",
|
||||
@ -852,6 +844,7 @@
|
||||
"https://github.com/jwvhewitt/dmeternal.git",
|
||||
"https://github.com/jwvhewitt/gearhead-1.git",
|
||||
"https://github.com/jwvhewitt/gearhead-2.git",
|
||||
"https://github.com/kacperks/Fractal_Engine.git",
|
||||
"https://github.com/kantoks/skrupel.git",
|
||||
"https://github.com/karlb/castle-combat.git",
|
||||
"https://github.com/kazzmir/paintown.git",
|
||||
@ -886,12 +879,10 @@
|
||||
"https://github.com/llopisdon/monsters_and_mushrooms.git",
|
||||
"https://github.com/lo-th/3d.city.git",
|
||||
"https://github.com/love2d/love.git",
|
||||
"https://github.com/lua/lua.git",
|
||||
"https://github.com/luciusDXL/TheForceEngine.git",
|
||||
"https://github.com/lufte/lona.git",
|
||||
"https://github.com/lvella/xevil.git",
|
||||
"https://github.com/mackers/xultris.git",
|
||||
"https://github.com/madler/zlib.git",
|
||||
"https://github.com/magarena/magarena.git",
|
||||
"https://github.com/magefree/mage.git",
|
||||
"https://github.com/maikmerten/c64-nuclearreaction.git",
|
||||
@ -944,14 +935,12 @@
|
||||
"https://github.com/nicolasbrailo/PianOli.git",
|
||||
"https://github.com/nicolasgramlich/AndEngine.git",
|
||||
"https://github.com/nicupavel/openpanzer.git",
|
||||
"https://github.com/nigels-com/glew.git",
|
||||
"https://github.com/nikki-and-the-robots/nikki.git",
|
||||
"https://github.com/nlarn/nlarn.git",
|
||||
"https://github.com/nodef0/gorillas-rs.git",
|
||||
"https://github.com/nornagon/openc2e.git",
|
||||
"https://github.com/notapixelstudio/superstarfighter.git",
|
||||
"https://github.com/nukeykt/NBlood.git",
|
||||
"https://github.com/numpy/numpy.git",
|
||||
"https://github.com/nuvie/nuvie.git",
|
||||
"https://github.com/nxengine/nxengine-evo.git",
|
||||
"https://github.com/obfusk/sokobang.git",
|
||||
@ -973,7 +962,6 @@
|
||||
"https://github.com/openitg/openitg.git",
|
||||
"https://github.com/openlegend/core-rules.git",
|
||||
"https://github.com/opensludge/opensludge.git",
|
||||
"https://github.com/openssl/openssl.git",
|
||||
"https://github.com/opentibia/server.git",
|
||||
"https://github.com/opentibia/yatc.git",
|
||||
"https://github.com/opentomb/OpenTomb.git",
|
||||
@ -1016,14 +1004,11 @@
|
||||
"https://github.com/prophile/xsera.git",
|
||||
"https://github.com/protoman/rockbot.git",
|
||||
"https://github.com/ptitSeb/friking-shark.git",
|
||||
"https://github.com/ptitSeb/gl4es.git",
|
||||
"https://github.com/pushover/pushover.github.io.git",
|
||||
"https://github.com/pwiecz/command_series.git",
|
||||
"https://github.com/pwmarcz/netacka.git",
|
||||
"https://github.com/pychess/pychess.git",
|
||||
"https://github.com/pygame/pygame.git",
|
||||
"https://github.com/pyglet/pyglet.git",
|
||||
"https://github.com/python-pillow/Pillow.git",
|
||||
"https://github.com/python-sge/sge.git",
|
||||
"https://github.com/q-gears/q-gears.git",
|
||||
"https://github.com/q4a/scourge.git",
|
||||
@ -1151,7 +1136,6 @@
|
||||
"https://github.com/svkaiser/TurokEX.git",
|
||||
"https://github.com/svkaiser/strife-ve.git",
|
||||
"https://github.com/svn2github/numptyphysics.git",
|
||||
"https://github.com/swig/swig.git",
|
||||
"https://github.com/synkarius/micemen.git",
|
||||
"https://github.com/taisei-project/taisei.git",
|
||||
"https://github.com/tales/sourceoftales.git",
|
||||
@ -1164,6 +1148,7 @@
|
||||
"https://github.com/teruk/movbizz.git",
|
||||
"https://github.com/textadventures/squiffy.git",
|
||||
"https://github.com/textbrowser/maxit.git",
|
||||
"https://github.com/tgstation/tgstation.git",
|
||||
"https://github.com/the-butterfly-effect/tbe.git",
|
||||
"https://github.com/the3dfxdude/7kaa.git",
|
||||
"https://github.com/theZiz/hase.git",
|
||||
@ -1186,7 +1171,6 @@
|
||||
"https://github.com/tube42/candymem.git",
|
||||
"https://github.com/tukkek/javelin.git",
|
||||
"https://github.com/turulomio/glparchis.git",
|
||||
"https://github.com/twisted/twisted.git",
|
||||
"https://github.com/ufo2000/ufo2000.git",
|
||||
"https://github.com/ufoai/ufoai.git",
|
||||
"https://github.com/undefined-darkness/open-horizon.git",
|
||||
@ -1220,7 +1204,6 @@
|
||||
"https://github.com/w84death/Tanks-of-Freedom.git",
|
||||
"https://github.com/watabou/PD-classes.git",
|
||||
"https://github.com/watabou/pixel-dungeon.git",
|
||||
"https://github.com/weidai11/cryptopp.git",
|
||||
"https://github.com/wesleywerner/nova-pinball-engine.git",
|
||||
"https://github.com/wesleywerner/nova-pinball.git",
|
||||
"https://github.com/wesnoth/wesnoth.git",
|
||||
@ -1231,8 +1214,6 @@
|
||||
"https://github.com/worldforge/cyphesis.git",
|
||||
"https://github.com/worldforge/ember.git",
|
||||
"https://github.com/wsdfhjxc/taponium.git",
|
||||
"https://github.com/wxWidgets/Phoenix.git",
|
||||
"https://github.com/wxWidgets/wxWidgets.git",
|
||||
"https://github.com/xLAva/JediAcademyLinux.git",
|
||||
"https://github.com/xLAva/JediOutcastLinux.git",
|
||||
"https://github.com/xenris/liquid-wars-android.git",
|
||||
@ -1517,8 +1498,6 @@
|
||||
"https://gitlab.com/xonotic/xonotic.git",
|
||||
"https://gitlab.gnome.org/GNOME/gnome-chess.git",
|
||||
"https://gitlab.gnome.org/GNOME/gnome-mines.git",
|
||||
"https://gitlab.gnome.org/GNOME/gtk.git",
|
||||
"https://gitlab.gnome.org/GNOME/libxml2.git",
|
||||
"https://gitlab.gnome.org/GNOME/quadrapassel.git",
|
||||
"https://invent.kde.org/education/gcompris.git",
|
||||
"https://invent.kde.org/games/granatier.git",
|
||||
@ -1528,7 +1507,6 @@
|
||||
"https://invent.kde.org/games/ksnakeduel.git",
|
||||
"https://invent.kde.org/games/palapeli.git",
|
||||
"https://repo.or.cz/intricacy.git",
|
||||
"https://repo.or.cz/openal-soft.git",
|
||||
"https://repo.or.cz/pachi.git",
|
||||
"https://repo.or.cz/tennix.git",
|
||||
"https://salsa.debian.org/games-team/bloboats.git",
|
||||
|
@ -1,21 +1,8 @@
|
||||
http://svn.assembla.com/svn/gdpl/
|
||||
http://www.dianneandpaul.net/CSBwin/
|
||||
http://www.happypenguin.org/show?XKobo (offline)
|
||||
http://www.ifwiki.org/index.php/Main_Page
|
||||
http://www.layabox.com/en/
|
||||
http://www.lesfleursdunormal.fr/static/informatique/old/index_en.html
|
||||
http://www.linuxdevcenter.com/pub/a/linux/2003/04/24/exult.html
|
||||
http://www.myandroidonline.com/category/games/
|
||||
http://www.netgore.com/
|
||||
http://www.oletus.fi/games/
|
||||
http://www.paulscode.com/games/
|
||||
http://www.ph2.net/zugspiel/
|
||||
http://www.plasmapong.com/plasma-pong/plasma-pong/
|
||||
http://www.rpgtoolkit.net/
|
||||
http://www.rtsoft.com/novashell/
|
||||
http://www.sandboxgamemaker.com/
|
||||
http://www.scirra.com/construct-classic
|
||||
http://www.siedler25.org/index.php?com=dynamic&mod=1&lang=en&PHPSESSID=0hmj4aug1fqa80jbk15kcafh71
|
||||
http://www.silversecond.com/WolfRPGEditor/
|
||||
http://www.spheredev.org/
|
||||
http://www.surfline.ne.jp/hachi/xsoldier.html
|
||||
@ -50,17 +37,12 @@ https://futurepinball.com/
|
||||
https://gdevelop-app.com/
|
||||
https://github.blog/2014-01-06-github-game-off-ii-winners/
|
||||
https://github.blog/2021-05-19-ludum-dare-48-staff-picks/
|
||||
https://github.com/asc-community/MxEngine
|
||||
https://github.com/tgstation/tgstation
|
||||
https://gitorious.org/index-list.html (are there other interesting games)
|
||||
https://jcrpg.blogspot.de/
|
||||
https://libregamewiki.org/Alexei:_Part_IX
|
||||
https://libregamewiki.org/CameliaGirls
|
||||
https://libregamewiki.org/Childish_Cannoneer
|
||||
https://libregamewiki.org/index.php?title=Libregamewiki_talk:Community_Portal&oldid=25410#Some_long_term_ideas
|
||||
https://libregamewiki.org/Libregamewiki:Suggested_games#Likely_sources_for_more_free_games
|
||||
https://lichess.org/api
|
||||
https://moaiwebsite.github.io/
|
||||
https://odr.chalmers.se/handle/20.500.12380/219006
|
||||
https://osdn.net/softwaremap/trove_list.php?form_cat=80
|
||||
https://pipoypipagames.itch.io/cows-revenge (https://github.com/Dariasteam/Cows-Revenge)
|
||||
|
@ -7,6 +7,8 @@ https://empiredirectory.net/index.php/downloads/viewdownload/6-server-software/1
|
||||
http://www.divgo.net/ (in spanish difficult to detect sources)
|
||||
https://github.com/neuromancer/re-private-eye.git (moved to scummvm) and is part of scummvm
|
||||
http://www.hard-light.net/ (Free Space Open, Knossos, Mods, https://github.com/scp-fs2open/fs2open.github.com, https://wiki.hard-light.net/index.php/Getting_started)
|
||||
http://svn.assembla.com/svn/gdpl/ (not sure what links there and what kind of game it is, license?)
|
||||
https://web.archive.org/web/20161230103538/http://www.linuxdevcenter.com/pub/a/linux/2003/04/24/exult.html
|
||||
|
||||
roguelike
|
||||
|
||||
@ -90,6 +92,11 @@ https://blends.debian.org/games/tasks/
|
||||
https://blends.debian.org/games/tasks/racing
|
||||
http://www.goldenstudios.or.id/products/games/index.php
|
||||
http://www.goldenstudios.or.id/products/GTGE/
|
||||
https://gitorious.org/index-list.html (are there other interesting games)
|
||||
http://www.dianneandpaul.net/CSBwin/
|
||||
http://www.lesfleursdunormal.fr/static/informatique/old/index_en.html
|
||||
http://www.oletus.fi/games/
|
||||
http://www.paulscode.com/games/
|
||||
|
||||
github collections
|
||||
|
||||
@ -116,6 +123,10 @@ https://en.wikipedia.org/wiki/MUD_client (all there)
|
||||
special
|
||||
|
||||
https://alternativeto.net/ (query with only open source as option)
|
||||
http://www.happypenguin.org (linux game tomb)
|
||||
https://web.archive.org/web/20121010121342/http://www.happypenguin.org/list?sort=title
|
||||
https://www.ifwiki.org/index.php/Main_Page (is there software contained or contents with CC license maybe that could be converted...)
|
||||
https://web.archive.org/web/20161215063433/http://www.linuxdevcenter.com/topics/linux/games
|
||||
|
||||
github topics
|
||||
|
||||
|
3
code/github_entries.txt
Normal file
3
code/github_entries.txt
Normal file
@ -0,0 +1,3 @@
|
||||
[
|
||||
"zztgo.md"
|
||||
]
|
@ -1,26 +1,39 @@
|
||||
"""
|
||||
Uses the Github API to learn more about the Github projects.
|
||||
|
||||
Updates for example, the starring information.
|
||||
"""
|
||||
|
||||
# TODO remove Boost C++ developers and others libraries that aren't that interesting
|
||||
# TODO remove developers again?
|
||||
# TODo try to identify main developers (number of commits or change of lines...)
|
||||
|
||||
import os
|
||||
import json
|
||||
from utils import constants as c, utils, osg, osg_parse, osg_github
|
||||
|
||||
gh_entries_file = os.path.join(c.code_path, 'github_entries.txt')
|
||||
prefix = 'https://github.com/'
|
||||
MINIMAL_CONTRIBUTIONS = 5
|
||||
|
||||
blog_alias = {'http://k776.tumblr.com/': 'https://k776.tumblr.com/', 'http://timpetricola.com': 'https://timpetricola.com',
|
||||
'http:/code.schwitzer.ca': 'https://code.schwitzer.ca/', 'http:\\www.vampier.net': 'https://www.vampier.net/'}
|
||||
blog_alias = {'http://k776.tumblr.com/': 'https://k776.tumblr.com/',
|
||||
'http://timpetricola.com': 'https://timpetricola.com',
|
||||
'http:/code.schwitzer.ca': 'https://code.schwitzer.ca/',
|
||||
'http:\\www.vampier.net': 'https://www.vampier.net/'}
|
||||
ignored_blogs = ('https://uto.io',)
|
||||
|
||||
ignored_languages = ('CSS', 'HTML', 'CMake', 'XSLT', 'ShaderLab')
|
||||
language_aliases = {'VBA': 'Visual Basic', 'Common Lisp': 'Lisp', 'Game Maker Language': 'Game Maker Script', 'NewLisp': 'Lisp'}
|
||||
language_aliases = {'VBA': 'Visual Basic', 'Common Lisp': 'Lisp', 'Game Maker Language': 'Game Maker Script',
|
||||
'NewLisp': 'Lisp', 'Awk': 'AWK', 'Visual Basic': 'Basic', 'FreeBasic': 'Basic'}
|
||||
|
||||
ignored_repos = ('https://github.com/jtc0de/Blitwizard.git','https://github.com/IceReaper/KKnD.git',
|
||||
'https://github.com/KaidemonLP/Open-Fortress-Source.git', 'https://github.com/danielcrenna/TrueCraft.git')
|
||||
# these gave some errors (but you may try them again or remove them from this list)
|
||||
ignored_repos = ('https://github.com/jtc0de/Blitwizard.git',
|
||||
'https://github.com/KaidemonLP/Open-Fortress-Source.git',
|
||||
'https://github.com/danielcrenna/TrueCraft.git')
|
||||
|
||||
name_aliases = {'Andreas Rosdal': 'Andreas Røsdal', 'davefancella': 'Dave Fancella', 'himiloshpetrov': 'Milosh Petrov',
|
||||
'Jeremy Monin': 'Jeremy D. Monin', 'lennertclaeys': 'Lennert Claeys', 'malignantmanor': 'Malignant Manor',
|
||||
'Jeremy Monin': 'Jeremy D. Monin', 'lennertclaeys': 'Lennert Claeys',
|
||||
'malignantmanor': 'Malignant Manor',
|
||||
'turulomio': 'Turulomio', '_Shaman': 'Shaman', 'alexandreSalconiDenis': 'Alexandre Salconi-Denis',
|
||||
'buginator': 'Buginator', 'CiprianKhlud': 'Ciprian Khlud', 'dericpage': 'Deric Page',
|
||||
'DI Murat Sari': 'Murat Sari', 'DolceTriade': 'Dolce Triade', 'DreamingPsion': 'Dreaming Psion',
|
||||
@ -30,7 +43,8 @@ name_aliases = {'Andreas Rosdal': 'Andreas Røsdal', 'davefancella': 'Dave Fance
|
||||
|
||||
def collect_github_entries():
|
||||
"""
|
||||
Reads the entries of the database and collects all entries with github as repository
|
||||
Reads the entries of the database and collects all entries with a Github repository. Just for convenience to limit
|
||||
the number of entries to iterate on later.
|
||||
"""
|
||||
|
||||
# read entries
|
||||
@ -51,8 +65,7 @@ def collect_github_entries():
|
||||
|
||||
def github_import():
|
||||
"""
|
||||
|
||||
:return:
|
||||
Import various information from Github repositories (like contributors) or stars for Github repos
|
||||
"""
|
||||
private_properties = json.loads(utils.read_text(c.private_properties_file))
|
||||
|
||||
@ -65,7 +78,7 @@ def github_import():
|
||||
try:
|
||||
# loop over each entry
|
||||
for index, file in enumerate(files):
|
||||
print(' process {}'.format(file))
|
||||
print(' process {} ({})'.format(file, index))
|
||||
|
||||
# read entry
|
||||
entry = osg.read_entry(file)
|
||||
@ -84,9 +97,10 @@ def github_import():
|
||||
# is archived
|
||||
if info['archived']:
|
||||
if not osg.is_inactive(entry):
|
||||
print('warning: repo is archived but not inactive state??')
|
||||
print('warning: repo is archived but not inactive state, check state')
|
||||
# add archive to repo comment
|
||||
new_comments.append('@archived')
|
||||
# TODO check for repos that aren't archived anymore but are marked as such
|
||||
|
||||
# add created comment
|
||||
new_comments.append('@created {}'.format(info['created'].year))
|
||||
@ -105,7 +119,7 @@ def github_import():
|
||||
if comments:
|
||||
comments = comments.split(',')
|
||||
comments = [c.strip() for c in comments]
|
||||
comments = [c for c in comments if not c.startswith('@')] # delete old ones
|
||||
comments = [c for c in comments if not c.startswith('@')] # delete old ones
|
||||
comments += new_comments
|
||||
else:
|
||||
comments = new_comments
|
||||
@ -122,13 +136,14 @@ def github_import():
|
||||
for contributor in info['contributors']:
|
||||
if contributor.type != 'User':
|
||||
continue
|
||||
if contributor.contributions < 4:
|
||||
if contributor.contributions < MINIMAL_CONTRIBUTIONS:
|
||||
continue
|
||||
# contributor.login/name/blog
|
||||
name = contributor.name
|
||||
if not name:
|
||||
name = contributor.login
|
||||
name = name_aliases.get(name, name)
|
||||
name = name.strip() # sometimes they have trailing spaces (for whatever reason)
|
||||
nickname = '{}@GH'.format(contributor.login)
|
||||
blog = contributor.blog
|
||||
if blog:
|
||||
@ -154,14 +169,14 @@ def github_import():
|
||||
dev['Contact'] = dev.get('Contact', []) + [nickname]
|
||||
if blog and blog not in dev.get('Home', []):
|
||||
dev['Home'] = dev.get('Home', []) + [blog]
|
||||
# TODO add to games entries!
|
||||
if entry['Title'] not in dev['Games']:
|
||||
dev['Games'].append(entry['Title'])
|
||||
else:
|
||||
print(' dev "{}" ({}) added to developer database'.format(name, nickname))
|
||||
all_developers[name] = {'Name': name, 'Contact': [nickname], 'Games': [entry['Title']]}
|
||||
if blog:
|
||||
all_developers[name]['Home'] = [blog]
|
||||
|
||||
|
||||
entry['Code repository'] = code_repositories
|
||||
osg.write_entry(entry)
|
||||
except:
|
||||
@ -176,8 +191,7 @@ def github_import():
|
||||
|
||||
def github_starring_synchronization():
|
||||
"""
|
||||
|
||||
:return:
|
||||
Which Github repositories haven't I starred yet.
|
||||
"""
|
||||
private_properties = json.loads(utils.read_text(c.private_properties_file))
|
||||
|
||||
@ -186,7 +200,6 @@ def github_starring_synchronization():
|
||||
# loop over each entry and collect list of repos
|
||||
all_repos = []
|
||||
for index, file in enumerate(files):
|
||||
|
||||
# read entry
|
||||
entry = osg.read_entry(file)
|
||||
|
||||
@ -216,14 +229,12 @@ def github_starring_synchronization():
|
||||
print(', '.join(unstarred))
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# collect entries
|
||||
# collect entries (run this only once)
|
||||
# collect_github_entries()
|
||||
|
||||
# import information from gh
|
||||
# github_import()
|
||||
github_import()
|
||||
|
||||
# which github repos haven't I starred
|
||||
github_starring_synchronization()
|
||||
# github_starring_synchronization()
|
||||
|
@ -13,9 +13,17 @@
|
||||
<body>
|
||||
{#- navigation bar -#}
|
||||
<nav class="navbar container is-light" aria-label="main navigation">
|
||||
<div class="navbar-menu">
|
||||
<div class="navbar-brand">
|
||||
<a class="navbar-item{% if 'index' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['index.html']) }}">{{ macros.render_icon({'class':'home'}) }}<span>OSGL</span></a>
|
||||
<a class="navbar-item" href="https://github.com/Trilarion/opensourcegames">{{ macros.render_icon({'class':'github'}) }}<span>On GitHub</span></a>
|
||||
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMenu">
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
<span aria-hidden="true"></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="navbar-menu is-active">
|
||||
<div class="navbar-start">
|
||||
<a class="navbar-item{% if 'index' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['index.html']) }}">{{ macros.render_icon({'class':'home'}) }}<span>Home</span></a>
|
||||
<a class="navbar-item{% if 'games' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['games', 'index.html']) }}">{{ macros.render_icon({'class':'dice'}) }}<span>Games</span></a>
|
||||
<div class="navbar-item has-dropdown is-hoverable">
|
||||
<a class="navbar-link{% if 'filter' in base['active_nav'] %} is-active{% endif %}">{{ macros.render_icon({'class':'filter'}) }}<span>Filter</span></a>
|
||||
@ -31,7 +39,6 @@
|
||||
<a class="navbar-item{% if 'inspirations' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['inspirations', 'index.html']) }}">{{ macros.render_icon({'class':'bulb'}) }}<span>Inspirations</span></a>
|
||||
<a class="navbar-item{% if 'statistics' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['statistics.html']) }}">{{ macros.render_icon({'class':'stats-dots'}) }}<span>Statistics</span></a>
|
||||
<a class="navbar-item{% if 'contribute' in base['active_nav'] %} is-active{% endif %}" href="{{ base['url_to'](['contribute.html']) }}">{{ macros.render_icon({'class':'pencil'}) }}<span>Contribute</span></a>
|
||||
<a class="navbar-item" href="https://github.com/Trilarion/opensourcegames">{{ macros.render_icon({'class':'github'}) }}<span>On GitHub</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
@ -17,6 +17,10 @@ Listing:
|
||||
|
||||
"""
|
||||
|
||||
# TODO game engines should be sorted with frameworks/tools, not with games (they aren't games or are they?)
|
||||
|
||||
# TODO if the only change is a change in last updated, do not change it (we can probably check with git diff for it) or checksums
|
||||
|
||||
# TODO minimize tag usage: jinja template optimization for line breaks and indention and minimal amount of spaces (and size of files) and minimal amount of repetition of tags
|
||||
|
||||
# TODO contribute.html add content
|
||||
@ -743,8 +747,10 @@ def generate(entries, inspirations, developers):
|
||||
# copy css
|
||||
utils.copy_tree(os.path.join(c.web_template_path, 'css'), c.web_css_path)
|
||||
|
||||
# collage_image
|
||||
# collage_image and google search console token
|
||||
shutil.copyfile(os.path.join(c.web_template_path, 'collage_games.jpg'), os.path.join(c.web_path, 'collage_games.jpg'))
|
||||
shutil.copyfile(os.path.join(c.web_template_path, 'google1f8a3863114cbcb3.html'), os.path.join(c.web_path, 'google1f8a3863114cbcb3.html'))
|
||||
|
||||
|
||||
# create Jinja Environment
|
||||
environment = Environment(loader=FileSystemLoader(c.web_template_path), autoescape=True)
|
1
code/html/google1f8a3863114cbcb3.html
Normal file
1
code/html/google1f8a3863114cbcb3.html
Normal file
@ -0,0 +1 @@
|
||||
google-site-verification: google1f8a3863114cbcb3.html
|
@ -184,9 +184,9 @@ if __name__ == "__main__":
|
||||
|
||||
# paths
|
||||
root_path = os.path.realpath(os.path.join(os.path.dirname(__file__), os.path.pardir))
|
||||
download_path = os.path.join(root_path, 'code', 'html', 'images-download')
|
||||
download_path = os.path.join(root_path, 'code', '', 'images-download')
|
||||
downsized_path = os.path.join(download_path, 'downsized')
|
||||
output_file = os.path.join(root_path, 'code', 'html', 'collage_games.jpg')
|
||||
output_file = os.path.join(root_path, 'code', '', 'collage_games.jpg')
|
||||
if not os.path.exists(download_path):
|
||||
os.mkdir(download_path)
|
||||
if not os.path.exists(downsized_path):
|
@ -3,6 +3,7 @@ Checks the entries and tries to detect additional developer content, by retrievi
|
||||
stored Git repositories.
|
||||
"""
|
||||
# TODO bag of words (split, strip, lowercase) on dev names and try to detect sex and nationality
|
||||
# TODO name is not unique (not even on GH) so maybe add name to profile name
|
||||
# TODO for duplicate names, create ignore list
|
||||
# TODO split devs with multiple gh or sf accounts (unlikely), start with most (like name Adam) - naming convention @01 etc.
|
||||
# TODO check for devs without contact after gitlab/bitbucket/..
|
||||
@ -43,6 +44,9 @@ class DevelopersMaintainer:
|
||||
print('duplicates checked (took {:.1f}s)'.format(time.process_time()-start_time))
|
||||
|
||||
def check_for_orphans(self):
|
||||
"""
|
||||
List developers without games.
|
||||
"""
|
||||
if not self.developers:
|
||||
print('developers not yet loaded')
|
||||
return
|
||||
@ -50,6 +54,16 @@ class DevelopersMaintainer:
|
||||
if not dev['Games']:
|
||||
print(' {} has no games'.format(dev['Name']))
|
||||
print('orphans checked')
|
||||
|
||||
def remove_orphans(self):
|
||||
"""
|
||||
Remove developers without games.
|
||||
"""
|
||||
if not self.developers:
|
||||
print('developers not yet loaded')
|
||||
return
|
||||
self.developers = {k: v for k,v in self.developers.items() if v['Games']}
|
||||
print('orphans removed ({} devs left)'.format(len(self.developers)))
|
||||
|
||||
def check_for_missing_developers_in_entries(self):
|
||||
if not self.developers:
|
||||
@ -125,6 +139,7 @@ if __name__ == "__main__":
|
||||
'Write developers': m.write_developer,
|
||||
'Check for duplicates': m.check_for_duplicates,
|
||||
'Check for orphans': m.check_for_orphans,
|
||||
'Remove orphans': m.remove_orphans,
|
||||
'Check for games in developers not listed': m.check_for_missing_developers_in_entries,
|
||||
'Update developers from entries': m.update_developers_from_entries,
|
||||
'Special': m.special_ops,
|
||||
|
@ -95,6 +95,7 @@ KZap (http://kzap.sourceforge.net/): Very early development
|
||||
L5R-RPU:L5R Role-Playing Utilitites (https://sourceforge.net/projects/l5r-rpgu/): Early development, no license information with source, long abandoned (since 2007)
|
||||
Last Hope A medieval Web Game (https://sourceforge.net/projects/lasthope/, https://web.archive.org/web/20051030000341/http://www.ano-lasthope.org:80/): Very early development
|
||||
LastNinja (http://lastninja.sourceforge.net/, https://sourceforge.net/projects/lastninja/): Early development, Abandoned, Needs original material that is probably not obtainable legally
|
||||
Layabox (http://www.layabox.com/en/): Closed source
|
||||
LegacyClone (http://sourceforge.net/projects/legacyclone/): Very early development
|
||||
legion (https://github.com/mahho/legion.git): No compatible license found
|
||||
Lemmix (http://www.ericenzwaan.nl/eric/lemmings/lemmix.htm, http://www.ericenzwaan.nl/eric/lemmings/LemOpenSource.zip): Custom license, requires original content that is probably not obtainable legally
|
||||
@ -112,10 +113,12 @@ Militia Defense (https://love2d.org/forums/viewtopic.php?f=5&t=380): Does not ex
|
||||
Mindlence RPG Game Library (https://sourceforge.net/projects/mindlence-game/): Very early development
|
||||
Mining Haze (http://sourceforge.net/projects/mininghaze/): Very early development
|
||||
Mining Haze (https://sourceforge.net/projects/mininghaze/): Early development
|
||||
Moai (https://moaiwebsite.github.io/, https://github.com/moai/moai-dev): All rights reserved
|
||||
MonoStrategy (https://monostrategy.codeplex.com/, https://codeplexarchive.blob.core.windows.net/archive/projects/monostrategy/monostrategy.zip): Early development (alpha), Not playable, requires original content, abandoned
|
||||
Moopy (https://code.google.com/archive/p/moopy/, https://code.google.com/archive/p/moopy/source/default/source): Early development stage
|
||||
Mugen (https://en.wikipedia.org/wiki/Mugen_(engine), https://github.com/fanyer/mugen, http://www.elecbyte.com/mugendocs/mugen.html): Freeware but not open source (https://www.reddit.com/r/mugen/comments/ernvwb/is_mugen_open_source/)
|
||||
MultiGame (https://github.com/whendricso/MultiGame): Commercial
|
||||
NetGore (http://www.netgore.com/, https://github.com/Spodii/netgore): No license information found.
|
||||
Neverputt (): Part of Neverball or never really offered separately
|
||||
New RAW (http://sourceforge.net/projects/newraw/, http://svn.code.sf.net/p/newraw/code/): Early development, requires original content, abandoned
|
||||
Ninjapix (http://pyedpypers.org/pyday/?p=27): Sources lost, Homepage offline, Internet archive hasn't stored sources
|
||||
|
@ -25,7 +25,7 @@ def download_lgw_content():
|
||||
|
||||
# parameters
|
||||
base_url = 'https://libregamewiki.org'
|
||||
destination_path = os.path.join(constants.root_path, 'code', 'lgw-import')
|
||||
destination_path = os.path.join(constants.root_path, 'code', '../lgw-import')
|
||||
utils.recreate_directory(destination_path)
|
||||
|
||||
# read and process the base url (get all games and categories)
|
||||
@ -64,7 +64,7 @@ def download_lgw_content():
|
||||
def parse_lgw_content():
|
||||
|
||||
# paths
|
||||
import_path = os.path.join(constants.root_path, 'code', 'lgw-import')
|
||||
import_path = os.path.join(constants.root_path, 'code', '../lgw-import')
|
||||
entries_file = os.path.join(import_path, '_lgw.json')
|
||||
|
||||
# iterate over all imported files
|
||||
@ -250,7 +250,7 @@ def ignore_nonnumbers(entries, fields):
|
||||
def clean_lgw_content():
|
||||
|
||||
# paths
|
||||
import_path = os.path.join(constants.root_path, 'code', 'lgw-import')
|
||||
import_path = os.path.join(constants.root_path, 'code', '../lgw-import')
|
||||
entries_file = os.path.join(import_path, '_lgw.json')
|
||||
cleaned_entries_file = os.path.join(import_path, '_lgw.cleaned.json')
|
||||
|
@ -88,7 +88,7 @@ if __name__ == "__main__":
|
||||
maximal_newly_created_entries = 40
|
||||
|
||||
# paths
|
||||
lgw_import_path = os.path.join(constants.root_path, 'code', 'lgw-import')
|
||||
lgw_import_path = os.path.join(constants.root_path, 'code', '../lgw-import')
|
||||
lgw_entries_file = os.path.join(lgw_import_path, '_lgw.cleaned.json')
|
||||
|
||||
# import lgw import
|
@ -158,7 +158,7 @@ def sourceforge_import():
|
||||
if __name__ == "__main__":
|
||||
|
||||
# collect entries
|
||||
# collect_sourceforge_entries()
|
||||
collect_sourceforge_entries()
|
||||
|
||||
# import information from sf
|
||||
sourceforge_import()
|
||||
# sourceforge_import()
|
@ -201,7 +201,8 @@ general_code_dependencies_without_entry = {'OpenGL': 'https://www.opengl.org/',
|
||||
'jQuery': 'https://jquery.com/',
|
||||
'node.js': 'https://nodejs.org/en/',
|
||||
'GNU Guile': 'https://www.gnu.org/software/guile/',
|
||||
'tkinter': 'https://docs.python.org/3/library/tk.html'}
|
||||
'tkinter': 'https://docs.python.org/3/library/tk.html',
|
||||
'Boost': 'https://www.boost.org/'}
|
||||
|
||||
# build system urls
|
||||
build_system_urls = {
|
||||
|
@ -124,8 +124,12 @@ def write_developers(developers):
|
||||
value = dev[field]
|
||||
# lists get special treatment
|
||||
if isinstance(value, list):
|
||||
# remove duplicates
|
||||
value = list(set(value))
|
||||
# sort
|
||||
value.sort(key=str.casefold)
|
||||
value = [x if not ',' in x else '"{}"'.format(x) for x in value] # surround those with a comma with quotation marks
|
||||
# surround those with a comma with quotation marks
|
||||
value = [x if not ',' in x else '"{}"'.format(x) for x in value]
|
||||
value = ', '.join(value)
|
||||
content += '- {}: {}\n'.format(field, value)
|
||||
content += '\n'
|
||||
|
Reference in New Issue
Block a user