<spanid="evennia-server-portal-package"></span><h1>evennia.server.portal package<aclass="headerlink"href="#module-evennia.server.portal"title="Permalink to this headline">¶</a></h1>
<divclass="section"id="submodules">
<h2>Submodules<aclass="headerlink"href="#submodules"title="Permalink to this headline">¶</a></h2>
<spanid="evennia-server-portal-amp-module"></span><h2>evennia.server.portal.amp module<aclass="headerlink"href="#module-evennia.server.portal.amp"title="Permalink to this headline">¶</a></h2>
<p>The AMP (Asynchronous Message Protocol)-communication commands and constants used by Evennia.</p>
<p>This module acts as a central place for AMP-servers and -clients to get commands to use.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AMPMultiConnectionProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize protocol with some things that need to be in place
already before connecting both on portal and server.</p>
<codeclass="sig-name descname">broadcast</code><spanclass="sig-paren">(</span><emclass="sig-param">command</em>, <emclass="sig-param">sessid</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.broadcast"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.broadcast"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data across the wire to all connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>command</strong> (<em>AMP Command</em>) – A protocol send command.</p></li>
<li><p><strong>sessid</strong> (<em>int</em>) – A unique Session id.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A deferred with an errback.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>deferred (deferred or None)</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>We swallow connection errors here. The reason is that during a
normal reload/shutdown there will almost always be cases where
either the portal or server shuts down before a message has
returned its (empty) return, triggering a connectionLost error
that is irrelevant. If a true connection error happens, the
portal will continuously try to reconnect, showing the problem
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when an AMP connection is (re-)established. AMP calls it on both sides.</p>
<codeclass="sig-name descname">dataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.dataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.dataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Handle non-AMP messages, such as HTTP communication.</p>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">packed_data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errback</code><spanclass="sig-paren">(</span><emclass="sig-param">e</em>, <emclass="sig-param">info</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.errback"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.errback"title="Permalink to this definition">¶</a></dt>
<dd><p>Error callback.
Handles errors to avoid dropping connections on server tracebacks.</p>
<codeclass="sig-name descname">makeConnection</code><spanclass="sig-paren">(</span><emclass="sig-param">transport</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.makeConnection"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.makeConnection"title="Permalink to this definition">¶</a></dt>
<dd><p>Swallow connection log message here. Copied from original
<codeclass="sig-name descname">receive_functioncall</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.receive_functioncall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.receive_functioncall"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_FunctionCall</code><spanclass="sig-paren">(</span><emclass="sig-param">modulepath</em>, <emclass="sig-param">functionname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AMPMultiConnectionProtocol.send_FunctionCall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AMPMultiConnectionProtocol.send_FunctionCall"title="Permalink to this definition">¶</a></dt>
<dd><p>Access method called by either process. This will call an arbitrary
function on the other process (On Portal if calling from Server and
vice versa).</p>
<dl>
<dt>Inputs:</dt><dd><p>modulepath (str) - python path to module holding function to call
functionname (str) - name of function in given module
<ahref="#id1"><spanclass="problematic"id="id2">*</span></a>args, <ahref="#id3"><spanclass="problematic"id="id4">**</span></a>kwargs will be used as arguments/keyword args for the</p>
<blockquote>
<div><p>remote function call</p>
</div></blockquote>
</dd>
</dl>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>A deferred that fires with the return value of the remote
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AdminPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AdminPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'packed_data', <evennia.server.portal.amp.Compressed object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'AdminPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'AdminPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminPortal2Server.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">AdminServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#AdminServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'packed_data', <evennia.server.portal.amp.Compressed object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'AdminServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'AdminServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.AdminServer2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.amp.Compressed">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">Compressed</code><spanclass="sig-paren">(</span><emclass="sig-param">optional=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">fromBox</code><spanclass="sig-paren">(</span><emclass="sig-param">name</em>, <emclass="sig-param">strings</em>, <emclass="sig-param">objects</em>, <emclass="sig-param">proto</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.fromBox"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.fromBox"title="Permalink to this definition">¶</a></dt>
<dd><p>Converts from box string representation to python. We read back too-long batched data and
<codeclass="sig-name descname">fromString</code><spanclass="sig-paren">(</span><emclass="sig-param">inString</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.fromString"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.fromString"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert (decompress) from the string-representation on the wire to Python.</p>
<codeclass="sig-name descname">toBox</code><spanclass="sig-paren">(</span><emclass="sig-param">name</em>, <emclass="sig-param">strings</em>, <emclass="sig-param">objects</em>, <emclass="sig-param">proto</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.toBox"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.toBox"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert from python object to string box representation.
we break up too-long data snippets into multiple batches here.</p>
<codeclass="sig-name descname">toString</code><spanclass="sig-paren">(</span><emclass="sig-param">inObject</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#Compressed.toString"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.Compressed.toString"title="Permalink to this definition">¶</a></dt>
<dd><p>Convert to send as a bytestring on the wire, with compression.</p>
<p>Note: In Py3 this is really a byte stream.</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.amp.FunctionCall">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">FunctionCall</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#FunctionCall"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'FunctionCall'</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'FunctionCall'</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = [(b'result', <twisted.protocols.amp.String object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.FunctionCall.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgLauncher2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgLauncher2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgLauncher2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgLauncher2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'packed_data', <evennia.server.portal.amp.Compressed object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = b'MsgPortal2Server'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgPortal2Server.reverseErrors"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgServer2Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgServer2Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'packed_data', <evennia.server.portal.amp.Compressed object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.errors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgServer2Portal'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = []</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgServer2Portal.reverseErrors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.amp.MsgStatus">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">MsgStatus</code><spanclass="sig-paren">(</span><emclass="sig-param">**kw</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#MsgStatus"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">allErrors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.allErrors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">arguments</code><emclass="property"> = [(b'status', <twisted.protocols.amp.String object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.arguments"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">commandName</code><emclass="property"> = b'MsgStatus'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.commandName"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">errors</code><emclass="property"> = {<class 'Exception'>: b'EXCEPTION'}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.errors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.server.portal.amp.MsgStatus.key">
<codeclass="sig-name descname">key</code><emclass="property"> = 'MsgStatus'</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.key"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">response</code><emclass="property"> = [(b'status', <twisted.protocols.amp.String object>)]</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.response"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reverseErrors</code><emclass="property"> = {b'EXCEPTION': <class 'Exception'>}</em><aclass="headerlink"href="#evennia.server.portal.amp.MsgStatus.reverseErrors"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.amp._get_logger">
<codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">_get_logger</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#_get_logger"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp._get_logger"title="Permalink to this definition">¶</a></dt>
<dd><p>Delay import of logger until absolutely necessary</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.amp.dumps">
<codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">dumps</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#dumps"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.dumps"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.amp.loads">
<codeclass="sig-prename descclassname">evennia.server.portal.amp.</code><codeclass="sig-name descname">loads</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp.html#loads"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp.loads"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-portal-amp-server-module"></span><h2>evennia.server.portal.amp_server module<aclass="headerlink"href="#module-evennia.server.portal.amp_server"title="Permalink to this headline">¶</a></h2>
<p>The Evennia Portal service acts as an AMP-server, handling AMP
communication to the AMP clients connecting to it (by default
these are the Evennia Server and the evennia launcher).</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">AMPServerFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">portal</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">portal</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the factory. This is called as the Portal service starts.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>portal</strong> (<aclass="reference internal"href="#evennia.server.portal.portal.Portal"title="evennia.server.portal.portal.Portal"><em>Portal</em></a>) – The Evennia Portal service instance.</p></li>
<li><p><strong>protocol</strong> (<em>Protocol</em>) – The protocol the factory creates
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">addr</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.buildProtocol"title="Permalink to this definition">¶</a></dt>
<dd><p>Start a new connection, and store it on the service object.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>addr</strong> (<em>str</em>) – Connection address. Not used.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>The created protocol.</p>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerFactory.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.logPrefix"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerFactory.noisy"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">AMPServerProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>Set up a simple callback mechanism to let the amp-server wait for a connection to close.</p>
<codeclass="sig-name descname">data_to_server</code><spanclass="sig-paren">(</span><emclass="sig-param">command</em>, <emclass="sig-param">sessid</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.data_to_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.data_to_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data across the wire to the Server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>command</strong> (<em>AMP Command</em>) – A protocol send command.</p></li>
<li><p><strong>sessid</strong> (<em>int</em>) – A unique Session id.</p></li>
<li><p><strong>kwargs</strong> (<em>any</em>) – Data to send. This will be pickled.</p></li>
</ul>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>A deferred with an errback.</p>
</dd>
<dtclass="field-odd">Return type</dt>
<ddclass="field-odd"><p>deferred (deferred or None)</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Data will be sent across the wire pickled as a tuple
<codeclass="sig-name descname">get_status</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.get_status"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.get_status"title="Permalink to this definition">¶</a></dt>
<dd><p>Return status for the Evennia infrastructure.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>The portal/server status and pids</dt><dd><p>(portal_live, server_live, portal_PID, server_PID).</p>
<codeclass="sig-name descname">portal_receive_adminserver2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_adminserver2portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_launcher2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_launcher2portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_server2portal</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_server2portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">portal_receive_status</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.portal_receive_status"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_AdminPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">operation=''</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_AdminPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.send_AdminPortal2Server"title="Permalink to this definition">¶</a></dt>
<dd><p>Send Admin instructions from the Portal to the Server.
<li><p><strong>operation</strong> (<em>char</em><em>, </em><em>optional</em>) – Identifier for the server operation, as defined by the
global variables in <cite>evennia/server/amp.py</cite>.</p></li>
<li><p><strong>data</strong> (<em>str</em><em> or </em><em>dict</em><em>, </em><em>optional</em>) – Data used in the administrative operation.</p></li>
<codeclass="sig-name descname">send_MsgPortal2Server</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_MsgPortal2Server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.send_MsgPortal2Server"title="Permalink to this definition">¶</a></dt>
<dd><p>Access method called by the Portal and executed on the Portal.</p>
<codeclass="sig-name descname">send_Status2Launcher</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.send_Status2Launcher"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.send_Status2Launcher"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">start_server</code><spanclass="sig-paren">(</span><emclass="sig-param">server_twistd_cmd</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.start_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.start_server"title="Permalink to this definition">¶</a></dt>
<dd><p>(Re-)Launch the Evennia server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>server_twisted_cmd</strong> (<em>list</em>) – The server start instruction
<codeclass="sig-name descname">stop_server</code><spanclass="sig-paren">(</span><emclass="sig-param">mode='shutdown'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.stop_server"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.stop_server"title="Permalink to this definition">¶</a></dt>
<dd><p>Shut down server in one or more modes.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>mode</strong> (<em>str</em>) – One of ‘shutdown’, ‘reload’ or ‘reset’.</p>
<codeclass="sig-name descname">wait_for_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">callback</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.wait_for_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.wait_for_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Add a callback for when this connection is lost.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>callback</strong> (<em>callable</em>) – Will be called with <ahref="#id5"><spanclass="problematic"id="id6">*</span></a>args, <ahref="#id7"><spanclass="problematic"id="id8">**</span></a>kwargs
<codeclass="sig-name descname">wait_for_server_connect</code><spanclass="sig-paren">(</span><emclass="sig-param">callback</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#AMPServerProtocol.wait_for_server_connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.AMPServerProtocol.wait_for_server_connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Add a callback for when the Server is sure to have connected.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>callback</strong> (<em>callable</em>) – Will be called with <ahref="#id9"><spanclass="problematic"id="id10">*</span></a>args, <ahref="#id11"><spanclass="problematic"id="id12">**</span></a>kwargs
once the Server handshake with Portal is complete.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">_is_windows</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#_is_windows"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server._is_windows"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.amp_server.getenv">
<codeclass="sig-prename descclassname">evennia.server.portal.amp_server.</code><codeclass="sig-name descname">getenv</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/amp_server.html#getenv"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.amp_server.getenv"title="Permalink to this definition">¶</a></dt>
<dd><p>Get current environment and add PYTHONPATH.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Environment global dict.</p>
<spanid="evennia-server-portal-grapevine-module"></span><h2>evennia.server.portal.grapevine module<aclass="headerlink"href="#module-evennia.server.portal.grapevine"title="Permalink to this headline">¶</a></h2>
<p>Grapevine network connection</p>
<p>This is an implementation of the Grapevine Websocket protocol v 1.0.0 as
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.grapevine.</code><codeclass="sig-name descname">GrapevineClient</code><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">_send_json</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient._send_json"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient._send_json"title="Permalink to this definition">¶</a></dt>
<dd><p>Send (json-) data to client.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>data</strong> (<em>str</em>) – Text to send.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.at_login"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for the engine to call in order to
disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Motivation for the disconnection.</p>
<codeclass="sig-name descname">onClose</code><spanclass="sig-paren">(</span><emclass="sig-param">wasClean</em>, <emclass="sig-param">code=None</em>, <emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.onClose"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.onClose"title="Permalink to this definition">¶</a></dt>
<dd><p>This is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>wasClean</strong> (<em>bool</em>) –<codeclass="docutils literal notranslate"><spanclass="pre">True</span></code> if the WebSocket was closed cleanly.</p></li>
<li><p><strong>code</strong> (<em>int</em><em> or </em><em>None</em>) – Close status as sent by the WebSocket peer.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Close reason as sent by the WebSocket peer.</p></li>
<codeclass="sig-name descname">onMessage</code><spanclass="sig-paren">(</span><emclass="sig-param">payload</em>, <emclass="sig-param">isBinary</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.onMessage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.onMessage"title="Permalink to this definition">¶</a></dt>
<dd><p>Callback fired when a complete WebSocket message was received.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>payload</strong> (<em>bytes</em>) – The WebSocket message received.</p></li>
<li><p><strong>isBinary</strong> (<em>bool</em>) – Flag indicating whether payload is binary or
<codeclass="sig-name descname">onOpen</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.onOpen"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.onOpen"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_authenticate</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_authenticate"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_authenticate"title="Permalink to this definition">¶</a></dt>
<dd><p>Send grapevine authentication. This should be send immediately upon connection.</p>
<codeclass="sig-name descname">send_channel</code><spanclass="sig-paren">(</span><emclass="sig-param">text</em>, <emclass="sig-param">channel</em>, <emclass="sig-param">sender</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_channel"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_channel"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text type Evennia -> grapevine</p>
<p>This is the channels/send message type</p>
<p>Use with session.msg(channel=(message, channel, sender))</p>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_default"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_heartbeat</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_heartbeat"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_heartbeat"title="Permalink to this definition">¶</a></dt>
<dd><p>Send heartbeat to remote grapevine server.</p>
<codeclass="sig-name descname">send_subscribe</code><spanclass="sig-paren">(</span><emclass="sig-param">channelname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_subscribe"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_subscribe"title="Permalink to this definition">¶</a></dt>
<dd><p>Subscribe to new grapevine channel</p>
<p>Use with session.msg(subscribe=”channelname”)</p>
<codeclass="sig-name descname">send_unsubscribe</code><spanclass="sig-paren">(</span><emclass="sig-param">channelname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#GrapevineClient.send_unsubscribe"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.GrapevineClient.send_unsubscribe"title="Permalink to this definition">¶</a></dt>
<dd><p>Un-subscribe to a grapevine channel</p>
<p>Use with session.msg(unsubscribe=”channelname”)</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.grapevine.</code><codeclass="sig-name descname">RestartingWebsocketServerFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>In addition to all arguments to the constructor of
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">addr</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.buildProtocol"title="Permalink to this definition">¶</a></dt>
<dd><p>Build new instance of protocol</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>addr</strong> (<em>str</em>) – Not used, using factory/settings data</p>
<codeclass="sig-name descname">clientConnectionFailed</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.clientConnectionFailed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.clientConnectionFailed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client failed to connect.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">clientConnectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.clientConnectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.clientConnectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client loses connection.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">factor</code><emclass="property"> = 1.5</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.factor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">initialDelay</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.initialDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">maxDelay</code><emclass="property"> = 60</em><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.maxDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reconnect</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.reconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.reconnect"title="Permalink 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
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.start"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">startedConnecting</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/grapevine.html#RestartingWebsocketServerFactory.startedConnecting"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.grapevine.RestartingWebsocketServerFactory.startedConnecting"title="Permalink to this definition">¶</a></dt>
<dd><p>Tracks reconnections for debugging.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>connector</strong> (<em>Connector</em>) – Represents the connection.</p>
<spanid="evennia-server-portal-irc-module"></span><h2>evennia.server.portal.irc module<aclass="headerlink"href="#module-evennia.server.portal.irc"title="Permalink to this headline">¶</a></h2>
<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>
<dlclass="class">
<dtid="evennia.server.portal.irc.IRCBot">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.irc.</code><codeclass="sig-name descname">IRCBot</code><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot"title="Permalink to this definition">¶</a></dt>
<p>An IRC bot that tracks activity in a channel as well
as sends text to it when prompted</p>
<dlclass="method">
<dtid="evennia.server.portal.irc.IRCBot.action">
<codeclass="sig-name descname">action</code><spanclass="sig-paren">(</span><emclass="sig-param">user</em>, <emclass="sig-param">channel</em>, <emclass="sig-param">msg</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.action"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.action"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when an action is detected in channel.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.at_login"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.server.portal.irc.IRCBot.channel">
<codeclass="sig-name descname">channel</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.channel"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.irc.IRCBot.data_in">
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">text=None</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=''</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by sessionhandler to disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for the disconnect.</p>
</dd>
</dl>
</dd></dl>
<dlclass="attribute">
<dtid="evennia.server.portal.irc.IRCBot.factory">
<codeclass="sig-name descname">factory</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.factory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_nicklist</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.get_nicklist"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.get_nicklist"title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve name list from the channel. The return
<codeclass="sig-name descname">irc_RPL_ENDOFNAMES</code><spanclass="sig-paren">(</span><emclass="sig-param">prefix</em>, <emclass="sig-param">params</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.irc_RPL_ENDOFNAMES"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.irc_RPL_ENDOFNAMES"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the nicklist has finished being returned.</p>
<codeclass="sig-name descname">irc_RPL_NAMREPLY</code><spanclass="sig-paren">(</span><emclass="sig-param">prefix</em>, <emclass="sig-param">params</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.irc_RPL_NAMREPLY"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.irc_RPL_NAMREPLY"title="Permalink to this definition">¶</a></dt>
<dd><p>“Handles IRC NAME request returns (nicklist)</p>
<codeclass="sig-name descname">lineRate</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.lineRate"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="attribute">
<dtid="evennia.server.portal.irc.IRCBot.logger">
<codeclass="sig-name descname">logger</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.logger"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">nickname</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.nickname"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.irc.IRCBot.pong">
<codeclass="sig-name descname">pong</code><spanclass="sig-paren">(</span><emclass="sig-param">user</em>, <emclass="sig-param">time</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.pong"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.pong"title="Permalink to this definition">¶</a></dt>
<dd><p>Called with the return timing from a PING.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<dlclass="method">
<dtid="evennia.server.portal.irc.IRCBot.privmsg">
<codeclass="sig-name descname">privmsg</code><spanclass="sig-paren">(</span><emclass="sig-param">user</em>, <emclass="sig-param">channel</em>, <emclass="sig-param">msg</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.privmsg"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.privmsg"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the connected channel receives a message.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">send_channel</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_channel"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_channel"title="Permalink to this definition">¶</a></dt>
<dd><p>Send channel text to IRC channel (visible to all). Note that
we don’t handle the “text” send (it’s 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>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_default"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_ping</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_ping"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_ping"title="Permalink to this definition">¶</a></dt>
<dd><p>Send a ping. The return (handled by <cite>self.pong</cite>) will be sent
<codeclass="sig-name descname">send_privmsg</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_privmsg"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_privmsg"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_reconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_reconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_reconnect"title="Permalink 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>
<codeclass="sig-name descname">send_request_nicklist</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.send_request_nicklist"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.send_request_nicklist"title="Permalink to this definition">¶</a></dt>
<dd><p>Send a request for the channel nicklist. The return (handled
by <cite>self.irc_RPL_ENDOFNAMES</cite>) will be sent back as a message
with type <ahref="#id13"><spanclass="problematic"id="id14">`</span></a>nicklist’.</p>
<codeclass="sig-name descname">signedOn</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBot.signedOn"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.signedOn"title="Permalink 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>
<codeclass="sig-name descname">sourceURL</code><emclass="property"> = 'http://code.evennia.com'</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBot.sourceURL"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.irc.IRCBotFactory">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.irc.</code><codeclass="sig-name descname">IRCBotFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">uid=None</em>, <emclass="sig-param">botname=None</em>, <emclass="sig-param">channel=None</em>, <emclass="sig-param">network=None</em>, <emclass="sig-param">port=None</em>, <emclass="sig-param">ssl=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">uid=None</em>, <emclass="sig-param">botname=None</em>, <emclass="sig-param">channel=None</em>, <emclass="sig-param">network=None</em>, <emclass="sig-param">port=None</em>, <emclass="sig-param">ssl=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Storing some important protocol properties.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>sessionhandler</strong> (<aclass="reference internal"href="evennia.server.html#evennia.server.sessionhandler.SessionHandler"title="evennia.server.sessionhandler.SessionHandler"><em>SessionHandler</em></a>) – Reference to the main Sessionhandler.</p>
<codeclass="sig-name descname">buildProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">addr</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.buildProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.buildProtocol"title="Permalink to this definition">¶</a></dt>
<dd><p>Build the protocol and assign it some properties.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>addr</strong> (<em>str</em>) – Not used; using factory data.</p>
<codeclass="sig-name descname">clientConnectionFailed</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.clientConnectionFailed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionFailed"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client failed to connect.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">clientConnectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em>, <emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.clientConnectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.clientConnectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when Client loses connection.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="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>
<codeclass="sig-name descname">factor</code><emclass="property"> = 1.5</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.factor"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">initialDelay</code><emclass="property"> = 1</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.initialDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">maxDelay</code><emclass="property"> = 60</em><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.maxDelay"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">reconnect</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.reconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.reconnect"title="Permalink 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
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.start"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">startedConnecting</code><spanclass="sig-paren">(</span><emclass="sig-param">connector</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#IRCBotFactory.startedConnecting"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.IRCBotFactory.startedConnecting"title="Permalink to this definition">¶</a></dt>
<dd><p>Tracks reconnections for debugging.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>connector</strong> (<em>Connector</em>) – Represents the connection.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.irc.</code><codeclass="sig-name descname">parse_ansi_to_irc</code><spanclass="sig-paren">(</span><emclass="sig-param">string</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#parse_ansi_to_irc"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.parse_ansi_to_irc"title="Permalink to this definition">¶</a></dt>
<dd><p>Parse <ahref="#id15"><spanclass="problematic"id="id16">|</span></a>-type syntax and replace with IRC color markers</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>string</strong> (<em>str</em>) – String to parse for ANSI colors.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>String with replaced ANSI colors.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.irc.</code><codeclass="sig-name descname">parse_irc_to_ansi</code><spanclass="sig-paren">(</span><emclass="sig-param">string</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/irc.html#parse_irc_to_ansi"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.irc.parse_irc_to_ansi"title="Permalink to this definition">¶</a></dt>
<dd><p>Parse IRC mIRC color syntax and replace with Evennia ANSI color markers</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>string</strong> (<em>str</em>) – String to parse for IRC colors.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>String with replaced IRC colors.</p>
<spanid="evennia-server-portal-mccp-module"></span><h2>evennia.server.portal.mccp module<aclass="headerlink"href="#module-evennia.server.portal.mccp"title="Permalink to this headline">¶</a></h2>
<p>MCCP - Mud Client Compression Protocol</p>
<p>This implements the MCCP v2 telnet protocol as per
<aclass="reference external"href="http://tintin.sourceforge.net/mccp/">http://tintin.sourceforge.net/mccp/</a>. MCCP allows for the server to
compress data when sending to supporting clients, reducing bandwidth
by 70-90%.. The compression is done using Python’s builtin zlib
library. If the client doesn’t support MCCP, server sends uncompressed
as normal. Note: On modern hardware you are not likely to notice the
effect of MCCP unless you have extremely heavy traffic or sits on a
terribly slow connection.</p>
<p>This protocol is implemented by the telnet protocol importing
mccp_compress and calling it from its write methods.</p>
<dlclass="class">
<dtid="evennia.server.portal.mccp.Mccp">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.mccp.</code><codeclass="sig-name descname">Mccp</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>initialize MCCP by storing protocol on
ourselves and calling the client to see if
it supports MCCP. Sets callbacks to
start zlib compression in that case.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.mccp.Mccp.do_mccp">
<codeclass="sig-name descname">do_mccp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.do_mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.do_mccp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">no_mccp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#Mccp.no_mccp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.Mccp.no_mccp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called if client doesn’t support mccp or chooses to turn it off.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.mccp.</code><codeclass="sig-name descname">mccp_compress</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em>, <emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mccp.html#mccp_compress"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mccp.mccp_compress"title="Permalink to this definition">¶</a></dt>
<dd><p>Handles zlib compression, if applicable.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>data</strong> (<em>str</em>) – Incoming data to compress.</p>
<spanid="evennia-server-portal-mssp-module"></span><h2>evennia.server.portal.mssp module<aclass="headerlink"href="#module-evennia.server.portal.mssp"title="Permalink to this headline">¶</a></h2>
<p>MSSP - Mud Server Status Protocol</p>
<p>This implements the MSSP telnet protocol as per
<aclass="reference external"href="http://tintin.sourceforge.net/mssp/">http://tintin.sourceforge.net/mssp/</a>. MSSP allows web portals and
listings to have their crawlers find the mud and automatically
extract relevant information about it, such as genre, how many
active players and so on.</p>
<dlclass="class">
<dtid="evennia.server.portal.mssp.Mssp">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.mssp.</code><codeclass="sig-name descname">Mssp</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp"title="Permalink to this definition">¶</a></dt>
<p>Implements the MSSP protocol. Add this to a variable on the telnet
protocol to set it up.</p>
<dlclass="method">
<dtid="evennia.server.portal.mssp.Mssp.__init__">
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>initialize MSSP by storing protocol on ourselves and calling
the client to see if it supports MSSP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.mssp.Mssp.do_mssp">
<codeclass="sig-name descname">do_mssp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp.do_mssp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp.do_mssp"title="Permalink to this definition">¶</a></dt>
<dd><p>Negotiate all the information.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">get_player_count</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp.get_player_count"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp.get_player_count"title="Permalink to this definition">¶</a></dt>
<dd><p>Get number of logged-in players.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>The number of players in the MUD.</p>
<codeclass="sig-name descname">get_uptime</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp.get_uptime"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp.get_uptime"title="Permalink to this definition">¶</a></dt>
<dd><p>Get how long the portal has been online (reloads are not counted).</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>Number of seconds of uptime.</p>
</dd>
<dtclass="field-even">Return type</dt>
<ddclass="field-even"><p>uptime (int)</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.mssp.Mssp.no_mssp">
<codeclass="sig-name descname">no_mssp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mssp.html#Mssp.no_mssp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mssp.Mssp.no_mssp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when mssp is not requested. This is the normal
operation.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<spanid="evennia-server-portal-mxp-module"></span><h2>evennia.server.portal.mxp module<aclass="headerlink"href="#module-evennia.server.portal.mxp"title="Permalink to this headline">¶</a></h2>
<p>MXP - Mud eXtension Protocol.</p>
<p>Partial implementation of the MXP protocol.
The MXP protocol allows more advanced formatting options for telnet clients
that supports it (mudlet, zmud, mushclient are a few)</p>
<p>This only implements the SEND tag.</p>
<p>More information can be found on the following links:
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.mxp.</code><codeclass="sig-name descname">Mxp</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mxp.html#Mxp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mxp.Mxp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mxp.html#Mxp.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mxp.Mxp.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initializes the protocol by checking if the client supports it.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.mxp.Mxp.do_mxp">
<codeclass="sig-name descname">do_mxp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mxp.html#Mxp.do_mxp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mxp.Mxp.do_mxp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the Client reports to support MXP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.mxp.Mxp.no_mxp">
<codeclass="sig-name descname">no_mxp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mxp.html#Mxp.no_mxp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mxp.Mxp.no_mxp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the Client reports to not support MXP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.mxp.mxp_parse">
<codeclass="sig-prename descclassname">evennia.server.portal.mxp.</code><codeclass="sig-name descname">mxp_parse</code><spanclass="sig-paren">(</span><emclass="sig-param">text</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/mxp.html#mxp_parse"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.mxp.mxp_parse"title="Permalink to this definition">¶</a></dt>
<dd><p>Replaces links to the correct format for MXP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – The text to parse.</p>
<spanid="evennia-server-portal-naws-module"></span><h2>evennia.server.portal.naws module<aclass="headerlink"href="#module-evennia.server.portal.naws"title="Permalink to this headline">¶</a></h2>
<p>NAWS allows telnet clients to report their current window size to the
client and update it when the size changes</p>
<dlclass="class">
<dtid="evennia.server.portal.naws.Naws">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.naws.</code><codeclass="sig-name descname">Naws</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/naws.html#Naws"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.naws.Naws"title="Permalink to this definition">¶</a></dt>
<p>Implements the NAWS protocol. Add this to a variable on the telnet
protocol to set it up.</p>
<dlclass="method">
<dtid="evennia.server.portal.naws.Naws.__init__">
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/naws.html#Naws.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.naws.Naws.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>initialize NAWS by storing protocol on ourselves and calling
the client to see if it supports NAWS.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.naws.Naws.do_naws">
<codeclass="sig-name descname">do_naws</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/naws.html#Naws.do_naws"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.naws.Naws.do_naws"title="Permalink to this definition">¶</a></dt>
<dd><p>Client wants to negotiate all the NAWS information.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">negotiate_sizes</code><spanclass="sig-paren">(</span><emclass="sig-param">options</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/naws.html#Naws.negotiate_sizes"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.naws.Naws.negotiate_sizes"title="Permalink to this definition">¶</a></dt>
<dd><p>Step through the NAWS handshake.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>list</em>) – The incoming NAWS options.</p>
</dd>
</dl>
</dd></dl>
<dlclass="method">
<dtid="evennia.server.portal.naws.Naws.no_naws">
<codeclass="sig-name descname">no_naws</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/naws.html#Naws.no_naws"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.naws.Naws.no_naws"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when client is not reporting NAWS. This is the normal
operation.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<spanid="evennia-server-portal-portal-module"></span><h2>evennia.server.portal.portal module<aclass="headerlink"href="#module-evennia.server.portal.portal"title="Permalink to this headline">¶</a></h2>
<p>This module implements the main Evennia server process, the core of
the game engine.</p>
<p>This module should be started with the ‘twistd’ executable since it
sets up all the networking features. (this is done automatically
by game/evennia.py).</p>
<dlclass="class">
<dtid="evennia.server.portal.portal.Portal">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.portal.</code><codeclass="sig-name descname">Portal</code><spanclass="sig-paren">(</span><emclass="sig-param">application</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Portal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Portal"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">application</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Portal.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Portal.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Setup the server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>application</strong> (<em>Application</em>) – An instantiated Twisted application</p>
<codeclass="sig-name descname">_get_backup_server_twistd_cmd</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Portal._get_backup_server_twistd_cmd"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Portal._get_backup_server_twistd_cmd"title="Permalink to this definition">¶</a></dt>
<dd><p>For interactive Portal mode there is no way to get the server cmdline from the launcher, so
we need to guess it here (it’s very likely to not change)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p>An instruction for starting the server, to pass to Popen.</p>
<codeclass="sig-name descname">get_info_dict</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Portal.get_info_dict"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Portal.get_info_dict"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">shutdown</code><spanclass="sig-paren">(</span><emclass="sig-param">_reactor_stopping=False</em>, <emclass="sig-param">_stop_server=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Portal.shutdown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Portal.shutdown"title="Permalink to this definition">¶</a></dt>
<dd><p>Shuts down the server from inside it.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>_reactor_stopping</strong> (<em>bool</em><em>, </em><em>optional</em>) – This is set if server
is already in the process of shutting down; in this case
we don’t need to stop it again.</p></li>
<li><p><strong>_stop_server</strong> (<em>bool</em><em>, </em><em>optional</em>) – Only used in portal-interactive mode;
makes sure to stop the Server cleanly.</p></li>
</ul>
</dd>
</dl>
<p>Note that restarting (regardless of the setting) will not work
if the Portal is currently running in daemon mode. In that
case it always needs to be restarted manually.</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.portal.Websocket">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.portal.</code><codeclass="sig-name descname">Websocket</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portal.html#Websocket"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portal.Websocket"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-portal-portalsessionhandler-module"></span><h2>evennia.server.portal.portalsessionhandler module<aclass="headerlink"href="#module-evennia.server.portal.portalsessionhandler"title="Permalink to this headline">¶</a></h2>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.portalsessionhandler.</code><codeclass="sig-name descname">PortalSessionHandler</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">announce_all</code><spanclass="sig-paren">(</span><emclass="sig-param">message</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.announce_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.announce_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Send message to all connected sessions.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>message</strong> (<em>str</em>) – Message to relay.</p>
<codeclass="sig-name descname">at_server_connection</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.at_server_connection"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.at_server_connection"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when the Portal establishes connection with the Server.
At this point, the AMP connection is already established.</p>
<codeclass="sig-name descname">connect</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by protocol at first connect. This adds a not-yet
authenticated session using an ever-increasing counter for
sessid.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) – The Session connecting.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>We implement a throttling mechanism here to limit the speed at
which new connections are accepted - this is both a stop
against DoS attacks as well as helps using the Dummyrunner
tester with a large number of connector dummies.</p>
<codeclass="sig-name descname">count_loggedin</code><spanclass="sig-paren">(</span><emclass="sig-param">include_unloggedin=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.count_loggedin"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.count_loggedin"title="Permalink to this definition">¶</a></dt>
<dd><p>Count loggedin connections, alternatively count all connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>include_unloggedin</strong> (<em>bool</em>) – Also count sessions that have</p></li>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by portal sessions for relaying data coming
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server for having the portal relay messages and data
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called from portal when the connection is closed from the
portal side.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<em>PortalSession</em>) – Session to disconnect.</p></li>
<li><p><strong>delete</strong> (<em>bool</em><em>, </em><em>optional</em>) – Delete the session from
<codeclass="sig-name descname">disconnect_all</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnect all sessions, informing the Server.</p>
<codeclass="sig-name descname">generate_sessid</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.generate_sessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.generate_sessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Simply generates a sessid that’s guaranteed to be unique for this Portal run.</p>
<codeclass="sig-name descname">server_connect</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol_path=''</em>, <emclass="sig-param">config={}</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_connect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_connect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server to force the initialization of a new protocol
instance. Server wants this instance to get a unique sessid
and to be connected back as normal. This is used to initiate
irc/rss etc connections.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>protocol_path</strong> (<em>st</em>) – Full python path to the class factory
<codeclass="sig-name descname">server_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">reason=''</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server to force a disconnect by sessid.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>session</strong> (<em>portalsession</em>) – Session to disconnect.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Motivation for disconnect.</p></li>
<codeclass="sig-name descname">server_disconnect_all</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=''</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_disconnect_all"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_disconnect_all"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by server when forcing a clean disconnect for everyone.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Motivation for disconnect.</p>
<codeclass="sig-name descname">server_logged_in</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em>, <emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_logged_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_logged_in"title="Permalink to this definition">¶</a></dt>
<dd><p>The server tells us that the session has been authenticated.
<codeclass="sig-name descname">server_session_sync</code><spanclass="sig-paren">(</span><emclass="sig-param">serversessions</em>, <emclass="sig-param">clean=True</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.server_session_sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.server_session_sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Server wants to save data to the portal, maybe because it’s
about to shut down. We don’t overwrite any sessions here, just
update them in-place.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>serversessions</strong> (<em>dict</em>) –<p>This is a dictionary</p>
<codeclass="sig-name descname">sessions_from_csessid</code><spanclass="sig-paren">(</span><emclass="sig-param">csessid</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.sessions_from_csessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sessions_from_csessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Given a session id, retrieve the session (this is primarily
<codeclass="sig-name descname">sync</code><spanclass="sig-paren">(</span><emclass="sig-param">session</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/portalsessionhandler.html#PortalSessionHandler.sync"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler.sync"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by the protocol of an already connected session. This
can be used to sync the session info in a delayed manner, such
as when negotiation and handshakes are delayed.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>session</strong> (<em>PortalSession</em>) – Session to sync.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.portalsessionhandler.</code><codeclass="sig-name descname">_PORTAL_SESSION_HANDLER_CLASS</code><aclass="headerlink"href="#evennia.server.portal.portalsessionhandler._PORTAL_SESSION_HANDLER_CLASS"title="Permalink to this definition">¶</a></dt>
<dd><p>alias of <aclass="reference internal"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler"title="evennia.server.portal.portalsessionhandler.PortalSessionHandler"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">evennia.server.portal.portalsessionhandler.PortalSessionHandler</span></code></a></p>
<spanid="evennia-server-portal-rss-module"></span><h2>evennia.server.portal.rss module<aclass="headerlink"href="#module-evennia.server.portal.rss"title="Permalink to this headline">¶</a></h2>
<p>RSS parser for Evennia</p>
<p>This connects an RSS feed to an in-game Evennia channel, sending messages
to the channel whenever the feed updates.</p>
<dlclass="class">
<dtid="evennia.server.portal.rss.RSSBotFactory">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.rss.</code><codeclass="sig-name descname">RSSBotFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">uid=None</em>, <emclass="sig-param">url=None</em>, <emclass="sig-param">rate=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSBotFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSBotFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">sessionhandler</em>, <emclass="sig-param">uid=None</em>, <emclass="sig-param">url=None</em>, <emclass="sig-param">rate=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSBotFactory.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSBotFactory.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the bot.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>sessionhandler</strong> (<aclass="reference internal"href="#evennia.server.portal.portalsessionhandler.PortalSessionHandler"title="evennia.server.portal.portalsessionhandler.PortalSessionHandler"><em>PortalSessionHandler</em></a>) – The main sessionhandler object.</p></li>
<li><p><strong>uid</strong> (<em>int</em>) – User id for the bot.</p></li>
<li><p><strong>url</strong> (<em>str</em>) – The RSS URL.</p></li>
<li><p><strong>rate</strong> (<em>int</em>) – How often for the RSS to request the latest RSS entries.</p></li>
<codeclass="sig-name descname">start</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSBotFactory.start"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSBotFactory.start"title="Permalink to this definition">¶</a></dt>
<dd><p>Called by portalsessionhandler. Starts the bot.</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.rss.RSSReader">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.rss.</code><codeclass="sig-name descname">RSSReader</code><spanclass="sig-paren">(</span><emclass="sig-param">factory</em>, <emclass="sig-param">url</em>, <emclass="sig-param">rate</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">factory</em>, <emclass="sig-param">url</em>, <emclass="sig-param">rate</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the reader.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>factory</strong> (<em>RSSFactory</em>) – The protocol factory.</p></li>
<li><p><strong>url</strong> (<em>str</em>) – The RSS url.</p></li>
<li><p><strong>rate</strong> (<em>int</em>) – The seconds between RSS lookups.</p></li>
<codeclass="sig-name descname">_callback</code><spanclass="sig-paren">(</span><emclass="sig-param">new_entries</em>, <emclass="sig-param">init</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader._callback"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader._callback"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when RSS returns.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>new_entries</strong> (<em>list</em>) – List of new RSS entries since last.</p></li>
<li><p><strong>init</strong> (<em>bool</em>) – If this is a startup operation (at which
<codeclass="sig-name descname">_errback</code><spanclass="sig-paren">(</span><emclass="sig-param">fail</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader._errback"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader._errback"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">text=None</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnect from feed.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Motivation for the disconnect.</p>
<codeclass="sig-name descname">get_new</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader.get_new"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader.get_new"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">update</code><spanclass="sig-paren">(</span><emclass="sig-param">init=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/rss.html#RSSReader.update"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.rss.RSSReader.update"title="Permalink to this definition">¶</a></dt>
<dd><p>Request the latest version of feed.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>init</strong> (<em>bool</em><em>, </em><em>optional</em>) – If this is an initialization call
or not (during init, all entries are conidered new).</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>This call is done in a separate thread to avoid blocking
<spanid="evennia-server-portal-ssh-module"></span><h2>evennia.server.portal.ssh module<aclass="headerlink"href="#module-evennia.server.portal.ssh"title="Permalink to this headline">¶</a></h2>
<p>This module implements the ssh (Secure SHell) protocol for encrypted
connections.</p>
<p>This depends on a generic session module that implements the actual
login procedure of the game, tracks sessions etc.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">AccountDBPasswordChecker</code><spanclass="sig-paren">(</span><emclass="sig-param">factory</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#AccountDBPasswordChecker"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.AccountDBPasswordChecker"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">factory</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#AccountDBPasswordChecker.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.AccountDBPasswordChecker.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">credentialInterfaces</code><emclass="property"> = (<InterfaceClass twisted.cred.credentials.IUsernamePassword>,)</em><aclass="headerlink"href="#evennia.server.portal.ssh.AccountDBPasswordChecker.credentialInterfaces"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.AccountDBPasswordChecker.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">requestAvatarId</code><spanclass="sig-paren">(</span><emclass="sig-param">c</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#AccountDBPasswordChecker.requestAvatarId"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.AccountDBPasswordChecker.requestAvatarId"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">ExtraInfoAuthServer</code><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#ExtraInfoAuthServer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.ExtraInfoAuthServer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">auth_password</code><spanclass="sig-paren">(</span><emclass="sig-param">packet</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#ExtraInfoAuthServer.auth_password"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.ExtraInfoAuthServer.auth_password"title="Permalink to this definition">¶</a></dt>
<dd><p>Password authentication.</p>
<p>Used mostly for setting up the transport so we can query
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.ExtraInfoAuthServer.noisy"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">PassAvatarIdTerminalRealm</code><spanclass="sig-paren">(</span><emclass="sig-param">transportFactory=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#PassAvatarIdTerminalRealm"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.PassAvatarIdTerminalRealm"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_getAvatar</code><spanclass="sig-paren">(</span><emclass="sig-param">avatarId</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#PassAvatarIdTerminalRealm._getAvatar"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.PassAvatarIdTerminalRealm._getAvatar"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.PassAvatarIdTerminalRealm.noisy"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">SSHServerFactory</code><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SSHServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SSHServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SSHServerFactory.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SSHServerFactory.logPrefix"title="Permalink to this definition">¶</a></dt>
<dd><p>Describe this factory for log messages.</p>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.SSHServerFactory.noisy"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.ssh.SshProtocol">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">SshProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">starttuple</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">starttuple</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>For setting up the account. If account is not None then we’ll
login automatically.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>starttuple</strong> (<em>tuple</em>) – A (account, factory) tuple.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.at_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when this session gets authenticated by the server.</p>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>This is executed when the connection is lost for whatever
reason. It can also be called directly, from the disconnect
method.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for loosing connection.</p>
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the connection is first established.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Options to the protocol.</p>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason='Connection closed. Goodbye for now.'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnect from server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for disconnect.</p>
<codeclass="sig-name descname">getClientAddress</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.getClientAddress"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.getClientAddress"title="Permalink to this definition">¶</a></dt>
<dd><p>Get client address.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>The client’s address and port in</dt><dd><p>a tuple. For example <cite>(‘127.0.0.1’, 41917)</cite>.</p>
<codeclass="sig-name descname">handle_EOF</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.handle_EOF"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.handle_EOF"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">handle_FF</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.handle_FF"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.handle_FF"title="Permalink to this definition">¶</a></dt>
<dd><p>Handle a ‘form feed’ byte - generally used to request a screen
<codeclass="sig-name descname">handle_INT</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.handle_INT"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.handle_INT"title="Permalink to this definition">¶</a></dt>
<dd><p>Handle ^C as an interrupt keystroke by resetting the current
<codeclass="sig-name descname">handle_QUIT</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.handle_QUIT"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.handle_QUIT"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lineReceived</code><spanclass="sig-paren">(</span><emclass="sig-param">string</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.lineReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.lineReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Communication User -> Evennia. Any line return indicates a
command for the purpose of the MUD. So we take the user input
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.noisy"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">sendLine</code><spanclass="sig-paren">(</span><emclass="sig-param">string</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.sendLine"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.sendLine"title="Permalink to this definition">¶</a></dt>
<dd><p>Communication Evennia -> User. Any string sent should
already have been properly formatted and processed before
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.send_default"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_prompt</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.send_prompt"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_text</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This is an in-band telnet operation.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – The first argument is always the text string to send. No other arguments
<codeclass="sig-name descname">terminalSize</code><spanclass="sig-paren">(</span><emclass="sig-param">width</em>, <emclass="sig-param">height</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#SshProtocol.terminalSize"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.SshProtocol.terminalSize"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize the terminal and connect to the new session.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>width</strong> (<em>int</em>) – Width of terminal.</p></li>
<li><p><strong>height</strong> (<em>int</em>) – Height of terminal.</p></li>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">proto</em>, <emclass="sig-param">chainedProtocol</em>, <emclass="sig-param">avatar</em>, <emclass="sig-param">width</em>, <emclass="sig-param">height</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#TerminalSessionTransport_getPeer.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.TerminalSessionTransport_getPeer.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.ssh.TerminalSessionTransport_getPeer.noisy"title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.ssh.getKeyPair">
<codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">getKeyPair</code><spanclass="sig-paren">(</span><emclass="sig-param">pubkeyfile</em>, <emclass="sig-param">privkeyfile</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#getKeyPair"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.getKeyPair"title="Permalink to this definition">¶</a></dt>
<dd><p>This function looks for RSA keypair files in the current directory. If they
do not exist, the keypair is created.</p>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.ssh.makeFactory">
<codeclass="sig-prename descclassname">evennia.server.portal.ssh.</code><codeclass="sig-name descname">makeFactory</code><spanclass="sig-paren">(</span><emclass="sig-param">configdict</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssh.html#makeFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssh.makeFactory"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-portal-ssl-module"></span><h2>evennia.server.portal.ssl module<aclass="headerlink"href="#module-evennia.server.portal.ssl"title="Permalink to this headline">¶</a></h2>
<p>This is a simple context factory for auto-creating
SSL keys and certificates.</p>
<dlclass="class">
<dtid="evennia.server.portal.ssl.SSLProtocol">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ssl.</code><codeclass="sig-name descname">SSLProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssl.html#SSLProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssl.SSLProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssl.html#SSLProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssl.SSLProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
</dd></dl>
<dlclass="function">
<dtid="evennia.server.portal.ssl.getSSLContext">
<codeclass="sig-prename descclassname">evennia.server.portal.ssl.</code><codeclass="sig-name descname">getSSLContext</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssl.html#getSSLContext"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssl.getSSLContext"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by the portal when creating the SSL context
server-side.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>A key and certificate that is either</dt><dd><p>existing previously or or created on the fly.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.ssl.</code><codeclass="sig-name descname">verify_SSL_key_and_cert</code><spanclass="sig-paren">(</span><emclass="sig-param">keyfile</em>, <emclass="sig-param">certfile</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ssl.html#verify_SSL_key_and_cert"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ssl.verify_SSL_key_and_cert"title="Permalink to this definition">¶</a></dt>
<dd><p>This function looks for RSA key and certificate in the current
directory. If files ssl.key and ssl.cert does not exist, they
<spanid="evennia-server-portal-suppress-ga-module"></span><h2>evennia.server.portal.suppress_ga module<aclass="headerlink"href="#module-evennia.server.portal.suppress_ga"title="Permalink to this headline">¶</a></h2>
<p>SUPPRESS-GO-AHEAD</p>
<p>This supports suppressing or activating Evennia
the GO-AHEAD telnet operation after every server reply.
If the client sends no explicit DONT SUPRESS GO-AHEAD,
Evennia will default to supressing it since many clients
will fail to use it and has no knowledge of this standard.</p>
<p>It is set as the NOGOAHEAD protocol_flag option.</p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.suppress_ga.</code><codeclass="sig-name descname">SuppressGA</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/suppress_ga.html#SuppressGA"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.suppress_ga.SuppressGA"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/suppress_ga.html#SuppressGA.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.suppress_ga.SuppressGA.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize suppression of GO-AHEADs.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol instance.</p>
<codeclass="sig-name descname">will_suppress_ga</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/suppress_ga.html#SuppressGA.will_suppress_ga"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.suppress_ga.SuppressGA.will_suppress_ga"title="Permalink to this definition">¶</a></dt>
<dd><p>Client will suppress GA</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">wont_suppress_ga</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/suppress_ga.html#SuppressGA.wont_suppress_ga"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.suppress_ga.SuppressGA.wont_suppress_ga"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when client requests to not suppress GA.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<spanid="evennia-server-portal-telnet-module"></span><h2>evennia.server.portal.telnet module<aclass="headerlink"href="#module-evennia.server.portal.telnet"title="Permalink to this headline">¶</a></h2>
<p>This module implements the telnet protocol.</p>
<p>This depends on a generic session module that implements
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet.</code><codeclass="sig-name descname">TelnetProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">_send_nop_keepalive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol._send_nop_keepalive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol._send_nop_keepalive"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_wont_linemode</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol._wont_linemode"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol._wont_linemode"title="Permalink to this definition">¶</a></dt>
<dd><p>Client refuses do(linemode). This is common for MUD-specific
clients, but we must ask for the sake of raw telnet. We ignore
<codeclass="sig-name descname">_write</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol._write"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol._write"title="Permalink to this definition">¶</a></dt>
<dd><p>hook overloading the one used in plain telnet</p>
<codeclass="sig-name descname">applicationDataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.applicationDataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.applicationDataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Telnet method called when non-telnet-command data is coming in
over the telnet connection. We pass it on to the game engine
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.at_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when this session gets authenticated by the server.</p>
<codeclass="sig-name descname">connectionLost</code><spanclass="sig-paren">(</span><emclass="sig-param">reason</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.connectionLost"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.connectionLost"title="Permalink to this definition">¶</a></dt>
<dd><p>this is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for losing connection.</p>
<codeclass="sig-name descname">connectionMade</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.connectionMade"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.connectionMade"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the connection is first established.</p>
<codeclass="sig-name descname">dataReceived</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.dataReceived"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.dataReceived"title="Permalink to this definition">¶</a></dt>
<dd><p>Unused by default, but a good place to put debug printouts
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.data_in"title="Permalink to this definition">¶</a></dt>
<dd><p>Data User -> Evennia</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Options from the protocol.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Options to the protocol</p>
<codeclass="sig-name descname">disableLocal</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disableLocal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disableLocal"title="Permalink to this definition">¶</a></dt>
<dd><p>Disable a given option locally.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to disable locally.</p>
<codeclass="sig-name descname">disableRemote</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disableRemote"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disableRemote"title="Permalink to this definition">¶</a></dt>
<dd><p>Signal a programming error by raising an exception.</p>
<p>L{enableRemote} must return true for the given value of C{option} in
order for this method to be called. If a subclass of L{Telnet}
overrides enableRemote to allow certain options to be enabled, it must
also override disableRemote tto disable those options.</p>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=''</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>generic hook for the engine to call in order to
disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em>, </em><em>optional</em>) – Reason for disconnecting.</p>
<codeclass="sig-name descname">enableLocal</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.enableLocal"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.enableLocal"title="Permalink to this definition">¶</a></dt>
<dd><p>Call to allow the activation of options for this protocol</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to enable locally.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>If this option should be enabled.</p>
<codeclass="sig-name descname">enableRemote</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.enableRemote"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.enableRemote"title="Permalink to this definition">¶</a></dt>
<dd><p>This sets up the remote-activated options we allow for this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>char</em>) – The telnet option to enable.</p>
</dd>
<dtclass="field-even">Returns</dt>
<ddclass="field-even"><p>If this option should be enabled.</p>
<codeclass="sig-name descname">handshake_done</code><spanclass="sig-paren">(</span><emclass="sig-param">timeout=False</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.handshake_done"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.handshake_done"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by all telnet extensions once they are finished.
When all have reported, a sync with the server is performed.
The system will force-call this sync after a small time to handle
clients that don’t reply to handshakes at all.</p>
<codeclass="sig-name descname">sendLine</code><spanclass="sig-paren">(</span><emclass="sig-param">line</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.sendLine"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.sendLine"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook overloading the one used by linereceiver.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>line</strong> (<em>str</em>) – Line to send.</p>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_default"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_prompt</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_prompt"title="Permalink to this definition">¶</a></dt>
<dd><p>Send a prompt - a text without a line end. See send_text for argument options.</p>
<codeclass="sig-name descname">send_text</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This is an in-band telnet operation.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – The first argument is always the text string to send. No other arguments
<codeclass="sig-name descname">toggle_nop_keepalive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetProtocol.toggle_nop_keepalive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetProtocol.toggle_nop_keepalive"title="Permalink to this definition">¶</a></dt>
<dd><p>Allow to toggle the NOP keepalive for those sad clients that
can’t even handle a NOP instruction. This is turned off by the
protocol_flag NOPKEEPALIVE (settable e.g. by the default
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet.</code><codeclass="sig-name descname">TelnetServerFactory</code><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetServerFactory"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">logPrefix</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet.html#TelnetServerFactory.logPrefix"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory.logPrefix"title="Permalink to this definition">¶</a></dt>
<dd><p>Describe this factory for log messages.</p>
<codeclass="sig-name descname">noisy</code><emclass="property"> = False</em><aclass="headerlink"href="#evennia.server.portal.telnet.TelnetServerFactory.noisy"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-portal-telnet-oob-module"></span><h2>evennia.server.portal.telnet_oob module<aclass="headerlink"href="#module-evennia.server.portal.telnet_oob"title="Permalink to this headline">¶</a></h2>
<p>Telnet OOB (Out of band communication)</p>
<p>OOB protocols allow for asynchronous communication between Evennia and
compliant telnet clients. The “text” type of send command will always
be sent “in-band”, appearing in the client’s main text output. OOB
commands, by contrast, can have many forms and it is up to the client
how and if they are handled. Examples of OOB instructions could be to
instruct the client to play sounds or to update a graphical health
bar.</p>
<p>> Note that in Evennia’s Web client, all send commands are “OOB
commands”, (including the “text” one), there is no equivalence to
MSDP/GMCP for the webclient since it doesn’t need it.</p>
<p>This implements the following telnet OOB communication protocols:
<dt>GMCP (Generic Mud Communication Protocol) as per</dt><dd><p><aclass="reference external"href="http://www.ironrealms.com/rapture/manual/files/FeatGMCP-txt.html#Generic_MUD_Communication_Protocol%28GMCP%29">http://www.ironrealms.com/rapture/manual/files/FeatGMCP-txt.html#Generic_MUD_Communication_Protocol%28GMCP%29</a></p>
</dd>
</dl>
</li>
</ul>
<p>Following the lead of KaVir’s protocol snippet, we first check if
client supports MSDP and if not, we fallback to GMCP with a MSDP
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet_oob.</code><codeclass="sig-name descname">TelnetOOB</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initiates by storing the protocol on itself and trying to
determine if the client supports MSDP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The active protocol.</p>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Return a MSDP- or GMCP-valid subnegotiation across the protocol.</p>
<codeclass="sig-name descname">decode_gmcp</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.decode_gmcp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.decode_gmcp"title="Permalink to this definition">¶</a></dt>
<dd><p>Decodes incoming GMCP data on the form ‘varname <structure>’.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>data</strong> (<em>str</em><em> or </em><em>list</em>) – GMCP data.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>Clients send data on the form “Module.Submodule.Cmdname <structure>”.
We assume the structure is valid JSON.</p>
<p>The following is parsed into Evennia’s formal structure:</p>
<codeclass="sig-name descname">decode_msdp</code><spanclass="sig-paren">(</span><emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.decode_msdp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.decode_msdp"title="Permalink to this definition">¶</a></dt>
<dd><p>Decodes incoming MSDP data.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>data</strong> (<em>str</em><em> or </em><em>list</em>) – MSDP data.</p>
<codeclass="sig-name descname">do_gmcp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.do_gmcp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.do_gmcp"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when client confirms that it can do MSDP or GMCP.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">do_msdp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.do_msdp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.do_msdp"title="Permalink to this definition">¶</a></dt>
<dd><p>Client reports that it supports msdp.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">encode_gmcp</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.encode_gmcp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.encode_gmcp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">encode_msdp</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.encode_msdp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.encode_msdp"title="Permalink to this definition">¶</a></dt>
<dd><p>Encode into a valid MSDP command.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>cmdname</strong> (<em>str</em>) – Name of send instruction.</p></li>
<li><p><strong>kwargs</strong> (<em>args</em><em>,</em>) – Arguments to OOB command.</p></li>
</ul>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>The output of this encoding will be
MSDP structures on these forms:</p>
<p>[cmdname, [], {}] -> VAR cmdname VAL “”
[cmdname, [arg], {}] -> VAR cmdname VAL arg
[cmdname, [args],{}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg … ARRAYCLOSE
[cmdname, [], {kwargs}] -> VAR cmdname VAL TABLEOPEN VAR key VAL val … TABLECLOSE
[cmdname, [args], {kwargs}] -> VAR cmdname VAL ARRAYOPEN VAL arg VAL arg … ARRAYCLOSE</p>
<blockquote>
<div><p>VAR cmdname VAL TABLEOPEN VAR key VAL val … TABLECLOSE</p>
</div></blockquote>
<p>Further nesting is not supported, so if an array argument
consists of an array (for example), that array will be
<codeclass="sig-name descname">no_gmcp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.no_gmcp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.no_gmcp"title="Permalink to this definition">¶</a></dt>
<dd><p>If this is reached, it means neither MSDP nor GMCP is
supported.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<codeclass="sig-name descname">no_msdp</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_oob.html#TelnetOOB.no_msdp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_oob.TelnetOOB.no_msdp"title="Permalink to this definition">¶</a></dt>
<dd><p>Client reports No msdp supported or wanted.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<spanid="evennia-server-portal-telnet-ssl-module"></span><h2>evennia.server.portal.telnet_ssl module<aclass="headerlink"href="#module-evennia.server.portal.telnet_ssl"title="Permalink to this headline">¶</a></h2>
<p>This allows for running the telnet communication over an encrypted SSL tunnel. To use it, requires a
client supporting Telnet SSL.</p>
<p>The protocol will try to automatically create the private key and certificate on the server side
when starting and will warn if this was not possible. These will appear as files ssl.key and
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.telnet_ssl.</code><codeclass="sig-name descname">SSLProtocol</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_ssl.html#SSLProtocol"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_ssl.SSLProtocol"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_ssl.html#SSLProtocol.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_ssl.SSLProtocol.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.telnet_ssl.</code><codeclass="sig-name descname">getSSLContext</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_ssl.html#getSSLContext"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_ssl.getSSLContext"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by the portal when creating the SSL context
server-side.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>A key and certificate that is either</dt><dd><p>existing previously or created on the fly.</p>
<codeclass="sig-prename descclassname">evennia.server.portal.telnet_ssl.</code><codeclass="sig-name descname">verify_or_create_SSL_key_and_cert</code><spanclass="sig-paren">(</span><emclass="sig-param">keyfile</em>, <emclass="sig-param">certfile</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/telnet_ssl.html#verify_or_create_SSL_key_and_cert"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.telnet_ssl.verify_or_create_SSL_key_and_cert"title="Permalink to this definition">¶</a></dt>
<dd><p>Verify or create new key/certificate files.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>keyfile</strong> (<em>str</em>) – Path to ssl.key file.</p></li>
<li><p><strong>certfile</strong> (<em>str</em>) – Parth to ssl.cert file.</p></li>
</ul>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>If files don’t already exist, they are created.</p>
<spanid="evennia-server-portal-tests-module"></span><h2>evennia.server.portal.tests module<aclass="headerlink"href="#module-evennia.server.portal.tests"title="Permalink to this headline">¶</a></h2>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.tests.</code><codeclass="sig-name descname">TestAMPServer</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestAMPServer"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestAMPServer"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setUp</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestAMPServer.setUp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestAMPServer.setUp"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
<codeclass="sig-name descname">test_amp_in</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestAMPServer.test_amp_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestAMPServer.test_amp_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_amp_out</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestAMPServer.test_amp_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestAMPServer.test_amp_out"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_large_msg</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestAMPServer.test_large_msg"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestAMPServer.test_large_msg"title="Permalink to this definition">¶</a></dt>
<dd><p>Send message larger than AMP_MAXLEN - should be split into several</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.tests.TestIRC">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.tests.</code><codeclass="sig-name descname">TestIRC</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_bold</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC.test_bold"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC.test_bold"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_colors</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC.test_colors"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC.test_colors"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_identity</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC.test_identity"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC.test_identity"title="Permalink to this definition">¶</a></dt>
<dd><p>Test that the composition of the function and
<codeclass="sig-name descname">test_italic</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC.test_italic"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC.test_italic"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_plain_ansi</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestIRC.test_plain_ansi"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestIRC.test_plain_ansi"title="Permalink to this definition">¶</a></dt>
<dd><p>Test that printable characters do not get mangled.</p>
</dd></dl>
</dd></dl>
<dlclass="class">
<dtid="evennia.server.portal.tests.TestTelnet">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.tests.</code><codeclass="sig-name descname">TestTelnet</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestTelnet"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestTelnet"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setUp</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestTelnet.setUp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestTelnet.setUp"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for setting up the test fixture before exercising it.</p>
<codeclass="sig-name descname">test_mudlet_ttype</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestTelnet.test_mudlet_ttype"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestTelnet.test_mudlet_ttype"title="Permalink to this definition">¶</a></dt>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.tests.</code><codeclass="sig-name descname">TestWebSocket</code><spanclass="sig-paren">(</span><emclass="sig-param">methodName='runTest'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestWebSocket"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestWebSocket"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">setUp</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestWebSocket.setUp"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestWebSocket.setUp"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">tearDown</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestWebSocket.tearDown"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestWebSocket.tearDown"title="Permalink to this definition">¶</a></dt>
<dd><p>Hook method for deconstructing the test fixture after testing it.</p>
<codeclass="sig-name descname">test_data_in</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestWebSocket.test_data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestWebSocket.test_data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">test_data_out</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/tests.html#TestWebSocket.test_data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.tests.TestWebSocket.test_data_out"title="Permalink to this definition">¶</a></dt>
<spanid="evennia-server-portal-ttype-module"></span><h2>evennia.server.portal.ttype module<aclass="headerlink"href="#module-evennia.server.portal.ttype"title="Permalink to this headline">¶</a></h2>
<p>TTYPE (MTTS) - Mud Terminal Type Standard</p>
<p>This module implements the TTYPE telnet protocol as per
<aclass="reference external"href="http://tintin.sourceforge.net/mtts/">http://tintin.sourceforge.net/mtts/</a>. It allows the server to ask the
client about its capabilities. If the client also supports TTYPE, it
will return with information such as its name, if it supports colour
etc. If the client does not support TTYPE, this will be ignored.</p>
<p>All data will be stored on the protocol’s protocol_flags dictionary,
under the ‘TTYPE’ key.</p>
<dlclass="class">
<dtid="evennia.server.portal.ttype.Ttype">
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.ttype.</code><codeclass="sig-name descname">Ttype</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ttype.html#Ttype"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ttype.Ttype"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">protocol</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ttype.html#Ttype.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ttype.Ttype.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize ttype by storing protocol on ourselves and calling
the client to see if it supporst ttype.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>protocol</strong> (<em>Protocol</em>) – The protocol instance.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>The <cite>self.ttype_step</cite> indicates how far in the data
<codeclass="sig-name descname">will_ttype</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ttype.html#Ttype.will_ttype"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ttype.Ttype.will_ttype"title="Permalink to this definition">¶</a></dt>
<dd><p>Handles negotiation of the ttype protocol once the client has
confirmed that it will respond with the ttype protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
</dd>
</dl>
<pclass="rubric">Notes</p>
<p>The negotiation proceeds in several steps, each returning a
certain piece of information about the client. All data is
stored on protocol.protocol_flags under the TTYPE key.</p>
<codeclass="sig-name descname">wont_ttype</code><spanclass="sig-paren">(</span><emclass="sig-param">option</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/ttype.html#Ttype.wont_ttype"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.ttype.Ttype.wont_ttype"title="Permalink to this definition">¶</a></dt>
<dd><p>Callback if ttype is not supported by client.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>option</strong> (<em>Option</em>) – Not used.</p>
<spanid="evennia-server-portal-webclient-module"></span><h2>evennia.server.portal.webclient module<aclass="headerlink"href="#module-evennia.server.portal.webclient"title="Permalink to this headline">¶</a></h2>
<p>Webclient based on websockets.</p>
<p>This implements a webclient with WebSockets (<aclass="reference external"href="http://en.wikipedia.org/wiki/WebSocket">http://en.wikipedia.org/wiki/WebSocket</a>)
by use of the autobahn-python package’s implementation (<aclass="reference external"href="https://github.com/crossbario/autobahn-python">https://github.com/crossbario/autobahn-python</a>).
It is used together with evennia/web/media/javascript/evennia_websocket_webclient.js.</p>
<p>All data coming into the webclient is in the form of valid JSON on the form</p>
<p>which represents an “inputfunc” to be called on the Evennia side with <ahref="#id19"><spanclass="problematic"id="id20">*</span></a>args, <ahref="#id21"><spanclass="problematic"id="id22">**</span></a>kwargs.
The most common inputfunc is “text”, which takes just the text input
from the command line and interprets it as an Evennia Command: <cite>[“text”, [“look”], {}]</cite></p>
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.webclient.</code><codeclass="sig-name descname">WebSocketClient</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.at_login"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Generic hook for the engine to call in order to
disconnect this protocol.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Motivation for the disconnection.</p>
<codeclass="sig-name descname">get_client_session</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.get_client_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.get_client_session"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the Client browser session (used for auto-login based on browser session)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>This is a django-specific internal representation</dt><dd><p>of the browser session.</p>
<codeclass="sig-name descname">nonce</code><emclass="property"> = None</em><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.nonce"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">onClose</code><spanclass="sig-paren">(</span><emclass="sig-param">wasClean</em>, <emclass="sig-param">code=None</em>, <emclass="sig-param">reason=None</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.onClose"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onClose"title="Permalink to this definition">¶</a></dt>
<dd><p>This is executed when the connection is lost for whatever
reason. it can also be called directly, from the disconnect
method.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>wasClean</strong> (<em>bool</em>) –<codeclass="docutils literal notranslate"><spanclass="pre">True</span></code> if the WebSocket was closed cleanly.</p></li>
<li><p><strong>code</strong> (<em>int</em><em> or </em><em>None</em>) – Close status as sent by the WebSocket peer.</p></li>
<li><p><strong>reason</strong> (<em>str</em><em> or </em><em>None</em>) – Close reason as sent by the WebSocket peer.</p></li>
<codeclass="sig-name descname">onMessage</code><spanclass="sig-paren">(</span><emclass="sig-param">payload</em>, <emclass="sig-param">isBinary</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.onMessage"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onMessage"title="Permalink to this definition">¶</a></dt>
<dd><p>Callback fired when a complete WebSocket message was received.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>payload</strong> (<em>bytes</em>) – The WebSocket message received.</p></li>
<li><p><strong>isBinary</strong> (<em>bool</em>) – Flag indicating whether payload is binary or
<codeclass="sig-name descname">onOpen</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.onOpen"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.onOpen"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called when the WebSocket connection is fully established.</p>
<codeclass="sig-name descname">sendLine</code><spanclass="sig-paren">(</span><emclass="sig-param">line</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.sendLine"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.sendLine"title="Permalink to this definition">¶</a></dt>
<dd><p>Send data to client.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>line</strong> (<em>str</em>) – Text to send.</p>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_default"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>cmdname</strong> (<em>str</em>) – The first argument will always be the oob cmd name.</p></li>
<li><p><strong>*args</strong> (<em>any</em>) – Remaining args will be arguments for <cite>cmd</cite>.</p></li>
</ul>
</dd>
</dl>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>options (dict): These are ignored for oob commands. Use command</dt><dd><p>arguments (which can hold dicts) to send instructions to the
<codeclass="sig-name descname">send_prompt</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_prompt"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_text</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient.html#WebSocketClient.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient.WebSocketClient.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This will pre-process the text for
color-replacement, conversion to html etc.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – Text to send.</p>
</dd>
</dl>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>options (dict): Options-dict with the following keys understood:</dt><dd><ulclass="simple">
<li><p>raw (bool): No parsing at all (leave ansi-to-html markers unparsed).</p></li>
<li><p>nocolor (bool): Clean out all color.</p></li>
<li><p>screenreader (bool): Use Screenreader mode.</p></li>
<li><p>send_prompt (bool): Send a prompt with parsed html</p></li>
<spanid="evennia-server-portal-webclient-ajax-module"></span><h2>evennia.server.portal.webclient_ajax module<aclass="headerlink"href="#module-evennia.server.portal.webclient_ajax"title="Permalink to this headline">¶</a></h2>
<p>AJAX/COMET fallback webclient</p>
<p>The AJAX/COMET web client consists of two components running on
twisted and django. They are both a part of the Evennia website url
tree (so the testing website might be located on
<aclass="reference external"href="http://localhost:4001/">http://localhost:4001/</a>, whereas the webclient can be found on
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.webclient_ajax.</code><codeclass="sig-name descname">AjaxWebClient</code><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.__init__"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">_keepalive</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient._keepalive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient._keepalive"title="Permalink to this definition">¶</a></dt>
<dd><p>Callback for checking the connection is still alive.</p>
<codeclass="sig-name descname">_responseFailed</code><spanclass="sig-paren">(</span><emclass="sig-param">failure</em>, <emclass="sig-param">csessid</em>, <emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient._responseFailed"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient._responseFailed"title="Permalink to this definition">¶</a></dt>
<dd><p>callback if a request is lost/timed out</p>
<codeclass="sig-name descname">allowedMethods</code><emclass="property"> = ('POST',)</em><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.allowedMethods"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.at_login"title="Permalink to this definition">¶</a></dt>
<dd><p>Called when this session gets authenticated by the server.</p>
<codeclass="sig-name descname">client_disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">csessid</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.client_disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.client_disconnect"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">get_client_sessid</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.get_client_sessid"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.get_client_sessid"title="Permalink to this definition">¶</a></dt>
<dd><p>Helper to get the client session id out of the request.</p>
<codeclass="sig-name descname">isLeaf</code><emclass="property"> = True</em><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.isLeaf"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">lineSend</code><spanclass="sig-paren">(</span><emclass="sig-param">csessid</em>, <emclass="sig-param">data</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.lineSend"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.lineSend"title="Permalink to this definition">¶</a></dt>
<dd><p>This adds the data to the buffer and/or sends it to the client
<codeclass="sig-name descname">mode_close</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.mode_close"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.mode_close"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by render_POST when the client is signalling
<codeclass="sig-name descname">mode_init</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.mode_init"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.mode_init"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by render_POST when the client requests an init
<codeclass="sig-name descname">mode_input</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.mode_input"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.mode_input"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by render_POST when the client
<codeclass="sig-name descname">mode_keepalive</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.mode_keepalive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.mode_keepalive"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">mode_receive</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.mode_receive"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.mode_receive"title="Permalink to this definition">¶</a></dt>
<dd><p>This is called by render_POST when the client is telling us
that it is ready to receive data as soon as it is available.
This is the basis of a long-polling (comet) mechanism: the
server will wait to reply until data is available.</p>
<codeclass="sig-name descname">render_POST</code><spanclass="sig-paren">(</span><emclass="sig-param">request</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClient.render_POST"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClient.render_POST"title="Permalink to this definition">¶</a></dt>
<dd><p>This function is what Twisted calls with POST requests coming
in from the ajax client. The requests should be tagged with
different modes depending on what needs to be done, such as
initializing or sending/receving data through the request. It
uses a long-polling mechanism to avoid sending data unless
<emclass="property">class </em><codeclass="sig-prename descclassname">evennia.server.portal.webclient_ajax.</code><codeclass="sig-name descname">AjaxWebClientSession</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">__init__</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.__init__"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.__init__"title="Permalink to this definition">¶</a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
<codeclass="sig-name descname">at_login</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.at_login"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.at_login"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_in</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.data_in"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.data_in"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">data_out</code><spanclass="sig-paren">(</span><emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.data_out"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.data_out"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User</p>
<dlclass="simple">
<dt>Kwargs:</dt><dd><p>kwargs (any): Options to the protocol</p>
<codeclass="sig-name descname">disconnect</code><spanclass="sig-paren">(</span><emclass="sig-param">reason='Server disconnected.'</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.disconnect"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.disconnect"title="Permalink to this definition">¶</a></dt>
<dd><p>Disconnect from server.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>reason</strong> (<em>str</em>) – Motivation for the disconnect.</p>
<codeclass="sig-name descname">get_client_session</code><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.get_client_session"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.get_client_session"title="Permalink to this definition">¶</a></dt>
<dd><p>Get the Client browser session (used for auto-login based on browser session)</p>
<dlclass="field-list simple">
<dtclass="field-odd">Returns</dt>
<ddclass="field-odd"><p><dlclass="simple">
<dt>This is a django-specific internal representation</dt><dd><p>of the browser session.</p>
<codeclass="sig-name descname">send_default</code><spanclass="sig-paren">(</span><emclass="sig-param">cmdname</em>, <emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.send_default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.send_default"title="Permalink to this definition">¶</a></dt>
<dd><p>Data Evennia -> User.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><ulclass="simple">
<li><p><strong>cmdname</strong> (<em>str</em>) – The first argument will always be the oob cmd name.</p></li>
<li><p><strong>*args</strong> (<em>any</em>) – Remaining args will be arguments for <cite>cmd</cite>.</p></li>
</ul>
</dd>
</dl>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>options (dict): These are ignored for oob commands. Use command</dt><dd><p>arguments (which can hold dicts) to send instructions to the
<codeclass="sig-name descname">send_prompt</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.send_prompt"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.send_prompt"title="Permalink to this definition">¶</a></dt>
<codeclass="sig-name descname">send_text</code><spanclass="sig-paren">(</span><emclass="sig-param">*args</em>, <emclass="sig-param">**kwargs</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#AjaxWebClientSession.send_text"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.AjaxWebClientSession.send_text"title="Permalink to this definition">¶</a></dt>
<dd><p>Send text data. This will pre-process the text for
color-replacement, conversion to html etc.</p>
<dlclass="field-list simple">
<dtclass="field-odd">Parameters</dt>
<ddclass="field-odd"><p><strong>text</strong> (<em>str</em>) – Text to send.</p>
</dd>
</dl>
<dlclass="simple">
<dt>Kwargs:</dt><dd><dlclass="simple">
<dt>options (dict): Options-dict with the following keys understood:</dt><dd><ulclass="simple">
<li><p>raw (bool): No parsing at all (leave ansi-to-html markers unparsed).</p></li>
<li><p>nocolor (bool): Remove all color.</p></li>
<li><p>screenreader (bool): Use Screenreader mode.</p></li>
<li><p>send_prompt (bool): Send a prompt with parsed html</p></li>
<codeclass="sig-name descname">default</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#LazyEncoder.default"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.LazyEncoder.default"title="Permalink to this definition">¶</a></dt>
<dd><p>Implement this method in a subclass such that it returns
a serializable object for <codeclass="docutils literal notranslate"><spanclass="pre">o</span></code>, or calls the base implementation
(to raise a <codeclass="docutils literal notranslate"><spanclass="pre">TypeError</span></code>).</p>
<p>For example, to support arbitrary iterators, you could
<codeclass="sig-prename descclassname">evennia.server.portal.webclient_ajax.</code><codeclass="sig-name descname">jsonify</code><spanclass="sig-paren">(</span><emclass="sig-param">obj</em><spanclass="sig-paren">)</span><aclass="reference internal"href="../_modules/evennia/server/portal/webclient_ajax.html#jsonify"><spanclass="viewcode-link">[source]</span></a><aclass="headerlink"href="#evennia.server.portal.webclient_ajax.jsonify"title="Permalink to this definition">¶</a></dt>