Table of Contents

Select

C10 - initial

The select will return the items following the provided element for all elements in the list.

Arguments

Position Type Description Example
0 a string an element to match Price

Example

The following sift when added to a command will return the element following the Price element:

    "sift", wasListToCSV([
        "select", "Price"
    ]),

Effect on Returned Data

Given the input:

data=Price,10,Item,Book,Price,50,Item,Chair,Price,200,Item,PC

the expected output will be:

data=10,50,200

Selecting Values by Keys

Suppose the getavatarappearancedata command is issued and the following result is returned to the callback:

FaceTextures,index,0,RGBA,"<1, 1, 1, 1>",RepeatU,1,RepeatV,1,OffsetU,0,OffsetV,0,Rotation,0,Glow,0,Bump,None,Shiny,None,Fullbright,False,MediaFlags,False,TexMapType,Default,TextureID,00000000-0000-0000-0000-000000000000,MaterialID,00000000-0000-0000-0000-000000000000,1,RGBA,"<1, 1, 1, 1>",RepeatU,1,RepeatV,1,OffsetU,0,OffsetV,0,Rotation,0,Glow,0,Bump,None,Shiny,None,Fullbright,False,MediaFlags,False,TexMapType,Default,TextureID,00000000-0000-0000-0000-000000000000,MaterialID,00000000-0000-0000-0000-000000000000,2,RGBA,"<1, 1, 1, 1>",RepeatU,1,RepeatV,1,OffsetU,0,OffsetV,0,Rotation,0,Glow,0,Bump,None,Shiny,None,Fullbright,False,MediaFlags,False,TexMapType,Default,TextureID,00000000-0000-0000-0000-000000000000,MaterialID,00000000-0000-0000-0000-000000000000,3,RGBA,"<1, 1, 1, 1>" ...

and assume that the TextureID is the one that we are interested in.

In that case, a select sift would be suitable and the following command:

llInstantMessage(CORRADE,
    wasKeyValueEncode(
        [
            // gets the visual parameters of
            // the avatar named Fuzzy Resident
            "command", "getavatarappearancedata",
            "group", wasURLEscape(GROUP),
            "password", wasURLEscape(PASSWORD),
            // or "agent", "69ce412b-dffc-436d-86ff-d788bfa66d9d"
            "firstname", "Fuzzy",
            "lastname", "Resident",
            "data", "FaceTextures",
            "sift", wasListToCSV([
                "select",
                "TextureID"
            ]),
            "callback", wasURLEscape(URL)
        ]
    )
);

will extract just the texture IDs from the original output:

command=getavatarappearancedata&time=2020-04-22T01:51:01.180845Z&data=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,5317ee6e-6726-48be-ba6d-c4885c2da686,1f5b25ec-5999-4913-bb57-e1594b92211a,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,62c9a6fe-7d89-49ca-9931-5a4955abf6a3,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000&success=True