evennia/docs/3.x/api/evennia.comms.managers.html
2023-12-21 00:12:31 +01:00

487 lines
No EOL
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.comms.managers &#8212; Evennia 3.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.comms.models" href="evennia.comms.models.html" />
<link rel="prev" title="evennia.comms.comms" href="evennia.comms.comms.html" />
</head><body>
<div class="admonition important">
<p class="first admonition-title">Note</p>
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.comms.models.html" title="evennia.comms.models"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.comms.comms.html" title="evennia.comms.comms"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 3.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" accesskey="U">evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.managers</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.comms.comms.html"
title="previous chapter">evennia.comms.comms</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.comms.models.html"
title="next chapter">evennia.comms.models</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.comms.managers.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.comms.managers">
<span id="evennia-comms-managers"></span><h1>evennia.comms.managers<a class="headerlink" href="#module-evennia.comms.managers" title="Permalink to this headline"></a></h1>
<p>These managers define helper methods for accessing the database from
Comm system components.</p>
<dl class="py exception">
<dt id="evennia.comms.managers.CommError">
<em class="property">exception </em><code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">CommError</code><a class="reference internal" href="../_modules/evennia/comms/managers.html#CommError"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.CommError" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></p>
<p>Raised by comm system, to allow feedback to player when caught.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.comms.managers.identify_object">
<code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">identify_object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inp</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#identify_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.identify_object" title="Permalink to this definition"></a></dt>
<dd><p>Helper function. Identifies if an object is an account or an object;
return its database model</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inp</strong> (<em>any</em>) Entity to be idtified.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>identified (tuple)</em> </p>
<dl class="simple">
<dt>This is a tuple with (<strong>inp</strong>, identifier)</dt><dd><p>where <strong>identifier</strong> is one of “account”, “object”, “channel”,
“string”, “dbref” or None.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.comms.managers.to_object">
<code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">to_object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inp</span></em>, <em class="sig-param"><span class="n">objtype</span><span class="o">=</span><span class="default_value">'account'</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#to_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.to_object" title="Permalink to this definition"></a></dt>
<dd><p>Locates the object related to the given accountname or channel key.
If input was already the correct object, return it.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>inp</strong> (<em>any</em>) The input object/string</p></li>
<li><p><strong>objtype</strong> (<em>str</em>) Either account or channel.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>obj (object)</em> The correct object related to <strong>inp</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.comms.managers.MsgManager">
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">MsgManager</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.managers.html#evennia.typeclasses.managers.TypedObjectManager" title="evennia.typeclasses.managers.TypedObjectManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.managers.TypedObjectManager</span></code></a></p>
<p>This MsgManager implements methods for searching and manipulating
Messages directly from the database.</p>
<p>These methods will all return database objects (or QuerySets)
directly.</p>
<p>A Message represents one unit of communication, be it over a
Channel or via some form of in-game mail system. Like an e-mail,
it always has a sender and can have any number of receivers (some
of which may be Channels).</p>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.identify_object">
<code class="sig-name descname">identify_object</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">inp</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.identify_object"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.identify_object" title="Permalink to this definition"></a></dt>
<dd><p>Wrapper to identify_object if accessing via the manager directly.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>inp</strong> (<em>any</em>) Entity to be idtified.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><p><em>identified (tuple)</em> </p>
<dl class="simple">
<dt>This is a tuple with (<strong>inp</strong>, identifier)</dt><dd><p>where <strong>identifier</strong> is one of “account”, “object”, “channel”,
“string”, “dbref” or None.</p>
</dd>
</dl>
</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.get_message_by_id">
<code class="sig-name descname">get_message_by_id</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">idnum</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_message_by_id"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_message_by_id" title="Permalink to this definition"></a></dt>
<dd><p>Retrieve message by its id.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>idnum</strong> (<em>int</em><em> or </em><em>str</em>) The dbref to retrieve.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>message (Msg)</em> The message.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.get_messages_by_sender">
<code class="sig-name descname">get_messages_by_sender</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_messages_by_sender"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_messages_by_sender" title="Permalink to this definition"></a></dt>
<dd><p>Get all messages sent by one entity - this could be either a
account or an object</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>sender</strong> (<em>Account</em><em> or </em><em>Object</em>) The sender of the message.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>QuerySet</em> Matching messages.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.comms.managers.CommError" title="evennia.comms.managers.CommError"><strong>CommError</strong></a> For incorrect sender types.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.get_messages_by_receiver">
<code class="sig-name descname">get_messages_by_receiver</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">recipient</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.get_messages_by_receiver"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.get_messages_by_receiver" title="Permalink to this definition"></a></dt>
<dd><p>Get all messages sent to one given recipient.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>recipient</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em>) The recipient of the messages to search for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Queryset</em> Matching messages.</p>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="#evennia.comms.managers.CommError" title="evennia.comms.managers.CommError"><strong>CommError</strong></a> If the <strong>recipient</strong> is not of a valid type.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.search_message">
<code class="sig-name descname">search_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receiver</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">freetext</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dbref</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.search_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.search_message" title="Permalink to this definition"></a></dt>
<dd><p>Search the message database for particular messages. At least
one of the arguments must be given to do a search.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Script</em><em>, </em><em>optional</em>) Get messages sent by a particular sender.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em><em>, </em><em>optional</em>) Get messages
received by a certain account,object or channel</p></li>
<li><p><strong>freetext</strong> (<em>str</em>) Search for a text string in a message. NOTE:
This can potentially be slow, so make sure to supply one of
the other arguments to limit the search.</p></li>
<li><p><strong>dbref</strong> (<em>int</em>) The exact database id of the message. This will override
all other search criteria since its unique and
always gives only one match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Queryset</em> Iterable with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.message_search">
<code class="sig-name descname">message_search</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sender</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">receiver</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">freetext</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">dbref</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.managers.MsgManager.message_search" title="Permalink to this definition"></a></dt>
<dd><p>Search the message database for particular messages. At least
one of the arguments must be given to do a search.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>sender</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Script</em><em>, </em><em>optional</em>) Get messages sent by a particular sender.</p></li>
<li><p><strong>receiver</strong> (<em>Object</em><em>, </em><em>Account</em><em> or </em><em>Channel</em><em>, </em><em>optional</em>) Get messages
received by a certain account,object or channel</p></li>
<li><p><strong>freetext</strong> (<em>str</em>) Search for a text string in a message. NOTE:
This can potentially be slow, so make sure to supply one of
the other arguments to limit the search.</p></li>
<li><p><strong>dbref</strong> (<em>int</em>) The exact database id of the message. This will override
all other search criteria since its unique and
always gives only one match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Queryset</em> Iterable with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.MsgManager.create_message">
<code class="sig-name descname">create_message</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">senderobj</span></em>, <em class="sig-param"><span class="n">message</span></em>, <em class="sig-param"><span class="n">receivers</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">locks</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">tags</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">header</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#MsgManager.create_message"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.MsgManager.create_message" title="Permalink to this definition"></a></dt>
<dd><p>Create a new communication Msg. Msgs represent a unit of
database-persistent communication between entites.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>senderobj</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>Script</em><em>, </em><em>str</em><em> or </em><em>list</em>) The entity (or
entities) sending the Msg. If a <strong>str</strong>, this is the id-string
for an external sender type.</p></li>
<li><p><strong>message</strong> (<em>str</em>) Text with the message. Eventual headers, titles
etc should all be included in this text string. Formatting
will be retained.</p></li>
<li><p><strong>receivers</strong> (<em>Object</em><em>, </em><em>Account</em><em>, </em><em>Script</em><em>, </em><em>str</em><em> or </em><em>list</em>) An Account/Object to send
to, or a list of them. If a string, its an identifier for an external
receiver.</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Lock definition string.</p></li>
<li><p><strong>tags</strong> (<em>list</em>) A list of tags or tuples <strong>(tag[,category[,data]])</strong>.</p></li>
<li><p><strong>header</strong> (<em>str</em>) Mime-type or other optional information for the message</p></li>
</ul>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The Comm system is created to be very open-ended, so its fully
possible to let a message both go several receivers at the same time,
its up to the command definitions to limit this as desired.</p>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.comms.managers.ChannelDBManager">
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">ChannelDBManager</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.typeclasses.managers.html#evennia.typeclasses.managers.TypedObjectManager" title="evennia.typeclasses.managers.TypedObjectManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.managers.TypedObjectManager</span></code></a></p>
<p>This ChannelManager implements methods for searching and
manipulating Channels directly from the database.</p>
<p>These methods will all return database objects (or QuerySets)
directly.</p>
<p>A Channel is an in-game venue for communication. Its essentially
representation of a re-sender: Users sends Messages to the
Channel, and the Channel re-sends those messages to all users
subscribed to the Channel.</p>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.get_all_channels">
<code class="sig-name descname">get_all_channels</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager.get_all_channels"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.get_all_channels" title="Permalink to this definition"></a></dt>
<dd><p>Get all channels.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>channels (list)</em> All channels in game.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.get_channel">
<code class="sig-name descname">get_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">channelkey</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager.get_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.get_channel" title="Permalink to this definition"></a></dt>
<dd><p>Return the channel object if given its key.
Also searches its aliases.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>channelkey</strong> (<em>str</em>) Channel key to search for.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>channel (Channel or None)</em> A channel match.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.get_subscriptions">
<code class="sig-name descname">get_subscriptions</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">subscriber</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager.get_subscriptions"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.get_subscriptions" title="Permalink to this definition"></a></dt>
<dd><p>Return all channels a given entity is subscribed to.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>subscriber</strong> (<em>Object</em><em> or </em><em>Account</em>) The one subscribing.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>subscriptions (list)</em> Channel subscribed to.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.search_channel">
<code class="sig-name descname">search_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ostring</span></em>, <em class="sig-param"><span class="n">exact</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager.search_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.search_channel" title="Permalink to this definition"></a></dt>
<dd><p>Search the channel database for a particular channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ostring</strong> (<em>str</em>) The key or database id of the channel.</p></li>
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) Require an exact (but not
case sensitive) match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Queryset</em> Iterable with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.create_channel">
<code class="sig-name descname">create_channel</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">key</span></em>, <em class="sig-param"><span class="n">aliases</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">desc</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">locks</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">keep_log</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">typeclass</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">tags</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">attrs</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelDBManager.create_channel"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.create_channel" title="Permalink to this definition"></a></dt>
<dd><p>Create A communication Channel. A Channel serves as a central hub
for distributing Msgs to groups of people without specifying the
receivers explicitly. Instead accounts may connect to the channel
and follow the flow of messages. By default the channel allows
access to all old messages, but this can be turned off with the
keep_log switch.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>key</strong> (<em>str</em>) This must be unique.</p>
</dd>
<dt class="field-even">Keyword Arguments</dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>aliases</strong> (<em>list of str</em>) List of alternative (likely shorter) keynames.</p></li>
<li><p><strong>desc</strong> (<em>str</em>) A description of the channel, for use in listings.</p></li>
<li><p><strong>locks</strong> (<em>str</em>) Lockstring.</p></li>
<li><p><strong>keep_log</strong> (<em>bool</em>) Log channel throughput.</p></li>
<li><p><strong>typeclass</strong> (<em>str</em><em> or </em><em>class</em>) The typeclass of the Channel (not
often used).</p></li>
<li><p><strong>tags</strong> (<a class="reference internal" href="evennia.contrib.game_systems.barter.barter.html#evennia.contrib.game_systems.barter.barter.TradeHandler.list" title="evennia.contrib.game_systems.barter.barter.TradeHandler.list"><em>list</em></a>) A list of tags or tuples <strong>(tag[,category[,data]])</strong>.</p></li>
<li><p><strong>attrs</strong> (<a class="reference internal" href="evennia.contrib.game_systems.barter.barter.html#evennia.contrib.game_systems.barter.barter.TradeHandler.list" title="evennia.contrib.game_systems.barter.barter.TradeHandler.list"><em>list</em></a>) List of attributes on form <strong>(name, value[,category[,lockstring]])</strong></p></li>
</ul>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>channel (Channel)</em> A newly created channel.</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="evennia.comms.managers.ChannelDBManager.channel_search">
<code class="sig-name descname">channel_search</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ostring</span></em>, <em class="sig-param"><span class="n">exact</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="headerlink" href="#evennia.comms.managers.ChannelDBManager.channel_search" title="Permalink to this definition"></a></dt>
<dd><p>Search the channel database for a particular channel.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ostring</strong> (<em>str</em>) The key or database id of the channel.</p></li>
<li><p><strong>exact</strong> (<em>bool</em><em>, </em><em>optional</em>) Require an exact (but not
case sensitive) match.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>Queryset</em> Iterable with 0, 1 or more matches.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.comms.managers.ChannelManager">
<em class="property">class </em><code class="sig-prename descclassname">evennia.comms.managers.</code><code class="sig-name descname">ChannelManager</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="o">**</span><span class="n">kwargs</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/comms/managers.html#ChannelManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.comms.managers.ChannelManager" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#evennia.comms.managers.ChannelDBManager" title="evennia.comms.managers.ChannelDBManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.comms.managers.ChannelDBManager</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">evennia.typeclasses.managers.TypeclassManager</span></code></p>
<p>Wrapper to group the typeclass manager to a consistent name.</p>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.comms.models.html" title="evennia.comms.models"
>next</a> |</li>
<li class="right" >
<a href="evennia.comms.comms.html" title="evennia.comms.comms"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 3.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.comms.html" >evennia.comms</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.comms.managers</a></li>
</ul>
</div>
<div class="admonition important">
<p class="first admonition-title">Note</p>
<p class="last">You are reading an old version of the Evennia documentation. <a href="https://www.evennia.com/docs/latest/index.html">The latest version is here</a></p>.
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>