msnp-wiki/docs/commands/lst.md
yellows111 9144709921
found what that parameter does, 923 and 924 info
apparently 923 and 924 are supported way earlier

it's REALLY confusing apparently because yes those clients DO handle those codes, but HOW?

makes me want to throw out the error code tables because it seems like different clients implement them in different ways with no established rule, especially those two because only 924 doesn't appear in plain text in the main binary until P7, but it absolutely exists before then?

And for 923... I don't even know. It's not in the main binary (at all). Let alone in later versions.
2024-10-24 15:17:51 +01:00

192 lines
6 KiB
Markdown

# Introduction
`LST` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a request or response payload.
It retrieves all users in any of the avaliable lists.
# Client/Request
`LST TrID [ FL | AL | BL | RL ]`
*NOTE: There is a possibility that PL can be retrieved this way too.*
# Server/Response
## Outside of SYN
`LST TrID [ FL | AL | BL | RL ] list-version index size-of-list user-handle stored-friendly-name {groups}`
Where `list-version` is the current List Version.
Where `index` is a number that can not go out of `size-of-list`. If the list is empty this is `0`.
Where `size-of-list` is the upper bounds for `index`. If the list is empty this is `0`.
Where `user-handle` is the related user's handle.
If the list is empty this parameter is not in the response.
Where `stored-friendly-name` is the friendly name stored for this contact on the server.
If the list is empty this parameter is not in the response.
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if the list (parameter 1) is set to FL. Defaults to `0`.
Added since [MSNP7](../versions/msnp7.md).
## In SYN
### First generation
*Applies for [MSNP2](../versions/msnp2.md) to [MSNP6](../versions/msnp6.md).*
Same as the response [Outside of SYN](#outside-of-syn).
### Groups support
*Applies for [MSNP7](../versions/msnp7.md).*
`LST TrID [ FL | AL | BL | RL ] list-version index size-of-list user-handle stored-friendly-name {groups}`
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if the list (parameter 1) is set to FL. Defaults to `0`.
### Second generation
*Applies for [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md)*
`LST user-handle stored-friendly-name list-bits {groups}`
Where `list-bits` are in the format:
* 1: Forward List (FL)
* 2: Allow List (AL)
* 4: Block List (BL)
* 8: Reverse List (RL)
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if Forward List (FL) is set in `list-bits`. Defaults to `0`.
### Third generation
*Applies for [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
`LST N=user-handle F=stored-friendly-name list-bits {groups}`
Same parameters as the [second generation](#second-generation).
### Fourth generation
*Applies for [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md) with `ABCHMigrated: 1`.*
`LST N=user-handle F=stored-friendly-name C=contact-guid list-bits {groupGuids}`
Where `contact-guid` is the GUID/UUID of the contact.
Where `groupGuids` is a comma-delimited list of Group GUIDs this contact is in,
only appending if Forward List (FL) is set in `list-bits`, defaults to whatever "Other Contacts"'s GUID is.
### Fifth generation
*Applies for [MSNP12](../versions/msnp12.md).*
`LST N=user-handle F=stored-friendly-name C=contact-guid list-bits network-id {groupGuids}`
Where `network-id` is any Network ID bits:
* 1: Messenger
* 2: Office Communicator
* 4: Telephone
* 8: "MNI" or Mobile Network Interop, used for some mobile networks.
* 16: SMTP or Simple Mail Transfer Protocol, used for Japanese mobile networks.
* 32: Yahoo! Messenger network, only seen in [MSNP14](../versions/msnp14.md) and higher.
# Examples
## Client-initated
```
C: LST 1 FL
S: LST 1 FL 255 1 1 anotheruser@example.com another%20user
C: LST 2 BL
S: LST 2 BL 255 0 0
```
## From SYN
### From the beginning
*Only in [MSNP2](../versions/msnp2.md) to [MSNP6](../versions/msnp6.md).*
```
C: SYN 3 0
S: SYN 3 4
```
...
```
S: LST 3 FL 4 1 1 anotheruser@hotmail.com another%20user
S: LST 3 AL 4 1 1 anotheruser@hotmail.com another%20user
S: LST 3 BL 4 0 0
S: LST 3 RL 4 1 1 anotheruser@hotmail.com another%20user
```
### Using groups
*Only in [MSNP7](../versions/msnp7.md).*
```
C: SYN 4 0
S: SYN 4 5
```
...
```
S: LSG 4 5 1 1 0 Other%20Contacts 0
S: LST 4 FL 5 1 1 anotheruser@hotmail.com another%20user 0
S: LST 4 AL 5 1 1 anotheruser@hotmail.com another%20user
S: LST 4 BL 5 0 0
S: LST 4 RL 5 1 1 anotheruser@hotmail.com another%20user
```
### Using second generation
*Only in [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md).*
```
C: SYN 5 0
S: SYN 5 6 1 1
```
...
```
S: LSG 0 Other%20Contacts 0
S: LST anotheruser@hotmail.com another%20user 11 0
```
### Using third generation
*Only in [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
```
C: SYN 6 0 0
S: SYN 6 7 0 1 1
```
...
```
S: LSG Other%20Contacts 0
S: LST N=anotheruser@hotmail.com F=another%20user C=anotheruser@hotmail.com 11 0
```
### Using fourth generation
*Only in [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md) with `ABCHMigrated: 1`.*
```
C: SYN 7 0 0
S: SYN 7 2024-10-15T14:49:40.1100000-07:00 2024-10-15T14:49:40.1100000-07:00 1 1
```
...
```
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 d6deeacd-7849-4de4-93c5-d130915d0042
```
### Using fifth generation
*Only in [MSNP12](../versions/msnp12.md).*
```
C: SYN 8 0 0
S: SYN 8 2024-10-15T15:01:30.1200000-07:00 2024-10-15T15:01:30.1200000-07:00 1 1
```
...
```
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 1 d6deeacd-7849-4de4-93c5-d130915d0042
```
# Known changes
* [MSNP7](../versions/msnp7.md): Added support for groups.
* [MSNP8](../versions/msnp8.md): Changed format in [SYN](syn.md) considerably, dropping the iterator parameters and
merging all lists into a single parameter instead of multiple calls.
* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to [SYN](syn.md) version, added `C=` for contact ID.
Changed `C=` to contact GUID and changed group ID list to group GUID list with `ABCHMigrated: 1` to SYN version.
* [MSNP12](../versions/msnp12.md): Added Network IDs to [SYN](syn.md) version.
* [MSNP13](../versions/msnp13.md): Removed [SYN](syn.md).
* Hard-removed in November 2003, Removed outside of [SYN](commands/syn.md), now just automatically disconnects.