From 331bd873e62c59d7e188eb7054c5abd46eeba15a Mon Sep 17 00:00:00 2001 From: mataes2007 Date: Sat, 3 Dec 2011 14:38:14 +0000 Subject: PackUpdater: added new parameter for files version bump git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@236 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- PackUpdater/Docs/Readme_eng.txt | 8 ++++++- PackUpdater/Docs/Readme_rus.txt | 10 ++++++-- PackUpdater/Docs/Templates/File1.ini | 7 +++--- PackUpdater/Src/Common.h | 5 ++-- PackUpdater/Src/Utils.cpp | 45 +++++++++++++++++++++++++++++++++--- PackUpdater/Version.h | 6 ++--- 6 files changed, 66 insertions(+), 15 deletions(-) diff --git a/PackUpdater/Docs/Readme_eng.txt b/PackUpdater/Docs/Readme_eng.txt index 858291b..8dc336f 100644 --- a/PackUpdater/Docs/Readme_eng.txt +++ b/PackUpdater/Docs/Readme_eng.txt @@ -1,5 +1,5 @@ ================== -Pack Updater 0.0.9 +Pack Updater 0.1.0 ================== Miranda IM plugin that do automatic or manual Miranda packs update. @@ -16,6 +16,11 @@ Plugin maybe interesting for packs author, which wants do update of their pack a 0. Changelog ----------------- +0.1.0 ++ now not installed files are not updated ++ added an additional parameter "Force" in the description of the file. With it you an update not installed files +* Changed FileType parameter type + 0.0.9 * Fixed order in update list @@ -110,6 +115,7 @@ InfoURL - Optional. If it writed, message box that user see have button "See inf AdvFolder - Optional. If it writed, set subfolder in folder defined FileType. +Force - Optional. If it writed, the file will be offered for renewal, even if you do not installed. 4. Download file with infirmation and updates on server. diff --git a/PackUpdater/Docs/Readme_rus.txt b/PackUpdater/Docs/Readme_rus.txt index 05418b5..f469d7c 100644 --- a/PackUpdater/Docs/Readme_rus.txt +++ b/PackUpdater/Docs/Readme_rus.txt @@ -1,5 +1,5 @@ ================== -Pack Updater 0.0.9 +Pack Updater 0.1.0 ================== Плагин для Miranda IM, выполняющий автоматическое обновление сборок (паков). @@ -9,13 +9,18 @@ Pack Updater 0.0.9 0. История версий 1. Как использовать? 2. Как оно работает? -3. Цопирайты и прочее +3. Копирайты и прочее ----------------- 0. История версий ----------------- +0.1.0 ++ теперь отсутствующие файлы не обновляются ++ добавлен дополнительный параметр Force в описании файла. С ним можно обновлять отсутсвующие файлы +* изменен тип параметра FileType + 0.0.9 * Исправлен баг с порядком в списке обновлений @@ -110,6 +115,7 @@ InfoURL - AdvFolder - Опционально. Если присутствует, то задает подпапку в папке определяемой типом файла. +Force - Опционально. Если присутствует, то файл будет предложен для обновления, даже если отсутствует. 4. Заливаем файл с инфой о версиях и апдейты на сервер. diff --git a/PackUpdater/Docs/Templates/File1.ini b/PackUpdater/Docs/Templates/File1.ini index ae99847..311c75b 100644 --- a/PackUpdater/Docs/Templates/File1.ini +++ b/PackUpdater/Docs/Templates/File1.ini @@ -5,7 +5,8 @@ DownloadURL = "http://mataes.googlecode.com/files/Miranda%20IM%20Mataes%20Pack%2 DiskFileName = "Miranda IM Mataes Pack v0.8.3.exe" InfoURL = "http://miranda-planet.com/forum/index.php?showtopic=6121" Descr="Test1" -FileType="1" +FileType=1 +Force=1 [FileInfo_2] FileVersion = 0.0.1 @@ -13,7 +14,7 @@ Message = "Test Plugin" DownloadURL = "http://mataes.googlecode.com/files/Test_Plugin.dll" DiskFileName = "Test_plugin.dll" Descr="Test2" -FileType="2" +FileType=2 [FileInfo_3] FileVersion = 0.0.1 @@ -21,4 +22,4 @@ Message = "Test Icon" DownloadURL = "http://mataes.googlecode.com/files/Test_Icon.dll" DiskFileName = "Test_Icon.dll" Descr="Test3" -FileType="3" \ No newline at end of file +FileType=3 \ No newline at end of file diff --git a/PackUpdater/Src/Common.h b/PackUpdater/Src/Common.h index e976c46..49cf294 100644 --- a/PackUpdater/Src/Common.h +++ b/PackUpdater/Src/Common.h @@ -45,7 +45,7 @@ Boston, MA 02111-1307, USA. #include #include #include -#include +#include "m_popup2.h" #include #include @@ -58,12 +58,10 @@ Boston, MA 02111-1307, USA. #define MODULEW L"Pack Updater" #ifdef _UNICODE #define DEFAULT_UPDATES_FOLDER L"Pack Updates" - #define MIRANDA_USERDATAT MIRANDA_USERDATAW typedef std::wstring tString; #define MODULE MODULEW #else #define DEFAULT_UPDATES_FOLDER "Pack Updates" - #define MIRANDA_USERDATAT MIRANDA_USERDATA typedef std::string tString; #define MODULE MODULEA #endif @@ -87,6 +85,7 @@ struct FILEINFO BOOL enabled; BYTE FileType; INT FileNum; + BYTE Force; }; struct PackUpdaterIconList diff --git a/PackUpdater/Src/Utils.cpp b/PackUpdater/Src/Utils.cpp index 1c77076..3665fdb 100644 --- a/PackUpdater/Src/Utils.cpp +++ b/PackUpdater/Src/Utils.cpp @@ -291,8 +291,8 @@ static void CheckUpdates(void *) } // end check update name lstrcpyn(Files[CurrentFile].File.tszDiskPath, tszBuff, SIZEOF(Files[CurrentFile].File.tszDiskPath)); GetPrivateProfileString(tszFileInfo, _T("InfoURL"), _T(""), Files[CurrentFile].tszInfoURL, SIZEOF(Files[CurrentFile].tszInfoURL), tszTmpIni); - GetPrivateProfileString(tszFileInfo, _T("FileType"), _T(""), tszBuff, SIZEOF(tszBuff), tszTmpIni); - Files[CurrentFile].FileType = _tstoi(tszBuff); + Files[CurrentFile].FileType = GetPrivateProfileInt(tszFileInfo, _T("FileType"), 0, tszTmpIni); + Files[CurrentFile].Force = GetPrivateProfileInt(tszFileInfo, _T("Force"), 0, tszTmpIni); Files[CurrentFile].FileNum = CurrentFile+1; if (Files[CurrentFile].FileType == 2) @@ -321,7 +321,46 @@ static void CheckUpdates(void *) } // user have not admin's rights else { - UpdateFiles.push_back(Files[CurrentFile]); + //добавить проверку на существование файла + TCHAR tszFilePathDest[MAX_PATH] = {0}; + TCHAR* tszUtilRootPlug = NULL; + TCHAR* tszUtilRootIco = NULL; + TCHAR* tszUtilRoot = NULL; + + switch (Files[CurrentFile].FileType) + { + case 0: + case 1: + break; + case 2: + tszUtilRootPlug = Utils_ReplaceVarsT(_T("%miranda_path%\\Plugins")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootPlug, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootPlug, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRootPlug); + break; + case 3: + tszUtilRootIco = Utils_ReplaceVarsT(_T("%miranda_path%\\Icons")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRootIco, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRootIco, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRootIco); + break; + case 4: + case 5: + tszUtilRoot = Utils_ReplaceVarsT(_T("%miranda_path%")); + if (lstrcmp(Files[CurrentFile].tszAdvFolder, _T("")) == 0) + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s"), tszUtilRoot, Files[CurrentFile].File.tszDiskPath); + else + mir_sntprintf(tszFilePathDest, SIZEOF(tszFilePathDest), _T("%s\\%s\\%s"), tszUtilRoot, Files[CurrentFile].tszAdvFolder, Files[CurrentFile].File.tszDiskPath); + mir_free(tszUtilRoot); + break; + }//end* switch (Files[CurrentFile].FileType) + + if (Files[CurrentFile].Force || Exists(tszFilePathDest)) + UpdateFiles.push_back(Files[CurrentFile]); // Save last version lstrcpyn(Files[CurrentFile].tszLastVer, Files[CurrentFile].tszNewVer, SIZEOF(Files[CurrentFile].tszLastVer)); mir_snprintf(szKey, SIZEOF(szKey), "File_%d_LastVersion", CurrentFile + 1); diff --git a/PackUpdater/Version.h b/PackUpdater/Version.h index 14b51f7..3958f33 100644 --- a/PackUpdater/Version.h +++ b/PackUpdater/Version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 0 -#define __RELEASE_NUM 0 -#define __BUILD_NUM 9 +#define __RELEASE_NUM 1 +#define __BUILD_NUM 0 #define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM #define __FILEVERSION_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM @@ -25,4 +25,4 @@ #define __AUTHOR "Mataes, ZERO_BiT" #define __AUTHOREMAIL "mataes2007@gmail.com, zero-bit@mail.ru" #define __AUTHORWEB "http://mataes.googlecode.com/svn/Miranda/Plugins/PackUpdater/" -#define __COPYRIGHT "© 2010 Mataes, 2007 ZERO_BiT" +#define __COPYRIGHT "© 2011 Mataes, 2007 ZERO_BiT" -- cgit v1.2.3