diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2009-09-30 22:01:35 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2009-09-30 22:01:35 +0300 |
commit | cf2f92436cc59e051017ae85c48928570bdc0915 (patch) | |
tree | 2eeed876378ecb12f136a6885ebf9fc662155b1e /stopspam_mod/branches/0.0.1.7/init.cpp | |
parent | 4d4bd94c0e34e2eaedc9d12926f14ccde8e0b69c (diff) |
source sorting
Diffstat (limited to 'stopspam_mod/branches/0.0.1.7/init.cpp')
-rw-r--r-- | stopspam_mod/branches/0.0.1.7/init.cpp | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/stopspam_mod/branches/0.0.1.7/init.cpp b/stopspam_mod/branches/0.0.1.7/init.cpp new file mode 100644 index 0000000..166ac15 --- /dev/null +++ b/stopspam_mod/branches/0.0.1.7/init.cpp @@ -0,0 +1,202 @@ +#include "headers.h"
+
+
+
+BOOL gbDosServiceExist = 0;
+
+DWORD gbMaxQuestCount = 5;
+BOOL gbInfTalkProtection = 0;
+BOOL gbAddPermanent = 0;
+BOOL gbHandleAuthReq = 1;
+BOOL gbSpecialGroup = 0;
+BOOL gbHideContacts = 1;
+BOOL gbIgnoreContacts = 0;
+BOOL gbExclude = 1;
+BOOL gbDelExcluded = 0;
+BOOL gbDosServiceIntegration = 0;
+//BOOL gbDelNotInList = 0;
+tstring gbSpammersGroup = _T("Spammers");
+tstring gbQuestion;
+tstring gbAnswer;
+tstring gbCongratulation;
+std::wstring gbAuthRepl;
+extern char * pluginDescription;
+extern TCHAR const * defQuestion;
+extern int RemoveTmp(WPARAM,LPARAM);
+
+struct MM_INTERFACE mmi;
+
+UTF8_INTERFACE utfi;
+
+
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's extended information
+
+// {553811EE-DEB6-48b8-8902-A8A00C1FD679}
+#define MIID_STOPSPAM { 0x553811ee, 0xdeb6, 0x48b8, { 0x89, 0x2, 0xa8, 0xa0, 0xc, 0x1f, 0xd6, 0x79 } }
+
+PLUGININFOEX pluginInfoEx = {
+ sizeof(PLUGININFOEX),
+ 0,
+ PLUGIN_MAKE_VERSION(0, 0, 1, 7),
+ pluginDescription,
+ "Roman Miklashevsky",
+ "sss123next@list.ru",
+ "© 2004-2009 Roman Miklashevsky, A. Petkevich, Kosh&chka, sss",
+ "http://sss.chaoslab.ru:81/tracker/mim_plugs/",
+ UNICODE_AWARE,
+ 0,
+ MIID_STOPSPAM
+};
+
+
+char *date()
+{
+ static char d[11];
+ char *tmp = __DATE__, m[4], mn[3] = "01";
+ m[0]=tmp[0];
+ m[1]=tmp[1];
+ m[2]=tmp[2];
+ if(strstr(m,"Jan"))
+ strcpy(mn,"01");
+ else if(strstr(m,"Feb"))
+ strcpy(mn,"02");
+ else if(strstr(m,"Mar"))
+ strcpy(mn,"03");
+ else if(strstr(m,"Apr"))
+ strcpy(mn,"04");
+ else if(strstr(m,"May"))
+ strcpy(mn,"05");
+ else if(strstr(m,"Jun"))
+ strcpy(mn,"06");
+ else if(strstr(m,"Jul"))
+ strcpy(mn,"07");
+ else if(strstr(m,"Aug"))
+ strcpy(mn,"08");
+ else if(strstr(m,"Sep"))
+ strcpy(mn,"09");
+ else if(strstr(m,"Oct"))
+ strcpy(mn,"10");
+ else if(strstr(m,"Nov"))
+ strcpy(mn,"11");
+ else if(strstr(m,"Dec"))
+ strcpy(mn,"12");
+ d[0]=tmp[7];
+ d[1]=tmp[8];
+ d[2]=tmp[9];
+ d[3]=tmp[10];
+ d[4]='.';
+ d[5]=mn[0];
+ d[6]=mn[1];
+ d[7]='.';
+ if (tmp[4] == ' ')
+ d[8] = '0';
+ else
+ d[8]=tmp[4];
+ d[9]=tmp[5];
+ return d;
+}
+
+
+extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
+{
+ if ( mirandaVersion < PLUGIN_MAKE_VERSION( 0, 7, 0, 1 ))
+ return NULL;
+ {
+ static char plugname[52];
+ strcpy(plugname, pluginName" mod [");
+ strcat(plugname, date());
+ strcat(plugname, " ");
+ strcat(plugname, __TIME__);
+ strcat(plugname, "]");
+ pluginInfoEx.shortName = plugname;
+ }
+
+ return &pluginInfoEx;
+}
+
+
+void InitVars()
+{
+ gbDosServiceIntegration = DBGetContactSettingByte(NULL, pluginName, "DOSIntegration", 0);
+ gbSpammersGroup = DBGetContactSettingStringPAN(NULL, pluginName, "SpammersGroup", _T("Spammers"));
+ gbAnswer = DBGetContactSettingStringPAN(NULL, pluginName, "answer", _T("nospam"));
+ gbCongratulation = DBGetContactSettingStringPAN(NULL, pluginName, "congratulation", _T("Congratulations! You just passed human/robot test. Now you can write me a message."));
+ gbInfTalkProtection = DBGetContactSettingByte(NULL, pluginName, "infTalkProtection", 0);
+ gbAddPermanent = DBGetContactSettingByte(NULL, pluginName, "addPermanent", 0);
+ gbMaxQuestCount = DBGetContactSettingDword(NULL, pluginName, "maxQuestCount", 5);
+ gbHandleAuthReq = DBGetContactSettingByte(NULL, pluginName, "handleAuthReq", 1);
+ gbQuestion = DBGetContactSettingStringPAN(NULL, pluginName, "question", defQuestion);
+ gbAnswer = DBGetContactSettingStringPAN(NULL, pluginName, "answer", _T("nospam"));
+ gbCongratulation = DBGetContactSettingStringPAN(NULL, pluginName, "congratulation", _T("Congratulations! You just passed human/robot test. Now you can write me a message."));
+ gbAuthRepl = DBGetContactSettingStringPAN(NULL, pluginName, "authrepl", _T("StopSpam: send a message and reply to a anti-spam bot question."));
+ gbSpecialGroup = DBGetContactSettingByte(NULL, pluginName, "SpecialGroup", 0);
+ gbHideContacts = DBGetContactSettingByte(NULL, pluginName, "HideContacts", 0);
+ gbIgnoreContacts = DBGetContactSettingByte(NULL, pluginName, "IgnoreContacts", 0);
+ gbExclude = DBGetContactSettingByte(NULL, pluginName, "ExcludeContacts", 1);
+ gbDelExcluded = DBGetContactSettingByte(NULL, pluginName, "DelExcluded", 0);
+// gbDelNotInList = DBGetContactSettingByte(NULL, pluginName, "DelNotInList", 0);
+}
+
+static int OnSystemModulesLoaded(WPARAM wParam,LPARAM lParam)
+{
+ if (ServiceExists(MS_DOS_SERVICE))
+ gbDosServiceExist = TRUE;
+ InitVars();
+ if(gbDelExcluded)
+ RemoveExcludedUsers();
+ return 0;
+}
+
+PLUGINLINK *pluginLink;
+HANDLE hEventFilter = 0, hOptInitialise = 0, hSettingChanged = 0;
+
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
+{
+ /*if(DLL_PROCESS_ATTACH == fdwReason)
+ hInst=hinstDLL;
+ return TRUE;*/
+ hInst = hinstDLL;
+ return TRUE;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// returns plugin's interfaces information
+
+static const MUUID interfaces[] = { MIID_STOPSPAM, MIID_LAST };
+
+extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
+{
+ return interfaces;
+}
+
+
+
+extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
+{
+ pluginLink = link;
+ CLISTMENUITEM mi;
+ CreateServiceFunction("/RemoveTmp",RemoveTmp);
+ mir_getMMI(&mmi);
+ mir_getUTFI(&utfi);
+ HookEvent(ME_SYSTEM_MODULESLOADED, OnSystemModulesLoaded);
+ ZeroMemory(&mi,sizeof(mi));
+ mi.cbSize=sizeof(mi);
+ mi.position=-0x7FFFFFFF;
+ mi.flags=0;
+ mi.hIcon=LoadSkinnedIcon(SKINICON_OTHER_MIRANDA);
+ mi.pszName="Remove Temporary Contacts";
+ mi.pszService="/RemoveTmp";
+ CallService(MS_CLIST_ADDMAINMENUITEM,0,(LPARAM)&mi);
+
+ miranda::EventHooker::HookAll();
+ return 0;
+}
+
+extern "C" int __declspec(dllexport) Unload(void)
+{
+ miranda::EventHooker::UnhookAll();
+ return 0;
+}
\ No newline at end of file |