1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-27 13:34:28 +00:00

Docs update

This commit is contained in:
Steffo 2019-07-09 19:47:55 +03:00
parent 96dfedbcf9
commit a27cbaef54
25 changed files with 28 additions and 3002 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -289,6 +289,12 @@ img.align-center, .figure.align-center, object.align-center {
margin-right: auto; margin-right: auto;
} }
img.align-default, .figure.align-default {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left { .align-left {
text-align: left; text-align: left;
} }
@ -297,6 +303,10 @@ img.align-center, .figure.align-center, object.align-center {
text-align: center; text-align: center;
} }
.align-default {
text-align: center;
}
.align-right { .align-right {
text-align: right; text-align: right;
} }
@ -368,6 +378,11 @@ table.align-center {
margin-right: auto; margin-right: auto;
} }
table.align-default {
margin-left: auto;
margin-right: auto;
}
table caption span.caption-number { table caption span.caption-number {
font-style: italic; font-style: italic;
} }

View file

@ -319,12 +319,13 @@ var Search = {
for (var prefix in objects) { for (var prefix in objects) {
for (var name in objects[prefix]) { for (var name in objects[prefix]) {
var fullname = (prefix ? prefix + '.' : '') + name; var fullname = (prefix ? prefix + '.' : '') + name;
if (fullname.toLowerCase().indexOf(object) > -1) { var fullnameLower = fullname.toLowerCase()
if (fullnameLower.indexOf(object) > -1) {
var score = 0; var score = 0;
var parts = fullname.split('.'); var parts = fullnameLower.split('.');
// check for different match types: exact matches of full name or // check for different match types: exact matches of full name or
// "last name" (i.e. last dotted part) // "last name" (i.e. last dotted part)
if (fullname == object || parts[parts.length - 1] == object) { if (fullnameLower == object || parts[parts.length - 1] == object) {
score += Scorer.objNameMatch; score += Scorer.objNameMatch;
// matches in last name // matches in last name
} else if (parts[parts.length - 1].indexOf(object) > -1) { } else if (parts[parts.length - 1].indexOf(object) > -1) {

View file

@ -159,450 +159,6 @@
<h1>royalnet.audio<a class="headerlink" href="#royalnet-audio" title="Permalink to this headline"></a></h1> <h1>royalnet.audio<a class="headerlink" href="#royalnet-audio" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.audio"></span><p>Video and audio downloading related classes, mainly used for Discord voice bots.</p>
<dl class="class">
<dt id="royalnet.audio.PlayMode">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">PlayMode</code><a class="headerlink" href="#royalnet.audio.PlayMode" title="Permalink to this definition"></a></dt>
<dd><p>The base class for a PlayMode, such as <a class="reference internal" href="#royalnet.audio.Playlist" title="royalnet.audio.Playlist"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.Playlist</span></code></a>. Inherit from this class if you want to create a custom PlayMode.</p>
<dl class="method">
<dt id="royalnet.audio.PlayMode.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.PlayMode.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a new PlayMode and initialize the generator inside.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode._generate_generator">
<code class="descname">_generate_generator</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.PlayMode._generate_generator" title="Permalink to this definition"></a></dt>
<dd><p>Factory function for an async generator that changes the <code class="docutils literal notranslate"><span class="pre">now_playing</span></code> property either to a <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMAudio</span></code> or to <code class="docutils literal notranslate"><span class="pre">None</span></code>, then yields the value it changed it to.</p>
<dl class="field-list simple">
<dt class="field-odd">Yields</dt>
<dd class="field-odd"><p>The <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to be played next.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode.add">
<code class="descname">add</code><span class="sig-paren">(</span><em>item: royalnet.audio.royalpcmaudio.RoyalPCMAudio</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.PlayMode.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>item</strong> The item to add to the PlayMode.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode.delete">
<code class="descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.PlayMode.delete" title="Permalink to this definition"></a></dt>
<dd><p>Delete all <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> contained inside this PlayMode.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode.next">
<code class="descname">next</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Optional[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.PlayMode.next" title="Permalink to this definition"></a></dt>
<dd><p>Get the next <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> from the list and advance it.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The next <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a>.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode.queue_preview">
<code class="descname">queue_preview</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.PlayMode.queue_preview" title="Permalink to this definition"></a></dt>
<dd><p>Display all the videos in the PlayMode as a list, if possible.</p>
<p>To be used with <cite>queue</cite> commands, for example.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#NotImplementedError" title="(in Python v3.7)"><strong>NotImplementedError</strong></a> If a preview cant be generated.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A list of videos contained in the queue.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.PlayMode.videos_left">
<code class="descname">videos_left</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Union[int, float]<a class="headerlink" href="#royalnet.audio.PlayMode.videos_left" title="Permalink to this definition"></a></dt>
<dd><p>Return the number of videos left in the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Usually a <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, but may return also <a class="reference external" href="https://docs.python.org/3.7/library/math.html#math.inf" title="(in Python v3.7)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">math.inf</span></code></a> if the PlayMode is infinite.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.Playlist">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">Playlist</code><span class="sig-paren">(</span><em>starting_list: List[royalnet.audio.royalpcmaudio.RoyalPCMAudio] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Playlist" title="Permalink to this definition"></a></dt>
<dd><p>A video list. <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> played are removed from the list.</p>
<dl class="method">
<dt id="royalnet.audio.Playlist.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>starting_list: List[royalnet.audio.royalpcmaudio.RoyalPCMAudio] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Playlist.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a new Playlist.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>starting_list</strong> A list of items with which the Playlist will be created.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Playlist._generate_generator">
<code class="descname">_generate_generator</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Playlist._generate_generator" title="Permalink to this definition"></a></dt>
<dd><p>Factory function for an async generator that changes the <code class="docutils literal notranslate"><span class="pre">now_playing</span></code> property either to a <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMAudio</span></code> or to <code class="docutils literal notranslate"><span class="pre">None</span></code>, then yields the value it changed it to.</p>
<dl class="field-list simple">
<dt class="field-odd">Yields</dt>
<dd class="field-odd"><p>The <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to be played next.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Playlist.add">
<code class="descname">add</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.Playlist.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>item</strong> The item to add to the PlayMode.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Playlist.delete">
<code class="descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.Playlist.delete" title="Permalink to this definition"></a></dt>
<dd><p>Delete all <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> contained inside this PlayMode.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Playlist.queue_preview">
<code class="descname">queue_preview</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.Playlist.queue_preview" title="Permalink to this definition"></a></dt>
<dd><p>Display all the videos in the PlayMode as a list, if possible.</p>
<p>To be used with <cite>queue</cite> commands, for example.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#NotImplementedError" title="(in Python v3.7)"><strong>NotImplementedError</strong></a> If a preview cant be generated.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A list of videos contained in the queue.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Playlist.videos_left">
<code class="descname">videos_left</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Union[int, float]<a class="headerlink" href="#royalnet.audio.Playlist.videos_left" title="Permalink to this definition"></a></dt>
<dd><p>Return the number of videos left in the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Usually a <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, but may return also <a class="reference external" href="https://docs.python.org/3.7/library/math.html#math.inf" title="(in Python v3.7)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">math.inf</span></code></a> if the PlayMode is infinite.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.Pool">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">Pool</code><span class="sig-paren">(</span><em>starting_pool: List[royalnet.audio.royalpcmaudio.RoyalPCMAudio] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Pool" title="Permalink to this definition"></a></dt>
<dd><p>A <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> pool. <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> are selected in random order and are not repeated until every song has been played at least once.</p>
<dl class="method">
<dt id="royalnet.audio.Pool.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>starting_pool: List[royalnet.audio.royalpcmaudio.RoyalPCMAudio] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Pool.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a new Pool.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>starting_pool</strong> A list of items the Pool will be created from.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Pool._generate_generator">
<code class="descname">_generate_generator</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.Pool._generate_generator" title="Permalink to this definition"></a></dt>
<dd><p>Factory function for an async generator that changes the <code class="docutils literal notranslate"><span class="pre">now_playing</span></code> property either to a <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMAudio</span></code> or to <code class="docutils literal notranslate"><span class="pre">None</span></code>, then yields the value it changed it to.</p>
<dl class="field-list simple">
<dt class="field-odd">Yields</dt>
<dd class="field-odd"><p>The <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to be played next.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Pool.add">
<code class="descname">add</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.Pool.add" title="Permalink to this definition"></a></dt>
<dd><p>Add a new <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> to the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>item</strong> The item to add to the PlayMode.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Pool.delete">
<code class="descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.audio.Pool.delete" title="Permalink to this definition"></a></dt>
<dd><p>Delete all <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio" title="royalnet.audio.RoyalPCMAudio"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio</span></code></a> contained inside this PlayMode.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Pool.queue_preview">
<code class="descname">queue_preview</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.Pool.queue_preview" title="Permalink to this definition"></a></dt>
<dd><p>Display all the videos in the PlayMode as a list, if possible.</p>
<p>To be used with <cite>queue</cite> commands, for example.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#NotImplementedError" title="(in Python v3.7)"><strong>NotImplementedError</strong></a> If a preview cant be generated.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A list of videos contained in the queue.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.Pool.videos_left">
<code class="descname">videos_left</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Union[int, float]<a class="headerlink" href="#royalnet.audio.Pool.videos_left" title="Permalink to this definition"></a></dt>
<dd><p>Return the number of videos left in the PlayMode.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Usually a <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, but may return also <a class="reference external" href="https://docs.python.org/3.7/library/math.html#math.inf" title="(in Python v3.7)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">math.inf</span></code></a> if the PlayMode is infinite.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.YtdlFile">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">YtdlFile</code><span class="sig-paren">(</span><em>info: royalnet.audio.youtubedl.YtdlInfo</em>, <em>outtmpl='%(title)s-%(id)s.%(ext)s'</em>, <em>**ytdl_args</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.YtdlFile" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper around a youtube_dl downloaded file.</p>
<dl class="method">
<dt id="royalnet.audio.YtdlFile._stop_download">
<code class="descname">_stop_download</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.YtdlFile._stop_download" title="Permalink to this definition"></a></dt>
<dd><p>I have no clue of what this does, or why is it here. Possibly remove it?</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>InterruptDownload</strong> …uhhh, always?</p>
</dd>
</dl>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.YtdlFile.create_from_url">
<em class="property">static </em><code class="descname">create_from_url</code><span class="sig-paren">(</span><em>url</em>, <em>outtmpl='%(title)s-%(id)s.%(ext)s'</em>, <em>**ytdl_args</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.youtubedl.YtdlFile]<a class="headerlink" href="#royalnet.audio.YtdlFile.create_from_url" title="Permalink to this definition"></a></dt>
<dd><p>Download the videos at the specified url.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>url</strong> The url to download the videos from.</p></li>
<li><p><strong>outtmpl</strong> The filename that the downloaded videos are going to have. The name can be formatted according to the <a class="reference external" href="https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template">outtmpl documentation</a>.</p></li>
<li><p><strong>ytdl_args</strong> Other arguments to be passed to the YoutubeDL object.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of YtdlFiles.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.YtdlFile.delete_video_file">
<code class="descname">delete_video_file</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.YtdlFile.delete_video_file" title="Permalink to this definition"></a></dt>
<dd><p>Delete the file located at <code class="docutils literal notranslate"><span class="pre">self.video_filename</span></code>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>No checks are done when deleting, so it may try to delete a non-existing file and raise an exception or do some other weird stuff with weird filenames.</p>
</div>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.audio.YtdlFile.ytdl_args">
<code class="descname">ytdl_args</code><em class="property"> = {'logger': &lt;Logger royalnet.audio.youtubedl (WARNING)&gt;, 'no_warnings': True, 'noplaylist': True, 'quiet': True}</em><a class="headerlink" href="#royalnet.audio.YtdlFile.ytdl_args" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.YtdlInfo">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">YtdlInfo</code><span class="sig-paren">(</span><em>info: Dict[str, Any]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.YtdlInfo" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper around youtube_dl extracted info.</p>
<dl class="method">
<dt id="royalnet.audio.YtdlInfo.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>info: Dict[str, Any]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.YtdlInfo.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a YtdlInfo from the dict returned by the <code class="xref py py-func docutils literal notranslate"><span class="pre">youtube_dl.YoutubeDL.extract_info()</span></code> function.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Does not download the info, for that use <a class="reference internal" href="#royalnet.audio.YtdlInfo.create_from_url" title="royalnet.audio.YtdlInfo.create_from_url"><code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.audio.YtdlInfo.create_from_url()</span></code></a>.</p>
</div>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.YtdlInfo.create_from_url">
<em class="property">static </em><code class="descname">create_from_url</code><span class="sig-paren">(</span><em>url</em>, <em>**ytdl_args</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.youtubedl.YtdlInfo]<a class="headerlink" href="#royalnet.audio.YtdlInfo.create_from_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.audio.YtdlInfo.download">
<code class="descname">download</code><span class="sig-paren">(</span><em>outtmpl='%(title)s-%(id)s.%(ext)s'</em>, <em>**ytdl_args</em><span class="sig-paren">)</span> &#x2192; royalnet.audio.youtubedl.YtdlFile<a class="headerlink" href="#royalnet.audio.YtdlInfo.download" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.audio.YtdlInfo.to_discord_embed">
<code class="descname">to_discord_embed</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; discord.embeds.Embed<a class="headerlink" href="#royalnet.audio.YtdlInfo.to_discord_embed" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.RoyalPCMFile">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">RoyalPCMFile</code><span class="sig-paren">(</span><em>info: royalnet.audio.youtubedl.YtdlInfo</em>, <em>**ytdl_args</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMFile" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.audio.RoyalPCMFile.audio_filename">
<code class="descname">audio_filename</code><a class="headerlink" href="#royalnet.audio.RoyalPCMFile.audio_filename" title="Permalink to this definition"></a></dt>
<dd><p>Returns:
The name of the downloaded and PCM-converted audio file.</p>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.RoyalPCMFile.create_from_url">
<em class="property">static </em><code class="descname">create_from_url</code><span class="sig-paren">(</span><em>url: str</em>, <em>**ytdl_args</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmfile.RoyalPCMFile]<a class="headerlink" href="#royalnet.audio.RoyalPCMFile.create_from_url" title="Permalink to this definition"></a></dt>
<dd><p>Download a file with youtube_dl and create a list of <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMFile</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>url</strong> The url of the file to download.</p></li>
<li><p><strong>ytdl_args</strong> Extra arguments to be passed to YoutubeDL while downloading.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of RoyalPCMAudios, each corresponding to a downloaded video.</p>
</dd>
</dl>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.RoyalPCMFile.create_from_ytsearch">
<em class="property">static </em><code class="descname">create_from_ytsearch</code><span class="sig-paren">(</span><em>search: str</em>, <em>amount: int = 1</em>, <em>**ytdl_args</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmfile.RoyalPCMFile]<a class="headerlink" href="#royalnet.audio.RoyalPCMFile.create_from_ytsearch" title="Permalink to this definition"></a></dt>
<dd><p>Search a string on YouTube and download the first <code class="docutils literal notranslate"><span class="pre">amount</span></code> number of videos, then download those with youtube_dl and create a list of <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMFile</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>search</strong> The string to search on YouTube.</p></li>
<li><p><strong>amount</strong> The number of videos to download.</p></li>
<li><p><strong>ytdl_args</strong> Extra arguments to be passed to YoutubeDL while downloading.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of RoyalPCMFiles, each corresponding to a downloaded video.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.RoyalPCMFile.delete_audio_file">
<code class="descname">delete_audio_file</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMFile.delete_audio_file" title="Permalink to this definition"></a></dt>
<dd><p>Delete the PCM-converted audio file.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.audio.RoyalPCMFile.ytdl_args">
<code class="descname">ytdl_args</code><em class="property"> = {'format': 'bestaudio'}</em><a class="headerlink" href="#royalnet.audio.RoyalPCMFile.ytdl_args" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.audio.RoyalPCMFile.ytdl_filename">
<code class="descname">ytdl_filename</code><a class="headerlink" href="#royalnet.audio.RoyalPCMFile.ytdl_filename" title="Permalink to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The name of the downloaded video file, as a <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd>
</dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Its going to be deleted as soon as the <code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMFile.__init__()</span></code> function has completed, so its probably not going to be very useful…</p>
</div>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.audio.RoyalPCMAudio">
<em class="property">class </em><code class="descclassname">royalnet.audio.</code><code class="descname">RoyalPCMAudio</code><span class="sig-paren">(</span><em>rpf: royalnet.audio.royalpcmfile.RoyalPCMFile</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMAudio" title="Permalink to this definition"></a></dt>
<dd><p>A <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/api.html#discord.AudioSource" title="(in discord.py v1.2.2)"><code class="xref py py-class docutils literal notranslate"><span class="pre">discord.AudioSource</span></code></a> that keeps data in a file instead of in memory.</p>
<dl class="method">
<dt id="royalnet.audio.RoyalPCMAudio.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>rpf: royalnet.audio.royalpcmfile.RoyalPCMFile</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a <code class="xref py py-class docutils literal notranslate"><span class="pre">discord.audio.RoyalPCMAudio</span></code> from a <a class="reference internal" href="#royalnet.audio.RoyalPCMFile" title="royalnet.audio.RoyalPCMFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMFile</span></code></a>.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Not recommended, use <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio.create_from_url" title="royalnet.audio.RoyalPCMAudio.create_from_url"><code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio.create_from_url()</span></code></a> or <a class="reference internal" href="#royalnet.audio.RoyalPCMAudio.create_from_ytsearch" title="royalnet.audio.RoyalPCMAudio.create_from_ytsearch"><code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.audio.RoyalPCMAudio.create_from_ytsearch()</span></code></a> instead.</p>
</div>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.RoyalPCMAudio.create_from_url">
<em class="property">static </em><code class="descname">create_from_url</code><span class="sig-paren">(</span><em>url: str</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.create_from_url" title="Permalink to this definition"></a></dt>
<dd><p>Download a file with youtube_dl and create a list of RoyalPCMAudios.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>url</strong> The url of the file to download.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of RoyalPCMAudios, each corresponding to a downloaded video.</p>
</dd>
</dl>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.audio.RoyalPCMAudio.create_from_ytsearch">
<em class="property">static </em><code class="descname">create_from_ytsearch</code><span class="sig-paren">(</span><em>search: str</em>, <em>amount: int = 1</em><span class="sig-paren">)</span> &#x2192; List[royalnet.audio.royalpcmaudio.RoyalPCMAudio]<a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.create_from_ytsearch" title="Permalink to this definition"></a></dt>
<dd><p>Search a string on YouTube and download the first <code class="docutils literal notranslate"><span class="pre">amount</span></code> number of videos, then download those with youtube_dl and create a list of RoyalPCMAudios.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>search</strong> The string to search on YouTube.</p></li>
<li><p><strong>amount</strong> The number of videos to download.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of RoyalPCMAudios, each corresponding to a downloaded video.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.RoyalPCMAudio.delete">
<code class="descname">delete</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.delete" title="Permalink to this definition"></a></dt>
<dd><p>Permanently delete the downloaded file.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.RoyalPCMAudio.is_opus">
<code class="descname">is_opus</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.is_opus" title="Permalink to this definition"></a></dt>
<dd><p>This audio file isnt Opus-encoded, but PCM-encoded.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><code class="docutils literal notranslate"><span class="pre">False</span></code>.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.audio.RoyalPCMAudio.read">
<code class="descname">read</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.audio.RoyalPCMAudio.read" title="Permalink to this definition"></a></dt>
<dd><p>Reads 20ms worth of audio.</p>
<p>If the audio is complete, then returning an empty <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#bytes" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>-like object to signal this is the way to do so.</p>
</dd></dl>
</dd></dl>
</div> </div>

View file

@ -159,194 +159,6 @@
<h1>royalnet.bots<a class="headerlink" href="#royalnet-bots" title="Permalink to this headline"></a></h1> <h1>royalnet.bots<a class="headerlink" href="#royalnet-bots" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.bots"></span><p>Various bot interfaces, and a generic class to create new ones.</p>
<dl class="class">
<dt id="royalnet.bots.TelegramBot">
<em class="property">class </em><code class="descclassname">royalnet.bots.</code><code class="descname">TelegramBot</code><span class="sig-paren">(</span><em>*</em>, <em>telegram_config: royalnet.bots.telegram.TelegramConfig</em>, <em>royalnet_config: Optional[royalnet.network.royalnetconfig.RoyalnetConfig] = None</em>, <em>database_config: Optional[royalnet.database.databaseconfig.DatabaseConfig] = None</em>, <em>command_prefix: str = '/'</em>, <em>commands: List[Type[royalnet.utils.command.Command]] = None</em>, <em>missing_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em>, <em>error_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.TelegramBot" title="Permalink to this definition"></a></dt>
<dd><p>A bot that connects to <a class="reference external" href="https://telegram.org/">Telegram</a>.</p>
<dl class="method">
<dt id="royalnet.bots.TelegramBot._call_factory">
<code class="descname">_call_factory</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Type[royalnet.utils.call.Call]<a class="headerlink" href="#royalnet.bots.TelegramBot._call_factory" title="Permalink to this definition"></a></dt>
<dd><p>Create the TelegramCall class, representing a command call. It should inherit from <a class="reference internal" href="utils.html#royalnet.utils.Call" title="royalnet.utils.Call"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.utils.Call</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The created TelegramCall class.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.TelegramBot._handle_update">
<code class="descname">_handle_update</code><span class="sig-paren">(</span><em>update: telegram.update.Update</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.TelegramBot._handle_update" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.bots.TelegramBot._init_client">
<code class="descname">_init_client</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.TelegramBot._init_client" title="Permalink to this definition"></a></dt>
<dd><p>Create the <a class="reference external" href="https://python-telegram-bot.readthedocs.io/en/stable/telegram.bot.html#telegram.Bot" title="(in Python Telegram Bot v11.1)"><code class="xref py py-class docutils literal notranslate"><span class="pre">telegram.Bot</span></code></a>, and set the starting offset.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.bots.TelegramBot.botfather_command_string">
<code class="descname">botfather_command_string</code><a class="headerlink" href="#royalnet.bots.TelegramBot.botfather_command_string" title="Permalink to this definition"></a></dt>
<dd><p>Generate a string to be pasted in the “Edit Commands” BotFather prompt.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.bots.TelegramBot.interface_name">
<code class="descname">interface_name</code><em class="property"> = 'telegram'</em><a class="headerlink" href="#royalnet.bots.TelegramBot.interface_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.bots.TelegramBot.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.TelegramBot.run" title="Permalink to this definition"></a></dt>
<dd><p>A blocking coroutine that should make the bot start listening to commands and requests.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.bots.TelegramConfig">
<em class="property">class </em><code class="descclassname">royalnet.bots.</code><code class="descname">TelegramConfig</code><span class="sig-paren">(</span><em>token: str</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.TelegramConfig" title="Permalink to this definition"></a></dt>
<dd><p>The specific configuration to be used for <code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database.TelegramBot</span></code>.</p>
</dd></dl>
<dl class="class">
<dt id="royalnet.bots.DiscordBot">
<em class="property">class </em><code class="descclassname">royalnet.bots.</code><code class="descname">DiscordBot</code><span class="sig-paren">(</span><em>*</em>, <em>discord_config: royalnet.bots.discord.DiscordConfig</em>, <em>royalnet_config: Optional[royalnet.network.royalnetconfig.RoyalnetConfig] = None</em>, <em>database_config: Optional[royalnet.database.databaseconfig.DatabaseConfig] = None</em>, <em>command_prefix: str = '!'</em>, <em>commands: List[Type[royalnet.utils.command.Command]] = None</em>, <em>missing_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em>, <em>error_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot" title="Permalink to this definition"></a></dt>
<dd><p>A bot that connects to <a class="reference external" href="https://discordapp.com/">Discord</a>.</p>
<dl class="method">
<dt id="royalnet.bots.DiscordBot._bot_factory">
<code class="descname">_bot_factory</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Type[discord.client.Client]<a class="headerlink" href="#royalnet.bots.DiscordBot._bot_factory" title="Permalink to this definition"></a></dt>
<dd><p>Create a custom DiscordClient class inheriting from <a class="reference external" href="https://discordpy.readthedocs.io/en/latest/api.html#discord.Client" title="(in discord.py v1.2.2)"><code class="xref py py-class docutils literal notranslate"><span class="pre">discord.Client</span></code></a>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot._call_factory">
<code class="descname">_call_factory</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Type[royalnet.utils.call.Call]<a class="headerlink" href="#royalnet.bots.DiscordBot._call_factory" title="Permalink to this definition"></a></dt>
<dd><p>Create the TelegramCall class, representing a command call. It should inherit from <a class="reference internal" href="utils.html#royalnet.utils.Call" title="royalnet.utils.Call"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.utils.Call</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The created TelegramCall class.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot._init_client">
<code class="descname">_init_client</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot._init_client" title="Permalink to this definition"></a></dt>
<dd><p>Create an instance of the DiscordClient class created in <a class="reference internal" href="#royalnet.bots.DiscordBot._bot_factory" title="royalnet.bots.DiscordBot._bot_factory"><code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.bots.DiscordBot._bot_factory()</span></code></a>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot._init_voice">
<code class="descname">_init_voice</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot._init_voice" title="Permalink to this definition"></a></dt>
<dd><p>Initialize the variables needed for the connection to voice chat.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot.add_to_music_data">
<code class="descname">add_to_music_data</code><span class="sig-paren">(</span><em>audio_sources: List[royalnet.audio.royalpcmaudio.RoyalPCMAudio], guild: discord.guild.Guild</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot.add_to_music_data" title="Permalink to this definition"></a></dt>
<dd><p>Add a file to the corresponding music_data object.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot.advance_music_data">
<code class="descname">advance_music_data</code><span class="sig-paren">(</span><em>guild: discord.guild.Guild</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot.advance_music_data" title="Permalink to this definition"></a></dt>
<dd><p>Try to play the next song, while it exists. Otherwise, just return.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.bots.DiscordBot.interface_name">
<code class="descname">interface_name</code><em class="property"> = 'discord'</em><a class="headerlink" href="#royalnet.bots.DiscordBot.interface_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot.run" title="Permalink to this definition"></a></dt>
<dd><p>Login to Discord, then run the bot.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.DiscordBot.update_activity_with_source_title">
<code class="descname">update_activity_with_source_title</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordBot.update_activity_with_source_title" title="Permalink to this definition"></a></dt>
<dd><p>Change the bots presence (using <code class="xref py py-func docutils literal notranslate"><span class="pre">discord.Client.change_presence()</span></code>) to match the current listening status.</p>
<p>If multiple guilds are using the bot, the bot will always have an empty presence.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.bots.DiscordConfig">
<em class="property">class </em><code class="descclassname">royalnet.bots.</code><code class="descname">DiscordConfig</code><span class="sig-paren">(</span><em>token: str</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.DiscordConfig" title="Permalink to this definition"></a></dt>
<dd><p>The specific configuration to be used for <a class="reference internal" href="#royalnet.bots.DiscordBot" title="royalnet.bots.DiscordBot"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.bots.DiscordBot</span></code></a>.</p>
</dd></dl>
<dl class="class">
<dt id="royalnet.bots.GenericBot">
<em class="property">class </em><code class="descclassname">royalnet.bots.</code><code class="descname">GenericBot</code><span class="sig-paren">(</span><em>*</em>, <em>royalnet_config: Optional[royalnet.network.royalnetconfig.RoyalnetConfig] = None</em>, <em>database_config: Optional[royalnet.database.databaseconfig.DatabaseConfig] = None</em>, <em>command_prefix: str</em>, <em>commands: List[Type[royalnet.utils.command.Command]] = None</em>, <em>missing_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em>, <em>error_command: Type[royalnet.utils.command.Command] = &lt;class 'royalnet.commands.null.NullCommand'&gt;</em>, <em>loop: asyncio.events.AbstractEventLoop = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.GenericBot" title="Permalink to this definition"></a></dt>
<dd><p>A generic bot class, to be used as base for the other more specific classes, such as <span class="xref std std-ref">royalnet.bots.TelegramBot</span> and <span class="xref std std-ref">royalnet.bots.DiscordBot</span>.</p>
<dl class="method">
<dt id="royalnet.bots.GenericBot._call_factory">
<code class="descname">_call_factory</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; Type[royalnet.utils.call.Call]<a class="headerlink" href="#royalnet.bots.GenericBot._call_factory" title="Permalink to this definition"></a></dt>
<dd><p>Create the TelegramCall class, representing a command call. It should inherit from <a class="reference internal" href="utils.html#royalnet.utils.Call" title="royalnet.utils.Call"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.utils.Call</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The created TelegramCall class.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot._init_commands">
<code class="descname">_init_commands</code><span class="sig-paren">(</span><em>command_prefix: str, commands: List[Type[royalnet.utils.command.Command]], missing_command: Type[royalnet.utils.command.Command], error_command: Type[royalnet.utils.command.Command]</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.bots.GenericBot._init_commands" title="Permalink to this definition"></a></dt>
<dd><p>Generate the <code class="docutils literal notranslate"><span class="pre">commands</span></code> dictionary required to handle incoming messages, and the <code class="docutils literal notranslate"><span class="pre">network_handlers</span></code> dictionary required to handle incoming requests.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot._init_database">
<code class="descname">_init_database</code><span class="sig-paren">(</span><em>commands: List[Type[royalnet.utils.command.Command]], database_config: royalnet.database.databaseconfig.DatabaseConfig</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.GenericBot._init_database" title="Permalink to this definition"></a></dt>
<dd><p>Create an <a class="reference internal" href="database.html#royalnet.database.Alchemy" title="royalnet.database.Alchemy"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database.Alchemy</span></code></a> with the tables required by the commands. Then, find the chain that links the <code class="docutils literal notranslate"><span class="pre">master_table</span></code> to the <code class="docutils literal notranslate"><span class="pre">identity_table</span></code>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot._init_royalnet">
<code class="descname">_init_royalnet</code><span class="sig-paren">(</span><em>royalnet_config: royalnet.network.royalnetconfig.RoyalnetConfig</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.GenericBot._init_royalnet" title="Permalink to this definition"></a></dt>
<dd><p>Create a <a class="reference internal" href="network.html#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a>, and run it as a <a class="reference external" href="https://docs.python.org/3.7/library/asyncio-task.html#asyncio.Task" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot._network_handler">
<code class="descname">_network_handler</code><span class="sig-paren">(</span><em>request_dict: dict</em><span class="sig-paren">)</span> &#x2192; dict<a class="headerlink" href="#royalnet.bots.GenericBot._network_handler" title="Permalink to this definition"></a></dt>
<dd><p>Handle a single <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#dict" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> received from the <a class="reference internal" href="network.html#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>Another <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#dict" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>, formatted as a <a class="reference internal" href="network.html#royalnet.network.Response" title="royalnet.network.Response"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Response</span></code></a>.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot.call">
<code class="descname">call</code><span class="sig-paren">(</span><em>command_name: str</em>, <em>channel</em>, <em>parameters: List[str] = None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.GenericBot.call" title="Permalink to this definition"></a></dt>
<dd><p>Call the command with the specified name.</p>
<p>If it doesnt exist, call <code class="docutils literal notranslate"><span class="pre">self.missing_command</span></code>.</p>
<p>If an exception is raised during the execution of the command, call <code class="docutils literal notranslate"><span class="pre">self.error_command</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.bots.GenericBot.interface_name">
<code class="descname">interface_name</code><em class="property"> = NotImplemented</em><a class="headerlink" href="#royalnet.bots.GenericBot.interface_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.bots.GenericBot.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.bots.GenericBot.run" title="Permalink to this definition"></a></dt>
<dd><p>A blocking coroutine that should make the bot start listening to commands and requests.</p>
</dd></dl>
</dd></dl>
</div> </div>

View file

@ -159,133 +159,6 @@
<h1>royalnet.commands<a class="headerlink" href="#royalnet-commands" title="Permalink to this headline"></a></h1> <h1>royalnet.commands<a class="headerlink" href="#royalnet-commands" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.commands"></span><p>Commands that can be used in bots.</p>
<p>These probably wont suit your needs, as they are tailored for the bots of the Royal Games gaming community, but they may be useful to develop new ones.</p>
<dl class="class">
<dt id="royalnet.commands.NullCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">NullCommand</code><a class="headerlink" href="#royalnet.commands.NullCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.PingCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">PingCommand</code><a class="headerlink" href="#royalnet.commands.PingCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.ShipCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">ShipCommand</code><a class="headerlink" href="#royalnet.commands.ShipCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.SmecdsCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">SmecdsCommand</code><a class="headerlink" href="#royalnet.commands.SmecdsCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.CiaoruoziCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">CiaoruoziCommand</code><a class="headerlink" href="#royalnet.commands.CiaoruoziCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.ColorCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">ColorCommand</code><a class="headerlink" href="#royalnet.commands.ColorCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.SyncCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">SyncCommand</code><a class="headerlink" href="#royalnet.commands.SyncCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.DiarioCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">DiarioCommand</code><a class="headerlink" href="#royalnet.commands.DiarioCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.RageCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">RageCommand</code><a class="headerlink" href="#royalnet.commands.RageCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.DateparserCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">DateparserCommand</code><a class="headerlink" href="#royalnet.commands.DateparserCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.AuthorCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">AuthorCommand</code><a class="headerlink" href="#royalnet.commands.AuthorCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.ReminderCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">ReminderCommand</code><a class="headerlink" href="#royalnet.commands.ReminderCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.KvactiveCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">KvactiveCommand</code><a class="headerlink" href="#royalnet.commands.KvactiveCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.KvCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">KvCommand</code><a class="headerlink" href="#royalnet.commands.KvCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.KvrollCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">KvrollCommand</code><a class="headerlink" href="#royalnet.commands.KvrollCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.VideoinfoCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">VideoinfoCommand</code><a class="headerlink" href="#royalnet.commands.VideoinfoCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.SummonCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">SummonCommand</code><a class="headerlink" href="#royalnet.commands.SummonCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.PlayCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">PlayCommand</code><a class="headerlink" href="#royalnet.commands.PlayCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.SkipCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">SkipCommand</code><a class="headerlink" href="#royalnet.commands.SkipCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.PlaymodeCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">PlaymodeCommand</code><a class="headerlink" href="#royalnet.commands.PlaymodeCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.VideochannelCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">VideochannelCommand</code><a class="headerlink" href="#royalnet.commands.VideochannelCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.MissingCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">MissingCommand</code><a class="headerlink" href="#royalnet.commands.MissingCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.CvCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">CvCommand</code><a class="headerlink" href="#royalnet.commands.CvCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.PauseCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">PauseCommand</code><a class="headerlink" href="#royalnet.commands.PauseCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="class">
<dt id="royalnet.commands.QueueCommand">
<em class="property">class </em><code class="descclassname">royalnet.commands.</code><code class="descname">QueueCommand</code><a class="headerlink" href="#royalnet.commands.QueueCommand" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</div> </div>

View file

@ -85,7 +85,7 @@
<li class="toctree-l1"><a class="reference internal" href="bots.html">royalnet.bots</a></li> <li class="toctree-l1"><a class="reference internal" href="bots.html">royalnet.bots</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">royalnet.commands</a></li> <li class="toctree-l1"><a class="reference internal" href="commands.html">royalnet.commands</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">royalnet.database</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">royalnet.database</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-royalnet.database.tables">Tables</a></li> <li class="toctree-l2"><a class="reference internal" href="#tables">Tables</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="network.html">royalnet.network</a></li> <li class="toctree-l1"><a class="reference internal" href="network.html">royalnet.network</a></li>
@ -160,393 +160,8 @@
<h1>royalnet.database<a class="headerlink" href="#royalnet-database" title="Permalink to this headline"></a></h1> <h1>royalnet.database<a class="headerlink" href="#royalnet-database" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.database"></span><p>Relational database classes and methods.</p> <div class="section" id="tables">
<dl class="class"> <h2>Tables<a class="headerlink" href="#tables" title="Permalink to this headline"></a></h2>
<dt id="royalnet.database.Alchemy">
<em class="property">class </em><code class="descclassname">royalnet.database.</code><code class="descname">Alchemy</code><span class="sig-paren">(</span><em>database_uri: str, tables: Set[T]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.Alchemy" title="Permalink to this definition"></a></dt>
<dd><p>A wrapper around SQLAlchemy declarative that allows to use multiple databases at once while maintaining a single table-class for both of them.</p>
<dl class="method">
<dt id="royalnet.database.Alchemy.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>database_uri: str, tables: Set[T]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.Alchemy.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a new Alchemy object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>database_uri</strong> The uri of the database, as described at <a class="reference external" href="https://docs.sqlalchemy.org/en/13/core/engines.html">https://docs.sqlalchemy.org/en/13/core/engines.html</a> .</p></li>
<li><p><strong>tables</strong> The set of tables to be created and used in the selected database. Check the tables submodule for more details.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.database.Alchemy._create_tables">
<code class="descname">_create_tables</code><span class="sig-paren">(</span><em>tables: Set[T]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.Alchemy._create_tables" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.database.Alchemy.session_acm">
<code class="descname">session_acm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.Alchemy.session_acm" title="Permalink to this definition"></a></dt>
<dd><p>Use Alchemy as a asyncronous context manager (to be used in async with statements).</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.database.Alchemy.session_cm">
<code class="descname">session_cm</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.Alchemy.session_cm" title="Permalink to this definition"></a></dt>
<dd><p>Use Alchemy as a context manager (to be used in with statements).</p>
</dd></dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.database.relationshiplinkchain">
<code class="descclassname">royalnet.database.</code><code class="descname">relationshiplinkchain</code><span class="sig-paren">(</span><em>starting_class</em>, <em>ending_class</em><span class="sig-paren">)</span> &#x2192; Optional[tuple]<a class="headerlink" href="#royalnet.database.relationshiplinkchain" title="Permalink to this definition"></a></dt>
<dd><p>Find the path to follow to get from the starting table to the ending table.</p>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.DatabaseConfig">
<em class="property">class </em><code class="descclassname">royalnet.database.</code><code class="descname">DatabaseConfig</code><span class="sig-paren">(</span><em>database_uri: str, master_table: Type[CT_co], identity_table: Type[CT_co], identity_column_name: str</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.DatabaseConfig" title="Permalink to this definition"></a></dt>
<dd><p>The configuration to be used for the <span class="xref std std-ref">royalnet.database.Alchemy</span> component of <span class="xref std std-ref">royalnet.bots.GenericBot</span>.</p>
</dd></dl>
<div class="section" id="module-royalnet.database.tables">
<span id="tables"></span><h2>Tables<a class="headerlink" href="#module-royalnet.database.tables" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="royalnet.database.tables.Royal">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Royal</code><a class="headerlink" href="#royalnet.database.tables.Royal" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Royal.avatar">
<code class="descname">avatar</code><em class="property"> = Column(None, LargeBinary(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Royal.avatar" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Royal.password">
<code class="descname">password</code><em class="property"> = Column(None, LargeBinary(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Royal.password" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Royal.role">
<code class="descname">role</code><em class="property"> = Column(None, String(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Royal.role" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Royal.uid">
<code class="descname">uid</code><em class="property"> = Column(None, Integer(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Royal.uid" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Royal.username">
<code class="descname">username</code><em class="property"> = Column(None, String(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Royal.username" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Telegram">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Telegram</code><a class="headerlink" href="#royalnet.database.tables.Telegram" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Telegram.first_name">
<code class="descname">first_name</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Telegram.first_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Telegram.last_name">
<code class="descname">last_name</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Telegram.last_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.database.tables.Telegram.mention">
<code class="descname">mention</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.database.tables.Telegram.mention" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Telegram.royal">
<code class="descname">royal</code><em class="property"> = &lt;RelationshipProperty at 0x7fa12b8; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Telegram.royal" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Telegram.royal_id">
<code class="descname">royal_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Telegram.royal_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Telegram.tg_id">
<code class="descname">tg_id</code><em class="property"> = Column(None, BigInteger(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Telegram.tg_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Telegram.username">
<code class="descname">username</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Telegram.username" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Diario">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Diario</code><a class="headerlink" href="#royalnet.database.tables.Diario" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Diario.context">
<code class="descname">context</code><em class="property"> = Column(None, Text(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.context" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.creator">
<code class="descname">creator</code><em class="property"> = &lt;RelationshipProperty at 0x7fa1198; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Diario.creator" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.creator_id">
<code class="descname">creator_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.creator_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.diario_id">
<code class="descname">diario_id</code><em class="property"> = Column(None, Integer(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Diario.diario_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.media_url">
<code class="descname">media_url</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.media_url" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.quoted">
<code class="descname">quoted</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.quoted" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.quoted_account">
<code class="descname">quoted_account</code><em class="property"> = &lt;RelationshipProperty at 0x7fa17c8; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Diario.quoted_account" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.quoted_account_id">
<code class="descname">quoted_account_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.quoted_account_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.spoiler">
<code class="descname">spoiler</code><em class="property"> = Column(None, Boolean(), table=None, default=ColumnDefault(False))</em><a class="headerlink" href="#royalnet.database.tables.Diario.spoiler" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.text">
<code class="descname">text</code><em class="property"> = Column(None, Text(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Diario.text" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Diario.timestamp">
<code class="descname">timestamp</code><em class="property"> = Column(None, DateTime(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Diario.timestamp" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Alias">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Alias</code><a class="headerlink" href="#royalnet.database.tables.Alias" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Alias.alias">
<code class="descname">alias</code><em class="property"> = Column(None, String(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Alias.alias" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Alias.royal">
<code class="descname">royal</code><em class="property"> = &lt;RelationshipProperty at 0x7fa1270; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Alias.royal" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Alias.royal_id">
<code class="descname">royal_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Alias.royal_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.ActiveKvGroup">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">ActiveKvGroup</code><a class="headerlink" href="#royalnet.database.tables.ActiveKvGroup" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.ActiveKvGroup.group">
<code class="descname">group</code><em class="property"> = &lt;RelationshipProperty at 0x7f95d20; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.ActiveKvGroup.group" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.ActiveKvGroup.group_name">
<code class="descname">group_name</code><em class="property"> = Column(None, String(), ForeignKey('keygroups.group_name'), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.ActiveKvGroup.group_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.ActiveKvGroup.royal">
<code class="descname">royal</code><em class="property"> = &lt;RelationshipProperty at 0x7fa14b0; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.ActiveKvGroup.royal" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.ActiveKvGroup.royal_id">
<code class="descname">royal_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.ActiveKvGroup.royal_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Keyvalue">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Keyvalue</code><a class="headerlink" href="#royalnet.database.tables.Keyvalue" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Keyvalue.group">
<code class="descname">group</code><em class="property"> = &lt;RelationshipProperty at 0x7fa1a08; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Keyvalue.group" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Keyvalue.group_name">
<code class="descname">group_name</code><em class="property"> = Column(None, String(), ForeignKey('keygroups.group_name'), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Keyvalue.group_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Keyvalue.key">
<code class="descname">key</code><em class="property"> = Column(None, String(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Keyvalue.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Keyvalue.value">
<code class="descname">value</code><em class="property"> = Column(None, String(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Keyvalue.value" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Keygroup">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Keygroup</code><a class="headerlink" href="#royalnet.database.tables.Keygroup" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Keygroup.group_name">
<code class="descname">group_name</code><em class="property"> = Column(None, String(), ForeignKey('keygroups.group_name'), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Keygroup.group_name" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.Discord">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">Discord</code><a class="headerlink" href="#royalnet.database.tables.Discord" title="Permalink to this definition"></a></dt>
<dd><dl class="attribute">
<dt id="royalnet.database.tables.Discord.avatar_hash">
<code class="descname">avatar_hash</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Discord.avatar_hash" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Discord.discord_id">
<code class="descname">discord_id</code><em class="property"> = Column(None, BigInteger(), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.Discord.discord_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Discord.discriminator">
<code class="descname">discriminator</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Discord.discriminator" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.database.tables.Discord.full_username">
<code class="descname">full_username</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.database.tables.Discord.full_username" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Discord.royal">
<code class="descname">royal</code><em class="property"> = &lt;RelationshipProperty at 0x7fa1930; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.Discord.royal" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Discord.royal_id">
<code class="descname">royal_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Discord.royal_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.Discord.username">
<code class="descname">username</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.Discord.username" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.WikiPage">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">WikiPage</code><a class="headerlink" href="#royalnet.database.tables.WikiPage" title="Permalink to this definition"></a></dt>
<dd><p>Wiki page properties.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Requires PostgreSQL!</p>
</div>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiPage.content">
<code class="descname">content</code><em class="property"> = Column(None, Text(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.WikiPage.content" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiPage.css">
<code class="descname">css</code><em class="property"> = Column(None, String(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.WikiPage.css" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiPage.format">
<code class="descname">format</code><em class="property"> = Column(None, String(), table=None, nullable=False, default=ColumnDefault('markdown'))</em><a class="headerlink" href="#royalnet.database.tables.WikiPage.format" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiPage.page_id">
<code class="descname">page_id</code><em class="property"> = Column(None, UUID(as_uuid=True), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiPage.page_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiPage.title">
<code class="descname">title</code><em class="property"> = Column(None, String(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiPage.title" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.database.tables.WikiRevision">
<em class="property">class </em><code class="descclassname">royalnet.database.tables.</code><code class="descname">WikiRevision</code><a class="headerlink" href="#royalnet.database.tables.WikiRevision" title="Permalink to this definition"></a></dt>
<dd><p>A wiki page revision.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Requires PostgreSQL!</p>
</div>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.author">
<code class="descname">author</code><em class="property"> = &lt;RelationshipProperty at 0x7fa1390; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.author" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.author_id">
<code class="descname">author_id</code><em class="property"> = Column(None, Integer(), ForeignKey('royals.uid'), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.author_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.diff">
<code class="descname">diff</code><em class="property"> = Column(None, Text(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.diff" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.page">
<code class="descname">page</code><em class="property"> = &lt;RelationshipProperty at 0x7f95df8; no key&gt;</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.page" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.page_id">
<code class="descname">page_id</code><em class="property"> = Column(None, UUID(as_uuid=True), ForeignKey('wikipages.page_id'), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.page_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.reason">
<code class="descname">reason</code><em class="property"> = Column(None, Text(), table=None)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.reason" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.revision_id">
<code class="descname">revision_id</code><em class="property"> = Column(None, UUID(as_uuid=True), table=None, primary_key=True, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.revision_id" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt id="royalnet.database.tables.WikiRevision.timestamp">
<code class="descname">timestamp</code><em class="property"> = Column(None, DateTime(), table=None, nullable=False)</em><a class="headerlink" href="#royalnet.database.tables.WikiRevision.timestamp" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</div> </div>
</div> </div>

View file

@ -159,73 +159,6 @@
<h1>royalnet.error<a class="headerlink" href="#royalnet-error" title="Permalink to this headline"></a></h1> <h1>royalnet.error<a class="headerlink" href="#royalnet-error" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.error"></span><dl class="exception">
<dt id="royalnet.error.CurrentlyDisabledError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">CurrentlyDisabledError</code><a class="headerlink" href="#royalnet.error.CurrentlyDisabledError" title="Permalink to this definition"></a></dt>
<dd><p>This feature is temporarely disabled and is not available right now.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.ExternalError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">ExternalError</code><a class="headerlink" href="#royalnet.error.ExternalError" title="Permalink to this definition"></a></dt>
<dd><p>Something went wrong in a non-Royalnet component and the command execution cannot be completed.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.FileTooBigError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">FileTooBigError</code><a class="headerlink" href="#royalnet.error.FileTooBigError" title="Permalink to this definition"></a></dt>
<dd><p>The file to be downloaded would be too big to store; therefore, it has been skipped.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.InvalidConfigError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">InvalidConfigError</code><a class="headerlink" href="#royalnet.error.InvalidConfigError" title="Permalink to this definition"></a></dt>
<dd><p>The bot has not been configured correctly, therefore the command can not function.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.InvalidInputError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">InvalidInputError</code><a class="headerlink" href="#royalnet.error.InvalidInputError" title="Permalink to this definition"></a></dt>
<dd><p>The command has received invalid input and cannot complete.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.NoneFoundError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">NoneFoundError</code><a class="headerlink" href="#royalnet.error.NoneFoundError" title="Permalink to this definition"></a></dt>
<dd><p>The element that was being looked for was not found.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.RoyalnetRequestError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">RoyalnetRequestError</code><span class="sig-paren">(</span><em>error: ResponseError</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.error.RoyalnetRequestError" title="Permalink to this definition"></a></dt>
<dd><p>An error was raised while handling the Royalnet request.</p>
<p>This exception contains the <a class="reference internal" href="network.html#royalnet.network.ResponseError" title="royalnet.network.ResponseError"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.ResponseError</span></code></a> that was returned by the other Link.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.RoyalnetResponseError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">RoyalnetResponseError</code><a class="headerlink" href="#royalnet.error.RoyalnetResponseError" title="Permalink to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="network.html#royalnet.network.Response" title="royalnet.network.Response"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Response</span></code></a> that was received is invalid.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.TooManyFoundError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">TooManyFoundError</code><a class="headerlink" href="#royalnet.error.TooManyFoundError" title="Permalink to this definition"></a></dt>
<dd><p>Multiple elements matching the request were found, and only one was expected.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.UnregisteredError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">UnregisteredError</code><a class="headerlink" href="#royalnet.error.UnregisteredError" title="Permalink to this definition"></a></dt>
<dd><p>The command required a registered user, and the user was not registered.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.error.UnsupportedError">
<em class="property">exception </em><code class="descclassname">royalnet.error.</code><code class="descname">UnsupportedError</code><a class="headerlink" href="#royalnet.error.UnsupportedError" title="Permalink to this definition"></a></dt>
<dd><p>The command is not supported for the specified interface.</p>
</dd></dl>
</div> </div>

View file

@ -154,806 +154,8 @@
<h1 id="index">Index</h1> <h1 id="index">Index</h1>
<div class="genindex-jumpbox"> <div class="genindex-jumpbox">
<a href="#_"><strong>_</strong></a>
| <a href="#A"><strong>A</strong></a>
| <a href="#B"><strong>B</strong></a>
| <a href="#C"><strong>C</strong></a>
| <a href="#D"><strong>D</strong></a>
| <a href="#E"><strong>E</strong></a>
| <a href="#F"><strong>F</strong></a>
| <a href="#G"><strong>G</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#J"><strong>J</strong></a>
| <a href="#K"><strong>K</strong></a>
| <a href="#L"><strong>L</strong></a>
| <a href="#M"><strong>M</strong></a>
| <a href="#N"><strong>N</strong></a>
| <a href="#O"><strong>O</strong></a>
| <a href="#P"><strong>P</strong></a>
| <a href="#Q"><strong>Q</strong></a>
| <a href="#R"><strong>R</strong></a>
| <a href="#S"><strong>S</strong></a>
| <a href="#T"><strong>T</strong></a>
| <a href="#U"><strong>U</strong></a>
| <a href="#V"><strong>V</strong></a>
| <a href="#W"><strong>W</strong></a>
| <a href="#Y"><strong>Y</strong></a>
</div> </div>
<h2 id="_">_</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.CommandArgs.__getitem__">__getitem__() (royalnet.utils.CommandArgs method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Playlist.__init__">__init__() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode.__init__">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool.__init__">(royalnet.audio.Pool method)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.__init__">(royalnet.audio.RoyalPCMAudio method)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlInfo.__init__">(royalnet.audio.YtdlInfo method)</a>
</li>
<li><a href="database.html#royalnet.database.Alchemy.__init__">(royalnet.database.Alchemy method)</a>
</li>
<li><a href="network.html#royalnet.network.Package.__init__">(royalnet.network.Package method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.__init__">(royalnet.utils.Call method)</a>
</li>
</ul></li>
<li><a href="bots.html#royalnet.bots.DiscordBot._bot_factory">_bot_factory() (royalnet.bots.DiscordBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot._call_factory">_call_factory() (royalnet.bots.DiscordBot method)</a>
<ul>
<li><a href="bots.html#royalnet.bots.GenericBot._call_factory">(royalnet.bots.GenericBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.TelegramBot._call_factory">(royalnet.bots.TelegramBot method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.Alchemy._create_tables">_create_tables() (royalnet.database.Alchemy method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Playlist._generate_generator">_generate_generator() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode._generate_generator">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool._generate_generator">(royalnet.audio.Pool method)</a>
</li>
</ul></li>
<li><a href="bots.html#royalnet.bots.TelegramBot._handle_update">_handle_update() (royalnet.bots.TelegramBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot._init_client">_init_client() (royalnet.bots.DiscordBot method)</a>
<ul>
<li><a href="bots.html#royalnet.bots.TelegramBot._init_client">(royalnet.bots.TelegramBot method)</a>
</li>
</ul></li>
<li><a href="bots.html#royalnet.bots.GenericBot._init_commands">_init_commands() (royalnet.bots.GenericBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.GenericBot._init_database">_init_database() (royalnet.bots.GenericBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.GenericBot._init_royalnet">_init_royalnet() (royalnet.bots.GenericBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot._init_voice">_init_voice() (royalnet.bots.DiscordBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.GenericBot._network_handler">_network_handler() (royalnet.bots.GenericBot method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call._session_init">_session_init() (royalnet.utils.Call method)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlFile._stop_download">_stop_download() (royalnet.audio.YtdlFile method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="A">A</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.ActiveKvGroup">ActiveKvGroup (class in royalnet.database.tables)</a>
</li>
<li><a href="audio.html#royalnet.audio.Playlist.add">add() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode.add">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool.add">(royalnet.audio.Pool method)</a>
</li>
</ul></li>
<li><a href="bots.html#royalnet.bots.DiscordBot.add_to_music_data">add_to_music_data() (royalnet.bots.DiscordBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot.advance_music_data">advance_music_data() (royalnet.bots.DiscordBot method)</a>
</li>
<li><a href="database.html#royalnet.database.Alchemy">Alchemy (class in royalnet.database)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.alchemy">alchemy (royalnet.utils.Call attribute)</a>, <a href="utils.html#royalnet.utils.Call.alchemy">[1]</a>
</li>
<li><a href="database.html#royalnet.database.tables.Alias">Alias (class in royalnet.database.tables)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Alias.alias">alias (royalnet.database.tables.Alias attribute)</a>
</li>
<li><a href="utils.html#royalnet.utils.andformat">andformat() (in module royalnet.utils)</a>
</li>
<li><a href="utils.html#royalnet.utils.asyncify">asyncify() (in module royalnet.utils)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.audio_filename">audio_filename (royalnet.audio.RoyalPCMFile attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.author">author (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.author_id">author_id (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="commands.html#royalnet.commands.AuthorCommand">AuthorCommand (class in royalnet.commands)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Royal.avatar">avatar (royalnet.database.tables.Royal attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.avatar_hash">avatar_hash (royalnet.database.tables.Discord attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="B">B</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="bots.html#royalnet.bots.TelegramBot.botfather_command_string">botfather_command_string (royalnet.bots.TelegramBot attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.Call">Call (class in royalnet.utils)</a>
</li>
<li><a href="bots.html#royalnet.bots.GenericBot.call">call() (royalnet.bots.GenericBot method)</a>
</li>
<li><a href="utils.html#royalnet.utils.cdj">cdj() (in module royalnet.utils)</a>
</li>
<li><a href="commands.html#royalnet.commands.CiaoruoziCommand">CiaoruoziCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.ColorCommand">ColorCommand (class in royalnet.commands)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command">Command (class in royalnet.utils)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.command_description">command_description (royalnet.utils.Command attribute)</a>, <a href="utils.html#royalnet.utils.Command.command_description">[1]</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.command_name">command_name (royalnet.utils.Command attribute)</a>, <a href="utils.html#royalnet.utils.Command.command_name">[1]</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.command_syntax">command_syntax (royalnet.utils.Command attribute)</a>, <a href="utils.html#royalnet.utils.Command.command_syntax">[1]</a>
</li>
<li><a href="utils.html#royalnet.utils.CommandArgs">CommandArgs (class in royalnet.utils)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.common">common() (royalnet.utils.Command class method)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink.connect">connect() (royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="network.html#royalnet.network.ConnectionClosedError">ConnectionClosedError</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.WikiPage.content">content (royalnet.database.tables.WikiPage attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.context">context (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="web.html#royalnet.web.create_app">create_app() (in module royalnet.web)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.create_from_url">create_from_url() (royalnet.audio.RoyalPCMAudio static method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.create_from_url">(royalnet.audio.RoyalPCMFile static method)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlFile.create_from_url">(royalnet.audio.YtdlFile static method)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlInfo.create_from_url">(royalnet.audio.YtdlInfo static method)</a>
</li>
</ul></li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.create_from_ytsearch">create_from_ytsearch() (royalnet.audio.RoyalPCMAudio static method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.create_from_ytsearch">(royalnet.audio.RoyalPCMFile static method)</a>
</li>
</ul></li>
<li><a href="database.html#royalnet.database.tables.Diario.creator">creator (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.creator_id">creator_id (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiPage.css">css (royalnet.database.tables.WikiPage attribute)</a>
</li>
<li><a href="error.html#royalnet.error.CurrentlyDisabledError">CurrentlyDisabledError</a>
</li>
<li><a href="commands.html#royalnet.commands.CvCommand">CvCommand (class in royalnet.commands)</a>
</li>
</ul></td>
</tr></table>
<h2 id="D">D</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.DatabaseConfig">DatabaseConfig (class in royalnet.database)</a>
</li>
<li><a href="commands.html#royalnet.commands.DateparserCommand">DateparserCommand (class in royalnet.commands)</a>
</li>
<li><a href="audio.html#royalnet.audio.Playlist.delete">delete() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode.delete">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool.delete">(royalnet.audio.Pool method)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.delete">(royalnet.audio.RoyalPCMAudio method)</a>
</li>
</ul></li>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.delete_audio_file">delete_audio_file() (royalnet.audio.RoyalPCMFile method)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlFile.delete_video_file">delete_video_file() (royalnet.audio.YtdlFile method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario">Diario (class in royalnet.database.tables)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Diario.diario_id">diario_id (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="commands.html#royalnet.commands.DiarioCommand">DiarioCommand (class in royalnet.commands)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.diff">diff (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord">Discord (class in royalnet.database.tables)</a>
</li>
<li><a href="utils.html#royalnet.utils.discord_escape">discord_escape() (in module royalnet.utils)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.discord_id">discord_id (royalnet.database.tables.Discord attribute)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot">DiscordBot (class in royalnet.bots)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordConfig">DiscordConfig (class in royalnet.bots)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.discriminator">discriminator (royalnet.database.tables.Discord attribute)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlInfo.download">download() (royalnet.audio.YtdlInfo method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="E">E</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="error.html#royalnet.error.ExternalError">ExternalError</a>
</li>
</ul></td>
</tr></table>
<h2 id="F">F</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.fileformat">fileformat() (in module royalnet.utils)</a>
</li>
<li><a href="error.html#royalnet.error.FileTooBigError">FileTooBigError</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer.find_client">find_client() (royalnet.network.RoyalnetServer method)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer.find_destination">find_destination() (royalnet.network.RoyalnetServer method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Telegram.first_name">first_name (royalnet.database.tables.Telegram attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiPage.format">format (royalnet.database.tables.WikiPage attribute)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="network.html#royalnet.network.Package.from_dict">from_dict() (royalnet.network.Package static method)</a>
<ul>
<li><a href="network.html#royalnet.network.Request.from_dict">(royalnet.network.Request static method)</a>
</li>
<li><a href="network.html#royalnet.network.Response.from_dict">(royalnet.network.Response class method)</a>
</li>
</ul></li>
<li><a href="network.html#royalnet.network.Package.from_json_bytes">from_json_bytes() (royalnet.network.Package static method)</a>
</li>
<li><a href="network.html#royalnet.network.Package.from_json_string">from_json_string() (royalnet.network.Package static method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.full_username">full_username() (royalnet.database.tables.Discord method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="bots.html#royalnet.bots.GenericBot">GenericBot (class in royalnet.bots)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.get_author">get_author() (royalnet.utils.Call method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.ActiveKvGroup.group">group (royalnet.database.tables.ActiveKvGroup attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.Keyvalue.group">(royalnet.database.tables.Keyvalue attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.ActiveKvGroup.group_name">group_name (royalnet.database.tables.ActiveKvGroup attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.Keygroup.group_name">(royalnet.database.tables.Keygroup attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Keyvalue.group_name">(royalnet.database.tables.Keyvalue attribute)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="I">I</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="network.html#royalnet.network.RoyalnetLink.identify">identify() (royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot.interface_name">interface_name (royalnet.bots.DiscordBot attribute)</a>
<ul>
<li><a href="bots.html#royalnet.bots.GenericBot.interface_name">(royalnet.bots.GenericBot attribute)</a>
</li>
<li><a href="bots.html#royalnet.bots.TelegramBot.interface_name">(royalnet.bots.TelegramBot attribute)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.interface_name">(royalnet.utils.Call attribute)</a>, <a href="utils.html#royalnet.utils.Call.interface_name">[1]</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.Call.interface_obj">interface_obj (royalnet.utils.Call attribute)</a>, <a href="utils.html#royalnet.utils.Call.interface_obj">[1]</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.interface_prefix">interface_prefix (royalnet.utils.Call attribute)</a>, <a href="utils.html#royalnet.utils.Call.interface_prefix">[1]</a>
</li>
<li><a href="error.html#royalnet.error.InvalidConfigError">InvalidConfigError</a>
</li>
<li><a href="error.html#royalnet.error.InvalidInputError">InvalidInputError</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.is_opus">is_opus() (royalnet.audio.RoyalPCMAudio method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="J">J</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.CommandArgs.joined">joined() (royalnet.utils.CommandArgs method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="K">K</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Keyvalue.key">key (royalnet.database.tables.Keyvalue attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Keygroup">Keygroup (class in royalnet.database.tables)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Keyvalue">Keyvalue (class in royalnet.database.tables)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="commands.html#royalnet.commands.KvactiveCommand">KvactiveCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.KvCommand">KvCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.KvrollCommand">KvrollCommand (class in royalnet.commands)</a>
</li>
</ul></td>
</tr></table>
<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Telegram.last_name">last_name (royalnet.database.tables.Telegram attribute)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="network.html#royalnet.network.RoyalnetServer.listener">listener() (royalnet.network.RoyalnetServer method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.CommandArgs.match">match() (royalnet.utils.CommandArgs method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.media_url">media_url (royalnet.database.tables.Diario attribute)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Telegram.mention">mention() (royalnet.database.tables.Telegram method)</a>
</li>
<li><a href="utils.html#royalnet.utils.NetworkHandler.message_type">message_type (royalnet.utils.NetworkHandler attribute)</a>
</li>
<li><a href="commands.html#royalnet.commands.MissingCommand">MissingCommand (class in royalnet.commands)</a>
</li>
</ul></td>
</tr></table>
<h2 id="N">N</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.Call.net_request">net_request() (royalnet.utils.Call method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.network_handler_dict">network_handler_dict() (royalnet.utils.Command class method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.network_handlers">network_handlers (royalnet.utils.Command attribute)</a>, <a href="utils.html#royalnet.utils.Command.network_handlers">[1]</a>
</li>
<li><a href="network.html#royalnet.network.NetworkError">NetworkError</a>
</li>
<li><a href="utils.html#royalnet.utils.NetworkHandler">NetworkHandler (class in royalnet.utils)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="audio.html#royalnet.audio.PlayMode.next">next() (royalnet.audio.PlayMode method)</a>
</li>
<li><a href="error.html#royalnet.error.NoneFoundError">NoneFoundError</a>
</li>
<li><a href="network.html#royalnet.network.NotConnectedError">NotConnectedError</a>
</li>
<li><a href="network.html#royalnet.network.NotIdentifiedError">NotIdentifiedError</a>
</li>
<li><a href="commands.html#royalnet.commands.NullCommand">NullCommand (class in royalnet.commands)</a>
</li>
<li><a href="utils.html#royalnet.utils.numberemojiformat">numberemojiformat() (in module royalnet.utils)</a>
</li>
</ul></td>
</tr></table>
<h2 id="O">O</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.CommandArgs.optional">optional() (royalnet.utils.CommandArgs method)</a>
</li>
</ul></td>
</tr></table>
<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="network.html#royalnet.network.Package">Package (class in royalnet.network)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.page">page (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiPage.page_id">page_id (royalnet.database.tables.WikiPage attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.WikiRevision.page_id">(royalnet.database.tables.WikiRevision attribute)</a>
</li>
</ul></li>
<li><a href="database.html#royalnet.database.tables.Royal.password">password (royalnet.database.tables.Royal attribute)</a>
</li>
<li><a href="commands.html#royalnet.commands.PauseCommand">PauseCommand (class in royalnet.commands)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="commands.html#royalnet.commands.PingCommand">PingCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.PlayCommand">PlayCommand (class in royalnet.commands)</a>
</li>
<li><a href="audio.html#royalnet.audio.Playlist">Playlist (class in royalnet.audio)</a>
</li>
<li><a href="audio.html#royalnet.audio.PlayMode">PlayMode (class in royalnet.audio)</a>
</li>
<li><a href="commands.html#royalnet.commands.PlaymodeCommand">PlaymodeCommand (class in royalnet.commands)</a>
</li>
<li><a href="utils.html#royalnet.utils.plusformat">plusformat() (in module royalnet.utils)</a>, <a href="utils.html#royalnet.utils.plusformat">[1]</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool">Pool (class in royalnet.audio)</a>
</li>
</ul></td>
</tr></table>
<h2 id="Q">Q</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="audio.html#royalnet.audio.Playlist.queue_preview">queue_preview() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode.queue_preview">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool.queue_preview">(royalnet.audio.Pool method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="commands.html#royalnet.commands.QueueCommand">QueueCommand (class in royalnet.commands)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.quoted">quoted (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.quoted_account">quoted_account (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.quoted_account_id">quoted_account_id (royalnet.database.tables.Diario attribute)</a>
</li>
</ul></td>
</tr></table>
<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="commands.html#royalnet.commands.RageCommand">RageCommand (class in royalnet.commands)</a>
</li>
<li><a href="network.html#royalnet.network.Response.raise_on_error">raise_on_error() (royalnet.network.Response method)</a>
<ul>
<li><a href="network.html#royalnet.network.ResponseError.raise_on_error">(royalnet.network.ResponseError method)</a>
</li>
<li><a href="network.html#royalnet.network.ResponseSuccess.raise_on_error">(royalnet.network.ResponseSuccess method)</a>
</li>
</ul></li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio.read">read() (royalnet.audio.RoyalPCMAudio method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.reason">reason (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink.receive">receive() (royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="database.html#royalnet.database.relationshiplinkchain">relationshiplinkchain() (in module royalnet.database)</a>
</li>
<li><a href="commands.html#royalnet.commands.ReminderCommand">ReminderCommand (class in royalnet.commands)</a>
</li>
<li><a href="network.html#royalnet.network.Package.reply">reply() (royalnet.network.Package method)</a>
<ul>
<li><a href="utils.html#royalnet.utils.Call.reply">(royalnet.utils.Call method)</a>
</li>
</ul></li>
<li><a href="network.html#royalnet.network.Request">Request (class in royalnet.network)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink.request">request() (royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Command.require_alchemy_tables">require_alchemy_tables (royalnet.utils.Command attribute)</a>, <a href="utils.html#royalnet.utils.Command.require_alchemy_tables">[1]</a>
</li>
<li><a href="network.html#royalnet.network.Response">Response (class in royalnet.network)</a>
</li>
<li><a href="network.html#royalnet.network.ResponseError">ResponseError (class in royalnet.network)</a>
</li>
<li><a href="network.html#royalnet.network.ResponseSuccess">ResponseSuccess (class in royalnet.network)</a>
</li>
<li><a href="database.html#royalnet.database.tables.WikiRevision.revision_id">revision_id (royalnet.database.tables.WikiRevision attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Royal.role">role (royalnet.database.tables.Royal attribute)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer.route_package">route_package() (royalnet.network.RoyalnetServer method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Royal">Royal (class in royalnet.database.tables)</a>
</li>
<li><a href="database.html#royalnet.database.tables.ActiveKvGroup.royal">royal (royalnet.database.tables.ActiveKvGroup attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.Alias.royal">(royalnet.database.tables.Alias attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.royal">(royalnet.database.tables.Discord attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Telegram.royal">(royalnet.database.tables.Telegram attribute)</a>
</li>
</ul></li>
<li><a href="database.html#royalnet.database.tables.ActiveKvGroup.royal_id">royal_id (royalnet.database.tables.ActiveKvGroup attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.Alias.royal_id">(royalnet.database.tables.Alias attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.royal_id">(royalnet.database.tables.Discord attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Telegram.royal_id">(royalnet.database.tables.Telegram attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="audio.html#module-royalnet.audio">royalnet.audio (module)</a>
</li>
<li><a href="bots.html#module-royalnet.bots">royalnet.bots (module)</a>
</li>
<li><a href="commands.html#module-royalnet.commands">royalnet.commands (module)</a>
</li>
<li><a href="database.html#module-royalnet.database">royalnet.database (module)</a>
</li>
<li><a href="database.html#module-royalnet.database.tables">royalnet.database.tables (module)</a>
</li>
<li><a href="error.html#module-royalnet.error">royalnet.error (module)</a>
</li>
<li><a href="network.html#module-royalnet.network">royalnet.network (module)</a>
</li>
<li><a href="utils.html#module-royalnet.utils">royalnet.utils (module)</a>
</li>
<li><a href="web.html#module-royalnet.web">royalnet.web (module)</a>
</li>
<li><a href="web.html#module-royalnet.web.royalprints">royalnet.web.royalprints (module)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetConfig">RoyalnetConfig (class in royalnet.network)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink">RoyalnetLink (class in royalnet.network)</a>
</li>
<li><a href="error.html#royalnet.error.RoyalnetRequestError">RoyalnetRequestError</a>
</li>
<li><a href="error.html#royalnet.error.RoyalnetResponseError">RoyalnetResponseError</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer">RoyalnetServer (class in royalnet.network)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMAudio">RoyalPCMAudio (class in royalnet.audio)</a>
</li>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile">RoyalPCMFile (class in royalnet.audio)</a>
</li>
<li><a href="web.html#royalnet.web.Royalprint">Royalprint (class in royalnet.web)</a>
</li>
<li><a href="bots.html#royalnet.bots.DiscordBot.run">run() (royalnet.bots.DiscordBot method)</a>
<ul>
<li><a href="bots.html#royalnet.bots.GenericBot.run">(royalnet.bots.GenericBot method)</a>
</li>
<li><a href="bots.html#royalnet.bots.TelegramBot.run">(royalnet.bots.TelegramBot method)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink.run">(royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.run">(royalnet.utils.Call method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.safeformat">safeformat() (in module royalnet.utils)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetLink.send">send() (royalnet.network.RoyalnetLink method)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer.serve">serve() (royalnet.network.RoyalnetServer method)</a>
</li>
<li><a href="database.html#royalnet.database.Alchemy.session_acm">session_acm() (royalnet.database.Alchemy method)</a>
</li>
<li><a href="database.html#royalnet.database.Alchemy.session_cm">session_cm() (royalnet.database.Alchemy method)</a>
</li>
<li><a href="utils.html#royalnet.utils.Call.session_end">session_end() (royalnet.utils.Call method)</a>
</li>
<li><a href="commands.html#royalnet.commands.ShipCommand">ShipCommand (class in royalnet.commands)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="commands.html#royalnet.commands.SkipCommand">SkipCommand (class in royalnet.commands)</a>
</li>
<li><a href="utils.html#royalnet.utils.sleep_until">sleep_until() (in module royalnet.utils)</a>
</li>
<li><a href="commands.html#royalnet.commands.SmecdsCommand">SmecdsCommand (class in royalnet.commands)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.spoiler">spoiler (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="network.html#royalnet.network.RoyalnetServer.start">start() (royalnet.network.RoyalnetServer method)</a>
</li>
<li><a href="commands.html#royalnet.commands.SummonCommand">SummonCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.SyncCommand">SyncCommand (class in royalnet.commands)</a>
</li>
</ul></td>
</tr></table>
<h2 id="T">T</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Telegram">Telegram (class in royalnet.database.tables)</a>
</li>
<li><a href="utils.html#royalnet.utils.telegram_escape">telegram_escape() (in module royalnet.utils)</a>
</li>
<li><a href="bots.html#royalnet.bots.TelegramBot">TelegramBot (class in royalnet.bots)</a>
</li>
<li><a href="bots.html#royalnet.bots.TelegramConfig">TelegramConfig (class in royalnet.bots)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.text">text (royalnet.database.tables.Diario attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Telegram.tg_id">tg_id (royalnet.database.tables.Telegram attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Diario.timestamp">timestamp (royalnet.database.tables.Diario attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.WikiRevision.timestamp">(royalnet.database.tables.WikiRevision attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.WikiPage.title">title (royalnet.database.tables.WikiPage attribute)</a>
</li>
<li><a href="network.html#royalnet.network.Package.to_dict">to_dict() (royalnet.network.Package method)</a>
<ul>
<li><a href="network.html#royalnet.network.Request.to_dict">(royalnet.network.Request method)</a>
</li>
<li><a href="network.html#royalnet.network.Response.to_dict">(royalnet.network.Response method)</a>
</li>
</ul></li>
<li><a href="audio.html#royalnet.audio.YtdlInfo.to_discord_embed">to_discord_embed() (royalnet.audio.YtdlInfo method)</a>
</li>
<li><a href="network.html#royalnet.network.Package.to_json_bytes">to_json_bytes() (royalnet.network.Package method)</a>
</li>
<li><a href="network.html#royalnet.network.Package.to_json_string">to_json_string() (royalnet.network.Package method)</a>
</li>
<li><a href="error.html#royalnet.error.TooManyFoundError">TooManyFoundError</a>
</li>
</ul></td>
</tr></table>
<h2 id="U">U</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Royal.uid">uid (royalnet.database.tables.Royal attribute)</a>
</li>
<li><a href="error.html#royalnet.error.UnregisteredError">UnregisteredError</a>
</li>
<li><a href="error.html#royalnet.error.UnsupportedError">UnsupportedError</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="bots.html#royalnet.bots.DiscordBot.update_activity_with_source_title">update_activity_with_source_title() (royalnet.bots.DiscordBot method)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Discord.username">username (royalnet.database.tables.Discord attribute)</a>
<ul>
<li><a href="database.html#royalnet.database.tables.Royal.username">(royalnet.database.tables.Royal attribute)</a>
</li>
<li><a href="database.html#royalnet.database.tables.Telegram.username">(royalnet.database.tables.Telegram attribute)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="V">V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.Keyvalue.value">value (royalnet.database.tables.Keyvalue attribute)</a>
</li>
<li><a href="commands.html#royalnet.commands.VideochannelCommand">VideochannelCommand (class in royalnet.commands)</a>
</li>
<li><a href="commands.html#royalnet.commands.VideoinfoCommand">VideoinfoCommand (class in royalnet.commands)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="audio.html#royalnet.audio.Playlist.videos_left">videos_left() (royalnet.audio.Playlist method)</a>
<ul>
<li><a href="audio.html#royalnet.audio.PlayMode.videos_left">(royalnet.audio.PlayMode method)</a>
</li>
<li><a href="audio.html#royalnet.audio.Pool.videos_left">(royalnet.audio.Pool method)</a>
</li>
</ul></li>
</ul></td>
</tr></table>
<h2 id="W">W</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.WikiPage">WikiPage (class in royalnet.database.tables)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="database.html#royalnet.database.tables.WikiRevision">WikiRevision (class in royalnet.database.tables)</a>
</li>
</ul></td>
</tr></table>
<h2 id="Y">Y</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.ytdl_args">ytdl_args (royalnet.audio.RoyalPCMFile attribute)</a>
<ul>
<li><a href="audio.html#royalnet.audio.YtdlFile.ytdl_args">(royalnet.audio.YtdlFile attribute)</a>
</li>
</ul></li>
<li><a href="audio.html#royalnet.audio.RoyalPCMFile.ytdl_filename">ytdl_filename (royalnet.audio.RoyalPCMFile attribute)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="utils.html#royalnet.utils.ytdldateformat">ytdldateformat() (in module royalnet.utils)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlFile">YtdlFile (class in royalnet.audio)</a>
</li>
<li><a href="audio.html#royalnet.audio.YtdlInfo">YtdlInfo (class in royalnet.audio)</a>
</li>
</ul></td>
</tr></table>
</div> </div>

View file

@ -166,7 +166,7 @@
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="database.html">royalnet.database</a><ul> <li class="toctree-l1"><a class="reference internal" href="database.html">royalnet.database</a><ul>
<li class="toctree-l2"><a class="reference internal" href="database.html#module-royalnet.database.tables">Tables</a></li> <li class="toctree-l2"><a class="reference internal" href="database.html#tables">Tables</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="network.html">royalnet.network</a><ul class="simple"> <li class="toctree-l1"><a class="reference internal" href="network.html">royalnet.network</a><ul class="simple">
@ -179,7 +179,7 @@
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="web.html">royalnet.web</a><ul> <li class="toctree-l1"><a class="reference internal" href="web.html">royalnet.web</a><ul>
<li class="toctree-l2"><a class="reference internal" href="web.html#module-royalnet.web.royalprints">Royalprints</a></li> <li class="toctree-l2"><a class="reference internal" href="web.html#royalprints">Royalprints</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>

View file

@ -159,262 +159,6 @@
<h1>royalnet.network<a class="headerlink" href="#royalnet-network" title="Permalink to this headline"></a></h1> <h1>royalnet.network<a class="headerlink" href="#royalnet-network" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.network"></span><p>Royalnet (websocket) related classes.</p>
<dl class="class">
<dt id="royalnet.network.RoyalnetLink">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">RoyalnetLink</code><span class="sig-paren">(</span><em>master_uri: str</em>, <em>secret: str</em>, <em>link_type: str</em>, <em>request_handler</em>, <em>*</em>, <em>loop: asyncio.events.AbstractEventLoop = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetLink" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="royalnet.network.RoyalnetLink.connect">
<code class="descname">connect</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetLink.connect" title="Permalink to this definition"></a></dt>
<dd><p>Connect to the <a class="reference internal" href="#royalnet.network.RoyalnetServer" title="royalnet.network.RoyalnetServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetServer</span></code></a> at <code class="docutils literal notranslate"><span class="pre">self.master_uri</span></code>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetLink.identify">
<code class="descname">identify</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.network.RoyalnetLink.identify" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetLink.receive">
<code class="descname">receive</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; royalnet.network.package.Package<a class="headerlink" href="#royalnet.network.RoyalnetLink.receive" title="Permalink to this definition"></a></dt>
<dd><p>Recieve a <a class="reference internal" href="#royalnet.network.Package" title="royalnet.network.Package"><code class="xref py py-class docutils literal notranslate"><span class="pre">Package</span></code></a> from the <a class="reference internal" href="#royalnet.network.RoyalnetServer" title="royalnet.network.RoyalnetServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetServer</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><strong>royalnet.network.royalnetlink.ConnectionClosedError</strong> </p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetLink.request">
<code class="descname">request</code><span class="sig-paren">(</span><em>message</em>, <em>destination</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetLink.request" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetLink.run">
<code class="descname">run</code><span class="sig-paren">(</span><em>loops: numbers.Real = inf</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetLink.run" title="Permalink to this definition"></a></dt>
<dd><p>Blockingly run the Link.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetLink.send">
<code class="descname">send</code><span class="sig-paren">(</span><em>package: royalnet.network.package.Package</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetLink.send" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="exception">
<dt id="royalnet.network.NetworkError">
<em class="property">exception </em><code class="descclassname">royalnet.network.</code><code class="descname">NetworkError</code><span class="sig-paren">(</span><em>error_data: dict</em>, <em>*args</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.NetworkError" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="exception">
<dt id="royalnet.network.NotConnectedError">
<em class="property">exception </em><code class="descclassname">royalnet.network.</code><code class="descname">NotConnectedError</code><a class="headerlink" href="#royalnet.network.NotConnectedError" title="Permalink to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a> is not connected to a <a class="reference internal" href="#royalnet.network.RoyalnetServer" title="royalnet.network.RoyalnetServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetServer</span></code></a>.</p>
</dd></dl>
<dl class="exception">
<dt id="royalnet.network.NotIdentifiedError">
<em class="property">exception </em><code class="descclassname">royalnet.network.</code><code class="descname">NotIdentifiedError</code><a class="headerlink" href="#royalnet.network.NotIdentifiedError" title="Permalink to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a> has not identified yet to a <a class="reference internal" href="#royalnet.network.RoyalnetServer" title="royalnet.network.RoyalnetServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetServer</span></code></a>.</p>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.Package">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">Package</code><span class="sig-paren">(</span><em>data: dict</em>, <em>*</em>, <em>source: str</em>, <em>destination: str</em>, <em>source_conv_id: Optional[str] = None</em>, <em>destination_conv_id: Optional[str] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Package" title="Permalink to this definition"></a></dt>
<dd><p>A Royalnet package, the data type with which a <a class="reference internal" href="#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a> communicates with a <a class="reference internal" href="#royalnet.network.RoyalnetServer" title="royalnet.network.RoyalnetServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetServer</span></code></a> or another link.
Contains info about the source and the destination.</p>
<dl class="method">
<dt id="royalnet.network.Package.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>data: dict</em>, <em>*</em>, <em>source: str</em>, <em>destination: str</em>, <em>source_conv_id: Optional[str] = None</em>, <em>destination_conv_id: Optional[str] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Package.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create a Package.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>data</strong> The data that should be sent. Usually a <code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Message</span></code>.</p></li>
<li><p><strong>source</strong> The <code class="docutils literal notranslate"><span class="pre">nid</span></code> of the node that created this Package.</p></li>
<li><p><strong>destination</strong> The <code class="docutils literal notranslate"><span class="pre">link_type</span></code> of the destination node, or alternatively, the <code class="docutils literal notranslate"><span class="pre">nid</span></code> of the node. Can also be the <code class="docutils literal notranslate"><span class="pre">NULL</span></code> value to send the message to nobody.</p></li>
<li><p><strong>source_conv_id</strong> The conversation id of the node that created this package. Akin to the sequence number on IP packets.</p></li>
<li><p><strong>destination_conv_id</strong> The conversation id of the node that this Package is a reply to.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.network.Package.from_dict">
<em class="property">static </em><code class="descname">from_dict</code><span class="sig-paren">(</span><em>d</em><span class="sig-paren">)</span> &#x2192; royalnet.network.package.Package<a class="headerlink" href="#royalnet.network.Package.from_dict" title="Permalink to this definition"></a></dt>
<dd><p>Create a Package from a dictionary.</p>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.network.Package.from_json_bytes">
<em class="property">static </em><code class="descname">from_json_bytes</code><span class="sig-paren">(</span><em>b: bytes</em><span class="sig-paren">)</span> &#x2192; royalnet.network.package.Package<a class="headerlink" href="#royalnet.network.Package.from_json_bytes" title="Permalink to this definition"></a></dt>
<dd><p>Create a Package from UTF8-encoded JSON bytes.</p>
</dd></dl>
<dl class="staticmethod">
<dt id="royalnet.network.Package.from_json_string">
<em class="property">static </em><code class="descname">from_json_string</code><span class="sig-paren">(</span><em>string: str</em><span class="sig-paren">)</span> &#x2192; royalnet.network.package.Package<a class="headerlink" href="#royalnet.network.Package.from_json_string" title="Permalink to this definition"></a></dt>
<dd><p>Create a Package from a JSON string.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Package.reply">
<code class="descname">reply</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span> &#x2192; royalnet.network.package.Package<a class="headerlink" href="#royalnet.network.Package.reply" title="Permalink to this definition"></a></dt>
<dd><p>Reply to this Package with another Package.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>data</strong> The data that should be sent. Usually a <code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Message</span></code>.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The reply Package.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Package.to_dict">
<code class="descname">to_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; dict<a class="headerlink" href="#royalnet.network.Package.to_dict" title="Permalink to this definition"></a></dt>
<dd><p>Convert the Package into a dictionary.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Package.to_json_bytes">
<code class="descname">to_json_bytes</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; bytes<a class="headerlink" href="#royalnet.network.Package.to_json_bytes" title="Permalink to this definition"></a></dt>
<dd><p>Convert the Package into UTF8-encoded JSON bytes.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Package.to_json_string">
<code class="descname">to_json_string</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.network.Package.to_json_string" title="Permalink to this definition"></a></dt>
<dd><p>Convert the Package into a JSON string.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.RoyalnetServer">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">RoyalnetServer</code><span class="sig-paren">(</span><em>address: str</em>, <em>port: int</em>, <em>required_secret: str</em>, <em>*</em>, <em>loop: asyncio.events.AbstractEventLoop = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetServer" title="Permalink to this definition"></a></dt>
<dd><dl class="method">
<dt id="royalnet.network.RoyalnetServer.find_client">
<code class="descname">find_client</code><span class="sig-paren">(</span><em>*</em>, <em>nid: str = None</em>, <em>link_type: str = None</em><span class="sig-paren">)</span> &#x2192; List[royalnet.network.royalnetserver.ConnectedClient]<a class="headerlink" href="#royalnet.network.RoyalnetServer.find_client" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetServer.find_destination">
<code class="descname">find_destination</code><span class="sig-paren">(</span><em>package: royalnet.network.package.Package</em><span class="sig-paren">)</span> &#x2192; List[royalnet.network.royalnetserver.ConnectedClient]<a class="headerlink" href="#royalnet.network.RoyalnetServer.find_destination" title="Permalink to this definition"></a></dt>
<dd><p>Find a list of destinations for the package.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>package</strong> The package to find the destination of.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> of <code class="xref py py-class docutils literal notranslate"><span class="pre">ConnectedClients</span></code> to send the package to.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetServer.listener">
<code class="descname">listener</code><span class="sig-paren">(</span><em>websocket: websockets.server.WebSocketServerProtocol</em>, <em>path</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetServer.listener" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetServer.route_package">
<code class="descname">route_package</code><span class="sig-paren">(</span><em>package: royalnet.network.package.Package</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.network.RoyalnetServer.route_package" title="Permalink to this definition"></a></dt>
<dd><p>Executed every time a package is received and must be routed somewhere.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetServer.serve">
<code class="descname">serve</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetServer.serve" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.RoyalnetServer.start">
<code class="descname">start</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetServer.start" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.RoyalnetConfig">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">RoyalnetConfig</code><span class="sig-paren">(</span><em>master_uri: str</em>, <em>master_secret: str</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.RoyalnetConfig" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="exception">
<dt id="royalnet.network.ConnectionClosedError">
<em class="property">exception </em><code class="descclassname">royalnet.network.</code><code class="descname">ConnectionClosedError</code><a class="headerlink" href="#royalnet.network.ConnectionClosedError" title="Permalink to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a>s connection was closed unexpectedly. The link cant be used anymore.</p>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.Request">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">Request</code><span class="sig-paren">(</span><em>handler: str</em>, <em>data: dict</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Request" title="Permalink to this definition"></a></dt>
<dd><p>A request sent from a <a class="reference internal" href="#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a> to another.</p>
<p>It contains the name of the requested handler, in addition to the data.</p>
<dl class="staticmethod">
<dt id="royalnet.network.Request.from_dict">
<em class="property">static </em><code class="descname">from_dict</code><span class="sig-paren">(</span><em>d: dict</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Request.from_dict" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.network.Request.to_dict">
<code class="descname">to_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Request.to_dict" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.Response">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">Response</code><a class="headerlink" href="#royalnet.network.Response" title="Permalink to this definition"></a></dt>
<dd><p>A base class to be inherited by all other response types.</p>
<dl class="classmethod">
<dt id="royalnet.network.Response.from_dict">
<em class="property">classmethod </em><code class="descname">from_dict</code><span class="sig-paren">(</span><em>d: dict</em><span class="sig-paren">)</span> &#x2192; royalnet.network.response.Response<a class="headerlink" href="#royalnet.network.Response.from_dict" title="Permalink to this definition"></a></dt>
<dd><p>Recreate the response from a received <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#dict" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Response.raise_on_error">
<code class="descname">raise_on_error</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.Response.raise_on_error" title="Permalink to this definition"></a></dt>
<dd><p>Raise an <a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#Exception" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a> if the Response is an error, do nothing otherwise.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.network.Response.to_dict">
<code class="descname">to_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span> &#x2192; dict<a class="headerlink" href="#royalnet.network.Response.to_dict" title="Permalink to this definition"></a></dt>
<dd><p>Prepare the Response to be sent by converting it to a JSONable <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#dict" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.ResponseSuccess">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">ResponseSuccess</code><span class="sig-paren">(</span><em>data: Optional[dict] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.ResponseSuccess" title="Permalink to this definition"></a></dt>
<dd><p>A response to a successful <a class="reference internal" href="#royalnet.network.Request" title="royalnet.network.Request"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Request</span></code></a>.</p>
<dl class="method">
<dt id="royalnet.network.ResponseSuccess.raise_on_error">
<code class="descname">raise_on_error</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.ResponseSuccess.raise_on_error" title="Permalink to this definition"></a></dt>
<dd><p>Raise an <a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#Exception" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a> if the Response is an error, do nothing otherwise.</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.network.ResponseError">
<em class="property">class </em><code class="descclassname">royalnet.network.</code><code class="descname">ResponseError</code><span class="sig-paren">(</span><em>name: str</em>, <em>description: str</em>, <em>extra_info: Optional[dict] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.ResponseError" title="Permalink to this definition"></a></dt>
<dd><p>A response to a invalid <a class="reference internal" href="#royalnet.network.Request" title="royalnet.network.Request"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Request</span></code></a>.</p>
<dl class="method">
<dt id="royalnet.network.ResponseError.raise_on_error">
<code class="descname">raise_on_error</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.network.ResponseError.raise_on_error" title="Permalink to this definition"></a></dt>
<dd><p>Raise an <a class="reference external" href="https://docs.python.org/3.7/library/exceptions.html#Exception" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a> if the Response is an error, do nothing otherwise.</p>
</dd></dl>
</dd></dl>
</div> </div>

Binary file not shown.

View file

@ -1,262 +0,0 @@
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Python Module Index &mdash; Royalnet documentation</title>
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home"> Royalnet
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="audio.html">royalnet.audio</a></li>
<li class="toctree-l1"><a class="reference internal" href="bots.html">royalnet.bots</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands.html">royalnet.commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="database.html">royalnet.database</a></li>
<li class="toctree-l1"><a class="reference internal" href="network.html">royalnet.network</a></li>
<li class="toctree-l1"><a class="reference internal" href="utils.html">royalnet.utils</a></li>
<li class="toctree-l1"><a class="reference internal" href="error.html">royalnet.error</a></li>
<li class="toctree-l1"><a class="reference internal" href="web.html">royalnet.web</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Royalnet</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li>Python Module Index</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Python Module Index</h1>
<div class="modindex-jumpbox">
<a href="#cap-r"><strong>r</strong></a>
</div>
<table class="indextable modindextable">
<tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
<tr class="cap" id="cap-r"><td></td><td>
<strong>r</strong></td><td></td></tr>
<tr>
<td><img src="_static/minus.png" class="toggler"
id="toggle-1" style="display: none" alt="-" /></td>
<td>
<code class="xref">royalnet</code></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="audio.html#module-royalnet.audio"><code class="xref">royalnet.audio</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="bots.html#module-royalnet.bots"><code class="xref">royalnet.bots</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="commands.html#module-royalnet.commands"><code class="xref">royalnet.commands</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="database.html#module-royalnet.database"><code class="xref">royalnet.database</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="database.html#module-royalnet.database.tables"><code class="xref">royalnet.database.tables</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="error.html#module-royalnet.error"><code class="xref">royalnet.error</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="network.html#module-royalnet.network"><code class="xref">royalnet.network</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="utils.html#module-royalnet.utils"><code class="xref">royalnet.utils</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="web.html#module-royalnet.web"><code class="xref">royalnet.web</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="web.html#module-royalnet.web.royalprints"><code class="xref">royalnet.web.royalprints</code></a></td><td>
<em></em></td></tr>
</table>
</div>
</div>
<footer>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2019, Stefano Pigozzi
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

File diff suppressed because one or more lines are too long

View file

@ -159,438 +159,6 @@
<h1>royalnet.utils<a class="headerlink" href="#royalnet-utils" title="Permalink to this headline"></a></h1> <h1>royalnet.utils<a class="headerlink" href="#royalnet-utils" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.utils"></span><p>Miscellaneous useful functions and classes.</p>
<dl class="function">
<dt id="royalnet.utils.asyncify">
<code class="descclassname">royalnet.utils.</code><code class="descname">asyncify</code><span class="sig-paren">(</span><em>function: Callable</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.asyncify" title="Permalink to this definition"></a></dt>
<dd><p>Convert a function into a coroutine.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The coroutine cannot be cancelled, and any attempts to do so will result in unexpected outputs.</p>
</div>
</dd></dl>
<dl class="class">
<dt id="royalnet.utils.Call">
<em class="property">class </em><code class="descclassname">royalnet.utils.</code><code class="descname">Call</code><span class="sig-paren">(</span><em>channel, command: Type[royalnet.utils.command.Command], command_args: List[str] = None, loop: asyncio.events.AbstractEventLoop = None, **kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call" title="Permalink to this definition"></a></dt>
<dd><p>A command call. An abstract class, sub-bots should create a new call class from this.</p>
<dl class="attribute">
<dt id="royalnet.utils.Call.interface_name">
<code class="descname">interface_name</code><a class="headerlink" href="#royalnet.utils.Call.interface_name" title="Permalink to this definition"></a></dt>
<dd><p>The name of the interface that is calling the command. For example, <code class="docutils literal notranslate"><span class="pre">telegram</span></code>, or <code class="docutils literal notranslate"><span class="pre">discord</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Call.interface_obj">
<code class="descname">interface_obj</code><a class="headerlink" href="#royalnet.utils.Call.interface_obj" title="Permalink to this definition"></a></dt>
<dd><p>The main object of the interface that is calling the command. For example, the <a class="reference internal" href="bots.html#royalnet.bots.TelegramBot" title="royalnet.bots.TelegramBot"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.bots.TelegramBot</span></code></a> object.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Call.interface_prefix">
<code class="descname">interface_prefix</code><a class="headerlink" href="#royalnet.utils.Call.interface_prefix" title="Permalink to this definition"></a></dt>
<dd><p>The command prefix used by the interface. For example, <code class="docutils literal notranslate"><span class="pre">/</span></code>, or <code class="docutils literal notranslate"><span class="pre">!</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Call.alchemy">
<code class="descname">alchemy</code><a class="headerlink" href="#royalnet.utils.Call.alchemy" title="Permalink to this definition"></a></dt>
<dd><p>The <a class="reference internal" href="database.html#royalnet.database.Alchemy" title="royalnet.database.Alchemy"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database.Alchemy</span></code></a> object associated to this interface. May be None if the interface is not connected to any database.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.__init__">
<code class="descname">__init__</code><span class="sig-paren">(</span><em>channel, command: Type[royalnet.utils.command.Command], command_args: List[str] = None, loop: asyncio.events.AbstractEventLoop = None, **kwargs</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Create the call.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>channel</strong> The channel object this call was sent in.</p></li>
<li><p><strong>command</strong> The command to be called.</p></li>
<li><p><strong>command_args</strong> The arguments to be passed to the command</p></li>
<li><p><strong>kwargs</strong> Additional optional keyword arguments that may be passed to the command, possibly specific to the bot.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call._session_init">
<code class="descname">_session_init</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call._session_init" title="Permalink to this definition"></a></dt>
<dd><p>If the command requires database access, create a <a class="reference internal" href="database.html#royalnet.database.Alchemy" title="royalnet.database.Alchemy"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database.Alchemy</span></code></a> session for this call, otherwise, do nothing.</p>
</dd></dl>
<dl class="attribute">
<dt>
<code class="descname">alchemy</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.get_author">
<code class="descname">get_author</code><span class="sig-paren">(</span><em>error_if_none=False</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call.get_author" title="Permalink to this definition"></a></dt>
<dd><p>Try to find the universal identifier of the user that sent the message.
That probably means, the database row identifying the user.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>error_if_none</strong> Raise a <a class="reference internal" href="error.html#royalnet.error.UnregisteredError" title="royalnet.error.UnregisteredError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">royalnet.error.UnregisteredError</span></code></a> if this is True and the call has no author.</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="error.html#royalnet.error.UnregisteredError" title="royalnet.error.UnregisteredError"><strong>royalnet.error.UnregisteredError</strong></a> </p>
</dd>
</dl>
</dd></dl>
<dl class="attribute">
<dt>
<code class="descname">interface_name</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">interface_obj</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">interface_prefix</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.net_request">
<code class="descname">net_request</code><span class="sig-paren">(</span><em>message</em>, <em>destination: str</em><span class="sig-paren">)</span> &#x2192; dict<a class="headerlink" href="#royalnet.utils.Call.net_request" title="Permalink to this definition"></a></dt>
<dd><p>Send data through a <a class="reference internal" href="network.html#royalnet.network.RoyalnetLink" title="royalnet.network.RoyalnetLink"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.RoyalnetLink</span></code></a> and wait for a <code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.network.Reply</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>message</strong> The data to be sent. Must be <a class="reference external" href="https://docs.python.org/3.7/library/pickle.html#module-pickle" title="(in Python v3.7)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>-able.</p></li>
<li><p><strong>destination</strong> The destination of the request, either in UUID format or node name.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.reply">
<code class="descname">reply</code><span class="sig-paren">(</span><em>text: str</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.utils.Call.reply" title="Permalink to this definition"></a></dt>
<dd><p>Send a text message to the channel where the call was made.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>text</strong> The text to be sent, possibly formatted in the weird undescribed markup that Im using.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call.run" title="Permalink to this definition"></a></dt>
<dd><p>Execute the called command, and return the command result.</p>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.Call.session_end">
<code class="descname">session_end</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Call.session_end" title="Permalink to this definition"></a></dt>
<dd><p>Close the previously created <a class="reference internal" href="database.html#royalnet.database.Alchemy" title="royalnet.database.Alchemy"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database.Alchemy</span></code></a> session for this call (if it was created).</p>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.utils.Command">
<em class="property">class </em><code class="descclassname">royalnet.utils.</code><code class="descname">Command</code><a class="headerlink" href="#royalnet.utils.Command" title="Permalink to this definition"></a></dt>
<dd><p>The base class from which all commands should inherit.</p>
<dl class="attribute">
<dt id="royalnet.utils.Command.command_name">
<code class="descname">command_name</code><a class="headerlink" href="#royalnet.utils.Command.command_name" title="Permalink to this definition"></a></dt>
<dd><p>The name of the command. To have <code class="docutils literal notranslate"><span class="pre">/example</span></code> on Telegram, the name should be <code class="docutils literal notranslate"><span class="pre">example</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Command.command_description">
<code class="descname">command_description</code><a class="headerlink" href="#royalnet.utils.Command.command_description" title="Permalink to this definition"></a></dt>
<dd><p>A small description of the command, to be displayed when the command is being autocompleted.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Command.command_syntax">
<code class="descname">command_syntax</code><a class="headerlink" href="#royalnet.utils.Command.command_syntax" title="Permalink to this definition"></a></dt>
<dd><p>The syntax of the command, to be displayed when a <a class="reference internal" href="error.html#royalnet.error.InvalidInputError" title="royalnet.error.InvalidInputError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">royalnet.error.InvalidInputError</span></code></a> is raised, in the format <code class="docutils literal notranslate"><span class="pre">(required_arg)</span> <span class="pre">[optional_arg]</span></code>.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Command.require_alchemy_tables">
<code class="descname">require_alchemy_tables</code><a class="headerlink" href="#royalnet.utils.Command.require_alchemy_tables" title="Permalink to this definition"></a></dt>
<dd><p>A set of <a class="reference internal" href="database.html#module-royalnet.database" title="royalnet.database"><code class="xref py py-class docutils literal notranslate"><span class="pre">royalnet.database</span></code></a> tables, that must exist for this command to work.</p>
</dd></dl>
<dl class="attribute">
<dt id="royalnet.utils.Command.network_handlers">
<code class="descname">network_handlers</code><a class="headerlink" href="#royalnet.utils.Command.network_handlers" title="Permalink to this definition"></a></dt>
<dd><p>A list of :py:class:<a href="#id1"><span class="problematic" id="id2">`</span></a>royalnet.utils.NetworkHandler`s that must exist for this command to work.</p>
</dd></dl>
<dl class="attribute">
<dt>
<code class="descname">command_description</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">command_name</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">command_syntax</code><em class="property"> = NotImplemented</em></dt>
<dd></dd></dl>
<dl class="classmethod">
<dt id="royalnet.utils.Command.common">
<em class="property">classmethod </em><code class="descname">common</code><span class="sig-paren">(</span><em>call: Call</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Command.common" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="classmethod">
<dt id="royalnet.utils.Command.network_handler_dict">
<em class="property">classmethod </em><code class="descname">network_handler_dict</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.Command.network_handler_dict" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">network_handlers</code><em class="property"> = {}</em></dt>
<dd></dd></dl>
<dl class="attribute">
<dt>
<code class="descname">require_alchemy_tables</code><em class="property"> = {}</em></dt>
<dd></dd></dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.safeformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">safeformat</code><span class="sig-paren">(</span><em>string: str</em>, <em>**words</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.safeformat" title="Permalink to this definition"></a></dt>
<dd><p><code class="xref py py-func docutils literal notranslate"><span class="pre">str.format()</span></code> something, but ignore missing keys instead of raising an error.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string</strong> The base string to be formatted.</p></li>
<li><p><strong>words</strong> The words to format the string with.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The formatted string.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.cdj">
<code class="descclassname">royalnet.utils.</code><code class="descname">cdj</code><span class="sig-paren">(</span><em>class_: Any</em><span class="sig-paren">)</span> &#x2192; dict<a class="headerlink" href="#royalnet.utils.cdj" title="Permalink to this definition"></a></dt>
<dd><p>Return a dict of the class attributes without the <code class="docutils literal notranslate"><span class="pre">__module__</span></code>, <code class="docutils literal notranslate"><span class="pre">__dict__</span></code>, <code class="docutils literal notranslate"><span class="pre">__weakref__</span></code> and <code class="docutils literal notranslate"><span class="pre">__doc__</span></code> keys, to be used while generating dynamically SQLAlchemy declarative table classes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>class</strong> The object that you want to dict-ify.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The class dict.</p>
</dd>
</dl>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>You cant dict-ify classes with <code class="docutils literal notranslate"><span class="pre">__slots__</span></code>!</p>
</div>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.sleep_until">
<code class="descclassname">royalnet.utils.</code><code class="descname">sleep_until</code><span class="sig-paren">(</span><em>dt: datetime.datetime</em><span class="sig-paren">)</span> &#x2192; None<a class="headerlink" href="#royalnet.utils.sleep_until" title="Permalink to this definition"></a></dt>
<dd><p>Block the call until the specified datetime.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Accurate only to seconds.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.plusformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">plusformat</code><span class="sig-paren">(</span><em>i: int</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.plusformat" title="Permalink to this definition"></a></dt>
<dd><p>Convert an <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> to a <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, prepending a <code class="docutils literal notranslate"><span class="pre">+</span></code> if its greater than 0.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>i</strong> the <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> to convert.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The resulting <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd>
</dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.utils.CommandArgs">
<em class="property">class </em><code class="descclassname">royalnet.utils.</code><code class="descname">CommandArgs</code><a class="headerlink" href="#royalnet.utils.CommandArgs" title="Permalink to this definition"></a></dt>
<dd><p>An interface to access the arguments of a command with ease.</p>
<dl class="method">
<dt id="royalnet.utils.CommandArgs.__getitem__">
<code class="descname">__getitem__</code><span class="sig-paren">(</span><em>item</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.CommandArgs.__getitem__" title="Permalink to this definition"></a></dt>
<dd><p>Arguments can be accessed with an array notation, such as <code class="docutils literal notranslate"><span class="pre">args[0]</span></code>.</p>
<dl class="field-list simple">
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><p><a class="reference internal" href="error.html#royalnet.error.InvalidInputError" title="royalnet.error.InvalidInputError"><strong>royalnet.error.InvalidInputError</strong></a> if the requested argument does not exist.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.CommandArgs.joined">
<code class="descname">joined</code><span class="sig-paren">(</span><em>*</em>, <em>require_at_least=0</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.CommandArgs.joined" title="Permalink to this definition"></a></dt>
<dd><p>Get the arguments as a space-joined string.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>require_at_least</strong> the minimum amount of arguments required, will raise <a class="reference internal" href="error.html#royalnet.error.InvalidInputError" title="royalnet.error.InvalidInputError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">royalnet.error.InvalidInputError</span></code></a> if the requirement is not fullfilled.</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="error.html#royalnet.error.InvalidInputError" title="royalnet.error.InvalidInputError"><strong>royalnet.error.InvalidInputError</strong></a> if there are less than <code class="docutils literal notranslate"><span class="pre">require_at_least</span></code> arguments.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The space-joined string.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.CommandArgs.match">
<code class="descname">match</code><span class="sig-paren">(</span><em>pattern: Pattern[AnyStr]</em><span class="sig-paren">)</span> &#x2192; Sequence[AnyStr]<a class="headerlink" href="#royalnet.utils.CommandArgs.match" title="Permalink to this definition"></a></dt>
<dd><p>Match the <code class="xref py py-func docutils literal notranslate"><span class="pre">royalnet.utils.commandargs.joined()</span></code> to a regex pattern.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>pattern</strong> The regex pattern to be passed to <a class="reference external" href="https://docs.python.org/3.7/library/re.html#re.match" title="(in Python v3.7)"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.match()</span></code></a>.</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p><a class="reference internal" href="error.html#royalnet.error.InvalidInputError" title="royalnet.error.InvalidInputError"><strong>royalnet.error.InvalidInputError</strong></a> if the pattern doesnt match.</p>
</dd>
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>The matched groups, as returned by <code class="xref py py-func docutils literal notranslate"><span class="pre">re.Match.groups()</span></code>.</p>
</dd>
</dl>
</dd></dl>
<dl class="method">
<dt id="royalnet.utils.CommandArgs.optional">
<code class="descname">optional</code><span class="sig-paren">(</span><em>index: int</em>, <em>default=None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.utils.CommandArgs.optional" title="Permalink to this definition"></a></dt>
<dd><p>Get the argument at a specific index, but dont raise an error if nothing is found, instead returning the <code class="docutils literal notranslate"><span class="pre">default</span></code> value.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>index</strong> The index of the argument you want to retrieve.</p></li>
<li><p><strong>default</strong> The value returned if the argument is missing.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Either the argument or the <code class="docutils literal notranslate"><span class="pre">default</span></code> value, defaulting to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.utils.NetworkHandler">
<em class="property">class </em><code class="descclassname">royalnet.utils.</code><code class="descname">NetworkHandler</code><a class="headerlink" href="#royalnet.utils.NetworkHandler" title="Permalink to this definition"></a></dt>
<dd><p>The NetworkHandler functions are called when a specific Message type is received.</p>
<dl class="attribute">
<dt id="royalnet.utils.NetworkHandler.message_type">
<code class="descname">message_type</code><em class="property"> = NotImplemented</em><a class="headerlink" href="#royalnet.utils.NetworkHandler.message_type" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.andformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">andformat</code><span class="sig-paren">(</span><em>l: List[str], middle=', ', final=' and '</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.andformat" title="Permalink to this definition"></a></dt>
<dd><p>Convert a <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> to a <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> by adding <code class="docutils literal notranslate"><span class="pre">final</span></code> between the last two elements and <code class="docutils literal notranslate"><span class="pre">middle</span></code> between the others.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>l</strong> the input <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#list" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>.</p></li>
<li><p><strong>middle</strong> the <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> to be added between the middle elements.</p></li>
<li><p><strong>final</strong> the <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> to be added between the last two elements.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The resulting <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt>
<code class="descclassname">royalnet.utils.</code><code class="descname">plusformat</code><span class="sig-paren">(</span><em>i: int</em><span class="sig-paren">)</span> &#x2192; str</dt>
<dd><p>Convert an <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> to a <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, prepending a <code class="docutils literal notranslate"><span class="pre">+</span></code> if its greater than 0.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>i</strong> the <a class="reference external" href="https://docs.python.org/3.7/library/functions.html#int" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> to convert.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The resulting <a class="reference external" href="https://docs.python.org/3.7/library/stdtypes.html#str" title="(in Python v3.7)"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.fileformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">fileformat</code><span class="sig-paren">(</span><em>string: str</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.fileformat" title="Permalink to this definition"></a></dt>
<dd><p>Ensure a string can be used as a filename by replacing all non-word characters with underscores.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>string</strong> the input string.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A valid filename string.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.ytdldateformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">ytdldateformat</code><span class="sig-paren">(</span><em>string: Optional[str], separator: str = '-'</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.ytdldateformat" title="Permalink to this definition"></a></dt>
<dd><p>Convert the weird date string returned by <code class="docutils literal notranslate"><span class="pre">youtube-dl</span></code> into the <code class="docutils literal notranslate"><span class="pre">YYYY-MM-DD</span></code> format.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>string</strong> the input string, in the <code class="docutils literal notranslate"><span class="pre">YYYYMMDD</span></code> format.</p></li>
<li><p><strong>separator</strong> the string to add between the years, the months and the days. Defaults to <code class="docutils literal notranslate"><span class="pre">-</span></code>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The resulting string, in the format <code class="docutils literal notranslate"><span class="pre">YYYY-MM-DD</span></code> format.</p>
</dd>
</dl>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.numberemojiformat">
<code class="descclassname">royalnet.utils.</code><code class="descname">numberemojiformat</code><span class="sig-paren">(</span><em>l: List[str]</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.numberemojiformat" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="royalnet.utils.telegram_escape">
<code class="descclassname">royalnet.utils.</code><code class="descname">telegram_escape</code><span class="sig-paren">(</span><em>string: str</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.telegram_escape" title="Permalink to this definition"></a></dt>
<dd><p>Escape a string to be sent through Telegram, and format it using RoyalCode.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Currently escapes everything, even items in code blocks.</p>
</div>
</dd></dl>
<dl class="function">
<dt id="royalnet.utils.discord_escape">
<code class="descclassname">royalnet.utils.</code><code class="descname">discord_escape</code><span class="sig-paren">(</span><em>string: str</em><span class="sig-paren">)</span> &#x2192; str<a class="headerlink" href="#royalnet.utils.discord_escape" title="Permalink to this definition"></a></dt>
<dd><p>Escape a string to be sent through Discord, and format it using RoyalCode.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Currently escapes everything, even items in code blocks.</p>
</div>
</dd></dl>
</div> </div>

View file

@ -88,7 +88,7 @@
<li class="toctree-l1"><a class="reference internal" href="utils.html">royalnet.utils</a></li> <li class="toctree-l1"><a class="reference internal" href="utils.html">royalnet.utils</a></li>
<li class="toctree-l1"><a class="reference internal" href="error.html">royalnet.error</a></li> <li class="toctree-l1"><a class="reference internal" href="error.html">royalnet.error</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">royalnet.web</a><ul> <li class="toctree-l1 current"><a class="current reference internal" href="#">royalnet.web</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-royalnet.web.royalprints">Royalprints</a></li> <li class="toctree-l2"><a class="reference internal" href="#royalprints">Royalprints</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -159,39 +159,8 @@
<h1>royalnet.web<a class="headerlink" href="#royalnet-web" title="Permalink to this headline"></a></h1> <h1>royalnet.web<a class="headerlink" href="#royalnet-web" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound"> <div class="toctree-wrapper compound">
</div> </div>
<span class="target" id="module-royalnet.web"></span><dl class="function"> <div class="section" id="royalprints">
<dt id="royalnet.web.create_app"> <h2>Royalprints<a class="headerlink" href="#royalprints" title="Permalink to this headline"></a></h2>
<code class="descclassname">royalnet.web.</code><code class="descname">create_app</code><span class="sig-paren">(</span><em>config_obj: Type[CT_co], blueprints: List[royalnet.web.royalprint.Royalprint]</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.web.create_app" title="Permalink to this definition"></a></dt>
<dd><p>Create a <code class="xref py py-class docutils literal notranslate"><span class="pre">flask.Flask</span></code> application object.</p>
<p>Gets the <code class="docutils literal notranslate"><span class="pre">app.secret_key</span></code> from the <code class="docutils literal notranslate"><span class="pre">SECRET_KEY</span></code> envvar.</p>
<p>Also requires a <code class="docutils literal notranslate"><span class="pre">DB_PATH</span></code> key in <code class="docutils literal notranslate"><span class="pre">config_obj</span></code> to initialize the database connection.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The code for this class was written at 1 AM, and I have no clue of how and why it works or even of if it really does work.
Use with caution?</p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>config_obj</strong> The object to be passed to <code class="xref py py-meth docutils literal notranslate"><span class="pre">flask.Flask.config.from_object()</span></code>.</p></li>
<li><p><strong>blueprints</strong> A list of blueprints to be registered to the application.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The created <code class="xref py py-class docutils literal notranslate"><span class="pre">flask.Flask</span></code>.</p>
</dd>
</dl>
</dd></dl>
<dl class="class">
<dt id="royalnet.web.Royalprint">
<em class="property">class </em><code class="descclassname">royalnet.web.</code><code class="descname">Royalprint</code><span class="sig-paren">(</span><em>name</em>, <em>import_name</em>, <em>static_folder=None</em>, <em>static_url_path=None</em>, <em>template_folder=None</em>, <em>url_prefix=None</em>, <em>subdomain=None</em>, <em>url_defaults=None</em>, <em>root_path=None</em>, <em>required_tables: Optional[set] = None</em><span class="sig-paren">)</span><a class="headerlink" href="#royalnet.web.Royalprint" title="Permalink to this definition"></a></dt>
<dd><p>An edited <code class="xref py py-class docutils literal notranslate"><span class="pre">flask.Blueprint</span></code> containing an additional <code class="docutils literal notranslate"><span class="pre">required_tables</span></code> parameter.</p>
</dd></dl>
<div class="section" id="module-royalnet.web.royalprints">
<span id="royalprints"></span><h2>Royalprints<a class="headerlink" href="#module-royalnet.web.royalprints" title="Permalink to this headline"></a></h2>
<p>Some Royalprints that can be used with the Royalnet Flask server.</p>
</div> </div>
</div> </div>