summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey (Elzor) Bolhovskoy <elzor@foobar2000.ru>2010-07-20 18:02:26 +0600
committerSergey (Elzor) Bolhovskoy <elzor@foobar2000.ru>2010-07-20 18:02:26 +0600
commit8c4ce511abdbfb4dba04e4f845e85c96c0471312 (patch)
tree38fdcf83b6eaed73ad752240ce149c888e9caee3
parent62ca8b07d9cf4f0cfdaa29099d6fdc5de5deb2cf (diff)
add folders support, add options for spammers log and remove all tempory contacts, silent remove <Not In List> group, version bump
-rw-r--r--headers.h2
-rw-r--r--init.cpp20
-rw-r--r--options.cpp7
-rw-r--r--resource.h121
-rw-r--r--stopspam.cpp2
-rw-r--r--stopspam.h3
-rw-r--r--stopspam.rc479
-rw-r--r--utilities.cpp22
-rw-r--r--utilities.h1
9 files changed, 340 insertions, 317 deletions
diff --git a/headers.h b/headers.h
index d7a814c..e762a14 100644
--- a/headers.h
+++ b/headers.h
@@ -20,6 +20,7 @@
#include <m_contacts.h>
//#define VARIABLES_NOHELPER
#include <m_variables.h>
+#include <m_folders.h>
#include "globals.h"
@@ -30,4 +31,5 @@
#include "resource.h"
#include "utilities.h"
+
#include <m_dos.h>
diff --git a/init.cpp b/init.cpp
index a028864..ab4c4e1 100644
--- a/init.cpp
+++ b/init.cpp
@@ -14,16 +14,18 @@ BOOL gbHideContacts = 1;
BOOL gbIgnoreContacts = 0;
BOOL gbExclude = 1;
BOOL gbDelExcluded = 0;
+BOOL gbDelAllTempory = 0;
BOOL gbDosServiceIntegration = 0;
BOOL gbCaseInsensitive = 0;
BOOL gbInvisDisable = 0;
BOOL gbIgnoreURL = 1;
-
+BOOL gbLogToFile=0;
BOOL gbAutoAuth=0;
BOOL gbAutoAddToServerList=0;
BOOL gbAutoReqAuth=1;
+
+HANDLE hStopSpamLogDirH=0;
-//BOOL gbDelNotInList = 0;
tstring gbSpammersGroup = _T("Spammers");
tstring gbAutoAuthGroup = _T("NotSpammers");
@@ -50,7 +52,7 @@ UTF8_INTERFACE utfi;
PLUGININFOEX pluginInfoEx = {
sizeof(PLUGININFOEX),
0,
- PLUGIN_MAKE_VERSION(0, 0, 1, 8),
+ PLUGIN_MAKE_VERSION(0, 0, 1, 9),
pluginDescription,
"Roman Miklashevsky",
"sss123next@list.ru",
@@ -148,6 +150,7 @@ void InitVars()
gbIgnoreContacts = DBGetContactSettingByte(NULL, pluginName, "IgnoreContacts", 0);
gbExclude = DBGetContactSettingByte(NULL, pluginName, "ExcludeContacts", 1);
gbDelExcluded = DBGetContactSettingByte(NULL, pluginName, "DelExcluded", 0);
+ gbDelAllTempory = DBGetContactSettingByte(NULL, pluginName, "DelAllTempory", 0);
gbCaseInsensitive = DBGetContactSettingByte(NULL, pluginName, "CaseInsensitive", 0);
gbInvisDisable = DBGetContactSettingByte(NULL, pluginName, "DisableInInvis", 0);
gbIgnoreURL = DBGetContactSettingByte(NULL, pluginName, "IgnoreURL", 0);
@@ -155,9 +158,8 @@ void InitVars()
gbAutoAuth=DBGetContactSettingByte(NULL, pluginName, "AutoAuth", 0);
gbAutoAddToServerList=DBGetContactSettingByte(NULL, pluginName, "AutoAddToServerList", 0);
gbAutoReqAuth=DBGetContactSettingByte(NULL, pluginName, "AutoReqAuth", 0);
+ gbLogToFile=DBGetContactSettingByte(NULL, pluginName, "LogSpamToFile", 0);
-
-// gbDelNotInList = DBGetContactSettingByte(NULL, pluginName, "DelNotInList", 0);
}
static int OnSystemModulesLoaded(WPARAM wParam,LPARAM lParam)
@@ -169,6 +171,14 @@ static int OnSystemModulesLoaded(WPARAM wParam,LPARAM lParam)
InitVars();
if(gbDelExcluded)
RemoveExcludedUsers();
+ if(gbDelAllTempory)
+ RemoveTmp(0,0);
+ // Folders plugin support
+ if (ServiceExists(MS_FOLDERS_REGISTER_PATH))
+ {
+ hStopSpamLogDirH = (HANDLE) FoldersRegisterCustomPath("StopSpam", "StopSpam Logs",
+ PROFILE_PATH "\\" CURRENT_PROFILE "\\StopSpamLog");
+ }
return 0;
}
diff --git a/options.cpp b/options.cpp
index 1a7c694..ecb81e2 100644
--- a/options.cpp
+++ b/options.cpp
@@ -28,6 +28,7 @@ INT_PTR CALLBACK MainDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
SendDlgItemMessage(hwnd, ID_HANDLEAUTHREQ, BM_SETCHECK, gbHandleAuthReq ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, ID_HIDECONTACTS, BM_SETCHECK, gbHideContacts ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, ID_IGNORESPAMMERS, BM_SETCHECK, gbIgnoreContacts ? BST_CHECKED : BST_UNCHECKED, 0);
+ SendDlgItemMessage(hwnd, ID_LOGSPAMTOFILE, BM_SETCHECK, gbLogToFile ? BST_CHECKED : BST_UNCHECKED, 0);
}
return TRUE;
case WM_COMMAND:{
@@ -62,6 +63,8 @@ INT_PTR CALLBACK MainDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
BST_CHECKED == SendDlgItemMessage(hwnd, ID_HIDECONTACTS, BM_GETCHECK, 0, 0));
DBWriteContactSettingByte(NULL, pluginName, "IgnoreContacts", gbIgnoreContacts =
BST_CHECKED == SendDlgItemMessage(hwnd, ID_IGNORESPAMMERS, BM_GETCHECK, 0, 0));
+ DBWriteContactSettingByte(NULL, pluginName, "LogSpamToFile", gbLogToFile =
+ BST_CHECKED == SendDlgItemMessage(hwnd, ID_LOGSPAMTOFILE, BM_GETCHECK, 0, 0));
}
return TRUE;
}
@@ -268,6 +271,7 @@ INT_PTR CALLBACK AdvancedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
SendDlgItemMessage(hwnd, ID_SPECIALGROUP, BM_SETCHECK, gbSpecialGroup ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, ID_EXCLUDE, BM_SETCHECK, gbExclude ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, ID_REMOVE_TMP, BM_SETCHECK, gbDelExcluded ? BST_CHECKED : BST_UNCHECKED, 0);
+ SendDlgItemMessage(hwnd, ID_REMOVE_TMP_ALL, BM_SETCHECK, gbDelAllTempory ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, ID_IGNOREURL, BM_SETCHECK, gbIgnoreURL ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, IDC_AUTOAUTH, BM_SETCHECK, gbAutoAuth ? BST_CHECKED : BST_UNCHECKED, 0);
SendDlgItemMessage(hwnd, IDC_ADDTOSRVLST, BM_SETCHECK, gbAutoAddToServerList ? BST_CHECKED : BST_UNCHECKED, 0);
@@ -285,6 +289,7 @@ INT_PTR CALLBACK AdvancedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
case ID_SPECIALGROUP:
case ID_EXCLUDE:
case ID_REMOVE_TMP:
+ case ID_REMOVE_TMP_ALL:
case ID_IGNOREURL:
case IDC_AUTOAUTH:
case IDC_ADDTOSRVLST:
@@ -349,6 +354,8 @@ INT_PTR CALLBACK AdvancedDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPar
BST_CHECKED == SendDlgItemMessage(hwnd, ID_EXCLUDE, BM_GETCHECK, 0, 0));
DBWriteContactSettingByte(NULL, pluginName, "DelExcluded", gbDelExcluded =
BST_CHECKED == SendDlgItemMessage(hwnd, ID_REMOVE_TMP, BM_GETCHECK, 0, 0));
+ DBWriteContactSettingByte(NULL, pluginName, "DelAllTempory", gbDelAllTempory =
+ BST_CHECKED == SendDlgItemMessage(hwnd, ID_REMOVE_TMP_ALL, BM_GETCHECK, 0, 0));
DBWriteContactSettingByte(NULL, pluginName, "IgnoreURL", gbIgnoreURL =
BST_CHECKED == SendDlgItemMessage(hwnd, ID_IGNOREURL, BM_GETCHECK, 0, 0));
diff --git a/resource.h b/resource.h
index 2f534f0..c41b64c 100644
--- a/resource.h
+++ b/resource.h
@@ -1,59 +1,62 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by stopspam.rc
-//
-#define IDD_MESSAGES 101
-#define IDD_MAIN 103
-#define ID_DESCRIPTION 1001
-#define ID_QUESTION 1002
-#define ID_ANSWER 1003
-#define ID_CONGRATULATION 1004
-#define ID_RESTOREDEFAULTS 1005
-#define ID_ADD 1005
-#define ID_ANSWER2 1007
-#define ID_AUTHREPL 1007
-#define ID_ALLPROTO 1008
-#define IDD_PROTO 1008
-#define ID_MAXQUESTCOUNT 1008
-#define ID_REMOVE 1009
-#define ID_SPECIALGROUPNAME 1009
-#define IDD_ADVANCED 1009
-#define ID_USEDPROTO 1010
-#define ID_REMOVEALL 1011
-#define ID_ADDALL 1012
-#define ID_INFTALKPROT 1013
-#define ID_ADDPERMANENT 1014
-#define ID_ADDPERMANENT2 1015
-#define ID_HANDLEAUTHREQ 1015
-#define ID_DOS_INTEGRATION 1016
-#define ID_SPECIALGROUP 1017
-#define IDC_BUTTON1 1017
-#define IDC_VARS 1017
-#define ID_HIDECONTACTS 1018
-#define IDC_CASE_INSENSITIVE 1018
-#define ID_IGNORESPAMMERS 1019
-#define IDC_CHECK2 1019
-#define IDC_INVIS_DISABLE 1019
-#define ID_REMOVE_TMP 1020
-#define IDC_CUSTOM1 1020
-#define ID_REMOVE_TMP2 1021
-#define ID_EXCLUDE 1021
-#define ID_ADDPERMANENT3 1022
-#define ID_DEL_NO_IN_LIST 1022
-#define IDC_ADDTOSRVLST 1022
-#define ID_IGNOREURL 1023
-#define IDC_EDIT1 1024
-#define IDC_AUTOADDGROUP 1024
-#define IDC_AUTOAUTH 1025
-#define IDC_REQAUTH 1026
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 104
-#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1027
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by stopspam.rc
+//
+#define IDD_MESSAGES 101
+#define IDD_MAIN 103
+#define ID_DESCRIPTION 1001
+#define ID_QUESTION 1002
+#define ID_ANSWER 1003
+#define ID_CONGRATULATION 1004
+#define ID_RESTOREDEFAULTS 1005
+#define ID_ADD 1005
+#define ID_ANSWER2 1007
+#define ID_AUTHREPL 1007
+#define ID_ALLPROTO 1008
+#define IDD_PROTO 1008
+#define ID_MAXQUESTCOUNT 1008
+#define ID_REMOVE 1009
+#define ID_SPECIALGROUPNAME 1009
+#define IDD_ADVANCED 1009
+#define ID_USEDPROTO 1010
+#define ID_REMOVEALL 1011
+#define ID_ADDALL 1012
+#define ID_INFTALKPROT 1013
+#define ID_ADDPERMANENT 1014
+#define ID_ADDPERMANENT2 1015
+#define ID_HANDLEAUTHREQ 1015
+#define ID_DOS_INTEGRATION 1016
+#define ID_SPECIALGROUP 1017
+#define IDC_BUTTON1 1017
+#define IDC_VARS 1017
+#define ID_HIDECONTACTS 1018
+#define IDC_CASE_INSENSITIVE 1018
+#define ID_IGNORESPAMMERS 1019
+#define IDC_CHECK2 1019
+#define IDC_INVIS_DISABLE 1019
+#define ID_REMOVE_TMP 1020
+#define IDC_CUSTOM1 1020
+#define ID_REMOVE_TMP2 1021
+#define ID_EXCLUDE 1021
+#define ID_ADDPERMANENT3 1022
+#define ID_DEL_NO_IN_LIST 1022
+#define IDC_ADDTOSRVLST 1022
+#define ID_IGNOREURL 1023
+#define IDC_EDIT1 1024
+#define IDC_AUTOADDGROUP 1024
+#define IDC_AUTOAUTH 1025
+#define IDC_REQAUTH 1026
+#define IDC_LOGSPAMTOFILE 1027
+#define ID_REMOVE_TMP_ALL 1027
+#define ID_LOGSPAMTOFILE 1027
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 104
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1028
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/stopspam.cpp b/stopspam.cpp
index e7ff9b9..cc876af 100644
--- a/stopspam.cpp
+++ b/stopspam.cpp
@@ -1,5 +1,5 @@
#include "headers.h"
-#include <fstream>
+
MIRANDA_HOOK_EVENT(ME_DB_CONTACT_ADDED, w, l)
{
diff --git a/stopspam.h b/stopspam.h
index fdd4092..fd9c609 100644
--- a/stopspam.h
+++ b/stopspam.h
@@ -24,4 +24,5 @@ extern BOOL gbAutoAuth;
extern BOOL gbAutoAddToServerList;
extern BOOL gbAutoReqAuth;
extern tstring gbAutoAuthGroup;
-
+extern BOOL gbLogToFile;
+extern BOOL gbDelAllTempory;
diff --git a/stopspam.rc b/stopspam.rc
index 8913597..9d80b99 100644
--- a/stopspam.rc
+++ b/stopspam.rc
@@ -1,240 +1,239 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Russian resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
-#ifdef _WIN32
-LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-#pragma code_page(1251)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_MESSAGES DIALOGEX 0, 0, 302, 225
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_POPUP | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LTEXT "Question: (Ctrl-Enter for carriage return)",IDC_STATIC,0,5,156,8
- EDITTEXT ID_QUESTION,0,17,300,57,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
- PUSHBUTTON "Restore defaults",ID_RESTOREDEFAULTS,234,208,66,14,NOT WS_TABSTOP
- LTEXT "Answer:",IDC_STATIC,0,82,270,8
- EDITTEXT ID_ANSWER,0,94,300,14,ES_AUTOHSCROLL
- LTEXT "Congratulation:",IDC_STATIC,0,112,270,8
- EDITTEXT ID_CONGRATULATION,0,123,300,48,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
- LTEXT "Auth. request reply:",IDC_STATIC,0,174,270,8
- EDITTEXT ID_AUTHREPL,0,187,300,14,ES_AUTOHSCROLL
- CONTROL "Vars",IDC_VARS,"MButtonClass",WS_TABSTOP,0,206,16,16
-END
-
-IDD_PROTO DIALOGEX 0, 0, 230, 173
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- LTEXT "Available accounts:",IDC_STATIC,6,8,84,8
- LISTBOX ID_ALLPROTO,6,20,84,138,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
- PUSHBUTTON ">>>>",ID_ADDALL,96,26,36,14
- PUSHBUTTON ">>",ID_ADD,96,44,36,14
- PUSHBUTTON "<<",ID_REMOVE,96,62,36,14
- PUSHBUTTON "<<<<",ID_REMOVEALL,96,80,36,14
- LTEXT "Filtered accounts:",IDC_STATIC,138,8,85,8
- LISTBOX ID_USEDPROTO,138,20,84,138,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
-END
-
-IDD_MAIN DIALOGEX 0, 0, 309, 219
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- EDITTEXT ID_DESCRIPTION,12,7,290,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
- LTEXT "Do not send more than ",IDC_STATIC,11,89,87,12,SS_CENTERIMAGE
- EDITTEXT ID_MAXQUESTCOUNT,107,89,30,12,ES_AUTOHSCROLL | ES_NUMBER
- LTEXT " questions to one contact (0 - for no limit)",IDC_STATIC,144,89,155,12,SS_CENTERIMAGE
- CONTROL "Enable StopSpam-StopSpam infinite talk protection",ID_INFTALKPROT,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,106,290,10
- CONTROL "Add contact permanently",ID_ADDPERMANENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,118,290,8
- CONTROL "Enable auth. requests blocking",ID_HANDLEAUTHREQ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,130,290,8
- CONTROL "Hide unanswered contacts and spammers from contact list",ID_HIDECONTACTS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,140,290,10
- CONTROL "Ignore spammers (do not write messages to history)",ID_IGNORESPAMMERS,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,151,290,10
-END
-
-IDD_ADVANCED DIALOGEX 0, 0, 309, 219
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
-FONT 8, "MS Shell Dlg", 400, 0, 0x1
-BEGIN
- CONTROL "Case insensitive answer checking",IDC_CASE_INSENSITIVE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,54,279,10
- CONTROL "Disable question in invisible mode",IDC_INVIS_DISABLE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,65,287,10
- CONTROL "Enable integration with DOS plugin",ID_DOS_INTEGRATION,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,77,287,8
- CONTROL "Exclude contacts which we sending something from spam check",ID_EXCLUDE,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,33,287,8
- CONTROL "Remove Excluded contacts after restart",ID_REMOVE_TMP,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,287,8
- CONTROL "Add contacts to specified group:",ID_SPECIALGROUP,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,16,196,10
- EDITTEXT ID_SPECIALGROUPNAME,217,15,79,12,ES_AUTOHSCROLL
- CONTROL "Ignore URL in messages and auth requests",ID_IGNOREURL,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,88,287,10
- CONTROL "Add contact to server list",IDC_ADDTOSRVLST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,114,187,10
- EDITTEXT IDC_AUTOADDGROUP,210,112,76,14,ES_AUTOHSCROLL
- GROUPBOX "After congratulation (ICQ only)",IDC_STATIC,15,103,278,51
- CONTROL "Automatically grant authorization",IDC_AUTOAUTH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,126,263,10
- CONTROL "Request authorization from contacts which pass stopspam test",IDC_REQAUTH,
- "Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,138,267,10
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_MESSAGES, DIALOG
- BEGIN
- RIGHTMARGIN, 300
- TOPMARGIN, 7
- BOTTOMMARGIN, 222
- END
-
- IDD_PROTO, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 223
- TOPMARGIN, 7
- BOTTOMMARGIN, 166
- END
-
- IDD_MAIN, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 302
- TOPMARGIN, 7
- BOTTOMMARGIN, 212
- END
-
- IDD_ADVANCED, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 302
- VERTGUIDE, 15
- TOPMARGIN, 7
- BOTTOMMARGIN, 212
- HORZGUIDE, 11
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 0,0,1,8
- PRODUCTVERSION 0,7,0,0
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x40004L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "000004b0"
- BEGIN
- VALUE "Comments", "Licensed under the terms of the GNU General Public License"
- VALUE "CompanyName", " "
- VALUE "FileDescription", "StopSpam plugin for Miranda IM"
- VALUE "FileVersion", "0.0.1.8"
- VALUE "InternalName", "stopspam"
- VALUE "LegalCopyright", "Copyright © 2000-2009 Miranda IM Project. This software is released under the terms of the GNU General Public License."
- VALUE "OriginalFilename", "stopspam.dll"
- VALUE "ProductName", "StopSpam"
- VALUE "ProductVersion", "0.7.0.0"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x0, 1200
- END
-END
-
-#endif // Russian resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (U.S.) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (U.S.) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Russian (Russia) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+#pragma code_page(1251)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_MESSAGES DIALOGEX 0, 0, 302, 225
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_POPUP | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "Question: (Ctrl-Enter for carriage return)",IDC_STATIC,0,5,156,8
+ EDITTEXT ID_QUESTION,0,17,300,57,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
+ PUSHBUTTON "Restore defaults",ID_RESTOREDEFAULTS,234,208,66,14,NOT WS_TABSTOP
+ LTEXT "Answer:",IDC_STATIC,0,82,270,8
+ EDITTEXT ID_ANSWER,0,94,300,14,ES_AUTOHSCROLL
+ LTEXT "Congratulation:",IDC_STATIC,0,112,270,8
+ EDITTEXT ID_CONGRATULATION,0,123,300,48,ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL
+ LTEXT "Auth. request reply:",IDC_STATIC,0,174,270,8
+ EDITTEXT ID_AUTHREPL,0,187,300,14,ES_AUTOHSCROLL
+ CONTROL "Vars",IDC_VARS,"MButtonClass",WS_TABSTOP,0,206,16,16
+END
+
+IDD_PROTO DIALOGEX 0, 0, 230, 173
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT "Available accounts:",IDC_STATIC,6,8,84,8
+ LISTBOX ID_ALLPROTO,6,20,84,138,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON ">>>>",ID_ADDALL,96,26,36,14
+ PUSHBUTTON ">>",ID_ADD,96,44,36,14
+ PUSHBUTTON "<<",ID_REMOVE,96,62,36,14
+ PUSHBUTTON "<<<<",ID_REMOVEALL,96,80,36,14
+ LTEXT "Filtered accounts:",IDC_STATIC,138,8,85,8
+ LISTBOX ID_USEDPROTO,138,20,84,138,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+END
+
+IDD_MAIN DIALOGEX 0, 0, 309, 219
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ EDITTEXT ID_DESCRIPTION,12,7,290,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | NOT WS_TABSTOP
+ LTEXT "Do not send more than ",IDC_STATIC,11,89,87,12,SS_CENTERIMAGE
+ EDITTEXT ID_MAXQUESTCOUNT,107,89,30,12,ES_AUTOHSCROLL | ES_NUMBER
+ LTEXT " questions to one contact (0 - for no limit)",IDC_STATIC,144,89,155,12,SS_CENTERIMAGE
+ CONTROL "Enable StopSpam-StopSpam infinite talk protection",ID_INFTALKPROT,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,106,290,10
+ CONTROL "Add contact permanently",ID_ADDPERMANENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,118,290,8
+ CONTROL "Enable auth. requests blocking",ID_HANDLEAUTHREQ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,130,290,8
+ CONTROL "Hide unanswered contacts and spammers from contact list",ID_HIDECONTACTS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,140,290,10
+ CONTROL "Ignore spammers (do not write messages to history)",ID_IGNORESPAMMERS,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,151,290,10
+ CONTROL "Log spam to file",ID_LOGSPAMTOFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,162,290,10
+END
+
+IDD_ADVANCED DIALOGEX 0, 0, 309, 219
+STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_SYSMENU
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ CONTROL "Case insensitive answer checking",IDC_CASE_INSENSITIVE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,66,279,10
+ CONTROL "Disable question in invisible mode",IDC_INVIS_DISABLE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,77,287,10
+ CONTROL "Enable integration with DOS plugin",ID_DOS_INTEGRATION,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,89,287,8
+ CONTROL "Exclude contacts which we sending something from spam check",ID_EXCLUDE,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,33,287,8
+ CONTROL "Remove Excluded contacts after restart",ID_REMOVE_TMP,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,44,287,8
+ CONTROL "Add contacts to specified group:",ID_SPECIALGROUP,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,16,196,10
+ EDITTEXT ID_SPECIALGROUPNAME,217,15,79,12,ES_AUTOHSCROLL
+ CONTROL "Ignore URL in messages and auth requests",ID_IGNOREURL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,100,287,10
+ CONTROL "Add contact to server list",IDC_ADDTOSRVLST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,123,187,10
+ EDITTEXT IDC_AUTOADDGROUP,210,121,76,14,ES_AUTOHSCROLL
+ GROUPBOX "After congratulation (ICQ only)",IDC_STATIC,15,112,278,51
+ CONTROL "Automatically grant authorization",IDC_AUTOAUTH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,135,263,10
+ CONTROL "Request authorization from contacts which pass stopspam test",IDC_REQAUTH,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,22,147,267,10
+ CONTROL "Remove all tempory contacts after restart",ID_REMOVE_TMP_ALL,
+ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,55,287,8
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_MESSAGES, DIALOG
+ BEGIN
+ RIGHTMARGIN, 300
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 222
+ END
+
+ IDD_PROTO, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 223
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 166
+ END
+
+ IDD_MAIN, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 302
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 212
+ END
+
+ IDD_ADVANCED, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 302
+ VERTGUIDE, 15
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 212
+ HORZGUIDE, 11
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 0,0,1,9
+ PRODUCTVERSION 0,7,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x1L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "Comments", "Licensed under the terms of the GNU General Public License"
+ VALUE "CompanyName", " "
+ VALUE "FileDescription", "StopSpam plugin for Miranda IM"
+ VALUE "FileVersion", "0.0.1.9"
+ VALUE "InternalName", "stopspam"
+ VALUE "LegalCopyright", "Copyright © 2000-2010 Miranda IM Project. This software is released under the terms of the GNU General Public License."
+ VALUE "OriginalFilename", "stopspam.dll"
+ VALUE "ProductName", "StopSpam"
+ VALUE "ProductVersion", "0.7.0.0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+#endif // Russian (Russia) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// English (United States) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (United States) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/utilities.cpp b/utilities.cpp
index a65576c..b56fa4b 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -71,6 +71,9 @@ void DeleteCListGroupsByName(TCHAR* szGroupName)
TCHAR szValue[96] = {0};
char szNumber[32] = {0};
strcpy(szNumber, "0");
+ BYTE ConfirmDelete=DBGetContactSettingByte(NULL, "CList", "ConfirmDelete", SETTING_CONFIRMDELETE_DEFAULT);
+ if(ConfirmDelete)
+ DBWriteContactSettingByte(NULL, "CList", "ConfirmDelete",0);
while(strcmp(DBGetContactSettingStringPAN_A(NULL, "CListGroups", szNumber, "0").c_str(), "0") != 0)
{
wcscpy(szValue, DBGetContactSettingStringPAN(NULL, "CListGroups", szNumber, _T("0")).c_str());
@@ -83,6 +86,8 @@ void DeleteCListGroupsByName(TCHAR* szGroupName)
_itoa(GroupNumber, szNumber, 10);
#endif
};
+ if(ConfirmDelete)
+ DBWriteContactSettingByte(NULL, "CList", "ConfirmDelete",ConfirmDelete);
}
void RemoveExcludedUsers()
@@ -297,21 +302,19 @@ tstring GetContactUid(HANDLE hContact, tstring Protocol)
void LogSpamToFile(HANDLE hContact, tstring message)
{
+
+ if (!gbLogToFile) return;
- tstring LogStrW;
- tstring LogTime;
- tstring LogProtocol;
- tstring LogContactId;
- tstring LogContactName;
+ tstring LogStrW, LogTime, LogProtocol, LogContactId, LogContactName;
std::string filename;
std::fstream file;
UINT cbName=255;
char* pszName = (char *)mir_alloc(cbName);
+ extern HANDLE hStopSpamLogDirH;
- CallService(MS_DB_GETPROFILEPATH,(WPARAM) cbName, (LPARAM)pszName);
-
-
+ if (FoldersGetCustomPath(hStopSpamLogDirH, pszName, cbName, ""))
+ CallService(MS_DB_GETPROFILEPATH,(WPARAM) cbName, (LPARAM)pszName);
filename=pszName;
filename=filename+"\\stopspam_mod.log";
mir_free(pszName);
@@ -332,15 +335,12 @@ void LogSpamToFile(HANDLE hContact, tstring message)
LogContactId=(LogProtocol==_T(""))?_T(""):GetContactUid(hContact,LogProtocol);
// Name, UID and Protocol Log line
- //MessageBox(0,LogProtocol.c_str(),_T(""),0);
LogStrW=_T("[")+LogTime.substr(0,LogTime.length()-1)+_T("] ")+
LogContactId+_T(" - ")+
LogContactName+_T(" (")+
LogProtocol+_T("): ")+
message+_T("\n");
-
- //char * buf=mir_utf8encodeW(LogStrW.c_str());
char * buf=mir_u2a(LogStrW.c_str());
file.write(buf,LogStrW.length());
mir_free(buf);
diff --git a/utilities.h b/utilities.h
index dd6bfe0..3e03382 100644
--- a/utilities.h
+++ b/utilities.h
@@ -17,3 +17,4 @@ struct hContact_entry
HANDLE hContact;
struct hContact_entry *next;
};
+