mirror of
https://github.com/Oreolek/gamebookformat.git
synced 2024-06-26 03:41:04 +03:00
Added checkgamebook.py script.
This commit is contained in:
parent
92b0f7276e
commit
bdd8eb2403
48
checkgamebook.py
Executable file
48
checkgamebook.py
Executable file
|
@ -0,0 +1,48 @@
|
||||||
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
|
"""
|
||||||
|
Copyright (c) 2014, Pelle Nilsson
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in
|
||||||
|
the documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
import os.path
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
|
||||||
|
USAGE = "usage: %prog [options] inputfile(s)... outputfile"
|
||||||
|
|
||||||
|
def check_gamebook(inputfilename):
|
||||||
|
book = json.load(open(inputfilename))
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import argparse
|
||||||
|
ap = argparse.ArgumentParser(
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||||
|
ap.add_argument('inputfile', metavar='debugfile',
|
||||||
|
help='input gamebook debug file (eg test.debug)')
|
||||||
|
args = ap.parse_args()
|
||||||
|
check_gamebook(args.inputfile)
|
21
todo.org
21
todo.org
|
@ -1,4 +1,4 @@
|
||||||
* TODO [61/83] [73%]
|
* TODO [62/92] [67%]
|
||||||
** DONE Debug output
|
** DONE Debug output
|
||||||
** DONE DOT output
|
** DONE DOT output
|
||||||
** DONE LaTeX output
|
** DONE LaTeX output
|
||||||
|
@ -77,6 +77,10 @@
|
||||||
test those from nodejs?
|
test those from nodejs?
|
||||||
** DONE Make debug output more useful with a stricter format easy to parse.
|
** DONE Make debug output more useful with a stricter format easy to parse.
|
||||||
Will be taken care of when implementing JSON output.
|
Will be taken care of when implementing JSON output.
|
||||||
|
** DONE checkgamebook.py script, parse debug file JSON
|
||||||
|
CLOSED: [2014-09-23 Tue 21:52]
|
||||||
|
** TODO checkgamebook.py build internal section graph
|
||||||
|
** TODO checkgamebook.py find unreachable sections
|
||||||
** TODO JavaScript improved design/code for what links to enable
|
** TODO JavaScript improved design/code for what links to enable
|
||||||
Many strange things can happen when clicking one link changes something
|
Many strange things can happen when clicking one link changes something
|
||||||
that should now enable or disable some link. Instead of the current
|
that should now enable or disable some link. Instead of the current
|
||||||
|
@ -133,12 +137,12 @@
|
||||||
** TODO Somewhat user-friendly js error messages and always fail early
|
** TODO Somewhat user-friendly js error messages and always fail early
|
||||||
** TODO More formatting possibilities in sections
|
** TODO More formatting possibilities in sections
|
||||||
Look at existing gamebooks to get ideas to add to this todo list.
|
Look at existing gamebooks to get ideas to add to this todo list.
|
||||||
** TODO Document Gamebook format
|
** TODO Document Gamebook format Basic gamebook (static, nothing about magic needed for dynamic)
|
||||||
- Basic gamebook (static, nothing about magic needed for dynamic; tutorial)
|
** TODO Document Gamebook format Advanced (more complex layout options, but still static)
|
||||||
- Advanced (more complex layout options, but still static)
|
** TODO Document Gamebook format Dynamic (markup needed to make playable (HTML) version)
|
||||||
- Dynamic (markup needed to make playable (HTML) version)
|
** TODO Document Gamebook format Standard output formats reference
|
||||||
- Standard output formats reference
|
** TODO Document Gamebook format Customization (make new output formats or override existing)
|
||||||
- Customization (make new output formats or override existing)
|
** TODO Reference documentation (all default template tags)
|
||||||
** TODO Make it possible for a modifier tag to refer to any other tag
|
** TODO Make it possible for a modifier tag to refer to any other tag
|
||||||
Currently a modifier (eg cost) always applies to tag on its left or right,
|
Currently a modifier (eg cost) always applies to tag on its left or right,
|
||||||
and it can be a bit confusing to remember what direction, or awkward to
|
and it can be a bit confusing to remember what direction, or awkward to
|
||||||
|
@ -173,4 +177,5 @@ listed even if it is not tagged.
|
||||||
differently from the normal include/exclude tags unfortunately.
|
differently from the normal include/exclude tags unfortunately.
|
||||||
Allow multiple sections with the same name, only use one that matches,
|
Allow multiple sections with the same name, only use one that matches,
|
||||||
or treat as any other missing section otherwise.
|
or treat as any other missing section otherwise.
|
||||||
** TODO Dummy and fake sections (handle properly when verifying)
|
** TODO checkgamebook.py ignore dummy and fake sections
|
||||||
|
** TODO checkgamebook.py trace items to find sections they are needed but can not have been found
|
||||||
|
|
Loading…
Reference in a new issue