Rev 2184 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2184 | Rev 2228 | ||
---|---|---|---|
Line 16... | Line 16... | ||
16 | int i; |
16 | int i; |
Line 17... | Line 17... | ||
17 | 17 | ||
18 | char download_path[]="/rd/1/.download"; |
18 | char download_path[]="/rd/1/.download"; |
19 | //char search_path[]="http://nova.rambler.ru/search?words="; |
19 | //char search_path[]="http://nova.rambler.ru/search?words="; |
20 | char search_path[]="http://nigma.ru/index.php?s="; |
20 | char search_path[]="http://nigma.ru/index.php?s="; |
Line 21... | Line 21... | ||
21 | char version[]=" Text-based Browser 23.69"; |
21 | char version[]=" Text-based Browser 23.70"; |
22 | 22 | ||
23 | 23 | ||
Line 35... | Line 35... | ||
35 | 35 | ||
Line 36... | Line 36... | ||
36 | TWebBrowser WB1; |
36 | TWebBrowser WB1; |
37 | 37 | ||
- | 38 | #include "include\history.h--" |
|
Line 38... | Line 39... | ||
38 | #include "include\history.h--" |
39 | #include "include\colors.h--" |
39 | #include "include\colors.h--" |
40 | #include "include\unicode_tags.h--" |
40 | 41 | ||
41 | void TWebBrowser::Scan(dword id) { |
42 | void TWebBrowser::Scan(dword id) { |
Line 55... | Line 56... | ||
55 | IF(kolichestvo < max_kolvo_strok) SWITCH(id) { |
56 | IF(kolichestvo < max_kolvo_strok) SWITCH(id) { |
56 | CASE 183: CASE 184: CASE 180: CASE 181: return; |
57 | CASE 183: CASE 184: CASE 180: CASE 181: return; |
57 | } //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè |
58 | } //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè |
58 | switch (id) { |
59 | switch (id) { |
59 | case 011: |
60 | case 011: |
60 | case 004: |
- | |
61 | ReadHtml(); |
61 | ReadHtml(); |
62 | break; |
62 | break; |
63 | case BACK: |
63 | case BACK: |
64 | BrowserHistory.GoBack(); |
64 | BrowserHistory.GoBack(); |
65 | return; |
65 | return; |
Line 183... | Line 183... | ||
183 | { |
183 | { |
184 | DeleteFile(#download_path); |
184 | DeleteFile(#download_path); |
185 | IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=''; |
185 | IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]=''; |
186 | downloader_id = RunProgram("/sys/network/downloader", #URL); |
186 | downloader_id = RunProgram("/sys/network/downloader", #URL); |
187 | IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable."); |
187 | IF (downloader_id<0) RunProgram("@notify", "Error running Downloader. Internet unavilable."); |
- | 188 | RunProgram("/sys/network/downloader", #URL); |
|
188 | RETURN; |
189 | RETURN; |
189 | } |
190 | } |
190 | file_size stdcall (#download_path); |
191 | file_size stdcall (#download_path); |
191 | } |
192 | } |
192 | ELSE file_size stdcall (#URL); |
193 | ELSE file_size stdcall (#URL); |
Line 193... | Line 194... | ||
193 | 194 | ||
- | 195 | filesize = EBX; |
|
194 | filesize = EBX; |
196 | IF (!filesize) return; //Lee 22.09 |
195 | mem_Free(buf); |
197 | mem_Free(buf); |
196 | buf = mem_Alloc(filesize); |
198 | buf = mem_Alloc(filesize); |
197 | ReadFile(0, filesize, buf, #URL); |
199 | ReadFile(0, filesize, buf, #URL); |
Line 219... | Line 221... | ||
219 | } |
221 | } |
220 | edit1.size = edit1.pos = strlen(#editURL); |
222 | edit1.size = edit1.pos = strlen(#editURL); |
221 | edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
223 | edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà |
Line 222... | Line 224... | ||
222 | 224 | ||
- | 225 | ReadHtml(LETS_LOAD); |
|
- | 226 | ||
- | 227 | IF (!filesize) return; //Lee 22.09 |
|
223 | ReadHtml(LETS_LOAD); |
228 | |
224 | wintodos(buf); |
229 | wintodos(buf); |
225 | ParseHTML(buf, filesize); |
230 | ParseHTML(buf, filesize); |
226 | IF(!strlen(buf)) { |
231 | IF(!strlen(buf)) { |
227 | IF (strcmp(get_URL_part(5),"http:")==0) |
232 | IF (strcmp(get_URL_part(5),"http:")==0) |
Line 264... | Line 269... | ||
264 | link_color = 0x0000FF; |
269 | link_color = 0x0000FF; |
265 | blink = 400; |
270 | blink = 400; |
266 | line = ''; |
271 | line = ''; |
267 | copystr("|", #page_links); |
272 | copystr("|", #page_links); |
268 | IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà |
273 | IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà |
- | 274 | //IF(!strcmp(#URL + strlen(#URL) - 4, ".rtf")) pre_text = 1; |
|
269 | IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1; |
275 | IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1; |
270 | IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
276 | IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó |
271 | for (; buf + fsize > bword; bword++;) { |
277 | for (; buf + fsize > bword; bword++;) { |
272 | bukva = ESBYTE[bword]; |
278 | bukva = ESBYTE[bword]; |
273 | switch (bukva) { |
279 | switch (bukva) { |
Line 337... | Line 343... | ||
337 | copystr(#bukva, #temp + strlen(#temp)); |
343 | copystr(#bukva, #temp + strlen(#temp)); |
Line 338... | Line 344... | ||
338 | 344 | ||
339 | bukva=Hex2Symb(#temp); |
345 | bukva=Hex2Symb(#temp); |
340 | IF (bukva) goto DEFAULT_MARK; |
346 | IF (bukva) goto DEFAULT_MARK; |
- | 347 | break; |
|
- | 348 | /*case '\\': //ïîääåðæêà rtf |
|
- | 349 | IF(strcmp(#URL + strlen(#URL) - 4, ".rtf")<>0) goto DEFAULT_MARK; |
|
341 | break; |
350 | |
- | 351 | bword++; |
|
- | 352 | IF (ESBYTE[bword] =='\'') |
|
- | 353 | { |
|
- | 354 | bword++; |
|
342 | case '&': |
355 | bukva=ESBYTE[bword]; |
- | 356 | copystr(#bukva, #temp); |
|
343 | IF(ignor_text) break; |
357 | |
- | 358 | bword++; |
|
- | 359 | bukva=ESBYTE[bword]; |
|
- | 360 | copystr(#bukva, #temp + strlen(#temp)); |
|
- | 361 | ||
- | 362 | bukva=Hex2Symb(#temp); |
|
- | 363 | IF (bukva) goto DEFAULT_MARK; |
|
344 | bword++; |
364 | } |
- | 365 | else |
|
345 | j = 0; |
366 | { |
- | 367 | FOR (j=0; (ESBYTE[bword] <>'\\') && (buf + fsize < bword); j++; bword++;) |
|
346 | WHILE(ESBYTE[bword] <>';') && (j < 7) { |
368 | { |
347 | bukva = ESBYTE[bword]; |
369 | bukva = ESBYTE[bword]; |
- | 370 | copystr(#bukva, #tag + strlen(#tag)); |
|
- | 371 | } |
|
- | 372 | IF ((!strcmp(#tag, "par\0x0a")) || (!strcmp(#tag, "par\0x0b"))) stroka++; |
|
- | 373 | tag=''; |
|
- | 374 | bword--; |
|
- | 375 | } |
|
- | 376 | break;*/ |
|
- | 377 | ||
- | 378 | case '&': //îáðàáîòêà òåãîâ òèïà |
|
348 | copystr(#bukva, #tag + strlen(#tag)); |
379 | IF(ignor_text) break; |
- | 380 | bword++; |
|
- | 381 | tag=''; |
|
- | 382 | FOR (j=0; (ESBYTE[bword] <>';') && (j < 7); j++; bword++;) |
|
- | 383 | { |
|
- | 384 | bukva = ESBYTE[bword]; |
|
- | 385 | copystr(#bukva, #tag + strlen(#tag)); |
|
- | 386 | } |
|
- | 387 | ||
- | 388 | FOR (j=0; unicode_tags[j]!=0; j+=2;) |
|
- | 389 | { |
|
349 | bword++; |
390 | IF(!strcmp(#tag, unicode_tags[j])) |
- | 391 | { |
|
- | 392 | copystr(unicode_tags[j+1], #line + strlen(#line)); |
|
350 | j++; |
393 | break 1; |
351 | } |
- | |
352 | bukva = ''; //âñþ ýòó õðåíü íàäî çàëàáàòü ÷åðåç ìàñèâ |
- | |
353 | IF(!strcmp("nbsp", #tag)) copystr(" ", #line + strlen(#line)); |
- | |
354 | IF(!strcmp("copy", #tag)) || (!strcmp("#169", #tag)) copystr("(c)", #line + strlen(#line)); |
- | |
- | 394 | } |
|
- | 395 | } |
|
355 | IF(!strcmp("reg", #tag)) || (!strcmp("#174", #tag)) copystr("(r)", #line + strlen(#line)); |
396 | |
356 | rez = StrToInt(#tag + 1) - 1040; |
397 | rez = StrToInt(#tag + 1) - 1040; |
- | 398 | IF(tag[1] == '1') && (rez>1040) && (rez<1118) && (strlen(#tag) == 5) |
|
357 | IF(tag[1] == '1') && (strlen(#tag) == 5) bukva = utf100tmmv_mas[rez]; |
399 | { |
358 | IF(!strcmp("bdquo", #tag)) copystr(",,", #line + strlen(#line)); |
400 | bukva = utf100tmmv_mas[rez]; |
359 | IF(!strcmp("amp", #tag)) || (!strcmp("#38", #tag)) bukva = '&'; |
401 | copystr(#bukva, #line + strlen(#line)); |
- | 402 | break; |
|
- | 403 | } |
|
360 | IF(!strcmp("lt", #tag)) || (!strcmp("#60", #tag)) bukva = '<'; |
404 | |
361 | IF(!strcmp("gt", #tag)) || (!strcmp("#62", #tag)) bukva = '>'; |
- | |
362 | IF(!strcmp("minus", #tag)) || (!strcmp("#8722", #tag)) bukva = '-'; |
- | |
363 | IF(!strcmp("#151", #tag)) || (!strcmp("#149", #tag)) || (!strcmp("ndash", #tag)) bukva = '-'; |
405 | WriteDebug("Unknown tag"); |
364 | IF(!strcmp("#39", #tag)) || (!strcmp("#96", #tag)) bukva = '\''; |
406 | WriteDebug(#tag); |
365 | IF(!strcmp("quot", #tag)) || (!strcmp("#34", #tag)) || (!strcmp("ldquo", #tag)) || (!strcmp("rdquo", #tag)) bukva = '"'; |
- | |
366 | tag = ''; |
407 | copystr(#tag, #line + strlen(#line)); //âûâîäèì íà ýêðàí íåîáðàáîòàííûé òåã, òàê áðàóçåðû çà÷åì-òî äåëàþò |
367 | //break; |
408 | break; |
368 | default: |
409 | default: |
369 | DEFAULT_MARK: |
410 | DEFAULT_MARK: |
370 | IF(ignor_text) break; |
411 | IF(ignor_text) break; |
371 | IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue; |
412 | IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue; |
372 | // |
413 | // |
- | 414 | if (stolbec + strlen(#line) > max_kolvo_stolbcov) && (w_title == 0) |
|
373 | if (stolbec + strlen(#line) > max_kolvo_stolbcov) && (w_title == 0) { |
415 | { |
374 | copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì |
416 | copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì |
375 | line[find_symbol(#line, ' ')] = 0x00; |
417 | line[find_symbol(#line, ' ')] = 0x00; |
376 | NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì... |
418 | NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì... |
377 | WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè |
419 | WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè |
378 | TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñòðîêó âêîíöå |
420 | TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñëåäóùóþ ñòðîêó |
379 | copystr(#temp, #line); |
421 | copystr(#temp, #line); |
380 | } |
422 | } |
381 | IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) CONTINUE; |
423 | IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) CONTINUE; |
382 | copystr(#bukva, #line + strlen(#line)); |
424 | copystr(#bukva, #line + strlen(#line)); |