diff options
author | Robert Pösel <robyer@seznam.cz> | 2014-04-14 09:35:31 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2014-04-14 09:35:31 +0000 |
commit | 98cc2fb7669f4fe014c78baca0e71015f63b6191 (patch) | |
tree | dfe7582b774cdc4fe01b055757002d76e5e5fce7 | |
parent | 14efff8cac3612ae7340e1f3ad791418c941468d (diff) |
NameDay: Update with my old changes (still not adopted)
- Ignore diacritict when checking names
- Check also own defined name through UserInfoEx
- Another small fixes / updates
- Add TODO list
git-svn-id: http://svn.miranda-ng.org/main/trunk@8970 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r-- | plugins/!NotAdopted/name_day/name_day.cpp | 42 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/name_day.vcproj | 411 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/name_day_core.cpp | 93 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/name_day_core.h | 5 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/namedayplug.aps | bin | 45712 -> 0 bytes | |||
-rw-r--r-- | plugins/!NotAdopted/name_day/static_database.h | 55 | ||||
-rw-r--r-- | plugins/!NotAdopted/name_day/todo.txt | 23 |
7 files changed, 524 insertions, 105 deletions
diff --git a/plugins/!NotAdopted/name_day/name_day.cpp b/plugins/!NotAdopted/name_day/name_day.cpp index 822f6ba439..7ef4b65be8 100644 --- a/plugins/!NotAdopted/name_day/name_day.cpp +++ b/plugins/!NotAdopted/name_day/name_day.cpp @@ -2,30 +2,38 @@ * @file Name day plugin */ #include <windows.h> -#include "../../headers_c/newpluginapi.h" +#include <newpluginapi.h> #include "name_day_core.h" static name_day_core_t name_day_core; -HINSTANCE hInst; -PLUGINLINK *pluginLink; +HINSTANCE hInst = NULL; +PLUGINLINK *pluginLink = NULL; + /** * @brief Plugin info. * */ -PLUGININFO pluginInfo={ - sizeof(PLUGININFO), - "Name Day Plugin", - PLUGIN_MAKE_VERSION(0, 0, 0, 7), +PLUGININFOEX pluginInfo={ + sizeof(PLUGININFOEX), + #ifdef _WIN64 + "Name Day x64", + #else + "Name Day", + #endif + PLUGIN_MAKE_VERSION(0, 0, 1, 0), "The Name Day plugin.", - "Tibor Szabo", - "tibor.szabo@gmail.com", - " 2005 Tibor Szabo", - "", - 0, //not transient - 0 //doesn't replace anything built-in + "Tibor Szabo, Robert Psel", + "robyer@seznam.cz", + " 2005 Tibor Szabo, 2011 Robert Psel", + "http://code.google.com/p/robyer", + UNICODE_AWARE, //not transient + 0, //doesn't replace anything built-in + // {E3FFE398-7004-46df-9FF1-9E0B8239FDE2} + { 0xe3ffe398, 0x7004, 0x46df, { 0x9f, 0xf1, 0x9e, 0xb, 0x82, 0x39, 0xfd, 0xe2 } } + }; /** @@ -43,7 +51,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) * @brief Plugin Info * */ -extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion) +extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion) { return &pluginInfo; } @@ -66,6 +74,12 @@ extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) return 0; } +static const MUUID interfaces[] = {MIID_NAMEDAY, MIID_LAST}; +extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) +{ + return interfaces; +} + /** * @brief Unload * diff --git a/plugins/!NotAdopted/name_day/name_day.vcproj b/plugins/!NotAdopted/name_day/name_day.vcproj index 0d90239c80..1cae7babbc 100644 --- a/plugins/!NotAdopted/name_day/name_day.vcproj +++ b/plugins/!NotAdopted/name_day/name_day.vcproj @@ -1,138 +1,386 @@ <?xml version="1.0" encoding="windows-1250"?> <VisualStudioProject ProjectType="Visual C++" - Version="7.10" + Version="9,00" Name="namedayplug" - SccProjectName="" - SccLocalPath=""> + ProjectGUID="{6A2EFA1C-A2EA-4E79-8BAF-69A2D7881B61}" + RootNamespace="namedayplug" + TargetFrameworkVersion="131072" + > <Platforms> <Platform - Name="Win32"/> + Name="Win32" + /> + <Platform + Name="x64" + /> </Platforms> + <ToolFiles> + </ToolFiles> <Configurations> <Configuration Name="Release|Win32" OutputDirectory=".\Release" IntermediateDirectory=".\Release" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE" - CharacterSet="2"> + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Release/name_day.tlb" + HeaderFileName="" + /> <Tool Name="VCCLCompilerTool" Optimization="1" InlineFunctionExpansion="1" PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL" - StringPooling="TRUE" + StringPooling="true" RuntimeLibrary="2" - EnableFunctionLevelLinking="TRUE" - UsePrecompiledHeader="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" PrecompiledHeaderFile=".\Release/name_day.pch" AssemblerListingLocation=".\Release/" ObjectFile=".\Release/" ProgramDataBaseFileName=".\Release/" WarningLevel="3" - SuppressStartupBanner="TRUE"/> + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="2057" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCPreLinkEventTool" + /> <Tool Name="VCLinkerTool" OutputFile=".\Release/name_day.dll" LinkIncremental="1" - SuppressStartupBanner="TRUE" + SuppressStartupBanner="true" ProgramDatabaseFile=".\Release/name_day.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" ImportLibrary=".\Release/name_day.lib" - TargetMachine="1"/> + TargetMachine="1" + /> <Tool - Name="VCMIDLTool" - PreprocessorDefinitions="NDEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" - TypeLibraryName=".\Release/name_day.tlb" - HeaderFileName=""/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> + Name="VCALinkTool" + /> <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="NDEBUG" - Culture="2057"/> + Name="VCManifestTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCBscMakeTool" + /> <Tool - Name="VCWebDeploymentTool"/> + Name="VCFxCopTool" + /> <Tool - Name="VCManagedWrapperGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> <Configuration Name="Debug|Win32" OutputDirectory=".\Debug" IntermediateDirectory=".\Debug" ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" UseOfMFC="0" - ATLMinimizesCRunTimeLibraryUsage="FALSE" - CharacterSet="2"> + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="_DEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="1" + TypeLibraryName=".\Debug/name_day.tlb" + HeaderFileName="" + /> <Tool Name="VCCLCompilerTool" Optimization="0" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS" BasicRuntimeChecks="3" RuntimeLibrary="1" - UsePrecompiledHeader="2" + UsePrecompiledHeader="0" PrecompiledHeaderFile=".\Debug/name_day.pch" AssemblerListingLocation=".\Debug/" ObjectFile=".\Debug/" ProgramDataBaseFileName=".\Debug/" WarningLevel="3" - SuppressStartupBanner="TRUE" - DebugInformationFormat="4"/> + SuppressStartupBanner="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="_DEBUG" + Culture="2057" + /> <Tool - Name="VCCustomBuildTool"/> + Name="VCPreLinkEventTool" + /> <Tool Name="VCLinkerTool" OutputFile=".\Debug/name_day.dll" LinkIncremental="1" - SuppressStartupBanner="TRUE" - GenerateDebugInformation="TRUE" + SuppressStartupBanner="true" + GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug/name_day.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" ImportLibrary=".\Debug/name_day.lib" - TargetMachine="1"/> + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + PreprocessorDefinitions="NDEBUG" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" + TypeLibraryName=".\Release/name_day.tlb" + HeaderFileName="" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="1" + InlineFunctionExpansion="1" + PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL" + StringPooling="true" + RuntimeLibrary="2" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + PrecompiledHeaderFile=".\Release/name_day.pch" + AssemblerListingLocation=".\Release/" + ObjectFile=".\Release/" + ProgramDataBaseFileName=".\Release/" + WarningLevel="3" + SuppressStartupBanner="true" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG" + Culture="2057" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\Release/name_day.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + ProgramDatabaseFile=".\Release/name_day.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Release/name_day.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Debug|x64" + OutputDirectory="$(PlatformName)\$(ConfigurationName)" + IntermediateDirectory="$(PlatformName)\$(ConfigurationName)" + ConfigurationType="2" + InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" + UseOfMFC="0" + ATLMinimizesCRunTimeLibraryUsage="false" + CharacterSet="2" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> <Tool Name="VCMIDLTool" PreprocessorDefinitions="_DEBUG" - MkTypLibCompatible="TRUE" - SuppressStartupBanner="TRUE" - TargetEnvironment="1" + MkTypLibCompatible="true" + SuppressStartupBanner="true" + TargetEnvironment="3" TypeLibraryName=".\Debug/name_day.tlb" - HeaderFileName=""/> + HeaderFileName="" + /> <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="_WIN64;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + UsePrecompiledHeader="0" + PrecompiledHeaderFile=".\Debug/name_day.pch" + AssemblerListingLocation=".\Debug/" + ObjectFile=".\Debug/" + ProgramDataBaseFileName=".\Debug/" + WarningLevel="3" + SuppressStartupBanner="true" + DebugInformationFormat="3" + /> <Tool - Name="VCPreLinkEventTool"/> + Name="VCManagedResourceCompilerTool" + /> <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" - Culture="2057"/> + Culture="2057" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile=".\Debug/name_day.dll" + LinkIncremental="1" + SuppressStartupBanner="true" + GenerateDebugInformation="true" + ProgramDatabaseFile=".\Debug/name_day.pdb" + RandomizedBaseAddress="1" + DataExecutionPrevention="0" + ImportLibrary=".\Debug/name_day.lib" + TargetMachine="17" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> <Tool - Name="VCWebServiceProxyGeneratorTool"/> + Name="VCXDCMakeTool" + /> <Tool - Name="VCXMLDataGeneratorTool"/> + Name="VCBscMakeTool" + /> <Tool - Name="VCWebDeploymentTool"/> + Name="VCFxCopTool" + /> <Tool - Name="VCManagedWrapperGeneratorTool"/> + Name="VCAppVerifierTool" + /> <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> + Name="VCPostBuildEventTool" + /> </Configuration> </Configurations> <References> @@ -140,57 +388,72 @@ <Files> <Filter Name="Source Files" - Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"> + Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" + > <File - RelativePath=".\name_day.cpp"> + RelativePath=".\name_day.cpp" + > </File> <File - RelativePath=".\name_day_core.cpp"> + RelativePath=".\name_day_core.cpp" + > </File> <File - RelativePath=".\name_day_core.h"> + RelativePath=".\name_day_core.h" + > </File> <File - RelativePath=".\namedayplug.rc"> + RelativePath=".\namedayplug.rc" + > </File> <File - RelativePath=".\static_database.h"> + RelativePath=".\static_database.h" + > </File> <Filter Name="calendar" - Filter=""> + > <File - RelativePath=".\calendar\calendar.cpp"> + RelativePath=".\calendar\calendar.cpp" + > </File> <File - RelativePath=".\calendar\calendar.h"> + RelativePath=".\calendar\calendar.h" + > </File> </Filter> <Filter Name="utils" - Filter=""> + > <File - RelativePath=".\utils\string_tokenizer.h"> + RelativePath=".\utils\string_tokenizer.h" + > </File> </Filter> </Filter> <File - RelativePath=".\resources\baloons.ico"> + RelativePath=".\resources\baloons.ico" + > </File> <File - RelativePath=".\resources\icon1.ico"> + RelativePath=".\resources\icon1.ico" + > </File> <File - RelativePath=".\icon1.ico"> + RelativePath=".\icon1.ico" + > </File> <File - RelativePath=".\resources\icon2.ico"> + RelativePath=".\resources\icon2.ico" + > </File> <File - RelativePath=".\resources\icon3.ico"> + RelativePath=".\resources\icon3.ico" + > </File> <File - RelativePath=".\resource.h"> + RelativePath=".\resource.h" + > </File> </Files> <Globals> diff --git a/plugins/!NotAdopted/name_day/name_day_core.cpp b/plugins/!NotAdopted/name_day/name_day_core.cpp index 9d962f8ad3..29622b6859 100644 --- a/plugins/!NotAdopted/name_day/name_day_core.cpp +++ b/plugins/!NotAdopted/name_day/name_day_core.cpp @@ -116,11 +116,27 @@ void name_day_core_t::perform_name_day_test(void) // And the first name. DBVARIANT dbv; - dbv.pszVal = NULL; - DBGetContactSetting(contact_handle, proto, "FirstName", &dbv); + bool found = false; + + if (!found && !DBGetContactSettingString(contact_handle, proto, "FirstName", &dbv)) { + string first_name = dbv.pszVal; - if (dbv.pszVal) { + for (unsigned i = 0; i < calendars.size(); ++i) { + + const string name_day = calendars[i].get_name(sys_time.wMonth, sys_time.wDay); + + // This user has name day. + // Create the miranda event. + if (has_name_day(name_day, first_name)) { + found = true; + create_name_day_event(contact_handle, contact_name, first_name, calendars[i].country); + } + } + DBFreeVariant(&dbv); + } + + if (!found && !DBGetContactSettingString(contact_handle, "UserInfo", "FirstName", &dbv)) { string first_name = dbv.pszVal; for (unsigned i = 0; i < calendars.size(); ++i) { @@ -130,10 +146,13 @@ void name_day_core_t::perform_name_day_test(void) // This user has name day. // Create the miranda event. if (has_name_day(name_day, first_name)) { + found = true; create_name_day_event(contact_handle, contact_name, first_name, calendars[i].country); } } - } + + DBFreeVariant(&dbv); + } contact_handle = (HANDLE)CallService(MS_DB_CONTACT_FINDNEXT, (WPARAM)contact_handle, 0); } @@ -248,6 +267,68 @@ void name_day_core_t::create_sub_menu(const calendar_t &calendar, const string & } +const char Win1250[] = {(char)0xE1,(char)0xE4,(char)0xB9,(char)0xE2, + (char)0xE3,(char)0xE8,(char)0xE6,(char)0xE7, + (char)0xEF,(char)0xF0,(char)0xE9,(char)0xEC, + (char)0xEB,(char)0xEA,(char)0xED,(char)0xEE, + (char)0xBE,(char)0xB3,(char)0xE5,(char)0xF2, + (char)0xF1,(char)0xF3,(char)0xF6,(char)0xF4, + (char)0xF5,(char)0xF8,(char)0xE0,(char)0x9A, + (char)0xBA,(char)0x9C,(char)0x9D,(char)0xFE, + (char)0xFA,(char)0xF9,(char)0xFC,(char)0xFB, + (char)0xFD,(char)0x9E,(char)0x9F,(char)0xBF, + (char)0xC1,(char)0xC4,(char)0xA5,(char)0xC2, + (char)0xC3,(char)0xC8,(char)0xC6,(char)0xC7, + (char)0xCF,(char)0xD0,(char)0xC9,(char)0xCC, + (char)0xCB,(char)0xCA,(char)0xCD,(char)0xCE, + (char)0xBC,(char)0xA3,(char)0xC5,(char)0xD2, + (char)0xD1,(char)0xD3,(char)0xD6,(char)0xD4, + (char)0xD5,(char)0xD8,(char)0xC0,(char)0x8A, + (char)0xAA,(char)0x8C,(char)0x8D,(char)0xDE, + (char)0xDA,(char)0xD9,(char)0xDC,(char)0xDB, + (char)0xDD,(char)0x8E,(char)0x8F,(char)0xAF, + (char)0x00}; +const char WithoutDiac[] = {(char)0x61,(char)0x61,(char)0x61,(char)0x61, + (char)0x61,(char)0x63,(char)0x63,(char)0x63, + (char)0x64,(char)0x64,(char)0x65,(char)0x65, + (char)0x65,(char)0x65,(char)0x69,(char)0x69, + (char)0x6C,(char)0x6C,(char)0x6C,(char)0x6E, + (char)0x6E,(char)0x6F,(char)0x6F,(char)0x6F, + (char)0x6F,(char)0x72,(char)0x72,(char)0x73, + (char)0x73,(char)0x73,(char)0x74,(char)0x74, + (char)0x75,(char)0x75,(char)0x75,(char)0x75, + (char)0x79,(char)0x7A,(char)0x7A,(char)0x7A, + (char)0x41,(char)0x41,(char)0x41,(char)0x41, + (char)0x41,(char)0x43,(char)0x43,(char)0x43, + (char)0x44,(char)0x44,(char)0x45,(char)0x45, + (char)0x45,(char)0x45,(char)0x49,(char)0x49, + (char)0x4C,(char)0x4C,(char)0x4C,(char)0x4E, + (char)0x4E,(char)0x4F,(char)0x4F,(char)0x4F, + (char)0x4F,(char)0x52,(char)0x52,(char)0x53, + (char)0x53,(char)0x53,(char)0x54,(char)0x54, + (char)0x55,(char)0x55,(char)0x55,(char)0x55, + (char)0x59,(char)0x5A,(char)0x5A,(char)0x5A, + (char)0x00}; + +string removeDiacritics( string data ) +{ + string new_string = ""; + + char *find; + + for ( string::size_type i = 0; i < data.length( ); i++ ) + { + find = (char *)strchr(Win1250,data.at(i)); + if (find) { + new_string += (int)WithoutDiac[find - Win1250]; + } else { + new_string += (char)data.at(i); + } + } + + return new_string; +} + /** * @brief has name day * @param name_day @@ -259,13 +340,15 @@ bool name_day_core_t::has_name_day(const string &name_day, const string &first_n // Parse the name day string for today. // Extract the names. + string name = removeDiacritics(first_name); + vector<string> today_names = string_tokenizer(name_day, " "); // Try to match the first name with the extracted names. for (size_t i = 0; i < today_names.size(); ++i) { // Huray we have found the contact who could celebrate. - if (today_names[i] == first_name) { + if (stricmp(today_names[i].c_str(), name.c_str()) == 0) { return true; } } diff --git a/plugins/!NotAdopted/name_day/name_day_core.h b/plugins/!NotAdopted/name_day/name_day_core.h index d219dac240..1e1e25e9a8 100644 --- a/plugins/!NotAdopted/name_day/name_day_core.h +++ b/plugins/!NotAdopted/name_day/name_day_core.h @@ -5,6 +5,11 @@ #ifndef name_day_core_h #define name_day_core_h +#pragma warning(disable:4996) + +#define MIID_NAMEDAY { 0x5dc83ad2, 0x868c, 0x4c50, { 0xad, 0x33, 0x40, 0x51, 0x22, 0xe8, 0xcb, 0x38 } } + + #include "calendar/calendar.h" // WInd00z stuff diff --git a/plugins/!NotAdopted/name_day/namedayplug.aps b/plugins/!NotAdopted/name_day/namedayplug.aps Binary files differdeleted file mode 100644 index 0367dd45e9..0000000000 --- a/plugins/!NotAdopted/name_day/namedayplug.aps +++ /dev/null diff --git a/plugins/!NotAdopted/name_day/static_database.h b/plugins/!NotAdopted/name_day/static_database.h index 9eabb913e5..f29582db4e 100644 --- a/plugins/!NotAdopted/name_day/static_database.h +++ b/plugins/!NotAdopted/name_day/static_database.h @@ -16,7 +16,7 @@ static char *czech_names[] = { "Hynek", "Nela", "Blazej", "Jarmila", "Dobromila", "Vanda", "Veronika", "Milada",
"Apolena", "Mojmir", "Bozena", "Slavina", "Vinceslav", "Valentyn", "Jirina",
"Ljuba", "Miloslava", "Gizela", "Patrik", "Oldrich", "Lenka", "Petr", "Svatopluk",
- "Matej", "Liliana", "Dorota", "Alexandr", "Lumir", ".....",
+ "Matej", "Liliana", "Dorota", "Alexandr", "Lumir", "Horymir",
"Bedrich", "Anezka", "Kamil", "Stela", "Kazimir", "Miroslav", "Tomas", "Gabriela",
"Frantiska", "Viktorie", "Andela", "Rehor", "Ruzena", "Rut a Matylda", "Ida",
@@ -83,25 +83,56 @@ static char *slovak_names[] = { "Tatiana", "Erik a Erika", "Blazej", "Veronika", "Agata", "Dorota", "Vanda", "Zoja", "Zdenko",
"Gabriela", "Dezider", "Perla", "Arpad", "Valentin", "Pravoslav", "Ida a Liana", "Miloslava", "Jaromir",
- "Vlasta", "Livia", "Eleonora", "Etela", "Roman a Romana", "Matej", "Frederik", "Viktor", "Alexander",
"Zlatica", "....",
+ "Vlasta", "Livia", "Eleonora", "Etela", "Roman a Romana", "Matej", "Frederik", "Viktor", "Alexander",
+ "Zlatica", "....",
- "Albin", "Anezka", "Bohumil a Bohumila", "Kazimir", "Fridrich", "Radoslav", "Tomas", "Alan", "Frantiska",
"Branislav", "Angela", "Gregor", "Vlastimil", "Matilda", "Svetlana", "Boleslav", "Lubica", "Eduard",
"Jozef", "Vtazoslav", "Blahoslav", "Benadik", "Adrian", "Gabriel", "Marian", "Emanuel", "Alena", "Sona",
"Miroslav", "Vieroslava", "Benjamin",
+ "Albin", "Anezka", "Bohumil a Bohumila", "Kazimir", "Fridrich", "Radoslav", "Tomas", "Alan", "Frantiska",
+ "Branislav", "Angela", "Gregor", "Vlastimil", "Matilda", "Svetlana", "Boleslav", "Lubica", "Eduard",
+ "Jozef", "Vtazoslav", "Blahoslav", "Benadik", "Adrian", "Gabriel", "Marian", "Emanuel", "Alena", "Sona",
+ "Miroslav", "Vieroslava", "Benjamin",
- "Hugo", "Zita", "Richard", "Izidor", "Miroslava", "Irena", "Zoltan", "Albert", "Milena", "Igor",
"Julius", "Estera", "Ales", "Justina", "Fedor", "Dana a Danica", "Rudolf", "Valer", "Jela", "Marcel",
"Ervin", "Slavomir", "Vojtech", "Juraj", "Marek", "Jaroslava", "Jaroslav", "Jarmila", "Lea", "Anastazia",
+ "Hugo", "Zita", "Richard", "Izidor", "Miroslava", "Irena", "Zoltan", "Albert", "Milena", "Igor",
+ "Julius", "Estera", "Ales", "Justina", "Fedor", "Dana a Danica", "Rudolf", "Valer", "Jela", "Marcel",
+ "Ervin", "Slavomir", "Vojtech", "Juraj", "Marek", "Jaroslava", "Jaroslav", "Jarmila", "Lea", "Anastazia",
- "Sviatok prace", "Zigmund", "Galina", "Florian", "Lesana", "Hermina", "Monika", "Ingrida", "Roland",
"Viktoria", "Blazena", "Pankrac", "Servc", "Bonifac", "Zofia", "Svetozar", "Gizela", "Viola",
"Gertruda", "Bernard", "Zina", "Julia a Juliana", "Zelmira", "Ela", "Urban", "Dusan", "Iveta", "Viliam",
"Vilma", "Ferdinand", "Petronela",
-
"Zaneta", "Xenia", "Karolina", "Lenka", "Laura", "Norbert", "Robert", "Medard", "Stanislava",
"Margareta", "Dobroslava", "Zlatko", "Anton", "Vasil", "Vit", "Blanka", "Adolf", "Vratislav", "Alfred",
"Valeria", "Alojz", "Paulina", "Sidonia", "Jan", "Tadeas", "Adriana", "Ladislav", "Beata",
"Peter a Pavol a Petra", "Melania",
-
"Diana", "Berta", "Miloslav", "Prokop", "Cyril a Metod", "Patrik a Patricia", "Oliver", "Ivan", "Lujza",
"Amalia", "Milota", "Nina", "Margita", "Kamil", "Henrich", "Drahomir", "Bohuslav", "Kamila", "Dusana",
"Ilja", "Daniel", "Magdalena", "Olga", "Vladimir", "Jakub", "Anna", "Bozena", "Kristof", "Marta",
"Libusa", "Ignac",
+ "Sviatok prace", "Zigmund", "Galina", "Florian", "Lesana", "Hermina", "Monika", "Ingrida", "Roland",
+ "Viktoria", "Blazena", "Pankrac", "Servc", "Bonifac", "Zofia", "Svetozar", "Gizela", "Viola",
+ "Gertruda", "Bernard", "Zina", "Julia a Juliana", "Zelmira", "Ela", "Urban", "Dusan", "Iveta", "Viliam",
+ "Vilma", "Ferdinand", "Petronela",
+
+ "Zaneta", "Xenia", "Karolina", "Lenka", "Laura", "Norbert", "Robert", "Medard", "Stanislava",
+ "Margareta", "Dobroslava", "Zlatko", "Anton", "Vasil", "Vit", "Blanka", "Adolf", "Vratislav", "Alfred",
+ "Valeria", "Alojz", "Paulina", "Sidonia", "Jan", "Tadeas", "Adriana", "Ladislav", "Beata",
+ "Peter a Pavol a Petra", "Melania",
+
+ "Diana", "Berta", "Miloslav", "Prokop", "Cyril a Metod", "Patrik a Patricia", "Oliver", "Ivan", "Lujza",
+ "Amalia", "Milota", "Nina", "Margita", "Kamil", "Henrich", "Drahomir", "Bohuslav", "Kamila", "Dusana",
+ "Ilja", "Daniel", "Magdalena", "Olga", "Vladimir", "Jakub", "Anna", "Bozena", "Kristof", "Marta",
+ "Libusa", "Ignac",
- "Bozidara", "Gustav", "Jergus", "Dominik", "Hortenzia", "Jozefina", "Stefania", "Oskar", "Lubomira",
"Vavrinec", "Zuzana", "Darina", "Lubomir", "Mojmir", "Marcela", "Leonard", "Milica", "Elena", "Lydia",
"Anabela", "Jana", "Tichomir", "Filip", "Bartolomej", "Ludovit", "Samuel", "Silvia", "Augustin",
"Nikola", "Ruzena", "Nora",
+ "Bozidara", "Gustav", "Jergus", "Dominik", "Hortenzia", "Jozefina", "Stefania", "Oskar", "Lubomira",
+ "Vavrinec", "Zuzana", "Darina", "Lubomir", "Mojmir", "Marcela", "Leonard", "Milica", "Elena", "Lydia",
+ "Anabela", "Jana", "Tichomir", "Filip", "Bartolomej", "Ludovit", "Samuel", "Silvia", "Augustin",
+ "Nikola", "Ruzena", "Nora",
- "Drahoslava", "Linda", "Belo", "Rozalia", "Regina", "Alica", "Marianna", "Miriama", "Martina", "Oleg",
"Bystrik", "Maria", "Ctibor", "Ludomil", "Jolana", "Ludomila a Ludmila", "Olympia", "Eugenia",
"Konstantin", "Luboslava", "Matus", "Moric", "Zdenka", "Lubos", "Vladislav", "Edita", "Cyprian",
"Vaclav", "Michal", "Jarolim",
+ "Drahoslava", "Linda", "Belo", "Rozalia", "Regina", "Alica", "Marianna", "Miriama", "Martina", "Oleg",
+ "Bystrik", "Maria", "Ctibor", "Ludomil", "Jolana", "Ludomila a Ludmila", "Olympia", "Eugenia",
+ "Konstantin", "Luboslava", "Matus", "Moric", "Zdenka", "Lubos", "Vladislav", "Edita", "Cyprian",
+ "Vaclav", "Michal", "Jarolim",
- "Arnold", "Levoslav", "Stela", "Frantisek", "Viera", "Natalia", "Eliska", "Brigita", "Dionyz",
"Slavomira", "Valentina", "Maximilian", "Koloman", "Boris", "Terezia", "Vladimira", "Hedviga", "Lukas",
"Kristian", "Vendelin", "Ursula", "Sergej", "Alojza", "Kvetoslava", "Aurel", "Demeter", "Sabina",
"Dobromila", "Klara", "Simona", "Aurelia",
+ "Arnold", "Levoslav", "Stela", "Frantisek", "Viera", "Natalia", "Eliska", "Brigita", "Dionyz",
+ "Slavomira", "Valentina", "Maximilian", "Koloman", "Boris", "Terezia", "Vladimira", "Hedviga", "Lukas",
+ "Kristian", "Vendelin", "Ursula", "Sergej", "Alojza", "Kvetoslava", "Aurel", "Demeter", "Sabina",
+ "Dobromila", "Klara", "Simona", "Aurelia",
- "Denisa", "Pamiatka zosnulych", "Hubert", "Karol", "Imrich", "Renata", "Rene", "Bohumir", "Teodor",
"Tibor", "Martin", "Svatopluk", "Stanislav", "Irma", "Leopold", "Agnesa", "Klaudia", "Eugen", "Alzbeta",
"Felix", "Elvira", "Cecilia", "Klement", "Emilia", "Katarina", "Kornel", "Milan", "Henrieta", "Vratko",
"Ondrej a Andrej",
+ "Denisa", "Pamiatka zosnulych", "Hubert", "Karol", "Imrich", "Renata", "Rene", "Bohumir", "Teodor",
+ "Tibor", "Martin", "Svatopluk", "Stanislav", "Irma", "Leopold", "Agnesa", "Klaudia", "Eugen", "Alzbeta",
+ "Felix", "Elvira", "Cecilia", "Klement", "Emilia", "Katarina", "Kornel", "Milan", "Henrieta", "Vratko",
+ "Ondrej a Andrej",
- "Edmund", "Bibiana", "Oldrich", "Barbora", "Oto", "Mikulas", "Ambroz", "Marina", "Izabela", "Raduz",
"Hilda", "Otilia", "Lucia", "Branislava", "Ivica", "Albina", "Kornelia", "Slava", "Judita", "Dagmara",
"Bohdan", "Adela", "Nadezda", "Adam a Eva", "sviatok vianocny", "Stefan", "Filomena", "Ivana", "Milada",
+ "Edmund", "Bibiana", "Oldrich", "Barbora", "Oto", "Mikulas", "Ambroz", "Marina", "Izabela", "Raduz",
+ "Hilda", "Otilia", "Lucia", "Branislava", "Ivica", "Albina", "Kornelia", "Slava", "Judita", "Dagmara",
+ "Bohdan", "Adela", "Nadezda", "Adam a Eva", "sviatok vianocny", "Stefan", "Filomena", "Ivana", "Milada",
"David", "Silvester" };
/**
diff --git a/plugins/!NotAdopted/name_day/todo.txt b/plugins/!NotAdopted/name_day/todo.txt new file mode 100644 index 0000000000..cdd0d944bc --- /dev/null +++ b/plugins/!NotAdopted/name_day/todo.txt @@ -0,0 +1,23 @@ + 1. Kontrola svátků o půlnoci a po spuštění + 2. Možnost výběru kalendáře + 4. Zobrazení ikony v seznamu kontaktů u lidí, kteří mají dnes svátek (něco jako ikona narozenin od jiných pluginů) + 5. Kalendář načítán z externího souboru? / možnost vlastního kalendáře z ini? + 6. Položka v menu pro zjištění, kdo má aktuálně svátek. + 7. Oznamování státních svátků a podobných významných dnů + 8. 64bit verze + 9. Oznamování popupem jméno kdo má dnes svátek nebo i všechny lidi kteří ho mají? +10. Přepsat jména aby byly v kalendáři s diakritikou + + +V hlavním menu položka Name day +-> Zobrazit dnešní svátek (popup nebo dialog, dle nastavení použití) +-> Vyhledat kontakty, kteří mají dnes svátek (a zobrazit s nima popup) + -- tyhle 2 akce by se asi měly dělat po spuštění a po půlnoci (zase dle nastavení) + + +0.0.1.1 + + +0.0.1.0 beta +- Ignorování diakritiky a velikosti písmen +- Kontrolování i upraveného jména uloženého skrz UserInfoEx |