mirror of
https://gitea.tendokyu.moe/eamuse/docs.git
synced 2024-11-30 17:24:32 +01:00
Syntax highlight!
This commit is contained in:
parent
fb99158425
commit
61fd25fa51
116
docs.py
116
docs.py
@ -1,32 +1,73 @@
|
|||||||
from flask import Flask, send_from_directory, render_template
|
from flask import Flask, send_from_directory, render_template
|
||||||
from livereload import Server
|
from livereload import Server
|
||||||
|
import xml_lexer
|
||||||
|
|
||||||
|
import re
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
app.jinja_options.setdefault('extensions', []).append('jinja2_highlight.HighlightExtension')
|
||||||
|
|
||||||
|
|
||||||
|
TEMPLATES = "templates"
|
||||||
|
PAGES_BASE = "pages"
|
||||||
|
STATIC = ["images"]
|
||||||
|
|
||||||
|
ROOT = os.environ.get("EA_ROOT", "")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def generate_xrpc_list():
|
||||||
|
output = "<ul>"
|
||||||
|
proto = TEMPLATES + "/" + PAGES_BASE + "/proto"
|
||||||
|
for base, _, files in os.walk(proto):
|
||||||
|
prefix = base[len(proto):].replace("\\", "/").strip("/")
|
||||||
|
if prefix:
|
||||||
|
prefix = prefix.replace("/", ".") + "."
|
||||||
|
for i in files:
|
||||||
|
delim = "_" if prefix else "."
|
||||||
|
href = f"{ROOT}/proto{base[len(proto):]}/{i}"
|
||||||
|
output += f"<li><code><a href=\"{href}\">"
|
||||||
|
output += prefix + i.replace(".html", delim + "%s")
|
||||||
|
output += "</code></a></li>"
|
||||||
|
with open(os.path.join(base, i)) as f:
|
||||||
|
headers = re.findall('<h2 id="([^"]*?)">', f.read())
|
||||||
|
output += "<ul>"
|
||||||
|
for j in headers:
|
||||||
|
output += f"<li><code><a href=\"{href}#{j}\">"
|
||||||
|
output += prefix + i.replace(".html", delim + j)
|
||||||
|
output += "</code></a></li>"
|
||||||
|
output += "</ul>"
|
||||||
|
return output + "</ul>"
|
||||||
|
|
||||||
|
|
||||||
@app.route("/styles.css")
|
@app.route("/styles.css")
|
||||||
def styles():
|
def styles():
|
||||||
return send_from_directory(".", "styles.css")
|
return send_from_directory(".", "styles.css")
|
||||||
|
@app.route("/tango.css")
|
||||||
|
def tango():
|
||||||
|
return send_from_directory(".", "tango.css")
|
||||||
|
|
||||||
|
|
||||||
for base, folders, files in os.walk("images"):
|
for i in STATIC:
|
||||||
for name in files:
|
for base, _, files in os.walk(i):
|
||||||
def handler(base, name):
|
for name in files:
|
||||||
def handler():
|
def handler(base, name):
|
||||||
return send_from_directory(base, name)
|
def handler():
|
||||||
return handler
|
return send_from_directory(base, name)
|
||||||
local_base = base.replace("\\", "/").strip(".").strip("/")
|
return handler
|
||||||
route = local_base + "/" + name
|
local_base = base.replace("\\", "/").strip(".").strip("/")
|
||||||
if not route.startswith("/"):
|
route = local_base + "/" + name
|
||||||
route = "/" + route
|
if not route.startswith("/"):
|
||||||
|
route = "/" + route
|
||||||
|
|
||||||
handler = handler(base, name)
|
handler = handler(base, name)
|
||||||
handler.__name__ == route
|
handler.__name__ == route
|
||||||
app.add_url_rule(route, route, handler)
|
app.add_url_rule(route, route, handler)
|
||||||
|
|
||||||
TEMPLATES = "templates"
|
|
||||||
PAGES_BASE = "pages"
|
for base, _, files in os.walk(TEMPLATES + "/" + PAGES_BASE):
|
||||||
for base, folders, files in os.walk(TEMPLATES + "/" + PAGES_BASE):
|
|
||||||
if ".git" in base:
|
if ".git" in base:
|
||||||
continue
|
continue
|
||||||
if base.startswith(TEMPLATES):
|
if base.startswith(TEMPLATES):
|
||||||
@ -36,7 +77,11 @@ for base, folders, files in os.walk(TEMPLATES + "/" + PAGES_BASE):
|
|||||||
if name.endswith(".html"):
|
if name.endswith(".html"):
|
||||||
def handler(base, name):
|
def handler(base, name):
|
||||||
def handler():
|
def handler():
|
||||||
return render_template(os.path.join(base, name).strip("/").replace("\\", "/"), ROOT=os.environ.get("EA_ROOT"))
|
return render_template(
|
||||||
|
os.path.join(base, name).strip("/").replace("\\", "/"),
|
||||||
|
ROOT=ROOT,
|
||||||
|
generate_xrpc_list=generate_xrpc_list
|
||||||
|
)
|
||||||
return handler
|
return handler
|
||||||
|
|
||||||
local_base = base.replace("\\", "/").strip(".").strip("/")
|
local_base = base.replace("\\", "/").strip(".").strip("/")
|
||||||
@ -54,26 +99,27 @@ for base, folders, files in os.walk(TEMPLATES + "/" + PAGES_BASE):
|
|||||||
app.add_url_rule(route, route, handler)
|
app.add_url_rule(route, route, handler)
|
||||||
|
|
||||||
|
|
||||||
from flask import url_for
|
# from flask import url_for
|
||||||
def has_no_empty_params(rule):
|
# def has_no_empty_params(rule):
|
||||||
defaults = rule.defaults if rule.defaults is not None else ()
|
# defaults = rule.defaults if rule.defaults is not None else ()
|
||||||
arguments = rule.arguments if rule.arguments is not None else ()
|
# arguments = rule.arguments if rule.arguments is not None else ()
|
||||||
return len(defaults) >= len(arguments)
|
# return len(defaults) >= len(arguments)
|
||||||
@app.route("/site-map")
|
# @app.route("/site-map")
|
||||||
def site_map():
|
# def site_map():
|
||||||
links = []
|
# links = []
|
||||||
for rule in app.url_map.iter_rules():
|
# for rule in app.url_map.iter_rules():
|
||||||
# Filter out rules we can't navigate to in a browser
|
# if "GET" in rule.methods and has_no_empty_params(rule):
|
||||||
# and rules that require parameters
|
# url = url_for(rule.endpoint, **(rule.defaults or {}))
|
||||||
if "GET" in rule.methods and has_no_empty_params(rule):
|
# links.append((url, rule.endpoint))
|
||||||
url = url_for(rule.endpoint, **(rule.defaults or {}))
|
# return str(links)
|
||||||
links.append((url, rule.endpoint))
|
|
||||||
return str(links)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.config['TEMPLATES_AUTO_RELOAD'] = True
|
app.config['TEMPLATES_AUTO_RELOAD'] = True
|
||||||
app.config['DEBUG'] = True
|
app.config['DEBUG'] = True
|
||||||
|
|
||||||
server = Server(app.wsgi_app)
|
app.run(debug=True, port=3000, host="0.0.0.0")
|
||||||
server.watch("templates")
|
|
||||||
server.serve(port=3000)
|
# server = Server(app.wsgi_app)
|
||||||
|
# server.watch(".")
|
||||||
|
# server.serve(port=3000)
|
20
styles.css
20
styles.css
@ -14,6 +14,7 @@ table {
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.code {
|
table.code {
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
}
|
}
|
||||||
@ -28,9 +29,11 @@ td {
|
|||||||
padding: 2px;
|
padding: 2px;
|
||||||
min-width: 32px;
|
min-width: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
table:not(.code) td {
|
table:not(.code) td {
|
||||||
padding: 2px 6px;
|
padding: 2px 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.code td {
|
table.code td {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
@ -54,13 +57,16 @@ code {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
}
|
}
|
||||||
td > code {
|
|
||||||
|
td>code {
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
}
|
}
|
||||||
code > a {
|
|
||||||
|
code>a {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
pre > code {
|
|
||||||
|
pre>code, .highlight {
|
||||||
display: block;
|
display: block;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
@ -72,6 +78,14 @@ pre > code {
|
|||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
width: min-content;
|
width: min-content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pre>.highlight {
|
||||||
|
margin-bottom: -16px;
|
||||||
|
}
|
||||||
|
.highlight>pre {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
|
77
tango.css
Normal file
77
tango.css
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
.highlight .hll { background-color: #ffffcc }
|
||||||
|
.highlight { background: #f8f8f8; }
|
||||||
|
.highlight .c { color: #8f5902; font-style: italic } /* Comment */
|
||||||
|
.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */
|
||||||
|
.highlight .g { color: #000000 } /* Generic */
|
||||||
|
.highlight .k { color: #204a87; font-weight: bold } /* Keyword */
|
||||||
|
.highlight .l { color: #000000 } /* Literal */
|
||||||
|
.highlight .n { color: #000000 } /* Name */
|
||||||
|
.highlight .o { color: #ce5c00; font-weight: bold } /* Operator */
|
||||||
|
.highlight .x { color: #000000 } /* Other */
|
||||||
|
.highlight .p { color: #000000; font-weight: bold } /* Punctuation */
|
||||||
|
.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */
|
||||||
|
.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */
|
||||||
|
.highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */
|
||||||
|
.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */
|
||||||
|
.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */
|
||||||
|
.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */
|
||||||
|
.highlight .gd { color: #a40000 } /* Generic.Deleted */
|
||||||
|
.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */
|
||||||
|
.highlight .gr { color: #ef2929 } /* Generic.Error */
|
||||||
|
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||||
|
.highlight .gi { color: #00A000 } /* Generic.Inserted */
|
||||||
|
.highlight .go { color: #000000; font-style: italic } /* Generic.Output */
|
||||||
|
.highlight .gp { color: #8f5902 } /* Generic.Prompt */
|
||||||
|
.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */
|
||||||
|
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||||
|
.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */
|
||||||
|
.highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */
|
||||||
|
.highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */
|
||||||
|
.highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */
|
||||||
|
.highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */
|
||||||
|
.highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */
|
||||||
|
.highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */
|
||||||
|
.highlight .ld { color: #000000 } /* Literal.Date */
|
||||||
|
.highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */
|
||||||
|
.highlight .s { color: #4e9a06 } /* Literal.String */
|
||||||
|
.highlight .na { color: #c4a000 } /* Name.Attribute */
|
||||||
|
.highlight .nb { color: #204a87 } /* Name.Builtin */
|
||||||
|
.highlight .nc { color: #000000 } /* Name.Class */
|
||||||
|
.highlight .no { color: #000000 } /* Name.Constant */
|
||||||
|
.highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */
|
||||||
|
.highlight .ni { color: #ce5c00 } /* Name.Entity */
|
||||||
|
.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */
|
||||||
|
.highlight .nf { color: #000000 } /* Name.Function */
|
||||||
|
.highlight .nl { color: #f57900 } /* Name.Label */
|
||||||
|
.highlight .nn { color: #000000 } /* Name.Namespace */
|
||||||
|
.highlight .nx { color: #000000 } /* Name.Other */
|
||||||
|
.highlight .py { color: #000000 } /* Name.Property */
|
||||||
|
.highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */
|
||||||
|
.highlight .nv { color: #000000 } /* Name.Variable */
|
||||||
|
.highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */
|
||||||
|
.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */
|
||||||
|
.highlight .mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */
|
||||||
|
.highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */
|
||||||
|
.highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */
|
||||||
|
.highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */
|
||||||
|
.highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */
|
||||||
|
.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */
|
||||||
|
.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */
|
||||||
|
.highlight .sc { color: #4e9a06 } /* Literal.String.Char */
|
||||||
|
.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */
|
||||||
|
.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */
|
||||||
|
.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */
|
||||||
|
.highlight .se { color: #4e9a06 } /* Literal.String.Escape */
|
||||||
|
.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */
|
||||||
|
.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */
|
||||||
|
.highlight .sx { color: #4e9a06 } /* Literal.String.Other */
|
||||||
|
.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */
|
||||||
|
.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */
|
||||||
|
.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */
|
||||||
|
.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */
|
||||||
|
.highlight .fm { color: #000000 } /* Name.Function.Magic */
|
||||||
|
.highlight .vc { color: #000000 } /* Name.Variable.Class */
|
||||||
|
.highlight .vg { color: #000000 } /* Name.Variable.Global */
|
||||||
|
.highlight .vi { color: #000000 } /* Name.Variable.Instance */
|
||||||
|
.highlight .vm { color: #000000 } /* Name.Variable.Magic */
|
||||||
|
.highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */
|
@ -8,6 +8,7 @@
|
|||||||
<title>{% block title %}{% endblock %}{% if self.title() %} | {% endif %}e-Amusement API</title>
|
<title>{% block title %}{% endblock %}{% if self.title() %} | {% endif %}e-Amusement API</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="{{ROOT}}/styles.css">
|
<link rel="stylesheet" href="{{ROOT}}/styles.css">
|
||||||
|
<link rel="stylesheet" href="{{ROOT}}/tango.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
@ -8,24 +8,25 @@
|
|||||||
for. My local implementation is in python, so that's all you're getting :). As a free bonus, have some test
|
for. My local implementation is in python, so that's all you're getting :). As a free bonus, have some test
|
||||||
cases too. It's not great code by any stretch, and it liberally uses assertions rather than proper
|
cases too. It's not great code by any stretch, and it liberally uses assertions rather than proper
|
||||||
exceptions, but it should be a good enough starting point for your own version.</p>
|
exceptions, but it should be a good enough starting point for your own version.</p>
|
||||||
<pre><code>import binascii
|
<pre></pre>{% highlight 'python' %}
|
||||||
|
import binascii
|
||||||
from Crypto.Cipher import DES3
|
from Crypto.Cipher import DES3
|
||||||
|
|
||||||
|
|
||||||
KEY = b"" # Check the <a href="#des">DES section</a> for this
|
KEY = b"" # Check the DES section for this
|
||||||
_KEY = bytes(i * 2 for i in KEY) # Preprocess the key
|
_KEY = bytes(i * 2 for i in KEY) # Preprocess the key
|
||||||
|
|
||||||
ALPHABET = "0123456789ABCDEFGHJKLMNPRSTUWXYZ"
|
ALPHABET = "0123456789ABCDEFGHJKLMNPRSTUWXYZ"
|
||||||
|
|
||||||
|
|
||||||
def enc_des(uid):
|
def enc_des(uid):
|
||||||
cipher = DES3.new(_KEY, DES3.MODE_CBC, iv=b'\0' * 8)
|
cipher = DES3.new(_KEY, DES3.MODE_CBC, iv=b'\0' * 8)
|
||||||
return cipher.encrypt(uid)
|
return cipher.encrypt(uid)
|
||||||
|
|
||||||
|
|
||||||
def dec_des(uid):
|
def dec_des(uid):
|
||||||
cipher = DES3.new(_KEY, DES3.MODE_CBC, iv=b'\0' * 8)
|
cipher = DES3.new(_KEY, DES3.MODE_CBC, iv=b'\0' * 8)
|
||||||
return cipher.decrypt(uid)
|
return cipher.decrypt(uid)
|
||||||
|
|
||||||
|
|
||||||
def checksum(data):
|
def checksum(data):
|
||||||
@ -38,79 +39,79 @@ return chk
|
|||||||
|
|
||||||
|
|
||||||
def pack_5(data):
|
def pack_5(data):
|
||||||
data = "".join(f"{i:05b}" for i in data)
|
data = "".join(f"{i:05b}" for i in data)
|
||||||
if len(data) % 8 != 0:
|
if len(data) % 8 != 0:
|
||||||
data += "0" * (8 - (len(data) % 8))
|
data += "0" * (8 - (len(data) % 8))
|
||||||
return bytes(int(data[i:i+8], 2) for i in range(0, len(data), 8))
|
return bytes(int(data[i:i+8], 2) for i in range(0, len(data), 8))
|
||||||
|
|
||||||
|
|
||||||
def unpack_5(data):
|
def unpack_5(data):
|
||||||
data = "".join(f"{i:08b}" for i in data)
|
data = "".join(f"{i:08b}" for i in data)
|
||||||
if len(data) % 5 != 0:
|
if len(data) % 5 != 0:
|
||||||
data += "0" * (5 - (len(data) % 5))
|
data += "0" * (5 - (len(data) % 5))
|
||||||
return bytes(int(data[i:i+5], 2) for i in range(0, len(data), 5))
|
return bytes(int(data[i:i+5], 2) for i in range(0, len(data), 5))
|
||||||
|
|
||||||
|
|
||||||
def to_konami_id(uid):
|
def to_konami_id(uid):
|
||||||
assert len(uid) == 16, "UID must be 16 bytes"
|
assert len(uid) == 16, "UID must be 16 bytes"
|
||||||
|
|
||||||
if uid.upper().startswith("E004"):
|
if uid.upper().startswith("E004"):
|
||||||
card_type = 1
|
card_type = 1
|
||||||
elif uid.upper().startswith("0"):
|
elif uid.upper().startswith("0"):
|
||||||
card_type = 2
|
card_type = 2
|
||||||
else:
|
else:
|
||||||
raise ValueError("Invalid UID prefix")
|
raise ValueError("Invalid UID prefix")
|
||||||
|
|
||||||
kid = binascii.unhexlify(uid)
|
kid = binascii.unhexlify(uid)
|
||||||
assert len(kid) == 8, "ID must be 8 bytes"
|
assert len(kid) == 8, "ID must be 8 bytes"
|
||||||
|
|
||||||
out = bytearray(unpack_5(enc_des(kid[::-1]))[:13]) + b'\0\0\0'
|
out = bytearray(unpack_5(enc_des(kid[::-1]))[:13]) + b'\0\0\0'
|
||||||
|
|
||||||
out[0] ^= card_type
|
out[0] ^= card_type
|
||||||
out[13] = 1
|
out[13] = 1
|
||||||
for i in range(1, 14):
|
for i in range(1, 14):
|
||||||
out[i] ^= out[i - 1]
|
out[i] ^= out[i - 1]
|
||||||
out[14] = card_type
|
out[14] = card_type
|
||||||
out[15] = checksum(out)
|
out[15] = checksum(out)
|
||||||
|
|
||||||
return "".join(ALPHABET[i] for i in out)
|
return "".join(ALPHABET[i] for i in out)
|
||||||
|
|
||||||
|
|
||||||
def to_uid(konami_id):
|
def to_uid(konami_id):
|
||||||
if konami_id[14] == "1":
|
if konami_id[14] == "1":
|
||||||
card_type = 1
|
card_type = 1
|
||||||
elif konami_id[14] == "2":
|
elif konami_id[14] == "2":
|
||||||
card_type = 2
|
card_type = 2
|
||||||
else:
|
else:
|
||||||
raise ValueError("Invalid ID")
|
raise ValueError("Invalid ID")
|
||||||
|
|
||||||
assert len(konami_id) == 16, f"ID must be 16 characters"
|
assert len(konami_id) == 16, f"ID must be 16 characters"
|
||||||
assert all(i in ALPHABET for i in konami_id), "ID contains invalid characters"
|
assert all(i in ALPHABET for i in konami_id), "ID contains invalid characters"
|
||||||
card = [ALPHABET.index(i) for i in konami_id]
|
card = [ALPHABET.index(i) for i in konami_id]
|
||||||
assert card[11] % 2 == card[12] % 2, "Parity check failed"
|
assert card[11] % 2 == card[12] % 2, "Parity check failed"
|
||||||
assert card[13] == card[12] ^ 1, "Card invalid"
|
assert card[13] == card[12] ^ 1, "Card invalid"
|
||||||
assert card[15] == checksum(card), "Checksum failed"
|
assert card[15] == checksum(card), "Checksum failed"
|
||||||
|
|
||||||
for i in range(13, 0, -1):
|
for i in range(13, 0, -1):
|
||||||
card[i] ^= card[i - 1]
|
card[i] ^= card[i - 1]
|
||||||
|
|
||||||
card[0] ^= card_type
|
card[0] ^= card_type
|
||||||
|
|
||||||
card_id = dec_des(pack_5(card[:13])[:8])[::-1]
|
card_id = dec_des(pack_5(card[:13])[:8])[::-1]
|
||||||
card_id = binascii.hexlify(card_id).decode().upper()
|
card_id = binascii.hexlify(card_id).decode().upper()
|
||||||
|
|
||||||
if card_type == 1:
|
if card_type == 1:
|
||||||
assert card_id[:4] == "E004", "Invalid card type"
|
assert card_id[:4] == "E004", "Invalid card type"
|
||||||
elif card_type == 2:
|
elif card_type == 2:
|
||||||
assert card_id[0] == "0", "Invalid card type"
|
assert card_id[0] == "0", "Invalid card type"
|
||||||
return card_id
|
return card_id
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
assert to_konami_id("0000000000000000") == "007TUT8XJNSSPN2P", "To KID failed"
|
assert to_konami_id("0000000000000000") == "007TUT8XJNSSPN2P", "To KID failed"
|
||||||
assert to_uid("007TUT8XJNSSPN2P") == "0000000000000000", "From KID failed"
|
assert to_uid("007TUT8XJNSSPN2P") == "0000000000000000", "From KID failed"
|
||||||
assert to_uid(to_konami_id("000000100200F000")) == "000000100200F000", "Roundtrip failed"
|
assert to_uid(to_konami_id("000000100200F000")) == "000000100200F000", "Roundtrip failed"
|
||||||
</code></pre>
|
{% endhighlight %}</pre>
|
||||||
</details>
|
</details>
|
||||||
<p>e-Amusement cards use 16 digit IDs. KONAMI IDs are also 16 digits. Are they related? Yes! In fact, KONAMI IDs are
|
<p>e-Amusement cards use 16 digit IDs. KONAMI IDs are also 16 digits. Are they related? Yes! In fact, KONAMI IDs are
|
||||||
derived from the ID stored on the e-Amusement card.</p>
|
derived from the ID stored on the e-Amusement card.</p>
|
||||||
@ -195,7 +196,7 @@ card[0] ^= card_type</code></pre>
|
|||||||
<summary>In <i>most</i> languages?</summary>
|
<summary>In <i>most</i> languages?</summary>
|
||||||
<p>Haha well you see we can actually cheat and use string manipulation. Wasteful? Incredibly. Efficient? Not
|
<p>Haha well you see we can actually cheat and use string manipulation. Wasteful? Incredibly. Efficient? Not
|
||||||
at all. Quick and easy? Yup!</p>
|
at all. Quick and easy? Yup!</p>
|
||||||
<pre><code>def pack_5(data):
|
<pre>{% highlight "python" %}def pack_5(data):
|
||||||
data = "".join(f"{i:05b}" for i in data)
|
data = "".join(f"{i:05b}" for i in data)
|
||||||
if len(data) % 8 != 0:
|
if len(data) % 8 != 0:
|
||||||
data += "0" * (8 - (len(data) % 8))
|
data += "0" * (8 - (len(data) % 8))
|
||||||
@ -205,7 +206,7 @@ def unpack_5(data):
|
|||||||
data = "".join(f"{i:08b}" for i in data)
|
data = "".join(f"{i:08b}" for i in data)
|
||||||
if len(data) % 5 != 0:
|
if len(data) % 5 != 0:
|
||||||
data += "0" * (5 - (len(data) % 5))
|
data += "0" * (5 - (len(data) % 5))
|
||||||
return bytes(int(data[i:i+5], 2) for i in range(0, len(data), 5))</code></pre>
|
return bytes(int(data[i:i+5], 2) for i in range(0, len(data), 5)){% endhighlight %}</pre>
|
||||||
<p>If your language of choice allows this, and you don't care for efficiency, this can be a great time-saver
|
<p>If your language of choice allows this, and you don't care for efficiency, this can be a great time-saver
|
||||||
towards get something working. Truth be told my local implementation originally used the Bemani method
|
towards get something working. Truth be told my local implementation originally used the Bemani method
|
||||||
(it was a line-for-line port, after all), switched to the second method, then I opted for this hacky
|
(it was a line-for-line port, after all), switched to the second method, then I opted for this hacky
|
||||||
@ -272,7 +273,7 @@ card[15] = <a href="#checksum">checksum(card)</a></code></pre>
|
|||||||
Either way, my python port didn't do any cleaning up, because we can just use a DES library.</p>
|
Either way, my python port didn't do any cleaning up, because we can just use a DES library.</p>
|
||||||
<details>
|
<details>
|
||||||
<summary>Show me that!</summary>
|
<summary>Show me that!</summary>
|
||||||
<pre><code>DES_KEYMAP = [
|
<pre>{% highlight "python" %}DES_KEYMAP = [
|
||||||
[0x02080008, 0x02082000, 0x00002008, 0x00000000, 0x02002000, 0x00080008, 0x02080000, 0x02082008, 0x00000008, 0x02000000, 0x00082000, 0x00002008, 0x00082008, 0x02002008, 0x02000008, 0x02080000, 0x00002000, 0x00082008, 0x00080008, 0x02002000, 0x02082008, 0x02000008, 0x00000000, 0x00082000, 0x02000000, 0x00080000, 0x02002008, 0x02080008, 0x00080000, 0x00002000, 0x02082000, 0x00000008, 0x00080000, 0x00002000, 0x02000008, 0x02082008, 0x00002008, 0x02000000, 0x00000000, 0x00082000, 0x02080008, 0x02002008, 0x02002000, 0x00080008, 0x02082000, 0x00000008, 0x00080008, 0x02002000, 0x02082008, 0x00080000, 0x02080000, 0x02000008, 0x00082000, 0x00002008, 0x02002008, 0x02080000, 0x00000008, 0x02082000, 0x00082008, 0x00000000, 0x02000000, 0x02080008, 0x00002000, 0x00082008],
|
[0x02080008, 0x02082000, 0x00002008, 0x00000000, 0x02002000, 0x00080008, 0x02080000, 0x02082008, 0x00000008, 0x02000000, 0x00082000, 0x00002008, 0x00082008, 0x02002008, 0x02000008, 0x02080000, 0x00002000, 0x00082008, 0x00080008, 0x02002000, 0x02082008, 0x02000008, 0x00000000, 0x00082000, 0x02000000, 0x00080000, 0x02002008, 0x02080008, 0x00080000, 0x00002000, 0x02082000, 0x00000008, 0x00080000, 0x00002000, 0x02000008, 0x02082008, 0x00002008, 0x02000000, 0x00000000, 0x00082000, 0x02080008, 0x02002008, 0x02002000, 0x00080008, 0x02082000, 0x00000008, 0x00080008, 0x02002000, 0x02082008, 0x00080000, 0x02080000, 0x02000008, 0x00082000, 0x00002008, 0x02002008, 0x02080000, 0x00000008, 0x02082000, 0x00082008, 0x00000000, 0x02000000, 0x02080008, 0x00002000, 0x00082008],
|
||||||
[0x08000004, 0x00020004, 0x00000000, 0x08020200, 0x00020004, 0x00000200, 0x08000204, 0x00020000, 0x00000204, 0x08020204, 0x00020200, 0x08000000, 0x08000200, 0x08000004, 0x08020000, 0x00020204, 0x00020000, 0x08000204, 0x08020004, 0x00000000, 0x00000200, 0x00000004, 0x08020200, 0x08020004, 0x08020204, 0x08020000, 0x08000000, 0x00000204, 0x00000004, 0x00020200, 0x00020204, 0x08000200, 0x00000204, 0x08000000, 0x08000200, 0x00020204, 0x08020200, 0x00020004, 0x00000000, 0x08000200, 0x08000000, 0x00000200, 0x08020004, 0x00020000, 0x00020004, 0x08020204, 0x00020200, 0x00000004, 0x08020204, 0x00020200, 0x00020000, 0x08000204, 0x08000004, 0x08020000, 0x00020204, 0x00000000, 0x00000200, 0x08000004, 0x08000204, 0x08020200, 0x08020000, 0x00000204, 0x00000004, 0x08020004],
|
[0x08000004, 0x00020004, 0x00000000, 0x08020200, 0x00020004, 0x00000200, 0x08000204, 0x00020000, 0x00000204, 0x08020204, 0x00020200, 0x08000000, 0x08000200, 0x08000004, 0x08020000, 0x00020204, 0x00020000, 0x08000204, 0x08020004, 0x00000000, 0x00000200, 0x00000004, 0x08020200, 0x08020004, 0x08020204, 0x08020000, 0x08000000, 0x00000204, 0x00000004, 0x00020200, 0x00020204, 0x08000200, 0x00000204, 0x08000000, 0x08000200, 0x00020204, 0x08020200, 0x00020004, 0x00000000, 0x08000200, 0x08000000, 0x00000200, 0x08020004, 0x00020000, 0x00020004, 0x08020204, 0x00020200, 0x00000004, 0x08020204, 0x00020200, 0x00020000, 0x08000204, 0x08000004, 0x08020000, 0x00020204, 0x00000000, 0x00000200, 0x08000004, 0x08000204, 0x08020200, 0x08020000, 0x00000204, 0x00000004, 0x08020004],
|
||||||
[0x80040100, 0x01000100, 0x80000000, 0x81040100, 0x00000000, 0x01040000, 0x81000100, 0x80040000, 0x01040100, 0x81000000, 0x01000000, 0x80000100, 0x81000000, 0x80040100, 0x00040000, 0x01000000, 0x81040000, 0x00040100, 0x00000100, 0x80000000, 0x00040100, 0x81000100, 0x01040000, 0x00000100, 0x80000100, 0x00000000, 0x80040000, 0x01040100, 0x01000100, 0x81040000, 0x81040100, 0x00040000, 0x81040000, 0x80000100, 0x00040000, 0x81000000, 0x00040100, 0x01000100, 0x80000000, 0x01040000, 0x81000100, 0x00000000, 0x00000100, 0x80040000, 0x00000000, 0x81040000, 0x01040100, 0x00000100, 0x01000000, 0x81040100, 0x80040100, 0x00040000, 0x81040100, 0x80000000, 0x01000100, 0x80040100, 0x80040000, 0x00040100, 0x01040000, 0x81000100, 0x80000100, 0x01000000, 0x81000000, 0x01040100],
|
[0x80040100, 0x01000100, 0x80000000, 0x81040100, 0x00000000, 0x01040000, 0x81000100, 0x80040000, 0x01040100, 0x81000000, 0x01000000, 0x80000100, 0x81000000, 0x80040100, 0x00040000, 0x01000000, 0x81040000, 0x00040100, 0x00000100, 0x80000000, 0x00040100, 0x81000100, 0x01040000, 0x00000100, 0x80000100, 0x00000000, 0x80040000, 0x01040100, 0x01000100, 0x81040000, 0x81040100, 0x00040000, 0x81040000, 0x80000100, 0x00040000, 0x81000000, 0x00040100, 0x01000100, 0x80000000, 0x01040000, 0x81000100, 0x00000000, 0x00000100, 0x80040000, 0x00000000, 0x81040000, 0x01040100, 0x00000100, 0x01000000, 0x81040100, 0x80040100, 0x00040000, 0x81040100, 0x80000000, 0x01000100, 0x80040100, 0x80040000, 0x00040100, 0x01040000, 0x81000100, 0x80000100, 0x01000000, 0x81000000, 0x01040100],
|
||||||
@ -461,7 +462,7 @@ def load_key(key):
|
|||||||
key_data = bytearray(24)
|
key_data = bytearray(24)
|
||||||
for i in range(24):
|
for i in range(24):
|
||||||
key_data[i] = 2 * key[i % len(key)]
|
key_data[i] = 2 * key[i % len(key)]
|
||||||
des3_setkey(KEY_DATA, key_data)</code></pre>
|
des3_setkey(KEY_DATA, key_data){% endhighlight %}</pre>
|
||||||
</details>
|
</details>
|
||||||
</details>
|
</details>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -78,7 +78,4 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<a href="./transport.html">Next page</a>
|
<a href="./transport.html">Next page</a>
|
||||||
|
|
||||||
<p><small>This site intentionally looks not-great. I don't feel like changing that, and honestly quite like the
|
|
||||||
aesthetic.</small></p>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -2,8 +2,8 @@
|
|||||||
{% block body %}
|
{% block body %}
|
||||||
<h1>Packet format</h1>
|
<h1>Packet format</h1>
|
||||||
|
|
||||||
<p>eAmuse uses XML for its application layer payloads*. This XML is either verbatim, or in a custom packed binary
|
<p>e-Amusement uses XML for its application layer payloads. This XML is either verbatim, or in a custom packed binary
|
||||||
format.<br /><small>*Newer games use JSON, but this page is about XML.</small></p>
|
format.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2 id="xml">The XML format</h2>
|
<h2 id="xml">The XML format</h2>
|
||||||
@ -12,28 +12,32 @@
|
|||||||
have a <code>__count</code> attribute indicating how many items are in the array. Binary blobs additionally have
|
have a <code>__count</code> attribute indicating how many items are in the array. Binary blobs additionally have
|
||||||
a <code>__size</code> attribute indicating their length (this is notably not present on strings, however).</p>
|
a <code>__size</code> attribute indicating their length (this is notably not present on strings, however).</p>
|
||||||
<p>It is perhaps simpler to illustrate with an example, so:</p>
|
<p>It is perhaps simpler to illustrate with an example, so:</p>
|
||||||
<pre><code><?xml version='1.0' encoding='UTF-8'?>
|
<pre>{% highlight 'xml' %}
|
||||||
<call model="KFC:J:A:A:2019020600" srcid="1000" tag="b0312077">
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<eventlog method="write">
|
<call model="KFC:J:A:A:2019020600" srcid="1000" tag="b0312077">
|
||||||
<retrycnt __type="u32" />
|
<eventlog method="write">
|
||||||
<data>
|
<retrycnt __type="u32" />
|
||||||
<eventid __type="str">G_CARDED</eventid>
|
<data>
|
||||||
<eventorder __type="s32">5</eventorder>
|
<eventid __type="str">G_CARDED</eventid>
|
||||||
<pcbtime __type="u64">1639669516779</pcbtime>
|
<eventorder __type="s32">5</eventorder>
|
||||||
<gamesession __type="s64">1</gamesession>
|
<pcbtime __type="u64">1639669516779</pcbtime>
|
||||||
<strdata1 __type="str" />
|
<gamesession __type="s64">1</gamesession>
|
||||||
<strdata2 __type="str" />
|
<strdata1 __type="str" />
|
||||||
<numdata1 __type="s64">1</numdata1>
|
<strdata2 __type="str" />
|
||||||
<numdata2 __type="s64" />
|
<numdata1 __type="s64">1</numdata1>
|
||||||
<locationid __type="str">ea</locationid>
|
<numdata2 __type="s64" />
|
||||||
</data>
|
<locationid __type="str">ea</locationid>
|
||||||
</eventlog>
|
</data>
|
||||||
</call></code></pre>
|
</eventlog>
|
||||||
|
</call>
|
||||||
|
{% endhighlight %}</pre>
|
||||||
<p>Arrays are encoded by concatenating every value together, with spaces between them. Data types that have multiple
|
<p>Arrays are encoded by concatenating every value together, with spaces between them. Data types that have multiple
|
||||||
values, are serialized similarly.</p>
|
values, are serialized similarly.</p>
|
||||||
<p>Therefore, an element storing an array of <code>3u8</code> (<code>[(1, 2, 3), (4, 5, 6)]</code>) would look like
|
<p>Therefore, an element storing an array of <code>3u8</code> (<code>[(1, 2, 3), (4, 5, 6)]</code>) would look like
|
||||||
this</p>
|
this</p>
|
||||||
<pre><code><demo __type="3u8" __count="2">1 2 3 4 5 6</demo></code></pre>
|
<pre>{% highlight 'xml' %}
|
||||||
|
<demo __type="3u8" __count="2">1 2 3 4 5 6</demo>
|
||||||
|
{% endhighlight %}</pre>
|
||||||
<p>Besides this, this is otherwise a rather standard XML.</p>
|
<p>Besides this, this is otherwise a rather standard XML.</p>
|
||||||
|
|
||||||
<h2 id="binary">Packed binary overview</h2>
|
<h2 id="binary">Packed binary overview</h2>
|
||||||
@ -182,9 +186,9 @@
|
|||||||
</figure>
|
</figure>
|
||||||
<p>This is indexed using the following function, which maps the above encoding IDs to 1, 2, 3, 4 and 5
|
<p>This is indexed using the following function, which maps the above encoding IDs to 1, 2, 3, 4 and 5
|
||||||
respectively.</p>
|
respectively.</p>
|
||||||
<pre><code>char* xml_get_encoding_name(uint encoding_id) {
|
<pre>{% highlight "c" %}char* xml_get_encoding_name(uint encoding_id) {
|
||||||
return ENCODING_NAME_TABLE[((encoding_id & 0xe0) >> 5) * 4];
|
return ENCODING_NAME_TABLE[((encoding_id & 0xe0) >> 5) * 4];
|
||||||
}</code></pre>
|
}{% endhighlight %}</pre>
|
||||||
</details>
|
</details>
|
||||||
<p>While validating <code>~E</code> isn't technically required, it acts as a useful assertion that the packet being
|
<p>While validating <code>~E</code> isn't technically required, it acts as a useful assertion that the packet being
|
||||||
parsed is valid.</p>
|
parsed is valid.</p>
|
||||||
@ -839,7 +843,7 @@
|
|||||||
<p>While the intuitive way to understand the packing algorithm is via chunks and buckets, a far more efficient
|
<p>While the intuitive way to understand the packing algorithm is via chunks and buckets, a far more efficient
|
||||||
implementation can be made that uses three pointers. Rather than try to explain in words, hopefully this python
|
implementation can be made that uses three pointers. Rather than try to explain in words, hopefully this python
|
||||||
implementation should suffice as explanation:
|
implementation should suffice as explanation:
|
||||||
<pre><code>class Packer:
|
<pre>{% highlight "python" %}class Packer:
|
||||||
def __init__(self, offset=0):
|
def __init__(self, offset=0):
|
||||||
self._word_cursor = offset
|
self._word_cursor = offset
|
||||||
self._short_cursor = offset
|
self._short_cursor = offset
|
||||||
@ -873,7 +877,7 @@
|
|||||||
|
|
||||||
def notify_skipped(self, no_bytes):
|
def notify_skipped(self, no_bytes):
|
||||||
for _ in range(math.ceil(no_bytes / 4)):
|
for _ in range(math.ceil(no_bytes / 4)):
|
||||||
self.request_allocation(4)</code></pre>
|
self.request_allocation(4){% endhighlight %}</pre>
|
||||||
</p>
|
</p>
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
<h1><code>apsmanager</code></h1>
|
<h1><code>apsmanager</code></h1>
|
||||||
<h2 id="getstat"><code>apsmanager.getstat</code></h2>
|
<h2 id="getstat"><code>apsmanager.getstat</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<apsmanager method="getstat" model*="" />
|
<apsmanager method="getstat" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<apsmanager status="<i>status</i>" />
|
<apsmanager status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -46,9 +46,9 @@
|
|||||||
<p>Request information about a card that has been inserted or touched against a reader.</p>
|
<p>Request information about a card that has been inserted or touched against a reader.</p>
|
||||||
|
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
|
<cardmng method="inquire" cardid="" cardtype="" update="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>update</code></td>
|
<td><code>update</code></td>
|
||||||
@ -56,9 +56,9 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" refid="" dataid="" pcode="" newflag="" binded="" expired=" ecflag="" useridflag="" extidflag="" lastupdate="" />
|
<cardmng status="??status" refid="" dataid="" pcode="" newflag="" binded="" expired="" ecflag="" useridflag="" extidflag="" lastupdate="" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>To handle this request, we first must lookup if this <code>cardid</code> has ever been seen by our servers
|
<p>To handle this request, we first must lookup if this <code>cardid</code> has ever been seen by our servers
|
||||||
before. If not, we abort with a <code>112</code> status. Otherwise, we proceeed to check if this card has been
|
before. If not, we abort with a <code>112</code> status. Otherwise, we proceeed to check if this card has been
|
||||||
seen for this specific game. If we have never seen this card used on this game, it is possible this card was
|
seen for this specific game. If we have never seen this card used on this game, it is possible this card was
|
||||||
@ -92,9 +92,9 @@
|
|||||||
<h2 id="getrefid"><code>cardmng.getrefid</code></h2>
|
<h2 id="getrefid"><code>cardmng.getrefid</code></h2>
|
||||||
<p>Register a new card to this server.</p>
|
<p>Register a new card to this server.</p>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
|
<cardmng method="getrefid" cardtype="" cardid=" newflag="" passwd="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>newflag</code></td>
|
<td><code>newflag</code></td>
|
||||||
@ -107,9 +107,9 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" refid="" dataid="" pcode="" />
|
<cardmng status="??status" refid="" dataid="" pcode="" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>refid</code></td>
|
<td><code>refid</code></td>
|
||||||
@ -128,32 +128,32 @@
|
|||||||
|
|
||||||
<h2 id="bindmodel"><code>cardmng.bindmodel</code></h2>
|
<h2 id="bindmodel"><code>cardmng.bindmodel</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="bindmodel" refid="" newflag="" model*="" />
|
<cardmng method="bindmodel" refid="" newflag="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" dataid="" />
|
<cardmng status="??status" dataid="" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="bindcard"><code>cardmng.bindcard</code></h2>
|
<h2 id="bindcard"><code>cardmng.bindcard</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
|
<cardmng method="bindcard" cardtype="" newid="" refid="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" />
|
<cardmng status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="authpass"><code>cardmng.authpass</code></h2>
|
<h2 id="authpass"><code>cardmng.authpass</code></h2>
|
||||||
<p>Test a pin for a card. This request notably uses the <code>refid</code>, so required a
|
<p>Test a pin for a card. This request notably uses the <code>refid</code>, so required a
|
||||||
<code>cardmng.inquire</code> call to be made first.
|
<code>cardmng.inquire</code> call to be made first.
|
||||||
</p>
|
</p>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="authpass" refid="" pass="" model*="" />
|
<cardmng method="authpass" refid="" pass="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>refid</code></td>
|
<td><code>refid</code></td>
|
||||||
@ -166,47 +166,47 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" />
|
<cardmng status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>If the pin is valid, status should be <code>0</code>. Otherwise, <code>116</code>.</p>
|
<p>If the pin is valid, status should be <code>0</code>. Otherwise, <code>116</code>.</p>
|
||||||
|
|
||||||
<h2 id="getkeepspan"><code>cardmng.getkeepspan</code></h2>
|
<h2 id="getkeepspan"><code>cardmng.getkeepspan</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="getkeepspan" model*="" />
|
<cardmng method="getkeepspan" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" keepspan="" />
|
<cardmng status="??status" keepspan="" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getkeepremain"><code>cardmng.getkeepremain</code></h2>
|
<h2 id="getkeepremain"><code>cardmng.getkeepremain</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="getkeepremain" refid="" model*="" />
|
<cardmng method="getkeepremain" refid="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>" keepremain="" />
|
<cardmng status="??status" keepremain="" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getdatalist"><code>cardmng.getdatalist</code></h2>
|
<h2 id="getdatalist"><code>cardmng.getdatalist</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<cardmng method="getdatalist" refid="" model*="" />
|
<cardmng method="getdatalist" refid="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<cardmng status="<i>status</i>">
|
<cardmng status="??status">
|
||||||
<item[]>
|
<item[]>
|
||||||
<mcode __type="str" />
|
<mcode __type="str" />
|
||||||
<dataid __type="str" />
|
<dataid __type="str" />
|
||||||
<regtime __type="str" />
|
<regtime __type="str" />
|
||||||
<lasttime __type="str" />
|
<lasttime __type="str" />
|
||||||
<exptime __type="str" />
|
<exptime __type="str" />
|
||||||
<expflag __type="u8" />
|
<expflag __type="u8" />
|
||||||
</item[]>
|
</item[]>
|
||||||
</cardmng>
|
</cardmng>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,32 +3,32 @@
|
|||||||
<h1><code>dlstatus</code></h1>
|
<h1><code>dlstatus</code></h1>
|
||||||
<h2 id="done"><code>dlstatus.done</code></h2>
|
<h2 id="done"><code>dlstatus.done</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<dlstatus method="done">
|
<dlstatus method="done">
|
||||||
<url>
|
<url>
|
||||||
<param __type="str" />
|
<param __type="str" />
|
||||||
</url>
|
</url>
|
||||||
<name __type="str" />
|
<name __type="str" />
|
||||||
<size __type="s32" />
|
<size __type="s32" />
|
||||||
</dlstatus>
|
</dlstatus>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<dlstatus status="<i>status</i>">
|
<dlstatus status="??status">
|
||||||
<progress __type="s32" />
|
<progress __type="s32" />
|
||||||
</dlstatus>
|
</dlstatus>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="progress"><code>dlstatus.progress</code></h2>
|
<h2 id="progress"><code>dlstatus.progress</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<dlstatus method="progress" />
|
<dlstatus method="progress" />
|
||||||
<progress __type="s32" />
|
<progress __type="s32" />
|
||||||
</dlstatus>
|
</dlstatus>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<dlstatus status="<i>status</i>" />
|
<dlstatus status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,178 +3,178 @@
|
|||||||
<h1><code>eacoin</code></h1>
|
<h1><code>eacoin</code></h1>
|
||||||
<h2 id="checkin"><code>eacoin.checkin</code></h2>
|
<h2 id="checkin"><code>eacoin.checkin</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="checkin">
|
<eacoin method="checkin">
|
||||||
<cardtype __type="str" />
|
<cardtype __type="str" />
|
||||||
<cardid __type="str" />
|
<cardid __type="str" />
|
||||||
<passwd __type="str" />
|
<passwd __type="str" />
|
||||||
<ectype __type="str" />
|
<ectype __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<sequence __type="s16" />
|
<sequence __type="s16" />
|
||||||
<acstatus __type="u8" />
|
<acstatus __type="u8" />
|
||||||
<acid __type="str" />
|
<acid __type="str" />
|
||||||
<acname __type="str" />
|
<acname __type="str" />
|
||||||
<balance __type="s32" />
|
<balance __type="s32" />
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="checkout"><code>eacoin.checkout</code></h2>
|
<h2 id="checkout"><code>eacoin.checkout</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="checkout">
|
<eacoin method="checkout">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>" />
|
<eacoin status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="consume"><code>eacoin.consume</code></h2>
|
<h2 id="consume"><code>eacoin.consume</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="consume" esid="">
|
<eacoin method="consume" esid="">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
<sequence __type="s16" />
|
<sequence __type="s16" />
|
||||||
<payment __type="s32" />
|
<payment __type="s32" />
|
||||||
<service __type="s16" />
|
<service __type="s16" />
|
||||||
<itemtype __type="str" />
|
<itemtype __type="str" />
|
||||||
<detail __type="str" />
|
<detail __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<acstatus __type="u8" />
|
<acstatus __type="u8" />
|
||||||
<autocharge __type="u8" />
|
<autocharge __type="u8" />
|
||||||
<balance __type="s32" />
|
<balance __type="s32" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getbalance"><code>eacoin.getbalance</code></h2>
|
<h2 id="getbalance"><code>eacoin.getbalance</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="getbalance">
|
<eacoin method="getbalance">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<acstatus __type="u8" />
|
<acstatus __type="u8" />
|
||||||
<balance __type="s32" />
|
<balance __type="s32" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getecstatus"><code>eacoin.getecstatus</code></h2>
|
<h2 id="getecstatus"><code>eacoin.getecstatus</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="getecstatus" />
|
<eacoin method="getecstatus" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<ectype __type="str" />
|
<ectype __type="str" />
|
||||||
<ecstatus __type="u8" />
|
<ecstatus __type="u8" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="touch"><code>eacoin.touch</code></h2>
|
<h2 id="touch"><code>eacoin.touch</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="touch">
|
<eacoin method="touch">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>" />
|
<eacoin status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="opchpass"><code>eacoin.opchpass</code></h2>
|
<h2 id="opchpass"><code>eacoin.opchpass</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="opchpass">
|
<eacoin method="opchpass">
|
||||||
<passwd __type="str" />
|
<passwd __type="str" />
|
||||||
<newpasswd __type="str" />
|
<newpasswd __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>" />
|
<eacoin status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="opcheckin"><code>eacoin.opcheckin</code></h2>
|
<h2 id="opcheckin"><code>eacoin.opcheckin</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="opcheckin">
|
<eacoin method="opcheckin">
|
||||||
<passwd __type="str" />
|
<passwd __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="opcheckout"><code>eacoin.opcheckout</code></h2>
|
<h2 id="opcheckout"><code>eacoin.opcheckout</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="opcheckout">
|
<eacoin method="opcheckout">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>" />
|
<eacoin status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getlog"><code>eacoin.getlog</code></h2>
|
<h2 id="getlog"><code>eacoin.getlog</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eacoin method="getlog">
|
<eacoin method="getlog">
|
||||||
<sessid __type="str" />
|
<sessid __type="str" />
|
||||||
<logtype __type="str" />
|
<logtype __type="str" />
|
||||||
<ectype __type="str" />
|
<ectype __type="str" />
|
||||||
<target __type="str" />
|
<target __type="str" />
|
||||||
<perpage __type="s16" />
|
<perpage __type="s16" />
|
||||||
<page __type="s16" />
|
<page __type="s16" />
|
||||||
<sesstype __type="str" />
|
<sesstype __type="str" />
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eacoin status="<i>status</i>">
|
<eacoin status="??status">
|
||||||
<processing __type="u8" />
|
<processing __type="u8" />
|
||||||
<topic>
|
<topic>
|
||||||
<sumdate __type="str" />
|
<sumdate __type="str" />
|
||||||
<sumfrom __type="str" />
|
<sumfrom __type="str" />
|
||||||
<sumto __type="str" />
|
<sumto __type="str" />
|
||||||
|
|
||||||
<today __type="s32" />
|
<today __type="s32" />
|
||||||
<average __type="s32" />
|
<average __type="s32" />
|
||||||
<total __type="s32" />
|
<total __type="s32" />
|
||||||
</topic>
|
</topic>
|
||||||
<summary>
|
<summary>
|
||||||
<items __type="s32" />
|
<items __type="s32" />
|
||||||
</summary>
|
</summary>
|
||||||
<history>
|
<history>
|
||||||
<item[]>
|
<item[]>
|
||||||
<date __type="str" />
|
<date __type="str" />
|
||||||
<consume __type="s32" />
|
<consume __type="s32" />
|
||||||
<service __type="s32" />
|
<service __type="s32" />
|
||||||
<cardtype __type="str" />
|
<cardtype __type="str" />
|
||||||
<cardno __type="str" />
|
<cardno __type="str" />
|
||||||
<title __type="str" />
|
<title __type="str" />
|
||||||
<systemid __type="str" />
|
<systemid __type="str" />
|
||||||
</item[]>
|
</item[]>
|
||||||
</history>
|
</history>
|
||||||
</eacoin>
|
</eacoin>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,15 +3,15 @@
|
|||||||
<h1><code>esign</code></h1>
|
<h1><code>esign</code></h1>
|
||||||
<h2 id="request"><code>esign.request</code></h2>
|
<h2 id="request"><code>esign.request</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<esign method="request">
|
<esign method="request">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</esign>
|
</esign>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<esign status="<i>status</i>">
|
<esign status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</esign>
|
</esign>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,28 +3,28 @@
|
|||||||
<h1><code>esoc</code></h1>
|
<h1><code>esoc</code></h1>
|
||||||
<h2 id="read"><code>esoc.read</code></h2>
|
<h2 id="read"><code>esoc.read</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<esoc method="read">
|
<esoc method="read">
|
||||||
<senddata />
|
<senddata />
|
||||||
</esoc>
|
</esoc>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<esoc status="<i>status</i>">
|
<esoc status="??status">
|
||||||
<recvdata />
|
<recvdata />
|
||||||
</esoc>
|
</esoc>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>Go figure.</p>
|
<p>Go figure.</p>
|
||||||
|
|
||||||
<h2 id="write"><code>esoc.write</code></h2>
|
<h2 id="write"><code>esoc.write</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<esoc method="write">
|
<esoc method="write">
|
||||||
<senddata />
|
<senddata />
|
||||||
</esoc>
|
</esoc>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<esoc status="<i>status</i>" />
|
<esoc status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,22 +3,22 @@
|
|||||||
<h1><code>eventlog</code></h1>
|
<h1><code>eventlog</code></h1>
|
||||||
<h2 id="write"><code>eventlog.write</code></h2>
|
<h2 id="write"><code>eventlog.write</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<eventlog method="write">
|
<eventlog method="write">
|
||||||
<retrycnt __type="u32" />
|
<retrycnt __type="u32" />
|
||||||
<data>
|
<data>
|
||||||
<eventid __type="str" />
|
<eventid __type="str" />
|
||||||
<eventorder __type="s32" />
|
<eventorder __type="s32" />
|
||||||
<pcbtime __type="u64" />
|
<pcbtime __type="u64" />
|
||||||
<gamesession __type="s64" />
|
<gamesession __type="s64" />
|
||||||
<strdata1 __type="str" />
|
<strdata1 __type="str" />
|
||||||
<strdata2 __type="str" />
|
<strdata2 __type="str" />
|
||||||
<numdata1 __type="s64" />
|
<numdata1 __type="s64" />
|
||||||
<numdata2 __type="s64" />
|
<numdata2 __type="s64" />
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</eventlog>
|
</eventlog>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<p>Event ID list:</p>
|
<p>Event ID list:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>G_GAMED</code></li>
|
<li><code>G_GAMED</code></li>
|
||||||
@ -27,12 +27,12 @@
|
|||||||
<li><code>T_OTDEMO</code></li>
|
<li><code>T_OTDEMO</code></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<eventlog status="<i>status</i>">
|
<eventlog status="??status">
|
||||||
<gamesession __type="s64" />
|
<gamesession __type="s64" />
|
||||||
<logsendflg __type="s32" />
|
<logsendflg __type="s32" />
|
||||||
<logerrlevel __type="s32" />
|
<logerrlevel __type="s32" />
|
||||||
<evtidnosendflg __type="s32" />
|
<evtidnosendflg __type="s32" />
|
||||||
</eventlog>
|
</eventlog>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,66 +3,66 @@
|
|||||||
<h1><code>facility</code></h1>
|
<h1><code>facility</code></h1>
|
||||||
<h2 id="get"><code>facility.get</code></h2>
|
<h2 id="get"><code>facility.get</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<facility method="get" privateip*="" encoding*="" />
|
<facility method="get" privateip*="" encoding*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<facility expire=""\ status="<i>status</i>">
|
<facility expire="" status="??status">
|
||||||
<calendar*>
|
<calendar*>
|
||||||
<year __type="s16" />
|
<year __type="s16" />
|
||||||
<holiday __type="s16" />
|
<holiday __type="s16" />
|
||||||
</calendar>
|
</calendar>
|
||||||
<location>
|
<location>
|
||||||
<id __type="str" />
|
<id __type="str" />
|
||||||
<country __type="str" />
|
<country __type="str" />
|
||||||
<region __type="str" />
|
<region __type="str" />
|
||||||
<name __type="str" />
|
<name __type="str" />
|
||||||
<type __type="u8" />
|
<type __type="u8" />
|
||||||
<countryname __type="str" />
|
<countryname __type="str" />
|
||||||
<countryjname __type="str" />
|
<countryjname __type="str" />
|
||||||
<regionname __type="str" />
|
<regionname __type="str" />
|
||||||
<regionjname __type="str" />
|
<regionjname __type="str" />
|
||||||
<customercode __type="str" />
|
<customercode __type="str" />
|
||||||
<companycode __type="str" />
|
<companycode __type="str" />
|
||||||
<latitude __type="s32" />
|
<latitude __type="s32" />
|
||||||
<longitude __type="s32" />
|
<longitude __type="s32" />
|
||||||
<accuracy __type="u8" />
|
<accuracy __type="u8" />
|
||||||
</location>
|
</location>
|
||||||
<line>
|
<line>
|
||||||
<id __type="str" />
|
<id __type="str" />
|
||||||
<class __type="u8" />
|
<class __type="u8" />
|
||||||
</line>
|
</line>
|
||||||
<portfw>
|
<portfw>
|
||||||
<globalip __type="ip4" />
|
<globalip __type="ip4" />
|
||||||
<globalport __type="s16" />
|
<globalport __type="s16" />
|
||||||
<privateport __type="s16" />
|
<privateport __type="s16" />
|
||||||
</portfw>
|
</portfw>
|
||||||
<public>
|
<public>
|
||||||
<flag __type="u8" />1</ flag>
|
<flag __type="u8" />1</ flag>
|
||||||
<name __type="str" />
|
<name __type="str" />
|
||||||
<latitude __type="str">0<latitude>
|
<latitude __type="str">0<latitude>
|
||||||
<longitude __type="str">0<longitude>
|
<longitude __type="str">0<longitude>
|
||||||
</public>
|
</public>
|
||||||
<share>
|
<share>
|
||||||
<eapass*>
|
<eapass*>
|
||||||
<valid __type="?" />
|
<valid __type="?" />
|
||||||
</eapass>
|
</eapass>
|
||||||
<eacoin>
|
<eacoin>
|
||||||
<notchamount __type="s32" />
|
<notchamount __type="s32" />
|
||||||
<notchcount __type="s32" />
|
<notchcount __type="s32" />
|
||||||
<supplylimit __type="s32">100000<supplylimit>
|
<supplylimit __type="s32">100000<supplylimit>
|
||||||
</eacoin>
|
</eacoin>
|
||||||
<url>
|
<url>
|
||||||
<eapass __type="str">www.ea-pass.konami.net<eapass>
|
<eapass __type="str">www.ea-pass.konami.net<eapass>
|
||||||
<arcadefan __type="str">www.konami.jp/am<arcadefan>
|
<arcadefan __type="str">www.konami.jp/am<arcadefan>
|
||||||
<konaminetdx __type="str">http://am.573.jp<konaminetdx>
|
<konaminetdx __type="str">http://am.573.jp<konaminetdx>
|
||||||
<konamiid __type="str">http://id.konami.jp<konamiid>
|
<konamiid __type="str">http://id.konami.jp<konamiid>
|
||||||
<eagate __type="str">http://eagate.573.jp<eagate>
|
<eagate __type="str">http://eagate.573.jp<eagate>
|
||||||
</url>
|
</url>
|
||||||
</share>
|
</share>
|
||||||
</facility>
|
</facility>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p><i>I'm not totally sure what type <code>share/eapass/valid</code> is meant to be, but it's optional, so I'd
|
<p><i>I'm not totally sure what type <code>share/eapass/valid</code> is meant to be, but it's optional, so I'd
|
||||||
suggest just not bothering and leaving it out :).</i></p>
|
suggest just not bothering and leaving it out :).</i></p>
|
||||||
<table>
|
<table>
|
||||||
|
@ -3,365 +3,365 @@
|
|||||||
<h1 id="game"><code>game</code></h1>
|
<h1 id="game"><code>game</code></h1>
|
||||||
<h2 id="sample"><code>game.sv4_sample</code></h2>
|
<h2 id="sample"><code>game.sv4_sample</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_sample">
|
<game method="sv4_sample">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="new"><code>game.sv4_new</code></h2>
|
<h2 id="new"><code>game.sv4_new</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_new">
|
<game method="sv4_new">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="load"><code>game.sv4_load</code></h2>
|
<h2 id="load"><code>game.sv4_load</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_load">
|
<game method="sv4_load">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="load_m"><code>game.sv4_load_m</code></h2>
|
<h2 id="load_m"><code>game.sv4_load_m</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_load_m">
|
<game method="sv4_load_m">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save"><code>game.sv4_save</code></h2>
|
<h2 id="save"><code>game.sv4_save</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save">
|
<game method="sv4_save">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_m"><code>game.sv4_save_m</code></h2>
|
<h2 id="save_m"><code>game.sv4_save_m</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_m">
|
<game method="sv4_save_m">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="common"><code>game.sv4_common</code></h2>
|
<h2 id="common"><code>game.sv4_common</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_common">
|
<game method="sv4_common">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="shop"><code>game.sv4_shop</code></h2>
|
<h2 id="shop"><code>game.sv4_shop</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_shop">
|
<game method="sv4_shop">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="hiscore"><code>game.sv4_hiscore</code></h2>
|
<h2 id="hiscore"><code>game.sv4_hiscore</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_hiscore">
|
<game method="sv4_hiscore">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="buy"><code>game.sv4_buy</code></h2>
|
<h2 id="buy"><code>game.sv4_buy</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_buy">
|
<game method="sv4_buy">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="exception"><code>game.sv4_exception</code></h2>
|
<h2 id="exception"><code>game.sv4_exception</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_exception">
|
<game method="sv4_exception">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="entry_s"><code>game.sv4_entry_s</code></h2>
|
<h2 id="entry_s"><code>game.sv4_entry_s</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_entry_s">
|
<game method="sv4_entry_s">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="entry_e"><code>game.sv4_entry_e</code></h2>
|
<h2 id="entry_e"><code>game.sv4_entry_e</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_entry_e">
|
<game method="sv4_entry_e">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="frozen"><code>game.sv4_frozen</code></h2>
|
<h2 id="frozen"><code>game.sv4_frozen</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_frozen">
|
<game method="sv4_frozen">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="lounge"><code>game.sv4_lounge</code></h2>
|
<h2 id="lounge"><code>game.sv4_lounge</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_lounge">
|
<game method="sv4_lounge">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_e"><code>game.sv4_save_e</code></h2>
|
<h2 id="save_e"><code>game.sv4_save_e</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_e">
|
<game method="sv4_save_e">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_pb"><code>game.sv4_save_pb</code></h2>
|
<h2 id="save_pb"><code>game.sv4_save_pb</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_pb">
|
<game method="sv4_save_pb">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_c"><code>game.sv4_save_c</code></h2>
|
<h2 id="save_c"><code>game.sv4_save_c</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_c">
|
<game method="sv4_save_c">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="play_s"><code>game.sv4_play_s</code></h2>
|
<h2 id="play_s"><code>game.sv4_play_s</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_play_s">
|
<game method="sv4_play_s">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="play_e"><code>game.sv4_play_e</code></h2>
|
<h2 id="play_e"><code>game.sv4_play_e</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_play_e">
|
<game method="sv4_play_e">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="serial"><code>game.sv4_serial</code></h2>
|
<h2 id="serial"><code>game.sv4_serial</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_serial">
|
<game method="sv4_serial">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_fi"><code>game.sv4_save_fi</code></h2>
|
<h2 id="save_fi"><code>game.sv4_save_fi</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_fi">
|
<game method="sv4_save_fi">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="print"><code>game.sv4_print</code></h2>
|
<h2 id="print"><code>game.sv4_print</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_print">
|
<game method="sv4_print">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="print_h"><code>game.sv4_print_h</code></h2>
|
<h2 id="print_h"><code>game.sv4_print_h</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_print_h">
|
<game method="sv4_print_h">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="load_r"><code>game.sv4_load_r</code></h2>
|
<h2 id="load_r"><code>game.sv4_load_r</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_load_r">
|
<game method="sv4_load_r">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="save_campaign"><code>game.sv4_save_campaign</code></h2>
|
<h2 id="save_campaign"><code>game.sv4_save_campaign</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<game method="sv4_save_campaign">
|
<game method="sv4_save_campaign">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<game status="<i>status</i>">
|
<game status="??status">
|
||||||
<i>placeholder</i>
|
<i>placeholder</i>
|
||||||
</game>
|
</game>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,81 +3,81 @@
|
|||||||
<h1><code>matching</code></h1>
|
<h1><code>matching</code></h1>
|
||||||
<h2 id="request"><code>matching.request</code></h2>
|
<h2 id="request"><code>matching.request</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<matching method="request">
|
<matching method="request">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<matchtyp __type="s32" />
|
<matchtyp __type="s32" />
|
||||||
<matchgrp __type="s32" />
|
<matchgrp __type="s32" />
|
||||||
<matchflg __type="s32" />
|
<matchflg __type="s32" />
|
||||||
<waituser __type="s32" />
|
<waituser __type="s32" />
|
||||||
<waittime __type="s32" />
|
<waittime __type="s32" />
|
||||||
<joinip __type="str" />
|
<joinip __type="str" />
|
||||||
<localip __type="str" />
|
<localip __type="str" />
|
||||||
<localport __type="s32" />
|
<localport __type="s32" />
|
||||||
<dataid __type="str" />
|
<dataid __type="str" />
|
||||||
<gamekind __type="str" />
|
<gamekind __type="str" />
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
<lineid __type="str" />
|
<lineid __type="str" />
|
||||||
<locationcountry __type="str" />
|
<locationcountry __type="str" />
|
||||||
<locationregion __type="str" />
|
<locationregion __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</matching>
|
</matching>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<matching status="<i>status</i>">
|
<matching status="??status">
|
||||||
<hostid __type="s64" />
|
<hostid __type="s64" />
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<hostip_g __type="str" />
|
<hostip_g __type="str" />
|
||||||
<hostip_l __type="str" />
|
<hostip_l __type="str" />
|
||||||
<hostport_l __type="s32" />
|
<hostport_l __type="s32" />
|
||||||
<hostport_g __type="s32" />
|
<hostport_g __type="s32" />
|
||||||
</matching>
|
</matching>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="wait"><code>matching.wait</code></h2>
|
<h2 id="wait"><code>matching.wait</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<matching method="wait">
|
<matching method="wait">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<hostid __type="s64" />
|
<hostid __type="s64" />
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
<lineid __type="str" />
|
<lineid __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</matching>
|
</matching>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<matching status="<i>status</i>">
|
<matching status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<prwtime __type="s32" />
|
<prwtime __type="s32" />
|
||||||
</matching>
|
</matching>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="finish"><code>matching.finish</code></h2>
|
<h2 id="finish"><code>matching.finish</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<matching method="finish">
|
<matching method="finish">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<hostid __type="s64" />
|
<hostid __type="s64" />
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
<lineid __type="str" />
|
<lineid __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</matching>
|
</matching>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<matching status="<i>status</i>">
|
<matching status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
</matching>
|
</matching>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,13 +3,13 @@
|
|||||||
<h1><code>message</code></h1>
|
<h1><code>message</code></h1>
|
||||||
<h2 id="get"><code>message.get</code></h2>
|
<h2 id="get"><code>message.get</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<message method="get" model*="" />
|
<message method="get" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<message expire="" status="<i>status</i>">
|
<message expire="" status="??status">
|
||||||
<item[] name="" start="" end="" data="" />
|
<item[] name="" start="" end="" data="" />
|
||||||
</message>
|
</message>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,25 +3,25 @@
|
|||||||
<h1><code>package</code></h1>
|
<h1><code>package</code></h1>
|
||||||
<h2 id="list"><code>package.list</code></h2>
|
<h2 id="list"><code>package.list</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<package method="list" pkgtype="<i>pkgtype</i>" model*="" />
|
<package method="list" pkgtype="??pkgtype" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<p><code>all</code> is the only currently observed value for <code>pkgtype</code></p>
|
<p><code>all</code> is the only currently observed value for <code>pkgtype</code></p>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<package status="<i>status</i>">
|
<package status="??status">
|
||||||
<item[] url="" />
|
<item[] url="" />
|
||||||
</package>
|
</package>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>A list of all packages available for download.</p>
|
<p>A list of all packages available for download.</p>
|
||||||
|
|
||||||
<h2 id="intend"><code>package.intend</code></h2>
|
<h2 id="intend"><code>package.intend</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<package method="intend" url="" model*="" />
|
<package method="intend" url="" model*="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<package status="<i>status</i>" />
|
<package status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,19 +3,19 @@
|
|||||||
<h1><code>pcbevent</code></h1>
|
<h1><code>pcbevent</code></h1>
|
||||||
<h2 id="put"><code>pcbevent.put</code></h2>
|
<h2 id="put"><code>pcbevent.put</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<pcbevent method="put">
|
<pcbevent method="put">
|
||||||
<time __type="time" />
|
<time __type="time" />
|
||||||
<seq __type="u32" />
|
<seq __type="u32" />
|
||||||
<item[]>
|
<item[]>
|
||||||
<name __type="str" />
|
<name __type="str" />
|
||||||
<value __type="s32" />
|
<value __type="s32" />
|
||||||
<time __type="time" />
|
<time __type="time" />
|
||||||
</item[]>
|
</item[]>
|
||||||
</pcbevent>
|
</pcbevent>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<pcbevent status="<i>status</i>" />
|
<pcbevent status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,17 +3,17 @@
|
|||||||
<h1><code>pcbtracker</code></h1>
|
<h1><code>pcbtracker</code></h1>
|
||||||
<h2 id="alive"><code>pcbtracker.alive</code></h2>
|
<h2 id="alive"><code>pcbtracker.alive</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<pcbtracker method="alive" model*="" hardid="" softid="" accountid="" agree="" ecflag="" />
|
<pcbtracker method="alive" model*="" hardid="" softid="" accountid="" agree="" ecflag="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<p><code>ecflag</code> here is determining if the arcade operator allows the use of paseli on this machine.</p>
|
<p><code>ecflag</code> here is determining if the arcade operator allows the use of paseli on this machine.</p>
|
||||||
<p><code>agree@</code> and <code>ecflag@</code> appear to either be totally non present, or present with a value of
|
<p><code>agree@</code> and <code>ecflag@</code> appear to either be totally non present, or present with a value of
|
||||||
<code>"1"</code>, but then again I may be reading the code wrong, so take that with a pinch of salt.
|
<code>"1"</code>, but then again I may be reading the code wrong, so take that with a pinch of salt.
|
||||||
</p>
|
</p>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<pcbtracker status="" time="" limit="" ecenable="" eclimit="" >
|
<pcbtracker status="" time="" limit="" ecenable="" eclimit="" >
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>As you might guess, <code>ecenable@</code> is therefore the flag to determine if paseli is enabled (i.e. the
|
<p>As you might guess, <code>ecenable@</code> is therefore the flag to determine if paseli is enabled (i.e. the
|
||||||
arcade operator and the server both allow its use).</p>
|
arcade operator and the server both allow its use).</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,134 +3,134 @@
|
|||||||
<h1><code>playerdata</code></h1>
|
<h1><code>playerdata</code></h1>
|
||||||
<h2 id="usergamedata_send"><code>playerdata.usergamedata_send</code></h2>
|
<h2 id="usergamedata_send"><code>playerdata.usergamedata_send</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<playerdata method="usergamedata_send">
|
<playerdata method="usergamedata_send">
|
||||||
<retrycnt __type="u32" />
|
<retrycnt __type="u32" />
|
||||||
<info>
|
<info>
|
||||||
<version __type="u32" />
|
<version __type="u32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<refid __type="str" />
|
<refid __type="str" />
|
||||||
<dataid __type="str" />
|
<dataid __type="str" />
|
||||||
<gamekind __type="str" />
|
<gamekind __type="str" />
|
||||||
<datanum __type="u32" />
|
<datanum __type="u32" />
|
||||||
<record>
|
<record>
|
||||||
<d[] __type="str" />
|
<d[] __type="str" />
|
||||||
</record>
|
</record>
|
||||||
</data>
|
</data>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<playerdata status="<i>status</i>">
|
<playerdata status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="usergamedata_recv"><code>playerdata.usergamedata_recv</code></h2>
|
<h2 id="usergamedata_recv"><code>playerdata.usergamedata_recv</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<playerdata method="usergamedata_recv">
|
<playerdata method="usergamedata_recv">
|
||||||
<info>
|
<info>
|
||||||
<version __type="u32" />
|
<version __type="u32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<refid __type="str">
|
<refid __type="str">
|
||||||
<dataid __type="str">
|
<dataid __type="str">
|
||||||
<gamekind __type="str">
|
<gamekind __type="str">
|
||||||
<recv_num __type="u32">
|
<recv_num __type="u32">
|
||||||
</data>
|
</data>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<playerdata method="usergamedata_recv">
|
<playerdata method="usergamedata_recv">
|
||||||
<data>
|
<data>
|
||||||
<refid __type="str">
|
<refid __type="str">
|
||||||
<dataid __type="str">
|
<dataid __type="str">
|
||||||
<gamekind __type="str">
|
<gamekind __type="str">
|
||||||
<recv_csv __type="str">
|
<recv_csv __type="str">
|
||||||
</data>
|
</data>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<playerdata status="<i>status</i>">
|
<playerdata status="??status">
|
||||||
<player>
|
<player>
|
||||||
<result>
|
<result>
|
||||||
<record_num __type="u32" />
|
<record_num __type="u32" />
|
||||||
</result>
|
</result>
|
||||||
<record>
|
<record>
|
||||||
<d[]>
|
<d[]>
|
||||||
<bin1 __type="str" />
|
<bin1 __type="str" />
|
||||||
</d[]>
|
</d[]>
|
||||||
</record>
|
</record>
|
||||||
</player>
|
</player>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="usergamedata_inheritance"><code>playerdata.usergamedata_inheritance</code></h2>
|
<h2 id="usergamedata_inheritance"><code>playerdata.usergamedata_inheritance</code></h2>
|
||||||
<p>See: <code>playerdata.usergamedata_recv</code></p>
|
<p>See: <code>playerdata.usergamedata_recv</code></p>
|
||||||
|
|
||||||
<h2 id="usergamedata_condrecv"><code>playerdata.usergamedata_condrecv</code></h2>
|
<h2 id="usergamedata_condrecv"><code>playerdata.usergamedata_condrecv</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<playerdata method="usergamedata_condrecv">
|
<playerdata method="usergamedata_condrecv">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<dataid __type="str" />
|
<dataid __type="str" />
|
||||||
<gamekind __type="str" />
|
<gamekind __type="str" />
|
||||||
<vkey __type="str" />
|
<vkey __type="str" />
|
||||||
<conditionkey __type="str" />
|
<conditionkey __type="str" />
|
||||||
<columns_bit __type="u64" />
|
<columns_bit __type="u64" />
|
||||||
<conditions_num __type="u32" />
|
<conditions_num __type="u32" />
|
||||||
<where __type="str" />
|
<where __type="str" />
|
||||||
<order_num __type="u32" />
|
<order_num __type="u32" />
|
||||||
<order __type="str" />
|
<order __type="str" />
|
||||||
<recv_num __type="u32" />
|
<recv_num __type="u32" />
|
||||||
</info>
|
</info>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<playerdata status="<i>status</i>">
|
<playerdata status="??status">
|
||||||
<player>
|
<player>
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<record_num __type="s32" />
|
<record_num __type="s32" />
|
||||||
<record>
|
<record>
|
||||||
<d[]>
|
<d[]>
|
||||||
<bin1 __type="str" />
|
<bin1 __type="str" />
|
||||||
</d[]>
|
</d[]>
|
||||||
<record/>
|
<record/>
|
||||||
</player>
|
</player>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="usergamedata_scorerank"><code>playerdata.usergamedata_scorerank</code></h2>
|
<h2 id="usergamedata_scorerank"><code>playerdata.usergamedata_scorerank</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<playerdata method="usergamedata_scorerank">
|
<playerdata method="usergamedata_scorerank">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<dataid __type="str" />
|
<dataid __type="str" />
|
||||||
<gamekind __type="str" />
|
<gamekind __type="str" />
|
||||||
<ckey __type="str" />
|
<ckey __type="str" />
|
||||||
<conditionkey __type="str" />
|
<conditionkey __type="str" />
|
||||||
<score __type="str" />
|
<score __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<playerdata status="<i>status</i>">
|
<playerdata status="??status">
|
||||||
<rank>
|
<rank>
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<rank __type="s32" />
|
<rank __type="s32" />
|
||||||
<updatetime __type="u64" />
|
<updatetime __type="u64" />
|
||||||
</rank>
|
</rank>
|
||||||
</playerdata>
|
</playerdata>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,19 +3,19 @@
|
|||||||
<h1><code>services</code></h1>
|
<h1><code>services</code></h1>
|
||||||
<h2 id="get"><code>services.get</code></h2>
|
<h2 id="get"><code>services.get</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<services method="get" model*="" >
|
<services method="get" model*="" >
|
||||||
<info>
|
<info>
|
||||||
<AVS2 __type="str"><i>AVS2 version</i></AVS2>
|
<AVS2 __type="str"><i>AVS2 version</i></AVS2>
|
||||||
</info>
|
</info>
|
||||||
</services>
|
</services>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<services expire="" method="get" mode="" status="<i>status</i>">
|
<services expire="" method="get" mode="" status="??status">
|
||||||
<item[] name="<i>service</i>" url="<i>url</i>" />
|
<item[] name="??service" url="??url" />
|
||||||
</services>
|
</services>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>Known services are:</p>
|
<p>Known services are:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>ntp</code></li>
|
<li><code>ntp</code></li>
|
||||||
|
@ -3,72 +3,72 @@
|
|||||||
<h1><code>sidmgr</code></h1>
|
<h1><code>sidmgr</code></h1>
|
||||||
<h2 id="create"><code>sidmgr.create</code></h2>
|
<h2 id="create"><code>sidmgr.create</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<sidmgr method="create">
|
<sidmgr method="create">
|
||||||
<cardtype __type="str" />
|
<cardtype __type="str" />
|
||||||
<cardid __type="str" />
|
<cardid __type="str" />
|
||||||
<cardgid __type="str" />
|
<cardgid __type="str" />
|
||||||
<steal __type="u8" />
|
<steal __type="u8" />
|
||||||
</sidmgr>
|
</sidmgr>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<sidmgr status="<i>status</i>">
|
<sidmgr status="??status">
|
||||||
<state __type="u32" />
|
<state __type="u32" />
|
||||||
<e_count __type="u8" />
|
<e_count __type="u8" />
|
||||||
<last __type="time" />
|
<last __type="time" />
|
||||||
<locked __type="time" />
|
<locked __type="time" />
|
||||||
<sid __type="str" />
|
<sid __type="str" />
|
||||||
<cardid_status __type="u8" />
|
<cardid_status __type="u8" />
|
||||||
<refid __type="str" />
|
<refid __type="str" />
|
||||||
</sidmgr>
|
</sidmgr>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="open"><code>sidmgr.open</code></h2>
|
<h2 id="open"><code>sidmgr.open</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<sidmgr method="open" sid="" >
|
<sidmgr method="open" sid="" >
|
||||||
<pass __type="str" />
|
<pass __type="str" />
|
||||||
</sidmgr>
|
</sidmgr>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<sidmgr status="<i>status</i>">
|
<sidmgr status="??status">
|
||||||
<state __type="u32" />
|
<state __type="u32" />
|
||||||
<refid __type="str" />
|
<refid __type="str" />
|
||||||
<locked __type="time" />
|
<locked __type="time" />
|
||||||
</sidmgr>
|
</sidmgr>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="touch"><code>sidmgr.touch</code></h2>
|
<h2 id="touch"><code>sidmgr.touch</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<sidmgr method="touch" sid="" />
|
<sidmgr method="touch" sid="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<sidmgr status="<i>status</i>" />
|
<sidmgr status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="branch"><code>sidmgr.branch</code></h2>
|
<h2 id="branch"><code>sidmgr.branch</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<sidmgr method="branch" sid="" />
|
<sidmgr method="branch" sid="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<sidmgr status="<i>status</i>" />
|
<sidmgr status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="close"><code>sidmgr.close</code></h2>
|
<h2 id="close"><code>sidmgr.close</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<sidmgr method="close" sid="" />
|
<sidmgr method="close" sid="" />
|
||||||
<cause __type="u32" />
|
<cause __type="u32" />
|
||||||
</sidmgr>
|
</sidmgr>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<sidmgr status="<i>status</i>" />
|
<sidmgr status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,104 +3,104 @@
|
|||||||
<h1><code>system</code></h1>
|
<h1><code>system</code></h1>
|
||||||
<h2 id="getmaster"><code>system.getmaster</code></h2>
|
<h2 id="getmaster"><code>system.getmaster</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<system method="getmaster">
|
<system method="getmaster">
|
||||||
<data>
|
<data>
|
||||||
<gamekind __type="str" />
|
<gamekind __type="str" />
|
||||||
<datatype __type="str" />
|
<datatype __type="str" />
|
||||||
<datakey __type="str" />
|
<datakey __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</system>
|
</system>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<system status="<i>status</i>">
|
<system status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<strdata1 __type="str" />
|
<strdata1 __type="str" />
|
||||||
<strdata2 __type="str" />
|
<strdata2 __type="str" />
|
||||||
<updatedate __type="u64" />
|
<updatedate __type="u64" />
|
||||||
</system>
|
</system>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="getlocationiplist"><code>system.getlocationiplist</code></h2>
|
<h2 id="getlocationiplist"><code>system.getlocationiplist</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<system method="getlocationiplist">
|
<system method="getlocationiplist">
|
||||||
<data>
|
<data>
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
<lineid __type="str" />
|
<lineid __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</system>
|
</system>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<system status="<i>status</i>">
|
<system status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<iplist>
|
<iplist>
|
||||||
<record_num __type="s32" />
|
<record_num __type="s32" />
|
||||||
<record[]>
|
<record[]>
|
||||||
<localconn __type="str" />
|
<localconn __type="str" />
|
||||||
</record[]>
|
</record[]>
|
||||||
</iplist>
|
</iplist>
|
||||||
</system>
|
</system>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="xrpcproxy"><code>system.xrpcproxy</code></h2>
|
<h2 id="xrpcproxy"><code>system.xrpcproxy</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<system method="xrpcproxy">
|
<system method="xrpcproxy">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<hostid __type="s64" />
|
<hostid __type="s64" />
|
||||||
<locationid __type="str" />
|
<locationid __type="str" />
|
||||||
<lineid __type="str" />
|
<lineid __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</system>
|
</system>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<system status="<i>status</i>">
|
<system status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<pwrtime __type="s32" />
|
<pwrtime __type="s32" />
|
||||||
<matchlist>
|
<matchlist>
|
||||||
<record_num __type="u32" />
|
<record_num __type="u32" />
|
||||||
<record[]>
|
<record[]>
|
||||||
<pcbid __type="str" />
|
<pcbid __type="str" />
|
||||||
<statusflg __type="str" />
|
<statusflg __type="str" />
|
||||||
<matchgrp __type="s32" />
|
<matchgrp __type="s32" />
|
||||||
<hostid __type="s64" />
|
<hostid __type="s64" />
|
||||||
<jointime __type="u64" />
|
<jointime __type="u64" />
|
||||||
<connip_g __type="str" />
|
<connip_g __type="str" />
|
||||||
<connport_g __type="s32" />
|
<connport_g __type="s32" />
|
||||||
<connip_l __type="str" />
|
<connip_l __type="str" />
|
||||||
<connport_l __type="s32" />
|
<connport_l __type="s32" />
|
||||||
</record[]>
|
</record[]>
|
||||||
</matchlist>
|
</matchlist>
|
||||||
</system>
|
</system>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
|
|
||||||
<h2 id="convcardnumber"><code>system.convcardnumber</code></h2>
|
<h2 id="convcardnumber"><code>system.convcardnumber</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<system method="convcardnumber">
|
<system method="convcardnumber">
|
||||||
<info>
|
<info>
|
||||||
<version __type="s32" />
|
<version __type="s32" />
|
||||||
</info>
|
</info>
|
||||||
<data>
|
<data>
|
||||||
<card_id __type="str" />
|
<card_id __type="str" />
|
||||||
<card_type __type="s32" />
|
<card_type __type="s32" />
|
||||||
</data>
|
</data>
|
||||||
</system>
|
</system>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<system status="<i>status</i>">
|
<system status="??status">
|
||||||
<result __type="s32" />
|
<result __type="s32" />
|
||||||
<data>
|
<data>
|
||||||
<card_number __type="str" />
|
<card_number __type="str" />
|
||||||
</data>
|
</data>
|
||||||
</system>
|
</system>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,18 +3,18 @@
|
|||||||
<h1><code>traceroute</code></h1>
|
<h1><code>traceroute</code></h1>
|
||||||
<h2 id="send"><code>traceroute.send</code></h2>
|
<h2 id="send"><code>traceroute.send</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<traceroute proto="" method="send">
|
<traceroute proto="" method="send">
|
||||||
<hop[]>
|
<hop[]>
|
||||||
<valid __type="bool">
|
<valid __type="bool">
|
||||||
<addr __type="ip4">
|
<addr __type="ip4">
|
||||||
<usec __type="u64">
|
<usec __type="u64">
|
||||||
</hop[]>
|
</hop[]>
|
||||||
</traceroute>
|
</traceroute>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<p><code>hop</code> repeats for every hop (unsurprisingly)</p>
|
<p><code>hop</code> repeats for every hop (unsurprisingly)</p>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<traceroute status="<i>status</i>" />
|
<traceroute status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -3,26 +3,26 @@
|
|||||||
<h1><code>userdata</code></h1>
|
<h1><code>userdata</code></h1>
|
||||||
<h2 id="read"><code>userdata.read</code></h2>
|
<h2 id="read"><code>userdata.read</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<userdata method="read" card*="" model*="" label="" />
|
<userdata method="read" card*="" model*="" label="" />
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<userdata status="<i>status</i>" time="">
|
<userdata status="??status" time="">
|
||||||
<b[] __type="" />
|
<b[] __type="" />
|
||||||
</userdata>
|
</userdata>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p><code>__type</code> here can be either <code>bin</code> or <code>str</code></p>
|
<p><code>__type</code> here can be either <code>bin</code> or <code>str</code></p>
|
||||||
|
|
||||||
<h2 id="write"><code>userdata.write</code></h2>
|
<h2 id="write"><code>userdata.write</code></h2>
|
||||||
<h3>Request:</h3>
|
<h3>Request:</h3>
|
||||||
<pre><code><call <i>...</i>>
|
<pre>{% highlight "cxml" %}<call ...>
|
||||||
<userdata method="write" card="" time="" model*="" label*="" >
|
<userdata method="write" card="" time="" model*="" label*="" >
|
||||||
<b[] __type="str" />
|
<b[] __type="str" />
|
||||||
</userdata>
|
</userdata>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<h3>Response:</h3>
|
<h3>Response:</h3>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<userdata status="<i>status</i>" />
|
<userdata status="??status" />
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
{% endblock %}
|
{% endblock %}
|
@ -23,17 +23,17 @@
|
|||||||
</details>
|
</details>
|
||||||
|
|
||||||
<p>All requests follow a basic format:</p>
|
<p>All requests follow a basic format:</p>
|
||||||
<pre><code><call model="<i>model</i>" srcid="<i>srcid</i>" tag="<i>tag</i>">
|
<pre>{% highlight "cxml" %}<call model="??model" srcid="??srcid" tag="??tag">
|
||||||
<<i>module</i> method="<i>method</i>" <i>...attributes</i>>
|
<??module method="??method" ...attributes>
|
||||||
<i>children</i>
|
...children
|
||||||
</<i>module</i>>
|
</??module>
|
||||||
</call></code></pre>
|
</call>{% endhighlight %}</pre>
|
||||||
<p>The responses follow a similar format:</p>
|
<p>The responses follow a similar format:</p>
|
||||||
<pre><code><response>
|
<pre>{% highlight "cxml" %}<response>
|
||||||
<<i>module</i> status="<i>status</i>" <i>...attributes</i>>
|
<??module status="??status" ...attributes>
|
||||||
<i>children</i>
|
...children
|
||||||
</<i>module</i>>
|
</??module>
|
||||||
</response></code></pre>
|
</response>{% endhighlight %}</pre>
|
||||||
<p>With <code>"0"</code> being a successful status. Convention is to identify a specific method as
|
<p>With <code>"0"</code> being a successful status. Convention is to identify a specific method as
|
||||||
<code><i>module</i>.<i>method</i></code>, and we'll be following this convention in this document too. There are
|
<code><i>module</i>.<i>method</i></code>, and we'll be following this convention in this document too. There are
|
||||||
a <i>lot</i> of possible methods, so the majority of this document is a big reference for them all. There are a
|
a <i>lot</i> of possible methods, so the majority of this document is a big reference for them all. There are a
|
||||||
@ -103,149 +103,7 @@
|
|||||||
|
|
||||||
<h2>Possible XRPC requests</h2>
|
<h2>Possible XRPC requests</h2>
|
||||||
|
|
||||||
<ul>
|
{{ generate_xrpc_list()|safe }}
|
||||||
<li><code><a href="proto/eventlog.html">eventlog.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/eventlog.html#eventlog.write">eventlog.write</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/playerdata.html">playerdata.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/playerdata.html#usergamedata_send">playerdata.usergamedata_send</a></code></li>
|
|
||||||
<li><code><a href="proto/playerdata.html#usergamedata_recv">playerdata.usergamedata_recv</a></code></li>
|
|
||||||
<li><code><a href="proto/playerdata.html#usergamedata_inheritance">playerdata.usergamedata_inheritance</a></code>
|
|
||||||
</li>
|
|
||||||
<li><code><a href="proto/playerdata.html#usergamedata_condrecv">playerdata.usergamedata_condrecv</a></code>
|
|
||||||
</li>
|
|
||||||
<li><code><a href="proto/playerdata.html#usergamedata_scorerank">playerdata.usergamedata_scorerank</a></code>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/matching.html">matching.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/matching.html#request">matching.request</a></code></li>
|
|
||||||
<li><code><a href="proto/matching.html#wait">matching.wait</a></code></li>
|
|
||||||
<li><code><a href="proto/matching.html#finish">matching.finish</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/system.html">system.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/system.html#getmaster">system.getmaster</a></code></li>
|
|
||||||
<li><code><a href="proto/system.html#getlocationiplist">system.getlocationiplist</a></code></li>
|
|
||||||
<li><code><a href="proto/system.html#xrpcproxy">system.xrpcproxy</a></code></li>
|
|
||||||
<li><code><a href="proto/system.html#convcardnumber">system.convcardnumber</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/esoc.html">esoc.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/esoc.html#read">esoc.read</a></code></li>
|
|
||||||
<li><code><a href="proto/esoc.html#write">esoc.write</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/cardmng.html">cardmng.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/cardmng.html#inquire">cardmng.inquire</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#getrefid">cardmng.getrefid</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#bindmodel">cardmng.bindmodel</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#bindcard">cardmng.bindcard</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#authpass">cardmng.authpass</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#getkeepspan">cardmng.getkeepspan</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#getkeepremain">cardmng.getkeepremain</a></code></li>
|
|
||||||
<li><code><a href="proto/cardmng.html#getdatalist">cardmng.getdatalist</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/esign.html">esign.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/esign.html#request">esign.request</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/package.html">package.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/package.html#list">package.list</a></code></li>
|
|
||||||
<li><code><a href="proto/package.html#intend">package.intend</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/userdata.html">userdata.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/userdata.html#read">userdata.read</a></code></li>
|
|
||||||
<li><code><a href="proto/userdata.html#write">userdata.write</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/services.html">services.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/services.html#get">services.get</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/pcbtracker.html">pcbtracker.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/pcbtracker.html#alive">pcbtracker.alive</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/pcbevent.html">pcbevent.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/pcbevent.html#put">pcbevent.put</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/message.html">message.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/message.html#get">message.get</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/facility.html">facility.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/facility.html#get">facility.get</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/apsmanager.html">apsmanager.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/apsmanager.html#getstat">apsmanager.getstat</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/sidmgr.html">sidmgr.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/sidmgr.html#create">sidmgr.create</a></code></li>
|
|
||||||
<li><code><a href="proto/sidmgr.html#open">sidmgr.open</a></code></li>
|
|
||||||
<li><code><a href="proto/sidmgr.html#touch">sidmgr.touch</a></code></li>
|
|
||||||
<li><code><a href="proto/sidmgr.html#branch">sidmgr.branch</a></code></li>
|
|
||||||
<li><code><a href="proto/sidmgr.html#close">sidmgr.close</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/dlstatus.html">dlstatus.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/dlstatus.html#done">dlstatus.done</a></code></li>
|
|
||||||
<li><code><a href="proto/dlstatus.html#progress">dlstatus.progress</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/eacoin.html">eacoin.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/eacoin.html#checkin">eacoin.checkin</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#checkout">eacoin.checkout</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#consume">eacoin.consume</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#getbalance">eacoin.getbalance</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#getecstatus">eacoin.getecstatus</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#touch">eacoin.touch</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#opchpass">eacoin.opchpass</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#opcheckin">eacoin.opcheckin</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#opcheckout">eacoin.opcheckout</a></code></li>
|
|
||||||
<li><code><a href="proto/eacoin.html#getlog">eacoin.getlog</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/traceroute.html">traceroute.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/traceroute.html#send">traceroute.send</a></code></li>
|
|
||||||
</ul>
|
|
||||||
<li><code><a href="proto/game/sv4.html">game.%s</a></code></li>
|
|
||||||
<ul>
|
|
||||||
<li><code><a href="proto/game/sv4.html#sample">game.sv4_sample</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#new">game.sv4_new</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#load">game.sv4_load</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#load_m">game.sv4_load_m</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save">game.sv4_save</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_m">game.sv4_save_m</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#common">game.sv4_common</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#shop">game.sv4_shop</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#hiscore">game.sv4_hiscore</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#buy">game.sv4_buy</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#exception">game.sv4_exception</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#entry_s">game.sv4_entry_s</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#entry_e">game.sv4_entry_e</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#frozen">game.sv4_frozen</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#lounge">game.sv4_lounge</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_e">game.sv4_save_e</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_pb">game.sv4_save_pb</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_c">game.sv4_save_c</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#play_s">game.sv4_play_s</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#play_e">game.sv4_play_e</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#serial">game.sv4_serial</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_fi">game.sv4_save_fi</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#print">game.sv4_print</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#print_h">game.sv4_print_h</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#load_r">game.sv4_load_r</a></code></li>
|
|
||||||
<li><code><a href="proto/game/sv4.html#save_campaign">game.sv4_save_campaign</a></code></li>
|
|
||||||
</ul>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<b>Totally undocumented services (based on <code>services.get</code>):</b>
|
<b>Totally undocumented services (based on <code>services.get</code>):</b>
|
||||||
<ul>
|
<ul>
|
||||||
|
86
xml_lexer.py
Normal file
86
xml_lexer.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
from pygments.lexer import RegexLexer
|
||||||
|
from pygments.token import Text, Comment, Operator, Name, String
|
||||||
|
from pygments.lexers import _lexer_cache
|
||||||
|
from pygments.lexers._mapping import LEXERS
|
||||||
|
|
||||||
|
|
||||||
|
def italic_attr(lexer, m):
|
||||||
|
yield m.start(), String, '"'
|
||||||
|
yield m.start() + 2, Comment, m.group()[3:-1]
|
||||||
|
yield m.end() - 1, String, '"'
|
||||||
|
|
||||||
|
def italic_generic(lexer, m):
|
||||||
|
yield m.start(), Comment, m.group()
|
||||||
|
|
||||||
|
def italic_tag(lexer, m):
|
||||||
|
yield m.start(), Name.Tag, "<"
|
||||||
|
name = m.group()[3:]
|
||||||
|
if name.endswith(">"):
|
||||||
|
yield m.start() + 1, Comment, name[:-1]
|
||||||
|
yield m.end() - 1, Name.Tag, ">"
|
||||||
|
else:
|
||||||
|
yield m.start() + 1, Comment, name
|
||||||
|
|
||||||
|
def italic_tag_close(lexer, m):
|
||||||
|
yield m.start(), Name.Tag, "</"
|
||||||
|
yield m.start() + 4, Comment, m.group()[4:-1]
|
||||||
|
yield m.end() - 1, Name.Tag, ">"
|
||||||
|
|
||||||
|
def repeat_tag_close(lexer, m):
|
||||||
|
before, _, after = m.group().partition("[]")
|
||||||
|
yield m.start(), Name.Tag, before
|
||||||
|
yield m.start() + len(before), Operator, "[]"
|
||||||
|
yield m.start() + len(before) + 2, Name.Tag, after
|
||||||
|
|
||||||
|
def italic_attr_name(lexer, m):
|
||||||
|
name, _, after = m.group().partition("*")
|
||||||
|
yield m.start(), Name.Attribute, name
|
||||||
|
yield m.start() + len(name), Operator, "*"
|
||||||
|
yield m.start() + len(name) + 1, Name.Attribute, after
|
||||||
|
|
||||||
|
|
||||||
|
class CustomXMLLexer(RegexLexer):
|
||||||
|
name = "customxml"
|
||||||
|
aliases = ["cxml"]
|
||||||
|
|
||||||
|
tokens = {
|
||||||
|
'root': [
|
||||||
|
(r'\s*\.\.\.\w*', Comment),
|
||||||
|
('[^<&]+', Text),
|
||||||
|
(r'&\S*?;', Name.Entity),
|
||||||
|
(r'\<\!\[CDATA\[.*?\]\]\>', Comment.Preproc),
|
||||||
|
(r'<!--(.|\n)*?-->', Comment.Multiline),
|
||||||
|
(r'<\?.*?\?>', Comment.Preproc),
|
||||||
|
('<![^>]*>', Comment.Preproc),
|
||||||
|
(r'<\s*[\w:.-]+', Name.Tag, 'tag'),
|
||||||
|
(r'<\s*/\s*[\w:.-]+\s*>', Name.Tag),
|
||||||
|
(r'<\s*\?\?[\w:.-]+', italic_tag, 'tag'),
|
||||||
|
(r'<\s*/\s*\?\?[\w:.-]+\s*>', italic_tag_close),
|
||||||
|
(r'<\s*/\s*[\w:.-]+\[\]\s*>', repeat_tag_close),
|
||||||
|
],
|
||||||
|
'tag': [
|
||||||
|
(r'\*', Operator),
|
||||||
|
(r'\[\]', Operator),
|
||||||
|
(r'\s+', Text),
|
||||||
|
(r'\.\.\.\w*', italic_generic),
|
||||||
|
(r'[\w.:-]+\s*=', Name.Attribute, 'attr'),
|
||||||
|
(r'[\w.:-]+\*\s*=', italic_attr_name, 'attr'),
|
||||||
|
(r'/?\s*>', Name.Tag, '#pop'),
|
||||||
|
],
|
||||||
|
'attr': [
|
||||||
|
(r'\s+', Text),
|
||||||
|
(r'"\?\?[^"]*?"', italic_attr, "#pop"),
|
||||||
|
('".*?"', String, '#pop'),
|
||||||
|
("'.*?'", String, '#pop'),
|
||||||
|
(r'[^\s>]+', String, '#pop'),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
def analyse_text(text):
|
||||||
|
print("hi?")
|
||||||
|
|
||||||
|
_lexer_cache[CustomXMLLexer.__name__] = CustomXMLLexer
|
||||||
|
|
||||||
|
LEXERS["CustomXMLLexer"] = ("xml_lexer", "CustomXMLLexer", ("cxml", ), (), ())
|
||||||
|
|
||||||
|
__all__ = ("CustomXMLLexer", )
|
Loading…
Reference in New Issue
Block a user