From: Klaus S. <sin...@us...> - 2006-06-27 08:53:37
|
Update of /cvsroot/bidwatcher/bidwatcher In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv8910 Modified Files: Tag: STABLE_1_3 helpers.cpp Log Message: fixes for: "End time:", "Score:", and added some unknown HTML entities Index: helpers.cpp =================================================================== RCS file: /cvsroot/bidwatcher/bidwatcher/Attic/helpers.cpp,v retrieving revision 1.90.2.66 retrieving revision 1.90.2.67 diff -u -d -r1.90.2.66 -r1.90.2.67 --- helpers.cpp 5 Apr 2006 11:43:14 -0000 1.90.2.66 +++ helpers.cpp 27 Jun 2006 08:53:30 -0000 1.90.2.67 @@ -253,7 +253,8 @@ return 0xA9; // '©'; if (!strcmp(temp, "#174")) return 0xAE; // '®'; - if (!strcmp(temp, "#8211") || !strcmp(temp, "#8212")) + if (!strcmp(temp, "#8211") || !strcmp(temp, "#8212") || + !strcmp(temp, "#45")) return '-'; // Unicode "en dash" character if (!strcmp(temp, "szlig")) return 223; // sz-ligature @@ -271,12 +272,15 @@ return '<'; if (!strcmp(temp, "gt") || !strcmp(temp, "#62")) return '>'; - if (!strcmp(temp, "#8217") || !strcmp(temp, "#146")) + if (!strcmp(temp, "#8217") || !strcmp(temp, "#146") || + !strcmp(temp, "#B4") || !strcmp(temp, "acute")) return '\''; - if (!strcmp(temp, "deg")) - return 0xB0; // '°'; + if (!strcmp(temp, "#A7") || !strcmp(temp, "sect")) + return 0xA7; // '§'; if (!strcmp(temp, "pound")) return 0xA3; // '£'; + if (!strcmp(temp, "deg")) + return 0xB0; // '°'; if (!strcmp(temp, "plusmn")) return 0xB1; // '±'; if (!strcmp(temp, "micro")) @@ -434,7 +438,7 @@ (Buff[BuffIdx-1] != '\n')) Buff[BuffIdx++] = ' '; else if ((BuffIdx > 0) && (c == ' ') && (Buff[BuffIdx-1] != ' ')) - continue; /* ignore -- crunch multiple spaces */ + continue; /* ignore -- crunch multiple spaces */ else if ((BuffIdx > 0) && (c == '\n') && (Buff[BuffIdx-1] != '\n')) @@ -1280,10 +1284,15 @@ case 17: case 23: case 25: // "Sold for" - if (!bid_flag) { - streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); + if (!bid_flag) { DPRINTF(DLOW, ("LDCB: %s\n", LineBuffer.buf())); - parseprice(LineBuffer.buf(), this, FALSE); + if (!parseprice(LineBuffer.buf(), this, FALSE)) + { + streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); + } else { + DPRINTF(DLOW, ("LDCB: %s\n", LineBuffer.buf())); + parseprice(LineBuffer.buf(), this, FALSE); + } bid_flag = 1; isEndless = 0; streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); @@ -1295,7 +1304,7 @@ // Not a reserve auction, put the chars back. for (unsigned int i=0; i<=strlen(LineBuffer.buf()); i++) streamBuff.unget(); - } + } break; case 3: // first bid @@ -1317,9 +1326,9 @@ break; case 20: // "Price:" - BuyItNow Only. - case 28: - case 34: - case 35: + case 28: // " Price" + case 34: // " price:" + case 35: // "price:" DPRINTF(DLOW, ("This is a BuyItNow\n")); if (!buynow_flag) { buynow_flag = 1; @@ -1443,21 +1452,20 @@ EndsValue = CalcEndsValue(Ends); } case 39: // "End time:" - // has 2 possibilities of string: + // has 3 possibilities of string: // 1. "End time:10 hours 7 mins" // " (Mar-08-06 12:52:47 PST)" // 2. "End time:Mar-08-06 12:52:47 PST" // "2 days 10 hours 7 mins" + // 3. "End time:8 hours 23 mins (Jun-27-06 09:26:17 PDT)" if (!Ends[0]) { char *ptr = strchr(LineBuffer.buf(), '-'); - long len = ptr - LineBuffer.buf(); - DPRINTF(DLOW, ("Ends: ptr=%ld, >%s<\n", ptr, LineBuffer.buf())); - if (ptr!=NULL && len<18) { // case: "End time:Apr-02-06 12:24:20 PDT (3 days 9 hours)" - STRNZCPY(Ends, LineBuffer.buf() + strlen("End time:")); - } else { + DPRINTF(DLOW, ("Ends: ptr=%p, >%s<\n", ptr, LineBuffer.buf())); + if (!ptr) { // date in next line streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); - STRNZCPY(Ends, LineBuffer.buf()+2); // skip starting 2 chars " (" - } + ptr = strchr(LineBuffer.buf(), '-'); + } + STRNZCPY(Ends, ptr-3); translate_date(Ends); EndsValue = CalcEndsValue(Ends); } @@ -1547,8 +1555,8 @@ if (!Feedbackn[0]) { char TmpLine[6]; unsigned int count=0, f_len=0; - unsigned int limit=0; - unsigned int i=0, j=0; + int limit=0; + int i=0, j=0; char *p; p = strchr(LineBuffer.buf(), ':'); @@ -1582,7 +1590,7 @@ DPRINTF(DLOW, ("Score: p[count+1] is not '|': >%c<, count=%d\n", p[count+1], count)); TmpLine[i] = '\0'; if (i) { - unsigned int a1= 6; //a1 = sizeof(Feedbackn)-strlen(TmpLine)-1; + int a1= 6; //a1 = sizeof(Feedbackn)-strlen(TmpLine)-1; if (f_len < a1) { while (f_len < a1) { /* fills spaces */ Feedbackn[f_len++] = ' '; @@ -1652,46 +1660,52 @@ strcpy(HighBidder, "Dutch Auction"); break; - case 29: if (!Feedbackn[0]) { - streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); - STRNZCPY(Feedbackn, LineBuffer.buf()); - streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); - - char TmpLine[6]; - unsigned int count; - int limit = strlen(LineBuffer.buf()); - int iiii=0; - - for (count=0; count < strlen(LineBuffer.buf()); count++) - { - if (LineBuffer.buf()[count] == ':') - { - LineBuffer.buf()[count] = count; // truncate string at first ':' - for (int fb=count+1; fb < limit; fb++) { - TmpLine[iiii] = LineBuffer.buf()[fb + 1]; - iiii++; - } - } - } - CheckBadChars(Feedbackn,"0123456789"); - if ( strstr(LineBuffer.buf(),"Feedback") != NULL) { + case 29: // Feedback Score: + if (!Feedbackn[0]) { + char TmpLine[6]; + unsigned int count; + int limit = 0; + int iiii=0; + char *p; + p = LineBuffer.buf(); + while(!isdigit(*p) && *p) + p++; + if (*p == '\0') { + streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); + STRNZCPY(Feedbackn, LineBuffer.buf()); + } else { + STRNZCPY(Feedbackn, p); + } + streamBuff.getline(LineBuffer.buf(), LineBuffer.size(), '\n'); - int a1=6, c1=strlen(Feedbackn); - while (c1 < a1) { /* adds spaces */ - strcat(Feedbackn, " "); - c1++; - } - strcat(Feedbackn,TmpLine); - } - else - { - CheckBadChars(Feedbackn,"123456789"); - STRNZCPY(Feedbackn,"NONE"); - } - } - break; + limit = strlen(LineBuffer.buf()); + for (count=0; count < limit; count++) + { + if (LineBuffer.buf()[count] == ':') { + LineBuffer.buf()[count] = count; // truncate string at first ':' + for (int fb=count+1; fb < limit; fb++) + { + TmpLine[iiii] = LineBuffer.buf()[fb + 1]; + iiii++; + } + } + } + CheckBadChars(Feedbackn,"0123456789"); + if ( strstr(LineBuffer.buf(),"Feedback") != NULL) { + int a1=6, c1=strlen(Feedbackn); + while (c1 < a1) { /* adds spaces */ + strcat(Feedbackn, " "); + c1++; + } + strcat(Feedbackn,TmpLine); + } else { + CheckBadChars(Feedbackn,"123456789"); + STRNZCPY(Feedbackn,"NONE"); + } + } + break; case 15: // reserve auctions @@ -1784,6 +1798,7 @@ reserveMet = 'n'; else if (strstr(LineBuffer.buf(), "reserve met")) reserveMet = 'y'; + DPRINTF(DHIGH, ("Reserve: %c\n", reserveMet)); default:; break; |