|
WebCopy OpenSource - Aplicação WINDEV que permite fazer o Download de um site e seus artefatos css, js e imagens |
| |
| |
| Illustrations, copies d'écran |
|
| |
(Pour noter la ressource, cliquez sur Ecrire un avis) |
| |
pour pouvoir poster un avis |
| | |
| | |
Aucun avis ou commentaire ? Soyez le premier ! |
// Summary: <specify the procedure action> // Syntax: // Evento_Zerar_Arquivos () // // Parameters: // None // Return value: // None // // Example: // <Specify a usage example> // PROCEDURE Evento_Zerar_Arquivos()
HDeleteAll(t001_projetos) HDeleteAll(t002_paginas) HDeleteAll(t003_linhas) HDeleteAll(t004_links)
EDT_Resultado = ""
EDT_Resumo = ""
TREE_Sites.Display(taInit)
TABLE_T003_linhas.Display(taInit) |
| // Summary: <specify the procedure action> // Syntax: // Evento_Testar_Html () // // Parameters: // None // Return value: // None // // Example: // <Specify a usage example> // PROCEDURE Evento_Testar_Html()
IF EDT_Resultado <> "" THEN url is string = fCurrentDir()+fSep()+"index.html" fSaveText(url,EDT_Resultado) BrowserRunApp(url) END |
| // Summary: <specify the procedure action> // Syntax: // Evento_Remontar_Html () // // Parameters: // None // Return value: // None // // Example: // <Specify a usage example> // PROCEDURE Evento_Remontar_Html()
HourGlass(True) x is int STC_NumLinhas = "" EDT_Resultado = "" FOR EACH t003_linhas IF t003_linhas.t003_Html_Original <> "" THEN EDT_Resultado += t003_linhas.t003_Html_Original+CR x++ END END STC_NumLinhas = x HourGlass(False) |
| // Summary: <specify the procedure action> // Syntax: //Evento_Download_Site () // // Parameters: // None // Example: // <Specify a usage example> // // Return value: PROCEDURE Evento_Download_Site()
IF EDT_Url <> "" THEN HourGlass(True) BuscaSite is httpRequest BuscaSite..URL = EDT_Url BuscaSite..ContentType = typeMimeHTML BuscaSite..IgnoreError = httpIgnoreExpiredCertificate+httpIgnoreInvalidCertificateName+httpIgnoreRedirection+httpIgnoreRedirectToHTTPS+httpIgnoreRedirectToHTTP+httpIgnoreRevocation Resultado is httpResponse = HTTPSend(BuscaSite) EDT_Resultado = Resultado..Content.UTF8ToUnicode() // EDT_Resultado = Replace(EDT_Resultado,">",">"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<!--",cr+"<!--") // // EDT_Resultado = Replace(EDT_Resultado,"-->","-->"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<div",CR+"<div") // // EDT_Resultado = Replace(EDT_Resultado,"</div>",cr+"</div>"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<span",CR+"<span") // // EDT_Resultado = Replace(EDT_Resultado,"</span>",CR+"</span>"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<iframe",CR+"<iframe") // // EDT_Resultado = Replace(EDT_Resultado,"</iframe>",CR+"</iframe>"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<table",CR+"<table") // // EDT_Resultado = Replace(EDT_Resultado,"</table>",CR+"</table>"+CR) // // EDT_Resultado = Replace(EDT_Resultado,"<script",CR+"<script") // // EDT_Resultado = Replace(EDT_Resultado,"</script>",CR+"</script>"+CR) // // EDT_Resultado = Replace(EDT_Resultado,cr+cr+cr,cr) TotalMenor is int = StringCount(EDT_Resultado,"<") TotalMaior is int = StringCount(EDT_Resultado,">") TotalParentesesMenor is int = StringCount(EDT_Resultado,"(") TotalParentesesMaior is int = StringCount(EDT_Resultado,")") TotalCochetesMenor is int = StringCount(EDT_Resultado,"[") TotalCochetesMaior is int = StringCount(EDT_Resultado,"]") TotalChaveJavaScriptMenor is int = StringCount(EDT_Resultado,"{") TotalChaveJavaScriptMaior is int = StringCount(EDT_Resultado,"}") Resumo is string = [ TotalMenor < = @TotalMenor@ TotalMaior > = @TotalMaior@ TotalParentesesMenor ( = @TotalParentesesMenor@ TotalParentesesMaior ) = @TotalParentesesMaior@ TotalCochetesMenor [ = @TotalCochetesMenor@ TotalCochetesMaior ] = @TotalCochetesMaior@ TotalChaveJavaScriptMenor { = @TotalChaveJavaScriptMenor@ TotalChaveJavaScriptMaior } = @TotalChaveJavaScriptMaior@ ] Resumo = Replace(Resumo,"@TotalMenor@",TotalMenor) Resumo = Replace(Resumo,"@TotalMaior@",TotalMaior) Resumo = Replace(Resumo,"@TotalParentesesMenor@",TotalParentesesMenor) Resumo = Replace(Resumo,"@TotalParentesesMaior@",TotalParentesesMaior) Resumo = Replace(Resumo,"@TotalCochetesMenor@",TotalCochetesMenor) Resumo = Replace(Resumo,"@TotalCochetesMaior@",TotalCochetesMaior) Resumo = Replace(Resumo,"@TotalChaveJavaScriptMenor@",TotalChaveJavaScriptMenor) Resumo = Replace(Resumo,"@TotalChaveJavaScriptMaior@",TotalChaveJavaScriptMaior) EDT_Resumo = Resumo HReset(t001_projetos) IF HReadSeek(t001_projetos,t001_Projeto,EDT_Url,hIdentical) = False t001_projetos.t001_DataHora = DateSys()+TimeSys() t001_projetos.t001_Projeto = EDT_Projeto t001_projetos.t001_Status = False IF HAdd(t001_projetos) = True THEN projetoID = t001_projetos.t001_Projeto_ID t002_paginas.T001_Projeto_ID = projetoID t002_paginas.t002_DataHora = DateSys()+TimeSys() t002_paginas.t002_NomePagina = fExtractPath(EDT_Url,fFile)+fExtractPath(EDT_Url,fExtension) t002_paginas.t002_Path = EDT_Url t002_paginas.T002_Html = EDT_Resultado t002_paginas.t002_Status = False IF HAdd(t002_paginas) = True THEN paginaID = t002_paginas.t002_Pagina_ID END END ELSE projetoID = t001_projetos.t001_Projeto_ID HReset(t002_paginas) IF HReadSeek(t002_paginas,t002_NomePagina,EDT_Url,hIdentical) = True THEN paginaID = t002_paginas.t002_Pagina_ID END END HReset(t003_linhas) IF HReadSeek(t003_linhas,T001_Projeto_ID,projetoID,hIdentical) = True THEN HDeleteAll(t003_linhas) END x is int FOR EACH STRING linha IN EDT_Resultado SEPARATED BY CR IF NoSpace(linha) <> "" THEN x++ t003_linhas.t003_Html_Original = linha t003_linhas.T001_Projeto_ID = projetoID t003_linhas.T002_Pagina_ID = paginaID t003_linhas.t003_Traduzido = False IF HAdd(t003_linhas) = True STC_NumLinhas = x linhaID = t003_linhas.t003_Linha_ID Evento_Download_Find_Links(linha,1) Evento_Download_Find_Links(linha,2) Evento_Download_Find_Links(linha,3) Evento_Download_Find_Links(linha,4) Evento_Download_Find_Links(linha,5) END END END TableDisplay(TABLE_T003_linhas,taInit) TableDisplay(TABLE_T003_linhas,taReExecuteQuery) TREE_Sites.Display(taInit) TREE_Sites.Display(taReExecuteQuery) TREE_Sites.ExpandAll() HourGlass(False) END |
| // Summary: <specify the procedure action> // Syntax: //Evento_Download_Find_Links (<linha>, <posicao>) // // Parameters: // linha: // posicao: <specify the role of posicao> // Example: // <Specify a usage example> // PROCEDURE Evento_Download_Find_Links(linha, posicao)
IF linha = "" RETURN END
linha = ExtractString(linha,(1+posicao),Charact(34),FromBeginning)
linha = ExtractString(linha,1,"?",FromBeginning)
arquivo is string = fExtractPath(linha,fFile) + fExtractPath(linha,fExtension)
extenso is string = Lower(fExtractPath(linha,fExtension))
IF linha = "<EOT>" OR arquivo = "" RETURN END
IF Contains(linha,"https:\snap.licdn.com") = True THEN RETURN END
IF Contains(linha,"https:\https:\www.google") = True THEN RETURN END
IF StringCount(arquivo,".",IgnoreCase) = 0 OR StringCount(extenso,".",IgnoreCase) = 0 RETURN END
// extenso em minusculo IF extenso = "." OR extenso = ".)" OR extenso = ".]" OR extenso = ".value=" OR extenso = ".pcsoft" OR extenso = ".com" OR extenso = ".br" OR extenso = ".fr" OR extenso = ".php" OR extenso = ".net" OR extenso = ".org" OR extenso = ".submit();" OR extenso = ".00em;colo" OR extenso = ".25rem" OR extenso = ".714em;" OR extenso = ".async = t" OR extenso = ".<br>" OR extenso = ".html(temV" OR extenso = ".isInviewp" OR extenso = ".innerhtml" OR extenso = ".push(['_t" OR extenso = ".src = url" OR extenso = ".async = t" RETURN END
IF StringCount(extenso,"(",IgnoreCase) > 0 OR StringCount(extenso,")",IgnoreCase) > 0 OR StringCount(extenso,"[",IgnoreCase) > 0 OR StringCount(extenso,"]",IgnoreCase) > 0 OR StringCount(extenso,"{",IgnoreCase) > 0 OR StringCount(extenso,"}",IgnoreCase) > 0 OR StringCount(extenso,"src",IgnoreCase) > 0 OR StringCount(extenso,".push",IgnoreCase) > 0 OR StringCount(extenso,".async = t",IgnoreCase) > 0 OR StringCount(extenso,".00em;colo",IgnoreCase) > 0 OR StringCount(extenso,".innerhtml",IgnoreCase) > 0 RETURN END
IF arquivo <> "" AND extenso <> "" AND Length(extenso) >= 3 AND Length(extenso) <= 10 AND ExtractString(arquivo,1,".",FromBeginning) <> "" HReset(t004_links) IF HReadSeek(t004_links,t004_arquivo_ext,arquivo,hIdentical) = False THEN novalinha is string = Replace(linha,EDT_Url,"",IgnoreCase) linha = novalinha t004_links.T001_Projeto_ID = projetoID t004_links.T002_Pagina_ID = paginaID t004_links.T003_Linha_ID = linhaID t004_links.t004_data_hora = DateSys()+TimeSys() t004_links.t004_path = novalinha t004_links.t004_diretorios = fExtractPath(linha, fDrive + fDirectory) IF t004_links.t004_diretorios = "" THEN t004_links.t004_diretorios = "/" t004_links.t004_path = "/"+t004_links.t004_path END IF Middle(t004_links.t004_path,1,1) <> "/" AND StringCount(t004_links.t004_path,"http",IgnoreCase) = 0 t004_links.t004_path = "/"+t004_links.t004_path t004_links.t004_diretorios = "/" END t004_links.t004_arquivo_ext = arquivo t004_links.t004_arquivo = ExtractString(arquivo,1,".",FromBeginning) t004_links.t004_extensao = extenso t004_links.t004_download = False newpathdir is string = fCurrentDir()+t004_links.t004_diretorios newpathdir = Replace(newpathdir,EDT_Url,"",IgnoreCase) newpathdir = Replace(newpathdir,"//","/") newpathdir = Replace(newpathdir,"/","\") newpathdir = Replace(newpathdir,":\","\") newpathdir = Replace(newpathdir,"https","") newpathdir = Replace(newpathdir,"http","") newpathfile is string = t004_links.t004_arquivo_ext newpathfile = Replace(newpathfile,EDT_Url,"",IgnoreCase) newpathfile = newpathdir + newpathfile newpathfile = Replace(newpathfile,"//","/") newpathfile = Replace(newpathfile,"/","\") newpathfile = Replace(newpathfile,":\","\") newpathfile = Replace(newpathfile,"https","") newpathfile = Replace(newpathfile,"http","") IF Middle(newpathfile,1,2) = "C\" newpathfile = Replace(newpathfile,"C\","C:\") END IF Middle(newpathdir,1,2) = "C\" newpathdir = Replace(newpathdir,"C\","C:\") END IF fDirectoryExist(newpathdir) = False AND StringCount(newpathdir,"http",IgnoreCase) = 0 fMakeDir(newpathdir) END t004_links.t004_new_path = newpathfile IF t004_links.t004_path <> "" AND t004_links.t004_new_path <> "" AND fDirectoryExist(newpathdir) = True HAdd(t004_links) END END END |
| // Summary: <specify the procedure action> // Syntax: //Evento_Download_Objetos_Site () // // Parameters: // None // Example: // <Specify a usage example> // // Return value: PROCEDURE Evento_Download_Objetos_Site()
HourGlass(True)
Img is Image
bufMyBuffer is Buffer
FOR EACH t004_links IF t004_links.t004_download = False AND t004_links.t004_diretorios <> "" url is string = t004_links.t004_path IF Middle(url,1,1) = "/" THEN url = EDT_Url + url END HTTPRequest(url) bufMyBuffer = HTTPGetResult() //IMAGEMS: png, bmp, gif, jpg, jpge, jpe, jfif //--------------------------------------------- Img = bufMyBuffer IF t004_links.t004_extensao = ".png" dSaveImagePNG(Img,t004_links.t004_new_path) ELSE IF t004_links.t004_extensao = ".bmp" dSaveImageBMP(Img,t004_links.t004_new_path) ELSE IF t004_links.t004_extensao = ".gif" dSaveImageGIF(Img,t004_links.t004_new_path) ELSE IF t004_links.t004_extensao = ".jpg" OR t004_links.t004_extensao = ".jpeg" OR t004_links.t004_extensao = ".jpe" OR t004_links.t004_extensao = ".jfif" dSaveImageJPEG(Img,t004_links.t004_new_path) ELSE IF t004_links.t004_extensao = ".ico" OR t004_links.t004_extensao = ".mp4" fSaveBuffer(t004_links.t004_new_path,bufMyBuffer) END //--------------------------------------------- //TEXTOS: txt, htm, html, css, js //------------------------------------------------- IF t004_links.t004_extensao = ".txt" THEN fSaveText(t004_links.t004_new_path,bufMyBuffer) ELSE IF t004_links.t004_extensao = ".htm" THEN fSaveText(t004_links.t004_new_path,bufMyBuffer) ELSE IF t004_links.t004_extensao = ".html" THEN fSaveText(t004_links.t004_new_path,bufMyBuffer) ELSE IF t004_links.t004_extensao = ".css" THEN fSaveText(t004_links.t004_new_path,bufMyBuffer) ELSE IF t004_links.t004_extensao = ".js" THEN fSaveText(t004_links.t004_new_path,bufMyBuffer) END //------------------------------------------------- IF fFileExist(t004_links.t004_new_path) = True THEN t004_links.t004_data_hora = DateSys()+TimeSys() t004_links.t004_download = True HModify(t004_links) obj++ STC_NumLinhasObjs = obj END END END
HourGlass(False) |
| | |
|