Initial implementation of "title.txt" parser cog #1405
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an initial implementation of a parser cog for
title.txt
files generated by themissingtitles
tag (or, more specifically, the Windowstree
command).It makes a few checks:
00040000
folder? (Helpee may have runtree
from the wrong place)title
? (00040002
pops up quite often in 3ds-assistance)00040000
...content
folder present?.app
file?.tmd
file?It then compiles the output of these checks into an easy-to-read message, as shown below:

(the "corrupted data" message is triggered when the
tree
parser hits a line it can't handle - in my testing, this generally happens when FAT32 corruption starts putting newline characters into filenames, but if this causes false positives, it can be removed)I have tested this using real
title.txt
files from assistance channels, with the results matching what helpers have told helpees to do, and I have also verified the results by hand - however, I fully welcome further testing.I'm not expecting this to be merged immediately. I am open to comments on any aspect of this cog - the parser design and implementation, the wording of the messages sent by Kurisu, and so on and so forth.
I hope this is at least somewhat helpful to others 😄