Register forum user name Search FAQ

Gammon Forum

Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the password reset link.

Due to spam on this forum, all posts now need moderator approval.

 Entire forum ➜ MUSHclient ➜ General ➜ Newbie question on filtering/triggering

Newbie question on filtering/triggering

It is now over 60 days since the last post. This thread is closed.     Refresh page


Posted by Uma   (4 posts)  Bio
Date Tue 17 Nov 2009 03:49 PM (UTC)
Message
Hello! I'm an utter newbie when it comes to mush client, muds, scripting, and plugins, but i manged to get a filter working that sends all pages in my Moo of choice to it's own window. The problem I'm having is that I'd like to move pages that say a particular thing to a third window, but can't seem to get the original Chat_redirector.xml from overcoming any sort of triggers or alternate filters I put in place! The complication is that the pages can come from any user. A friend told me that * can be used as a wild card in place of a name, but that doesn't' seem to work in my present situation. Any advice?

I've tried making a trigger for the main 'world' window and setting the sequences higher or lower. I've tried making another filter plug in(which i already have pitching spam to a spam window) grab the page as well, but I guess my page-filtering-redirector is just thorough.

What information would be helpful toward advising me? Should I copy the redirector here? should I copy an example of the text i want caught?.
Top

Posted by Nick Gammon   Australia  (23,173 posts)  Bio   Forum Administrator
Date Reply #1 on Tue 17 Nov 2009 06:57 PM (UTC)
Message
Can you restate the problem a bit?

Do you want your filter to stop things (like spam) going into the main chat window? Or are you saying that with the chat redirector there, the spam doesn't go to the spam window at all?

As I recall, each plugin gets a look at the incoming lines, so that if the chat redirector trigger matches one, it will get redirected, even if a different plugin also matches it.

You may need to edit the chat redirector itself, and then if you put in a *lower* sequence it will match earlier (and if you do *not* check "keep evaluating") so that could be used to direct some lines elsewhere.

Quote:

A friend told me that * can be used as a wild card in place of a name, but that doesn't' seem to work in my present situation.


I'm not sure what you mean by not working here. If regular expressions are *not* checked, a * will match any string (constrained by what you put around the *) however that isn't directly relevant to the problem here.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Uma   (4 posts)  Bio
Date Reply #2 on Tue 17 Nov 2009 07:34 PM (UTC)
Message
Okay.

I want all pages to go to a page window. I have a disadvantage in the game that makes me get fake pages from people, but they are very standard messages like:

From your wristpad: billybob pages, 'I hate you'

I want to get my real ones, but to eventually filter out the very standard messages.

My script i use now looks like this (some one sent it to me and i kind of mimicked what i saw till i made it work right heh).


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Saturday, June 30, 2007, 10:48 -->
<!-- MuClient version 4.13 -->

<!-- Plugin "Chat_Redirector" generated by Plugin Wizard -->

<!--
Edit plugin and change "chat_world" variable to be the name of the
world you want chats to go to.
-->

<muclient>
<plugin
name="Chat_Redirector"
author="Nick Gammon"
id="cb84a526b476f69f403517da"
language="Lua"
purpose="Redirects chat messages to another world"
date_written="2007-06-30 10:45:35"
requires="4.08"
version="1.0"
>
<description trim="y">
<![CDATA[
Redirects chats to the specified world.

Add or modify "chat" triggers to capture different sorts of message.

Change the variable "chat_world" to be the name of the world chats are to go to.
]]>
</description>

</plugin>

<!-- Triggers -->

<triggers>



<trigger
enabled="y"
match="^\[party\].*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>

<trigger
enabled="y"
match="^\[chatnet\].*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>

<trigger
enabled="y"
match="^\[.*?zo.*?\].*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>




<trigger
enabled="y"
match="^From your wristpad:.*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>

<trigger
enabled="y"
match="^You feel a tug on your line.*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>



<trigger
enabled="y"
match="^You text.*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>



</triggers>

<!-- Script -->


<script>
<![CDATA[
chat_world = "chats"
local first_time = true

function redirect (name, line, wildcards, styles)

-- try to find "chat" world
local w = GetWorld (chat_world) -- get "chat" world

-- if not found, try to open it
if first_time and not w then
local filename = GetInfo (67) .. chat_world .. ".mcl"
Open (filename)
w = GetWorld (chat_world) -- try again
if not w then
ColourNote ("white", "red", "Can't open chat world file: " .. filename)
first_time = false -- don't repeatedly show failure message
end -- can't find world
end -- can't find world first time around

if w then -- if present
for _, v in ipairs (styles) do
w:ColourTell (RGBColourToName (v.textcolour),
RGBColourToName (v.backcolour),
v.text)
end -- for each style run
w:Note ("") -- wrap up line

end -- world found

end -- function redirect

]]>
</script>


</muclient>



I tried to have another script say

<trigger
enabled="y"
match="^from your wristpad: billybob pages, 'I hate you'*$"
omit_from_output="y"
regexp="y"
script="redirect"
sequence="100"
>
</trigger>

But as you said, each plugin looked at the same time.

I tried to get a trigger to look for the same text and never got them to work.

So in short i want the rotating list of anoying spam to go to a spam window (or to just be muted entirely!) and for the real pages to go to my happy functional page window.

Thank you so much for being patient with me. that's really nice of you!
Top

Posted by Nick Gammon   Australia  (23,173 posts)  Bio   Forum Administrator
Date Reply #3 on Tue 17 Nov 2009 07:52 PM (UTC)
Message
Well I would put your extra trigger into the plugin (slot it between some of the others), and change it a bit like this:


<trigger
  enabled="y"
  match="From your wristpad: * pages, '*'"
  omit_from_output="y"
  regexp="n"
  sequence="10"
>
</trigger>


Note I have:


  • Made it *not* a regular expression
  • Put asterisks in where I thought things might change
  • Not called the redirect script (so it won't be printed)
  • Made the sequence lower, so it gets done first


By the way, you need to get the case right (you had "from your wristpad") but the example line you gave was "From your wristpad").

However now that I look closely, it looks similar to a real page. How do you tell the difference? Is it the name of the person, or something else?

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

Posted by Uma   (4 posts)  Bio
Date Reply #4 on Tue 17 Nov 2009 10:39 PM (UTC)
Message
OH this looks like it's going to work out great! thank you so much!

Well, you can only tell the difference in that the pages are random and unreasonable and from some one you may not have spoken to before. it's supposed to make you seem to be going crazy. you're paranoid and everyone is out to get you so...there's no way to distinguish between the paranoia induced pages, or the real pages. I'm just filtering out some of the more common paranoia messages so i get less dings from pages coming in :)
Top

Posted by Uma   (4 posts)  Bio
Date Reply #5 on Tue 17 Nov 2009 10:50 PM (UTC)
Message
Do i need to use rising sequence numbers for them to all work? i tried to make a lot of filters like that at 10 and only the first worked.
Top

Posted by Nick Gammon   Australia  (23,173 posts)  Bio   Forum Administrator
Date Reply #6 on Wed 18 Nov 2009 01:01 AM (UTC)
Message
No, all the 10 sequence triggers are checked before anything with a higher sequence (like 11).

However they should all work, unless one of them is too general. For example:


(trigger a) Match: * says *
(trigger b) Match: Nick says hello


If they were both sequence 10, and the first one matched, then the second one wouldn't match because the first one caught it first.

- Nick Gammon

www.gammon.com.au, www.mushclient.com
Top

The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).

To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.


20,475 views.

It is now over 60 days since the last post. This thread is closed.     Refresh page

Go to topic:           Search the forum


[Go to top] top

Information and images on this site are licensed under the Creative Commons Attribution 3.0 Australia License unless stated otherwise.