summaryrefslogtreecommitdiff
path: root/protocols/Xfire/src/iniupdater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Xfire/src/iniupdater.cpp')
-rw-r--r--protocols/Xfire/src/iniupdater.cpp128
1 files changed, 128 insertions, 0 deletions
diff --git a/protocols/Xfire/src/iniupdater.cpp b/protocols/Xfire/src/iniupdater.cpp
new file mode 100644
index 0000000000..61b99884ed
--- /dev/null
+++ b/protocols/Xfire/src/iniupdater.cpp
@@ -0,0 +1,128 @@
+//iniupdater.cpp by dufte, großen dank an xfireplus.com
+
+#include "stdafx.h"
+
+#include "iniupdater.h"
+#include "baseProtocol.h"
+
+extern HANDLE XFireWorkingFolder;
+extern HANDLE XFireIconFolder;
+
+BOOL CALLBACK DlgUpdateDialogProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ {
+ TranslateDialogDefault(hwndDlg);
+
+ char*buf=NULL; //leeren zeiger für den empfangen buffer
+ GetWWWContent2(INI_WHATSNEW,NULL,FALSE,&buf);
+
+ if(buf!=NULL)
+ {
+ SetDlgItemText(hwndDlg,IDC_UPDATEGAMES,buf);
+ delete[] buf;
+ }
+
+ SetFocus(GetDlgItem(hwndDlg,IDOK));
+
+ return TRUE;
+ }
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ EndDialog(hwndDlg,IDOK);
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hwndDlg,IDCANCEL);
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+void UpdateMyXFireIni(LPVOID dummy) {
+ char request[1024];
+ char file[1024];
+ char file2[1024];
+ char file3[1024];
+
+ //ini pfad rausbekommen
+ FoldersGetCustomPath( XFireWorkingFolder, file, 1024, "" );
+ strcat(file,"\\");
+ strcpy(file2,file);
+ strcpy(file3,file);
+ strcat(file,"xfire_games.new");
+ strcat(file2,"xfire_games.ini");
+ strcat(file3,"xfire_games.old");
+
+ sprintf_s(request,1024,"%s%d",INI_URLREQUEST,getfilesize(file2));
+
+ if(CheckWWWContent(request))
+ {
+ if(DBGetContactSettingByte(NULL,protocolname,"dontaskforupdate",0)==1||DialogBox(hinstance,MAKEINTRESOURCE(IDD_UPDATE),NULL,DlgUpdateDialogProc)==IDOK)
+ {
+ if(GetWWWContent2(request,file,FALSE))
+ {
+ //altes backup löschen
+ remove(file3);
+ //derzeitige ini und sichern
+ rename(file2,file3);
+ //lösche .old, wenn aktiv
+ if(DBGetContactSettingByte(NULL,protocolname,"nobackupini",0))
+ remove(file3);
+ //neue aktiv schalten
+ rename(file,file2);
+
+ if(DBGetContactSettingByte(NULL,protocolname,"dontaskforupdate",0)==0) MSGBOX(Translate("The xfire_games.ini was updated."));
+ }
+ else
+ MSGBOX(Translate("Error during xfire_games Update."));
+ }
+ }
+}
+
+void UpdateMyIcons(LPVOID dummy) {
+ char request[1024];
+ char file[1024];
+ char file2[1024];
+ char file3[1024];
+
+ //ini pfad rausbekommen
+ FoldersGetCustomPath( XFireIconFolder, file, 1024, "" );
+ strcat(file,"\\");
+ strcpy(file2,file);
+ strcpy(file3,file);
+ strcat(file,"icons.new");
+ strcat(file2,"icons.dll");
+ strcat(file3,"icons.old");
+
+ sprintf_s(request,1024,"%s%d",ICO_URLREQUEST,getfilesize(file2));
+
+ if(CheckWWWContent(request))
+ {
+ if(DBGetContactSettingByte(NULL,protocolname,"dontaskforupdate",0)==1||MessageBox(NULL,Translate("There is a new Icons.dll online, do you want to update now?"),"Miranda XFire Protocol Plugin",MB_YESNO|MB_ICONQUESTION)==IDYES)
+ {
+ if(GetWWWContent2(request,file,FALSE)) {
+ //altes backup löschen
+ remove(file3);
+ //derzeitige ini und sichern
+ rename(file2,file3);
+ //lösche .old, wenn aktiv
+ if(DBGetContactSettingByte(NULL,protocolname,"nobackupini",0))
+ remove(file3);
+ //neue aktiv schalten
+ rename(file,file2);
+
+ if(DBGetContactSettingByte(NULL,protocolname,"dontaskforupdate",0)==0) MSGBOX(Translate("The Icons.dll was updated."));
+ }
+ else
+ MSGBOX(Translate("Error during Icons.dll Update."));
+ }
+ }
+} \ No newline at end of file