Download DLFilter.zip (15.81 KB)
Current version: 1.16
DLFilter is a text filtering script for mIRC. It is created with file sharing channels in mind. DLFilter removes ads, requests, annoying KeepTrack, mp3 play & away messages and much more. Also, DLFilter can send notices from fileservers to separate window and group @find results, allowing them to be easily viewed. DLFilter allows users to create their own wildcard filters and is highly configurable - see more below.
Installation and overview
Extract the contents of DLFilter.zip to your mIRC folder, type into any mIRC window: /load -rs DLFilter.mrc and press enter. That will load DLFilter and launch the configuration window. (note: these images show the default configuration of the filter). Please note that some other scripts may interfere with filtering, causing various problems. Especially usage of mIRC theme system (MTS) should be avoided.
Enable/disable DLFilter. Do you really need help with that?
- Channels. Determines the channels filtered by DLFilter. Some events are filtered on all channels, as they are not channel related. The default setting is #, i.e. "all".You can change channels from the options dialog or from the channel right-click popup menu.
o ..ads and announcements. Filters common fileserver ads and announcements
o ..requests and searches. This filters all lines that start with @ or !.
o ..channel mode changes. Filters channel mode changes set by channel ops or IRC server, such as user limit changes.
o ..requests sent in private. While there are fileservers that take requests that are sent as private messages, most servers do not do that. Checking this box will filter all lines sent to you in private query message that begin with @<your nick>, !<your nick> or !<your nick>- (like !DukeLupus-que). Users sending those annoying misdirected messages are generally newbies, therefore the following help messages will be sent to them:
Please do not request in private. All commands go to channel.
You may have to go to mIRC options --->> Sounds --->> Requests and uncheck "Send '!nick file' as private message"
- User related events
- Joins, parts, quits, nick changes and kicks. Selecting this option will filter those events in channels monitored by DLFilter.
- Show them in status window. Shows previously mentioned user-related events in status window:
[15:44:38] [#mp3servers] * SomeNick (firstname.lastname@example.org) has joined #mp3servers
- Away and thank-you messages. A lot of very annoying and un-needed messages will be filtered.
- User mode changes. This hides all +v, +o, etc. messages from you.
- Text "You have current version of DLFilter". Since version 0.970, DLFilter checks this webpage for latest version of DLFilter. When you open DLFilter options dialog, you will see "Checking for DLFilter updates...", which shouldn't take more then few seconds. When version data arrives, you will see either "Update! Version nnn is available!" or "You have current version of DLFilter". If version checking fails, then you'll see "Connection to DLFilter website failed!" message.
- Buttons "DLFilter website" and "Direct download". First will open this page in new browser, second is direct link to DLFilter.zip.
- Close. What do you think?
- Show/hide filtered lines. If you select "show", then all filtered lines will be shown in special DLF.filtered window. More about that window later.
Tab 2: Capturing/Spam/Security
- Capture server notices to separate window. Notices and messages from fileservers will be filtered to separate DLF.server window. More about that window later.
- Group @find results. Normally, after you do @find/@locator on file serving channel, you will receive search results from fileserver as messages, each server opening their own query (aka "chat") window where search results are displayed. When this item is checked, DLFilter will collect all search results sent to you and display them in separate DLF.@find.results window. Your currenly open query windows will not be affected, even if you get search results from the person you are chatting with; all other query windows with search results will not open. Results headers/footers, such as "12 files found, type..." will be shown on DLF.server window. NOTE: Results from XDCC and other non-SDFind/OmenServe type fileservers will not be grouped nor will their respective query windows get closed.
- Capture "new release" messages. This is for the channel #bookz in Undernet and some other similar channels.
- Capture onotices to separate window. (onotice is an "ops notice", read about it from mIRC help). Checking this item will allow channel operators to talk with eachother on separate window, which will be named @ + channel. I.e. if ThisNick does /onotice #ThisChan Are you listening? and user is an operator on this channel, then new window will open called @#ThisChan, you will see message <ThisNick> Are you listening? and name ThisNick will also appear in that window listbox (where in normal channels users are listed). You can answer to him by typing your message to @#ThisChan window just like in a normal channel. Those ops that do not use DLFilter or this feature of DLFilter will get your messages like normal onotices. You can also use /me in the @#ThisChan window but note that users who do not use this feature will see your message like /me says something. You will get right-click menu when you click on #@ThisChan window, but all items should be self-explanatory. Also, you will get new item in channel right-click menu, "Send ONotice" that will open corresponding @# window where you can type your messages. This menu item will be disabled if you are not an operator on that channel. Of course, you can still do normal /onotice as well. Since version 1.01, if you have onotice logging enabled, DLFilter will automatically load old log when @# window opens. NOTE: DLFilter will automatically unload the previous versions of my ONotice script if they are loaded!
Spam and security
- Filter spam on channel: filters some known and most common spam messages in a channel.
- Notify, if you are an op. If you are an op on a channel that was spammed, you will receive a message about that spam (shown in that channel and status window), so you can kick & ban that spammer.
- Filter private spam. Filters known spam sent to you as private messages or notices.
- Notify, if you are an op in common channel. Self explanory.
- Add spammer to ignore for one hour. Does exacly what it says. Asks for confirmation.
- Don't accept any messages or files from users with whom you do not have a common channel. Protects from stealth spammers and infected clients. Should be always checked. Blocked messages are /echo'ed to status window. NOTE: Since v0.976 it is possible to use normal chat if you started it, ie. opened query window and sent first line.
- ..but accept DCC chats. So far I haven't seen spammers using a DCC CHAT, so that way persons not on same channels as you are can contact you.
- Do not accept files from regular users. In file serving channels, servers are usually +voiced or @ops, therefore it is very suspicious if someone who is not channel operator or voiced sends you a file. However, the default setting is off.
- Block only potentically dangerous filetypes. If you have checked this, DLFilter will only block following filetypes: .exe, .com,.bat,.mrc,.scr,.pif,.vbs,.js,.doc. All other filetypes that regular users send will be received normally.
- Do not accept private messages from regular users. Protects from spam. Default is unchecked - leave it that way if you are a channel operator.
- Color uncolored fileservers. Checking this will color nicks detected to be serving files in responsive channel to dark blue. If nick is already colored by some other script or manually, then its color is not changed. Default setting is off. NOTE 1: This works only if filtering ads is enabled. NOTE 2: This is not 100% accurate since newbies tend to paste strange things to the channel, including ads of fileservers.
Tab 3. Custom filters.
Using this tab you can create your own custom filters. You can choose what type of message you want to filter (Channel text, channel action (aka /me or /describe messages), channel notice, channel ctcp, private text, private action, private notice, private ctcp/ctcpreply). All custom strings are wildcard strings. If you want to filter the private notice "Download incomplete at 97%. Please re-request!" you have to choose "Private notice" from filtering type, type/paste Download incomplete at*Please re-request* to the editbox and press the "Add" button. Note that I used '*' instead of 97% since it varies and contains the unallowed '%' sign, that was also the reason why I replaced '!' with '*'. This will filter all private notices to you beginning with that string; if you want to get string from the middle of the message, you should envelop your string with wildcard signs like *Download incomplete at*Please re-request*. Like I mentioned earlier, some symbols are not allowed in wildcard filtering strings, they will be replaced automatically with a '*'. All filtered lines are shown in DLF.Filtered window, if "Show filtered lines" is selected.
The number of custom filtering strings is not limited, however, if you assign hundreds of custom strings, you will probably slow down your mIRC somewhat. Of course, do not assign something like *a* or * if you really don't mean that.
DLF.Filtered and DLF.server windows
DLF.Filtered window is where all filtered lines from channel are shown, if you choose that option from channel right-click menu,Command --> DLFilter menu or DLFilter options dialog. The image on the right is DLF.Filtered right-click menu; menu of DLF.server is similar.
In DLF.Server window, notices sent to you by fileservers are shown (also some messages sent as private text). You can enable that from the Options dialog, tab 2, check "Capture server notices to separate window" item.
- Clear - clears all text in the DLF.Filtered window
- Search - opens the search dialog, allowing you to search using a wildcard string in the DLF.filtered window. Results are displayed in separate window, you can do new search also from the result window editbox.
- Timestamp - timestamps all added lines, using your current timestamp settings. You can change timestamp settings from mIRC Options --> IRC --> Messages, "Timestamp events" editbox.
- Strip codes - removes Bold, Underline, Reverse, and Color control codes. All newly added lines will be in plain noncolored text.
- Wrap lines - turns line wrapping on/off.
- Limit number of lines - if checked, number of lines in DLF.filtered will not go over 5000. I recommend that you keep it always checked, since all text in mIRC windows will be kept in RAM; window with unlimited number of lines can take huge amounts of memory.
- Options - displays the DLFilter options dialog.
- Close - would you like to guess?
Starting from v1.1 you can also log DLF.Filtered window.
As you can guess from window name, the search results are collected here. The window titlebar shows number of search results. Search results are alphabetically ordered. Note that grouping search results does not separate results from different searches, ie. if you do "@find Queen" and "@find Bohemian Rhapsody" then results from both searches will be grouped into single window. As it is very likely you will get a lot of replies from the same fileserver about the same file, only unique lines will be added to DLF.@find.Results window. There is no maximum line limit for that window.
When you right-click on DLF.@find.Results window, you will get following popup menu:
- Copy line(s) - the currently selected lines in DLF.@find.Results window will be copied to clipboard. Same as for the next two menu items, number of copied lines will be shown in the window's titlebar and the copied lines will be grayed. Un-needed info from the end of a line will be removed (such as bitrate, size, etc.; not 100% foolproof)
- Send to AutoGet. This sends currently selected lines to Omen's AutoGet script, which will then request and (hopefully) download them. You can get Omen's AutoGet from here. NOTE: Only AutoGet v7 is supported!
- Send to vPowerGet.NET. Same as previous item, but will send line to vadi's vPowerGet .NET. This (and previous item) will not be available if the respective scripts are not installed. You can get vPowerGet.NET from here.
- Save results. This will display "Save file" dialog, allowing you to save contents of DLF.@find.Results window to a .txt file.
- Options - displays the DLFilter options dialog.
- Clear - clears window
- Close - OK, no more jokes. It closes window.
However, note that my sbClient script offers improved @find capturing.
Changelog (started from version 0.952, 06.11.2003. Only public versions.)
- 0.952-3. Made version check for vPowerGet.dll. "Copy line(s)" item in @find.results window right-click menu now removes unneeded stuff (such as filesize & bitrate) from filename when copying (may not be 100% foolproof). Options dialog now shows script version in titlebar. Added some spam & other definitions.
- 0.955. Changed GUI a bit, added links to this page & direct download. #find mistake is now filtered correctly. Added option for coloring nicks of detected servers (works only if filtering of channel ads is enabled, overrides current nick color). User related messages in the status window are now shown in user's default colour for respective events.
- 0.960. Included my ONotice script, some changes in the way how some events are handled and GUI. As always, added more definitions.
- 0.961. Fixed small bug in DoCheckComChan alias. Too much DCC chat windows were closed. Waste of a good version number.
- 0.964. Better "new release" capturing. Improved/changed channel menu - now shows only "Add current channel" or "Remove current channel" instead of showing both items. If channels are set to all, "Set to all channels" item in channel menu is disabled and checked. More definitions. Changed something in @find capturing but I cannot remember what it was.
- 0.966. Changed private text event to on open event (got the idea from TipiTunes' antispam script). That way spam, private request and @find results are captured even before respective query windows open. Neat! Some minor changes in other events.
- 0.967. Some minor fixes were needed because using onopen instead of ontext event.
- 0.970-0.971. Automatic version check added - thanks to TipiTunes. Added web page & direct download buttons and "..but accept DCC chats" option. Added private ontext event to capture some multiline spams.
- 0.972. Added version check to on connect event. Unloading script now closes all open DLFilter windows. Only those nicks that are in default nicklist color are now colored when detected to be fileservers. @find results grouping was a bit messed up thanks to using on open instead of on text event, fixed that. "Requests in private" now responds to !nick-que etc commands.
- 0.973. Only updated some definitions. @find results headers from SoftServe script weren't filtered, same for S343. Some away messages added.
- 0.974. Moved 100+ private notice events to one event and made relevant changes. Added new sub-option: "block only potentially dangerous filetypes" to "Do not accept files from regular users". Few mode definitions added. Script is now 1760 lines long (incl empty lines and comments).
- 0.975. Fixed minor bug in displaying kicks in status window. At the reqest of TipiTunes added special private spam catcher (in style "*www*xxx*" first line of private message). Few more definitions.
- 0.976. Now DLFilter will no longer block queries (/msg) from users with whom you don't have common channel if you typed first line to that window. Added idiotic "FOR MATRIX 2 DOWNLOAD..." worm to spam definitions.
- 0.977. Query windows were closed when other user left all common channels. Fixed that - thanks to AK3D for reporting the bug. Some spam definitions added & few other minor changes.
- 0.978. Improved @find reply catching - added support for a strange version of OmenServe. Fixed onkick $address() displaying issue (thanks to MollyKate for noticing that) and fixed small issue with query windows when no common channel.
- 0.979. Few minor fixes: capturing onotice /me was displaying wrong and some server messages sent as private text were displayed as "<Request> denied... " instead of "<nick> Request denied..." in DLF.server window. Made multiple copy/Send to AG/Send to vPG available in DLF.New.Releases (actually just made script use same menu as for DLF.@find.results window).
- 0.980. Improved saving of @find results window. Made some changes to script initialization. May contain some bugs more then before, since I am so sleepy that I loaded DLFilter.zip to mIRC.
- 0.981. Fixed bug that caused "Send to AutoGet" not to work from DLF.NewReleases window. @find result headers filtering had small bug - occasionally it disn't display name correctly in the DLF.server window. Some more minor tinkering.
- 0.982. Onotice window now uses user's current nicklist, text and action colors for displaying responding events.Also few very minor changes.
- 0.983. DLFilter is now automatically loaded as a first script. Added alias DLF.debug (has to be called manually), which creates DLF.debug.txt.
- 0.984. Fixed bug that gave error when sending wrapped /me line to DLF. Filtered window (thanks to fost for noticing it). Also, those lines are now displayed in user's current action color. Fixed minor bug in DLF.debug (amount of DLFilter variables was larger then it really was) . Added channel text definitions suggested by vadi. Few spam and other definitions added.
- 0.985. Very rarely version check used older version number (happened only on first connect after update, if /reload was used for updating). /me onotice didn't work in Undernet - fixed. Sorted ads and away/thank you messages. Improved nick coloring. More definitions.
- 0.986. Added support for vPowerGet.NET and AutoGet 7 (older versions of both are no longer supported). File names were not copied correctly to clipboard from @find and new releases windows, fixed that. If you had one mIRC with DLFilter running and you started another mIRC from another installation and loaded DLFilter, then variables were not correctly initialized (socket collision).
- 1.000. Very few & minor changes, I just decided that it is time to finally release v1...
- 1.001. Changed "Send to AutoGet" into "Send to AutoGet 7 " and added support for latest beta of AG7. Hopefully they will reach gold soon...
- 1.002. Lots of rare ads & some spams added. Improved adding custom strings.
- 1.003. When channels were set to all and nick change filtering was on, DLFilter still echoed it to channel. Thanks to the r00ted for noticing it. When the web site was unavailable while opening options dialog, it occasionally caused DLFilter to lose some of its settings, fixed that. Added some definitions.
- 1.004. When filtering away/thank you messages, RAW 301 is now also filtered. Improved "junk" removal from filename when copying to clipboard (experimental). Added lots of spam messages and ads to definitons. Added ertl's second "new release" message, improved new release capturing somewhat.
- 1.005. Just updated definitions, mostly spam - lots of it lately.
- 1.007. Just a temporary update before I release 1.1. Updated definitions, ops chat is now captured from all channels not only from DLFilter channels (a lot of people requested that), ops chat logs are now written correctly if mIRC.exe has a space in path (ie Program Files). Fixed AutoGet support to work with AG 7.1.
- 1.008. Some very minor fixes that I forgot to include into previous public version. Updated some definitions again.
- 1.009. Spam definitions added to cope with a flood of spammers attacking #mp3servers.
- 1.01. Lots of changes. "Send to AutoGet" now works if AG is not in main mIRC folder. Old logs are now loaded to onotice window if logging is enbled (and old logs exist). Removed some very old spam definitions and added new to get spammers plagueing #bookz and #mp3servers. Some other changes. When adding definitions to custom filters, string will be automatically bracketed by '*' now (some people just don't get the meaning of 'wildcard string'). Script is now smaller and more compact thanks to ScriptCleaner.
- 1.02.Updated spam definitions.
- 1.03.Updated spam definitions, again. Also, when you get $decode in private message, dlFilter will display a warning "[dlFilter] Do not paste any messages containg $decode to your mIRC. They are mIRC worms, people sending them are infected. Report such messages to channel ops.". Removed my ctcp DLX thingy.
- 1.05. Filtering quits is no longer channel-specific (thanks, meelWORM). Some new spam definitions added.
- 1.1 Major update
- You can now log @DLF.Filtered and @DLF.Server messages - select item "Log" in the right-click menu. Logging is separate, log files will be in your logs folder with the names dlf.filtered.log and dlf.server.log. Note that logging is enabled even after you close respective windows, only way to disable it is to open the window and uncheck menu item. Sorry about that, I simply didn't have the energy or willpower to start remaking UI....
- Fixed several bad errors in on quit routine. That is what happens if you use code from someone else....
- If you filter and send user-related messages (quits, joins, parts, nick changes, kicks) to status window, it does no longer highlight status window button
- Removed definitions and commented out channel text spam - haven't seen spamnets to use any standard messages for a while
- As always, more spam definitions. Note that while I didn't add *#*#*#*#*, you might want to add it to custom filters yourself (#chan #chan #chan #chan type spams).
- 1.11. Added vPowerServe @find result headers
- 1.12 Updated links and version checks to point to the new web page
- 1.14 (No, I'm not superstitious - I just forgot 1.13). *bonga*, *agnob* and *meep* are now auto-added to custom filters (hello EBrarian and waterbaby), custom filters are auto-enabled on load. Fixed/updated handling of the socket errors (used in version check routine). Lots of mp3 play messages added to filters - they are enabled when "..away and thank you messages" filter is enabled. Some other minor tweaking. Unlike usually, this time it is recommended to do /load when updating dlFilter.
- 1.15 Fixed two issues with OpsTalk - it still had a bug with logging when mIRC folder had a space in the path (thanks to zippy1 and SpankyDan for reporting that) and issue with URL's not showing in @#channel window.
- 1.16 Website change
I used alias GetFileName from TipiTunes' OS-Quicksearch and he helped to create automatic version check. Thanks! Also he helped to add support for AG6 & 7. His scripts are/were available from here.
Some of the spam definitions are from HugHug's SoftSnow filter.
Vadi wrote special function to vPowerGet dll that allows sending files from DLF.@find.Results window to vPowerGet. His e-book tools are available from here.
Finally, Bookworm, the greatest worm that ever lived, checked this page for spelling and grammar.