Download
(35 Kb)
Download
Updated: 10/05/15 12:22 AM
Pictures
File Info
Compatibility:
Update 7 (1.7.0)
Updated:10/05/15 12:22 AM
Created:04/11/14 11:44 PM
Monthly downloads:54
Total downloads:42,322
Favorites:112
MD5:
Categories:Discontinued & Outdated, Libraries
X4D LibAntiSpam  Popular! (More than 5000 hits)
Version: 1.65
by: wilson0x4d [More]
X4D LibAntiSpam

A LibStub-compatible Anti-Spam Library that can be used from Chat Mods, Mail Mods, etc.

Can also be used as a Stand-Alone Chat Mod to filter 'spammers' and 'flooders'.

Features
  • Does not fill up your in-game ignore list, blocking is performed internally.
  • Whitelists your Friends, Group Members and Guild Members.
  • User Patterns are Editable via Options UI.
  • Detects Spammers, and blocks them for the duration of your session.
  • Detects Flooders, and temporarily blocks them for a user-configurable duration.
  • Detects "Gold Spammer Guild Invites" and auto-declines them.
  • Can be used as a Library by other Add-Ons, such as X4D Chat (integration requires Add-On author support.)
  • Can be used as a stand-alone Add-On to auto-filter Spammers and Flooders from Chat.

Planned Features
  • Pattern Sync (share your patterns with your Guild, your Friends, etc)


Installation

First, make sure you have the latest X4D Core installed.

As with most Addons, simply open the Archive and copy the contents into "%USERPROFILE%\Documents\Elder Scrolls Online\live\Addons\" folder.

If ESO is already running, execute /reloadui command.


Change Log

To see version history, including 'vNext' (soon to be published) changes, view the README on Github.
Optional Files (0)


Post A Reply Comment Options
Unread 04/26/14, 05:15 AM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Thumbs up Dependency Management and Shared Libraries

Originally Posted by Rhadek
Oh, yes ... now it works, thx (and sorry)!

Sorry my english is bad.
Not really bad at all.

Originally Posted by Rhadek
In my UI i'm using common Libs, all Libs are at Addons/__Libs and all Addon.txt are manually linked to these Addons/__Libs. It works and all Addons are using the same Lib-Versions (some Addons still using very old Libs e.g. LibAddonMenu-1.0.lua Version 2), ok ... unless some Libs are customized *g* then i got problems.
Interesting. This is one of the problems 'LibStub' exists to solve, I wish more Library Authors would use it. An IoC provider (or dependency container/manager, which is what LibStub is) allows shared libraries to register themselves so they can be utilized by multiple Add-Ons, and also allows for add-on libraries which cannot be shared to not be registered (or be registered with a different name.)

Following convention, LibStib libraries do not collide in the global namespace. They must be explicitly resolved.

Unfortunately the vast majority of add-on developers seem to fail to see the value in dependency management.

Introducing a "shared file" breaks this sort of dependency management, which is superior to trying to manage individual files to achieve the same result. I would highly suggest not doing this for any library which:

1. Is LibStub compatible.
2. Incrementally modifies the global namespace, as is done via utf8.lua

Originally Posted by Rhadek
Question:
For your Addons X4D_Bank ... you are using a customized LibAddonMenu-1.0 Version 7 with some changes, these changes are only for your addons? Or is it good to use your Version 7 for all addons? The changes are bugfixes or costomizations for you only?
Wow, thank you for pointing this out. These changes should not be used by anyone. "r7" was a POC I sent to Seerah privately and was not meant to be distributed, I also do not use any of the modifications which were made (and there is a bug in at least one of the extra methods which, at present, I have no intention of fixing.)

Short answer: do not use this, I will be replacing it with the official r6.

Originally Posted by Rhadek
Same Question for your customized "utf8.lua"?
While you could potentially use my version of "utf8.lua" for all add-ons, I can't guarantee that this won't change in the future. The problem with utf8.lua is that several useful methods are local-scoped, and I often have to make them global or extend LUA's string type to expose the calls I need. My suggestion to you is to not "share" the version of utf8.lua I distribute, and instead continue to leave the X4D_LibAntiSpam.txt unmodified.

Originally Posted by Rhadek
THX! for your great Addon!
Pleasure is all mine, this thing keeps me sane and doesn't break my Chat Mod in the process.

I'm curious, do you manually update all of these TXT files or are you working on software to do it for you?

Also, you may find this an interesting read, while different it is conceptually identical to the problem you are currently facing: http://en.wikipedia.org/wiki/DLL_Hell, the most common solution in practice today (on windows and non-windows alike) is the section titled "Portable Applications".
Report comment to moderator  
Reply With Quote
Unread 04/26/14, 04:47 AM  
Rhadek

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by wilson0x4d

The error is in reference to "/lib/utf8/utf8.lua" which was updated in 1.42 - I customize "utf8.lua" for use in LibAntiSpam, it it is not the same as "utf8.lua" found in other Add-Ons.

Hope this helps.
Oh, yes ... now it works, thx (and sorry)!

Sorry my english is bad.

In my UI i'm using common Libs, all Libs are at Addons/__Libs and all Addon.txt are manually linked to these Addons/__Libs. It works and all Addons are using the same Lib-Versions (some Addons still using very old Libs e.g. LibAddonMenu-1.0.lua Version 2), ok ... unless some Libs are customized *g* then i got problems.

Question:
For your Addons X4D_Bank ... you are using a customized LibAddonMenu-1.0 Version 7 with some changes, these changes are only for your addons? Or is it good to use your Version 7 for all addons? The changes are bugfixes or costumizations for you only?

Same Question for your customized "utf8.lua"?

THX! for your great Addon!

Hope you understand my "english" *g*
Report comment to moderator  
Reply With Quote
Unread 04/26/14, 04:35 AM  
Naede
 
Naede's Avatar

Forum posts: 0
File comments: 19
Uploads: 0
Hello,

Since last update, the addon notify "(LibAntiSpam) Bad Pattern: l.?.?.?d.?.?p.?.?s.?.?c.?.?.?[" for each message I receive in chatbox.

Have a nice day
Report comment to moderator  
Reply With Quote
Unread 04/26/14, 04:17 AM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Originally Posted by Rhadek
Originally Posted by wilson0x4d
Originally Posted by Rhadek
German Client
Version: 1.42

2014-04-26T11:53:50.231+01:00 |cff0000Lua Error:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: function expected instead of nil
stack traceback:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: in function 'ToASCII'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:436: in function 'Normalize'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:441: in function 'X4D_LibAntiSpam.Check'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:306: in function 'X4D_LibAntiSpam.OnChatMessageReceived'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1651: in function 'ChatSystem:OnChatEvent'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1455: in function 'OnChatEvent'|r
Are you using Minion?
No.
The error is in reference to "/lib/utf8/utf8.lua" which was updated in 1.42 - I customize "utf8.lua" for use in LibAntiSpam, it it is not the same as "utf8.lua" found in other Add-Ons.

Lines 155-157 of "utf8.lua" should look like this, if it does not look like this it is not properly updated:

Lua Code:
  1. if not string.utf8charbytes then
  2.     string.utf8charbytes = utf8charbytes
  3. end

You may be able to fix the issue by simply re-copying utf8.lua from the ZIP file into the correct folder, or just delete the X4D_LibAntiSpam folder and re-copy the entire Add-On from the ZIP file.

Hope this helps.
Last edited by wilson0x4d : 04/26/14 at 04:22 AM.
Report comment to moderator  
Reply With Quote
Unread 04/26/14, 04:11 AM  
Rhadek

Forum posts: 0
File comments: 21
Uploads: 0
Originally Posted by wilson0x4d
Originally Posted by Rhadek
German Client
Version: 1.42

2014-04-26T11:53:50.231+01:00 |cff0000Lua Error:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: function expected instead of nil
stack traceback:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: in function 'ToASCII'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:436: in function 'Normalize'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:441: in function 'X4D_LibAntiSpam.Check'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:306: in function 'X4D_LibAntiSpam.OnChatMessageReceived'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1651: in function 'ChatSystem:OnChatEvent'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1455: in function 'OnChatEvent'|r
Are you using Minion?
No
Last edited by Rhadek : 04/26/14 at 04:14 AM.
Report comment to moderator  
Reply With Quote
Unread 04/26/14, 04:05 AM  
Rhadek

Forum posts: 0
File comments: 21
Uploads: 0
German Client
Version: 1.42

2014-04-26T11:53:50.231+01:00 |cff0000Lua Error:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: function expected instead of nil
stack traceback:
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:401: in function 'ToASCII'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:436: in function 'Normalize'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:441: in function 'X4D_LibAntiSpam.Check'
user:/AddOns/X4D_LibAntiSpam/X4D_LibAntiSpam.lua:306: in function 'X4D_LibAntiSpam.OnChatMessageReceived'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1651: in function 'ChatSystem:OnChatEvent'
EsoUI/Ingame/ChatSystem/ChatSystem.lua:1455: in function 'OnChatEvent'|r
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 11:20 PM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Flood Time, Flood Checks and Temporary Blocking

Originally Posted by Nameious
Hey Wilson my default flood filter reset to 30seconds and it was hitting up Auridon hard in Veteran content. Since it reset and people love spamming wts/wtt/wtb ect it was hitting them with flood filter. I don't want these people blocked. I now set it to 2 minuets what I usually have it at. I've been looking for the log to delete it is there one?
There is no log, the state resets on every log-in.

If you want to disable Flood Checks simply set "Flood Time" to 0.

Setting "Flood Time" to 30 (seconds) means that anyone who repeats a message within 30 seconds will be blocked.

Setting "Flood Time" to 2 minutes (120) means that anyone who repeats a message within 2 minutes will be blocked.

The setting not only determines the amount of time a user cannot repeat, but also determines how long they will be blocked for. Flooder Blocking is NOT permanent, the block will eventually expire if the user stops sending repeated messages.)

Some ways to prevent people from getting blocked for flooding:

1. Set your "Flood Time" to 0. Default is 300 seconds (5 minutes.)
2. Add them to your friends list, this will white-list them ensuring they are never blocked for any reason.
3. Add them to your guild, or join one of their guilds. This will white-list them.
4. Join a group with them.

After 2, 3 or 4 you may want to /reloadui.

You can also execute a /reloadui if someone is accidentally blocked (maybe they said "lol" several times in a row.)

The purpose of Flood Checks is to prevent WTB/WTT/WTS spam, as well as Guild Advertisements. Prior to v1.41 this feature was actually not working correctly, if you prefer the old behavior simply set the "Flood Time" setting to 0.

Hope that helps
Last edited by wilson0x4d : 04/26/14 at 04:21 AM.
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 08:33 PM  
Nameious

Forum posts: 29
File comments: 48
Uploads: 0
Hey Wilson my default flood filter reset to 30seconds and it was hitting up Auridon hard in Veteran content. Since it reset and people love spamming wts/wtt/wtb ect it was hitting them with flood filter. I don't want these people blocked. I now set it to 2 minuets what I usually have it at. I've been looking for the log to delete it is there one?
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 07:01 PM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Re: Requestg

Originally Posted by Nyarlhotep
Love the app...already makes life better. As pointed out below, there's no characters left in the edit window to add any new strings
The limit was doubled today.

Originally Posted by Nyarlhotep
Let's just say there's a metric F-ton of spammers using the general expression:

===> \/\/_\/\/_\/\/ (etc, etc)

to start a deluge of gold spam.

How/where might one go about adding the appropriate coding string to the lua
I really wish it were that simple. LibAntiSpam normalizes the text, to understand the problem in exact-matching that text consider the following faux spam messages:

\/\/_\/\/_\/\/

\/\/*W_-=\/V

***\/V****
***V\/**** BUYDERPIEGOLD.COM
***\/\/****

We would either be adding explicit '\/\/ \/\/ \/\/' checks until we turned blue, or the spammers would simply work around it.

Instead we match on more particular strings. Since a proper check for all possible 'WWW' combinations would most assuredly catch non-spammers (in addition to ALL spammers.) So instead we target strings which are specific to each spammer. This minimizes the chance that a non-spammer gets caught by the Check() method.

I'll add a 'generic' check for various combinations of "\/\/ \/\/ \/\/" since it might catch new spammers by surprise, but I guarantee they will just work around it and either stop using that text or find a way to bypass the checks. Presently, LibAntiSpam does not check for this text at all, and, presently, spammers use 8 different variations of "WWW".

That said,

Once spammers have seemingly exhausted all their means to bypass pattern-based add-ons I'll provide "layman's" instructions on creating new patterns, and I expect it to be a truly trivial effort in the end. I will also be introducing a set of heuristics to auto-block some of the less creative spammers, but cannot invest time in doing either of these until the normalization code has become stable/fixed for some time.

One user suggested added a menu-option to auto-create a pattern from spam text, and I like this idea. I will likely attempt to take this approach in the end.

Thanks
Last edited by wilson0x4d : 04/26/14 at 04:28 AM.
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 06:47 PM  
Nyarlhotep

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

Love the app...already makes life better. As pointed out below, there's no characters left in the edit window to add any new strings, and even if there were, I'm no coder, so...

Let's just say there's a metric F-ton of spammers using the general expression:

===> \/\/_\/\/_\/\/ (etc, etc)

to start a deluge of gold spam.

How/where might one go about adding the appropriate coding string to the lua to terminate this cra....uhhh...messaging with extreme prejudice?

TIA

N
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 04:04 PM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Re: Guild spam?

Originally Posted by Xanderificus
Any suggestions about minimizing guild-recruitment spam? It's seriously as bad, or worse, than gold sellers.
UPDATE: in response to this message I have just found a bug in the flood check code where it was not properly preventing flooders. I will be updating with a fix in a few minutes. Thank you for bringing this up.

Currently LibAntiSpam also performs 'Flood Checks', a 'Flooder' is any user that sends the same message in chat within a given time frame.

The default period for a flood check is 30 seconds, I believe. I personally set this to 300 seconds (equivalent to 5 minutes.) In the next release the max "flood time" you can set in the options to a maximum of 15 minutes (900 seconds.)

The flood check period also re-extends every time the chatter is detected to be flooding again/more. Thus, for recruiters that spew the same message to chat every 3 seconds for an hour, you would only see their first message (the rest are blocked.)
Last edited by wilson0x4d : 04/26/14 at 04:31 AM.
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 03:37 PM  
Xanderificus

Forum posts: 7
File comments: 55
Uploads: 0
Question Guild spam?

Any suggestions about minimizing guild-recruitment spam? It's seriously as bad, or worse, than gold sellers.
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 02:45 PM  
DaBear78
 
DaBear78's Avatar

Forum posts: 1
File comments: 120
Uploads: 0
Originally Posted by wilson0x4d
I'll take a look at Mail API calls this weekend and see what I can do.
Great news!

By the way: Seems as if you have reached the limit of the editbox. In the newest version (v1.39) in the settings menu the last 2 characters are already missing ("]+"). Maybe you should make this box only for the user defined rules and your default rules should be hardcoded into the lua-code itself. Would be safer, because nobody would edit your rules (and maybe break them) and you don't have to delete / edit / add new rules on every update into this editbox, because the newest and correct (and only these!) rules are in the code
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 09:57 AM  
wilson0x4d
Premium Member
 
wilson0x4d's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 180
Uploads: 10
Originally Posted by DaBear78
Is there any way to make your addon also detect those spam mails from goldsellers you get ingame?
it's possible, but I haven't bothered looking at the Mail API calls yet. I was actually hoping that someone who already develops a Mail Mod would integrate with LibAntiSpam (since it can be accessed via LibStub as a library.)

Doesn't look like it had happened yet. I'll take a look at Mail API calls this weekend and see what I can do.
Report comment to moderator  
Reply With Quote
Unread 04/25/14, 09:47 AM  
DaBear78
 
DaBear78's Avatar

Forum posts: 1
File comments: 120
Uploads: 0
Is there any way to make your addon also detect those spam mails from goldsellers you get ingame?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: