Download
(19Kb)
Download
Updated: 04-05-10 03:10 PM
Pictures
File Info
Updated:04-05-10 03:10 PM
Created:03-10-10 11:52 AM
Downloads:2,450
Favorites:3
MD5:

StopTradeSpam

Version: 0.7.4
by: Meredy [More]

This addon filters the trade channel for LFG messages in their various forms and maintains its own ignore-list to keep your chat clean from spammers.
This ignorelist is only used for chat messages in costum-channels, as you might not want to miss raidwarnings/other important messages.
These settings can be changed.

It works with a full costumizeable list of filters.

Currently it contains settings for english and german and french.
If your server language is not the same as your client you will have to set your language first: "/sts language set enUS" for english (all english speaking servers) or "/sts language set deDE" for german or "/sts language set frFR" for french (new in 0.7.2)

There is an options frame now. To open it type "/sts options" in your chat or open your Interface Options --> Addons-Panel.
Additional settings are in the works.
I also added a LDB-plugin (You sohuld see a minimap button if you use an DataBroker-Addon)
For available commands check "/sts help" ingame.

I am still searching for bugs and tuning the filters, any help would be appreciated.
Also texts are only partly localized. (Any texts should be something between your client language and english ;-) )

Suggestion are always welcome.

Meredy, Das Syndikat-EU

0.7.4
* major bug fix for the new chat type settings (anything was working inverted)
* minor filter improvements

0.7.3
* Fixed a bug where if the user unchecked the setting for ignoring in tradechannel, filtering didn't work most of the time.
* Added options to choose filtering on/off for any chat type that is currently implemented.
* The option to disable the T-ignorelist comletely should work now. Note that players who are already on your ignorelist are still ignored. Spam messages in trade channel will still be filtered (if set for that channel).
* To remove any player from your T-ignorelist, type "/sts reset ignore" in your chat.

0.7.2
* Added french filter. Use "/sts language set frFR" to set filters to french on not-french clients.

0.7.1 beta
* mostly bug fixes
* some code changes which follow the list-merge (shouldn't change anything for users)

0.7.0 beta
* added option to report gold spammers (not fully working, this is mostly to prevent t-ignoring lvl1 characters)
* made some changes to easy localizing
* changed filtering to a point system, which should be more precise
* technically merged black- and whitelist (should make not much difference at all)
* deleting filter-list-entrys is harder than it should be now, I am working on a better way to do that

0.6.8
* Further improvements to options-panel
* Automatic spam reporting can now be turned off

0.6.7
* Options panel is now there, open it with "/sts options"
* in the options panel you can choose in which channels messages of people on your T-ignorelist will be ignored, and in which channels your are only notified (in fornt of message).
* Messages which are clearly spam are now Reported as such, an option to turn this off will come soon.

0.6.6
* made improvents to the filters

0.6.5
* made some minor improvements
* made changes for the (hopefully soon to come) options frame

0.6.4
* fixed a minor bug with the different chatframes
* Added command "/sts version"

0.6.3
* fixed a bug where filtering sometimes only worked in the first chatframe
* you can now use "/sts statistic" to see how active the addon was during the active session and count how many characters you are T-ignoring.

0.6.2
* Major bugfixes. It should finally be working from start on. If not try typing "/sts reset" in your chat.
* Also added the way the notification of new automatic ignores shows, it should now always be in the same frame/s and color as your trade channel

0.6.1
* made some minor changes to (hopefully) improve interaction with other chat mods.
Optional Files (0)


Post A Reply Comment Options
Unread 03-29-10, 02:48 PM  
Meredy
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 5
Uploads: 2
Originally posted by -KAPMA-
197x Error: Original call failed after running hooks for: ChatFrame_OnEvent :
StopTradeSpam-0.6.8.37\StopTradeSpam.lua:166: attempt to index field '?' (a nil value)(tail call): ?
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>
:
Stubby-130\Stubby.lua:381: in function <Stubby\Stubby.lua:325>
(tail call): ?:
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>

---
I'm sorry, I wasn't able to reproduce this error. Please provide additional information if possible.
Report comment to moderator  
Reply With Quote
Unread 03-29-10, 12:37 PM  
-KAPMA-
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 40
Uploads: 1
197x Error: Original call failed after running hooks for: ChatFrame_OnEvent :
StopTradeSpam-0.6.8.37\StopTradeSpam.lua:166: attempt to index field '?' (a nil value)(tail call): ?
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>
:
Stubby-130\Stubby.lua:381: in function <Stubby\Stubby.lua:325>
(tail call): ?:
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>

---
Report comment to moderator  
Reply With Quote
Unread 03-26-10, 12:15 AM  
BrianIgenIgen
A Murloc Raider

Forum posts: 5
File comments: 8
Uploads: 0
BlaBaBla

Dont have a clue whats happening in herein the Commet area... translate plz
Report comment to moderator  
Reply With Quote
Unread 03-14-10, 10:56 AM  
Meredy
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 5
Uploads: 2
Originally posted by Bl4ckSh33p
Sehr nützliches Addon aber ich hätte noch einen Vorschlag: Wie wäre eine Option um den Spammer direkt per "Spam melden" (inkl. all seiner Charaktere) für die aktuelle Sitzung zu ignorieren? So wie bei BadBoy da werden Goldspammer direkt als Spam gemeldet.
Hallo.
Darüber hab ich nachgedacht, es kommt aber aus mehreren Gründen im Moment nicht in Frage.
Es werden ersten 5 innerhalb von 24 Stunden wirklich gemeldet.
Der "betroffene" wäre für alle Channels gesperrt, also könnte zufällig (so niedrig ist die Chance nicht) im selben Random-Raid landen wie du und wichtige Informationen posten (zB TS-Adresse)
Das Feature war ursprünglich für Goldspammer gedacht.
Und falsch erkannte Spammer könnten nur durch ein erneutes Einloggen nicht mehr ignoriert werden.

Deswegen hab ich mich entschieden die eigene Ignore-Liste einzubauen, dadurch werden die Spammer nach der ausschlaggebenden Chatnachricht dauerhaft ignoriert (in den nummerierten Channels), während in anderen Channels (Gruppe, Gilde, Raid, Flüstern, usw.) nur ein Hinweis am Anfang der Nachricht angezeigt wird. Ob man auf die Nachricht reagiert ist jedem selbst überlassen.

Vielleicht kommt dieses Feature in einer zukünftigen Version trotzdem. Bevor das der Fall werd ich aber noch versuchen den Filter zu verbessern, oder nur Fälle bei denen es sich mit großer Sicherheit um Spam handelt auch als Spam melden (Nach einer Art Punkte-System, ab 1 Punkt ignorieren, ab 3 Punkte Spam melden oder so).
Meredy
Report comment to moderator  
Reply With Quote
Unread 03-14-10, 04:53 AM  
Bl4ckSh33p
A Flamescale Wyrmkin
 
Bl4ckSh33p's Avatar
AddOn Author - Click to view AddOns

Forum posts: 124
File comments: 97
Uploads: 12
Sehr nützliches Addon aber ich hätte noch einen Vorschlag: Wie wäre eine Option um den Spammer direkt per "Spam melden" (inkl. all seiner Charaktere) für die aktuelle Sitzung zu ignorieren? So wie bei BadBoy da werden Goldspammer direkt als Spam gemeldet.
__________________
» Bl4ckSh33p.de
» My WoW Tools (Portal)
Report comment to moderator  
Reply With Quote
Unread 03-13-10, 12:00 PM  
Meredy
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 5
Uploads: 2
Originally posted by Nekomich
Geht leider immer noch nicht. Leider verstehe ich nicht ganz was du in der Zeile machst. Sonst könnte ich dir dabei helfen. Zwei der Addons die scheinbar an den Fehler beteiligt sind, habe ich selber (um)geschrieben

Die hier verarbeitet Nachricht wird von einem anderen Addon schon ausgefiltert. Kann sein, dass es deshalb Probleme gibt?
Thanks for your help. i think i was able to fix this problems now.
Report comment to moderator  
Reply With Quote
Unread 03-11-10, 12:22 PM  
Nekomich
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Geht leider immer noch nicht. Leider verstehe ich nicht ganz was du in der Zeile machst. Sonst könnte ich dir dabei helfen. Zwei der Addons die scheinbar an den Fehler beteiligt sind, habe ich selber (um)geschrieben

162x StopTradeSpam-0.6.1.7\StopTradeSpam.lua:153: attempt to index field '?' (a nil value)
Prat-3.0-3.3.7 \services\chatsections.lua:59: in function <Prat-3.0\services\chatsections.lua:52>
Prat-3.0-3.3.7 \services\chatsections.lua:314: in function `SplitChatMessage'
Prat-3.0-3.3.7 \addon\addon.lua:532: in function <Prat-3.0\addon\addon.lua:509>
(tail call): ?:
Interface\FrameXML\ChatFrame.lua:2322: in function `pfx_ChatFrame_OnEvent_Old':
pfx\pfx.lua:717: in function `ChatFrame_OnEvent'
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>

Locals:
frame = ChatFrame1 {
0 = <userdata>
flashTimer = 0
isInitialized = 1
PageUp = <function> defined =[C]:-1
print = <function> @ Prat-3.0\services\print.lua:49:
tellTimer = 41605.594
hoverTime = 0
defaultLanguage = "Gemeinsprache"
dbg = <function> @ Prat-3.0\services\print.lua:52:
buttonSide = "left"
oldAlpha = 0.63921572407708
channelList = <table> {}
init = 2
PageDown = <function> defined =[C]:-1
isDocked = 1
ScrollToBottom = <function> defined =[C]:-1
editBox = ChatFrameEditBox {}
ScrollDown = <function> defined =[C]:-1
isLocked = 1
name = "General"
ScrollToTop = <function> defined =[C]:-1
ScrollUp = <function> defined =[C]:-1
zoneChannelList = <table> {}
AddMessage = <function> @ AuctionMaster\libs\AceHook-3.0\AceHook-3.0.lua:100:
messageTypeList = <table> {}
}
event = "CHAT_MSG_CHANNEL"
arg1 = "UPDATETremjonIronhide#DRUIDDruid80IronforgeOn2.0 BETA2"
arg2 = "Tremjon"
arg3 = ""
arg4 = "4. EWKom"
arg5 = "Tremjon"
arg6 = ""
arg7 = 0
arg8 = 4
arg9 = "EWKom"
arg10 = 0
arg11 = 635
arg12 = "0x03000000012CEC65"
filter = false
chatFilters = <table> {
1 = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
2 = <function> @ RaidKom\core.lua:833:
}
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
1 = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
2 = <function> @ RaidKom\core.lua:833:
}
(for control) = 1
_ = 1
filterFunc = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
_G = <table> {
VUHDO_I18N_SYMBOL = "Symbol"
ContainerFrame5Item7 = ContainerFrame5Item7 {}
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Namen von Einheiten einfärben."
KBASE_NUM_FAKE_CATEGORIES = 1
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
VuhDoNewOptionsPanelMiscRaidIconPanelTopRadioButtonTextureCheckMarkTexture = VuhDoNewOptionsPanelMiscRaidIconPanelTopRadioButtonTextureCheckMarkTexture {}
MerchantItem6AltCurrencyFrameHonorTexture = MerchantItem6AltCurrencyFrameHonorTexture {}
BT4Button58 = BT4Button58 {}
PallyPowerC8P7BuffIcon = PallyPowerC8P7BuffIcon {}
XPerl_AssistsView_Close = <function> @ XPerl_RaidHelper\XPerl_AssistFrame.lua:110:
AltoholicAccountSharingOptionsIconNever = AltoholicAccountSharingOptionsIconNever {}
TutorialFrameLeft19 = TutorialFrameLeft19 {}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {}
ERR_TRADE_EQUIPPED_BAG = "Mit von Euch angelegten Taschen könnt Ihr nicht handeln."
PVP_RANK_6_1 = "Fußknecht"
MultiBarLeftButton7 = MultiBarLeftButton7 {}
OPTION_TOOLTIP_SHOW_MULTIBAR4 = "Blendet eine zusätzliche optionale Aktionsleiste auf der rechten Bildschirmseite ein/aus."
InterfaceOptionsDisplayPanelShowAggroPercentageText = InterfaceOptionsDisplayPanelShowAggroPercentageText {}
VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture = VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture {}
MerchantItem4AltCurrencyFrameItem1Text = MerchantItem4AltCurrencyFrameItem1Text {}
AMItmTblSrtBt11-6Text = AMItmTblSrtBt11-6Text {}
BINDING_NAME_NAMEPLATES = "Plaketten für Gegner einblenden"
IsReferAFriendLinked = <function> defined =[C]:-1
MAIL_LETTER_TOOLTIP = "Klicken, um eine dauerhafte
Kopie dieses Briefs anzufertigen."
UnitFrameManaBar_UnregisterDefaultEvents = <function> @ Interface\FrameXML\UnitFrame.lua:298:
QG_OPT_ANNOUNCE_CHANNEL_SAY = "/s"
ERR_NOAMMO_S = "%s"
CHAT_CONFIG_OTHER_COMBAT = <table> {}
BT4Button22Flash = BT4Button22Flash {}
CONSOLIDATED_BUFFS_PER_ROW = 4
TutorialFrameRight19 = TutorialFrameRight19 {}
MoneyFrame_OnEvent = <function> @ Interface\FrameXML\MoneyFrame.lua:184:
WatchFrameItem_OnEvent = <function> @ Interface\FrameXML\WatchFrame.lua:1094:
Inter
---
Die hier verarbeitet Nachricht wird von einem anderen Addon schon ausgefiltert. Kann sein, dass es deshalb Probleme gibt?
Last edited by Nekomich : 03-11-10 at 12:24 PM.
Report comment to moderator  
Reply With Quote
Unread 03-11-10, 11:02 AM  
Meredy
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 5
Uploads: 2
Re: Fehlermeldungen

Originally posted by Nekomich
Hallo Meredy!

Leider bekomme ich diverse Fehlermeldungen. Ich gehe davon aus, das dies Zusammenhängt, das ich einige andere Chataddons verwende. Vielleicht kannst du trotzdem mal schauen ob du den Fehler findest.

Und einige mehr. Diese treten aber immer in Zeile 151 und 193 auf.

Gruß und Prost!

Neko
Hallo, ich hab gerade einige Änderungen vorgenommen und hoffe dass jetzt alles funktioniert.
Mit Prat konnte ich den Fehler leider nicht rekonstruieren.

Meredy
Report comment to moderator  
Reply With Quote
Unread 03-11-10, 01:15 AM  
Nekomich
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Fehlermeldungen

Hallo Meredy!

Leider bekomme ich diverse Fehlermeldungen. Ich gehe davon aus, das dies Zusammenhängt, das ich einige andere Chataddons verwende. Vielleicht kannst du trotzdem mal schauen ob du den Fehler findest.

1x StopTradeSpam-0.6\StopTradeSpam.lua:151: attempt to index field '?' (a nil value)
Prat-3.0-3.3.7 \services\chatsections.lua:59: in function <Prat-3.0\services\chatsections.lua:52>
Prat-3.0-3.3.7 \services\chatsections.lua:314: in function `SplitChatMessage'
Prat-3.0-3.3.7 \addon\addon.lua:532: in function <Prat-3.0\addon\addon.lua:509>
(tail call): ?:
SpamSentry-20091214\core.lua:447: in function `CallChatEvent'
SpamSentry-20091214\core.lua:459: in function `CallOldChatEvent'
SpamSentry-20091214\core.lua:733: in function <SpamSentry\core.lua:724>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceTimer-3.0-5 (DataStore):166: in function <...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:138>

---
2x StopTradeSpam-0.6\StopTradeSpam.lua:193: attempt to index field '?' (a nil value)
Prat-3.0-3.3.7 \services\chatsections.lua:59: in function <Prat-3.0\services\chatsections.lua:52>
Prat-3.0-3.3.7 \services\chatsections.lua:314: in function `SplitChatMessage'
Prat-3.0-3.3.7 \addon\addon.lua:532: in function <Prat-3.0\addon\addon.lua:509>
(tail call): ?:
SpamSentry-20091214\core.lua:447: in function `CallChatEvent'
SpamSentry-20091214\core.lua:348: in function <SpamSentry\core.lua:305>
(tail call): ?:
Interface\FrameXML\ChatFrame.lua:2322: in function `pfx_ChatFrame_OnEvent_Old':
pfx\pfx.lua:717: in function `ChatFrame_OnEvent'
<string>:"*:OnEvent":1: in function <[string "*:OnEvent"]:1>

Locals:
frame = ChatFrame6 {
0 = <userdata>
flashTimer = 0
isInitialized = 1
PageUp = <function> defined =[C]:-1
ScrollUp = <function> defined =[C]:-1
tellTimer = 1030.92
dbg = <function> @ Prat-3.0\services\print.lua:52:
oldAlpha = 0.24705883814022
channelList = <table> {}
ScrollToBottom = <function> defined =[C]:-1
defaultLanguage = "Gemeinsprache"
editBox = ChatFrameEditBox {}
print = <function> @ Prat-3.0\services\print.lua:49:
PageDown = <function> defined =[C]:-1
name = "Vert"
ScrollToTop = <function> defined =[C]:-1
ScrollDown = <function> defined =[C]:-1
zoneChannelList = <table> {}
AddMessage = <function> @ AuctionMaster\libs\AceHook-3.0\AceHook-3.0.lua:100:
messageTypeList = <table> {}
}
event = "CHAT_MSG_CHANNEL_JOIN"
arg1 = ""
arg2 = "Witege"
arg3 = ""
arg4 = "5. EWKom"
arg5 = ""
arg6 = ""
arg7 = 0
arg8 = 5
arg9 = "EWKom"
arg10 = 0
arg11 = 49
arg12 = "0x03000000020CD114"
filter = false
chatFilters = <table> {
1 = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
2 = <function> @ IgnoreMore\IgnoreMore.lua:413:
}
(for generator) = <function> defined =[C]:-1
(for state) = <table> {
1 = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
2 = <function> @ IgnoreMore\IgnoreMore.lua:413:
}
(for control) = 1
_ = 1
filterFunc = <function> @ StopTradeSpam\StopTradeSpam.lua:137:
_G = <table> {
VUHDO_I18N_SYMBOL = "Symbol"
ContainerFrame5Item7 = ContainerFrame5Item7 {}
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Namen von Einheiten einfärben."
KBASE_NUM_FAKE_CATEGORIES = 1
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
VuhDoNewOptionsPanelMiscRaidIconPanelTopRadioButtonTextureCheckMarkTexture = VuhDoNewOptionsPanelMiscRaidIconPanelTopRadioButtonTextureCheckMarkTexture {}
MerchantItem6AltCurrencyFrameHonorTexture = MerchantItem6AltCurrencyFrameHonorTexture {}
BT4Button58 = BT4Button58 {}
PallyPowerC8P7BuffIcon = PallyPowerC8P7BuffIcon {}
XPerl_AssistsView_Close = <function> @ XPerl_RaidHelper\XPerl_AssistFrame.lua:110:
AltoholicAccountSharingOptionsIconNever = AltoholicAccountSharingOptionsIconNever {}
TutorialFrameLeft19 = TutorialFrameLeft19 {}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {}
ERR_TRADE_EQUIPPED_BAG = "Mit von Euch angelegten Taschen könnt Ihr nicht handeln."
PVP_RANK_6_1 = "Fußknecht"
MultiBarLeftButton7 = MultiBarLeftButton7 {}
OPTION_TOOLTIP_SHOW_MULTIBAR4 = "Blendet eine zusätzliche optionale Aktionsleiste auf der rechten Bildschirmseite ein/aus."
InterfaceOptionsDisplayPanelShowAggroPercentageText = InterfaceOptionsDisplayPanelShowAggroPercentageText {}
VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture = VideoOptionsFrameCategoryFrameButton17ToggleHighlightTexture {}
MerchantItem4AltCurrencyFrameItem1Text = MerchantItem4AltCurrencyFrameItem1Text {}
AMItmTblSrtBt11-6Text = AMItmTblSrtBt11-6Text {}
BINDING_NAME_NAMEPLATES = "Plaketten für Gegner einblenden"
IsReferAFriendLinked = <function> defined =[C]:-1
MAIL_LETTER_TOOLTIP = "Klicken, um eine dauerhafte
Kopie dieses Briefs anzufertigen."
UnitFrameManaBar_UnregisterDefaultEvents = <function> @ Interface\FrameXML\UnitFrame.lua:298:
QG_OPT_ANNOUNCE_CHANNEL_SAY = "/s"
ERR_NOAMMO_S = "%s"
CHAT_CONFIG_OTHER_COMBAT = <table> {}
BT4Button22Flash = BT4Button22Flash {}
CONSOLIDATED_BUFFS_PER_ROW = 4
TutorialFrameRight19 = TutorialFrameRight19 {}
MoneyFrame_OnEvent = <function> @ Interface\FrameXML\MoneyFrame.lua:184:
WatchFrameItem_OnEvent = <function> @ Interface\FrameXML\WatchFrame.lua:1094:
InterfaceOptionsCombatTextPanelFCTDropDown_OnClick = <function> @ Interface\FrameXML\InterfaceOptionsPanels.lua:1079:
VuhDoNewOpt
---
Und einige mehr. Diese treten aber immer in Zeile 151 und 193 auf.

Gruß und Prost!

Neko
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: