Download
(151Kb)
Download
Compatible with Retail, Classic & TBC
Updated: 05-29-23 09:40 AM
Pictures
File Info
Compatibility:
Embers of Neltharion (10.1.0)
WOTLK Patch (3.4.1)
Classic (1.14.3)
Updated:05-29-23 09:40 AM
Created:06-11-09 12:49 AM
Downloads:5,149
Favorites:17
MD5:

TradeFilter  Popular! (More than 5000 hits)

Version: v3.7.8
by: evonder [More]

A Simple World of Warcraft Spam Filter!
Please help localize this project Here

TradeFilter does not only filter trade but has the ability to filter General, LookingforGroup, Say and Yell channels all which are configurable through the blizzard options panel.

Channel Filters
TradeFilter has a set of patterns for trade channel and separate set of patterns for all other channels, or "base" channels as we will call them. This allows the user to define what patterns may be good for trade but not other channels and vise versa. The user also has the ability to add patterns of their own to be matched against for both trade and "base" channel filters.

Default Channel Filters

Black and White Lists
TradeFilter also has a built in Black and White list. Refer to the flowchart for how Black and White lists are checked.

Default Black/White Lists

Configuration

Code:
/tf or /filter
To Do
Nothing planned

ChangeLog
ChangeLog Page

Supported Translations
Please help localize this project Here

TradeFilter3
v3.7.8 (2023-05-25)
Full Changelog Previous Releases
  • Changes for Battleground filtering - drycoded
  • Fix debug output channel names
Archived Files (5)
File Name
Version
Size
Author
Date
v3.7.7
151kB
evonder
05-16-23 06:46 PM
v3.7.6
150kB
evonder
04-30-23 02:10 PM
v3.7.5
148kB
evonder
04-23-23 01:41 AM
v3.7.4
148kB
evonder
03-05-23 04:46 AM
v3.7.1
149kB
evonder
02-26-23 02:56 AM


Post A Reply Comment Options
Unread 07-24-09, 06:04 PM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally posted by Contiki
Greetings,

I'm trying out the add-on EverTrade which transmits Trade channel messages from players in a Trade-enabled city to players outside of Trade-enabled cities. Pretty sweet if I'm in the middle of nowhere and still want to stay in touch with what the average Joe has to offer.

Due to the way EverTrade works, TradeFilter doesn't touch its messages. It'd be really sweet if TradeFilter (optionally?) checked EverTrade's messages, too. Do you think that'd be possible/sensible?

All the best,

Contiki
I will take a look at it when the time permits.

EDIT:: Now to find someone to test it with :P
EDIT2:: Pretty sure special channels filtering is working fine, but I need a person in guild running the mod to make sure that hidden channel spam through the guild channel is being filtered properly.
__________________
Author: TradeFilter, CheckFearWard, Bloodsurge and more
Last edited by evonder : 07-25-09 at 01:42 AM.
Report comment to moderator  
Reply With Quote
Unread 07-24-09, 03:21 PM  
Contiki
A Kobold Labourer
 
Contiki's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 72
Uploads: 2
Greetings,

I'm trying out the add-on EverTrade which transmits Trade channel messages from players in a Trade-enabled city to players outside of Trade-enabled cities. Pretty sweet if I'm in the middle of nowhere and still want to stay in touch with what the average Joe has to offer.

Due to the way EverTrade works, TradeFilter doesn't touch its messages. It'd be really sweet if TradeFilter (optionally?) checked EverTrade's messages, too. Do you think that'd be possible/sensible?

All the best,

Contiki
Report comment to moderator  
Reply With Quote
Unread 07-24-09, 07:01 AM  
GreyWolfSC
A Murloc Raider

Forum posts: 5
File comments: 83
Uploads: 0
Originally posted by evonder
Only messages that contain a match to your pattern list will be allowed to pass through the filter. "Did that just happen?" and "Where can I find [NPC Name]?" will never be allowed with the default filter pattern list.
Either I'm not understanding the addon or something's not working right. It filtered "lvl 80 druid?", plus at least 5 more messages that were definitely not spam, out of General chat while I was talking about a ganker that was hounding me last night.
Report comment to moderator  
Reply With Quote
Unread 07-23-09, 04:47 PM  
Recluse
A Cliff Giant
 
Recluse's Avatar
AddOn Author - Click to view AddOns

Forum posts: 70
File comments: 94
Uploads: 13
Thank you

Originally posted by evonder
Friends list adding/removing messages will now only show if you have debugging enabled.
Thanks
__________________
We'd be together, but only diamonds last forever...
Last edited by Recluse : 07-23-09 at 04:54 PM.
Report comment to moderator  
Reply With Quote
Unread 07-22-09, 09:17 PM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally posted by Rolzroyce
I am having a problem where the addon is letting about 40% of the messages thru, and filtering some messages that are not spam, such as "Did that just happen?" and "Where can I find [NPC Name]?"

I restored everything to defaults and still have the problem. Any advice?
Only messages that contain a match to your pattern list will be allowed to pass through the filter. "Did that just happen?" and "Where can I find [NPC Name]?" will never be allowed with the default filter pattern list.
__________________
Author: TradeFilter, CheckFearWard, Bloodsurge and more
Report comment to moderator  
Reply With Quote
Unread 07-22-09, 05:16 PM  
Rolzroyce
A Murloc Raider

Forum posts: 4
File comments: 9
Uploads: 0
I am having a problem where the addon is letting about 40% of the messages thru, and filtering some messages that are not spam, such as "Did that just happen?" and "Where can I find [NPC Name]?"

I restored everything to defaults and still have the problem. Any advice?
Report comment to moderator  
Reply With Quote
Unread 07-15-09, 09:10 PM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
r147 Addresses the following:
Originally posted by recluse
Could we get an option to disable the 'so and so added/removed from exempt list' spam? It's not a bad feature or anything, but I have an addon which uses the friends list to determine corpse statuses, and it gets really spammy! Thanks
Friends list adding/removing messages will now only show if you have debugging enabled.

Originally posted by KyrosKrane
What I'm hoping for is a little different. Here's what I'm looking for; differences in bold.
  • If speaker is on friends list, display as normal and skip the rest of these steps.
  • If speaker is self (unless self-filtering is turned on), display as normal and skip the rest of these steps.
  • If message matches whitelist, display as normal and skip the rest of these steps.
  • If message matches blacklist, display in the spam window and skip the rest of these steps.
  • If message has been repeated, discard it (don't display anywhere) and skip the rest of these steps.
  • Else, display the message as normal.

Is this possible with your addon?
You can now output Blacklist matches to the SPAM ChatFrame, this is enabled in the Output Options in the configuration GUI.

Originally posted by Contiki
Greetings,

I've tested r144. Here's what I've got to say ;-)
  1. Translation
    • In the options menu under Repeat Filtration the tooltips for both Repeats and Time start with the untranslatable word "Usage". As in, "Usage: Filtere Zeichenketten, die x-mal innerhalb von y Sekunden im Chat erscheinen."

  2. Quirks/strange behavior
    • Black- and white-listed messages in my debug chat frame have all white spaces stripped from the text as in, "ulduarmyass" instead of "ulduar my ass". It would be neat if players could get white spaces at least visually, even if the add-on uses those stripped versions internally.

  3. Suggestions
    • Seeing the Matched reports in my debug chat frame (next to the Lua pattern that matched) is very useful. Could you add these hints for black- and white-listed messages, too?
    • When the add-on checks filters, the debug chat frame can become crowded. Could you add an option to disable the Checking for Match lines?
Greetings and all the best,

Contiki
1) "Usage:" is from the AceDBOptions library and is one of the few things that the addon localization doesn't affect.

2) Fixed

3a) Done

3b) The ability to now strip the "Checking for Match" while iterating the given pattern table is available, this is enabled in the Output Options in the configuration GUI.

Project Home
Last edited by evonder : 07-15-09 at 11:14 PM.
Report comment to moderator  
Reply With Quote
Unread 07-15-09, 01:02 PM  
Contiki
A Kobold Labourer
 
Contiki's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 72
Uploads: 2
Greetings,

I've tested r144. Here's what I've got to say ;-)
  1. Translation
    • In the options menu under Repeat Filtration the tooltips for both Repeats and Time start with the untranslatable word "Usage". As in, "Usage: Filtere Zeichenketten, die x-mal innerhalb von y Sekunden im Chat erscheinen."

  2. Quirks/strange behavior
    • Black- and white-listed messages in my debug chat frame have all white spaces stripped from the text as in, "ulduarmyass" instead of "ulduar my ass". It would be neat if players could get white spaces at least visually, even if the add-on uses those stripped versions internally.

  3. Suggestions
    • Seeing the Matched reports in my debug chat frame (next to the Lua pattern that matched) is very useful. Could you add these hints for black- and white-listed messages, too?
    • When the add-on checks filters, the debug chat frame can become crowded. Could you add an option to disable the Checking for Match lines?
Greetings and all the best,

Contiki
Report comment to moderator  
Reply With Quote
Unread 07-14-09, 08:48 PM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally posted by KyrosKrane
OK, I think I'm finally starting to understand how this works. I've taken your priority diagram from the description and turned it into a sort of pseudo-code. Tell me if this is correct, please.
  • If speaker is on friends list, display as normal and skip the rest of these steps.
  • If speaker is self (unless self-filtering is turned on), display as normal and skip the rest of these steps.
  • If message matches whitelist, display as normal and skip the rest of these steps.
  • If message matches blacklist, discard it (don't display anywhere) and skip the rest of these steps.
  • If message has been repeated, discard it (don't display anywhere) and skip the rest of these steps.
  • Choose one:
    • If message matches the filter, display as normal; OR
    • if message does not match the filter and the spam window option is enabled, display in the spam window; OR
    • if message does not match the filter and the spam window option is disabled, discard it (don't display anywhere).

Is that about correct?
Correct
Originally posted by KyrosKrane
What I'm hoping for is a little different. Here's what I'm looking for; differences in bold.
  • If speaker is on friends list, display as normal and skip the rest of these steps.
  • If speaker is self (unless self-filtering is turned on), display as normal and skip the rest of these steps.
  • If message matches whitelist, display as normal and skip the rest of these steps.
  • If message matches blacklist, display in the spam window and skip the rest of these steps.
  • If message has been repeated, discard it (don't display anywhere) and skip the rest of these steps.
  • Else, display the message as normal.

Is this possible with your addon?
Not ATM but I will put an option to allow messages that return a match of your blacklist patterns to be shown in the SPAM frame on the "To Do" list. You can empty your Trade/Base filter lists, essentially monitoring the enabled channels but not subjecting them to the filter function

EDIT:: I have decided against this; if you would like to see the blacklisted messages you can get the latest alpha build, which is usually bug free, and enable debugging.

Originally posted by KyrosKrane
On a related note, are the regular expressions used for the filter and white/blacklists interchangeable? Can I copy the expressions from, say, the blacklist into the filter window and the addon would parse them without error?
Yes they are interchangeable but you should know how Lua patterns beforehand
Last edited by evonder : 07-15-09 at 12:08 AM.
Report comment to moderator  
Reply With Quote
Unread 07-14-09, 05:28 PM  
KyrosKrane
A Deviate Faerie Dragon
AddOn Author - Click to view AddOns

Forum posts: 13
File comments: 27
Uploads: 7
OK, I think I'm finally starting to understand how this works. I've taken your priority diagram from the description and turned it into a sort of pseudo-code. Tell me if this is correct, please.
  • If speaker is on friends list, display as normal and skip the rest of these steps.
  • If speaker is self (unless self-filtering is turned on), display as normal and skip the rest of these steps.
  • If message matches whitelist, display as normal and skip the rest of these steps.
  • If message matches blacklist, discard it (don't display anywhere) and skip the rest of these steps.
  • If message has been repeated, discard it (don't display anywhere) and skip the rest of these steps.
  • Choose one:
    • If message matches the filter, display as normal; OR
    • if message does not match the filter and the spam window option is enabled, display in the spam window; OR
    • if message does not match the filter and the spam window option is disabled, discard it (don't display anywhere).

Is that about correct?

What I'm hoping for is a little different. Here's what I'm looking for; differences in bold.
  • If speaker is on friends list, display as normal and skip the rest of these steps.
  • If speaker is self (unless self-filtering is turned on), display as normal and skip the rest of these steps.
  • If message matches whitelist, display as normal and skip the rest of these steps.
  • If message matches blacklist, display in the spam window and skip the rest of these steps.
  • If message has been repeated, discard it (don't display anywhere) and skip the rest of these steps.
  • Else, display the message as normal.

Is this possible with your addon?

On a related note, are the regular expressions used for the filter and white/blacklists interchangeable? Can I copy the expressions from, say, the blacklist into the filter window and the addon would parse them without error?
Report comment to moderator  
Reply With Quote
Unread 07-13-09, 02:25 AM  
Recluse
A Cliff Giant
 
Recluse's Avatar
AddOn Author - Click to view AddOns

Forum posts: 70
File comments: 94
Uploads: 13
Could we get an option to disable the 'so and so added/removed from exempt list' spam? It's not a bad feature or anything, but I have an addon which uses the friends list to determine corpse statuses, and it gets really spammy! Thanks
__________________
We'd be together, but only diamonds last forever...
Report comment to moderator  
Reply With Quote
Unread 07-11-09, 12:12 AM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally posted by Contiki
One thing to note in the meantime: the English text of the translation key FREM is "removed to the TradeFilter exempt list" instead of "removed from [...]".
Nice catch, copy and paste strikes again!
Originally posted by Contiki
Those neat changes make me all giddy ;-)

As for the black and white lists, I think the more accessible this add-on becomes, the more players are going to accept, use and love it. I myself wasn't sure how a white list fit into the larger picture of filters. Other players may be unsure about that feature, too. You could counteract this by explaining the feature, maybe by explaining the priority of white list, then black list, then filters. On the other hand, "just" filters and the black list get the job done, too. And they mean fewer options for players to understand. Just my two cents.

Greetings and all the best,

Contiki

PS: I'll be back with thorough(er) feedback once I've tested the latest version. [/b]
Good point, some people may be confused so I will add info on the filter priority structure to the add-on description.
Report comment to moderator  
Reply With Quote
Unread 07-10-09, 09:29 AM  
Contiki
A Kobold Labourer
 
Contiki's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 72
Uploads: 2
Greetings,

the new translations are done. I've read your post and can't believe you did all this this over night! I'll check the latest version as soon as I can savely take the time for it. One thing to note in the meantime: the English text of the translation key FREM is "removed to the TradeFilter exempt list" instead of "removed from [...]".

Those neat changes make me all giddy ;-)

As for the black and white lists, I think the more accessible this add-on becomes, the more players are going to accept, use and love it. I myself wasn't sure how a white list fit into the larger picture of filters. Other players may be unsure about that feature, too. You could counteract this by explaining the feature, maybe by explaining the priority of white list, then black list, then filters. On the other hand, "just" filters and the black list get the job done, too. And they mean fewer options for players to understand. Just my two cents.

Greetings and all the best,

Contiki

PS: I'll be back with thorough(er) feedback once I've tested the latest version.
Report comment to moderator  
Reply With Quote
Unread 07-10-09, 12:28 AM  
evonder
A Defias Bandit
 
evonder's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Originally posted by Contiki
Greetings,

I've taken time to test r131. Quite a few things to note this time. Hope you don't mind.
**snip**
Greetings and all the best,

Contiki
Thanks for taking the time to make such a thorough report
  1. If you are not filtering yourself you will not see your own text in DEBUG as it is bypassing the filterer altogether, I can add more debugging output to the prefilter checks but as of right now the only debugging is output from the main filter function. So atm it is working as intended
  2. Typo, fixed in next update.
  3. This is caused when the input is lacking a key and value pair. I will be adding in some validation checks to counteract this error from occurring.

Translations:
  1. Thank you
  2. Fixed
  3. Added Enabled, Disabled and Loaded messages added to the locale
  4. All previously hard coded strings are added to the locale
  5. Not real sure if this is important enough to clog the crap out of the TOC
  6. Fixed

Suggestions:
  1. Added entry into locale to explain that "Base Channel Filters" apply to all channels except Trade channel
  2. The ability to only input the string without needing its paired key is on my "To Do" list -- Done
  3. Added into next update, will now show what pattern was matched to allow it to not be filtered out.

Closing Comments:
B/W Lists: Your spot on.
On one hand it does seem like needless redundancy and tbh I am unsure if it saves on overhead which I was thinking when I implemented it.

EDIT:: Suggestions #3 = Done
Latest: r132
Last edited by evonder : 07-10-09 at 01:58 AM.
Report comment to moderator  
Reply With Quote
Unread 07-09-09, 09:10 PM  
Contiki
A Kobold Labourer
 
Contiki's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 72
Uploads: 2
Greetings,

I've taken time to test r131. Quite a few things to note this time. Hope you don't mind.
  1. Bugs/errors
    1. When debugging your own output, only invalid messages show up in the DEBUG chat frame, not valid ones that pass. Other players' messages show up in the chat frame no matter if filtered or not. I think this behavior should be consistent either way.
    2. In the Options menu under Edit Custom Filters both Reset buttons cause this error:
      Code:
      Date: 2009-07-10 01:36:14
      ID: 1
      Error occured in: Global
      Count: 1
      Message: ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua line 40:
         bad argument #1 to 'pairs' (table expected, got nil)
      Debug:
         (tail call): ?
         [C]: pairs()
         ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua:40: CopyTable()
         ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua:175:
            ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua:175
         (tail call): ?
         [C]: ?
         [string "safecall Dispatcher[1]"]:9:
            [string "safecall Dispatcher[1]"]:5
         (tail call): ?
         ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:786:
            ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:605
         (tail call): ?
         [C]: ?
         [string "safecall Dispatcher[2]"]:9:
            [string "safecall Dispatcher[2]"]:5
         (tail call): ?
         ...e\AddOns\TradeFilter3\libs\AceGUI-3.0\AceGUI-3.0.lua:305: Fire()
         ...ter3\libs\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:23:
            ...ter3\libs\AceGUI-3.0\widgets\AceGUIWidget-Button.lua:22
      AddOns:
        Swatter, v5.4.4157 (WallabyII)
        TradeFilter3, vr131
        (ck=37)
    3. Adding text to either the Base Trade Filters or the Base Channel Filters input fields and then hitting the respective Accept button causes this error:
      Code:
      Date: 2009-07-10 02:45:10
      ID: 1
      Error occured in: Global
      Count: 1
      Message: ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua line 205:
         bad argument #1 to 'strtrim' (string expected, got nil)
      Debug:
         (tail call): ?
         [C]: strtrim()
         ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua:205:
            ...nterface\AddOns\TradeFilter3\TradeFilter3Options.lua:198
         (tail call): ?
         [C]: ?
         [string "safecall Dispatcher[2]"]:9:
            [string "safecall Dispatcher[2]"]:5
         (tail call): ?
         ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:786:
            ...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:605
         (tail call): ?
         [C]: ?
         [string "safecall Dispatcher[3]"]:9:
            [string "safecall Dispatcher[3]"]:5
         (tail call): ?
         ...e\AddOns\TradeFilter3\libs\AceGUI-3.0\AceGUI-3.0.lua:305: Fire()
         ...AceGUI-3.0\widgets\AceGUIWidget-MultiLineEditBox.lua:76:
            ...AceGUI-3.0\widgets\AceGUIWidget-MultiLineEditBox.lua:73
         ...AceGUI-3.0\widgets\AceGUIWidget-MultiLineEditBox.lua:85:
            ...AceGUI-3.0\widgets\AceGUIWidget-MultiLineEditBox.lua:82
      AddOns:
        Swatter, v5.4.4157 (WallabyII)
        TradeFilter3, vr131
        (ck=37)

  2. Translation
    1. I've added missing translations.
    2. The English name of the key RBF is Reset Base Fitlers, note the typo.
    3. Disabled, Enabled and Loaded notifications in the chat frame aren't yet translatable.
    4. SPAM and DEBUG chat frames aren't yet translatable, namely the channel names ("Trade" and "Say/Yell" etc. are hard-coded) and stuff like, "Checking for Match", "arg1" and "userID".
    5. Pretty much the whole About options menu isn't yet translatable.
    6. In TradeFilter3Options.lua in lines 85 and 86 the two Channel Selection strings should be changed to their translatable counterparts.

  3. Suggestions
    1. Maybe you could explain what a "base channel" is that players see in some menus. Is a base channel any other channel than Trade? I was confused about this term and so may be other players.
    2. Players who're unfamiliar with Lua may be overwhelmed by the add-on's complexity when it comes to changing filters and black and white lists. Maybe it makes sense to explain the basics of Lua tables. You know, to make all of the add-on's features accessible.
      • One filter per line
      • In the add-on's GUI, neither quotation marks nor commas are necessary
      • Each field in a table may contain a value and a name
      • But just the value is valid, too, and easier to remember
      • Right now the input fields only accept name-and-value combinations; it may be even more user-friendly to allow Lua-like values without a name.
      • Thus both lines would be fine:
        Code:
        WLIST3 = spell:%d+[^%a%d]
        spell:%d+[^%a%d]
      Just some hints to get players started.
    3. When debugging Lua patterns, it'd be neat if players could see the line and/or the pattern that caused a match and the subsequent redirect - or lack thereof. Long-ish filter lists can make finding the right pattern a tedious task.

As a closing comment, just a quick question about the black and white list and the filters. In which order are these lists checked? I imagine it to be like this:
  1. Check the white list. If the message contains something from there, show it and then stop. Do not check against black list and filters.
    It can't be that bad. If it doesn't contain anything from the white list...
  2. Check the black list. If the message contains something from there, stop. Do not show this messages in the player's chat frame and do not check against the filters. Otherwise...
  3. Check the filters. If the message contains something from there, allow it. Everything's fine.
However, I'm not quite sure if the white list is necessary if this is really the way the add-on currently works. I mean, isn't the filter the same as the white list? Maybe you can shed light on this situation. Right now I have a feeling that messsages are only displayed if they contain something from the filters and the white list.

Greetings and all the best,

Contiki
Last edited by Contiki : 07-09-09 at 10:02 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.