API/Methods: Difference between revisions
Line 432: | Line 432: | ||
==== Parameters ==== | ==== Parameters ==== | ||
None. | |||
==== Result ==== | ==== Result ==== | ||
Line 501: | Line 501: | ||
==== Example ==== | ==== Example ==== | ||
===== Request ===== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"jsonrpc": "2.0", | |||
"id": "f208d996-7ae6-11ef-960e-020304050607", | |||
"method": "settings" | |||
} | |||
</syntaxhighlight> | |||
===== Response ===== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"jsonrpc": "2.0", | |||
"id": "f208d996-7ae6-11ef-960e-020304050607", | |||
"result": { | |||
"readers": ["pn532_uart:/dev/ttyUSB0"], | |||
"detectReaders": true, | |||
"audioFeedback": true, | |||
"insertMode": false, | |||
"insertModeBlocklist": ["DOS"], | |||
"insertModeExitDelay": 0, | |||
"consoleLogging": false, | |||
"debug": false, | |||
"systems": { | |||
"rootFolders": [] | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
=== settings.update === | === settings.update === | ||
Update one or more settings in-memory and save changes to disk. | Update one or more settings in-memory and save changes to disk. | ||
This method will only write values which are supplied. Existing values will not be modified. | |||
==== Parameters ==== | ==== Parameters ==== | ||
An object: | |||
{| class="wikitable" | |||
!Key | |||
!Type | |||
!Required | |||
!Description | |||
|- | |||
|reader | |||
|string[] | |||
|Yes | |||
|A list of manually configured [[Reader Drivers|reader driver]] connection strings. See [[Config File (tapto.ini)#Manual Reader Connection (reader)|reader]]. | |||
|- | |||
|audioFeedback | |||
|boolean | |||
|Yes | |||
| | |||
|- | |||
|detectReaders | |||
|boolean | |||
|Yes | |||
| | |||
|- | |||
|insertMode | |||
|boolean | |||
|Yes | |||
| | |||
|- | |||
|insertModeBlocklist | |||
|string[] | |||
|Yes | |||
| | |||
|- | |||
|insertModeExitDelay | |||
|number | |||
|Yes | |||
| | |||
|- | |||
|consoleLogging | |||
|boolean | |||
|Yes | |||
| | |||
|- | |||
|debug | |||
|boolean | |||
|Yes | |||
|See [[Config File (tapto.ini)#Debug Logging (debug)|debug]]. | |||
|- | |||
|systems | |||
|Systems config | |||
|Yes | |||
|The systems section of the config file. | |||
|} | |||
====== Systems config ====== | |||
{| class="wikitable" | |||
!Key | |||
!Type | |||
!Required | |||
!Description | |||
|- | |||
|rootFolder | |||
|string[] | |||
|Yes | |||
| | |||
|} | |||
==== Result ==== | ==== Result ==== | ||
Returns <code>null</code> on success. | |||
==== Example ==== | ==== Example ==== | ||
===== Request ===== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"jsonrpc": "2.0", | |||
"id": "562c0b60-7ae8-11ef-87d7-020304050607", | |||
"method": "settings.update", | |||
"params": { | |||
"debug": false | |||
} | |||
} | |||
</syntaxhighlight> | |||
===== Response ===== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"jsonrpc": "2.0", | |||
"id": "562c0b60-7ae8-11ef-87d7-020304050607", | |||
"result": null | |||
} | |||
</syntaxhighlight> | |||
=== Mappings === | === Mappings === |
Revision as of 03:11, 25 September 2024
Methods are used to execute actions and request data back from the API.
Launching
launch
Emulate the scanning of a token.
Parameters
This method accepts two types of parameters:
- A single string, in which case the string will be treated as the token text.
- Or an object with the following keys:
Key | Type | Required | Description |
---|---|---|---|
type | string | No | An internal category of the type of token being scanned. Not currently in use outside of logging. |
uid | string | No* | The UID of the token being scanner. For example, the UID of an NFC tag. Used for matching mappings. |
text | string | No* | The main text to be processed from a scan, should contain TapScript. |
data | string | No* | The raw data read from a token, converted to a hexadecimal string. Used in mappings and detection of NFC toys such as Amiibos and Lego Dimensions. |
These parameters allow emulating a token exactly as it would be read directly from an attached reader on the server. A request's parameters must contain at least a populated uid
, text
or data
value.
Result
This method returns null
on success.
Currently, it is not reported if the launched TapScript encounters an error during launching.
Example
Request
{
"jsonrpc": "2.0",
"id": "52f6242e-7a5a-11ef-bf93-020304050607",
"method": "launch",
"params": {
"text": "**launch.system:snes"
}
}
Response
{
"jsonrpc": "2.0",
"id": "52f6242e-7a5a-11ef-bf93-020304050607",
"result": null
}
stop
Kill any active launcher, if possible.
This method is highly dependant on the platform and specific launcher used. It's not guaranteed that a launcher is capable of killing playing media.
Parameters
None.
Result
This method returns null
on success.
Currently, it is not reported if a process was killed or not.
Example
Request
{
"jsonrpc": "2.0",
"id": "176b4558-7a5b-11ef-b318-020304050607",
"method": "stop"
}
Response
{
"jsonrpc": "2.0",
"id": "176b4558-7a5b-11ef-b318-020304050607",
"result": null
}
history
Returns a list of the last recorded token launches.
Parameters
None.
Result
Key | Type | Required | Description |
---|---|---|---|
entries | LaunchEntry[] | Yes | A list of recorded token launches. |
Launch entry object
Key | Type | Required | Description |
---|---|---|---|
data | string | No | Same as launch parameter. |
success | boolean | Yes | True if the launch was successful. |
text | string | No | Same as launch parameter. |
time | string | Yes | Timestamp of the launch time in RFC3339 format. |
type | string | No | Same as launch parameter. |
uid | string | No | Same as launch parameter. |
Example
Request
{
"jsonrpc": "2.0",
"id": "5e9f3a0e-7a5b-11ef-8084-020304050607",
"method": "history"
}
Response
{
"jsonrpc": "2.0",
"id": "5e9f3a0e-7a5b-11ef-8084-020304050607",
"result": {
"entries": [
{
"data": "",
"success": true,
"text": "**launch.system:snes",
"time": "2024-09-24T17:49:42.938167429+08:00",
"type": "",
"uid": ""
}
]
}
}
Media
media.search
Query the media database and return all matching indexed media.
Parameters
An object:
Key | Type | Required | Description |
---|---|---|---|
query | string | Yes | Case-insensitive search by filename. By default, query is split by white space and results are found which contain every word. |
system | string[] | No | Case-sensitive list of system IDs to restrict search to. A missing key or empty list will search all systems. |
maxResults | number | No | Max number of results to return. Default is 250. |
Result
Key | Type | Required | Description |
---|---|---|---|
results | Media[] | Yes | A list of all search results from the given query. |
total | number | Yes | Total number of search results. |
Media object
Key | Type | Required | Description |
---|---|---|---|
system | System | Yes | System which the media has been indexed under. |
name | string | Yes | A human-readable version of the result's filename without a file extension. |
path | string | Yes | Path to the media file. If possible, this path will be compressed into the <system>/<path> launch format.
|
System object
Key | Type | Required | Description |
---|---|---|---|
id | string | Yes | Internal system ID for this system. |
name | string | Yes | Display name of the system. |
category | string | Yes | Category of system. This field is not yet formalised. |
Example
Request
{
"jsonrpc": "2.0",
"id": "47f80537-7a5d-11ef-9c7b-020304050607",
"method": "media.search",
"params": {
"query": "240p"
}
}
Response
{
"jsonrpc": "2.0",
"id": "47f80537-7a5d-11ef-9c7b-020304050607",
"result": {
"results": [
{
"name": "240p Test Suite (PD) v0.03 tepples",
"path": "Gameboy/240p Test Suite (PD) v0.03 tepples.gb",
"system": {
"category": "Handheld",
"id": "Gameboy",
"name": "Gameboy"
}
}
],
"total": 1
}
}
media.index
Create a new media database index.
During an index, the server will emit media.indexing notifications showing progress of the index.
Parameters
This method can, optionally, accept an object:
Key | Type | Required | Description |
---|---|---|---|
systems | string[] | No | List of system IDs to restrict indexing to. Other system indexes will remain as is. |
A missing or null
value parameters key is also valid and will index every system.
Result
Returns null
on success once indexing is complete.
Example
Request
{
"jsonrpc": "2.0",
"id": "6f20e07c-7a5e-11ef-84bb-020304050607",
"method": "media.index"
}
Response
{
"jsonrpc": "2.0",
"id": "6f20e07c-7a5e-11ef-84bb-020304050607",
"result": null
}
systems
List all currently indexed systems.
Parameters
None.
Result
Key | Type | Required | Description |
---|---|---|---|
systems | System[] | Yes | A list of all indexed systems. |
See system object.
Example
Request
{
"jsonrpc": "2.0",
"id": "dbd312f3-7a5f-11ef-8f29-020304050607",
"method": "systems"
}
Response
{
"jsonrpc": "2.0",
"id": "dbd312f3-7a5f-11ef-8f29-020304050607",
"result": {
"systems": [
{
"category": "Handheld",
"id": "GameboyColor",
"name": "Gameboy Color"
},
{
"category": "Computer",
"id": "EDSAC",
"name": "EDSAC"
}
]
}
}
Settings
settings
List currently set configuration settings.
This method will list values set in the Config File. Values may be hidden which are not appropriate to be read remotely.
Parameters
None.
Result
Key | Type | Required | Description |
---|---|---|---|
reader | string[] | Yes | A list of manually configured reader driver connection strings. See reader. |
audioFeedback | boolean | Yes | |
detectReaders | boolean | Yes | |
insertMode | boolean | Yes | |
insertModeBlocklist | string[] | Yes | |
insertModeExitDelay | number | Yes | |
consoleLogging | boolean | Yes | |
debug | boolean | Yes | See debug. |
systems | Systems config | Yes | The systems section of the config file. |
Systems config
Key | Type | Required | Description |
---|---|---|---|
rootFolder | string[] | Yes |
Example
Request
{
"jsonrpc": "2.0",
"id": "f208d996-7ae6-11ef-960e-020304050607",
"method": "settings"
}
Response
{
"jsonrpc": "2.0",
"id": "f208d996-7ae6-11ef-960e-020304050607",
"result": {
"readers": ["pn532_uart:/dev/ttyUSB0"],
"detectReaders": true,
"audioFeedback": true,
"insertMode": false,
"insertModeBlocklist": ["DOS"],
"insertModeExitDelay": 0,
"consoleLogging": false,
"debug": false,
"systems": {
"rootFolders": []
}
}
}
settings.update
Update one or more settings in-memory and save changes to disk.
This method will only write values which are supplied. Existing values will not be modified.
Parameters
An object:
Key | Type | Required | Description |
---|---|---|---|
reader | string[] | Yes | A list of manually configured reader driver connection strings. See reader. |
audioFeedback | boolean | Yes | |
detectReaders | boolean | Yes | |
insertMode | boolean | Yes | |
insertModeBlocklist | string[] | Yes | |
insertModeExitDelay | number | Yes | |
consoleLogging | boolean | Yes | |
debug | boolean | Yes | See debug. |
systems | Systems config | Yes | The systems section of the config file. |
Systems config
Key | Type | Required | Description |
---|---|---|---|
rootFolder | string[] | Yes |
Result
Returns null
on success.
Example
Request
{
"jsonrpc": "2.0",
"id": "562c0b60-7ae8-11ef-87d7-020304050607",
"method": "settings.update",
"params": {
"debug": false
}
}
Response
{
"jsonrpc": "2.0",
"id": "562c0b60-7ae8-11ef-87d7-020304050607",
"result": null
}
Mappings
mappings
List all mappings.
Returns a list of all active and inactive mappings entries stored on server.
Parameters
Result
Example
mappings.new
Create a new mapping.
Parameters
Result
Example
mappings.delete
Delete an existing mapping.
Parameters
Result
Example
mappings.update
Change an existing mapping.
Parameters
Result
Example
Readers
readers
List all currently connected readers.
Parameters
Result
Example
readers.write
Attempt to write given text to the first available write-capable reader, if possible.
Parameters
Result
Example
Clients
Clients can only be managed through the API via a device-local connection.
clients
List all clients (including disconnected) and associated data.
Parameters
Result
Example
clients.new
Create a new client with a newly generated ID and secret.
Parameters
Result
Example
clients.delete
Delete an existing client.
Parameters
Result
Example
Service
version
Return server's current version and platform.