{"id":1469,"date":"2015-10-15T17:56:25","date_gmt":"2015-10-15T21:56:25","guid":{"rendered":"http:\/\/linguagemprisma.net\/blog\/?p=1469"},"modified":"2015-10-15T20:59:06","modified_gmt":"2015-10-16T00:59:06","slug":"baixar-arquivo-da-internet-com-a-biblioteca-igbr","status":"publish","type":"post","link":"https:\/\/linguagemprisma.br4.biz\/blog\/igprisma\/baixar-arquivo-da-internet-com-a-biblioteca-igbr\/","title":{"rendered":"Baixar arquivo da internet com a biblioteca &#8220;igbr&#8221;"},"content":{"rendered":"<p>Antes de mais nada, baixa Prisma-1.0.94 &#8211; 12\/10\/2015 ou mais recente.<\/p>\n<p><strong>Com o seguinte exemplo voc\u00ea poder\u00e1 fazer um mini programa de fazer downloads da internet com links absolutos. S\u00f3 usar a criatividade e fazer a interface gr\u00e1fica com igbr.<\/strong><\/p>\n<p>Segue o c\u00f3digo comentado:<\/p>\n<pre class=\"lang:prisma decode:true\">inclua'igbr'\r\n\/\/fun\u00e7\u00e3o callback:\r\nfuncao copiando(cur , tot )  \r\n  result = (cur * 100) \/ tot\r\n  result = mat.separe(result);\/\/pega somente a parte inteira da fracao\r\n  \/\/ex:   imprima( mat.separe(3.409 ) \/\/saida = 3        0.409     \r\n  imprima('porcentagem:', result,'%', mat.separe( cur \/ 1024 ) ,'de:' , mat.separe( tot \/ 1024 ) , 'KB' );\r\n  \r\nfim\r\n\r\n\/\/carregue o arquivo 'uri' em uma vari\u00e1vel com a fun\u00e7\u00e3o ig.arquivo_uri(\"http:\/\/...\");\r\norigem = ig.arquivo_uri('http:\/\/linguagemprisma.net\/music\/teste.mp3');\r\n \/\/carregue um arquivo destino com a fun\u00e7\u00e3o ig.arquivo(\"arquivo\");\r\ndestino = ig.arquivo('zz_teste_copy.mp3');\r\n\/\/agora basta chamar a fun\u00e7\u00e3o para copiar passando os arquivos carregados acima:\r\nig.arquivo_copie( origem , destino , ig.tipo_copia_sobreescrita , 'copiando(%s , %s )' );\r\n\/\/argumentos s\u00e3o:( arquivo_uri, arquivo, tipo, fun\u00e7\u00e3o_callback );\r\npoe'fim copia';\r\nse result &lt; 100 entao poe'falha no download tente de novo' fim\r\n\r\nleia();<\/pre>\n<p>Obs.: <em>origem \u00e9 a url da internet sempre completo com o http:\\\\site.com passada para fun\u00e7\u00e3o ig.arquivo_uri(&#8230;);<\/em><\/p>\n<p><em>destino \u00e9 o local onde ser\u00e1 salvo j\u00e1 com o nome.\u00a0<\/em><\/p>\n<p>Fun\u00e7\u00e3o callback (chamada de retorno) \u00e9 uma string executando a fun\u00e7\u00e3o criada anteriormente, pode deixar vazias as aspas se n\u00e3o quiser usar uma fun\u00e7\u00e3o callback. Esta fun\u00e7\u00e3o \u00e9 chamada durante todo o processo de transfer\u00eancia e os sinais de escape &#8220;%s&#8221; s\u00e3o trocados dentro da fun\u00e7\u00e3o pelo tamanho transferido e tamanho total do arquivo, ou seja, voc\u00ea pode medir a transfer\u00eancia se usar a fun\u00e7\u00e3o callback;<\/p>\n<p>Optando por n\u00e3o usar fica assim: <strong>ig.arquivo_copie( origem , destino , ig.tipo_copia_sobreescrita , &#8221; &#8221; );<\/strong><\/p>\n<p>O argumento <strong>ig.tipo_copia_sobreescrita<\/strong>\u00a0faz com que<strong>\u00a0<\/strong>o arquivo destino seja sobre-escrito caso j\u00e1 exista um com o mesmo nome. Outros tipos de c\u00f3pia:<\/p>\n<ul>\n<li>ig.tipo_copia_nenhum = tipo em branco.<\/li>\n<li>ig.tipo_copia_sobreescrita = copia por cima de um arquivo caso j\u00e1 exista um com o mesmo nome do destino.<\/li>\n<li>ig.tipo_copia_backup =\u00a0Faz o backup (c\u00f3pia de seguran\u00e7a)<\/li>\n<li>ig.tipo_copia_nao_siga_links_simbolicos =\u00a0n\u00e3o segue links simb\u00f3licos.<\/li>\n<li>ig.tipo_copia_toda_metadata = copia toda a metadata.<\/li>\n<li>ig.tipo_copia_nao_delete_ao_mover = n\u00e3o apaga o arquivo original em processos de mover arquivo.<\/li>\n<li>ig.tipo_copia_target_padrao_permis = copia o alvo em permiss\u00e3o padr\u00e3o.<\/li>\n<\/ul>\n<p>caso queira passar mais de um tipo, use a fun\u00e7\u00e3o<strong> bit32.bor(tipo1, tipo2 , tip3 etc);\u00a0<\/strong><\/p>\n<p>Em breve estarei criando mais fun\u00e7\u00f5es de arquivos em ig a partir do gtk gio.<\/p>\n<p>Bom, qualquer d\u00favidas pergunte nos coment\u00e1rios ou no<a href=\"http:\/\/linguagemprisma.net\/prisma_forum\" target=\"_blank\"> f\u00f3rum Prisma<\/a>.<\/p>\n<p>at\u00e9 logo.<\/p>\n<p>Att. Adalberto<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Antes de mais nada, baixa Prisma-1.0.94 &#8211; 12\/10\/2015 ou mais recente. Com o seguinte exemplo voc\u00ea poder\u00e1 fazer um mini programa de fazer downloads da internet com links absolutos. S\u00f3 usar a criatividade e fazer a interface gr\u00e1fica com igbr. Segue o c\u00f3digo comentado: inclua&#8217;igbr&#8217; \/\/fun\u00e7\u00e3o callback: funcao copiando(cur , tot ) result = (cur&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1469","post","type-post","status-publish","format-standard","hentry","category-igprisma"],"_links":{"self":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/1469","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/comments?post=1469"}],"version-history":[{"count":4,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/1469\/revisions"}],"predecessor-version":[{"id":1473,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/posts\/1469\/revisions\/1473"}],"wp:attachment":[{"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/media?parent=1469"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/categories?post=1469"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linguagemprisma.br4.biz\/blog\/wp-json\/wp\/v2\/tags?post=1469"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}