Fix error not being displayed if game name Unknown (#7)
* Log reading capabilities to Ryuko bot (#3) * Add log reading capabilities - User hardware specs - Game info - Controller configuration - Last error snippet in log - Warnings when using macOS or Intel iGPU - Warning of logs not turned on * Allowed log reading channels moved to config This is easier for contributors to change their config file for testing * Fixes large files not showing error snippet - Large files are partially downloaded and show header information which messes with log analysis, this gets stripped. - Finding error messages function improved * Default logs enabled shows a green checkmark * Better feedback with log parsing message - Bot prints `Log parsing...` and update message once log analysis done - Added better error logging to console * Better handling of invalid files warning - Also fixed typo with bot message edit function * Refactored embed generation to make more sense - Embed is now based off a generic json assuming Unknown values at first - Embed fields moved closer together - Fields with newlines joined instead of manually separated - Intel iGPU message changed to show preference for discrete GPU's * Refactor to be simpler and easier to read. - Hardware, ryujinx and log analysis split into separate functions - Regex explicitly defined for each property instead of confusing map - Added user settings reported, shows PPTC enabled or disabled * Game notes sorted by order of severity Notes will appear with most severe warnings first as follows: ❌ ⚠️ ℹ ✅ * Analyses toggleable settings that appear in log Currently these are: PPTC, audio backed, docked/handheld and vsync. - Formatting change so these settings are more visible in bot embed * Refactored user_settings, rewording of bot embed - User settings reading handles missing log info for older versions - `Switch Mode` (docked/handheld info) changed to `Console Mode` - Missing firmware warning if firmware not installed * Warning when shader cache collision detected * Notes time elapsed in log file - Error handling for no notes to log * Show values for some user settings: audio, docked, missing services, resolution, shader cache and vsync * Analyse user changeable settings - Restructed embed to allow easier settings handling - Changed embed formatting to deal with inline colums more cleanly * Log file is now default function parameter * Better sorting of analysis messages - Now sorted alphabetically and by severity for consistency - Show available RAM in low RAM warning - Fix variable name misspelling * Logging level changed to info * Warn if bad dump in error message * Add warning for no custom build support * Warn user to post log in correct channel - Warn about not supporting custom builds - Warn to post in pr build if detected - Warn about channels to post logs if detected in #general * Fix logfilereader logic * Ryuko bot fixes and improvements (#4) * Fixes HTTPException by properly handling newline regex * Improves information display: - Shows settings info if no game is detected running - Empty log warning takes up less space - Error, Mods and Notes not shown on empty log * Improved empty log message - Also allow logs parsing in linux channel, as well as mentioning when posting in non-allowed channels * Fix ResScale parse error, better empty log message * DM users about correct channels instead of in chat * Fix variable spelling, clearer bad dump warning * Shows error snippet on empty log (#6) * Error snippet shown on empty log - Shader cache corruption warning * Loop to get missing info in log * Error search handles multiple terms - Minor spelling correction for resolution value - User settings visible on empty log * Fix error not being displayed if game name Unknown * Warns about PPTC and shader caches being disabled. - Warns about audio backend being set to Dummy - Shows PPTC cache and shader cache enabled/disabled Co-authored-by: Mary <1760003+Thog@users.noreply.github.com>
This commit is contained in:
parent
82958d47cb
commit
32a8b6b431
1 changed files with 27 additions and 9 deletions
|
@ -151,7 +151,8 @@ class LogFileReader(Cog):
|
|||
(
|
||||
f"**Audio Backend:** `{self.embed['settings']['audio_backend']}`",
|
||||
f"**Console Mode:** `{self.embed['settings']['docked']}`",
|
||||
f"**PPTC:** `{self.embed['settings']['pptc']}`",
|
||||
f"**PPTC cache:** `{self.embed['settings']['pptc']}`",
|
||||
f"**Shader cache:** `{self.embed['settings']['shader_cache']}`",
|
||||
f"**V-Sync:** `{self.embed['settings']['vsync']}`",
|
||||
)
|
||||
)
|
||||
|
@ -372,15 +373,18 @@ class LogFileReader(Cog):
|
|||
else:
|
||||
pass
|
||||
# Game name parsed last so that user settings are visible with empty log
|
||||
self.embed["game_info"]["game_name"] = (
|
||||
re.search(
|
||||
r"Loader LoadNca: Application Loaded:\s([^;\n\r]*)",
|
||||
log_file,
|
||||
re.MULTILINE,
|
||||
try:
|
||||
self.embed["game_info"]["game_name"] = (
|
||||
re.search(
|
||||
r"Loader LoadNca: Application Loaded:\s([^;\n\r]*)",
|
||||
log_file,
|
||||
re.MULTILINE,
|
||||
)
|
||||
.group(1)
|
||||
.rstrip()
|
||||
)
|
||||
.group(1)
|
||||
.rstrip()
|
||||
)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
if shader_cache_warn:
|
||||
shader_cache_warn = f"⚠️ Cache collision detected. Investigate possible shader cache issues"
|
||||
|
@ -481,6 +485,20 @@ class LogFileReader(Cog):
|
|||
firmware_warning = f"**❌ Nintendo Switch firmware not found**"
|
||||
self.embed["game_info"]["notes"].append(firmware_warning)
|
||||
|
||||
if self.embed["settings"]["audio_backend"] == "Dummy":
|
||||
dummy_warning = (
|
||||
f"⚠️ Dummy audio backend, consider changing to SDL2 or OpenAL"
|
||||
)
|
||||
self.embed["game_info"]["notes"].append(dummy_warning)
|
||||
|
||||
if self.embed["settings"]["pptc"] == "Disabled":
|
||||
pptc_warning = f"⚠️ PPTC cache should be enabled"
|
||||
self.embed["game_info"]["notes"].append(pptc_warning)
|
||||
|
||||
if self.embed["settings"]["shader_cache"] == "Disabled":
|
||||
shader_warning = f"⚠️ Shader cache should be enabled"
|
||||
self.embed["game_info"]["notes"].append(shader_warning)
|
||||
|
||||
mainline_version = re.compile(r"^\d\.\d\.(\d){4}$")
|
||||
pr_version = re.compile(r"^\d\.\d\.\d\+([a-f]|\d){7}$")
|
||||
ldn_version = re.compile(r"^\d\.\d\.\d\-ldn\d\.\d$")
|
||||
|
|
Loading…
Reference in a new issue