/* * autoquery.irc - Auto-query script for BitchX and EPIC4 * * Copyright (c) 2003 Brian Weiss * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. All redistributions, whether of source code or in binary form must * retain the above copyright notice, the above paragraph (the one * permitting redistribution), this list of conditions, and the following * disclaimer. * 2. The names of the author(s) may not be used to endorse or promote * products derived from this software without specific prior written * permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * This script uses serial number 835 for all /ON hooks. */ /****** CONFIG SECTION ******/ assign AUTO_QUERY 1 assign AUTO_QUERY_UPDATE 1 # Arguments to pass to the /WINDOW command when the new window for # the query is created. This could be something like "double on hide". # See window(4) in the EPIC help files for a complete list of commands. assign AUTO_QUERY_WINDOW_ARGS hide /****** END CONFIG SECTION ******/ on #-msg 835 "*" { _autoquery $0 $userhost(); } on #-send_msg 835 "*" { _autoquery $0 $userhost(); } alias _autoquery (nick, uhost, void) { if (!nick || uhost == [@]) { return } @ :item = matchitem(queries.$lastserver() %!$uhost) if (item > -1) { if (getitem(queries.$lastserver() $item) != [$nick!$uhost]) { if (AUTO_QUERY_UPDATE) { @ :oldnick = before(-1 ! $getitem(queries.$lastserver() $item)) @ :win = querywin($oldnick $lastserver()) if (win > -1) { window $win query $nick xecho -b -w $win Query window for $oldnick changed to $nick } } @ setitem(queries.$lastserver() $item $nick!$uhost) } } else { @ setitem(queries.$lastserver() $numitems(queries.$lastserver()) $nick!$uhost) } if (AUTO_QUERY && querywin($nick $lastserver()) == -1) { window new query $nick $AUTO_QUERY_WINDOW_ARGS xecho -b New query window created for $nick } } /* EOF */