summaryrefslogtreecommitdiff
path: root/spamfilter/Docs/SpamFilter-Readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'spamfilter/Docs/SpamFilter-Readme.txt')
-rw-r--r--spamfilter/Docs/SpamFilter-Readme.txt977
1 files changed, 977 insertions, 0 deletions
diff --git a/spamfilter/Docs/SpamFilter-Readme.txt b/spamfilter/Docs/SpamFilter-Readme.txt
new file mode 100644
index 0000000..6316589
--- /dev/null
+++ b/spamfilter/Docs/SpamFilter-Readme.txt
@@ -0,0 +1,977 @@
+
+Spam Filter 2.5.2.3
+------------------------------------------------------------------------
+ Plugin for Miranda IM 0.4.3 and +
+
+ Plugin Info: ----------------------------
+ | Version: 2.5.2.3
+ | Filename: spamfilter.dll / spamfilterW.dll
+ | Author: H. Herkenrath (hrathh at users.sourceforge.net)
+ | Description: Filters out advertisments, robot messages and disliked messages
+ | such as hoax messages.Filters out spam messages from contacts
+
+ Contents: -------------------------------
+ | Filter Improvement, Features, Requirements, Usage,
+ | Spam Definitions, Installation, Bugs and Wishes, Filtering Tips,
+ | To-Do List, Version History, Thanks, Translation, License and Copyright
+
+
+Filter Improvement
+----------------------
+ -> Still receiving spam?
+ If you receive spam messages after installing this plugin
+ which are not filtered out just mail the text of the spam message
+ to me and I will integrate some bad phrases out of it immediately.
+ If the filtering of that message can't be done via bad phrases I
+ will try to find another way and integrate that way, too.
+
+ -> New filtering ideas?
+ If you have some other spam filtering ideas please mail me.
+
+ -> Bugs?
+ If you find any bugs please tell them to me via mail.
+ So I don't have to look everywhere around to find them. ;-)
+
+ -> Patches or Extensions?
+ If you are a developer and/or know how to code
+ feel free to send me patches or extensions to the code.
+ The best way is via e-mail.
+ I really appreciate it. :-)
+ If you need extensions to the API please contact me, too.
+
+ -> Filtering in all languages?!
+ There are already bad phrases for the following languages:
+ English, German, French, Russian, Portuguese (Brazil), Chinese (Traditional)
+ I would love it if this list could be extended further.
+ It is a little difficult to speak and understand all languages of this
+ world at the same time ;-) ...and if you speak a language that I don't...
+ (and I think that are very much ;-)...) please send some bad phrases in
+ your language to me.
+ It would be nice if spam could be filtered in all languages,
+ but I need some help... please... :-)
+ Also feel encouraged to release your own Spam Definitions on the File Listing.
+
+ -> Reporting spam log file?!
+ You can also help me via sending your spam log file to me.
+ So I can look for new/better bad phrases.
+ Such a log file can be created with the spam logging feature.
+ It doesn't include any data beside the spam messages sent to you.
+ I will look at it and intergrate some more bad phrases out of it to
+ improve the filter quality.
+
+ -> New bad phrases?
+ If you have some bad phrases to add to the existing lists
+ please mail them to me, too.
+ I will check the bad phrases and integrate them immediately.
+
+
+Features
+----------------------
+ + Filters out incoming spam messages
+ + Spam filtering with all protocols
+ + Which messages are declared as spam is changeable
+ + Improved spam filter (pretty accurate)
+ + Recognizes also URLs with spaces
+ + Supports Regular Expressions (RegExp) in its word filter (really powerful!)
+ + Spam handling: either mark read or delete messages
+ + Spaming contacts get automatically removed if there are no items in history
+ + Spammer name/id auto ignoring
+ + Easy adding of customized bad phrases
+ + Spam alert via Sound or Popup (Popup plugin is needed for this feature)
+ + Spam message logging to file
+ Supported file formats: TXT, LOG, CSV, XML (including XSL stylesheet)
+ + Supports "ballon tips" for error display
+ + Press control key to avoid messages to be checked for spam
+ + Fully configurable with many options
+ + Filter can be disabled temporarily on the options page
+ + Large list of default bad phrases (about 80 well chosen english phrases at the moment)
+ + Full translation support (default bad phrases, too)
+ + Available dialog languages: English, German
+ + Available Spam Definition languages:
+ English, German, French, Russian, Portuguese (Brazil), Chinese (Traditional)
+ + Provides spam checking service functions for other plugins
+ + Auto-Updates for Spam Definitions using Updater plugin
+ + Full Unicode support
+ + Automatic installation of all files, just unzip into Plugins directory
+ + Supported plugins/tools:
+ Miranda Installer, Popup/PopupPlus/YAPP, DatabaseEditor++, Updater,
+ Variables Plugin (http://www.cs.vu.nl/~pboon/projects.htm),
+ Trigger Plugin (http://www.cs.vu.nl/~pboon/projects.htm),
+ Icons Library Manager (IcoLib), Colour Picker, OSD Plugin/WannaBe OSD,
+ Custom Profile Folder Plugin, MultiWindow Contact List (extra icon)
+
+
+Requirements
+----------------------
+ -> Miranda IM 0.4.3+:
+ Miranda IM is needed in the version 0.4.3 or greater.
+
+ -> Popup Plugin 1.0.1.9+ (optional):
+ For using the popup function when a spam message
+ arrives it is necessary to have the popup plugin installed,
+ At least version 1.0.1.9 or greater.
+ PopupPlus is supported, too.
+ You need PopupPlus 2.0.3.97 or later.
+
+ -> Variables Plugin 0.2.0.23+ (optional):
+ For using variables in outgoing reply messages
+ you need to have the Variables Plugin installed,
+ At least version 0.2.0.23 or greater.
+
+
+Usage
+----------------------
+ "Spam Filter" options can be found here:
+ "Options" -> "Events" -> "Spam Filter"
+
+ The sound file which is played when spam arrives can be changed in:
+ "Options" -> "Events" -> "Sounds"
+
+ Mark-Read feature:
+ If you chose "mark spam messages as read" in the options recommended option)
+ the spammer shows up in a half-visible way on your contact list.
+ However, the incoming message notification is blocked.
+ When you close Miranda IM all half-visible (not-on-list) contacts get removed automatically!
+
+ To avoid the online notification go to the Ignore options and activate "suppress online notification" for unknown contacts.
+
+ If you dislike this behaviour choose "delete spam" (but be aware that you might loose messages).
+
+ Un-Ignoring spammers:
+ Recognized spammers can be easily unignored usinf the options.
+ Just go to "Options" -> "Events" -> "Spam Filter" and click on the "Spammers" button.
+
+ If a unknown user sent you a message and you want to be sure he is no longer watched by the filter, just click
+ on "Add user to contact list" in the contact's menu. (This only works if you chose "mark spam as read".)
+
+
+Spam Definitions
+----------------------
+ "Spam Definitions" are a set of files which Spam Filter uses to detect spam.
+ The files contain well selected words/phrases etc. which a common in spam messages.
+ The Spam Definitions are mostly used by the "Advertisment Filter".
+
+ The Spam Definitions make up the default filter behaviour of Spam Filter.
+ You normally should not need to modify these files. Instead you should use
+ "Options" -> "Events" -> "Spam Filter" to configure your personal filter words.
+
+ You can install as many Spam Definitions as you like, but you should at least
+ install one package in your language.
+ The filter will not work as it should without any Spam Definitions.
+ For each languge package you install the plugin can filter spam messages.
+ For example, if you install the "German" and the "English" packages,
+ most German and English spam can be filtered.
+ Spam Filter can only filter for those languages it has data sets available.
+
+ Spam Filter loads all Spam Definition Files it can find in the directories.
+ All contents of all files are considered when a message is checked for spam.
+ Spam Filter does not know which language the message is, it simply compares its contents.
+
+ The exactness and accuracy of Spam Filter depends on its Spam Definitions.
+ If the Spam Definitions are not good, the filter is not exact.
+
+ The current Spam Definitions can be viewed in
+ the "Spam Filter" subdirectory of the Miranda IM folder.
+
+ How it works:
+ There are different Spam Definition languages available because Spam Filter needs different data sets
+ (e.g. bad words) for the different languages. This is necessary, because bad word filtering consits
+ only of testing if a word exists in the message or not.
+ When there are enough bad words in the message it will be seen as spam.
+ If Spam Filter would only have a list of English bad words (like "earn money",...)
+ it would only be able to filter English spam, since the words "earn money", etc do only exist in English messages.
+ To filter German spam another data set is needed for the filter with e.g. "Sonderangebot",
+ which again probably never will exist in English spam messages.
+ The more Spam Definition languages you have installed, the more spam you can filter.
+
+ Spam Filter does not detect the language of a message. It simply loads all bad words it can find
+ in the directoriy and checks if any of the contained bad words do match with the message.
+ If they match it is spam, if they do not, it is no spam.
+
+ The file names are not important for the filter (only extension and subdirectory is considered).
+ They are named "English", "German", etc so that it is easier to determine what they contain.
+
+ Spam Filter checks if any contained word of the Spam Definitions matches with the message.
+ It counts how many matches it can find and then checks if the matches are enough to consider the message as spam.
+
+ If you get a spam message in a language for which you don't have Spam Definitions installed, it won't be a problem.
+ It won't break anything, nor will your PC be blown up, or sth. like this... ;-)
+ Spam Filter simple won't be able to filter this message. The message will be detected as no spam,
+ because there are no data sets available.
+
+ Example:
+ If you receive, for example, French spam and you don't have the French Spam Definitions installed.
+ Spam Filter will then load all bad words it can find in the Definitions to detect if it is spam.
+ But, no matches will be found, because French spam does normally not contain English or German words.
+ French spam typically contains French words... ;-)
+
+ Spam for which you don't have any Spam Definitions installed can
+ only be blocked by the Robot Filter (if enabled additionally)
+ or if (by chance) the message contains some English bad words, or some common URLs (like .org, .com), etc.
+
+
+Installation
+----------------------
+ The easiest way to install this plugin is to use the
+ installation tool "Miranda Installer" (sadly not available anymore).
+
+ If you don't want to use that tool you can install this plugin
+ manually, too.
+ Just copy all the contents of the zip-file as they are into the "Plugins" directory
+ in the Miranda IM folder.
+ "Spam Filter" will detect the files and move them into the appropriate directories
+ on it's first run.
+
+ You can also do all the installation by hand, if you want to:
+
+ Main Plugin: Copy the file "spamfilter.dll" into the "Plugins" directory
+ in the Miranda IM folder.
+ If you would like to use Unicode you need to copy the file "spamfilterW.dll"
+ instead. Using Unicode will only work for Windows NT4/2000+.
+
+ Support for Regular Expressions:
+ If you would like to use Regular Expressions with Spam Filter (recommended)
+ then you should copy the file "pcre.dll" (RegExp DLL) into the Miranda IM directory.
+
+ Spam Definitions: The contents of the "Spam Filter" folder from the zip file,
+ including its subdirectories, need to be placed into a new created
+ "Spam Filter" subdirectory in the Miranda IM main directory.
+ The filter will not work as it should without any Spam Definitions.
+
+ Documentation: The txt-files should be moved along with the sdk-zip into the
+ "Docs" directory in the Miranda IM folder.
+
+ Sounds: The wav-files should be moved into the "Sounds"
+ directory. They will get recognized automatically and be added to the sounds list.
+
+ That's it!
+
+
+Bugs and Wishes
+----------------------
+ Feel free to mail me your wishes about "Spam Filter" and tell
+ me all the bugs you may find.
+ Please tell them to me via mail so I don't have to look
+ everywhere around to find them. ;-)
+ My email address is: hrathh at users.sourceforge.net
+
+ # I would love it if you could mail me your translated bad phrases
+ in your language. I would be nice if spam could be filtered in
+ all languages, but I need some help, please... :-)
+ ... Or perhaps you want to add some bad phrases to an existing list?
+ That's also possible... ;-)
+
+ # If you have any bad phrases that you want to be integrated into
+ the standard bad phrases of the next release of "Spam Filter"
+ please mail them to me.
+
+ # If you think a string is not grammatically correct or something
+ please mail me, too. (English is not my first language.)
+
+
+Filtering Tips
+----------------------
+ #1:
+ WebAware is often used by ICQ spambots,
+ if you disable it, you'll not get as many spam as before.
+ Goto: Options -> Network -> ICQ Privacy
+
+ #2:
+ Perhaps the following tip is useful for users that don't use latin letters
+ on the system due to their language:
+
+ Tip by ZaNuDa: (thanks very much!)
+ "I have a good idea to filter out some of the spam messages sent to me by robots.
+ These programs are plain enough and insert in their messages my nick from ICQ registration
+ data regardless of my country and native language. My nickname and name is written
+ on the ICQ site in transliteration, with latin letters.
+ Russian ICQ users writing to me never use these phrases in Latin transcription.
+ So I know, that when I receive message beginning with one of these phrases, it is probably
+ spam sent to me by a robot. So I've added both phrases to customized the bad phrases list. And it works for me."
+
+
+To-Do List (random ideas)
+----------------------
+ - Some events in are not yet Unicode enabled in spam filter (Miranda unicode event documentaion is quite crappy...not existant)
+
+ ? Add a main menu item "Show spam log" (initially deactivated) or "Show Spammers", user can enable it
+ on MenuOrder options (currently not possible using menu API of miranda)
+
+ ? Button "Recognize this message as a spam" on message dialog
+ so that it will be easier to add patterns to the list without going to the options (suggested by PanTzeR)
+ >> this could show a editbox containing the message content
+ >> after clicking OK the editbox content is added as new bad word/disliked word
+ -> not a good idea IMHO, since bad words should not be taken out of one single message
+ Instead: the option "Mark this contact as spammer" should be used
+ -> MS_SPAMFILTER_SHOWFILTERDIALOG does much of this (show spam filter options)
+ -> message dialog should/could offer support for this
+
+ ? Extend the Popup message text to contain more information than just "Advertisment Alert!"
+ -> similar to log file items
+ -> making it customizable (suggested by Dominik Sebald)
+ -> I don't know if this is really necessary...
+ -> Problem: If the popup contains the mesage text the behaviour is almost the same as without spam filter :-)
+
+ ? "Filtered Spam" Window where all filtered messages are displayed (similar to log file, but no separate file)
+ >> The user can choose which one he would like to delete
+ >> and which ones he would like to be put back into the contacts history
+ (better than a "show log file" menu item)
+
+ ? Filtering based on user info data, contact details (really necessary?)
+ -> quite difficult, because user details are first available
+ after the first message was received and added to db (for new temporary contacts), only UIN is first available
+ -> Solution: need to watch Nick setting, or wait for proto acks
+
+ ? Add filter for SMS Plugin(s)
+ >> (Spam Filter offers spam checking services...
+ >> so the better way would be if the SMS Plugins would support Spam Filter)
+
+ ? Add filter for YAMN plugin (e-mail)
+ >> (Spam Filter offers spam checking services...
+ >> so the better way would be if YAMN supports Spam Filter)
+
+ ? Bayesian method: -> will probably be "Spam Filter v3" (really necessary? I think it's too much...)
+ >> This feature will be added additionally to the phrase filtering method (-> functioning as expert option)
+ >> Perhaps as an half bayesian filter, which means that spam database will be shared
+ >> and only few people (around 100) are allowed to maintain it
+ - Integrate Bayesian filtering (http://www.paulgraham.com/antispam.html) (thanks to InvisiBill)
+ - Change to percent (%) spam detection: messages declared as
+ spam at 75% spam probability
+ >> Save spam database on server to share the training data
+
+
+Version History
+----------------------
+ 2.5.2.3: - Some internal improvements
+ - Fixed: temp file sometimes resulting from VerInstallFile API was not deleted
+ - Removed: reply sending delay (caused problems)
+
+ 2.5.2.2: - Bug-Fix: Check for unicode core was wrong (spamfilterW.dll)
+ - Some other minor changes
+
+ 2.5.2.1: - Minor fixes and improvements
+ - Fixed automatic installation routine for
+ easy installation and Updater support
+ (just extract everything out of the zip-file into the Plugins folder,
+ all files will get moved accordingly)
+ - Bug-Fix: Unicode calls to VariablesPlugin were wrong
+ - Bug-Fix: Corrected some problems with spammer info dialog
+ - Removed spammer group delete question
+ - Improved: handling of users awaiting security code
+ - Added debug symbols (PDB) into SDK package
+
+ 2.5.2.0: - Robot Filter improvements
+ - Also allows quotes in securitycode reply
+ - Some minor internal improvements
+ - Revised default message texts
+ - Some unicode fixes
+ - Fixed ColourPicker support
+ - Message send delayed by short time to allow nick to be retrieved
+ - Enabled workaround for YouWereAdded event recv
+ - Added %triesleft% variable for message texts
+
+ 2.5.1.2: - Some minor improvements
+ - Fixed unicode message sending (and receiving)
+ - Revisited string functions (probably introducted new bugs...)
+ - Fixed possible mem leak in string lists
+ - Fixed possible memory corruption in string lists
+ - Fixed crash on exit
+
+ 2.5.1.1: - Improved: Invalid RegExp error to be a bit more informative
+ - Some minor internal changes to robustness
+ - Fixed some visual glitches on Spam Definitions window on WinXP
+ - Fixed a critical-section corruption
+ - Fixed/Updated Custom Folders Plugin support (new version needed)
+ - Added checks for new IcoLib version
+
+ 2.5.1.0 - Packaged with unicode DLL (spamfilterw.dll) -> highly experimental!!!
+ - Auto-Updates for Spam Definitions using Updater (uses file listing)
+ - minor improvements
+ - fixed version resource
+ - shows error when miranda version is not supported or db3x too old
+ - remembers original NotOnList-state of spammers
+ - Bug-Fix using MS_PROTO_ADDTOCONTACT (workaround for problem in core)
+ -> fixes Quick Search incompatibility
+ - Updated icolib support for latest version (requires 0.0.1.0)
+ - "Mark as spammer" not shown for chatrooms
+ - The bug that YouWereAdded messages were sent to marked spammers was
+ a problem in ICQ.dll this should be fixed in newer versions of the ICQ protocol
+ (newer than 0.3.6.14)
+ - Fixed: Invalid Regular Expressions in Spam Definitions are now notified
+ - Bug-Fix: Auto-Ignore spammers were not shown on the spammers list
+ - Bug-Fix: Sometimes short messages were considered as multiple received messages
+ - Bug-Fix: Memory corruption problems with the log file (and some other minor logging fixes)
+ - Bug-Fix: Auto-Replies were sometimes not sent out when "Delete Spam" was enabled
+
+ 2.5.0.0 NEW FEATURE: Real Unicode Support!
+ -> two DLL files: spamfilter.dll and spamfilterw.dll
+ -> spamfilterW.dll will only load if Unicode *is* supported (e.g. Win2000 and higher...)
+ -> spamfilter.dll will only load if Unicode *is not* supported (Win95/98/ME)
+ -> spamfilterW9x.dll uses the unicode layer for Win95/98/ME (highly experimental version)
+ It needs unicows.dll in Miranda IM directory.
+ -> Spam Definition files are saved/loaded as UTF8 (auto-converting at first-run)
+ - Updated: Variables Plugin support (now supports Variables v0.2.0.0)
+ - Added: Support for help dialog of Variables Plugin
+ - Added: The "Missing Spam Definitions"-Warning can be
+ deactivated for the future by pressung the Ctrl-Key whn the message occurs
+ (requested by kopec)
+ (Be careful!: Should normally not be used)
+ - Enhanced: Functionality of MS_SPAMFILTER_REGISTERMESSAGETYPE
+ - Bug-Fix: tiny memory leak with the regexp help button icon
+ - Bug-Fix: "Variables" Plugin text was not always freed (mem leak)
+ - Bug-Fix: fixed possible memory leaks with realloc when low memory
+ - Improved: spammers file format
+ - Fixed: fixed a typing mistake without any effect
+ - Bug-Fix: fixed error handling for calls to GetWindowRect
+ (did not have any effect)
+ - Bug-Fix: Corrected wronmg calling of TreeView state (however no effects)
+ - Bug-Fix: fixed large spam icon (res id was wrong)
+ - Bug-Fix: OSD support did not work yet..commented out...oups :-)
+ - Bug-Fix: Option "Allowed Spam per User" on Advertisment Filter dialog
+ was not synced correctly
+ - Bug-Fix: OpenFile-Dialog was not shown correctly on WinNT4 (I hope it does now)
+ - Bug-Fix: Restored full support for Win95 (GetLongFileName is now run-time linked)
+ - Bug-Fix: special chars in XML logging header were sometimes not replaced correctly
+ - Bug-Fix: samll memory leak in XL logging logic
+ - Bug-Fix: Read/Sent flags got corrupted when making events as unread
+ - Fixed: Updated old part in the docs (reported by PanTzeR)
+ - Added: Note is shown in options when not all SpamDefinitions are available
+ - Improved: some other internal tweaks
+ - Extended: english teaser definitions
+ - Modified: translation strings (see SpamFilter-Translation.txt)
+ - Improved: Made it more robost against database curruption
+ - Improved: Removed 256 sized text buffer for MsgType box (possibility of buffer overrun)
+ - Improved: Internal stringlist handling on low memory conditions (string pairs)
+ - Improved: revisited log file code
+ - Bug-Fix: robot filter instruction and answer text could not be changed
+ - Added/Fixed: MBCS and surrogates support for far east (improved locale handling, too)
+ - Fixed some issues with pointer arithmetic
+ - Code robustness updates
+ - Impreoved: further increased filtering performance by caching
+ - Cleaned up SetSpammerManually code
+ - Strings modified (see SpamFilter-Translation.txt)
+ - Corrected some typos in strings
+ - Minor Bug-Fix: horizontal extent of list box was sometimes miscalculated
+ - Added: Auto-Import feature to convert old ANSI files of old Spam Filter 2.x
+ into the new UTF-8 format (needed to support Unicode properly)
+ IMPORTANT!: be sure to make a backup of any self-defined Spam Definitions.
+ - Improved: removed static variables in DlgProcs/WindowProcs
+ - Added: bad words cache to further improve performance
+ - Added: Real Unicode support (separate files: spamfilterW.dll is unicode,
+ no Win9x/ME supported on Unicode)
+ including BOM support for text files
+ - Added: LogFile write UTF-16LE BOM into txt/log files to indicate
+ correct Unicode format for Rraders as Notepad (only in Unicode mode)
+ - Improved: Spam Definitions are only validated when Advertisment Filter or
+ Disliked Messages Filter is enabled
+ - Added some documenation about Regular Expressions (RegExp),
+ how to use them and a code table (quick guide for beginners)
+ (accessable via a button on the add to list dialog)
+ More info: http://perldoc.perl.org/perlrequick.html
+ - Added: Now shows a error message when the reply messages can't be sent
+ (due to network errors etc.)
+ - Added: Support for Custom Folder Plugin
+ - new service: write log file
+ - new service: send_automated_contact_message (including rec, error output)
+ - new service: show generic error_message (out of memory?, message not sent)
+ - Added: now uses Miranda's simple memory problems catcher
+ - Updated: PluginInfo of Plugins options
+ - got rid of AgressiveOptimize.h:
+ (reason: http://forums.miranda-im.org/showthread.php?t=4863)
+ does not work on DEP systems (= data execution prevention).
+ As for optimizing. Use /O1 (optimize for size), disable global optimizing and disable the
+ "optimize for Windows 98" feature of the linker (/opt:nowin98).
+ This can considerably bloat the resulting DLL/EXE for (a small) performance gain on Win 9x,
+ but does nothing on NT based systems.
+ - support new variable in Variables Plugin: %number_of_auto_ignore_users%
+ - Repackaged: in default zip is only english spam language
+ - Added: Trigger Plugin support
+ - Added: Support for extra icon on contact list (indicating spammer)
+ - Added: Spammers list manager
+ - Added: Auto-Import of old spammers of v2.0.1.0
+
+
+ 2.1.0.0 - Added: pending auth requests are automatically denied if contact is ignored
+ - Added: preparation for taken YouWereAdded events into spam detection
+ - Added: Support for OSD Plugins beside Popup Plugin support (requested by Schommel)
+ - Bug-Fix: Configure dialogs were not closed properly when created not as modal
+ - Bug-Fix: memory leak in the string lists, the stringlist main object was never freed
+ - Bug-Fix: stringlist converting to string did not work correctly (not zero terminated)
+ - Bug-Fix: internal stringlists are now thread safe (using CriticalSections)
+ - Bug-Fix: pcre.dll is now copied/installed correctly (path was wrong formated)
+ - Bug-Fix: Regular Expressions were not compiled correctly
+ -> Regular Expressions should now really work in default installation :-)
+ - Bug-Fix: possible crash in recv chain filtering
+ -> empty contact was deleted before ICQ could have the chance to add its message
+ (bug only occured when "delete spam messages" was enabled)
+ - Bug-Fix: contact that were set on the spammer list were never really hidden
+ -> ICQ did always reset the Hidden attribute; this is now fixed
+ - Bug-Fix: small memory leak in AutoIgnore settings loading
+ - Bug-Fix: Now question message will not be sent when spammer just reached it spam limit
+ - Bug-Fix: reply messages are ordered correctly in db/history
+ - Bug-Fix: No longer sending "YouWereAdded" notification when a spammer is added to ignore list
+ (reported by PanTzeR)
+ -> ICQ sent a confirmation automatically when a user was made permanent; now this is prevented
+ - Bug-Fix: Spam Log did not always mention "user ignored" (log written too early)
+ - Bug-Fix: contacts event was never filtered
+ - Bug-Fix: tiny problem with hContact of auth requests
+ - Bug-Fix: Corrected some hidden Access Violations in MessageTypes box
+ - Bug-Fix: "Disliked Messages Filter" now really works (reported by zk, Tomaso, PanTzeR)
+ * message text never got allocated
+ * did not work for contacts that passed the robot filter previously
+ * some wrong setting names were used
+ * hoax texs were checked wrongly
+ * hoax texts were not loaded (corrected file ext: .sfw -> .sft)
+ >> Ouch....quite crappy thing...did I really code that? :-o
+ Anyway...now it's finally fixed :-D
+ - Bug-Fix: Filter strings of Log-Browse dialog were not allocated correctly
+ (stringlist access violation)
+ - Bug-Fix: AddToHistory option of DislikedMessagesFilter did not get disabled
+ when other options got disabled
+ - Bug-Fix: If "Add the reply to contact history" was selected, the history showed the reply
+ before the spam message (reported by Tomaso)
+ - Bug-Fix: "Show log" button did never get activated (broken in v2.0.1.0)
+ - Bug-Fix: relative paths for spam log were broken
+ - Bug-Fix: some minor UI improvements
+ - Bug-Fix: memory leak in the DislikedMessages options (bold font was not destroyed)
+ - Bug-Fix: when a filter window was opened using the SF-API without parent then the window
+ would not be destroyed on exit of Miranda (extended/modified SF-API)
+ - Bug-Fix: added some NULL checking where I forgot it
+ - Bug-Fix: added checking for correct db setting type
+ - Bug-Fix: "Apply" button was sometimes enabled although no options
+ were changed for message types
+ - Improved: now the robot filter only workd for normal sending and receiving contacts
+ - Improved: stringlist loading speed (just a bit)
+ - Improved: spam detection speed when "show popup" is disabled (just a bit)
+ - Fixed/Improved: some small internal tweaks and resource cleanup
+ - Fixed: now uses UniqueID instead when renaming a contact to set it on the spammers list
+ -> this fixes: spammers added as "'Unknown Contact' (Spammer)" (reported by PanTzeR)
+ - Modified: "Random" button in robot filter options now creates always the same length
+ - Improved: SPAMCHECKDATA strcuture to be more cleanly implemented
+ => Code is now fully tested on different situations
+ => Code was additionally fully checked for memory leaks and/or memory access violations
+
+ 2.0.2.0 - FEATURE!: Support for Regular Expressions (using pcre.dll; included)
+ -> Support for Regular Expressions is disabled when the DLL (pcre.dll) is not present
+ -> Word filter is now much, much, much more powerful!
+ - Added: RegExp DLL (pcre.dll) is installed automatically on first run (In Miranda directory)
+ -> including DLL version checking
+ - Added: some little more documentation about the Spam Definitions (readme and in the files)
+ - Added: now the UniqueID of a protocol is appended to the nickname in the spam log
+ (reported by Lastwebpage)
+ - Added: support for Updater to update the SpamFilter plugin
+ - Bug-Fix: Making use of EnterCriticalSection to gain thread safety
+ - Bug-Fix: avoiding of some string buffer overruns in some rare situations (if ever)
+ - Bug-Fix: Message Types box gets sorted properly
+ - Bug-Fix: popups did not work (broken in 2.0.1.0)
+ - Bug-Fix: menu item icon was not updated when icons were changed (IcoLib support)
+ - Bug-Fix: fixed some memory leaks of contact name strings
+ - Extended: Documentation of Spam Definitions and how they work
+ - Fixed: corrected some strings (see SpamFilter-Translation.txt)
+ - Fixed: corrected wrong naming of teaser text files (.sfw -> .sft)
+ - Fixed: known spammer file now allows proto|uniqueid and proto|nick (if available)
+ - Modified: few changes in the strings (see SpamFilter-Translation.txt)
+
+ 2.0.1.0 - Bug-Fix: "Allowed spam per User" could not be changed (reported by ATom)
+ - Bug-Fix: problems with RTL support (:text)
+ -> I thought RTL support would only work on Arabic/Hebrew versions of windows, so I enabled it..
+ In fact it works on most Win2000/XP versions as I found out
+ (not really good documented :-/... they only speak of "RTL enabled windows versions")
+ - Bug-Fix: minor memory leak with the message type icons
+ - Bug-Fix: layout confusion with Spam Logging group (reported by Romx)
+ - Bug-Fix: auth requests were not handled correctly when setting a spammer manually
+ - Bug-Fix: "Allowed bad phrases until spam" was ignored (ATom)
+ -> caused just by a small typo in the code :-/
+ - Bug-Fix: line breaks and spaces were not cleared correctly in
+ incoming messages (silly typo in code :-/)
+ -> this fixes the following:
+ * normal words as security code were not recognized as right answers
+ (reported by Steffen Kaufmann)
+ * sometimes the reply for a good answer was not sent (reported by ATom)
+ - Bug-Fix: using mir_snprintf to avoid string buffer overruns
+ - Bug-Fix: first message from NotOnList user was from "(Unknown contact)"
+ - Bug-Fix: PreSpammers were not unique, now they are saved as "Proto|Address"
+ - Modified: Removed SFFreeMemory, replaced with miranda_sys_free (m_spamfilter.h)
+ - Modified: pszSection in MESSAGETYPEDESC can now really be NULL (m_spamfilter.h updated)
+ - Modified: AutoIgnore feature now uses real unique user ID
+ - Added: IcoLib support
+ - Added: Support for "ColourPicker" to choose Colors of Popups
+ - Added: Support for Netlib logging (Netlib_Logf) -> spam filter actions on messages are now listed
+ in the network activity log
+ - Added: ability to reset the AutoIgnore feature
+ - Improved: Better looking "Mark as spammer" dialog
+ - Improved: minor performance improvements, code cleaning, DB settings cleaned up.
+ - Changed: services for message types (no backward compatibility to 2.0.0.0, sorry
+ -> devs, please update "m_spamfilter.h")
+ -> detecting default settings for checked protocols/events is now possible (might be useful for IRC?)
+ - Added: New event for protocols to determine if they want to be checked for spam by default:
+ ME_SPAMFILTER_PREADDNEWMESSAGETYPE
+ - Modified: Functionality of MS_SPAMFILTER_SETSPAMMANUALLY and
+ MS_SPAMFILTER_GETHANDLE ("m_spamfilter.h")
+ - Fixed: phone number default definitions (all large numbers were detected as phnone codes)
+ - Fixed/Extended: translation strings (Translattor see "SpamFilter-Translation.txt")
+ => all known bugs should now be fixed :-)
+
+ 2.0.0.0 - Almost all got changed/fixed/improved/extended/... :-)
+ - Added support for logging in XML format (including XSL stylesheet)
+ -> Very clean XML format used
+ -> Characters replaced: < with &lt; , > with &gt; , & with &amp; , " with &quot; , ' with &apos;
+ - Fixed: Layout mistake on options page
+ - Added: Recognition of CAPITALIZED messages (thanks to InvisiBill)
+ - Some other small changes and cleaned up code
+ - Added possibility to change spammers (on ignore list)
+ - Added extra buttons for "filter settings"
+ - Added error handling for log file edit box and removed read only flag
+ - Fixed: "Select log file" dialog was shown sometimes on re-activating filter
+ - Removed unnecessary error message ("Please select bad phrase to delete")
+ - Added (better) error handling for "Allowed bad phrases" box
+ - Improved/Changed German translation completely
+ - Added more Russian bad phrases
+ -> Many thanks to ZaNuDa
+ - Added new section "Filtering Tips" to readme file
+ - Added recognition support for phone numbers (Idea by ZaNuDa)
+ - Spam Filter now behaves as a filter protocol
+ -> This makes the filter more faster than before
+ - Moved together the filter behaviour "delete message" and "delete contact"
+ -> The contact now gets automatically deleted if it has no other messages in history
+ - Fixed: Apply button got always enabled when options were loaded
+ - Now uses better/newer LoadImage function instead of LoadIcon function to save memory
+ -> Icons now get unloaded to save memory
+ - Added Spam Definitions instead of using a langpack string
+ - Bold heading for groups in "Configure..." options, too
+ - Added automatic adjustment of "Ignore" settings
+ - Improved: Icons in spam popups are now skinned icons of Miranda IM for message and URL icon
+ (with layered spam icon on it)
+ - Improved file size
+ - Dropped "one phrase message" recognition
+ -> Was not a good indicator for spam
+ -> Did not work with languages which do not have (or use) spaces
+ - Added support for "PluginUninstaller"
+ - Added "Allowed spam messages" feature
+ - Complete new phrase list algorithms for easy phrase list
+ loading/saving and checking
+ - Changed formating of sounds (Added: "Spam Filter: " prefix)
+ - Added "empty message" detection
+ - Added "Multiple message with same content" detection (Idea by Popovn)
+ - Recognition of bad phrases that are formated differently (like "\/!@gr@")
+ and have kinds of things in them (thanks to InvisiBill)
+ - Added disliked messages filter
+ Filter out something like: "Please send this message to all of your friends" or
+ "please forward") (Idea by Johannes)
+ - Added button "Show log" to make opening the log file more easier
+ - Changed "Select log file" dialog to use the standard "Save as" dialog instead of the "Open" dialog
+ - Improved log file format
+ - Also looking for "good phrase(s)"
+ - Recognition support for phrases with s p a c e s (included in "different formated phrases" check)
+ - Added: Position of configure dialogs gets saved
+ - Added: Now also checks for auth requests
+ - Some resource improvements
+ - Added the possibility to manually avoid spam check via pressing the control key
+ when recieving a message
+ - The Spam Filter now is implemented as a proper protocol filter plugin
+ - Improved filtering speed
+ - Added: Automatic installation of docs and sound files on first run
+ - Added: Auto-Import feature for bad phrases used with v1.0.4.0
+ - Added: DatabaseEditor++ support
+ - Extended: Phrase list editing; the list boxes now support
+ horizontal scrolls if needed, drag and drop for rearranging the phrases,
+ context menu for fast editing, possibility to input long phrases, etc...
+ - Added: "Variables" plugin support
+ - Added a second default sound file
+ - Added: Log file control now makes use of the auto complete feature
+ - Added: Relative paths can be used in the log file edit control
+ - Added: Comma Separated Values format logging
+ - Added: Robot Block functionality similar to "StopSpam" plugin:
+ Further enhanced technic and cleaner implementation.
+ - Translators: There are a lot of changes in the strings ;-)
+ - Doubly recieved messages can be removed
+ For plugin developers: (Only ;-) )
+ - Updated "m_spamfilter.h" (Almost all is new)
+ - Added "m_spamfilter.inc" for Delphi developers
+
+ 1.0.4.0 - Two entries with the same words in the customized bad words list
+ are no longer possible
+ - Added Feature: Spammer name/id remembering and blocking
+ - Added Feature: Spammers who are not recognized can be added to the spammers list via right click
+ (thanks to Rudi)
+ - Added version information to DLL file
+ - Changed logging output
+ - Added txt file item on select log file dialog
+ - Improved conrolling of the options page via keyboard
+ - Improved layout of the options page
+ - Extended URL-recognition: Now recognizes also URLs with returns in between (thanks to Rudi)
+ - Extended/Improved default bad words very much (strings, too) -> now 78
+ -> Please update your language pack (if you use one)
+ - Extended German bad words (see "SpamFilter_Translation.txt")
+ - Extended Potuguese (Brazil) bad words (thanks to Paulo)
+ - Updated German and Chinese (Traditional) dialog translations
+ (thanks to Wongsen for the Chinese one)
+ - Fixed: The string "Log spam messages to file:" was displayed in
+ German (thanks to Wongsen)
+ - Fixed: Crash on selecting logging file (thanks to Genionhandy2 and Bumper1)
+ - Fixed: URL-Recognition and one word message recognition didn't work
+ currently (thanks to Wongsen and Rudi)
+ - Fixed: Small bug with the open file dialog
+ - Fixed: URLs are now completely checked and saved to log file
+ - Updated service functions for plugin developers
+ - Improved error checking of "Add bad word" dialog
+ - Improved error checking for "Select log file" dialog
+ - New/Improved icons (smaller file size, too)
+ - Improved default settings
+ - Some other small changes
+ - Updated screenshot on website
+
+ 1.0.3.1 - Changed/Improved icons for spam popups
+ - Nearly complete rewrite of the spam recognition
+ - Fixed: Log file wasn't written if selected directory didn't exist anylonger
+ - Fixed: Log file option got always unchecked (also if enabled)
+ - Fixed: Sometimes the wrong bad word got selected on inserting a
+ customized bad word
+ - Added bad words are now checked for occurence in default list
+ - Changed some strings
+ - Changed some German translation strings
+ - Updated Chinese (Traditional) strings (thanks to Wongsen)
+ - Updated Chinese (Traditional) bad words (thanks to Wongsen)
+ - Extended English default bad words (strings, too)
+ -> Please update your language pack (if you use one)
+ - Changed/Improved included sound file and new file name
+ -> Please update your sound settings (thanks to Wongsen)
+ - Extended German bad words
+ - Added "Activate/Deactivate" item in "PopUps" submenu
+ - Improved URL filtering: URLs with spaces (h t t p :) are now
+ included in the filter, too (thanks to Rudi)
+ - Some preparing for contact name/id collecting/blocking (coming in v1.0.4.0)
+ - Changed/Improved documentation and removed some mistypings
+ - Some other small/big internal changes/improvements
+ - FOR PLUGIN DEVELOPERS!: Added more service functions!
+ -> Activation service functions
+ -> General spam checking service (with hContact)
+ (For details see "m_spamfilter.h")
+
+ 1.0.3.0 - Improved error checking for "allowed bad words" control
+ - Fixed: Customized bad words sometimes got messed up due to wrong
+ pointers (thanks to Lúcio and Wongsen)
+ - Fixed: Customized bad words now get correctly allocated
+ and released
+ - Fixed: Default settings did not now fit for all languages
+ (thanks to Wongsen)
+ - Improved performance and bad words count loader
+ - Improved spam filter
+ - Merged "Is URL" and "Contains URL" part
+ - Improved log file output
+ - Extended default bad words (Updated strings, too)
+ - Added Chinese (Traditional) bad words (thanks to Wongsen)
+ - Changed some English strings (Updated strings, too)
+ - Changed some German translation strings
+ - Added Chinese (Traditional) dialog strings (thanks to Wongsen)
+ - Improved/Changed documentation
+ - NEW FOR DEVELOPERS: Added service function for bad words
+ checking in other plugins (For details see "m_spamfilter.h")
+ - Some other small changes
+ - Updated screenshot on website
+
+ 1.0.2.4 - Fixed: Non-spamming contacts sometimes got hidden while sending
+ messages to them (thanks to Javier and Tomaso)
+ - Changed some strings in German translation
+
+ 1.0.2.3 - Fixed: Button "Cancel" in "Add bad word" dialog showed always the
+ German variant "Abbrechen" (thanks to Jef)
+ - Fixed: Database values now get freed (Oups, I forgot that...)
+ - Fixed: Auto-Deleting message and auto-deleting contact now works
+ without outputing empty message dialogs! (Nobody noticed?)
+ - Changed "Add bad word" dialog for people who don't read documentation
+ files ;-)
+ - Changed some translation strings
+ - Improved filter performance
+ - Small changes in translation documentation
+
+ 1.0.2.2 - Improved: Smaller file size (improved compiler settings)
+ - Changed documentation files
+ - Reprogrammed error checking for "Add bad word" dialog
+ - Reprogrammed key support for customized bad words list box
+ (Now uses subclass procedure)
+ - Extended recognized keys in list box:
+ Now supports "del", "-", "+", up and down keys
+ - Changed Portuguese (Brazil) bad words (thanks to Lúcio)
+ - Improved dates/times in logging:
+ -> Now uses system (language) default format for formatting dates/times
+ -> Removed translation strings for this
+ - Fixed: Corrected small checking bug with "Allowed bad words until spam"
+ (thanks to Lúcio)
+ - Fixed: Options items are now correctly grouped
+ - Fixed: Spam logging didn't work without Path plugin
+ - Some internal improvements/performance optimizations
+ - Some changes with the German translation
+ - Improved spam logging output: more detailed and cleaned up
+ - Optimized/Faster spam logging
+ - Improved/Changed documentation
+ - Some other small/minor changes
+
+ 1.0.2.1 - Improved behaviour of "Allowed bad words in messages" spin control
+ - Changed dialog font to same as in Miranda IM core
+ - Added expert options support for logging options
+ - Changed Path Plugin dependency (Path plugin is now optional)
+ -> You do not need to have the Path plugin for logging any longer
+ -> It is only needed if you would like to use relative paths
+ - Included a fix for an issue with the Path plugin
+ (kind of bug in Path plugin)
+ - Changed option group headings to bold (finally found out how to
+ switch this... ;-) )
+ - Removed positioning of options group
+ - Cleaned up/Improved resources
+ - Added button for "Select log file" dialog
+ - Changed log file box
+ - Improved spam logging: Now messages are now longer saved as only
+ lower case
+ - Added error checking for add bad word dialog
+ - Fixed: Some error box strings were not translatable
+ - Fixed: Selection of "What to do" got sometimes not set
+ - Changed the path to default sound file to the included sound file
+ - Forgot to switch the version number shown on plugins page (Oups...)
+ - Improved German translation
+ - Some other small changes
+ - Updated screenshot on website
+
+ 1.0.2.0 - Added spam message/sender logging to file (fully translatable)
+ - Added some language pack string for spam logging
+ - Added Portuguese (Brazil) bad words (thanks to Lúcio)
+ - Improved comma recognition in default bad words list in language pack
+ - Added "del" key support in customized bad words box
+ - Small changes in German translation
+ - Added some default bad words (Changed strings, too)
+ - Use of new header files
+ - Updated screenshot on website
+
+ 1.0.1.0 - Added spamming contacts handling
+ - Improved option page layout
+ - Moved translation strings out of "SpamFilter_Developers.txt" to
+ separate file
+ - Added some default bad words (Changed strings, too)
+ - Added French bad words (thanks to Poischack)
+ - Added Russian bad words (thanks to NeptunE)
+ - "SpamFilter" speaks German!
+ (Completed German standard translation in "SpamFilter_Translation.txt")
+ - Rearranged and optimized code
+ - Some other small changes
+ - Updated screenshot on website
+
+ 1.0.0.2 - Changed selection style of customized bad words box
+ - Fixed: I forgot to mark some strings translatable...
+ - Changed some texts (Changed strings, too)
+ - Better position for "Add Bad Word" dialog
+ - Customized bad words list gets now sorted
+ - Added "Fast delete": Improved and faster deleting of customized
+ bad words in list
+ - Improved adding of customized bad words (small change)
+ - Added sound file
+ - Cleaned up code a bit
+ - Some other minor changes
+
+ 1.0.0.1 - Removed some debug output messages (Oups...)
+ - Extended default bad words
+ - Fixed: Customized bad words list doubled itself every time it
+ got loaded
+ - Smaller file size
+ - Some other tiny changes
+
+ 1.0.0.0 - Initial release
+
+
+Thanks
+----------------------
+ * To Roland Rabien the author of "SpamBlock" for the
+ first idea of spam recognition by bad words
+
+ * To Daniel Walter who improved "SpamBlock" to "SpamBlock+"
+ for the idea of an extensible bad words list
+
+ * To romamik the author of "StopSpam" for the
+ idea to block robots via reply messages
+
+ * To Lúcio for the Portuguese (Brazil) bad words
+ and his much feedback ;-)
+
+ * To Wongsen for the Chinese (Traditional) bad words and dialog translation,
+ his much feedback, his idea for an sound file and his helpful "beta testing" ;-)
+
+ * To NeptunE for the Russian bad words
+
+ * To Poischack for the French bad words
+
+ * To Paulo for some more Portuguese (Brazil) bad words
+
+ * To cyesto for creating a great bug-fix for the crash-on-ignore issue
+ in version 2.1.0.0. Thanks a lot!
+
+ * To Rudi for his many reported spam messages
+
+ * To Javier, Jef, Lúcio, Tomaso, Wongsen, Rudi, Genionhandy2, Bumper1,
+ ATom, Lastwebpage, Steffen Kaufmann, Romx, zk, Sarcago, sh8an, PanTzeR,
+ DaSilva, TioDuke, kurd, gerk, Vosoni, Avalanche, adderek, Schommel,
+ PsychodelEKS, Petr and pro100_tak for their bug reports
+
+ * To Johannes, Pickle Pete, Popovn, PanTzeR for their improvement ideas
+
+ * To Genionhandy2 for advertising this plugin ;-)
+
+ * To InvisiBill for his much feedback and his improvement ideas
+
+ * To Tigerix for his massive feature suggestions and bug-reporting :-)
+
+ * To ZaNuDa for some more Russian bad words and the filtering tips
+ and especially for his much effort in beta testing version 2.0.0.0.
+
+
+Translation
+----------------------
+ Translation strings and available bad words strings can be found
+ in "SpamFilter-Translation.txt" of the SDK package.
+
+
+License and Copyright
+----------------------
+
+ "Spam Filter" is released under the terms of the GNU General Public License.
+ See "SpamFilter-License.txt" for more details.
+
+ "Spam Filter" is copyright (c) 2003-2006 by Heiko Herkenrath.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+ 3. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+ 4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ RegExp Library:
+ PCRE (pcre.dll) is a library of functions to support regular expressions whose syntax
+ and semantics are as close as possible to those of the Perl 5 language.
+
+ "Perl Compatible Regular Expressions" (PCRE) is distributed under the terms of
+ the "BSD" license. See "PCRE-License.txt" for more details.
+
+ "PCRE" is copyright (c) 1997-2004 University of Cambridge
+
+
+H. Herkenrath (hrathh at users.sourceforge.net) \ No newline at end of file