Commit 2fc2bf6591f1fd78453d4459dc6888c3aca08b15
1 parent
ae7acdd5
Exists in
Au-ghub/master
python portatil e fixes
adicao do python, fix de loop no download/extracao do python, download da lista de sinais
Showing
4 changed files
with
87 additions
and
25 deletions
Show diff stats
BundlesManager.cs
@@ -3,8 +3,7 @@ using System.Net; | @@ -3,8 +3,7 @@ using System.Net; | ||
3 | using System.IO; | 3 | using System.IO; |
4 | using System.IO.Compression; | 4 | using System.IO.Compression; |
5 | 5 | ||
6 | -namespace AtualizadorVLibras | ||
7 | -{ | 6 | +namespace AtualizadorVLibras{ |
8 | 7 | ||
9 | public class TimeoutWebClient : WebClient{ | 8 | public class TimeoutWebClient : WebClient{ |
10 | protected override WebRequest GetWebRequest(Uri address){ | 9 | protected override WebRequest GetWebRequest(Uri address){ |
@@ -14,8 +13,7 @@ namespace AtualizadorVLibras | @@ -14,8 +13,7 @@ namespace AtualizadorVLibras | ||
14 | } | 13 | } |
15 | } | 14 | } |
16 | 15 | ||
17 | - static class BundlesManager | ||
18 | - { | 16 | + static class BundlesManager{ |
19 | //timeout para verificação de existência e data de última verificação dos pacotes | 17 | //timeout para verificação de existência e data de última verificação dos pacotes |
20 | static int timeout = 2000; | 18 | static int timeout = 2000; |
21 | 19 | ||
@@ -96,13 +94,13 @@ namespace AtualizadorVLibras | @@ -96,13 +94,13 @@ namespace AtualizadorVLibras | ||
96 | } | 94 | } |
97 | 95 | ||
98 | public static int DownloadBundlesPackages(string url, string rootPath, string extractPath){ | 96 | public static int DownloadBundlesPackages(string url, string rootPath, string extractPath){ |
99 | - //rootPath é o path dos arquivos .zip locais | ||
100 | - //url é o path dos arquivos .zip remotos | ||
101 | - //extractPath é o path da pasta Bundles | ||
102 | - string ext = @".zip"; | ||
103 | - int i = 1; | ||
104 | - string remote; | ||
105 | - string local; | 97 | + //rootPath é o path dos arquivos .zip locais |
98 | + //url é o path dos arquivos .zip remotos | ||
99 | + //extractPath é o path da pasta Bundles | ||
100 | + string ext = @".zip"; | ||
101 | + int i = 1; | ||
102 | + string remote; | ||
103 | + string local; | ||
106 | while(true){ | 104 | while(true){ |
107 | Console.WriteLine("Verificando arquivo "+i+" zip dos pacotes de sinais."); | 105 | Console.WriteLine("Verificando arquivo "+i+" zip dos pacotes de sinais."); |
108 | remote = url+i.ToString()+ext; | 106 | remote = url+i.ToString()+ext; |
@@ -132,7 +130,7 @@ namespace AtualizadorVLibras | @@ -132,7 +130,7 @@ namespace AtualizadorVLibras | ||
132 | public static void DownloadListaSinais(string url){ | 130 | public static void DownloadListaSinais(string url){ |
133 | string sinais = "sinais.txt"; | 131 | string sinais = "sinais.txt"; |
134 | string remote = url+sinais; | 132 | string remote = url+sinais; |
135 | - string local = @"Player\vlibrasPlayer_Data\Resources\"+sinais; | 133 | + string local = @"..\Bundles\"+sinais; |
136 | if(RemoteFileExists(remote)){ | 134 | if(RemoteFileExists(remote)){ |
137 | if(!File.Exists(local) || RemoteIsNewerThanLocal(remote, local)){ | 135 | if(!File.Exists(local) || RemoteIsNewerThanLocal(remote, local)){ |
138 | DownloadFileToPath(remote, local); | 136 | DownloadFileToPath(remote, local); |
@@ -140,8 +138,8 @@ namespace AtualizadorVLibras | @@ -140,8 +138,8 @@ namespace AtualizadorVLibras | ||
140 | } | 138 | } |
141 | } | 139 | } |
142 | /*public static void ExtractBundlesPackages(string rootPath, string extractPath, int qtd){ | 140 | /*public static void ExtractBundlesPackages(string rootPath, string extractPath, int qtd){ |
143 | - string ext = @".zip"; | ||
144 | - bool exists = System.IO.Directory.Exists(extractPath); | 141 | + string ext = @".zip"; |
142 | + bool exists = System.IO.Directory.Exists(extractPath); | ||
145 | if(!exists){ | 143 | if(!exists){ |
146 | System.IO.Directory.CreateDirectory(extractPath); | 144 | System.IO.Directory.CreateDirectory(extractPath); |
147 | } | 145 | } |
@@ -160,6 +158,35 @@ namespace AtualizadorVLibras | @@ -160,6 +158,35 @@ namespace AtualizadorVLibras | ||
160 | } | 158 | } |
161 | }*/ | 159 | }*/ |
162 | 160 | ||
161 | + public static void DownloadFileIfNewer(string remote, string local, string fileName){ | ||
162 | + if(RemoteFileExists(remote+fileName) && (!File.Exists(local+fileName) || RemoteIsNewerThanLocal(remote+fileName, local+fileName))){ | ||
163 | + DownloadFileToPath(remote+fileName, local+fileName); | ||
164 | + if(File.Exists(local+fileName.Remove(fileName.Length-4))){ | ||
165 | + File.Delete(local+fileName.Remove(fileName.Length-4)); | ||
166 | + } | ||
167 | + } | ||
168 | + } | ||
169 | + public static void ExtractZip(string remote, string local, string extractPath, string fileName){ | ||
170 | + if(!File.Exists(local+fileName.Remove(fileName.Length-4))){ | ||
171 | + bool dirExists = System.IO.Directory.Exists(extractPath); | ||
172 | + if(!dirExists){ | ||
173 | + System.IO.Directory.CreateDirectory(extractPath); | ||
174 | + } | ||
175 | + try{ | ||
176 | + if(!File.Exists(extractPath+fileName.Remove(fileName.Length-4))){ | ||
177 | + ZipArchive zip = ZipFile.Open(local+fileName, ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage)); | ||
178 | + ExtractToDirectory(zip, extractPath, true); | ||
179 | + File.Create(extractPath+fileName.Remove(fileName.Length-4)).Close(); | ||
180 | + } | ||
181 | + }catch(Exception e){ | ||
182 | + Console.WriteLine("Ocorreu um erro durante a extraçao: {0}\nPressione uma tecla para continuar.",e); | ||
183 | + Console.ReadKey(); | ||
184 | + DownloadFileIfNewer(remote, local, fileName); | ||
185 | + ExtractZip(remote, local, extractPath, fileName); | ||
186 | + } | ||
187 | + } | ||
188 | + } | ||
189 | + | ||
163 | //ZipArchive archive = ZipFile.Open(fileAbsolute, ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage)); | 190 | //ZipArchive archive = ZipFile.Open(fileAbsolute, ZipArchiveMode.Read, System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.CurrentCulture.TextInfo.OEMCodePage)); |
164 | public static void ExtractBundlesPackagesOverWrite(string url, string rootPath, string extractPath, int qtd){ | 191 | public static void ExtractBundlesPackagesOverWrite(string url, string rootPath, string extractPath, int qtd){ |
165 | string ext = @".zip"; | 192 | string ext = @".zip"; |
Program.cs
@@ -36,7 +36,9 @@ namespace AtualizadorVLibras | @@ -36,7 +36,9 @@ namespace AtualizadorVLibras | ||
36 | static void Main() | 36 | static void Main() |
37 | { | 37 | { |
38 | //ENDEREÇO DE ONDE SERÃO BAIXADOS OS PACOTES (.ZIP) DE SINAIS (1.ZIP, 2.ZIP E ETC...) | 38 | //ENDEREÇO DE ONDE SERÃO BAIXADOS OS PACOTES (.ZIP) DE SINAIS (1.ZIP, 2.ZIP E ETC...) |
39 | - string url = @"http://atualizacao.vlibras.lavid.ufpb.br/windows/"; | 39 | + //string url = @"http://atualizacao.vlibras.lavid.ufpb.br/windows/"; |
40 | + //string url = @"http://127.0.0.1:8000/"; | ||
41 | + string url = @"http://192.168.25.121:8089/"; | ||
40 | //string url = @"http://179.185.184.75:8080/"; | 42 | //string url = @"http://179.185.184.75:8080/"; |
41 | 43 | ||
42 | string dirAtual = Directory.GetCurrentDirectory(); | 44 | string dirAtual = Directory.GetCurrentDirectory(); |
@@ -119,7 +121,7 @@ namespace AtualizadorVLibras | @@ -119,7 +121,7 @@ namespace AtualizadorVLibras | ||
119 | 121 | ||
120 | //VERIFICAÇÃO E INSTALAÇÃO DO PYTHON | 122 | //VERIFICAÇÃO E INSTALAÇÃO DO PYTHON |
121 | //REGISTROS DO PYTHON | 123 | //REGISTROS DO PYTHON |
122 | - try{ | 124 | + /*try{ |
123 | RegistryKey[] regPython = new RegistryKey[4]; | 125 | RegistryKey[] regPython = new RegistryKey[4]; |
124 | regPython[0] = lm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9DA28CE5-0AA5-429E-86D8-686ED898C665}"); | 126 | regPython[0] = lm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9DA28CE5-0AA5-429E-86D8-686ED898C665}"); |
125 | regPython[1] = lm32.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9DA28CE5-0AA5-429E-86D8-686ED898C665}"); | 127 | regPython[1] = lm32.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9DA28CE5-0AA5-429E-86D8-686ED898C665}"); |
@@ -137,7 +139,7 @@ namespace AtualizadorVLibras | @@ -137,7 +139,7 @@ namespace AtualizadorVLibras | ||
137 | }catch(Exception e){ | 139 | }catch(Exception e){ |
138 | Console.WriteLine("Erro: {0}\nAperte alguma tecla para continuar.", e); | 140 | Console.WriteLine("Erro: {0}\nAperte alguma tecla para continuar.", e); |
139 | Console.ReadKey(); | 141 | Console.ReadKey(); |
140 | - } | 142 | + }*/ |
141 | 143 | ||
142 | 144 | ||
143 | /* | 145 | /* |
@@ -188,7 +190,7 @@ namespace AtualizadorVLibras | @@ -188,7 +190,7 @@ namespace AtualizadorVLibras | ||
188 | 190 | ||
189 | //INSTALAÇÃO DOS MÓDULOS DO PYTHON | 191 | //INSTALAÇÃO DOS MÓDULOS DO PYTHON |
190 | //Tem que ser depois da configuração das variáveis de ambiente | 192 | //Tem que ser depois da configuração das variáveis de ambiente |
191 | - Console.WriteLine("Instalando os módulos de python."); | 193 | + /*Console.WriteLine("Instalando os módulos de python."); |
192 | try{ | 194 | try{ |
193 | if(instalouPython){ | 195 | if(instalouPython){ |
194 | //instalação forçada de módulos | 196 | //instalação forçada de módulos |
@@ -197,14 +199,34 @@ namespace AtualizadorVLibras | @@ -197,14 +199,34 @@ namespace AtualizadorVLibras | ||
197 | Requirements.InstallWheels(false); | 199 | Requirements.InstallWheels(false); |
198 | } | 200 | } |
199 | }catch(Exception e){ | 201 | }catch(Exception e){ |
200 | - Console.WriteLine("Erro na instalação de módulos do python {0}\nAperte alguma tecla para continuar.", e); | 202 | + Console.WriteLine("Erro na instalação de módulos do python {0}.\nAperte alguma tecla para continuar.", e); |
203 | + Console.ReadKey(); | ||
204 | + }*/ | ||
205 | + | ||
206 | + string rootPath = @"..\"; | ||
207 | + string extractPath = @"..\Python\"; | ||
208 | + //PYTHON PORTÁTIL | ||
209 | + //Download | ||
210 | + Console.WriteLine("Baixando cópia portátil do python."); | ||
211 | + try{ | ||
212 | + BundlesManager.DownloadFileIfNewer(url, rootPath, "python.zip"); | ||
213 | + }catch{ | ||
214 | + Console.WriteLine("Erro no download do python. Aperte alguma tecla para continuar."); | ||
215 | + Console.ReadKey(); | ||
216 | + } | ||
217 | + //Extração | ||
218 | + Console.WriteLine("Extraindo cópia portátil do python."); | ||
219 | + try{ | ||
220 | + BundlesManager.ExtractZip(url, rootPath, extractPath, "python.zip"); | ||
221 | + }catch{ | ||
222 | + Console.WriteLine("Erro no extração do python. Aperte alguma tecla para continuar."); | ||
201 | Console.ReadKey(); | 223 | Console.ReadKey(); |
202 | } | 224 | } |
203 | 225 | ||
204 | //CRIAÇÃO DO ATALHO DO VLIBRAS | 226 | //CRIAÇÃO DO ATALHO DO VLIBRAS |
205 | Console.WriteLine("Criação do atalho do vlibras."); | 227 | Console.WriteLine("Criação do atalho do vlibras."); |
206 | try{ | 228 | try{ |
207 | - Requirements.criaAtalho(); | 229 | + Requirements.criaAtalho(@"..\Python\python.exe"); |
208 | }catch(Exception e){ | 230 | }catch(Exception e){ |
209 | Console.WriteLine("Erro na instalação de módulos do python {0}\nAperte alguma tecla para continuar.", e); | 231 | Console.WriteLine("Erro na instalação de módulos do python {0}\nAperte alguma tecla para continuar.", e); |
210 | Console.ReadKey(); | 232 | Console.ReadKey(); |
@@ -213,8 +235,7 @@ namespace AtualizadorVLibras | @@ -213,8 +235,7 @@ namespace AtualizadorVLibras | ||
213 | 235 | ||
214 | //DOWNLOAD DOS SINAIS | 236 | //DOWNLOAD DOS SINAIS |
215 | //BAIXA OS ZIPS DOS SINAIS (1.ZIP, 2.ZIP E ETC...) | 237 | //BAIXA OS ZIPS DOS SINAIS (1.ZIP, 2.ZIP E ETC...) |
216 | - string rootPath = @"..\"; | ||
217 | - string extractPath = @"..\Bundles\"; | 238 | + extractPath = @"..\Bundles\"; |
218 | int qtdDeBundles = 0; | 239 | int qtdDeBundles = 0; |
219 | Console.WriteLine("Baixando pacote de sinais."); | 240 | Console.WriteLine("Baixando pacote de sinais."); |
220 | try{ | 241 | try{ |
@@ -224,13 +245,13 @@ namespace AtualizadorVLibras | @@ -224,13 +245,13 @@ namespace AtualizadorVLibras | ||
224 | Console.ReadKey(); | 245 | Console.ReadKey(); |
225 | } | 246 | } |
226 | 247 | ||
227 | - | ||
228 | //EXTRAÇÃO: | 248 | //EXTRAÇÃO: |
229 | //EXTRAI APENAS SE NÃO TIVER O ARQUIVO HOMÔNIMO SEM EXTENSÃO NA PASTA SINAIS | 249 | //EXTRAI APENAS SE NÃO TIVER O ARQUIVO HOMÔNIMO SEM EXTENSÃO NA PASTA SINAIS |
230 | //SE O CAMINHO DE EXTRAÇÃO NÃO EXISTE, ELE SERÁ CRIADO | 250 | //SE O CAMINHO DE EXTRAÇÃO NÃO EXISTE, ELE SERÁ CRIADO |
231 | Console.WriteLine("Extraindo pacote de sinais."); | 251 | Console.WriteLine("Extraindo pacote de sinais."); |
232 | //try{ | 252 | //try{ |
233 | BundlesManager.ExtractBundlesPackagesOverWrite(url, rootPath, extractPath, qtdDeBundles); | 253 | BundlesManager.ExtractBundlesPackagesOverWrite(url, rootPath, extractPath, qtdDeBundles); |
254 | + BundlesManager.DownloadListaSinais(url); | ||
234 | /*}catch(Exception e){ | 255 | /*}catch(Exception e){ |
235 | Console.WriteLine("Erro na extração: {0}", e); | 256 | Console.WriteLine("Erro na extração: {0}", e); |
236 | Console.ReadKey(); | 257 | Console.ReadKey(); |
Requirements.cs
@@ -46,11 +46,12 @@ namespace AtualizadorVLibras | @@ -46,11 +46,12 @@ namespace AtualizadorVLibras | ||
46 | } | 46 | } |
47 | 47 | ||
48 | //CRIA ATALHO | 48 | //CRIA ATALHO |
49 | - public static void criaAtalho(){ | 49 | + public static void criaAtalho(string pathPython2){ |
50 | //string driveAtual = @"%HOMEPATH%\..\.."; | 50 | //string driveAtual = @"%HOMEPATH%\..\.."; |
51 | //string pathPython2 = driveAtual+@"Python27\python.exe"; | 51 | //string pathPython2 = driveAtual+@"Python27\python.exe"; |
52 | //string pathPython2 = Environment.GetEnvironmentVariable("PYTHONPATH", EnvironmentVariableTarget.Machine); | 52 | //string pathPython2 = Environment.GetEnvironmentVariable("PYTHONPATH", EnvironmentVariableTarget.Machine); |
53 | - string pathPython2 = GetRegistroPythonPath(); | 53 | + |
54 | + //string pathPython2 = GetRegistroPythonPath(); | ||
54 | int idx = pathPython2.IndexOf(@";"); | 55 | int idx = pathPython2.IndexOf(@";"); |
55 | //pathPython2 = pathPython2.Remove(idx, pathPython2.Length - idx); | 56 | //pathPython2 = pathPython2.Remove(idx, pathPython2.Length - idx); |
56 | //pathPython2 = "\""+pathPython2 + "\\python.exe\""; | 57 | //pathPython2 = "\""+pathPython2 + "\\python.exe\""; |
@@ -82,6 +83,7 @@ namespace AtualizadorVLibras | @@ -82,6 +83,7 @@ namespace AtualizadorVLibras | ||
82 | //Console.ReadKey(); | 83 | //Console.ReadKey(); |
83 | } | 84 | } |
84 | 85 | ||
86 | + //NÃO VAI SER MAIS UTILIZADO DEVIDO AO PYTHON PORTÁTIL | ||
85 | public static string GetRegistroPythonPath(){ | 87 | public static string GetRegistroPythonPath(){ |
86 | var lm64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); | 88 | var lm64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64); |
87 | var lm32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); | 89 | var lm32 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32); |
@@ -125,6 +127,7 @@ namespace AtualizadorVLibras | @@ -125,6 +127,7 @@ namespace AtualizadorVLibras | ||
125 | } | 127 | } |
126 | } | 128 | } |
127 | 129 | ||
130 | + //NÃO VAI SER MAIS UTILIZADO DEVIDO AO PYTHON PORTÁTIL | ||
128 | //INSTALA, SE NECESSÁRIO, OS MÓDULOS DO PYTHON | 131 | //INSTALA, SE NECESSÁRIO, OS MÓDULOS DO PYTHON |
129 | public static void InstallWheels(bool force){ | 132 | public static void InstallWheels(bool force){ |
130 | /*var cr64 = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64); | 133 | /*var cr64 = RegistryKey.OpenBaseKey(RegistryHive.ClassesRoot, RegistryView.Registry64); |
@@ -324,6 +327,7 @@ namespace AtualizadorVLibras | @@ -324,6 +327,7 @@ namespace AtualizadorVLibras | ||
324 | insProc.Start(); | 327 | insProc.Start(); |
325 | insProc.WaitForExit(); | 328 | insProc.WaitForExit(); |
326 | } | 329 | } |
330 | + | ||
327 | //qn - instalação sem interface, passive instalação passiva | 331 | //qn - instalação sem interface, passive instalação passiva |
328 | public static void InstallAndWait(string pathInstaller64, string pathInstaller86, string args){ | 332 | public static void InstallAndWait(string pathInstaller64, string pathInstaller86, string args){ |
329 | string pathInstaller; | 333 | string pathInstaller; |
@@ -0,0 +1,10 @@ | @@ -0,0 +1,10 @@ | ||
1 | +enviar: | ||
2 | + VLIBRAS.zip | ||
3 | + requisitos.zip | ||
4 | +servidor: | ||
5 | + #.zip (bundles) | ||
6 | + python.zip (portátil) | ||
7 | + sinais.txt | ||
8 | +últimas mudanças: | ||
9 | + Clipboarb\clipboard.py passou para Python\clipboard.py | ||
10 | + sinais.txt agora se encontra em Bundles\ | ||
0 | \ No newline at end of file | 11 | \ No newline at end of file |