snacs_string.go 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. package wire
  2. import "fmt"
  3. var foodGroupName = map[uint16]string{
  4. BOS: "BOS",
  5. OService: "OService",
  6. Locate: "Locate",
  7. Buddy: "Buddy",
  8. ICBM: "ICBM",
  9. Advert: "Advert",
  10. Invite: "Invite",
  11. Admin: "Admin",
  12. Popup: "Popup",
  13. PermitDeny: "PermitDeny",
  14. UserLookup: "UserLookup",
  15. Stats: "Stats",
  16. Translate: "Translate",
  17. ChatNav: "ChatNav",
  18. Chat: "Chat",
  19. ODir: "ODir",
  20. BART: "BART",
  21. Feedbag: "Feedbag",
  22. ICQ: "ICQ",
  23. BUCP: "BUCP",
  24. Alert: "Alert",
  25. Plugin: "Plugin",
  26. UnnamedFG24: "UnnamedFG24",
  27. MDir: "MDir",
  28. ARS: "ARS",
  29. }
  30. // FoodGroupName gets the string name of a food group. It returns "unknown" if
  31. // the food group doesn't exist.
  32. func FoodGroupName(foodGroup uint16) string {
  33. name := foodGroupName[foodGroup]
  34. if name == "" {
  35. name = "unknown"
  36. }
  37. return name
  38. }
  39. var subGroupName = map[uint16]map[uint16]string{
  40. OService: {
  41. OServiceErr: "OServiceErr",
  42. OServiceClientOnline: "OServiceClientOnline",
  43. OServiceHostOnline: "HostOnline",
  44. OServiceServiceRequest: "OServiceServiceRequest",
  45. OServiceServiceResponse: "OServiceServiceResponse",
  46. OServiceRateParamsQuery: "OServiceRateParamsQuery",
  47. OServiceRateParamsReply: "OServiceRateParamsReply",
  48. OServiceRateParamsSubAdd: "OServiceRateParamsSubAdd",
  49. OServiceRateDelParamSub: "OServiceRateDelParamSub",
  50. OServiceRateParamChange: "OServiceRateParamChange",
  51. OServicePauseReq: "OServicePauseReq",
  52. OServicePauseAck: "OServicePauseAck",
  53. OServiceResume: "OServiceResume",
  54. OServiceUserInfoQuery: "OServiceUserInfoQuery",
  55. OServiceUserInfoUpdate: "OServiceUserInfoUpdate",
  56. OServiceEvilNotification: "OServiceEvilNotification",
  57. OServiceIdleNotification: "OServiceIdleNotification",
  58. OServiceMigrateGroups: "OServiceMigrateGroups",
  59. OServiceMotd: "OServiceMotd",
  60. OServiceSetPrivacyFlags: "OServiceSetPrivacyFlags",
  61. OServiceWellKnownUrls: "OServiceWellKnownUrls",
  62. OServiceNoop: "OServiceNoop",
  63. OServiceClientVersions: "ClientVersions",
  64. OServiceHostVersions: "OServiceHostVersions",
  65. OServiceMaxConfigQuery: "OServiceMaxConfigQuery",
  66. OServiceMaxConfigReply: "OServiceMaxConfigReply",
  67. OServiceStoreConfig: "OServiceStoreConfig",
  68. OServiceConfigQuery: "OServiceConfigQuery",
  69. OServiceConfigReply: "OServiceConfigReply",
  70. OServiceSetUserInfoFields: "OServiceSetUserInfoFields",
  71. OServiceProbeReq: "OServiceProbeReq",
  72. OServiceProbeAck: "OServiceProbeAck",
  73. OServiceBartReply: "OServiceBartReply",
  74. OServiceBartQuery2: "OServiceBartQuery2",
  75. OServiceBartReply2: "OServiceBartReply2",
  76. },
  77. Locate: {
  78. LocateErr: "LocateErr",
  79. LocateRightsQuery: "LocateRightsQuery",
  80. LocateRightsReply: "LocateRightsReply",
  81. LocateSetInfo: "LocateSetInfo",
  82. LocateUserInfoQuery: "LocateUserInfoQuery",
  83. LocateUserInfoReply: "LocateUserInfoReply",
  84. LocateWatcherSubRequest: "LocateWatcherSubRequest",
  85. LocateWatcherNotification: "LocateWatcherNotification",
  86. LocateSetDirInfo: "LocateSetDirInfo",
  87. LocateSetDirReply: "LocateSetDirReply",
  88. LocateGetDirInfo: "LocateGetDirInfo",
  89. LocateGetDirReply: "LocateGetDirReply",
  90. LocateGroupCapabilityQuery: "LocateGroupCapabilityQuery",
  91. LocateGroupCapabilityReply: "LocateGroupCapabilityReply",
  92. LocateSetKeywordInfo: "LocateSetKeywordInfo",
  93. LocateSetKeywordReply: "LocateSetKeywordReply",
  94. LocateGetKeywordInfo: "LocateGetKeywordInfo",
  95. LocateGetKeywordReply: "LocateGetKeywordReply",
  96. LocateFindListByEmail: "LocateFindListByEmail",
  97. LocateFindListReply: "LocateFindListReply",
  98. LocateUserInfoQuery2: "LocateUserInfoQuery2",
  99. },
  100. Buddy: {
  101. BuddyErr: "BuddyErr",
  102. BuddyRightsQuery: "BuddyRightsQuery",
  103. BuddyRightsReply: "BuddyRightsReply",
  104. BuddyAddBuddies: "BuddyAddBuddies",
  105. BuddyDelBuddies: "BuddyDelBuddies",
  106. BuddyWatcherListQuery: "BuddyWatcherListQuery",
  107. BuddyWatcherListResponse: "BuddyWatcherListResponse",
  108. BuddyWatcherSubRequest: "BuddyWatcherSubRequest",
  109. BuddyWatcherNotification: "BuddyWatcherNotification",
  110. BuddyRejectNotification: "BuddyRejectNotification",
  111. BuddyArrived: "BuddyArrived",
  112. BuddyDeparted: "BuddyDeparted",
  113. BuddyAddTempBuddies: "BuddyAddTempBuddies",
  114. BuddyDelTempBuddies: "BuddyDelTempBuddies",
  115. },
  116. ICBM: {
  117. ICBMErr: "ICBMErr",
  118. ICBMAddParameters: "ICBMAddParameters",
  119. ICBMDelParameters: "ICBMDelParameters",
  120. ICBMParameterQuery: "ICBMParameterQuery",
  121. ICBMParameterReply: "ICBMParameterReply",
  122. ICBMChannelMsgToHost: "ICBMChannelMsgToHost",
  123. ICBMChannelMsgToClient: "ICBMChannelMsgToClient",
  124. ICBMEvilRequest: "ICBMEvilRequest",
  125. ICBMEvilReply: "ICBMEvilReply",
  126. ICBMMissedCalls: "ICBMMissedCalls",
  127. ICBMClientErr: "ICBMClientErr",
  128. ICBMHostAck: "ICBMHostAck",
  129. ICBMSinStored: "ICBMSinStored",
  130. ICBMSinListQuery: "ICBMSinListQuery",
  131. ICBMSinListReply: "ICBMSinListReply",
  132. ICBMOfflineRetrieve: "ICBMOfflineRetrieve",
  133. ICBMSinDelete: "ICBMSinDelete",
  134. ICBMNotifyRequest: "ICBMNotifyRequest",
  135. ICBMNotifyReply: "ICBMNotifyReply",
  136. ICBMClientEvent: "ICBMClientEvent",
  137. ICBMOfflineRetrieveReply: "ICBMOfflineRetrieveReply",
  138. },
  139. ChatNav: {
  140. ChatNavErr: "ChatNavErr",
  141. ChatNavRequestChatRights: "ChatNavRequestChatRights",
  142. ChatNavRequestExchangeInfo: "ChatNavRequestExchangeInfo",
  143. ChatNavRequestRoomInfo: "ChatNavRequestRoomInfo",
  144. ChatNavRequestMoreRoomInfo: "ChatNavRequestMoreRoomInfo",
  145. ChatNavRequestOccupantList: "ChatNavRequestOccupantList",
  146. ChatNavSearchForRoom: "ChatNavSearchForRoom",
  147. ChatNavCreateRoom: "ChatNavCreateRoom",
  148. ChatNavNavInfo: "ChatNavNavInfo",
  149. },
  150. Chat: {
  151. ChatErr: "ChatErr",
  152. ChatRoomInfoUpdate: "ChatRoomInfoUpdate",
  153. ChatUsersJoined: "ChatUsersJoined",
  154. ChatUsersLeft: "ChatUsersLeft",
  155. ChatChannelMsgToHost: "ChatChannelMsgToHost",
  156. ChatChannelMsgToClient: "ChatChannelMsgToClient",
  157. ChatEvilRequest: "ChatEvilRequest",
  158. ChatEvilReply: "ChatEvilReply",
  159. ChatClientErr: "ChatClientErr",
  160. ChatPauseRoomReq: "ChatPauseRoomReq",
  161. ChatPauseRoomAck: "ChatPauseRoomAck",
  162. ChatResumeRoom: "ChatResumeRoom",
  163. ChatShowMyRow: "ChatShowMyRow",
  164. ChatShowRowByUsername: "ChatShowRowByUsername",
  165. ChatShowRowByNumber: "ChatShowRowByNumber",
  166. ChatShowRowByName: "ChatShowRowByName",
  167. ChatRowInfo: "ChatRowInfo",
  168. ChatListRows: "ChatListRows",
  169. ChatRowListInfo: "ChatRowListInfo",
  170. ChatMoreRows: "ChatMoreRows",
  171. ChatMoveToRow: "ChatMoveToRow",
  172. ChatToggleChat: "ChatToggleChat",
  173. ChatSendQuestion: "ChatSendQuestion",
  174. ChatSendComment: "ChatSendComment",
  175. ChatTallyVote: "ChatTallyVote",
  176. ChatAcceptBid: "ChatAcceptBid",
  177. ChatSendInvite: "ChatSendInvite",
  178. ChatDeclineInvite: "ChatDeclineInvite",
  179. ChatAcceptInvite: "ChatAcceptInvite",
  180. ChatNotifyMessage: "ChatNotifyMessage",
  181. ChatGotoRow: "ChatGotoRow",
  182. ChatStageUserJoin: "ChatStageUserJoin",
  183. ChatStageUserLeft: "ChatStageUserLeft",
  184. ChatUnnamedSnac22: "ChatUnnamedSnac22",
  185. ChatClose: "ChatClose",
  186. ChatUserBan: "ChatUserBan",
  187. ChatUserUnban: "ChatUserUnban",
  188. ChatJoined: "ChatJoined",
  189. ChatUnnamedSnac27: "ChatUnnamedSnac27",
  190. ChatUnnamedSnac28: "ChatUnnamedSnac28",
  191. ChatUnnamedSnac29: "ChatUnnamedSnac29",
  192. ChatRoomInfoOwner: "ChatRoomInfoOwner",
  193. },
  194. Feedbag: {
  195. FeedbagErr: "FeedbagErr",
  196. FeedbagRightsQuery: "FeedbagRightsQuery",
  197. FeedbagRightsReply: "FeedbagRightsReply",
  198. FeedbagQuery: "FeedbagQuery",
  199. FeedbagQueryIfModified: "FeedbagQueryIfModified",
  200. FeedbagReply: "FeedbagReply",
  201. FeedbagUse: "FeedbagUse",
  202. FeedbagInsertItem: "FeedbagInsertItem",
  203. FeedbagUpdateItem: "FeedbagUpdateItem",
  204. FeedbagDeleteItem: "FeedbagDeleteItem",
  205. FeedbagInsertClass: "FeedbagInsertClass",
  206. FeedbagUpdateClass: "FeedbagUpdateClass",
  207. FeedbagDeleteClass: "FeedbagDeleteClass",
  208. FeedbagStatus: "FeedbagStatus",
  209. FeedbagReplyNotModified: "FeedbagReplyNotModified",
  210. FeedbagDeleteUser: "FeedbagDeleteUser",
  211. FeedbagStartCluster: "FeedbagStartCluster",
  212. FeedbagEndCluster: "FeedbagEndCluster",
  213. FeedbagAuthorizeBuddy: "FeedbagAuthorizeBuddy",
  214. FeedbagPreAuthorizeBuddy: "FeedbagPreAuthorizeBuddy",
  215. FeedbagPreAuthorizedBuddy: "FeedbagPreAuthorizedBuddy",
  216. FeedbagRemoveMe: "FeedbagRemoveMe",
  217. FeedbagRemoveMe2: "FeedbagRemoveMe2",
  218. FeedbagRequestAuthorizeToHost: "FeedbagRequestAuthorizeToHost",
  219. FeedbagRequestAuthorizeToClient: "FeedbagRequestAuthorizeToClient",
  220. FeedbagRespondAuthorizeToHost: "FeedbagRespondAuthorizeToHost",
  221. FeedbagRespondAuthorizeToClient: "FeedbagRespondAuthorizeToClient",
  222. FeedbagBuddyAdded: "FeedbagBuddyAdded",
  223. FeedbagRequestAuthorizeToBadog: "FeedbagRequestAuthorizeToBadog",
  224. FeedbagRespondAuthorizeToBadog: "FeedbagRespondAuthorizeToBadog",
  225. FeedbagBuddyAddedToBadog: "FeedbagBuddyAddedToBadog",
  226. FeedbagTestSnac: "FeedbagTestSnac",
  227. FeedbagForwardMsg: "FeedbagForwardMsg",
  228. FeedbagIsAuthRequiredQuery: "FeedbagIsAuthRequiredQuery",
  229. FeedbagIsAuthRequiredReply: "FeedbagIsAuthRequiredReply",
  230. FeedbagRecentBuddyUpdate: "FeedbagRecentBuddyUpdate",
  231. },
  232. Alert: {
  233. AlertErr: "AlertErr",
  234. AlertSetAlertRequest: "AlertSetAlertRequest",
  235. AlertSetAlertReply: "AlertSetAlertReply",
  236. AlertGetSubsRequest: "AlertGetSubsRequest",
  237. AlertGetSubsResponse: "AlertGetSubsResponse",
  238. AlertNotifyCapabilities: "AlertNotifyCapabilities",
  239. AlertNotify: "AlertNotify",
  240. AlertGetRuleRequest: "AlertGetRuleRequest",
  241. AlertGetRuleReply: "AlertGetRuleReply",
  242. AlertGetFeedRequest: "AlertGetFeedRequest",
  243. AlertGetFeedReply: "AlertGetFeedReply",
  244. AlertRefreshFeed: "AlertRefreshFeed",
  245. AlertEvent: "AlertEvent",
  246. AlertQogSnac: "AlertQogSnac",
  247. AlertRefreshFeedStock: "AlertRefreshFeedStock",
  248. AlertNotifyTransport: "AlertNotifyTransport",
  249. AlertSetAlertRequestV2: "AlertSetAlertRequestV2",
  250. AlertSetAlertReplyV2: "AlertSetAlertReplyV2",
  251. AlertTransitReply: "AlertTransitReply",
  252. AlertNotifyAck: "AlertNotifyAck",
  253. AlertNotifyDisplayCapabilities: "AlertNotifyDisplayCapabilities",
  254. AlertUserOnline: "AlertUserOnline",
  255. },
  256. BART: {
  257. BARTErr: "BARTErr",
  258. BARTUploadQuery: "BARTUploadQuery",
  259. BARTUploadReply: "BARTUploadReply",
  260. BARTDownloadQuery: "BARTDownloadQuery",
  261. BARTDownloadReply: "BARTDownloadReply",
  262. BARTDownload2Query: "BARTDownload2Query",
  263. BARTDownload2Reply: "BARTDownload2Reply",
  264. },
  265. PermitDeny: {
  266. PermitDenyErr: "PermitDenyErr",
  267. PermitDenyRightsQuery: "PermitDenyRightsQuery",
  268. PermitDenyRightsReply: "PermitDenyRightsReply",
  269. PermitDenySetGroupPermitMask: "PermitDenySetGroupPermitMask",
  270. PermitDenyAddPermListEntries: "PermitDenyAddPermListEntries",
  271. PermitDenyDelPermListEntries: "PermitDenyDelPermListEntries",
  272. PermitDenyAddDenyListEntries: "PermitDenyAddDenyListEntries",
  273. PermitDenyDelDenyListEntries: "PermitDenyDelDenyListEntries",
  274. PermitDenyBosErr: "PermitDenyBosErr",
  275. PermitDenyAddTempPermitListEntries: "PermitDenyAddTempPermitListEntries",
  276. PermitDenyDelTempPermitListEntries: "PermitDenyDelTempPermitListEntries",
  277. },
  278. Admin: {
  279. AdminErr: "AdminErr",
  280. AdminInfoQuery: "AdminInfoQuery",
  281. AdminInfoReply: "AdminInfoReply",
  282. AdminInfoChangeRequest: "AdminInfoChangeRequest",
  283. AdminInfoChangeReply: "AdminInfoChangeReply",
  284. AdminAcctConfirmRequest: "AdminAcctConfirmRequest",
  285. AdminAcctConfirmReply: "AdminAcctConfirmReply",
  286. AdminAcctDeleteRequest: "AdminAcctDeleteRequest",
  287. AdminAcctDeleteReply: "AdminAcctDeleteReply",
  288. },
  289. ICQ: {
  290. ICQErr: "ICQErr",
  291. ICQDBQuery: "ICQDBQuery",
  292. ICQDBReply: "ICQDBReply",
  293. },
  294. ODir: {
  295. ODirErr: "ODirErr",
  296. ODirInfoQuery: "ODirInfoQuery",
  297. ODirInfoReply: "ODirInfoReply",
  298. ODirKeywordListQuery: "ODirKeywordListQuery",
  299. ODirKeywordListReply: "ODirKeywordListReply",
  300. },
  301. Stats: {
  302. StatsErr: "StatsErr",
  303. StatsSetMinReportInterval: "StatsSetMinReportInterval",
  304. StatsReportEvents: "StatsReportEvents",
  305. StatsReportAck: "StatsReportAck",
  306. },
  307. }
  308. // SubGroupName gets the string name of a subgroup within a food group. It
  309. // returns "unknown" if the subgroup doesn't exist.
  310. func SubGroupName(foodGroup uint16, subGroup uint16) string {
  311. name := subGroupName[foodGroup][subGroup]
  312. if name == "" {
  313. name = "unknown"
  314. }
  315. return name
  316. }
  317. // ICQDBQueryName gets the string representation of a ICQ DB query const.
  318. func ICQDBQueryName(query uint16) string {
  319. name := icqDBQuery[query]
  320. if name == "" {
  321. name = "unknown"
  322. }
  323. return name
  324. }
  325. var icqDBQuery = map[uint16]string{
  326. ICQDBQueryOfflineMsgReq: "ICQDBQueryOfflineMsgReq",
  327. ICQDBQueryDeleteMsgReq: "ICQDBQueryDeleteMsgReq",
  328. ICQDBQueryMetaReq: "ICQDBQueryMetaReq",
  329. ICQDBQueryMetaReply: "ICQDBQueryMetaReply",
  330. }
  331. // ICQDBQueryMetaName gets the string representation of a ICQ DB meta query
  332. // const.
  333. func ICQDBQueryMetaName(query uint16) string {
  334. name := icqDBQueryMeta[query]
  335. if name == "" {
  336. name = fmt.Sprintf("unknown (%d)", query)
  337. }
  338. return name
  339. }
  340. var icqDBQueryMeta = map[uint16]string{
  341. ICQDBQueryMetaReqSetBasicInfo: "ICQDBQueryMetaReqSetBasicInfo",
  342. ICQDBQueryMetaReqSetWorkInfo: "ICQDBQueryMetaReqSetWorkInfo",
  343. ICQDBQueryMetaReqSetMoreInfo: "ICQDBQueryMetaReqSetMoreInfo",
  344. ICQDBQueryMetaReqSetNotes: "ICQDBQueryMetaReqSetNotes",
  345. ICQDBQueryMetaReqSetEmails: "ICQDBQueryMetaReqSetEmails",
  346. ICQDBQueryMetaReqSetInterests: "ICQDBQueryMetaReqSetInterests",
  347. ICQDBQueryMetaReqSetAffiliations: "ICQDBQueryMetaReqSetAffiliations",
  348. ICQDBQueryMetaReqSetPermissions: "ICQDBQueryMetaReqSetPermissions",
  349. ICQDBQueryMetaReqSetICQPhone: "ICQDBQueryMetaReqSetICQPhone",
  350. ICQDBQueryMetaReqSetFullInfo: "ICQDBQueryMetaReqSetFullInfo",
  351. ICQDBQueryMetaReqShortInfo: "ICQDBQueryMetaReqShortInfo",
  352. ICQDBQueryMetaReqFullInfo: "ICQDBQueryMetaReqFullInfo",
  353. ICQDBQueryMetaReqFullInfo2: "ICQDBQueryMetaReqFullInfo2",
  354. ICQDBQueryMetaReqSearchByDetails: "ICQDBQueryMetaReqSearchByDetails",
  355. ICQDBQueryMetaReqSearchByUIN: "ICQDBQueryMetaReqSearchByUIN",
  356. ICQDBQueryMetaReqSearchByEmail: "ICQDBQueryMetaReqSearchByEmail",
  357. ICQDBQueryMetaReqSearchWhitePages: "ICQDBQueryMetaReqSearchWhitePages",
  358. ICQDBQueryMetaReqSearchWhitePages2: "ICQDBQueryMetaReqSearchWhitePages2",
  359. ICQDBQueryMetaReqSearchByUIN2: "ICQDBQueryMetaReqSearchByUIN2",
  360. ICQDBQueryMetaReqSearchByEmail3: "ICQDBQueryMetaReqSearchByEmail3",
  361. ICQDBQueryMetaReqStat0758: "ICQDBQueryMetaReqStat0758",
  362. ICQDBQueryMetaReqXMLReq: "ICQDBQueryMetaReqXMLReq",
  363. ICQDBQueryMetaReqStat0a8c: "ICQDBQueryMetaReqStat0a8c",
  364. ICQDBQueryMetaReqStat0a96: "ICQDBQueryMetaReqStat0a96",
  365. ICQDBQueryMetaReqStat0aaa: "ICQDBQueryMetaReqStat0aaa",
  366. ICQDBQueryMetaReqStat0ab4: "ICQDBQueryMetaReqStat0ab4",
  367. ICQDBQueryMetaReqStat0ab9: "ICQDBQueryMetaReqStat0ab9",
  368. ICQDBQueryMetaReqStat0abe: "ICQDBQueryMetaReqStat0abe",
  369. ICQDBQueryMetaReqStat0ac8: "ICQDBQueryMetaReqStat0ac8",
  370. ICQDBQueryMetaReqStat0acd: "ICQDBQueryMetaReqStat0acd",
  371. ICQDBQueryMetaReqStat0ad2: "ICQDBQueryMetaReqStat0ad2",
  372. ICQDBQueryMetaReqStat0ad7: "ICQDBQueryMetaReqStat0ad7",
  373. ICQDBQueryMetaReqDirectoryQuery: "ICQDBQueryMetaReqDirectoryQuery",
  374. ICQDBQueryMetaReqDirectoryUpdate: "ICQDBQueryMetaReqDirectoryUpdate",
  375. }