- Timestamp:
- 05/06/02 13:49:48 (7 years ago)
- Location:
- trunk/rms/src
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/rms/src/main.cpp
r2522 r2828 34 34 const char *LP_Version() 35 35 { 36 static const char version[] = "0.2 3";36 static const char version[] = "0.24"; 37 37 return version; 38 38 } -
trunk/rms/src/rms.cpp
r2478 r2828 40 40 const unsigned short CODE_LISTxDONE = 206; 41 41 const unsigned short CODE_LOGxTYPE = 207; 42 const unsigned short CODE_VIEWxMSG = 208; 43 const unsigned short CODE_VIEWxURL = 209; 44 const unsigned short CODE_VIEWxCHAT= 210; 45 const unsigned short CODE_VIEWxFILE = 211; 46 const unsigned short CODE_VIEWxTIME = 220; 47 const unsigned short CODE_VIEWxFLAGS = 221; 48 const unsigned short CODE_VIEWxTEXTxSTART = 222; 49 const unsigned short CODE_VIEWxTEXTxEND = 223; 50 const unsigned short CODE_VIEWxUNKNOWN = 299; 42 51 // 300 - further action required 43 52 const unsigned short CODE_ENTERxUIN = 300; … … 51 60 const unsigned short CODE_INVALIDxSTATUS = 403; 52 61 const unsigned short CODE_EVENTxCANCELLED = 404; 62 const unsigned short CODE_VIEWxNONE = 405; 53 63 // 500 - server error 54 64 const unsigned short CODE_EVENTxTIMEDOUT = 500; 55 65 const unsigned short CODE_EVENTxFAILED = 501; 56 66 const unsigned short CODE_EVENTxERROR = 502; 57 58 67 59 68 const unsigned short STATE_UIN = 1; … … 98 107 "Dump log messages { <log types> }." }, 99 108 { "VIEW", &CRMSClient::Process_VIEW, 100 "View event { <uin> } (not yet implemented)." },109 "View event (next or specific user) { [ <uin> ] }." }, 101 110 { "AR", &CRMSClient::Process_AR, 102 111 "Set your (or a user custom) auto response { [ <uin> ] }." } … … 1021 1030 1022 1031 1032 /*--------------------------------------------------------------------------- 1033 * CRMSClient::Process_VIEW 1034 * 1035 * Command: 1036 * VIEW <uin> 1037 * 1038 * Response: 1039 * 1040 *-------------------------------------------------------------------------*/ 1023 1041 int CRMSClient::Process_VIEW() 1024 1042 { 1025 unsigned long nUin = atol(data_arg); 1043 unsigned long nUin = 0; 1044 1045 if (*data_arg != '\0') 1046 { 1047 nUin = atol(data_arg); 1048 } 1049 else 1050 { 1051 // XXX Check system messages first 1052 1053 // Check user messages now 1054 FOR_EACH_USER_START(LOCK_R) 1055 { 1056 if(pUser->NewMessages() > 0) 1057 nUin = pUser->Uin(); 1058 } 1059 FOR_EACH_USER_END 1060 1061 if (nUin == 0) 1062 { 1063 fprintf(fs, "%d No new messages.\n", CODE_VIEWxNONE); 1064 return fflush(fs); 1065 } 1066 } 1026 1067 1027 1068 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_W); … … 1031 1072 return fflush(fs); 1032 1073 } 1074 1075 CUserEvent *e = u->EventPop(); 1076 if (e) 1077 { 1078 char szEventHeader[75]; // Allows 50 chars for a nick 1079 switch (e->SubCommand()) 1080 { 1081 case ICQ_CMDxSUB_MSG: 1082 sprintf(szEventHeader, "%d Message ", CODE_VIEWxMSG); 1083 break; 1084 1085 case ICQ_CMDxSUB_URL: 1086 sprintf(szEventHeader, "%d URL ", CODE_VIEWxURL); 1087 break; 1088 1089 case ICQ_CMDxSUB_CHAT: 1090 sprintf(szEventHeader, "%d Chat Request ", CODE_VIEWxCHAT); 1091 break; 1092 1093 case ICQ_CMDxSUB_FILE: 1094 sprintf(szEventHeader, "%d File Request ", CODE_VIEWxFILE); 1095 break; 1096 1097 default: 1098 sprintf(szEventHeader, "%d Unknown Event ", CODE_VIEWxUNKNOWN); 1099 } 1100 1101 strcat(szEventHeader, "from "); 1102 strncat(szEventHeader, u->GetAlias(), 50); 1103 strcat(szEventHeader, "\n\0"); 1104 1105 // Write out the event header 1106 fprintf(fs, szEventHeader); 1107 1108 // Timestamp 1109 char szTimestamp[39]; 1110 char szTime[25]; 1111 time_t nMessageTime = e->Time(); 1112 struct tm *pTM = localtime(&nMessageTime); 1113 strftime(szTime, 25, "%H:%M:%S", pTM); 1114 sprintf(szTimestamp, "%d Sent At ", CODE_VIEWxTIME); 1115 strncat(szTimestamp, szTime, 25); 1116 strcat(szTimestamp, "\n\0"); 1117 fprintf(fs, szTimestamp); 1118 1119 // Message 1120 fprintf(fs, "%d Message Start\n", CODE_VIEWxTEXTxSTART); 1121 fprintf(fs, e->Text()); 1122 fprintf(fs, "%d Message Complete\n", CODE_VIEWxTEXTxEND); 1123 } 1124 else 1125 { 1126 fprintf(fs, "%d Invalid event\n", CODE_EVENTxERROR); 1127 } 1128 1033 1129 gUserManager.DropUser(u); 1034 1130 1035 return 0;1036 } 1037 1038 1131 return fflush(fs); 1132 } 1133 1134
