diff options
author | Sergey (Elzor) Bolhovskoy <elzor@foobar2000.ru> | 2010-08-18 01:22:41 +0600 |
---|---|---|
committer | Sergey (Elzor) Bolhovskoy <elzor@foobar2000.ru> | 2010-08-18 01:22:41 +0600 |
commit | 21be46f3aecb857c5875dc8c503e543c852cd982 (patch) | |
tree | 905e2b993fc3540c4eb3e9443bf541dd9973e1b2 | |
parent | 2fa28d16322fb74b745511e99e034b21eacd442c (diff) | |
parent | fed38de9fdbec88cc3e1b5e3b536a8d7124a7fbc (diff) |
Merge branch 'stopspam_mod' of ssh://sss.chaoslab.ru/home/git/mim_plugs into stopspam_mod
Conflicts:
utilities.cpp
-rw-r--r-- | Makefile | 28 | ||||
-rw-r--r-- | headers.h | 4 | ||||
-rw-r--r-- | utilities.cpp | 41 |
3 files changed, 57 insertions, 16 deletions
@@ -1,12 +1,24 @@ -all: - i686-pc-mingw32-g++ -c -DBUILD_DLL -D UNICODE -D _UNICODE *.cpp -I../../include -I/usr/i686-pc-mingw32/usr/include -I. -I ../miranda-im/miranda/include -w -mwin32 -mwindows -mdll -march=i686 -msse -O2 -pipe - i686-pc-mingw32-windres -i stopspam.rc -o resources.o - i686-pc-mingw32-gcc -shared -o stopspam.dll *.o -Wl,-O1,-s -lstdc++ - upx -9 stopspam.dll +CFLAGS=-Os -fomit-frame-pointer -pipe -msse -march=i686 -mdll -mwindows -I../miranda-im/miranda/include -D UNICODE -D _UNICODE +CXXFLAGS=${CFLAGS} +LDFLAGS=-static-libgcc -Wl,-O1 -shared +CPPFLAGS = +CC=i686-pc-mingw32-gcc +CXX=i686-pc-mingw32-g++ +STRIP=i686-pc-mingw32-strip +WINDRES=i686-pc-mingw32-windres +LD=i686-pc-mingw32-ld +LNK_COMMON=-lkernel32 +MAINOBJS=stopspam.o eventhooker.o init.o options.o utilities.o +RESOURCES=stopspam.rc +all: main +main: $(MAINOBJS) + $(WINDRES) -i $(RESOURCES) + $(CXX) $(MAINOBJS) $(LNK_COMMON) $(LDFLAGS) -o stopspam.dll + $(STRIP) stopspam.dll + upx -9 stopspam.dll clean: rm *.o - -clean-all: - rm *.o *.dll + rm stopspam.dll + @@ -7,7 +7,7 @@ #include <sstream> #include<fstream> -//#include <boost/scoped_array.hpp> + #include <newpluginapi.h> #include <m_database.h> #include <m_protosvc.h> @@ -18,7 +18,7 @@ #include <m_skin.h> #include <m_button.h> #include <m_contacts.h> -//#define VARIABLES_NOHELPER + #include <m_variables.h> #include <m_folders.h> diff --git a/utilities.cpp b/utilities.cpp index 92284d1..7badf39 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -90,6 +90,7 @@ void DeleteCListGroupsByName(TCHAR* szGroupName) DBWriteContactSettingByte(NULL, "CList", "ConfirmDelete",ConfirmDelete); } + void RemoveExcludedUsers() { HANDLE hContact; @@ -113,7 +114,16 @@ void RemoveExcludedUsers() plist = first; while(plist->hContact != INVALID_HANDLE_VALUE) { - CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0); + std::string proto=DBGetContactSettingStringPAN_A(plist->hContact,"Protocol","p",""); + UINT status = CallProtoService(proto.c_str(), PS_GETSTATUS, 0, 0); + + if(status>= ID_STATUS_CONNECTING && status <= ID_STATUS_OFFLINE){ + LogSpamToFile(plist->hContact, _T("Mark for delete")); + DBWriteContactSettingByte(plist->hContact,"CList","Delete", 1); + }else{ + LogSpamToFile(plist->hContact, _T("Deleted")); + CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0); + }; tmp = plist; plist = plist->next; delete tmp; @@ -147,9 +157,18 @@ void RemoveTemporaryUsers() plist = first; while(plist->hContact != INVALID_HANDLE_VALUE) { - LogSpamToFile(plist->hContact, _T("Deleted")); - CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0); - tmp = plist; + std::string proto=DBGetContactSettingStringPAN_A(plist->hContact,"Protocol","p",""); + UINT status = CallProtoService(proto.c_str(), PS_GETSTATUS, 0, 0); + + if(status>= ID_STATUS_CONNECTING && status <= ID_STATUS_OFFLINE){ + LogSpamToFile(plist->hContact, _T("Mark for delete")); + DBWriteContactSettingByte(plist->hContact,"CList","Delete", 1); + }else{ + LogSpamToFile(plist->hContact, _T("Deleted")); + CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0); + }; + + tmp = plist; plist = plist->next; delete tmp; } @@ -271,6 +290,7 @@ tstring GetContactUid(HANDLE hContact, tstring Protocol) { tstring Uid; TCHAR dUid[32]={0}; + char aUid[32]={0}; char *szProto = mir_utf8encodeW(Protocol.c_str()); CONTACTINFO ci; ZeroMemory((void *)&ci, sizeof(ci)); @@ -287,7 +307,14 @@ tstring GetContactUid(HANDLE hContact, tstring Protocol) mir_free((void *)ci.pszVal); break; case CNFT_DWORD: - _itow_s(ci.dVal,dUid,32,10); +#if defined(_MSC_VER) && _MSC_VER >= 1300 + + _itoa_s(ci.dVal,aUid,32,10); +#else + _itoa(ci.dVal,aUid,10); + +#endif + OemToChar(aUid, dUid); Uid=dUid; break; default: @@ -346,4 +373,6 @@ void LogSpamToFile(HANDLE hContact, tstring message) mir_free(buf); file.close(); -}
\ No newline at end of file + +} + |