evennia/docs/latest/api/evennia.server.portal.irc.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

553 lines
No EOL
48 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.server.portal.irc &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.server.portal.mccp" href="evennia.server.portal.mccp.html" />
<link rel="prev" title="evennia.server.portal.grapevine" href="evennia.server.portal.grapevine.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.mccp.html" title="evennia.server.portal.mccp"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.grapevine.html" title="evennia.server.portal.grapevine"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" accesskey="U">evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.irc</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.portal.irc">
<span id="evennia-server-portal-irc"></span><h1>evennia.server.portal.irc<a class="headerlink" href="#module-evennia.server.portal.irc" title="Link to this heading"></a></h1>
<p>This connects to an IRC network/channel and launches an bot onto it.
The bot then pipes what is being said between the IRC channel and one or
more Evennia channels.</p>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.server.portal.irc.parse_ansi_to_irc">
<span class="sig-prename descclassname"><span class="pre">evennia.server.portal.irc.</span></span><span class="sig-name descname"><span class="pre">parse_ansi_to_irc</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#parse_ansi_to_irc"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.parse_ansi_to_irc" title="Link to this definition"></a></dt>
<dd><p>Parse <a href="#id1"><span class="problematic" id="id2">|</span></a>-type syntax and replace with IRC color markers</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>string</strong> (<em>str</em>) String to parse for ANSI colors.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>parsed_string (str)</em> String with replaced ANSI colors.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="evennia.server.portal.irc.parse_irc_to_ansi">
<span class="sig-prename descclassname"><span class="pre">evennia.server.portal.irc.</span></span><span class="sig-name descname"><span class="pre">parse_irc_to_ansi</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">string</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#parse_irc_to_ansi"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.parse_irc_to_ansi" title="Link to this definition"></a></dt>
<dd><p>Parse IRC mIRC color syntax and replace with Evennia ANSI color markers</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>string</strong> (<em>str</em>) String to parse for IRC colors.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><em>parsed_string (str)</em> String with replaced IRC colors.</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.portal.irc.</span></span><span class="sig-name descname"><span class="pre">IRCBot</span></span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">IRCClient</span></code>, <a class="reference internal" href="evennia.server.session.html#evennia.server.session.Session" title="evennia.server.session.Session"><code class="xref py py-class docutils literal notranslate"><span class="pre">Session</span></code></a></p>
<p>An IRC bot that tracks activity in a channel as well
as sends text to it when prompted</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.lineRate">
<span class="sig-name descname"><span class="pre">lineRate</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.lineRate" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.nickname">
<span class="sig-name descname"><span class="pre">nickname</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.nickname" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.logger">
<span class="sig-name descname"><span class="pre">logger</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.logger" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.factory">
<span class="sig-name descname"><span class="pre">factory</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">Factory</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></em><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.factory" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.channel">
<span class="sig-name descname"><span class="pre">channel</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">None</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.channel" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.sourceURL">
<span class="sig-name descname"><span class="pre">sourceURL</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'http://code.evennia.com'</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.sourceURL" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.signedOn">
<span class="sig-name descname"><span class="pre">signedOn</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.signedOn"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.signedOn" title="Link to this definition"></a></dt>
<dd><p>This is called when we successfully connect to the network. We
make sure to now register with the game as a full session.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.disconnect">
<span class="sig-name descname"><span class="pre">disconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">reason</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">''</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.disconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.disconnect" title="Link to this definition"></a></dt>
<dd><p>Called by sessionhandler to disconnect this protocol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>reason</strong> (<em>str</em>) Motivation for the disconnect.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.at_login">
<span class="sig-name descname"><span class="pre">at_login</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.at_login"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.at_login" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.privmsg">
<span class="sig-name descname"><span class="pre">privmsg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">msg</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.privmsg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.privmsg" title="Link to this definition"></a></dt>
<dd><p>Called when the connected channel receives a message.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>str</em>) User name sending the message.</p></li>
<li><p><strong>channel</strong> (<em>str</em>) Channel name seeing the message.</p></li>
<li><p><strong>msg</strong> (<em>str</em>) The message arriving from channel.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.action">
<span class="sig-name descname"><span class="pre">action</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">msg</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.action"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.action" title="Link to this definition"></a></dt>
<dd><p>Called when an action is detected in channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>str</em>) User name sending the message.</p></li>
<li><p><strong>channel</strong> (<em>str</em>) Channel name seeing the message.</p></li>
<li><p><strong>msg</strong> (<em>str</em>) The message arriving from channel.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.get_nicklist">
<span class="sig-name descname"><span class="pre">get_nicklist</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.get_nicklist"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.get_nicklist" title="Link to this definition"></a></dt>
<dd><p>Retrieve name list from the channel. The return
is handled by the catch methods below.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.irc_RPL_NAMREPLY">
<span class="sig-name descname"><span class="pre">irc_RPL_NAMREPLY</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.irc_RPL_NAMREPLY"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.irc_RPL_NAMREPLY" title="Link to this definition"></a></dt>
<dd><p>“Handles IRC NAME request returns (nicklist)</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.irc_RPL_ENDOFNAMES">
<span class="sig-name descname"><span class="pre">irc_RPL_ENDOFNAMES</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prefix</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">params</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.irc_RPL_ENDOFNAMES"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.irc_RPL_ENDOFNAMES" title="Link to this definition"></a></dt>
<dd><p>Called when the nicklist has finished being returned.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.pong">
<span class="sig-name descname"><span class="pre">pong</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">user</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">time</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.pong"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.pong" title="Link to this definition"></a></dt>
<dd><p>Called with the return timing from a PING.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>user</strong> (<em>str</em>) Name of user</p></li>
<li><p><strong>time</strong> (<em>float</em>) Ping time in secs.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.data_in">
<span class="sig-name descname"><span class="pre">data_in</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">text</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.data_in"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.data_in" title="Link to this definition"></a></dt>
<dd><p>Data IRC -&gt; Server.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>text</strong> (<em>str</em>) Ingoing text.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) Other data from protocol.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_channel">
<span class="sig-name descname"><span class="pre">send_channel</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_channel"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_channel" title="Link to this definition"></a></dt>
<dd><p>Send channel text to IRC channel (visible to all). Note that
we dont handle the “text” send (its rerouted to send_default
which does nothing) - this is because the IRC bot is a normal
session and would otherwise report anything that happens to it
to the IRC channel (such as it seeing server reload messages).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>text</strong> (<em>str</em>) Outgoing text</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_privmsg">
<span class="sig-name descname"><span class="pre">send_privmsg</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_privmsg"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_privmsg" title="Link to this definition"></a></dt>
<dd><p>Send message only to specific user.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>text</strong> (<em>str</em>) Outgoing text.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>user</strong> (<em>str</em>) the nick to send
privately to.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_request_nicklist">
<span class="sig-name descname"><span class="pre">send_request_nicklist</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_request_nicklist"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_request_nicklist" title="Link to this definition"></a></dt>
<dd><p>Send a request for the channel nicklist. The return (handled
by <strong>self.irc_RPL_ENDOFNAMES</strong>) will be sent back as a message
with type <a href="#id3"><span class="problematic" id="id4">**</span></a>nicklist.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_ping">
<span class="sig-name descname"><span class="pre">send_ping</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_ping"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_ping" title="Link to this definition"></a></dt>
<dd><p>Send a ping. The return (handled by <strong>self.pong</strong>) will be sent
back as a message of type ping.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_reconnect">
<span class="sig-name descname"><span class="pre">send_reconnect</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_reconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_reconnect" title="Link to this definition"></a></dt>
<dd><p>The server instructs us to rebuild the connection by force,
probably because the client silently lost connection.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBot.send_default">
<span class="sig-name descname"><span class="pre">send_default</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">args</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBot.send_default"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBot.send_default" title="Link to this definition"></a></dt>
<dd><p>Ignore other types of sends.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.server.portal.irc.</span></span><span class="sig-name descname"><span class="pre">IRCBotFactory</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sessionhandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">uid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">botname</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">network</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ssl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ReconnectingClientFactory</span></code></p>
<p>Creates instances of IRCBot, connecting with a staggered
increase in delay</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.initialDelay">
<span class="sig-name descname"><span class="pre">initialDelay</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.initialDelay" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.factor">
<span class="sig-name descname"><span class="pre">factor</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">1.5</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.factor" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.maxDelay">
<span class="sig-name descname"><span class="pre">maxDelay</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">60</span></em><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.maxDelay" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.__init__">
<span class="sig-name descname"><span class="pre">__init__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sessionhandler</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">uid</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">botname</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">channel</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">network</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ssl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.__init__" title="Link to this definition"></a></dt>
<dd><p>Storing some important protocol properties.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>sessionhandler</strong> (<a class="reference internal" href="evennia.server.sessionhandler.html#evennia.server.sessionhandler.SessionHandler" title="evennia.server.sessionhandler.SessionHandler"><em>SessionHandler</em></a>) Reference to the main Sessionhandler.</p>
</dd>
<dt class="field-even">Keyword Arguments<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>uid</strong> (<em>int</em>) Bot user id.</p></li>
<li><p><strong>botname</strong> (<em>str</em>) Bot name (seen in IRC channel).</p></li>
<li><p><strong>channel</strong> (<em>str</em>) IRC channel to connect to.</p></li>
<li><p><strong>network</strong> (<em>str</em>) Network address to connect to.</p></li>
<li><p><strong>port</strong> (<em>str</em>) Port of the network.</p></li>
<li><p><strong>ssl</strong> (<em>bool</em>) Indicates SSL connection.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.buildProtocol">
<span class="sig-name descname"><span class="pre">buildProtocol</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">addr</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.buildProtocol"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.buildProtocol" title="Link to this definition"></a></dt>
<dd><p>Build the protocol and assign it some properties.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>addr</strong> (<em>str</em>) Not used; using factory data.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.startedConnecting">
<span class="sig-name descname"><span class="pre">startedConnecting</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connector</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.startedConnecting"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.startedConnecting" title="Link to this definition"></a></dt>
<dd><p>Tracks reconnections for debugging.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>connector</strong> (<em>Connector</em>) Represents the connection.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.clientConnectionFailed">
<span class="sig-name descname"><span class="pre">clientConnectionFailed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connector</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reason</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.clientConnectionFailed"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionFailed" title="Link to this definition"></a></dt>
<dd><p>Called when Client failed to connect.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>connector</strong> (<em>Connection</em>) Represents the connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) The reason for the failure.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.clientConnectionLost">
<span class="sig-name descname"><span class="pre">clientConnectionLost</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">connector</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reason</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.clientConnectionLost"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionLost" title="Link to this definition"></a></dt>
<dd><p>Called when Client loses connection.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>connector</strong> (<em>Connection</em>) Represents the connection.</p></li>
<li><p><strong>reason</strong> (<em>str</em>) The reason for the failure.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.reconnect">
<span class="sig-name descname"><span class="pre">reconnect</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.reconnect"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.reconnect" title="Link to this definition"></a></dt>
<dd><p>Force a reconnection of the bot protocol. This requires
de-registering the session and then reattaching a new one,
otherwise you end up with an ever growing number of bot
sessions.</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.server.portal.irc.IRCBotFactory.start">
<span class="sig-name descname"><span class="pre">start</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.start"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.server.portal.irc.IRCBotFactory.start" title="Link to this definition"></a></dt>
<dd><p>Connect session to sessionhandler.</p>
</dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.server.portal.irc</a><ul>
<li><a class="reference internal" href="#evennia.server.portal.irc.parse_ansi_to_irc"><code class="docutils literal notranslate"><span class="pre">parse_ansi_to_irc()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.parse_irc_to_ansi"><code class="docutils literal notranslate"><span class="pre">parse_irc_to_ansi()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot"><code class="docutils literal notranslate"><span class="pre">IRCBot</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.lineRate"><code class="docutils literal notranslate"><span class="pre">IRCBot.lineRate</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.nickname"><code class="docutils literal notranslate"><span class="pre">IRCBot.nickname</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.logger"><code class="docutils literal notranslate"><span class="pre">IRCBot.logger</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.factory"><code class="docutils literal notranslate"><span class="pre">IRCBot.factory</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.channel"><code class="docutils literal notranslate"><span class="pre">IRCBot.channel</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.sourceURL"><code class="docutils literal notranslate"><span class="pre">IRCBot.sourceURL</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.signedOn"><code class="docutils literal notranslate"><span class="pre">IRCBot.signedOn()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.disconnect"><code class="docutils literal notranslate"><span class="pre">IRCBot.disconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.at_login"><code class="docutils literal notranslate"><span class="pre">IRCBot.at_login()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.privmsg"><code class="docutils literal notranslate"><span class="pre">IRCBot.privmsg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.action"><code class="docutils literal notranslate"><span class="pre">IRCBot.action()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.get_nicklist"><code class="docutils literal notranslate"><span class="pre">IRCBot.get_nicklist()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.irc_RPL_NAMREPLY"><code class="docutils literal notranslate"><span class="pre">IRCBot.irc_RPL_NAMREPLY()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.irc_RPL_ENDOFNAMES"><code class="docutils literal notranslate"><span class="pre">IRCBot.irc_RPL_ENDOFNAMES()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.pong"><code class="docutils literal notranslate"><span class="pre">IRCBot.pong()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.data_in"><code class="docutils literal notranslate"><span class="pre">IRCBot.data_in()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_channel"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_channel()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_privmsg"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_privmsg()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_request_nicklist"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_request_nicklist()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_ping"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_ping()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_reconnect"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_reconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBot.send_default"><code class="docutils literal notranslate"><span class="pre">IRCBot.send_default()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory</span></code></a><ul>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.initialDelay"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.initialDelay</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.factor"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.factor</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.maxDelay"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.maxDelay</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.__init__"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.__init__()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.buildProtocol"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.buildProtocol()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.startedConnecting"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.startedConnecting()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionFailed"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.clientConnectionFailed()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionLost"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.clientConnectionLost()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.reconnect"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.reconnect()</span></code></a></li>
<li><a class="reference internal" href="#evennia.server.portal.irc.IRCBotFactory.start"><code class="docutils literal notranslate"><span class="pre">IRCBotFactory.start()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.portal.grapevine.html"
title="previous chapter">evennia.server.portal.grapevine</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.portal.mccp.html"
title="next chapter">evennia.server.portal.mccp</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.portal.irc.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.portal.mccp.html" title="evennia.server.portal.mccp"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.portal.grapevine.html" title="evennia.server.portal.grapevine"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.server.portal.html" >evennia.server.portal</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.portal.irc</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>