NoSoliciting/NoSoliciting/definitions.yaml

234 lines
6.3 KiB
YAML
Raw Normal View History

# This file defines the filters that NoSoliciting will use for
# built-in filters.
# The version should be incremented for each commit including changes
# to this file.
# There are three main sections: chat, party_finder, and global. The
# chat and party_finder sections are for their respective areas (the
# chat log and the Party Finder window), and the global section
# applies to both.
# Each subsection is a separate built-in filter that can be toggled on
# and off. The option shown in the UI is defined in the
# subsection. For global subsections, {} can be inserted into the
# option name to substitute either "chat" or "Party Finder" as
# appropriate.
# Subsections can have ignore_case (defaults to false) and normalise
# (defaults to true) set. ignore_case will ignore casing for matching
# against the matchers, and normalise will normalise text prior to
# matching. Text normalisation consists of turning FFXIV-specific
# unicode symbols into normal ASCII characters and running a NFKD
# unicode decomposition on the result.
# Subsections also may filter based on channels with the channels key.
# A list of channels may be specified, and the message will be ignored
# if not in one of the specified channels. For the Party Finder, the
# channel is always None. An empty list (or missing channels key) will
# ignore the channel.
# Each subsection may specify whether it is enabled by default with the
# default key. This should be used sparingly. This defaults to false.
# The real meat of the file is the matchers. There are two types of
# matchers: required and likely. Both types have categories of strings
# or regular expressions that should match. For required matchers, at
# least one string or regex should match in *all* categories. For
# likely matchers, at least one string or regex should match in the
# value of likelihood_threshold (or greater) categories.
# If both required and likely matchers are specified, they both must
# match. This means that all the categories of the required matchers
# must find a match, *and* that at least likelihood_threshold matchers
# must find a match in likely_matchers.
# Substring matchers are faster than regular expressions and are
# specified just by using a string. Regular expression matchers are
# slower but more flexible, and they are specified by using a regex
# key, as can be seen below.
version: 19
# This is the URL the plugin will POST reports to.
2020-09-01 22:55:01 +00:00
report_url: https://nosol.annaclemens.io/report
chat:
rmt:
option:
basic: Filter RMT from chat
advanced: Enable built-in chat RMT filter
default: true
required_matchers:
- - "4KGOLD"
- "We have sufficient stock"
- "PVPBANK.COM"
- "Gil for free"
- "www.so9.com"
- "Fast & Convenient"
- "Cheap & Safety Guarantee"
- "【Code|A O A U E"
- "igfans"
- "4KGOLD.COM"
- "Cheapest Gil with"
- "pvp and bank on google"
- "Selling Cheap GIL"
- "ff14mogstation.com"
- "Cheap Gil 1000k"
- "gilsforyou"
- "server 1000K ="
- "gils_selling"
- "E A S Y.C O M"
- "bonus code"
- "mins delivery guarantee"
- "Sell cheap"
- "Salegm.com"
- "cheap Mog"
- "Off Code"
- "FF14Mog.com"
- "使用する5オ"
- "offers Fantasia"
2020-08-27 22:18:16 +00:00
- regex: 'finalfantasyxiv\.com-\w+\.\w+' # phishing
- regex: 'square-enix\.com-\w+\.\w+' # phishing
free_company:
option:
basic: Filter FC recruitments from chat
advanced: Enable built-in chat FC recruitment filter
ignore_case: true
channels:
- shout
- yell
2020-08-21 11:52:22 +00:00
likelihood_threshold: 3
likely_matchers:
# mentions free company
- - fc
- free company
2020-08-26 20:18:07 +00:00
- regex: '<\w+>'
# contains a call to action
- - join
- apply
- /tell
- /t
- dm
- whisper
# mentions benefits
- - discord
- map
- rank
- active
- weekly
- social
- friendly
- buff
- event
- house
- level
- raid
- hunt
# has common keywords
- - family
- community
- veteran
- seasoned
- casual
- new
- help
- recruit
party_finder:
rmt:
option:
basic: Filter RMT from Party Finder
advanced: Enable built-in Party Finder RMT filter
default: true
ignore_case: true
required_matchers:
# selling
- - sell
- s e l l
- $ell
- $ e l l
- sale
- s a l e
- offer
- price
- cheap
likelihood_threshold: 1
likely_matchers:
# discord or join/contact
- - regex: '.#\d{4}'
- regex: 'discord\.(gg|io)/\w+'
- join
- /tell
- whisper
- dm
# content
- - eden
- savage
- primal
- ultimate
- ex
- trial
- mount
- loot
- regex: e[1-9][0-2]?
global:
roleplay:
option:
basic: 'Filter RP advertisements from {}'
advanced: 'Enable built-in {} RP filter'
ignore_case: true
required_matchers:
# - - regex: 'w(ard)?\s*\d+.*(p(lot)?|(a(pt\.?|partment)(\s*#)?)?)\s*\d+'
- - ward
- regex: 'w\s*\d'
- - plot
- apt
- regex: 'p\s*\d'
likelihood_threshold: 1
likely_matchers:
# mentions roleplaying or fairly rp-only keywords
- - rp
- roleplay
- role play
- sfw # also catches nsfw
- '18+'
- '18 +'
- open
# has venue type
- - cafe
- bar
- lounge
- brothel
- casino
- venue
- restaurant
- library
- bookstore
- book store
- hostel
- club
# mentions services/activities
- - entertainment
- live
- raffle
- menu
- atmosphere
- drink
- food
- eat
- dance
- dancing
- music
- contest
- giveaway
- party
- gambling
# mentions a housing zone
- - gob # catches goblet, as well
- mist
- lb
- lav # catches lavender/lavender beds, as well
- shiro # catches shirogane, as well