Protocols/OSCAR/Foodgroups/BART
OSCAR Protocol |
Introduction • Terms • Clients |
Basic |
Datatypes • FLAP • SNAC • TLV |
UUIDs • Errors • Tool IDs |
Host Interaction |
Rate Limits • Migration • Messages |
Other Services |
ADMIN • ADVERT • ALERT |
BART • BOS • BUCP • CHAT |
CHAT_NAV |
Tutorials |
Sign On • BART • Rendezvous |
ICBM • Locate • Buddies |
Foodgroups |
OSERVICE (0x0001) |
LOCATE (0x0002) |
BUDDY (0x0003) |
ICBM (0x0004) |
ADVERT (0x0005) |
INVITE (0x0006) |
ADMIN (0x0007) |
POPUP (0x0008) |
PD (0x0009) |
USER_LOOKUP (0x000A) |
STATS (0x000B) |
TRANSLATE (0x000C) |
CHAT_NAV (0x000D) |
CHAT (0x000E) |
ODIR (0x000F) |
BART (0x0010) |
FEEDBAG (0x0013) |
ICQ (0x0015) |
BUCP (0x0017) |
ALERT (0x0018) |
PLUGIN (0x0022) |
UNNAMED_FG_24 (0x0024) |
MDIR (0x0025) |
ARS (0x044A) |
ID | Name | Service | Status | Version |
---|---|---|---|---|
0x0010 | BART | BOS | Active | 1.9 |
The Buddy Art, or BART, server provides access to the client for downloading image, sound, and xml assets for expressions for their buddies and themselves. Examples of BART items include Buddy icons, Buddy arrival sounds, and immersive wallpapers.
For some items, the actual assets are downloaded using the BART system and in other cases, just descriptive XML files are used. Once a BART item is downloaded, it is basically cached FOREVER by the client, so updating requires publishing a new BART item. This is especially important when the BART item is an asset. When the BART item is a descriptive XML file, only the XML file is cached forever and any assets it refers to can use different caching schemes determined by the client.
All BART items are represented by a BART ID. A BART ID is a 5 byte to 20 byte binary value that represents the BART item and is sent around by the client and the servers. One simple way to think of the BART ID is as a compressed URL. When the client receives a BART ID, either from another client or from the server, it checks its cache or uses the BART server to download the item. The BART server also has a cache and connects to the various partners to download the assets if it does not have them. It is expected that each BART ID points to a unique item. The backend will collapse duplicate items into a single ID. The BART server also will store custom items for some asset types.
Having a Buddy icon with opaque data of 0x0201d20472 means the user has explicitly chosen to have no Buddy icon. This is different then not having a Buddy icon. This ID should be treated specially and does not need to be fetched from BART (although BART will return an empty GIF). This was done so clients could tell when they upgraded from old style Buddy icons to BART Buddy icons. This special ID should NOT be used for other BART types.
Class: BART__ID_FLAGS
These are the flags used by the client to detect how the BART ID should be processed.
Name | Value | Notes |
---|---|---|
BART__FLAGS_KNOWN | 0x00 | NOT CURRENTLY DOCUMENTED |
BART__FLAGS_CUSTOM | 0x01 | This is a custom blob; the opaque data will also be 16 bytes |
BART__FLAGS_URL | 0x02 | Contains URL to BART content |
BART__FLAGS_DATA | 0x04 | The opaque field is really data the client knows how to process; these items do not need to be downloaded from BART |
BART__FLAGS_UNKNOWN | 0x40 | Used in OSERVICE__BART_REPLY; BART does not know about this ID, please upload |
BART__FLAGS_REDIRECT | 0x80 | Used in OSERVICE__BART_REPLY; BART says use this ID instead for the matching type |
BART__FLAGS_BANNED | 0xC0 | BART is disallowed by hash |
Class: BART__ID_TYPES
These are all the different BART ID types that are known about and their restrictions.
Name | Value | Notes |
---|---|---|
BART__TYPES_BUDDY_ICON_SMALL | 0x00 | GIF/JPG/BMP, <= 32 pixels and 2k |
BART__TYPES_BUDDY_ICON | 0x01 | GIF/JPG/BMP, <= 64 pixels and 7k |
BART__TYPES_STATUS_STR | 0x02 | StringTLV format; DATA flag is always set |
BART__TYPES_ARRIVE_SOUND | 0x03 | WAV/MP3/MID, <= 10K |
BART__TYPES_RICH_NAME | 0x04 | byte array of rich text codes; DATA flag is always set |
BART__TYPES_SUPER_ICON | 0x05 | XML |
BART__TYPES_RADIO_STATION | 0x06 | Opaque struct; DATA flag is always set |
BART__TYPES_SUPER_ICON_TRIGGER | 0x07 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_STATUS_TEXT_LINK | 0x09 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_LOCATION | 0x0B | NOT CURRENTLY DOCUMENTED |
BART__TYPES_BIG_ICON | 0x0C | SWF |
BART__TYPES_STATUS_TEXT_TIMESTAMP | 0x0D | Time when the status string is set |
BART__TYPES_CURRENT_AVTRACK | 0x0F | XML file; Data flag should not be set |
BART__TYPES_DEPART_SOUND | 0x60 | WAV/MP3/MID, <= 10K |
BART__TYPES_IM_BACKGROUND | 0x80 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_IM_CHROME | 0x81 | GIF/JPG/BMP wallpaper |
BART__TYPES_IM_SKIN | 0x82 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_IM_SOUND | 0x83 | WAV/MP3, <= 10K |
BART__TYPES_BADGE | 0x84 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_BADGE_URL | 0x85 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_IM_INITIAL_SOUND | 0x86 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_FLASH_WALLPAPER | 0x88 | XML |
BART__TYPES_IMMERSIVE_WALLPAPER | 0x89 | Immersive Expressions |
BART__TYPES_BUDDYLIST_BACKGROUND | 0x100 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_BUDDYLIST_IMAGE | 0x101 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_BUDDYLIST_SKIN | 0x102 | NOT CURRENTLY DOCUMENTED |
BART__TYPES_SMILEY_SET | 0x400 | Set of default Emoticons |
BART__TYPES_ENCR_CERT_CHAIN | 0x402 | Cert chain for encryption certs |
BART__TYPES_SIGN_CERT_CHAIN | 0x403 | Cert chain for signing certs |
BART__TYPES_GATEWAY_CERT | 0x404 | Cert for enterprise gateway |
SNACs
Subgroup | Origin | Name |
---|---|---|
0x0001 | Any | BART__ERR |
This is the error SNAC for the BART foodgroup. | ||
0x0002 | Client | BART__UPLOAD_QUERY |
This SNAC uploads a custom item to the BART host. Only certain types allow custom items. | ||
0x0003 | Host | BART__UPLOAD_REPLY |
These are the results for an item requested with BART__UPLOAD_QUERY. | ||
0x0004 | Client | BART__DOWNLOAD_QUERY |
Legacy request buddy icon from host. | ||
0x0005 | Host | BART__DOWNLOAD_REPLY |
Legacy host response to a buddy icon request. | ||
0x0006 | Client | BART__DOWNLOAD2_QUERY |
This SNAC downloads an asset from the BART host. | ||
0x0007 | Host | BART__DOWNLOAD2_REPLY |
These are the results for an item requested with BART__DOWNLOAD2_QUERY. |