Commit e3ccbbc784970ec693b007de97a6a8e3f5bfbda5

Authored by ezequiel
1 parent 6d9c0535
Exists in master

Com a versão do update funcionando

@@ -23,10 +23,10 @@ OUT = testLibras @@ -23,10 +23,10 @@ OUT = testLibras
23 23
24 24
25 # Arquivos de implementação 25 # Arquivos de implementação
26 -FILES = src\pyTradutor.cpp src\pyClip.cpp update\src\checkVersion.cpp 26 +FILES = src\pyTradutor.cpp src\pyClip.cpp update\src\pyVlibrasUpdate.cpp
27 27
28 #Headers 28 #Headers
29 -INCLUDES = include\pyTradutor.h include\pyClip.h update\include\checkVersion.h 29 +INCLUDES = include\pyTradutor.h include\pyClip.h update\include\pyVlibrasUpdate.h
30 30
31 CLEAN_OBJ = del -q *.obj 31 CLEAN_OBJ = del -q *.obj
32 32
@@ -34,7 +34,7 @@ HOME = %homepath% @@ -34,7 +34,7 @@ HOME = %homepath%
34 34
35 #Gera executável testLibras 35 #Gera executável testLibras
36 all: $(FILES) $(INCLUDES) src\testLibras.cpp 36 all: $(FILES) $(INCLUDES) src\testLibras.cpp
37 - $(CC) -Fe$(OUT) -clr src\testLibras.cpp $(FILES) $(CFLAGS) $(LFLAGS) 37 + $(CC) -Fe$(OUT) -EHsc src\testLibras.cpp $(FILES) $(CFLAGS) $(LFLAGS)
38 $(CLEAN_OBJ) 38 $(CLEAN_OBJ)
39 39
40 #Gera dll na arquitetura x86 40 #Gera dll na arquitetura x86
include/util.h
@@ -1,46 +0,0 @@ @@ -1,46 +0,0 @@
1 -#using <System.dll>  
2 -#using <System.Xml.dll>  
3 -  
4 -#include <iostream>  
5 -#include <string>  
6 -#include <vector>  
7 -  
8 -  
9 -using namespace std;  
10 -using namespace System;  
11 -  
12 -using namespace System::Net;  
13 -using namespace System::IO;  
14 -using namespace System::Xml;  
15 -  
16 -  
17 -  
18 -  
19 -  
20 -  
21 -  
22 -  
23 - public ref class Util {  
24 -  
25 - private:  
26 - static string clrStringTostring(String^ strIn);  
27 - static vector <string> localVersion(void);  
28 -  
29 - public:  
30 - static bool down;  
31 - static WebClient^ myWebClient;  
32 -  
33 - Util();  
34 -  
35 - bool downloading;  
36 -  
37 - static bool checkNet(void);  
38 - static vector <string> checkVersion(bool atualize);  
39 -  
40 -  
41 - };  
42 -  
43 -  
44 -  
45 -  
46 -  
install/inno setup/user_instalBK.bat 0 → 100644
@@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
  1 +::############################## Instalador VLibras ############################
  2 +::# #
  3 +::# Bruno Santos #
  4 +::# brunosantos@lavid.ufpb.br #
  5 +::# #
  6 +::##############################################################################
  7 +
  8 +::Define Título da janela do prompt
  9 +TITLE Instalador VLibras-Core Windows
  10 +
  11 +::Limpa a tela
  12 +CLS
  13 +
  14 +::Desabilita mensagens
  15 +@ECHO off
  16 +
  17 +ECHO ############### Instalando VLibras ###############
  18 +
  19 +::################# Variáveis de Ambiente #################
  20 +ECHO Exportando Variaveis de Ambiente:
  21 +
  22 +ECHO AELIUS_DATA
  23 +SETX AELIUS_DATA %HOMEDRIVE%\vlibras-libs\aelius_data /M
  24 +
  25 +ECHO NLTK_DATA
  26 +SETX NLTK_DATA %HOMEDRIVE%\vlibras-libs\nltk_data /M
  27 +
  28 +ECHO HUNPOS_TAGGER
  29 +SETX HUNPOS_TAGGER %HOMEDRIVE%\vlibras-libs\bin\hunpos-tag.exe /M
  30 +
  31 +ECHO PYTHONPATH
  32 +SETX PYTHONPATH %HOMEDRIVE%\Python27;%HOMEDRIVE%\Python27\Scripts;%HOMEDRIVE%\Python27\Lib\site-packages;%HOMEDRIVE%\vlibras-libs;%HOMEDRIVE%\vlibras-libs\vlibras-translate\src;%HOMEDRIVE%\vlibras-libs\Clipboard /M
  33 +
  34 +@echo off
  35 +set path_value=%PATH%
  36 +
  37 +If NOT "%path_value%"=="%path_value:vlibras=%" (
  38 + echo ok
  39 +) else (
  40 + SETX "PATH" "%PATH%";%HOMEDRIVE%\vlibras-libs\bin;%HOMEDRIVE%\Python27;%HOMEDRIVE%\Python27\Scripts;%HOMEDRIVE%\Python27\Lib\site-packages /M
  41 +)
  42 +
  43 +::################# Instalação do Python #################
  44 +msiexec /i python-2.7.9.msi /passive
  45 +ECHO OK
  46 +
  47 +::################# Dependências #################
  48 +c:\Python27\python.exe pip-6.0.8-py2.py3-none-any.whl/pip install pip-6.0.8-py2.py3-none-any.whl
  49 +ECHO OK
  50 +
  51 +c:\Python27\Scripts\pip install PyYAML-3.11-cp27-none-win32.whl
  52 +ECHO OK
  53 +
  54 +c:\Python27\Scripts\pip install numpy-1.9.2+mkl-cp27-none-win32.whl
  55 +ECHO OK
  56 +
  57 +c:\Python27\Scripts\pip install six-1.9.0-py2.py3-none-any.whl
  58 +ECHO OK
  59 +
  60 +c:\Python27\Scripts\pip install pyparsing-2.0.3-py2-none-any.whl
  61 +ECHO OK
  62 +
  63 +c:\Python27\Scripts\pip install pytz-2014.10-py2.py3-none-any.whl
  64 +ECHO OK
  65 +
  66 +c:\Python27\Scripts\pip install python_dateutil-2.4.0-py2.py3-none-any.whl
  67 +ECHO OK
  68 +
  69 +c:\Python27\Scripts\pip install matplotlib-1.4.3-cp27-none-win32.whl
  70 +ECHO OK
  71 +
  72 +c:\Python27\Scripts\pip install nltk-3.0.2-py2.py3-none-any.whl
  73 +ECHO OK
  74 +
  75 +c:\Python27\Scripts\pip install future-0.14.3-py2-none-any.whl
  76 +ECHO OK
  77 +
  78 +::################# HUNPOS.PY & DATA.PY #############################
  79 +COPY %HOMEDRIVE%\vlibras-libs\nltk_data\hunpos.py %homedrive%\Python27\Lib\site-packages\nltk\tag\ /y
  80 +COPY %HOMEDRIVE%\vlibras-libs\nltk_data\data.py %homedrive%\Python27\Lib\site-packages\nltk /y
  81 +COPY %HOMEDRIVE%\vlibras-libs\nltk_data\nltk_tgrep.py %homedrive%\Python27\Lib\site-packages /y
  82 +
  83 +ECHO VLibras Tradutor instalado com sucesso!
install/inno setup/user_install.bat
@@ -1,83 +0,0 @@ @@ -1,83 +0,0 @@
1 -::############################## Instalador VLibras ############################  
2 -::# #  
3 -::# Bruno Santos #  
4 -::# brunosantos@lavid.ufpb.br #  
5 -::# #  
6 -::##############################################################################  
7 -  
8 -::Define Título da janela do prompt  
9 -TITLE Instalador VLibras-Core Windows  
10 -  
11 -::Limpa a tela  
12 -CLS  
13 -  
14 -::Desabilita mensagens  
15 -@ECHO off  
16 -  
17 -ECHO ############### Instalando VLibras ###############  
18 -  
19 -::################# Variáveis de Ambiente #################  
20 -ECHO Exportando Variaveis de Ambiente:  
21 -  
22 -ECHO AELIUS_DATA  
23 -SETX AELIUS_DATA %HOMEDRIVE%\vlibras-libs\aelius_data /M  
24 -  
25 -ECHO NLTK_DATA  
26 -SETX NLTK_DATA %HOMEDRIVE%\vlibras-libs\nltk_data /M  
27 -  
28 -ECHO HUNPOS_TAGGER  
29 -SETX HUNPOS_TAGGER %HOMEDRIVE%\vlibras-libs\bin\hunpos-tag.exe /M  
30 -  
31 -ECHO PYTHONPATH  
32 -SETX PYTHONPATH %HOMEDRIVE%\Python27;%HOMEDRIVE%\Python27\Scripts;%HOMEDRIVE%\Python27\Lib\site-packages;%HOMEDRIVE%\vlibras-libs;%HOMEDRIVE%\vlibras-libs\vlibras-translate\src;%HOMEDRIVE%\vlibras-libs\Clipboard /M  
33 -  
34 -@echo off  
35 -set path_value=%PATH%  
36 -  
37 -If NOT "%path_value%"=="%path_value:vlibras=%" (  
38 - echo ok  
39 -) else (  
40 - SETX "PATH" "%PATH%";%HOMEDRIVE%\vlibras-libs\bin;%HOMEDRIVE%\Python27;%HOMEDRIVE%\Python27\Scripts;%HOMEDRIVE%\Python27\Lib\site-packages /M  
41 -)  
42 -  
43 -::################# Instalação do Python #################  
44 -msiexec /i python-2.7.9.msi /passive  
45 -ECHO OK  
46 -  
47 -::################# Dependências #################  
48 -c:\Python27\python.exe pip-6.0.8-py2.py3-none-any.whl/pip install pip-6.0.8-py2.py3-none-any.whl  
49 -ECHO OK  
50 -  
51 -c:\Python27\Scripts\pip install PyYAML-3.11-cp27-none-win32.whl  
52 -ECHO OK  
53 -  
54 -c:\Python27\Scripts\pip install numpy-1.9.2+mkl-cp27-none-win32.whl  
55 -ECHO OK  
56 -  
57 -c:\Python27\Scripts\pip install six-1.9.0-py2.py3-none-any.whl  
58 -ECHO OK  
59 -  
60 -c:\Python27\Scripts\pip install pyparsing-2.0.3-py2-none-any.whl  
61 -ECHO OK  
62 -  
63 -c:\Python27\Scripts\pip install pytz-2014.10-py2.py3-none-any.whl  
64 -ECHO OK  
65 -  
66 -c:\Python27\Scripts\pip install python_dateutil-2.4.0-py2.py3-none-any.whl  
67 -ECHO OK  
68 -  
69 -c:\Python27\Scripts\pip install matplotlib-1.4.3-cp27-none-win32.whl  
70 -ECHO OK  
71 -  
72 -c:\Python27\Scripts\pip install nltk-3.0.2-py2.py3-none-any.whl  
73 -ECHO OK  
74 -  
75 -c:\Python27\Scripts\pip install future-0.14.3-py2-none-any.whl  
76 -ECHO OK  
77 -  
78 -::################# HUNPOS.PY & DATA.PY #############################  
79 -COPY %HOMEDRIVE%\vlibras-libs\nltk_data\hunpos.py %homedrive%\Python27\Lib\site-packages\nltk\tag\ /y  
80 -COPY %HOMEDRIVE%\vlibras-libs\nltk_data\data.py %homedrive%\Python27\Lib\site-packages\nltk /y  
81 -COPY %HOMEDRIVE%\vlibras-libs\nltk_data\nltk_tgrep.py %homedrive%\Python27\Lib\site-packages /y  
82 -  
83 -ECHO VLibras Tradutor instalado com sucesso!  
install/inno setup/user_install.iss
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 ;##################################################################### 6 ;#####################################################################
7 7
8 #define MyAppName "VLibras" 8 #define MyAppName "VLibras"
9 -#define MyAppVersion "beta" 9 +#define MyAppVersion "3.0.0"
10 #define MyAppPublisher "LAViD" 10 #define MyAppPublisher "LAViD"
11 #define MyAppURL "http://vlibrasplayer.lavid.ufpb.br" 11 #define MyAppURL "http://vlibrasplayer.lavid.ufpb.br"
12 #define MyAppExeName "VlibrasPlayer.exe" 12 #define MyAppExeName "VlibrasPlayer.exe"
@@ -24,9 +24,9 @@ AppUpdatesURL={#MyAppURL} @@ -24,9 +24,9 @@ AppUpdatesURL={#MyAppURL}
24 DefaultDirName={sd}\vlibras-libs 24 DefaultDirName={sd}\vlibras-libs
25 DisableDirPage=yes 25 DisableDirPage=yes
26 DefaultGroupName={#MyAppName} 26 DefaultGroupName={#MyAppName}
27 -OutputBaseFilename=vlibras_desktop_win_2.0.0 27 +OutputBaseFilename=vlibras_instalador_3.0.0
28 DisableProgramGroupPage=yes 28 DisableProgramGroupPage=yes
29 -OutputDir="C:\Users\ezequiel\Desktop\vlibras_installer_2.0.0" 29 +OutputDir="C:\Users\ezequiel\Desktop\vlibras_installer_3.0.0"
30 SetupIconFile="C:\Users\ezequiel\Desktop\user_install\icons\icon_vlibras.ico" 30 SetupIconFile="C:\Users\ezequiel\Desktop\user_install\icons\icon_vlibras.ico"
31 Compression=lzma 31 Compression=lzma
32 SolidCompression=yes 32 SolidCompression=yes
@@ -43,8 +43,8 @@ Name: &quot;desktopicon&quot;; Description: &quot;{cm:CreateDesktopIcon}&quot;; GroupDescription: &quot;{ @@ -43,8 +43,8 @@ Name: &quot;desktopicon&quot;; Description: &quot;{cm:CreateDesktopIcon}&quot;; GroupDescription: &quot;{
43 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1 43 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; OnlyBelowVersion: 0,6.1
44 44
45 [Files] 45 [Files]
46 -;Source: "C:\Users\ezequiel\Desktop\vc_redist.x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall;  
47 -;Source: "C:\Users\ezequiel\Desktop\dotNetFx40_Client_x86.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall; 46 +
  47 +;Source: "C:\Users\ezequiel\Desktop\dotnetfx45_full_x86_x64.exe"; DestDir: "{tmp}"; Flags: ignoreversion deleteafterinstall;
48 Source: "C:\Users\ezequiel\Desktop\user_install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs 48 Source: "C:\Users\ezequiel\Desktop\user_install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
49 49
50 50
@@ -58,13 +58,11 @@ Name: &quot;{commondesktop}\{#MyAppName}&quot;; Filename: &quot;{app}\Player\{#MyAppExeName}&quot;; @@ -58,13 +58,11 @@ Name: &quot;{commondesktop}\{#MyAppName}&quot;; Filename: &quot;{app}\Player\{#MyAppExeName}&quot;;
58 Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\Player\{#MyAppExeName}"; Tasks: quicklaunchicon; IconFilename: "{app}\icons\icon_vlibras.ico" 58 Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\Player\{#MyAppExeName}"; Tasks: quicklaunchicon; IconFilename: "{app}\icons\icon_vlibras.ico"
59 59
60 [Run] 60 [Run]
61 -;Filename: {tmp}\dotNetFx40_Client_x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando .NET Framework 4.5  
62 -;Filename: {tmp}\vc_redist.x86.exe; Flags: runhidden; Parameters: /q /norestart; StatusMsg: Instalando Visual C++ ...  
63 Filename: {sd}\vlibras-libs\required\user_install.bat; Flags: runhidden; StatusMsg: Finalizando Instalação... 61 Filename: {sd}\vlibras-libs\required\user_install.bat; Flags: runhidden; StatusMsg: Finalizando Instalação...
64 -Filename: {sd}\vlibras-libs\update\vlibras-up.exe; StatusMsg: Instalando atualização...  
65 - 62 +Filename: {sd}\vlibras-libs\update\vlibrasPlayerDictUp.exe; StatusMsg: Instalando atualização...
66 63
67 64
  65 +
68 66
69 67
70 68
plugin/corePlugin.cpp
@@ -5,27 +5,24 @@ @@ -5,27 +5,24 @@
5 #define EXPORT_API __declspec(dllimport) 5 #define EXPORT_API __declspec(dllimport)
6 #endif 6 #endif
7 7
8 -#include <process.h>  
9 #include "corePlugin.h" 8 #include "corePlugin.h"
  9 +#include <time.h>
10 10
11 - 11 +using namespace std;
12 12
13 13
14 extern "C" 14 extern "C"
15 { 15 {
16 -  
17 16
18 - 17 +
19 EXPORT_API int coreInitialize() 18 EXPORT_API int coreInitialize()
20 { 19 {
21 //Objeto usado para traduzir 20 //Objeto usado para traduzir
22 tradutor = new PyTradutor(); 21 tradutor = new PyTradutor();
23 - checkversion = new CheckVersion();  
24 - check =0;  
25 - 22 + update = new PyVlibrasUpdate();
26 //Objeto usado para copiar texto da área de transferência 23 //Objeto usado para copiar texto da área de transferência
27 clipboard.bdragOn(); 24 clipboard.bdragOn();
28 - 25 +
29 return 1; 26 return 1;
30 } 27 }
31 28
@@ -41,86 +38,55 @@ @@ -41,86 +38,55 @@
41 38
42 EXPORT_API int coreUpdateInstall_player() 39 EXPORT_API int coreUpdateInstall_player()
43 { 40 {
44 -  
45 - char szPath[] = "C:\\vlibras-libs\\update\\vlibras-up.exe";  
46 - string params = "C:\\vlibras-libs\\update\\vlibras-up.exe ";  
47 - params.append(checkversion->playerUrl);  
48 - params.append(" installer ");  
49 - params.append(checkversion->playerVersionFull);  
50 - PROCESS_INFORMATION pif; //Gives info on the thread and..  
51 - //..process for the new process  
52 - STARTUPINFO si; //Defines how to start the program  
53 -  
54 - ZeroMemory(&si,sizeof(si)); //Zero the STARTUPINFO struct  
55 - si.cb = sizeof(si); //Must set size of structure  
56 -  
57 - BOOL bRet = CreateProcess(  
58 - szPath, //Path to executable file  
59 - (LPSTR)params.c_str(), //Command string - not needed here  
60 - NULL, //Process handle not inherited  
61 - NULL, //Thread handle not inherited  
62 - FALSE, //No inheritance of handles  
63 - 0, //No special flags  
64 - NULL, //Same environment block as this prog  
65 - NULL, //Current directory - no separate path  
66 - &si, //Pointer to STARTUPINFO  
67 - &pif); //Pointer to PROCESS_INFORMATION 41 + update->install("c:\\vlibras-libs\\update\\bin\\vlibrasPlayerDictUp.exe","NULL");
68 42
69 -  
70 -  
71 - CloseHandle(pif.hProcess); //Close handle to process  
72 - CloseHandle(pif.hThread);  
73 -  
74 return 1; 43 return 1;
75 } 44 }
76 45
77 46
78 EXPORT_API int coreUpdateInstall_dict() 47 EXPORT_API int coreUpdateInstall_dict()
79 { 48 {
80 - char szPath[] = "C:\\vlibras-libs\\update\\vlibras-up.exe";  
81 - string params = "C:\\vlibras-libs\\update\\vlibras-up.exe ";  
82 - params.append(checkversion->dictUrl.c_str());  
83 - params.append(" dictionary ");  
84 - params.append(checkversion->dictVersionFull);  
85 - PROCESS_INFORMATION pif; //Gives info on the thread and..  
86 - //..process for the new process  
87 - STARTUPINFO si; //Defines how to start the program  
88 -  
89 - ZeroMemory(&si,sizeof(si)); //Zero the STARTUPINFO struct  
90 - si.cb = sizeof(si); //Must set size of structure  
91 -  
92 - BOOL bRet = CreateProcess(  
93 - szPath, //Path to executable file  
94 - (LPSTR)params.c_str(), //Command string - not needed here  
95 - NULL, //Process handle not inherited  
96 - NULL, //Thread handle not inherited  
97 - FALSE, //No inheritance of handles  
98 - 0, //No special flags  
99 - NULL, //Same environment block as this prog  
100 - NULL, //Current directory - no separate path  
101 - &si, //Pointer to STARTUPINFO  
102 - &pif); //Pointer to PROCESS_INFORMATION  
103 -  
104 - CloseHandle(pif.hProcess); //Close handle to process  
105 - CloseHandle(pif.hThread); 49 + update->install("c:\\vlibras-libs\\update\\bin\\vlibrasPlayerDictUp.exe","NULL");
106 50
107 return 1; 51 return 1;
108 } 52 }
109 53
110 54
111 -  
112 EXPORT_API int coreUpdateCheck() 55 EXPORT_API int coreUpdateCheck()
113 { 56 {
114 -  
115 - checkversion->checkRefresh();  
116 -  
117 - return checkversion->vstatus; 57 +
  58 + string line_in_str;
  59 + ifstream file_version;
  60 + int return_int = -1;
  61 + try
  62 + {
  63 + update->checkExe("C:\\Python27\\python.exe c:\\vlibras-libs\\update\\py\\VlibrasCheckVersion.pyc","check");
  64 +
  65 + clock_t time_end;
  66 + time_end = clock() + 3000 * CLOCKS_PER_SEC/1000;
  67 + while (clock() < time_end);
  68 +
  69 +
  70 + file_version.open("c:\\vlibras-libs\\update\\version\\version.txt");
  71 +
  72 + getline(file_version, line_in_str);
  73 + file_version.close();
  74 + return_int = atoi(line_in_str.c_str());
  75 +
  76 + return return_int;
  77 + }
  78 + catch (exception e)
  79 + {
  80 + return -1;
  81 + }
  82 + return return_int;
118 } 83 }
119 84
120 EXPORT_API int coreFinalize() 85 EXPORT_API int coreFinalize()
121 { 86 {
122 clipboard.bdragOff(); 87 clipboard.bdragOff();
123 delete tradutor; 88 delete tradutor;
  89 + delete update;
124 return 1; 90 return 1;
125 } 91 }
126 92
plugin/corePlugin.h
@@ -21,8 +21,9 @@ VLibras-Core @@ -21,8 +21,9 @@ VLibras-Core
21 21
22 #include "pyClip.h" 22 #include "pyClip.h"
23 #include "pyTradutor.h" 23 #include "pyTradutor.h"
24 -#include "checkVersion.h"  
25 -#include <string.h> 24 +#include "pyVlibrasUpdate.h"
  25 +#include <fstream>
  26 +#include <string>
26 27
27 28
28 using namespace std; 29 using namespace std;
@@ -31,12 +32,13 @@ extern &quot;C&quot; @@ -31,12 +32,13 @@ extern &quot;C&quot;
31 { 32 {
32 //Usado para traduzir português para glosa 33 //Usado para traduzir português para glosa
33 PyTradutor *tradutor; 34 PyTradutor *tradutor;
34 - int check; 35 +
  36 +
35 //Usado para copiar texto da área de transferência 37 //Usado para copiar texto da área de transferência
36 PyClip clipboard; 38 PyClip clipboard;
37 39
38 //Usado para verificar se existe atualização 40 //Usado para verificar se existe atualização
39 - CheckVersion *checkversion; 41 + PyVlibrasUpdate *update;
40 42
41 //Inicializa Objetos 43 //Inicializa Objetos
42 EXPORT_API int coreInitize(void); 44 EXPORT_API int coreInitize(void);
plugin/testPlugin.cpp
@@ -13,7 +13,14 @@ metodo2 execute; @@ -13,7 +13,14 @@ metodo2 execute;
13 typedef int (WINAPI*metodo3)(); 13 typedef int (WINAPI*metodo3)();
14 metodo3 finalize; 14 metodo3 finalize;
15 typedef int (WINAPI*metodo4)(); 15 typedef int (WINAPI*metodo4)();
16 -metodo4 update; 16 +metodo4 coreUpdateCheck;
  17 +
  18 +typedef int (WINAPI*metodo5)();
  19 +metodo5 coreUpdateInstall_player;
  20 +
  21 +typedef int (WINAPI*metodo6)();
  22 +metodo6 coreUpdateInstall_dict;
  23 +
17 24
18 int main(int argc, char *argv[]) 25 int main(int argc, char *argv[])
19 { 26 {
@@ -29,26 +36,26 @@ int main(int argc, char *argv[]) @@ -29,26 +36,26 @@ int main(int argc, char *argv[])
29 initialize=(metodo1)GetProcAddress((HMODULE)hDLL, "coreInitialize"); 36 initialize=(metodo1)GetProcAddress((HMODULE)hDLL, "coreInitialize");
30 execute=(metodo2)GetProcAddress((HMODULE)hDLL, "coreExecute"); 37 execute=(metodo2)GetProcAddress((HMODULE)hDLL, "coreExecute");
31 finalize=(metodo3)GetProcAddress((HMODULE)hDLL, "coreFinalize"); 38 finalize=(metodo3)GetProcAddress((HMODULE)hDLL, "coreFinalize");
32 - update=(metodo4)GetProcAddress((HMODULE)hDLL, "coreUpdate"); 39 + coreUpdateCheck=(metodo4)GetProcAddress((HMODULE)hDLL, "coreUpdateCheck");
  40 + coreUpdateInstall_player=(metodo5)GetProcAddress((HMODULE)hDLL, "coreUpdateInstall_player");
  41 + coreUpdateInstall_dict=(metodo6)GetProcAddress((HMODULE)hDLL, "coreUpdateInstall_dict");
33 42
34 //Executa coreInitialize 43 //Executa coreInitialize
35 int init = initialize(); 44 int init = initialize();
36 cout <<"return initialize: " << init <<endl; 45 cout <<"return initialize: " << init <<endl;
37 46
38 - int in = update();  
39 - cout <<"return update: " << in <<endl; 47 + int a = coreUpdateCheck();
  48 + cout <<"return coreUpdateCheck: " << a <<endl;
  49 +
  50 + int b = coreUpdateInstall_player();
  51 + cout <<"return coreUpdateInstall_player: " << b <<endl;
  52 +
  53 + int c = coreUpdateInstall_dict();
  54 + cout <<"return coreUpdateInstall_dict: " << c <<endl;
  55 +
  56 +
40 57
41 - //in = update();  
42 - //cout <<"return update2: " << in <<endl;  
43 58
44 - //in=0;  
45 - //in = update();  
46 - //cout <<"return update3: " << in <<endl;  
47 -  
48 - //Executa coreExecute  
49 - //char* exec = execute();  
50 - //cout << "return execute: " << exec <<endl;  
51 -while(1);  
52 //Executa coreFinalize 59 //Executa coreFinalize
53 int final = finalize(); 60 int final = finalize();
54 cout << "return finalize: " << final <<endl; 61 cout << "return finalize: " << final <<endl;
src/pyClip.cpp
@@ -55,7 +55,7 @@ PyClip::~PyClip() @@ -55,7 +55,7 @@ PyClip::~PyClip()
55 char * PyClip::clip() 55 char * PyClip::clip()
56 { 56 {
57 // Call the callable object 'pFunc' with arguments given by the tuple 'pArgs' 57 // Call the callable object 'pFunc' with arguments given by the tuple 'pArgs'
58 - pResult = PyObject_CallObject(pFunc,pArgs); 58 + pResult = PyObject_CallObject(pFunc,NULL);
59 assert(pResult!=NULL); 59 assert(pResult!=NULL);
60 60
61 return PyString_AsString(pResult); 61 return PyString_AsString(pResult);
src/util.cpp
@@ -1,165 +0,0 @@ @@ -1,165 +0,0 @@
1 -#include <windows.h>  
2 -#include "util.h"  
3 -  
4 -  
5 -  
6 -Util::Util(){  
7 - //downloading = true;  
8 - //downloading = down;  
9 -}  
10 -  
11 -string Util::clrStringTostring(String^ strIn)  
12 -{  
13 -  
14 - char cStr[256];  
15 -  
16 -  
17 - sprintf(cStr, "%s", strIn);  
18 - string stlString(cStr);  
19 -  
20 - return stlString;  
21 -}  
22 -  
23 -  
24 -  
25 -bool Util::checkNet()  
26 -{  
27 -  
28 - try  
29 - {  
30 -  
31 - WebRequest^ request = WebRequest::Create( "http://vlibras.lavid.ufpb.br" );  
32 -  
33 - // If required by the server, set the credentials.  
34 - //request->Credentials = CredentialCache::DefaultCredentials;  
35 -  
36 - // Get the response.  
37 - HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());  
38 -  
39 - if (response->StatusDescription == "OK"){  
40 -  
41 - return true;  
42 - }  
43 - return false;  
44 - response->Close();  
45 - }  
46 - catch ( WebException^ e )  
47 - {  
48 - return false;  
49 - }  
50 -  
51 -}  
52 -  
53 -  
54 -vector<string> Util::checkVersion(bool atualize)  
55 -{  
56 - XmlDocument^ xmlDoc;  
57 - XmlNodeList^ files;  
58 - XmlDocument^ xmlDocLocal;  
59 - XmlNodeList^ filesLocal;  
60 - vector<string> updates;  
61 - vector<string> localversion = localVersion();  
62 - try  
63 - {  
64 - xmlDoc = (gcnew XmlDocument());  
65 - xmlDocLocal = (gcnew XmlDocument());  
66 -  
67 -  
68 - string url = "http://vlibras.lavid.ufpb.br/api/dicionario/"+localversion[3]+"?type=windows";  
69 - WebRequest^ request = WebRequest::Create( gcnew String(url.c_str()));  
70 - // If required by the server, set the credentials.  
71 - request->Credentials = CredentialCache::DefaultCredentials;  
72 - // Get the response.  
73 - HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());  
74 - if (!(response->StatusDescription == "OK"))  
75 - goto erro;  
76 - // Get the stream containing content returned by the server.  
77 - Stream^ dataStream = response->GetResponseStream();  
78 - // Open the stream using a StreamReader for easy access.  
79 - StreamReader^ reader = gcnew StreamReader( dataStream );  
80 - // Read the content.  
81 - String^ responseFromServer = reader->ReadToEnd();  
82 - xmlDoc->LoadXml(responseFromServer);  
83 - files = xmlDoc->GetElementsByTagName("version");  
84 -  
85 - long numitems = files->Count;  
86 -  
87 -  
88 -  
89 - //for (int i=0;i<numitems;i++)  
90 - if(numitems>0)  
91 - {  
92 - String^ playerVersion = files[0]["playerVersion"]->InnerText;  
93 - String^ dictionaryVersion = files[0]["dictionaryVersion"]->InnerText;  
94 -  
95 - if(String::Compare( playerVersion, gcnew String(localversion[1].c_str())))  
96 - {  
97 - updates.push_back("playerVersion");  
98 - updates.push_back(clrStringTostring(playerVersion));  
99 - updates.push_back(clrStringTostring(files[0]["playerUrl"]->InnerText));  
100 - }  
101 - if(String::Compare(dictionaryVersion,gcnew String(localversion[3].c_str())))  
102 - {  
103 - updates.push_back("dictionaryVersion");  
104 - updates.push_back(clrStringTostring(dictionaryVersion));  
105 - updates.push_back(clrStringTostring(files[0]["dictionaryUrl"]->InnerText));  
106 - }  
107 -  
108 - //if(atualize)  
109 - //saveNewXmlVersion(playerVersion,dictionaryVersion);  
110 -  
111 - }  
112 -  
113 - erro:  
114 - // Cleanup the streams and the response.  
115 - reader->Close();  
116 - dataStream->Close();  
117 - }catch(Exception^ e)  
118 - {  
119 - updates.push_back("faill");  
120 - return updates;  
121 - }  
122 -  
123 - return updates;  
124 -}  
125 -  
126 -  
127 -vector<string> Util::localVersion()  
128 -{  
129 - XmlDocument^ xmlDocLocal;  
130 - XmlNodeList^ filesLocal;  
131 - vector<string> updates;  
132 - try  
133 - {  
134 - xmlDocLocal = (gcnew XmlDocument());  
135 - //xml version local  
136 - StreamReader^ readerLocal = gcnew StreamReader("c:\\vlibras-libs\\update\\updateVersion.xml");  
137 -  
138 - String^ responseLocal = readerLocal->ReadToEnd();  
139 -  
140 - xmlDocLocal->LoadXml(responseLocal);  
141 -  
142 - filesLocal = xmlDocLocal->GetElementsByTagName("version");  
143 -  
144 - updates.push_back("playerVersion");  
145 - String^ playerVersion = filesLocal[0]["playerVersion"]->InnerText;  
146 - updates.push_back(clrStringTostring(playerVersion));  
147 - updates.push_back("dictionaryVersion");  
148 - String^ dictionaryVersion = filesLocal[0]["dictionaryVersion"]->InnerText;  
149 - updates.push_back(clrStringTostring(dictionaryVersion));  
150 -  
151 - // Cleanup the streams and the response.  
152 - readerLocal->Close();  
153 - }catch(Exception^ e)  
154 - {  
155 - return updates;  
156 - }  
157 -  
158 - return updates;  
159 -}  
160 -  
161 -  
162 -  
163 -  
164 -  
165 -  
166 \ No newline at end of file 0 \ No newline at end of file
update/Makefile
1 ############################## MAKEFILE VLIBRAS ############################ 1 ############################## MAKEFILE VLIBRAS ############################
2 # # 2 # #
3 -# Bruno Santos #  
4 -# brunosantos@lavid.ufpb.br #  
5 # Ezequiel Silva # 3 # Ezequiel Silva #
6 # ezequielsilva@lavid.ufpb.br # # 4 # ezequielsilva@lavid.ufpb.br # #
7 # # 5 # #
8 ############################################################################ 6 ############################################################################
9 7
10 -# Includes  
11 -CFLAGS = -I include  
12 -  
13 -# Link com as libs utilizadas  
14 -#LFLAGS = -link C:\Python27\libs\python27.lib  
15 8
16 # Compilador Nativo 9 # Compilador Nativo
17 CC = cl 10 CC = cl
18 11
19 -# Nome do arquivo de saída  
20 -OUT = vlibras-up  
21 -  
22 -# Arquivos de implementação  
23 -FILES = src\util.cpp src\janelaAtualizacao.cpp 12 +OUTDICT = vlibrasPlayerDictUp
24 13
25 -#Headers  
26 -INCLUDES = include\util.h include\janelaAtualizacao.h  
27 14
28 -CLEAN_OBJ = del -q *.obj 15 +CLEAN_OBJ = del -q *.obj
29 16
30 -HOME = %homepath%  
31 17
32 -#Gera executável testLibras  
33 -all: $(FILES) $(INCLUDES)  
34 - $(CC) -Fe$(OUT) -clr vlibrasUpdate.cpp $(FILES) $(CFLAGS) 18 +#Gera executável
  19 +all:
  20 + $(CC) -Fe$(OUTDICT) -EHsc vlibrasDictPlayerInstall.cpp
35 $(CLEAN_OBJ) 21 $(CLEAN_OBJ)
36 22
37 23
38 -  
39 -  
40 #Limpa arquivos objetos e executáveis criados 24 #Limpa arquivos objetos e executáveis criados
41 clean: 25 clean:
42 del -q *.exe *.obj 26 del -q *.exe *.obj
update/include/checkVersion.h
@@ -1,53 +0,0 @@ @@ -1,53 +0,0 @@
1 -//*****************************************************************  
2 -/*  
3 -VLibras: Verificação de atualização  
4 -  
5 -  
6 -Ezequiel Silva  
7 -ezequielsilva@lavid.ufpb.br  
8 -VLibras-Core  
9 -2015  
10 -*/  
11 -//*****************************************************************  
12 -  
13 -/**  
14 -* \file checkVersion.h  
15 -* \Ezequiel Silva  
16 -* \date Outubro 2015  
17 -*/  
18 -  
19 -  
20 -  
21 -#include <tchar.h>  
22 -#include <iostream>  
23 -#include <string>  
24 -#include <fstream>  
25 -#include <urlmon.h>  
26 -  
27 -#pragma comment(lib, "urlmon.lib")  
28 -using namespace std;  
29 -  
30 - class CheckVersion  
31 -{  
32 -  
33 -private:  
34 - void checkLocal();  
35 - void checkApi();  
36 - void reset();  
37 -public:  
38 - long playerVersion = -1;  
39 - long dictVersion = -1;  
40 - long localPlayerVersion = -1;  
41 - long localDictVersion = -1;  
42 - string playerVersionFull = "";  
43 - string dictVersionFull = "";  
44 - string playerUrl = "";  
45 - string dictUrl = "";  
46 - string dictCallVersion ="0.0.0_0.0.0";  
47 - int vstatus = -1;  
48 -  
49 - CheckVersion();  
50 - void checkRefresh();  
51 -  
52 -  
53 -};  
54 \ No newline at end of file 0 \ No newline at end of file
update/include/janelaAtualizacao.h
@@ -1,66 +0,0 @@ @@ -1,66 +0,0 @@
1 -//*****************************************************************  
2 -/*  
3 -VLibras: Atualização  
4 -  
5 -  
6 -Ezequiel Silva  
7 -ezequielsilva@lavid.ufpb.br  
8 -VLibras-Core  
9 -2015  
10 -*/  
11 -//*****************************************************************  
12 -  
13 -/**  
14 -* \file checkVersion.h  
15 -* \Ezequiel Silva  
16 -* \date Outubro 2015  
17 -*/  
18 -  
19 -// ############### NÃO USADO ###################  
20 -  
21 -  
22 -  
23 -#include <string>  
24 -  
25 -#using <System.dll>  
26 -#using <System.Windows.Forms.dll>  
27 -#using <System.Drawing.dll>  
28 -  
29 -  
30 -using namespace System::Windows::Forms;  
31 -using namespace System;  
32 -using namespace System::Drawing;  
33 -using namespace System::ComponentModel;  
34 -using namespace std;  
35 -  
36 -public ref class JanelaAtualizacao : public Form  
37 -{  
38 - private:  
39 -  
40 - bool downloading;  
41 - RichTextBox^ richTextBox1;  
42 - Label^ lbInformacao;  
43 - Label^ topo;  
44 - int vez=0;  
45 - Bitmap^ animatedImage;  
46 - String^ informacao;  
47 - void btOKevent(Object^ sender, EventArgs^ e);  
48 - void XFormClosing(Object^ sender, FormClosingEventArgs^ e);  
49 -  
50 - public:  
51 - static ProgressBar^ progressBar1;  
52 - static Label^ lbInfDownload;  
53 - Button^ btOK;  
54 - JanelaAtualizacao();  
55 -  
56 - void initializeComponent();  
57 - void setInfoWhite(String^ info);  
58 - void setInfoGreen(String^ info);  
59 - void setInfoRed(String^ info);  
60 - void start();  
61 - void EnableButton();  
62 -  
63 -  
64 -  
65 -};  
66 -  
update/include/pyVlibrasUpdate.h 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +//*****************************************************************
  2 +/*
  3 +
  4 +Copyright (c) 2015 Ezequiel Silva
  5 +VLibras-Core group at LAViD, Federal University of Paraiba
  6 +*/
  7 +//*****************************************************************
  8 +
  9 +/**
  10 +* \file pyVlibrasUpdate.h
  11 +* \authors Ezequiel Silva
  12 +* \date Setembro 2015
  13 +*/
  14 +#ifndef _PHVLIBRASUPDATE_H
  15 +#define _PHVLIBRASUPDATE_H
  16 +
  17 +#include <windows.h>
  18 +
  19 +/** \brief Classe para execução do Vlibras Update.
  20 +*
  21 +*/
  22 +class PyVlibrasUpdate
  23 +{
  24 +
  25 + public:
  26 + int install(char* strFunct, char* strstrParams);
  27 + void checkExe(char* strFunct, char* strstrParams);
  28 +
  29 +};
  30 +
  31 +#endif
0 \ No newline at end of file 32 \ No newline at end of file
update/include/util.h
@@ -1,51 +0,0 @@ @@ -1,51 +0,0 @@
1 -#using <System.dll>  
2 -#using <System.Xml.dll>  
3 -#using <System.IO.Compression.FileSystem.dll>  
4 -  
5 -#include <iostream>  
6 -#include <string>  
7 -#include <vector>  
8 -  
9 -  
10 -using namespace std;  
11 -using namespace System;  
12 -using namespace System::ComponentModel;  
13 -using namespace System::Net;  
14 -using namespace System::IO;  
15 -using namespace System::Xml;  
16 -using namespace System::Threading;  
17 -using namespace System::IO::Compression;  
18 -  
19 -  
20 -  
21 -  
22 -  
23 -  
24 -  
25 - public ref class Util {  
26 -  
27 - private:  
28 - static string clrStringTostring(String^ strIn);  
29 - static vector <string> localVersion(void);  
30 -  
31 - public:  
32 - static bool down;  
33 - static WebClient^ myWebClient;  
34 -  
35 - Util();  
36 -  
37 - bool downloading;  
38 - static bool saveNewXmlVersion(string playerVersion,string dictionaryVersion);  
39 - static string Download(DownloadProgressChangedEventHandler^ dpch ,string url, string fileName);  
40 - static bool checkNet(void);  
41 - static vector <string> checkVersion(bool atualize);  
42 - static bool extractZip(string zipFile, string outPath);  
43 - static bool backup(void);  
44 - static bool restore(void);  
45 -  
46 - };  
47 -  
48 -  
49 -  
50 -  
51 -  
update/src/checkVersion.cpp
@@ -1,182 +0,0 @@ @@ -1,182 +0,0 @@
1 -  
2 -  
3 -#include "checkVersion.h"  
4 -  
5 -using namespace std;  
6 -  
7 -  
8 -  
9 - CheckVersion::CheckVersion()  
10 - {  
11 - //reset();  
12 - }  
13 -  
14 - void CheckVersion::checkRefresh()  
15 - {  
16 - reset();  
17 - checkLocal();  
18 - checkApi();  
19 - if(!(localDictVersion == -1 || dictVersion == -1 || localPlayerVersion == -1 || playerVersion == -1))  
20 - {  
21 - vstatus = 0;  
22 - if(localDictVersion < dictVersion && localPlayerVersion < playerVersion)  
23 - vstatus=1;  
24 - else if(localPlayerVersion < playerVersion)  
25 - vstatus = 1;  
26 - else if(localDictVersion < dictVersion)  
27 - vstatus = 2;  
28 - }  
29 - else  
30 - vstatus = -1;  
31 -  
32 - }  
33 -  
34 -  
35 -  
36 -  
37 -void find_and_replace(string& source, string const& find, string const& replace)  
38 -{  
39 - for(string::size_type i = 0; (i = source.find(find, i)) != string::npos;)  
40 - {  
41 - source.replace(i, find.length(), replace);  
42 - i += replace.length();  
43 - }  
44 -}  
45 -  
46 -  
47 -void CheckVersion::checkLocal()  
48 -{  
49 -  
50 - int result = 0;  
51 - string line;  
52 - ifstream myfile ("c:\\vlibras-libs\\update\\updateVersion.xml");  
53 -  
54 - if (myfile.is_open())  
55 - {  
56 - while ( getline(myfile,line) )  
57 - {  
58 - if(strstr(line.c_str(),"<dictionaryVersion>"))  
59 - {  
60 - string version;  
61 - int ia = line.find("<dictionaryVersion>")+19;  
62 - int ib = line.find("</dictionaryVersion>")-23;  
63 - version = line.substr(ia,ib);  
64 - dictCallVersion = version;  
65 - find_and_replace(version,".","");  
66 - find_and_replace(version,"_","");  
67 - find_and_replace(version," ","");  
68 - localDictVersion = atoi(version.c_str());  
69 - }  
70 - else if(strstr(line.c_str(),"<playerVersion>"))  
71 - {  
72 - string version;  
73 - int ia = line.find("<playerVersion>")+15;  
74 - int ib = line.find("</playerVersion>")-19;  
75 - version = line.substr(ia,ib);  
76 - find_and_replace(version,".","");  
77 - find_and_replace(version,"_","");  
78 - find_and_replace(version," ","");  
79 - localPlayerVersion = atoi(version.c_str());  
80 - }  
81 -  
82 - }  
83 -  
84 - myfile.close();  
85 -  
86 - }  
87 -  
88 -  
89 - }  
90 -  
91 -void CheckVersion::checkApi()  
92 -{  
93 -  
94 -cout << "dictCallVersion ====> " << dictCallVersion<< endl;  
95 -string url = "http://vlibras.lavid.ufpb.br/api/dicionario/";  
96 -url.append(dictCallVersion);  
97 -url.append("?type=windows");  
98 - HRESULT hr = URLDownloadToFile ( NULL, _T(url.c_str()), _T("c:\\vlibras-libs\\update\\netVersion.xml"), 0, NULL );  
99 - if(SUCCEEDED(hr)){  
100 -  
101 - string line;  
102 - ifstream myfile ("c:\\vlibras-libs\\update\\netVersion.xml");  
103 - if (myfile.is_open())  
104 - {  
105 - while ( getline(myfile,line) )  
106 - {  
107 - if(strstr(line.c_str(),"<dictionaryVersion>"))  
108 - {  
109 - string version;  
110 - int ia = line.find("<dictionaryVersion>")+19;  
111 - int ib = line.find("</dictionaryVersion>")-23;  
112 - version = line.substr(ia,ib);  
113 - dictVersionFull = version;  
114 - find_and_replace(version,".","");  
115 - find_and_replace(version,"_","");  
116 - find_and_replace(version," ","");  
117 - dictVersion = atoi(version.c_str());  
118 - }  
119 - else if(strstr(line.c_str(),"<playerVersion>"))  
120 - {  
121 - string version;  
122 - int ia = line.find("<playerVersion>")+15;  
123 - int ib = line.find("</playerVersion>")-19;  
124 - version = line.substr(ia,ib);  
125 - playerVersionFull = version;  
126 - find_and_replace(version,".","");  
127 - find_and_replace(version,"_","");  
128 - find_and_replace(version," ","");  
129 - playerVersion = atoi(version.c_str());  
130 -  
131 - }  
132 - else if(strstr(line.c_str(),"<playerUrl>"))  
133 - {  
134 - string version;  
135 - int ia = line.find("<playerUrl>")+11;  
136 - int ib = line.find("</playerUrl>")-15;  
137 - version = line.substr(ia,ib);  
138 - playerUrl = version;  
139 - }  
140 - else if(strstr(line.c_str(),"<dictionaryUrl>"))  
141 - {  
142 - string version;  
143 - int ia = line.find("<dictionaryUrl>")+15;  
144 - int ib = line.find("</dictionaryUrl>")-19;  
145 - version = line.substr(ia,ib);  
146 - dictUrl = version;  
147 - }  
148 - }  
149 - myfile.close();  
150 - }  
151 -  
152 -  
153 - }  
154 -  
155 -}  
156 -  
157 -  
158 -void CheckVersion::reset()  
159 - {  
160 - playerVersion = -1;  
161 - dictVersion = -1;  
162 - localPlayerVersion = -1;  
163 - localDictVersion = -1;  
164 - playerUrl = "";  
165 - dictUrl = "";  
166 - vstatus = -1;  
167 - }  
168 -  
169 -//return  
170 -// -1 se erro  
171 -//0 se não necessita de atualização  
172 -// 1 se tiver para player  
173 -// 2 se dicionario  
174 -  
175 -  
176 -  
177 -  
178 -  
179 -  
180 -  
181 -  
182 -  
update/src/janelaAtualizacao.cpp
@@ -1,151 +0,0 @@ @@ -1,151 +0,0 @@
1 -#include "janelaAtualizacao.h"  
2 -#include "Util.h"  
3 -  
4 -  
5 -JanelaAtualizacao::JanelaAtualizacao()  
6 -{  
7 - initializeComponent();  
8 -}  
9 -  
10 -void JanelaAtualizacao::initializeComponent()  
11 -{  
12 -  
13 - this->downloading = true;  
14 - this->Size = System::Drawing::Size(500, 250);  
15 - this->progressBar1 = (gcnew ProgressBar());  
16 - this->btOK = (gcnew Button());  
17 - this->lbInfDownload = (gcnew Label());  
18 - this->lbInformacao = (gcnew Label());  
19 - this->Name = "Vlibras-Desktop-Update";  
20 - this->Text = "Atualização - Vlibras-Desktop";  
21 - this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedDialog;  
22 - this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;  
23 - //this->ControlBox = false;  
24 - this->MaximizeBox = false;  
25 - this->BackColor = Drawing::Color::White;  
26 - //this->MinimizeBox = false;  
27 - //this->BackgroundImage = Image::FromFile("c:\\vlibras-libs\\image\\background.png");  
28 - //this->Opacity = 0.97;  
29 - Drawing::Icon^ IC = gcnew Drawing::Icon("c:\\vlibras-libs\\icons\\icon_vlibras.ico");  
30 - this->Icon = IC;  
31 - this->SuspendLayout();  
32 - //this->FormBorderStyle = ::FormBorderStyle::None;  
33 - this->FormClosing += gcnew FormClosingEventHandler(this, &JanelaAtualizacao::XFormClosing);  
34 -  
35 - // progressBar1  
36 - //  
37 - this->progressBar1->Location = Point(7, 85);  
38 - this->progressBar1->Name = "progressBar1";  
39 - this->progressBar1->Size = System::Drawing::Size(470, 30);  
40 - //this->progressBar1->TabIndex = 0;  
41 - this->progressBar1->Minimum = 0;  
42 - this->progressBar1->Maximum = 100;  
43 - //this->progressBar1->Style = ProgressBarStyle::Marquee;  
44 - //progressBar1->Visible = false;  
45 - //progressBar1->Enabled = false;  
46 - //  
47 -  
48 - //  
49 - this->lbInformacao->Location = Point(7, 15);  
50 - this->lbInformacao->Name = "label";  
51 - this->lbInformacao->Size = System::Drawing::Size(470, 23);  
52 - this->lbInformacao->BackColor = Drawing::Color::Transparent;  
53 - //this->lbInformacao->ForeColor=Drawing::Color::White;  
54 -  
55 - //  
56 - this->lbInfDownload->Location = Point(7, 120);  
57 - this->lbInfDownload->Name = "labelDownload";  
58 - this->lbInfDownload->Size = System::Drawing::Size(470, 23);  
59 - this->lbInfDownload->BackColor = Drawing::Color::Transparent;  
60 - //this->lbInfDownload->Font = gcnew System::Drawing::Font("Arial", 12);  
61 - //this->lbInfDownload->ForeColor=Drawing::Color::White;  
62 -  
63 -  
64 - // btOK  
65 - //  
66 -  
67 - this->btOK->Location = Point(390, this->Bottom-80);  
68 - this->btOK->Name = "btOK";  
69 - this->btOK->Size = System::Drawing::Size(80, 30);  
70 - this->btOK->TabIndex = 1;  
71 - this->btOK->Text = "OK";  
72 - this->btOK->UseVisualStyleBackColor = true;  
73 - this->btOK->Click += gcnew EventHandler(this, &JanelaAtualizacao::btOKevent);  
74 - //this->btOK  
75 - //  
76 -  
77 - //  
78 - //this->Controls->Add(this->topo);  
79 - this->Controls->Add(this->lbInformacao);  
80 - this->Controls->Add(this->lbInfDownload);  
81 - this->Controls->Add(this->progressBar1);  
82 - this->Controls->Add(this->btOK);  
83 - this->btOK->Enabled = false;  
84 - //this->Controls->Add(this->richTextBox1);  
85 -  
86 - //this->ResumeLayout(false);  
87 -  
88 -}  
89 -  
90 -void JanelaAtualizacao::setInfoWhite(String^ info)  
91 -{  
92 - this->lbInformacao->Location = Point(7, 20);  
93 - this->lbInformacao->Font = gcnew System::Drawing::Font("Serif", 12);  
94 - this->lbInformacao->Text = info;  
95 - //this->lbInformacao->ForeColor=Drawing::Color::White;  
96 - this->lbInformacao->TextAlign = ContentAlignment::MiddleCenter;  
97 -  
98 -}  
99 -  
100 -void JanelaAtualizacao::setInfoGreen(String^ info)  
101 -{  
102 - this->lbInformacao->Location = Point(7, 75);  
103 - this->lbInformacao->Font = gcnew System::Drawing::Font("Arial", 15);  
104 - this->lbInformacao->Text = info;  
105 - this->lbInformacao->ForeColor=Drawing::Color::Green;  
106 - this->lbInformacao->TextAlign = ContentAlignment::MiddleCenter;  
107 -  
108 -}  
109 -void JanelaAtualizacao::setInfoRed(String^ info)  
110 -{  
111 - this->lbInformacao->Location = Point(7, 75);  
112 - this->lbInformacao->Font = gcnew System::Drawing::Font("Arial", 15);  
113 - this->lbInformacao->Text = info;  
114 - this->lbInformacao->ForeColor=Drawing::Color::Red;  
115 - this->lbInformacao->TextAlign = ContentAlignment::MiddleCenter;  
116 -  
117 -}  
118 -  
119 -  
120 -  
121 -  
122 -void JanelaAtualizacao::btOKevent(Object^ sender, EventArgs^ e)  
123 -{  
124 -  
125 - this->Close();  
126 -  
127 -}  
128 -  
129 -  
130 -  
131 -void JanelaAtualizacao::start()  
132 -{  
133 -  
134 -}  
135 -  
136 -  
137 -void JanelaAtualizacao::EnableButton()  
138 -{  
139 - btOK->Enabled = true;  
140 -}  
141 -  
142 -  
143 -void JanelaAtualizacao::XFormClosing(Object^ sender, FormClosingEventArgs^ e)  
144 -{  
145 -  
146 -}  
147 -  
148 -  
149 -  
150 -  
151 -  
152 \ No newline at end of file 0 \ No newline at end of file
update/src/pyVlibrasUpdate.cpp 0 → 100644
@@ -0,0 +1,103 @@ @@ -0,0 +1,103 @@
  1 +
  2 +/**
  3 +* \file pyVlibrasUpdate.cpp
  4 +* \authors Ezequiel Silva
  5 +* \date outubro 2015
  6 +*/
  7 +
  8 +#include "pyVlibrasUpdate.h"
  9 +
  10 +
  11 +void PyVlibrasUpdate::checkExe(char* strFunct, char* strstrParams)
  12 +{
  13 +
  14 + STARTUPINFO StartupInfo;
  15 + PROCESS_INFORMATION ProcessInfo;
  16 + char Args[4096];
  17 + char *pEnvCMD = NULL;
  18 + char *pDefaultCMD = "CMD.EXE";
  19 + ULONG rc;
  20 +
  21 + memset(&StartupInfo, 0, sizeof(StartupInfo));
  22 + StartupInfo.cb = sizeof(STARTUPINFO);
  23 + StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
  24 + StartupInfo.wShowWindow = SW_HIDE;
  25 +
  26 + Args[0] = 0;
  27 +
  28 + pEnvCMD = getenv("COMSPEC");
  29 +
  30 + if(pEnvCMD){
  31 +
  32 + strcpy(Args, pEnvCMD);
  33 + }
  34 + else{
  35 + strcpy(Args, pDefaultCMD);
  36 + }
  37 +
  38 + // "/c" option - Do the command then terminate the command window
  39 + strcat(Args, " /c ");
  40 + //the application you would like to run from the command window
  41 + strcat(Args, strFunct);
  42 + strcat(Args, " ");
  43 + //the parameters passed to the application being run from the command window.
  44 + strcat(Args, strstrParams);
  45 +
  46 + if (!CreateProcess( NULL, Args, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &StartupInfo, &ProcessInfo))
  47 + {
  48 + return -1;
  49 + }
  50 +
  51 + WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
  52 + if(!GetExitCodeProcess(ProcessInfo.hProcess, &rc))
  53 + rc = 0;
  54 +
  55 + CloseHandle(ProcessInfo.hThread);
  56 + CloseHandle(ProcessInfo.hProcess);
  57 +
  58 +
  59 +}
  60 +
  61 +int PyVlibrasUpdate::install(char* strFunct, char* strstrParams)
  62 +{
  63 +
  64 + STARTUPINFO StartupInfo;
  65 + PROCESS_INFORMATION ProcessInfo;
  66 + char Args[4096];
  67 + char *pEnvCMD = NULL;
  68 + char *pDefaultCMD = "CMD.EXE";
  69 +
  70 + memset(&StartupInfo, 0, sizeof(StartupInfo));
  71 + StartupInfo.cb = sizeof(STARTUPINFO);
  72 + StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
  73 + StartupInfo.wShowWindow = SW_HIDE;
  74 +
  75 + Args[0] = 0;
  76 +
  77 + pEnvCMD = getenv("COMSPEC");
  78 +
  79 + if(pEnvCMD){
  80 +
  81 + strcpy(Args, pEnvCMD);
  82 + }
  83 + else{
  84 + strcpy(Args, pDefaultCMD);
  85 + }
  86 +
  87 + // "/c" option - Do the command then terminate the command window
  88 + strcat(Args, " /c ");
  89 + //the application you would like to run from the command window
  90 + strcat(Args, strFunct);
  91 + strcat(Args, " ");
  92 + //the parameters passed to the application being run from the command window.
  93 + strcat(Args, strstrParams);
  94 +
  95 + if (!CreateProcess( NULL, Args, NULL, NULL, FALSE,CREATE_NEW_CONSOLE, NULL, NULL, &StartupInfo, &ProcessInfo))
  96 + {
  97 + return -1;
  98 + }
  99 +
  100 + return -1;
  101 +
  102 +}
  103 +
update/src/util.cpp
@@ -1,286 +0,0 @@ @@ -1,286 +0,0 @@
1 -#include <windows.h>  
2 -#include "util.h"  
3 -  
4 -  
5 -  
6 -Util::Util(){  
7 - //downloading = true;  
8 - //downloading = down;  
9 -}  
10 -  
11 -string Util::clrStringTostring(String^ strIn)  
12 -{  
13 -  
14 - char cStr[256];  
15 -  
16 -  
17 - sprintf(cStr, "%s", strIn);  
18 - string stlString(cStr);  
19 -  
20 - return stlString;  
21 -}  
22 -  
23 - void DownloadProgressCallback(Object^ sender,  
24 - DownloadProgressChangedEventArgs^ e)  
25 - {  
26 - // Displays the operation identifier, and the transfer progress.  
27 - Console::WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...",  
28 - (String ^)e->UserState,  
29 - e->BytesReceived,  
30 - e->TotalBytesToReceive,  
31 - e->ProgressPercentage);  
32 - }  
33 -  
34 - void DownloadFileCallBack2(Object^ sender, AsyncCompletedEventArgs^ args)  
35 - {  
36 - cout<<"Terminou de baixar"<< endl;  
37 -  
38 - }  
39 -  
40 -  
41 -bool Util::checkNet()  
42 -{  
43 -  
44 - try  
45 - {  
46 -  
47 - WebRequest^ request = WebRequest::Create( "http://vlibras.lavid.ufpb.br" );  
48 -  
49 - // If required by the server, set the credentials.  
50 - //request->Credentials = CredentialCache::DefaultCredentials;  
51 -  
52 - // Get the response.  
53 - HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());  
54 -  
55 - if (response->StatusDescription == "OK"){  
56 -  
57 - return true;  
58 - }  
59 - return false;  
60 - response->Close();  
61 - }  
62 - catch ( WebException^ e )  
63 - {  
64 - return false;  
65 - }  
66 -  
67 -}  
68 -  
69 -  
70 -vector<string> Util::checkVersion(bool atualize)  
71 -{  
72 - XmlDocument^ xmlDoc;  
73 - XmlNodeList^ files;  
74 - XmlDocument^ xmlDocLocal;  
75 - XmlNodeList^ filesLocal;  
76 - vector<string> updates;  
77 - vector<string> localversion = localVersion();  
78 - try  
79 - {  
80 - xmlDoc = (gcnew XmlDocument());  
81 - xmlDocLocal = (gcnew XmlDocument());  
82 -  
83 -  
84 - string url = "http://vlibras.lavid.ufpb.br/api/dicionario/"+localversion[3]+"?type=windows";  
85 - WebRequest^ request = WebRequest::Create( gcnew String(url.c_str()));  
86 - // If required by the server, set the credentials.  
87 - request->Credentials = CredentialCache::DefaultCredentials;  
88 - // Get the response.  
89 - HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());  
90 - if (!(response->StatusDescription == "OK"))  
91 - goto erro;  
92 - // Get the stream containing content returned by the server.  
93 - Stream^ dataStream = response->GetResponseStream();  
94 - // Open the stream using a StreamReader for easy access.  
95 - StreamReader^ reader = gcnew StreamReader( dataStream );  
96 - // Read the content.  
97 - String^ responseFromServer = reader->ReadToEnd();  
98 - xmlDoc->LoadXml(responseFromServer);  
99 - files = xmlDoc->GetElementsByTagName("version");  
100 -  
101 - long numitems = files->Count;  
102 -  
103 -  
104 -  
105 - //for (int i=0;i<numitems;i++)  
106 - if(numitems>0)  
107 - {  
108 - String^ playerVersion = files[0]["playerVersion"]->InnerText;  
109 - String^ dictionaryVersion = files[0]["dictionaryVersion"]->InnerText;  
110 -  
111 - if(String::Compare( playerVersion, gcnew String(localversion[1].c_str())))  
112 - {  
113 - updates.push_back("playerVersion");  
114 - updates.push_back(clrStringTostring(playerVersion));  
115 - updates.push_back(clrStringTostring(files[0]["playerUrl"]->InnerText));  
116 - }  
117 - if(String::Compare(dictionaryVersion,gcnew String(localversion[3].c_str())))  
118 - {  
119 - updates.push_back("dictionaryVersion");  
120 - updates.push_back(clrStringTostring(dictionaryVersion));  
121 - updates.push_back(clrStringTostring(files[0]["dictionaryUrl"]->InnerText));  
122 - }  
123 -  
124 - //if(atualize)  
125 - //saveNewXmlVersion(playerVersion,dictionaryVersion);  
126 -  
127 - }  
128 -  
129 - erro:  
130 - // Cleanup the streams and the response.  
131 - reader->Close();  
132 - dataStream->Close();  
133 - }catch(Exception^ e)  
134 - {  
135 - return updates;  
136 - }  
137 -  
138 - return updates;  
139 -}  
140 -  
141 -  
142 -vector<string> Util::localVersion()  
143 -{  
144 - XmlDocument^ xmlDocLocal;  
145 - XmlNodeList^ filesLocal;  
146 - vector<string> updates;  
147 - try  
148 - {  
149 - xmlDocLocal = (gcnew XmlDocument());  
150 - //xml version local  
151 - StreamReader^ readerLocal = gcnew StreamReader("c:\\vlibras-libs\\update\\updateVersion.xml");  
152 -  
153 - String^ responseLocal = readerLocal->ReadToEnd();  
154 -  
155 - xmlDocLocal->LoadXml(responseLocal);  
156 -  
157 - filesLocal = xmlDocLocal->GetElementsByTagName("version");  
158 -  
159 - updates.push_back("playerVersion");  
160 - String^ playerVersion = filesLocal[0]["playerVersion"]->InnerText;  
161 - updates.push_back(clrStringTostring(playerVersion));  
162 - updates.push_back("dictionaryVersion");  
163 - String^ dictionaryVersion = filesLocal[0]["dictionaryVersion"]->InnerText;  
164 - updates.push_back(clrStringTostring(dictionaryVersion));  
165 -  
166 - // Cleanup the streams and the response.  
167 - readerLocal->Close();  
168 - }catch(Exception^ e)  
169 - {  
170 - return updates;  
171 - }  
172 -  
173 - return updates;  
174 -}  
175 -  
176 -  
177 -string Util::Download(DownloadProgressChangedEventHandler^ dpch ,string url, string fileName)  
178 -{  
179 - try  
180 - {  
181 - myWebClient = gcnew WebClient();  
182 - Uri^ uri = gcnew Uri(gcnew String(url.c_str()));  
183 - myWebClient->DownloadProgressChanged += dpch;  
184 - myWebClient->DownloadFileCompleted += gcnew AsyncCompletedEventHandler( DownloadFileCallBack2 );  
185 - String^ outPath = gcnew String(("c:\\vlibras-libs\\update\\"+fileName).c_str());  
186 - myWebClient->DownloadFileAsync(uri, outPath);  
187 - }catch (Exception^ e)  
188 - {  
189 - return "FALHA";  
190 - }  
191 -  
192 - return "OK";  
193 - }  
194 -  
195 -  
196 -  
197 - bool Util::saveNewXmlVersion(string playerVersion,string dictionaryVersion)  
198 - {  
199 -  
200 - XmlDocument^ xmlDocLocal;  
201 - XmlNodeList^ filesLocal;  
202 - vector<string> updates;  
203 - try  
204 - {  
205 - xmlDocLocal = (gcnew XmlDocument());  
206 - //xml version local  
207 - StreamReader^ readerLocal = gcnew StreamReader("c:\\vlibras-libs\\update\\updateVersion.xml");  
208 -  
209 - String^ responseLocal = readerLocal->ReadToEnd();  
210 -  
211 - xmlDocLocal->LoadXml(responseLocal);  
212 -  
213 - filesLocal = xmlDocLocal->GetElementsByTagName("version");  
214 -  
215 - if(!playerVersion.empty())  
216 - filesLocal[0]["playerVersion"]->InnerText = gcnew String(playerVersion.c_str());  
217 -  
218 - if(!dictionaryVersion.empty())  
219 - filesLocal[0]["dictionaryVersion"]->InnerText = gcnew String(dictionaryVersion.c_str());  
220 -  
221 -  
222 - // Cleanup the streams and the response.  
223 - readerLocal->Close();  
224 -  
225 - xmlDocLocal->Save("c:\\vlibras-libs\\update\\updateVersion.xml");  
226 - }catch(Exception^ e)  
227 - {  
228 -  
229 - }  
230 -  
231 - return true;  
232 - }  
233 -  
234 -  
235 - bool Util::extractZip(string zipFile, string outPath)  
236 - {  
237 - try  
238 - {  
239 - String^ zipPath = gcnew String(zipFile.c_str());  
240 - String^ extractPath = gcnew String(outPath.c_str());  
241 - ZipFile::ExtractToDirectory(zipPath, extractPath);  
242 -  
243 - }catch(Exception^ e)  
244 - {  
245 - return false;  
246 - }  
247 -  
248 - return true;  
249 - }  
250 -  
251 -bool Util::backup()  
252 -{  
253 - CHAR nome_atual[] = "c:\\vlibras-libs";  
254 - // novo nome do diretório  
255 - CHAR nome_novo[] = "c:\\vlibras-libs-BK";  
256 -  
257 - // renomear o diretório  
258 - if(MoveFile(nome_atual, nome_novo)){  
259 -  
260 - }  
261 - else{  
262 - return false;  
263 - }  
264 - return true;  
265 -}  
266 -bool Util::restore()  
267 -{  
268 - CHAR nome_atual[] = "c:\\vlibras-libs-BK";  
269 - // novo nome do diretório  
270 - CHAR nome_novo[] = "c:\\vlibras-libs";  
271 -  
272 - // renomear o diretório  
273 - if(MoveFile(nome_atual, nome_novo)){  
274 - return true;  
275 - }  
276 - else{  
277 - return false;  
278 - //GetLastError() << endl;  
279 - }  
280 - return true;  
281 -}  
282 -  
283 -  
284 -  
285 -  
286 -  
287 \ No newline at end of file 0 \ No newline at end of file
update/update-icon.ico
No preview for this file type
update/updatePython/DownloadFile.py 0 → 100644
@@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
  1 +#!/usr/bin/env python
  2 +# -*- coding: utf-8 -*-
  3 +import wx
  4 +from urllib2 import URLError
  5 +from urllib2 import HTTPError
  6 +import urllib2,os
  7 +import random
  8 +import time
  9 +from wx.lib.pubsub import pub
  10 +from threading import Thread
  11 +
  12 +
  13 +
  14 +class DownloadFile():
  15 +
  16 + def __init__(self,url,nameFile):
  17 + self.url = url
  18 + self.nameFile = nameFile
  19 + self.downloading = True
  20 +
  21 + def start(self):
  22 +
  23 + file_name = self.nameFile
  24 + try:
  25 + u = urllib2.urlopen(self.url)
  26 + f = open(file_name, 'wb')
  27 + meta = u.info()
  28 + file_size = int(meta.getheaders("Content-Length")[0])
  29 +
  30 + except:
  31 +
  32 + return False
  33 +
  34 + block_sz = 8192
  35 + while self.downloading:
  36 + buffer = u.read(block_sz)
  37 + if not buffer:
  38 + self.downloading = False
  39 + f.write(buffer)
  40 +
  41 + return True
  42 +
  43 +
  44 +
  45 +class DownloadFile2(Thread):
  46 +
  47 + def __init__(self,url,nameFile):
  48 + self.url = url
  49 + self.nameFile = nameFile
  50 + self.downloading = True
  51 + Thread.__init__(self)
  52 +
  53 +
  54 + def stop(self):
  55 + self.downloading = False
  56 +
  57 +
  58 + def run(self):
  59 +
  60 + file_name = self.nameFile
  61 + try:
  62 + u = urllib2.urlopen(self.url)
  63 + f = open(file_name, 'wb')
  64 + meta = u.info()
  65 + file_size = int(meta.getheaders("Content-Length")[0])
  66 +
  67 + except :
  68 + wx.CallAfter(pub.sendMessage, "erroDeConexao", msg="Falha na conexao")
  69 + self.downloading = False;
  70 + return False
  71 +
  72 +
  73 + file_size_dl = 0
  74 + block_sz = 8192
  75 + while self.downloading:
  76 + buffer = u.read(block_sz)
  77 + if not buffer:
  78 + break
  79 +
  80 + file_size_dl += len(buffer)
  81 + f.write(buffer)
  82 + status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size)
  83 + status = status + chr(8)*(len(status)+1)
  84 +
  85 + wx.CallAfter(pub.sendMessage, "updateProgress", msg=(file_size_dl * 100. / file_size))
  86 + if (file_size_dl * 100. / file_size) >=100:
  87 + wx.CallAfter(pub.sendMessage, "downloadSucess", msg="Download realizado")
update/updatePython/VlibrasCheckVersion.py 0 → 100644
@@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
  1 +# -*- coding: cp1252 -*-
  2 +import json, zipfile, subprocess,urllib
  3 +from os import popen
  4 +import sys
  5 +
  6 +PATH_RESOURCE = 'c:/vlibras-libs/update/'
  7 +TXT_LOCAL_VERSION = PATH_RESOURCE+'version/version.txt'
  8 +JSON_LOCAL_NAME = PATH_RESOURCE+'version/version.json'
  9 +JSON_API_NAME = PATH_RESOURCE+'download/versionApi.json'
  10 +URL_REQUEST_API = 'http://150.165.205.94:8000/versionApi.json'
  11 +
  12 +
  13 +
  14 +
  15 +def check():
  16 +
  17 + try:
  18 +
  19 + with open(JSON_LOCAL_NAME) as data_file:
  20 + json_data = json.load(data_file)
  21 +
  22 + my_dict_version_full = json_data['dictionaryVersion'].encode('utf-8')
  23 + my_player_version = json_data['playerVersion'].encode('utf-8').replace(".", "")
  24 + my_dict_version = my_dict_version_full.replace(".", "").replace("_", "")
  25 +
  26 + if(not downladFileApi(URL_REQUEST_API)):
  27 + return 'erro'
  28 +
  29 + with open(JSON_API_NAME) as data:
  30 + json_data = json.load(data)
  31 +
  32 + api_dict_version = json_data['dictionaryVersion'].encode('utf-8').replace(".", "").replace("_", "")
  33 + api_player_version = json_data['playerVersion'].encode('utf-8').replace(".", "")
  34 + url_download_player = json_data['playerUrl'].encode('utf-8')
  35 + url_download_dict = json_data['dictionaryUrl'].encode('utf-8')
  36 +
  37 +
  38 + if int(api_player_version) > int(my_player_version):
  39 + return url_download_player
  40 +
  41 + elif int(api_dict_version) > int(my_dict_version):
  42 +
  43 + return url_download_dict
  44 +
  45 + else:
  46 + return 'atualizado'
  47 +
  48 + except Exception, e:
  49 + print e
  50 + return 'erro'
  51 +
  52 +
  53 +def downladFileApi(_url):
  54 + try:
  55 +
  56 + urllib.urlretrieve (_url, JSON_API_NAME)
  57 +
  58 + return True
  59 + except Exception, e:
  60 + print e
  61 + return False
  62 +
  63 +
  64 +
  65 +
  66 +if __name__ == '__main__':
  67 + txt_local_version = open(TXT_LOCAL_VERSION, 'w')
  68 + result = check()
  69 + if result.endswith('.exe'):
  70 + txt_local_version.write('1')
  71 + elif result.endswith('.zip'):
  72 + txt_local_version.write('2')
  73 + elif (result == 'atualizado'):
  74 + txt_local_version.write('0')
  75 + else:
  76 + txt_local_version.write('-1')
  77 +
  78 + txt_local_version.close()
  79 + print result
  80 +
  81 +
  82 +
  83 +
  84 +
  85 +
  86 +
  87 +
update/updatePython/VlibrasUpdate.py 0 → 100644
@@ -0,0 +1,109 @@ @@ -0,0 +1,109 @@
  1 +# -*- coding: cp1252 -*-
  2 +import json, zipfile, subprocess,urllib
  3 +from os import popen
  4 +from threading import Thread
  5 +from VlibrasUpdateInstall import*
  6 +
  7 +url_download_player =''
  8 +url_download_dict =''
  9 +PATH_RESOURCE = 'C:/vlibras-libs/update/'
  10 +JSON_LOCAL_NAME = 'version/version.json'
  11 +JSON_API_NAME = 'download/versionApi.json'
  12 +PLAYER_DICT_UPDATE_PATH = PATH_RESOURCE+'bin/vlibrasPlayerDictUp.exe '
  13 +DICTIONARY_NAME = 'download/vlibras_dicionario.zip'
  14 +INSTALL_PLAYER_NAME = 'download/Vlibras_Up.exe'
  15 +URL_REQUEST_API = 'http://vlibras.lavid.ufpb.br/api/dicionario/'
  16 +DICTIONARY_EXTRACT_PATH = 'C:/vlibras-libs/Player/VLibrasPlayer_Data/Bundles'
  17 +
  18 +
  19 +
  20 +
  21 +
  22 +
  23 +def checkVersion():
  24 +
  25 +## try:
  26 +##
  27 +## with open(PATH_RESOURCE+JSON_LOCAL_NAME) as data_file:
  28 +## json_data = json.load(data_file)
  29 +##
  30 +## my_dict_version_full = json_data['dictionaryVersion'].encode('utf-8')
  31 +## my_player_version = json_data['playerVersion'].encode('utf-8').replace(".", "")
  32 +## my_dict_version = my_dict_version_full.replace(".", "").replace("_", "")
  33 +##
  34 +## if(not downladFileApi(URL_REQUEST_API+my_dict_version_full+'?type=linux')):
  35 +## return 'erro'
  36 +##
  37 +## with open(PATH_RESOURCE+JSON_API_NAME) as data:
  38 +## json_data = json.load(data)
  39 +##
  40 +## api_dict_version = json_data['dictionaryVersion'].encode('utf-8').replace(".", "").replace("_", "")
  41 +## api_player_version = json_data['playerVersion'].encode('utf-8').replace(".", "")
  42 +## url_download_player = json_data['playerUrl'].encode('utf-8')
  43 +## url_download_dict = json_data['dictionaryUrl'].encode('utf-8')
  44 +##
  45 +##
  46 +## if int(api_player_version) > int(my_player_version):
  47 +## return url_download_player
  48 +##
  49 +## elif int(api_dict_version) > int(my_dict_version):
  50 +##
  51 +## return url_download_dict
  52 +##
  53 +## else:
  54 +## return "atualizado"
  55 +##
  56 +## except:
  57 +
  58 + return "erro"
  59 +
  60 +
  61 +def downladFileApi(_url):
  62 + try:
  63 +
  64 + urllib.urlretrieve (_url, PATH_RESOURCE+JSON_API_NAME)
  65 +
  66 + return True
  67 + except:
  68 + return False
  69 +
  70 +def installPlayer():
  71 + try:
  72 +## with open(PATH_RESOURCE+JSON_API_NAME) as data:
  73 +## json_data = json.load(data)
  74 +
  75 +## url_download_player = json_data['playerUrl'].encode('utf-8')
  76 + # install = CallInstall()
  77 + # install.start()
  78 + process = subprocess.Popen(["C:\\Python27\\python.exe", "c:\\vlibras-libs\\update\\py\\VlibrasUpdateInstall.pyc"])
  79 +## update_json_file()
  80 + except Exception, e:
  81 + print e
  82 + return -1
  83 + return 1
  84 +
  85 +def installDict():
  86 + try:
  87 +## install = CallInstall()
  88 +## install.start()
  89 +
  90 + process = subprocess.Popen(["C:\\Python27\\python.exe", "c:\\vlibras-libs\\update\\py\\VlibrasUpdateInstall.pyc"])
  91 +## with open(PATH_RESOURCE+JSON_API_NAME) as data:
  92 +## json_data = json.load(data)
  93 +## url_download_dict = json_data['dictionaryUrl'].encode('utf-8')
  94 +## process = subprocess.Popen(PLAYER_DICT_UPDATE_PATH+url_download_dict)
  95 + except Exception, e:
  96 + print e
  97 + return -1
  98 + return 1
  99 +
  100 +
  101 +if __name__ == '__main__':
  102 + print installPlayer()
  103 +
  104 +
  105 +
  106 +
  107 +
  108 +
  109 +
update/updatePython/VlibrasUpdateInstall.py 0 → 100644
@@ -0,0 +1,212 @@ @@ -0,0 +1,212 @@
  1 +
  2 +# -*- coding: utf-8 -*-
  3 +
  4 +import wx
  5 +import subprocess
  6 +import time
  7 +from wx.lib.pubsub import pub
  8 +from DownloadFile import *
  9 +from VlibrasCheckVersion import *
  10 +import zipfile
  11 +
  12 +
  13 +
  14 +PATH_RESOURCE = 'C:/vlibras-libs/update/'
  15 +DICTIONARY_NAME = 'download/vlibras_dicionario.zip'
  16 +INSTALL_PLAYER_NAME = 'download/Vlibras_Up.exe'
  17 +DICTIONARY_EXTRACT_PATH = 'C:/vlibras-libs/Player/VLibrasPlayer_Data/Bundles'
  18 +
  19 +class UpdateView(wx.Frame):
  20 +
  21 + def __init__(self,_downloadFile,_serv_type):
  22 +
  23 + self.serv_type = _serv_type
  24 + self.downloadFile = _downloadFile
  25 + style = wx.SYSTEM_MENU | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX
  26 + wx.Frame.__init__(self, None, title='Atualização do VLibras', style=style,size=(480,250))
  27 + # Define o ícone para a janela
  28 + self.SetIcon(wx.Icon("c:/vlibras-libs/icons/icon_vlibras.ico", wx.BITMAP_TYPE_ICO))
  29 + self.myPanel = wx.Panel(self, -1)
  30 + self.myPanel.SetBackgroundColour('#F5F5F5')
  31 +## btnOk = wx.Button(self.myPanel, label="OK",pos=(365, 180), size=(80, 25))
  32 + btnCancel = wx.Button(self.myPanel, label="Cancelar",pos=(365, 180), size=(80, 25))
  33 + self.myText = wx.StaticText(self.myPanel, -1, pos=(5,105))
  34 + #self.myText.SetBackgroundColour('#123456')
  35 + self.myText.SetForegroundColour('#000000')
  36 + self.progress = wx.Gauge(self.myPanel, range=100,pos=(5,80),size=(463,25))
  37 + self.Center()
  38 +
  39 + # Anexa um evento ao botão
  40 +## self.Bind(wx.EVT_BUTTON, self.onBtnOkClick, btnOk)
  41 + self.Bind(wx.EVT_BUTTON, self.onBtnCancelClick, btnCancel)
  42 + self.__close_callback = None
  43 + self.Bind(wx.EVT_CLOSE, self._when_closed)
  44 +
  45 + #registra listeners na classe DownloadFile
  46 + pub.subscribe(self.downloadSucess, "downloadSucess")
  47 + pub.subscribe(self.erroDeConexao, "erroDeConexao")
  48 + pub.subscribe(self.updateProgress, "updateProgress")
  49 + self.percentDownload = 0;
  50 +
  51 +
  52 + #inicia o download do arquivo
  53 + if(self.serv_type != ''):
  54 + self.downloadFile.start()
  55 +
  56 + def erroDeConexao(self, msg):
  57 + wx.MessageBox('Ocorreu um erro ao tentar fazer atualização. \n Por favor tente mais tarde.', 'Informação',wx.OK | wx.ICON_INFORMATION)
  58 + self.Destroy()
  59 +
  60 + def register_close_callback(self, callback):
  61 + self.__close_callback = callback
  62 +
  63 + def _when_closed(self, event):
  64 + self.OnCloseFrame(event);
  65 +## event.Skip()
  66 +
  67 +
  68 +## def onBtnOkClick(self, event):
  69 +## self.downloadFile.start()
  70 +
  71 + def onBtnCancelClick(self, event):
  72 + self.OnCloseFrame(event);
  73 +
  74 +
  75 + def downloadSucess(self, msg):
  76 + self.percentDownload = 100.0
  77 + time.sleep( 2 )
  78 + if (self.serv_type == 'dict'):
  79 + with zipfile.ZipFile(PATH_RESOURCE+DICTIONARY_NAME, "r") as z:
  80 + z.extractall(DICTIONARY_EXTRACT_PATH)
  81 + self.update_json_file()
  82 + self.ShowMessage('Vlibras Atualizado com sucesso!')
  83 +
  84 + else:
  85 + self.Hide()
  86 + process = subprocess.call(PATH_RESOURCE+INSTALL_PLAYER_NAME+' /SILENT /SUPPRESSMSGBOXES /NORESTART')
  87 + self.update_json_file()
  88 + self.ShowMessage('Vlibras Atualizado com sucesso!')
  89 + self.downloadFile.stop()
  90 + self.Destroy()
  91 +
  92 +
  93 + def updateProgress(self, msg):
  94 + value = msg
  95 + val = 'Baixando'
  96 +
  97 + self.percentDownload = value
  98 + self.myText.SetLabel(val)
  99 + self.progress.SetValue(value)
  100 +
  101 + def ShowMessage(self, mesagem):
  102 + wx.MessageBox(mesagem, 'Informação',
  103 + wx.OK | wx.ICON_INFORMATION)
  104 + def ShowMessageError(self, mesagem):
  105 + wx.MessageBox(mesagem, 'Informação',
  106 + wx.OK | wx.ICON_ERROR)
  107 + self.downloadFile.stop()
  108 + self.Destroy()
  109 +
  110 +
  111 +
  112 +
  113 +
  114 + # monitora a interação do usuário no botão de fechar
  115 + def OnCloseFrame(self, event):
  116 + if(self.percentDownload>= 100):
  117 + self.downloadFile.stop()
  118 + self.Destroy()
  119 + dialog = wx.MessageDialog(self, message = "Tem certeza que deseja cancelar a atualização?", caption = "Cancelar Atualização",
  120 + style = wx.YES_NO | wx.ICON_QUESTION)
  121 + response = dialog.ShowModal()
  122 +
  123 + if (response == wx.ID_YES):
  124 + self.downloadFile.stop()
  125 +
  126 + self.Destroy()
  127 + else:
  128 + event.StopPropagation()
  129 +
  130 +
  131 + # atualiza o json local com as informações da api
  132 + def update_json_file(self):
  133 + with open(PATH_RESOURCE+JSON_API_NAME) as data:
  134 + json_data = json.load(data)
  135 +
  136 + jsonFile = open(PATH_RESOURCE+JSON_LOCAL_NAME, "w+")
  137 + jsonFile.write(json.dumps(json_data))
  138 + jsonFile.close()
  139 +
  140 +
  141 +class ShowInfo(wx.Frame):
  142 +
  143 + def __init__(self,_mesagem):
  144 + self.mesagem = _mesagem
  145 + style = wx.SYSTEM_MENU | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX
  146 + wx.Frame.__init__(self, None, title='Atualização do VLibras', style=style,size=(480,250))
  147 + def ShowMessage(self):
  148 + wx.MessageBox(self.mesagem, 'Informação',
  149 + wx.OK | wx.ICON_INFORMATION)
  150 + def ShowMessageError(self):
  151 + wx.MessageBox(self.mesagem, 'Informação',
  152 + wx.OK | wx.ICON_ERROR)
  153 +
  154 +
  155 +
  156 +
  157 +
  158 +def installDictionary(_url):
  159 + app = wx.App(False)
  160 + downloadFile2 = DownloadFile2(_url, PATH_RESOURCE+DICTIONARY_NAME)
  161 + frame = UpdateView(downloadFile2,'dict')
  162 + frame.register_close_callback(lambda: True)
  163 + frame.Show()
  164 + app.MainLoop()
  165 + print _url
  166 + return 'OK'
  167 +
  168 +def installPlayer(_url):
  169 + app = wx.App(False)
  170 + downloadFile2 = DownloadFile2(_url, PATH_RESOURCE+INSTALL_PLAYER_NAME)
  171 + frame = UpdateView(downloadFile2,'player')
  172 + frame.register_close_callback(lambda: True)
  173 + frame.Show()
  174 + app.MainLoop()
  175 + print _url
  176 + return 'OK'
  177 +
  178 +
  179 +if __name__ == '__main__':
  180 + app = wx.App(False)
  181 + result = check()
  182 + if result.endswith('.zip'):
  183 + installDictionary(result)
  184 + elif result.endswith('.exe'):
  185 + installPlayer(result)
  186 + elif (result == 'atualizado'):
  187 +## up.Show()
  188 + ShowInfo('O VLibras já está atualizado!').ShowMessage()
  189 + else:
  190 +## up.Show()
  191 + ShowInfo('Ocorreu um erro ao tentar atualizar o VLibras!').ShowMessageError()
  192 +
  193 +## app.MainLoop()
  194 +
  195 +
  196 +
  197 +def initInstall():
  198 + app = wx.App(False)
  199 + result = check()
  200 + if result.endswith('.zip'):
  201 + installDictionary(result)
  202 + elif result.endswith('.exe'):
  203 + installPlayer(result)
  204 + elif (result == 'atualizado'):
  205 +## up.Show()
  206 + ShowInfo('O VLibras já está atualizado!').ShowMessage()
  207 + else:
  208 +## up.Show()
  209 + ShowInfo('Ocorreu um erro ao tentar atualizar o VLibras!').ShowMessageError()
  210 +
  211 +## app.MainLoop()
  212 +
update/vlibrasDictPlayerInstall.cpp 0 → 100644
@@ -0,0 +1,61 @@ @@ -0,0 +1,61 @@
  1 +
  2 +
  3 +#include <windows.h> //include all the basics
  4 + //string and other mapping macros
  5 +
  6 +
  7 +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  8 + LPSTR lpCmdLine, int nShowCmd)
  9 +{
  10 +
  11 + STARTUPINFO StartupInfo;
  12 + PROCESS_INFORMATION ProcessInfo;
  13 + char Args[4096];
  14 + char *pEnvCMD = NULL;
  15 + char *pDefaultCMD = "CMD.EXE";
  16 + ULONG rc;
  17 +
  18 + memset(&StartupInfo, 0, sizeof(StartupInfo));
  19 + StartupInfo.cb = sizeof(STARTUPINFO);
  20 + StartupInfo.dwFlags = STARTF_USESHOWWINDOW;
  21 + StartupInfo.wShowWindow = SW_HIDE;
  22 +
  23 + Args[0] = 0;
  24 +
  25 + pEnvCMD = getenv("COMSPEC");
  26 +
  27 + if(pEnvCMD){
  28 +
  29 + strcpy(Args, pEnvCMD);
  30 + }
  31 + else{
  32 + strcpy(Args, pDefaultCMD);
  33 + }
  34 +
  35 + // "/c" option - Do the command then terminate the command window
  36 + strcat(Args, " /c ");
  37 + //the application you would like to run from the command window
  38 + strcat(Args, "c:\\Python27\\python.exe");
  39 + strcat(Args, " ");
  40 + //the parameters passed to the application being run from the command window.
  41 + strcat(Args, "c:\\vlibras-libs\\update\\py\\VlibrasUpdateInstall.pyc");
  42 +
  43 + if (!CreateProcess( NULL, Args, NULL, NULL, FALSE,
  44 + CREATE_NEW_CONSOLE,
  45 + NULL,
  46 + NULL,
  47 + &StartupInfo,
  48 + &ProcessInfo))
  49 + {
  50 + return GetLastError();
  51 + }
  52 +
  53 + WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
  54 + if(!GetExitCodeProcess(ProcessInfo.hProcess, &rc))
  55 + rc = 0;
  56 +
  57 + CloseHandle(ProcessInfo.hThread);
  58 + CloseHandle(ProcessInfo.hProcess);
  59 +
  60 + return 0;
  61 +}
0 \ No newline at end of file 62 \ No newline at end of file
update/vlibrasUpdate.cpp
@@ -1,172 +0,0 @@ @@ -1,172 +0,0 @@
1 -  
2 -#include <Windows.h>  
3 -#include "util.h"  
4 -#include "janelaAtualizacao.h"  
5 -#include <iostream>  
6 -  
7 -using namespace std;  
8 -using namespace System::Threading;  
9 -using namespace System::Windows::Forms;  
10 -  
11 -void atualizarProgresbar(Object^ sender, DownloadProgressChangedEventArgs^ e){  
12 -  
13 - JanelaAtualizacao::progressBar1->Value= e->ProgressPercentage;  
14 - int kbr = e->BytesReceived/1024;  
15 - int kbtotal = e->TotalBytesToReceive/1024;  
16 - JanelaAtualizacao::lbInfDownload->Text = gcnew String(kbr+" kb ("+kbr/1024+" MB) Baixado de "+kbtotal+" kb ("+kbtotal/1024+" MB) | "+ e->ProgressPercentage+"%");  
17 -  
18 -  
19 -}  
20 -  
21 -  
22 -public ref class UpdateBack  
23 -{  
24 - JanelaAtualizacao^ j;  
25 - bool isSilence;  
26 - String^ playerVersion;  
27 - String^ dictionaryVersion;  
28 -  
29 -public:  
30 - UpdateBack(JanelaAtualizacao^ jan,bool __isSilence)  
31 - {  
32 - j = jan;  
33 - isSilence = __isSilence;  
34 - }  
35 - void start()  
36 - {  
37 - j->setInfoWhite("Estabelecendo conexão com o servidor...");  
38 - //JanelaAtualizacao::progressBar1->Style = ProgressBarStyle::Marquee;  
39 -  
40 -  
41 - if(Util::checkNet())  
42 - {  
43 - j->setInfoWhite("Verificando versão...");  
44 -  
45 - vector<string> versions = Util::checkVersion(true);  
46 - if(versions.size()>2)  
47 - {  
48 -  
49 - switch (versions.size())  
50 - {  
51 - case 3:  
52 - if(versions[0]=="playerVersion")  
53 - {  
54 - installPlayer(versions[2],versions[1]);  
55 - }  
56 - else if(versions[0]=="dictionaryVersion")  
57 - {  
58 - installDicionario(versions[2],versions[1]);  
59 -  
60 - }  
61 - break;  
62 - case 6:  
63 - // if(versions[3]=="dictionaryVersion")  
64 - // {  
65 - // installDicionario(versions[5],versions[4]);  
66 - // //Util::extractZip()  
67 - // }  
68 - if(versions[0]=="playerVersion")  
69 - {  
70 - installPlayer(versions[2],versions[1]);  
71 - }  
72 -  
73 - break;  
74 - }  
75 -  
76 - }  
77 - else  
78 - {  
79 - JanelaAtualizacao::progressBar1->Visible = false;  
80 - j->setInfoGreen("Você já está com a versão mais atualizada!");  
81 - j->EnableButton();  
82 - }  
83 -  
84 - }else  
85 - {  
86 - JanelaAtualizacao::progressBar1->Visible = false;  
87 - j->setInfoRed("Não foi possível estabelecer conexão com o servidor!");  
88 -  
89 - }  
90 -  
91 - if(isSilence)  
92 - j->Close();  
93 - j->EnableButton();  
94 -  
95 - }  
96 -  
97 - void installDicionario(string url, string version)  
98 - {  
99 - //JanelaAtualizacao::progressBar1->Style = ProgressBarStyle::Continuous;  
100 - //JanelaAtualizacao::progressBar1->Value=0;  
101 - Util::Download(gcnew DownloadProgressChangedEventHandler(atualizarProgresbar),url,"vlibrasDicionario.zip");  
102 - j->setInfoWhite("Baixando nova versão do dicionário VLibras ");  
103 - while(JanelaAtualizacao::progressBar1->Value<100);  
104 -  
105 - j->setInfoWhite("Extraindo arquivos...");  
106 -  
107 - //Sleep(3000);  
108 - Util::extractZip("C:\\vlibras-libs\\update\\vlibrasDicionario.zip","C:\\vlibras-libs\\Player\\VLibrasPlayer_Data\\Bundles");  
109 - JanelaAtualizacao::progressBar1->Visible = false;  
110 - j->setInfoGreen("Atualização feita com sucesso!");  
111 - Util::saveNewXmlVersion("",version);  
112 - j->EnableButton();  
113 - }  
114 -  
115 - void installPlayer(string url, string version)  
116 - {  
117 - //j->EnableButton();  
118 - //JanelaAtualizacao::progressBar1->Style = ProgressBarStyle::Continuous;  
119 - //JanelaAtualizacao::progressBar1->Value=0;  
120 - Util::Download(gcnew DownloadProgressChangedEventHandler(atualizarProgresbar),url,"vlibrasInstaller.exe");  
121 - j->setInfoWhite("Baixando nova versão do Vlibras...");  
122 - while(JanelaAtualizacao::progressBar1->Value<100);  
123 -  
124 -  
125 -  
126 - String^ installer = gcnew String("C:\\vlibras-libs\\update\\");  
127 - installer+="vlibrasInstaller.exe";  
128 - //Process::Start(installer);  
129 - System::Diagnostics::Process^ vlibrasinstall = gcnew System::Diagnostics::Process();  
130 - vlibrasinstall->StartInfo->FileName = installer;  
131 - vlibrasinstall->StartInfo->Arguments = " /SILENT /SUPPRESSMSGBOXES /NORESTART ";  
132 - vlibrasinstall->Start();  
133 - Util::saveNewXmlVersion(version,"");  
134 - j->Close();  
135 -  
136 - }  
137 -};  
138 -  
139 -[STAThread]  
140 -int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)  
141 -{  
142 - UpdateBack^ updateBack;  
143 - JanelaAtualizacao^ updateView = gcnew JanelaAtualizacao();  
144 -  
145 - if(__argv[1] != NULL)  
146 - {  
147 - char* silen = "silence";  
148 - if(*__argv[1] == *silen)  
149 - updateBack = gcnew UpdateBack(updateView,true);  
150 - else  
151 - updateBack = gcnew UpdateBack(updateView,false);  
152 - }  
153 - else  
154 - updateBack = gcnew UpdateBack(updateView,false);  
155 -  
156 - Application::EnableVisualStyles();  
157 -  
158 - //Thread^ t2 = gcnew Thread(gcnew ThreadStart(updateView, &JanelaAtualizacao::start));  
159 - //t2->Start();  
160 -  
161 - Thread^ t3 = gcnew Thread(gcnew ThreadStart(updateBack, &UpdateBack::start));  
162 - t3->Start();  
163 -  
164 -  
165 - updateView->ShowDialog();  
166 - t3->Abort();  
167 -  
168 - //Application::Run(updateView);  
169 -  
170 - return 0;  
171 - }  
172 -