diff --git a/cachedDownloadSizes.json b/cachedDownloadSizes.json index 67b0a768..1b258457 100644 --- a/cachedDownloadSizes.json +++ b/cachedDownloadSizes.json @@ -58,11 +58,13 @@ "https://07th-mod.com/rikachama/audio/Higurashi-OG-BGM-SE.7z": 141845264, "https://07th-mod.com/rikachama/audio/Higurashi-Remake-BGM.7z": 58551253, "https://07th-mod.com/rikachama/audio/HigurashiKai-OG-BGM-SE.7z": 99901166, + "https://07th-mod.com/rikachama/audio/Hou-Plus-BGM-SE.7z": 331353506, "https://07th-mod.com/rikachama/audio/MangaGamer-Answer-BGM-SE-Restore.7z": 191763378, "https://07th-mod.com/rikachama/audio/MangaGamer-Question-BGM-SE-Restore.7z": 96916638, "https://07th-mod.com/rikachama/audio/Rei-BGM-SE.7z": 98043879, "https://07th-mod.com/rikachama/graphics/ConsoleArcs-Graphics.7z": 2582826726, "https://07th-mod.com/rikachama/graphics/Himatsubushi-Graphics.7z": 629705673, + "https://07th-mod.com/rikachama/graphics/Hou-Plus-Graphics.7z": 681819126, "https://07th-mod.com/rikachama/graphics/Matsuribayashi-Graphics.7z": 1184019461, "https://07th-mod.com/rikachama/graphics/Meakashi-Graphics.7z": 905125642, "https://07th-mod.com/rikachama/graphics/Minagoroshi-Graphics.7z": 1044205595, @@ -98,11 +100,14 @@ "https://07th-mod.com/rikachama/og-hou-sprites/hou-ogsprites-ep09.7z": 98108774, "https://07th-mod.com/rikachama/tsumi-system/Tsumihoroboshi-System.7z": 22511057, "https://07th-mod.com/rikachama/tsumi-system/this-file-intentionally-left-blank.7z": 32, + "https://07th-mod.com/rikachama/ui/Hou-Plus-UI_2019.4.4_unix.7z": 8213798, + "https://07th-mod.com/rikachama/ui/Hou-Plus-UI_2019.4.4_win.7z": 8208025, "https://07th-mod.com/rikachama/ui/Matsuribayashi-UI_2017.2.5_unix_gog_mg.7z": 16788726, "https://07th-mod.com/rikachama/video/ConsoleArcs-Movie.7z": 187522730, "https://07th-mod.com/rikachama/video/ConsoleArcs-Movie_UNIX.7z": 287760347, "https://07th-mod.com/rikachama/video/Himatsubushi-Movie.7z": 35305006, "https://07th-mod.com/rikachama/video/Himatsubushi-Movie_UNIX.7z": 39109862, + "https://07th-mod.com/rikachama/video/Hou-Plus-Movie.7z": 181045870, "https://07th-mod.com/rikachama/video/Matsuribayashi-Movie.7z": 89598773, "https://07th-mod.com/rikachama/video/Matsuribayashi-Movie_UNIX.7z": 190479863, "https://07th-mod.com/rikachama/video/Meakashi-Movie.7z": 37285873, @@ -121,6 +126,7 @@ "https://07th-mod.com/rikachama/video/Watanagashi-Movie_UNIX.7z": 54868919, "https://07th-mod.com/rikachama/voice/ConsoleArcs-Voices.7z": 2066713772, "https://07th-mod.com/rikachama/voice/Himatsubushi-Voices.7z": 128808310, + "https://07th-mod.com/rikachama/voice/Hou-Plus-Voices.7z": 190697532, "https://07th-mod.com/rikachama/voice/Matsuribayashi-Voices.7z": 473869798, "https://07th-mod.com/rikachama/voice/Meakashi-Voices.7z": 227279402, "https://07th-mod.com/rikachama/voice/Minagoroshi-Voices.7z": 530726655, @@ -160,6 +166,7 @@ "https://github.com/07th-mod/higurashi-rei/releases/latest/download/Rei.Voice.and.Graphics.Patch.zip": 2384978, "https://github.com/07th-mod/himatsubushi/releases/download/v0.5.1/Himatsubushi.Voice.Patch.v0.5.1.7z": 414749, "https://github.com/07th-mod/himatsubushi/releases/latest/download/Himatsubushi.Voice.and.Graphics.Patch.zip": 7754808, + "https://github.com/07th-mod/hou-plus/releases/latest/download/Hou.Voice.and.Graphics.Patch.zip": 2145340, "https://github.com/07th-mod/matsuribayashi/releases/download/v0.0.1/Matsuribayashi.Voice.Patch.v0.0.1.zip": 1472655, "https://github.com/07th-mod/matsuribayashi/releases/latest/download/Matsuribayashi.Voice.and.Graphics.Patch.zip": 4942860, "https://github.com/07th-mod/meakashi/releases/download/v0.5.0/Meakashi.Voice.Patch.v0.5.0.7z": 4709083, diff --git a/common.py b/common.py index 538ad9aa..1a6ed5eb 100644 --- a/common.py +++ b/common.py @@ -706,6 +706,15 @@ def handle_starttag(self, tag, attrs): return parser.months_remaining, parser.funding_goal_percentage +def preloadModUpdatesHTML(): + html, errorInfo = getJSON("https://github.com/07th-mod/python-patcher-updates/releases/latest/download/updates.json", isURL=True) + + if errorInfo is not None: + print('WARNING: Failed to get mod updates from server') + print(errorInfo) + + return html + def getJSON(jsonURI, isURL): #type: (str, bool) -> (Dict, Exception) """ diff --git a/httpGUI.py b/httpGUI.py index cfbafde5..5380f4a9 100644 --- a/httpGUI.py +++ b/httpGUI.py @@ -733,6 +733,7 @@ def __init__(self): # This caches the self.try_start_install(...) function, only used for install previews self.cachedFullInstallConfigs = {} # type: Dict[str, Tuple[bool, installConfiguration.FullInstallConfiguration]] + self.updates = None def shutdown(self): self.installRunningLock.release() @@ -740,6 +741,24 @@ def shutdown(self): def loadDonationStatus(self): self.donationMonthsRemaining, self.donationProgressPercent = common.getDonationStatus() + def preloadModUpdatesHTML(self): + self.updates = common.preloadModUpdatesHTML() + + def getUpdate(self, modName): + try: + if self.updates is None: + return 'ERROR: Failed to get Mod Updates - self.updates is None' + + if modName not in self.updates: + return 'ERROR: Failed to get Mod Updates HTML for {} - modName missing from self.updates'.format(modName) + + if 'status' not in self.updates[modName]: + return 'ERROR: Failed to get Mod Updates HTML for {} - status is missing! '.format(modName) + + return self.updates[modName]['status'] + except Exception as e: + return 'ERROR: Failed to get Mod Updates - {}'.format(e) + def setSubModconfigs(self, allSubModConfigs): """ Set the submodconfigs to be used for the install. @@ -884,6 +903,7 @@ def getSubModHandlesRequestHandler(requestData): 'modOptionGroups': modOptionsToWebFormat(subModConfig.modOptions), 'family': subModConfig.family, 'identifiers': subModConfig.identifiers, + 'modUpdatesHTML': self.getUpdate(subModConfig.modName), } ) diff --git a/httpGUI/img/games/header10.png b/httpGUI/img/games/header10.png new file mode 100644 index 00000000..4efa45ca Binary files /dev/null and b/httpGUI/img/games/header10.png differ diff --git a/httpGUI/index.html b/httpGUI/index.html index f8b2469b..84ae08d4 100644 --- a/httpGUI/index.html +++ b/httpGUI/index.html @@ -63,9 +63,9 @@

Error while checking if installer is latest

-

Higurashi Rei

-

New chapter: Higurashi Rei

- INSTALL +

Higurashi Hou Plus

+

New chapter: Higurashi Hou Plus

+ INSTALL
diff --git a/httpGUI/installer.html b/httpGUI/installer.html index b8c6df04..f8ee3f27 100644 --- a/httpGUI/installer.html +++ b/httpGUI/installer.html @@ -358,6 +358,10 @@

🔧 Adding Console Arcs to Steam Library

  • Opening videos
  • + +
    + +
    For details and screenshots on what the mod contains, see the Intro page on our Wiki
    This mod contains: diff --git a/httpGUI/python-patcher-index.js b/httpGUI/python-patcher-index.js index d55ca281..70e4d260 100644 --- a/httpGUI/python-patcher-index.js +++ b/httpGUI/python-patcher-index.js @@ -85,6 +85,10 @@ window.onload = function onWindowLoaded() { img: 'img/games/header9.png', dataFilter: 'Bonus Content', }, + 'Hou Plus': { + img: 'img/games/header10.png', + dataFilter: 'Bonus Content', + } }, // Data filters are defined manually so you can set the order dataFilters: ['Question Arcs', 'Answer Arcs', 'Console Arcs', 'Bonus Content'], diff --git a/httpGUI/python-patcher-lib.js b/httpGUI/python-patcher-lib.js index dbd7e5a2..ac118e4c 100644 --- a/httpGUI/python-patcher-lib.js +++ b/httpGUI/python-patcher-lib.js @@ -243,6 +243,9 @@ Continue install anyway?`)) { renderMarkdown(markdownText) { return DOMPurify.sanitize(marked(markdownText)); }, + renderHTML(htmlText) { + return DOMPurify.sanitize(htmlText); + }, validateInstallPath(deleteVersionInformation, allowCache, noProgressUpdate) { // Just validate the install - don't actually start the installation const args = { @@ -478,7 +481,8 @@ Continue install anyway?`)) { 'Tsumihoroboshi Ch.6': 'https://github.com/07th-mod/tsumihoroboshi/releases', 'Minagoroshi Ch.7': 'https://github.com/07th-mod/minagoroshi/releases', 'Matsuribayashi Ch.8': 'https://github.com/07th-mod/matsuribayashi/releases', - 'Rei': 'https://github.com/07th-mod/higurashi-rei/releases' + 'Rei': 'https://github.com/07th-mod/higurashi-rei/releases', + 'Hou Plus': 'https://github.com/07th-mod/hou-plus/releases' }, app.selectedMod, null); app.metaInfo = responseData.metaInfo; diff --git a/installData.json b/installData.json index 91cec07a..24694593 100644 --- a/installData.json +++ b/installData.json @@ -725,6 +725,33 @@ } ] }, + { + "family": "higurashi", + "name": "Hou Plus", + "target": "Hou Plus", + "CFBundleName": "Higurashi When They Cry Hou+", + "dataname": "HigurashiEp10_Data", + "identifiers" : ["Higurashi When They Cry Hou Plus_Data", "HigurashiEp10_Data", "HigurashiEp10.x86_64", "HigurashiEp10.exe"], + "submods": [ + { + "name": "full", + "descriptionID": "higurashiFull", + "files": [ + {"name": "graphics", "url": "https://07th-mod.com/rikachama/graphics/Hou-Plus-Graphics.7z", "priority": 0}, + {"name": "movie", "url": "https://07th-mod.com/rikachama/video/Hou-Plus-Movie.7z", "priority": 0}, + {"name": "voices", "url": "https://07th-mod.com/rikachama/voice/Hou-Plus-Voices.7z", "priority": 0}, + {"name": "bgm-se", "url": "https://07th-mod.com/rikachama/audio/Hou-Plus-BGM-SE.7z", "priority": 0}, + {"name": "ui", "url": null, "priority": 0, "installOnRepair": true}, + {"name": "script", "url": "https://github.com/07th-mod/hou-plus/releases/latest/download/Hou.Voice.and.Graphics.Patch.zip", "priority": 5, "installOnRepair": true} + ], + "fileOverrides": [ + {"name": "ui", "id": "ui-windows-mg","os": ["windows"], "unity": "2019.4.4", "url":"https://07th-mod.com/rikachama/ui/Hou-Plus-UI_2019.4.4_win.7z"}, + {"name": "ui", "id": "ui-unix-mg", "os": ["mac", "linux"], "unity": "2019.4.4", "url":"https://07th-mod.com/rikachama/ui/Hou-Plus-UI_2019.4.4_unix.7z"} + ] + } + ], + "modOptionGroups": [] + }, { "family": "higurashi", "name": "Console Arcs", diff --git a/main.py b/main.py index 8a187bf4..c8c06b53 100644 --- a/main.py +++ b/main.py @@ -241,8 +241,10 @@ def thread_getSubModConfigList(): def thread_unimportantTasks(): t_loadDonations = common.makeThread(installerGUI.loadDonationStatus) t_loadLatestInstallerStatus = common.makeThread(common.Globals.loadInstallerLatestStatus) + t_preloadModUpdatesHTML = common.makeThread(installerGUI.preloadModUpdatesHTML) t_loadDonations.start() t_loadLatestInstallerStatus.start() + t_preloadModUpdatesHTML.start() try: t_loadDonations.join(timeout=6) @@ -254,6 +256,12 @@ def thread_unimportantTasks(): except Exception as e: print(e) + try: + t_preloadModUpdatesHTML.join(timeout=6) + except Exception as e: + print(e) + + def doInstallerInit(): try: if common.Globals.IS_MAC: diff --git a/versionData.json b/versionData.json index e4d58fa1..23f82435 100644 --- a/versionData.json +++ b/versionData.json @@ -189,6 +189,13 @@ {"id": "og-bgm-se", "version": "1.0.6"} ] }, + { + "id": "Matsuribayashi Ch.8/voice-only", + "files": [ + {"id": "voices", "version": "0.0.1"}, + {"id": "script", "version": "0.0.1"} + ] + }, { "id": "Rei/full", "files": [ @@ -206,10 +213,19 @@ ] }, { - "id": "Matsuribayashi Ch.8/voice-only", + "id": "Hou Plus/full", "files": [ - {"id": "voices", "version": "0.0.1"}, - {"id": "script", "version": "0.0.1"} + {"id": "graphics", "version": "1.0.0"}, + {"id": "movie", "version": "1.0.0"}, + {"id": "voices", "version": "1.0.0"}, + {"id": "bgm-se", "version": "1.0.0"}, + {"id": "script", "version": "0.1.1"}, + {"id": "movie-unix", "version": "1.0.0"}, + {"id": "ui-windows", "version": "1.0.0"}, + {"id": "ui-windows-mg", "version": "1.0.0"}, + {"id": "ui-unix", "version": "1.0.0"}, + {"id": "ui-unix-mg", "version": "1.0.0"}, + {"id": "og-dll-asset-update", "version": "1.0.0"} ] }, {