1:- module(irc_client_operator, [
    2	cmd/2,
    3	dbg/2
    4]).

operator

Operator module that determines appropriate messaging templates for specific atoms which connote particular irc operations. */

   12%--------------------------------------------------------------------------------%
   13% Commands
   14%--------------------------------------------------------------------------------%
   15
   16
   17%  Convenience commands for specific message relays.
   18%  Attempt to unify with a type and a corresponding string template. The string
   19%  template will be fed to dispatch in order to send a message.
   20
   21% ADMIN [Target]
   22cmd(admin, 'ADMIN ~s\r~n').
   23
   24% AWAY [Message]
   25cmd(away, 'AWAY :~s\r~n').
   26
   27% CONNECT [Server, Port]
   28cmd(connect, 'CONNECT ~s ~s\r~n').
   29
   30% DIE
   31cmd(die, 'DIE\r~n').
   32
   33% HELP
   34cmd(help, 'HELP\r~n').
   35
   36% INFO
   37cmd(info, 'INFO\r~n').
   38
   39% ISON [Names] (comma separated values)
   40cmd(ison, 'ISON :~s\r~n').
   41
   42% KILL [Client, Comment]
   43cmd(kill, 'KILL ~s :~s\r~n').
   44
   45% LINKS
   46cmd(links, 'LINKS\r~n').
   47
   48% LIST [Channels] (comma separated values)
   49cmd(list, 'LIST :~s\r~n').
   50
   51% LUSERS
   52cmd(lusers, 'LUSERS :~s\r~n').
   53
   54% NAMES [Channels]
   55cmd(names, 'NAMES :~s\r~n').
   56
   57% OPER [Username, Pass]
   58cmd(oper, 'OPER ~s ~s\r~n').
   59
   60% REHASH
   61cmd(rehash, 'REHASH\r~n').
   62
   63% RESTART
   64cmd(restart, 'RESTART\r~n').
   65
   66% RULES
   67cmd(rules, 'RULES\r~n').
   68
   69% SERVER [Servername, Hopcount, Info]
   70cmd(server, 'SERVER ~s ~s :~s\r~n').
   71
   72% SERVICE [Nick, Reserved, Distribution, Type, Reserved, Info]
   73cmd(service, 'SERVICE ~s ~s ~s ~s ~s :~s\r~n').
   74
   75% SERVLIST
   76cmd(servlist, 'SERVLIST\r~n').
   77
   78% STATS [Query]
   79cmd(stats, 'STATS ~s\r~n').
   80
   81% USERHOST [Nick(s)]
   82cmd(userhost, 'USERHOST :~s\r~n').
   83
   84% USERIP [NICK]
   85cmd(userip, 'USERIP ~s\r~n').
   86
   87% USERS
   88cmd(users, 'USERS\r~n').
   89
   90% VERSION
   91cmd(version, 'VERSION\r~n').
   92
   93% WHO [Name]
   94cmd(who, 'WHO ~s\r~n').
   95
   96% WHO [Name] (is an op)
   97cmd(who_op, 'WHO ~s o\r~n').
   98
   99% WHO (are ops)
  100cmd(who_ops, 'WHO o\r~n').
  101
  102% WHOIS [Nicks]
  103cmd(whois, 'WHOIS :~s\r~n').
  104
  105% WHOWAS [Nick]
  106cmd(whowas, 'WHOWAS ~s\r~n').
  107
  108% NOTICE [Target, Notice]
  109cmd(notice, 'NOTICE ~s :~s\r~n').
  110
  111% PRIVMSG [Target, PrivMsg]
  112cmd(priv_msg, 'PRIVMSG ~s :~s\r~n').
  113
  114% TIME [Server]
  115cmd(time, 'TIME ~s\r~n').
  116
  117% KICK [Chan, Target]
  118cmd(kick, 'KICK ~s ~s\r~n').
  119
  120% INVITE [Target, Chan]
  121cmd(invite, 'INVITE ~s ~s\r~n').
  122
  123% NAMES [Chan]
  124cmd(names, 'NAMES ~s\r~n').
  125
  126% LIST [Chans] (a csv of channels)
  127cmd(list, 'LIST :~s\r~n').
  128
  129% TOPIC [Chan, Topic]
  130cmd(topic, 'TOPIC ~s :~s\r~n').
  131
  132% MODE [+/-(Mode), NICK]
  133cmd(mode, 'MODE ~s ~s\r~n').
  134
  135% PART [CSV] (a csv of channels)
  136cmd(part, 'PART :~s\r~n').
  137
  138% PING [Target]
  139cmd(ping, 'PING ~s\r~n').
  140
  141% PONG [Target]
  142cmd(pong, 'PONG ~s\r~n').
  143
  144% PASS [Pass]
  145cmd(pass, 'PASS ~s\r~n').
  146
  147% USER [Nick, HostName, ServerName, RealName]
  148cmd(user, 'USER ~s ~s ~s :~s\r~n').
  149
  150% NICK [Nick]
  151cmd(nick, 'NICK ~s\r~n').
  152
  153% JOIN [Chan]
  154cmd(join, 'JOIN ~s\r~n').
  155
  156% QUIT
  157cmd(quit, 'QUIT :disconnect\r\n').
  158
  159
  160%---------------------------------------------------------------------------------------------------%
  161% Debugging
  162%---------------------------------------------------------------------------------------------------%
  163
  164%  This is used to debug pings, to ensure the client that pongs are being sent.
  165
  166% PONG [Origin]
  167dbg(pong, 'PONG ~s~n')