242 lines
13 KiB
HTML
242 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Introduction</title>
|
||
<!-- end extra head -->
|
||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
|
||
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
|
||
<link rel="stylesheet" type="text/css" href="_static/basic.css" />
|
||
<link rel="stylesheet" href="_static/style.css" type="text/css" />
|
||
<link rel="stylesheet" href="_static/codeblocks.css" type="text/css" />
|
||
<link rel="stylesheet" href="_static/icons.css" type="text/css" />
|
||
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
|
||
<script src="_static/jquery.js"></script>
|
||
<script src="_static/underscore.js"></script>
|
||
<script src="_static/doctools.js"></script>
|
||
<script src="_static/custom.js"></script>
|
||
<script src="_static/settings.js"></script>
|
||
<script src="_static/copy.js"></script>
|
||
<script src="_static/sidebar.js"></script>
|
||
<link rel="shortcut icon" href="_static/discord_py_logo.ico"/>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
</head>
|
||
<body>
|
||
<div class="main-grid">
|
||
<header class="grid-item">
|
||
<nav>
|
||
<a href="index.html" class="main-heading">discord.py</a>
|
||
<a href="https://github.com/Rapptz/discord.py" title="GitHub"><span class="material-icons custom-icons">github</span></a>
|
||
<a href="https://discord.gg/TvqYBrGXEm" title="Discord"><span class="material-icons custom-icons">discord</span></a>
|
||
<a href="faq.html" title="FAQ"><span class="material-icons">help_center</span></a>
|
||
<a onclick="mobileSearch.open();" title="Search" id="open-search" class="mobile-only"><span class="material-icons">search</span></a>
|
||
<a onclick="mobileSearch.close();" title="Close" id="close-search" class="mobile-only" hidden><span class="material-icons">close</span></a>
|
||
</nav>
|
||
<nav class="mobile-only">
|
||
<form role="search" class="search" action="search.html" method="get">
|
||
<div class="search-wrapper">
|
||
<input type="search" name="q" placeholder="Search documentation" />
|
||
<button type="submit">
|
||
<span class="material-icons">search</span>
|
||
</button>
|
||
</div>
|
||
</form>
|
||
</nav>
|
||
</header>
|
||
<div class="sub-header grid-item">
|
||
<label for="documentation_select">View Documentation For</label>
|
||
<select id="documentation_select" onchange="window.location = this.value;">
|
||
<option value="#" selected>discord</option>
|
||
<option value="ext/commands/index.html" >discord.ext.commands</option>
|
||
<option value="ext/tasks/index.html" >discord.ext.tasks</option>
|
||
</select>
|
||
<form role="search" class="search" action="search.html" method="get">
|
||
<div class="search-wrapper">
|
||
<input type="search" name="q" placeholder="Search documentation" />
|
||
<button type="submit">
|
||
<span class="material-icons">search</span>
|
||
</button>
|
||
</div>
|
||
</form>
|
||
<a accesskey="S" class="settings" onclick="settingsModal.open();"><span class="material-icons">settings</span></a>
|
||
</div>
|
||
<aside class="grid-item">
|
||
<span id="hamburger-toggle">
|
||
<span class="material-icons">menu</span>
|
||
</span>
|
||
<span id="settings-toggle" class="settings" onclick="settingsModal.open();">
|
||
<span class="material-icons">settings</span>
|
||
</span>
|
||
<div id="sidebar">
|
||
<h3><a href="index.html">Table of Contents</a></h3>
|
||
<ul>
|
||
<li><a class="reference internal" href="#">Introduction</a><ul>
|
||
<li><a class="reference internal" href="#prerequisites">Prerequisites</a></li>
|
||
<li><a class="reference internal" href="#installing">Installing</a><ul>
|
||
<li><a class="reference internal" href="#virtual-environments">Virtual Environments</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#basic-concepts">Basic Concepts</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</aside>
|
||
<main class="grid-item" role="main">
|
||
|
||
<section id="introduction">
|
||
<span id="intro"></span><h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
|
||
<p>This is the documentation for discord.py, a library for Python to aid
|
||
in creating applications that utilise the Discord API.</p>
|
||
<section id="prerequisites">
|
||
<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h2>
|
||
<p>discord.py works with Python 3.8 or higher. Support for earlier versions of Python
|
||
is not provided. Python 2.7 or lower is not supported. Python 3.7 or lower is not supported.</p>
|
||
</section>
|
||
<section id="installing">
|
||
<span id="id1"></span><h2>Installing<a class="headerlink" href="#installing" title="Permalink to this headline">¶</a></h2>
|
||
<p>You can get the library directly from PyPI:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">U</span> <span class="n">discord</span><span class="o">.</span><span class="n">py</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>If you are using Windows, then the following should be used instead:</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">py</span> <span class="o">-</span><span class="mi">3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">U</span> <span class="n">discord</span><span class="o">.</span><span class="n">py</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>To get voice support, you should use <code class="docutils literal notranslate"><span class="pre">discord.py[voice]</span></code> instead of <code class="docutils literal notranslate"><span class="pre">discord.py</span></code>, e.g.</p>
|
||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">U</span> <span class="n">discord</span><span class="o">.</span><span class="n">py</span><span class="p">[</span><span class="n">voice</span><span class="p">]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>On Linux environments, installing voice requires getting the following dependencies:</p>
|
||
<ul class="simple">
|
||
<li><p><a class="reference external" href="https://github.com/libffi/libffi">libffi</a></p></li>
|
||
<li><p><a class="reference external" href="https://github.com/saltstack/libnacl">libnacl</a></p></li>
|
||
<li><p><a class="reference external" href="https://packages.debian.org/python3-dev">python3-dev</a></p></li>
|
||
</ul>
|
||
<p>For a Debian-based system, the following command will get these dependencies:</p>
|
||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ apt install libffi-dev libnacl-dev python3-dev
|
||
</pre></div>
|
||
</div>
|
||
<p>Remember to check your permissions!</p>
|
||
<section id="virtual-environments">
|
||
<h3>Virtual Environments<a class="headerlink" href="#virtual-environments" title="Permalink to this headline">¶</a></h3>
|
||
<p>Sometimes you want to keep libraries from polluting system installs or use a different version of
|
||
libraries than the ones installed on the system. You might also not have permissions to install libraries system-wide.
|
||
For this purpose, the standard library as of Python 3.3 comes with a concept called “Virtual Environment”s to
|
||
help maintain these separate versions.</p>
|
||
<p>A more in-depth tutorial is found on <a class="reference external" href="https://docs.python.org/3/tutorial/venv.html" title="(in Python v3.9)"><span>Virtual Environments and Packages</span></a>.</p>
|
||
<p>However, for the quick and dirty:</p>
|
||
<ol class="arabic">
|
||
<li><p>Go to your project’s working directory:</p>
|
||
<blockquote>
|
||
<div><div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ <span class="nb">cd</span> your-bot-source
|
||
$ python3 -m venv bot-env
|
||
</pre></div>
|
||
</div>
|
||
</div></blockquote>
|
||
</li>
|
||
<li><p>Activate the virtual environment:</p>
|
||
<blockquote>
|
||
<div><div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ <span class="nb">source</span> bot-env/bin/activate
|
||
</pre></div>
|
||
</div>
|
||
<p>On Windows you activate it with:</p>
|
||
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ bot-env<span class="se">\S</span>cripts<span class="se">\a</span>ctivate.bat
|
||
</pre></div>
|
||
</div>
|
||
</div></blockquote>
|
||
</li>
|
||
<li><p>Use pip like usual:</p>
|
||
<blockquote>
|
||
<div><div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ pip install -U discord.py
|
||
</pre></div>
|
||
</div>
|
||
</div></blockquote>
|
||
</li>
|
||
</ol>
|
||
<p>Congratulations. You now have a virtual environment all set up.</p>
|
||
</section>
|
||
</section>
|
||
<section id="basic-concepts">
|
||
<h2>Basic Concepts<a class="headerlink" href="#basic-concepts" title="Permalink to this headline">¶</a></h2>
|
||
<p>discord.py revolves around the concept of <a class="reference internal" href="api.html#discord-api-events"><span class="std std-ref">events</span></a>.
|
||
An event is something you listen to and then respond to. For example, when a message
|
||
happens, you will receive an event about it that you can respond to.</p>
|
||
<p>A quick example to showcase how events work:</p>
|
||
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">discord</span>
|
||
|
||
<span class="k">class</span> <span class="nc">MyClient</span><span class="p">(</span><span class="n">discord</span><span class="o">.</span><span class="n">Client</span><span class="p">):</span>
|
||
<span class="k">async</span> <span class="k">def</span> <span class="nf">on_ready</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Logged on as </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="si">}</span><span class="s1">!'</span><span class="p">)</span>
|
||
|
||
<span class="k">async</span> <span class="k">def</span> <span class="nf">on_message</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">):</span>
|
||
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s1">'Message from </span><span class="si">{</span><span class="n">messsage</span><span class="o">.</span><span class="n">author</span><span class="si">}</span><span class="s1">: </span><span class="si">{</span><span class="n">message</span><span class="o">.</span><span class="n">content</span><span class="si">}</span><span class="s1">'</span><span class="p">)</span>
|
||
|
||
<span class="n">client</span> <span class="o">=</span> <span class="n">MyClient</span><span class="p">()</span>
|
||
<span class="n">client</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="s1">'my token goes here'</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
</section>
|
||
</section>
|
||
|
||
|
||
</main>
|
||
<footer class="grid-item">
|
||
© Copyright 2015-present, Rapptz.
|
||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.2.0.
|
||
</footer>
|
||
</div>
|
||
|
||
<div id="settings" class="modal" onclick="if (event.target == this){ settingsModal.close(); }" hidden>
|
||
<div class="modal-content">
|
||
<span class="close" onclick="settingsModal.close();" title="Close">
|
||
<span class="material-icons">close</span>
|
||
</span>
|
||
<h1>Settings</h1>
|
||
|
||
<h2>Font</h2>
|
||
<div class="setting">
|
||
<h3>Use a serif font:
|
||
<label class="toggle"
|
||
title="Use a serif font? Your system font will be used, falling back to serif.">
|
||
<input type="checkbox" name="useSerifFont" onclick="updateSetting(this);">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</h3>
|
||
</div>
|
||
|
||
<h2>Theme</h2>
|
||
<div class="setting">
|
||
<h3>
|
||
<label class="toggle" title="Set your theme based on your system preferences">
|
||
<input type="radio" name="setTheme" onclick="updateSetting(this);" value="automatic" checked>
|
||
</label>
|
||
Automatic
|
||
</h3>
|
||
<h3>
|
||
<label class="toggle" title="Set your theme to light theme">
|
||
<input type="radio" name="setTheme" onclick="updateSetting(this);" value="light">
|
||
</label>
|
||
Light
|
||
</h3>
|
||
<h3>
|
||
<label class="toggle" title="Set your theme to dark theme">
|
||
<input type="radio" name="setTheme" onclick="updateSetting(this);" value="dark">
|
||
</label>
|
||
Dark
|
||
</h3>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div id="to-top" onclick="scrollToTop()" hidden>
|
||
<span><span class="material-icons">arrow_upward</span> to top</span>
|
||
</div>
|
||
|
||
</body>
|
||
</html> |