diff --git a/code/maintenance_collect_inspiration_infos.py b/code/maintenance_collect_inspiration_infos.py index 83292c95..3de81204 100644 --- a/code/maintenance_collect_inspiration_infos.py +++ b/code/maintenance_collect_inspiration_infos.py @@ -4,9 +4,10 @@ Maintenance of inspirations.md and synchronization with the inspirations in the import time from utils import constants as c, utils, osg, osg_ui +from utils import osg_wikipedia -def duplicate_check(): +def check_for_duplicates(): """ :param inspirations: @@ -16,23 +17,10 @@ def duplicate_check(): inspiration_names = [x['name'] for x in inspirations] for index, name in enumerate(inspiration_names): for other_name in inspiration_names[index+1:]: - if osg.name_similarity(name, other_name) > similarity_threshold: + if osg.name_similarity(name, other_name) > 0.8: print(' {} - {} is similar'.format(name, other_name)) - -if __name__ == "__main__": - - similarity_threshold = 0.8 - - # load inspirations - inspirations = osg.read_inspirations_info() - print('{} inspirations in the inspirations database'.format(len(inspirations))) - osg.write_inspirations_info(inspirations) # write again just to check integrity - - #osg_ui.run_simple_button_app('Maintenance inspirations', (('Duplicate check', duplicate_check),)) - - - +def test(): # assemble info t0 = time.process_time() entries = osg.read_entries() @@ -75,4 +63,32 @@ if __name__ == "__main__": print('potential removed inspiration {} from games {}'.format(name, inspirations[index]['inspired entries'])) similar_names = [x for x in entries_inspirations.keys() if osg.name_similarity(name, x) > 0.8] if similar_names: - print(' similar names {}'.format(', '.join(similar_names))) \ No newline at end of file + print(' similar names {}'.format(', '.join(similar_names))) + + +def read_inspirations(): + inspirations = osg.read_inspirations_info() + print('{} inspirations in the inspirations database'.format(len(inspirations))) + +def write_inspirations(): + osg.write_inspirations_info(inspirations) + print('inspirations written') + +if __name__ == "__main__": + inspirations = osg.read_inspirations_info() + osg.write_inspirations_info(inspirations) + + inspirations = None + entries = None + + actions = { + 'Read inspirations': read_inspirations, + 'Write inspirations': write_inspirations, + 'Check for duplicates': check_for_duplicates, + } + + + osg_ui.run_simple_button_app('Maintenance inspirations', actions) + + + diff --git a/code/requirements.txt b/code/requirements.txt index 6bc9b5f4..42ba30c9 100644 --- a/code/requirements.txt +++ b/code/requirements.txt @@ -1,3 +1,5 @@ pygithub lark-parser -BeautifulSoup \ No newline at end of file +BeautifulSoup +PyQt5 +wikipedia \ No newline at end of file diff --git a/code/utils/osg_ui.py b/code/utils/osg_ui.py index 65df344c..7c5ad2af 100644 --- a/code/utils/osg_ui.py +++ b/code/utils/osg_ui.py @@ -18,14 +18,15 @@ def run_simple_button_app(title, actions): # create single widget widget = QtWidgets.QWidget() widget.setWindowTitle(title) - widget.setMinimumSize(200, 400) + widget.setMinimumSize(200, 200) # add actions layout = QtWidgets.QVBoxLayout(widget) - for name, action in actions: + for name, action in actions.items(): button = QtWidgets.QPushButton(name) button.clicked.connect(action) layout.addWidget(button) + layout.addStretch() # execute app widget.show() diff --git a/entries/aquastax.md b/entries/aquastax.md index 45cf2296..31da1ce0 100644 --- a/entries/aquastax.md +++ b/entries/aquastax.md @@ -1,13 +1,13 @@ # aquastax - Home: https://github.com/LongSteve/aquastax -- Inspirations: AquaStax +- Inspirations: Aquastax - State: beta - Keywords: puzzle, remake - Code repository: https://github.com/LongSteve/aquastax.git - Code language: JavaScript - Code license: MIT -Remake of AquaStax, the 2007 mobile puzzle game. +Remake of Aquastax, the 2007 mobile puzzle game. ## Building diff --git a/entries/deathchase_3d.md b/entries/deathchase_3d.md index 9e5115ea..1c4c802d 100644 --- a/entries/deathchase_3d.md +++ b/entries/deathchase_3d.md @@ -1,7 +1,7 @@ # Deathchase 3D - Home: https://web.archive.org/web/20070711231311/http://www.robsons.org.uk/archive/www.autismuk.freeserve.co.uk/index.htm -- Inspirations: 3D Deathchase +- Inspirations: Deathchase - State: mature, inactive since 2002 - Keywords: remake, shooter - Code repository: https://gitlab.com/osgames/deathchase3d.git (import of source release at https://web.archive.org/web/20140918142844/http://www.robsons.org.uk/archive/www.autismuk.freeserve.co.uk/deathchase3d-0.9.tar.gz) diff --git a/entries/unknown_horizons.md b/entries/unknown_horizons.md index 06915cdc..a705704d 100644 --- a/entries/unknown_horizons.md +++ b/entries/unknown_horizons.md @@ -2,7 +2,7 @@ - Home: http://unknown-horizons.org/, https://sourceforge.net/projects/unknownhorizons/ - Media: https://en.wikipedia.org/wiki/Unknown_Horizons -- Inspirations: Anno series +- Inspirations: Anno (series) - State: beta - Download: http://unknown-horizons.org/downloads/ - Keywords: strategy, clone, turn-based diff --git a/inspirations.md b/inspirations.md index bc9fd9ca..19b746dc 100644 --- a/inspirations.md +++ b/inspirations.md @@ -5,10 +5,6 @@ - Inspired entries: Klooni 1010! -## 3D Deathchase [1] - -- Inspired entries: Deathchase 3D - ## A-Train [1] - Inspired entries: FreeTrain @@ -21,50 +17,62 @@ ## Ace Combat: Assault Horizon [1] - Inspired entries: Open Horizon +- Media: https://en.wikipedia.org/wiki/Ace_Combat:_Assault_Horizon ## Ace of Spades [2] - Inspired entries: Iceball, OpenSpades +- Media: ## Achtung, die Kurve! [4] - Inspired entries: "Achtung, die Kurve!", Netacka, Zatacka, Zatacka X +- Media: "https://en.wikipedia.org/wiki/Achtung,_die_Kurve!" ## Advance Wars [1] - Inspired entries: Tanks of Freedom +- Media: https://en.wikipedia.org/wiki/Advance_Wars ## Age of Empires [2] - Inspired entries: 0 A.D., openage +- Media: ## Age of Empires II [2] - Inspired entries: freeaoe, openage +- Media: https://en.wikipedia.org/wiki/Age_of_Empires_II ## Akalabeth: World of Doom [1] - Inspired entries: Aklabeth +- Media: https://en.wikipedia.org/wiki/Akalabeth:_World_of_Doom ## Allegiance [1] - Inspired entries: Free Allegiance +- Media: -## Anno series [1] +## Anno (series) [1] - Inspired entries: Unknown Horizons +- Media: https://en.wikipedia.org/wiki/Anno_(series) ## Another World 2: Heart of the Alien [1] - Inspired entries: Heart of the Alien +- Media: https://en.wikipedia.org/wiki/Heart_of_the_Alien -## AquaStax [1] +## Aquastax [1] - Inspired entries: aquastax +- Media: https://en.wikipedia.org/wiki/Aquastax ## Archon: The Light and the Dark [1] - Inspired entries: XArchon +- Media: https://en.wikipedia.org/wiki/Archon:_The_Light_and_the_Dark ## Ares [1] @@ -73,18 +81,22 @@ ## Arkanoid [2] - Inspired entries: Ball And Wall, PyBreak360 +- Media: https://en.wikipedia.org/wiki/Arkanoid ## ARMA 2 [1] - Inspired entries: Uebergame +- Media: https://en.wikipedia.org/wiki/ARMA_2 ## ARMA 3 [1] - Inspired entries: Uebergame +- Media: https://en.wikipedia.org/wiki/ARMA_3 ## ARMA: Armed Assault [1] - Inspired entries: Uebergame +- Media: https://en.wikipedia.org/wiki/ARMA:_Armed_Assault ## Armor Alley [1] @@ -468,6 +480,11 @@ - Inspired entries: Dreerally - Media: https://en.wikipedia.org/wiki/Death_Rally +## Deathchase [1] + +- Inspired entries: Deathchase 3D +- Media: https://en.wikipedia.org/wiki/Deathchase + ## Defender [2] - Inspired entries: Defendguin, Word War vi @@ -622,6 +639,7 @@ ## F-1 Spirit [1] - Inspired entries: F-1 Spirit +- Media: https://en.wikipedia.org/wiki/F-1_Spirit_(series) ## Falcon's Eye [1] @@ -919,6 +937,7 @@ ## Lemmings [5] - Inspired entries: Lemmings.ts, Lemmini, Lix, Pingus, Rabbit Escape +- Media: ## Liero [4] @@ -1455,6 +1474,7 @@ ## SimCity 2000 [1] - Inspired entries: OpenSC2K +- Media: https://en.wikipedia.org/wiki/SimCity_2000 ## Simon [1] @@ -1716,6 +1736,7 @@ ## Tetris [9] - Inspired entries: 4D-TRIS, Hextris, Just another Tetris™ clone, NullpoMino, OpenBlok, Quadrapassel, Spludlow Tetris, Tetris (in C and NCURSES), vitetris +- Media: https://en.wikipedia.org/wiki/Tetris ## Tetris Attack [4] @@ -1875,6 +1896,7 @@ ## TuxRacer [1] - Inspired entries: Extreme Tux Racer +- Media: https://en.wikipedia.org/wiki/Tux_Racer ## Tyrian [2]