MediaWiki API result

This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.

Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.

See the complete documentation, or the API help for more information.

{
    "batchcomplete": "",
    "continue": {
        "gapcontinue": "Real_Life",
        "continue": "gapcontinue||"
    },
    "warnings": {
        "main": {
            "*": "Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
        },
        "revisions": {
            "*": "Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."
        }
    },
    "query": {
        "pages": {
            "207876": {
                "pageid": 207876,
                "ns": 0,
                "title": "ReadOfflineMsgs",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "[[Category:Capabilities]]\nThe ReadOfflineMsgs Capability performs a function similar to the RetrieveInstantMessages LLMessage.\nIt retrieves offline Instant Messages and returns them to the caller.  Those IMs are returned directly\nin the response body rather than in individual messages.  As a side-effect of the retrieval, certain\noffers, such as friendship, may become active and available to the caller.\n\n\n Client Request GET ->\n <empty>\n \n\n ; 200 Response <-\n [\n   [\n     {\n       asset_id:  UUID,\n       binary_bucket:  Binary,\n       dialog:  Integer,\n       estate_id:  Integer,\n       from_agent_id:  UUID,\n       from_agent_name:  String,\n       from_group:  Boolean,\n       message:  String,\n       message_time:  String,\n       offline:  Integer,\n       parent_estate_id:  Integer,\n       position:  [ Real, Real, Real ],\n       region_id:  UUID,\n       timestamp:  Integer,\n       to_agent_id:  UUID,\n       transaction-id:  UUID\n     },\n     {\n     },\n     ...\n     {\n     }\n   ]\n ]\n\nAn early form of the service had a response structure of:\n\n {\n   messages: [\n     {\n       <IM_0>\n     },\n     {\n       <IM_1>\n     },\n     ...\n     {\n       <IM_n>\n     }\n   ]\n }\n\nbut that should not be encountered anymore.\n\nSide Effects.  The GET operation currently deletes all of an agent's stored IMs and subsequent calls will return empty arrays until new IMs are stored.\n\n=== History ===\n\n{| class=\"wikitable\"\n|-\n| ~2018 || Introduced\n|}"
                    }
                ]
            },
            "13671": {
                "pageid": 13671,
                "ns": 0,
                "title": "Read Note Card Configuration",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "{{LSL Header}}\nLearn how to read configuration files with Linden Scripting Language (LSL) in Second Life (SL). After viewing this tutorial, you will be able to:\n\n* Create a script\n* Read each line of a note card\n* Skip over comments\n* Skip blank lines\n* Notify the owner of the lines with unknown settings\n**Unknown setting name\n** Missing delimiter (equal sign)\n* Notify the owner of missing configuration note card\n* Detect when the notecard has been changed\n* Offer case-insensitive settings\n* Trim white-space from name/value settings\n* Initialize with default values\n* Detect that the name of the configuration file is a notecard\n* Detect that  you have reached the end of the file \n\n\n[[Image:Dedric_Mauriac_-_Configuration_Reading_Tutorial.jpg]]\n# '''[http://blip.tv/file/get/DedricMauriac-ConfigurationReadingTutorial661.wmv DOWNLOAD]''' [[Image:Getvidtut.png]] [http://dedricmauriac.wordpress.com/2008/05/03/configuration-reading-tutorial/ How to read configuration information from a notecard]\n\n # this is a file to configure your application\n # blank lines are ignored as well as lines\n # proceeded with a \"#\" sign.\n Name = Dedric Mauriac\n Favorite Color = Blue\n\n<source lang=\"lsl2\">\nstring configurationNotecardName = \"Application.Config\";\nkey notecardQueryId;\ninteger line;\n\nstring AvatarName;\nstring FavoriteColor;\n\ninit()\n{\n//  reset configuration values to default\n    AvatarName = \"Unknown\";\n    FavoriteColor = \"None\";\n\n//  make sure the file exists and is a notecard\n    if(llGetInventoryType(configurationNotecardName) != INVENTORY_NOTECARD)\n    {\n    //  notify owner of missing file\n        llOwnerSay(\"Missing inventory notecard: \" + configurationNotecardName);\n    //  don't do anything else\n        return;\n    }\n\n//  initialize to start reading from first line (which is 0)\n    line = 0;\n    notecardQueryId = llGetNotecardLine(configurationNotecardName, line);\n}\n\nprocessConfiguration(string data)\n{\n//  if we are at the end of the file\n    if(data == EOF)\n    {\n    //  notify the owner\n        llOwnerSay(\"We are done reading the configuration\");\n\n    //  notify what was read\n        llOwnerSay(\"The avatar name is: \" + AvatarName);\n        llOwnerSay(\"The favorite color is: \" + FavoriteColor);\n\n    //  do not do anything else\n        return;\n    }\n\n//  if we are not working with a blank line\n    if(data != \"\")\n    {\n    //  if the line does not begin with a comment\n        if(llSubStringIndex(data, \"#\") != 0)\n        {\n        //  find first equal sign\n            integer i = llSubStringIndex(data, \"=\");\n\n        //  if line contains equal sign\n            if(i != -1)\n            {\n            //  get name of name/value pair\n                string name = llGetSubString(data, 0, i - 1);\n\n            //  get value of name/value pair\n                string value = llGetSubString(data, i + 1, -1);\n\n            //  trim name\n                list temp = llParseString2List(name, [\" \"], []);\n                name = llDumpList2String(temp, \" \");\n\n            //  make name lowercase (case insensitive)\n                name = llToLower(name);\n\n            //  trim value\n                temp = llParseString2List(value, [\" \"], []);\n                value = llDumpList2String(temp, \" \");\n\n            //  name\n                if(name == \"name\")\n                    AvatarName = value;\n\n            //  color\n                else if(name == \"favorite color\")\n                    FavoriteColor = value;\n\n            //  unknown name\n                else\n                    llOwnerSay(\"Unknown configuration value: \" + name + \" on line \" + (string)line);\n\n            }\n        //  line does not contain equal sign\n            else\n            {\n                llOwnerSay(\"Configuration could not be read on line \" + (string)line);\n            }\n        }\n    }\n\n//  read the next line\n    notecardQueryId = llGetNotecardLine(configurationNotecardName, ++line);\n}\n\ndefault\n{\n    on_rez(integer start_param)\n    {\n        init();\n    }\n\n    changed(integer change)\n    {\n        if(change & (CHANGED_OWNER | CHANGED_INVENTORY))\n            init();\n    }\n\n    state_entry()\n    {\n        init();\n    }\n\n    dataserver(key request_id, string data)\n    {\n        if(request_id == notecardQueryId)\n            processConfiguration(data);\n    }\n}\n</source>\n{{LSLC|Library}}{{LSLC|Tutorials|Notecard}}"
                    }
                ]
            }
        }
    }
}