diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index cc54593..07dcc06 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index c918508..c0329e5 100644 Binary files a/docs/_build/doctrees/index.doctree and b/docs/_build/doctrees/index.doctree differ diff --git a/docs/_build/doctrees/modules.doctree b/docs/_build/doctrees/modules.doctree index 0360d58..9d15f99 100644 Binary files a/docs/_build/doctrees/modules.doctree and b/docs/_build/doctrees/modules.doctree differ diff --git a/docs/_build/doctrees/pomice.doctree b/docs/_build/doctrees/pomice.doctree index e3e2d07..397d430 100644 Binary files a/docs/_build/doctrees/pomice.doctree and b/docs/_build/doctrees/pomice.doctree differ diff --git a/docs/_build/doctrees/pomice.spotify.doctree b/docs/_build/doctrees/pomice.spotify.doctree index aaad60e..25b39d3 100644 Binary files a/docs/_build/doctrees/pomice.spotify.doctree and b/docs/_build/doctrees/pomice.spotify.doctree differ diff --git a/docs/_build/html/.buildinfo b/docs/_build/html/.buildinfo index d761e76..f1c1dfc 100644 --- a/docs/_build/html/.buildinfo +++ b/docs/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 0ed884b921767abe79957ecf5d5887be +config: b63d0a8d2c46c67bfeda65e124ed2f92 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_build/html/_static/alabaster.css b/docs/_build/html/_static/alabaster.css deleted file mode 100644 index 0eddaeb..0000000 --- a/docs/_build/html/_static/alabaster.css +++ /dev/null @@ -1,701 +0,0 @@ -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css index 912859b..bf18350 100644 --- a/docs/_build/html/_static/basic.css +++ b/docs/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -731,8 +731,9 @@ dl.glossary dt { .classifier:before { font-style: normal; - margin: 0.5em; + margin: 0 0.5em; content: ":"; + display: inline-block; } abbr, acronym { @@ -756,6 +757,7 @@ span.pre { -ms-hyphens: none; -webkit-hyphens: none; hyphens: none; + white-space: nowrap; } div[class*="highlight-"] { diff --git a/docs/_build/html/_static/custom.css b/docs/_build/html/_static/custom.css deleted file mode 100644 index 2a924f1..0000000 --- a/docs/_build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js index 8cbf1b1..e509e48 100644 --- a/docs/_build/html/_static/doctools.js +++ b/docs/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -264,6 +264,9 @@ var Documentation = { hideSearchWords : function() { $('#searchbox .highlight-link').fadeOut(300); $('span.highlighted').removeClass('highlighted'); + var url = new URL(window.location); + url.searchParams.delete('highlight'); + window.history.replaceState({}, '', url); }, /** diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js index 863704b..ebe2f03 100644 --- a/docs/_build/html/_static/language_data.js +++ b/docs/_build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/_build/html/_static/pygments.css b/docs/_build/html/_static/pygments.css index 87f8bd1..08bec68 100644 --- a/docs/_build/html/_static/pygments.css +++ b/docs/_build/html/_static/pygments.css @@ -5,78 +5,70 @@ td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5 span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight { background: #f8f8f8; } -.highlight .c { color: #8f5902; font-style: italic } /* Comment */ -.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ -.highlight .g { color: #000000 } /* Generic */ -.highlight .k { color: #004461; font-weight: bold } /* Keyword */ -.highlight .l { color: #000000 } /* Literal */ -.highlight .n { color: #000000 } /* Name */ -.highlight .o { color: #582800 } /* Operator */ -.highlight .x { color: #000000 } /* Other */ -.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8f5902 } /* Comment.Preproc */ -.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #a40000 } /* Generic.Deleted */ -.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #ef2929 } /* Generic.Error */ +.highlight .c { color: #3D7B7B; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #008000; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #9C6500 } /* Comment.Preproc */ +.highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #E40000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #745334 } /* Generic.Prompt */ -.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ +.highlight .gi { color: #008400 } /* Generic.Inserted */ +.highlight .go { color: #717171 } /* Generic.Output */ +.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000000 } /* Literal.Date */ -.highlight .m { color: #990000 } /* Literal.Number */ -.highlight .s { color: #4e9a06 } /* Literal.String */ -.highlight .na { color: #c4a000 } /* Name.Attribute */ -.highlight .nb { color: #004461 } /* Name.Builtin */ -.highlight .nc { color: #000000 } /* Name.Class */ -.highlight .no { color: #000000 } /* Name.Constant */ -.highlight .nd { color: #888888 } /* Name.Decorator */ -.highlight .ni { color: #ce5c00 } /* Name.Entity */ -.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000000 } /* Name.Function */ -.highlight .nl { color: #f57900 } /* Name.Label */ -.highlight .nn { color: #000000 } /* Name.Namespace */ -.highlight .nx { color: #000000 } /* Name.Other */ -.highlight .py { color: #000000 } /* Name.Property */ -.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000000 } /* Name.Variable */ -.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ -.highlight .mb { color: #990000 } /* Literal.Number.Bin */ -.highlight .mf { color: #990000 } /* Literal.Number.Float */ -.highlight .mh { color: #990000 } /* Literal.Number.Hex */ -.highlight .mi { color: #990000 } /* Literal.Number.Integer */ -.highlight .mo { color: #990000 } /* Literal.Number.Oct */ -.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ -.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ -.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ -.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ -.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ -.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ -.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000000 } /* Name.Function.Magic */ -.highlight .vc { color: #000000 } /* Name.Variable.Class */ -.highlight .vg { color: #000000 } /* Name.Variable.Global */ -.highlight .vi { color: #000000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000000 } /* Name.Variable.Magic */ -.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #008000 } /* Keyword.Pseudo */ +.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #B00040 } /* Keyword.Type */ +.highlight .m { color: #666666 } /* Literal.Number */ +.highlight .s { color: #BA2121 } /* Literal.String */ +.highlight .na { color: #687822 } /* Name.Attribute */ +.highlight .nb { color: #008000 } /* Name.Builtin */ +.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ +.highlight .no { color: #880000 } /* Name.Constant */ +.highlight .nd { color: #AA22FF } /* Name.Decorator */ +.highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #0000FF } /* Name.Function */ +.highlight .nl { color: #767600 } /* Name.Label */ +.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #19177C } /* Name.Variable */ +.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #666666 } /* Literal.Number.Bin */ +.highlight .mf { color: #666666 } /* Literal.Number.Float */ +.highlight .mh { color: #666666 } /* Literal.Number.Hex */ +.highlight .mi { color: #666666 } /* Literal.Number.Integer */ +.highlight .mo { color: #666666 } /* Literal.Number.Oct */ +.highlight .sa { color: #BA2121 } /* Literal.String.Affix */ +.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ +.highlight .sc { color: #BA2121 } /* Literal.String.Char */ +.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */ +.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ +.highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ +.highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */ +.highlight .sx { color: #008000 } /* Literal.String.Other */ +.highlight .sr { color: #A45A77 } /* Literal.String.Regex */ +.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ +.highlight .ss { color: #19177C } /* Literal.String.Symbol */ +.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #0000FF } /* Name.Function.Magic */ +.highlight .vc { color: #19177C } /* Name.Variable.Class */ +.highlight .vg { color: #19177C } /* Name.Variable.Global */ +.highlight .vi { color: #19177C } /* Name.Variable.Instance */ +.highlight .vm { color: #19177C } /* Name.Variable.Magic */ +.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js index 58ff35c..2d77859 100644 --- a/docs/_build/html/_static/searchtools.js +++ b/docs/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -328,7 +328,9 @@ var Search = { var results = []; for (var prefix in objects) { - for (var name in objects[prefix]) { + for (var iMatch = 0; iMatch != objects[prefix].length; ++iMatch) { + var match = objects[prefix][iMatch]; + var name = match[4]; var fullname = (prefix ? prefix + '.' : '') + name; var fullnameLower = fullname.toLowerCase() if (fullnameLower.indexOf(object) > -1) { @@ -342,7 +344,6 @@ var Search = { } else if (parts[parts.length - 1].indexOf(object) > -1) { score += Scorer.objPartialMatch; } - var match = objects[prefix][name]; var objname = objnames[match[1]][2]; var title = titles[match[0]]; // If more than one term searched for, we require other words to be diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index e886072..0db161a 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -1,35 +1,66 @@ - - - - - - - Index — Pomice 1.1.1 documentation - - - - - - + + + + + Index — Pomice 1.1.1 documentation + + + + + + + + + - - - - - - + + - - + +
+ -
- +
+ +
+
+
+
    +
  • »
  • +
  • Index
  • +
  • +
  • +
+
+
+
+
+

Index

@@ -75,9 +106,15 @@
  • (pomice.pool.Node property)
  • +
  • build_track() (pomice.pool.Node method) +
  • @@ -155,6 +192,8 @@

    G

      -
    • node_count (pomice.pool.NodePool property) +
    • NodeAlgorithm (class in pomice.enums)
    • NodeConnectionClosed
    • @@ -445,6 +486,12 @@

      R

      + @@ -566,66 +613,31 @@ + - + - - -
      - - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index 0956fd7..cf7d28b 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -1,43 +1,75 @@ - + + + - - - - - - Welcome to Pomice! — Pomice 1.1.1 documentation - - - - - - + + Welcome to Pomice! — Pomice 1.1.1 documentation + + + + + + + + + - - - - - - + + - - + +
      + -
      - +
      + +
      +
      +
      + +
      +
      +
      +
      +
      -

      Welcome to Pomice!

      +

      Welcome to Pomice!

      https://raw.githubusercontent.com/cloudwithax/pomice/main/banner.jpg

      The modern Lavalink wrapper designed for discord.py

      -

      Contents

      +

      Contents

      -

      Before You Start

      +

      Before You Start

      This library is designed to work with the Lavalink audio delivery system, which directly interfaces with Discord to provide buttery smooth audio without wasting your precious system resources.

      @@ -73,7 +105,7 @@ and is out of your way, while also being customizable.

      you can get it here

      -

      Quick Jumpstart

      +

      Quick Jumpstart

      If you want a quick example as to how to start with Pomice, look below:

      import pomice
       import discord
      @@ -149,70 +181,33 @@ you can get it 
      +        
      +    
      + +
      + +
      +

      © Copyright 2021, cloudwithax.

      +
      + + Built with Sphinx using a + theme + provided by Read the Docs. + + +
      -
      +
      + - - - - - - - -

      Navigation

      - - -
      -

      Related Topics

      - -
      - - - - - - - - - - -
      - -
      - - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/modules.html b/docs/_build/html/modules.html index 6f8d265..4011fbb 100644 --- a/docs/_build/html/modules.html +++ b/docs/_build/html/modules.html @@ -1,42 +1,74 @@ - + + + - - - - - - <no title> — Pomice 1.1.1 documentation - - - - - - + + <no title> — Pomice 1.1.1 documentation + + + + + + + + + - - - - - - + + - - + +
      + -
      - +
      + +
      +
      +
      + +
      +
      + - +
      -
      +
      + - - - - - - - -

      Navigation

      - - -
      -

      Related Topics

      - -
      - - - - - - - - - - -
      - -
      - - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 13f9d61..e4e5f04 100644 Binary files a/docs/_build/html/objects.inv and b/docs/_build/html/objects.inv differ diff --git a/docs/_build/html/pomice.html b/docs/_build/html/pomice.html index 9392cbe..d157e3c 100644 --- a/docs/_build/html/pomice.html +++ b/docs/_build/html/pomice.html @@ -1,40 +1,84 @@ - + + + - - - - - - Pomice — Pomice 1.1.1 documentation - - - - - - + + Pomice — Pomice 1.1.1 documentation + + + + + + + + + - - - - - - + + - - + +
      + -
      - +
      + +
      +
      +
      + +
      +
      +
      +
      +
      -

      Pomice

      +

      Pomice

      -

      Enums

      +

      Enums

      +
      +
      +class pomice.enums.NodeAlgorithm(value)
      +

      Bases: enum.Enum

      +

      The enum for the different node algorithms in Pomice.

      +

      The enums in this class are to only differentiate different +methods, since the actual method is handled in the +get_best_node() method.

      +

      NodeAlgorithm.by_ping returns a node based on it’s latency, +preferring a node with the lowest response time

      +

      NodeAlgorithm.by_region returns a node based on its voice region, +which the region is specified by the user in the method as an arg. +This method will only work if you set a voice region when you create a node.

      +

      NodeAlgorithm.by_players return a nodes based on how many players it has. +This algorithm prefers nodes with the least amount of players.

      +
      +
      +by_ping = 1
      +
      + +
      +
      +by_players = 3
      +
      + +
      +
      +by_region = 2
      +
      + +
      +
      -class pomice.enums.SearchType(value)
      +class pomice.enums.SearchType(value)

      Bases: enum.Enum

      The enum for the different search types for Pomice. This feature is exclusively for the Spotify search feature of Pomice. @@ -64,27 +140,27 @@ which is best for getting audio-only results.

      which is an alternative to YouTube or YouTube Music.

      -scsearch = 'scsearch'
      +scsearch = 'scsearch'
      -ytmsearch = 'ytmsearch'
      +ytmsearch = 'ytmsearch'
      -ytsearch = 'ytsearch'
      +ytsearch = 'ytsearch'
      -

      Events

      +

      Events

      -class pomice.events.PomiceEvent
      +class pomice.events.PomiceEvent

      Bases: object

      The base class for all events dispatched by a node. Every event must be formatted within your bot’s code as a listener. @@ -95,213 +171,213 @@ i.e: If you want to listen for when a track starts, the event would be: `

      -dispatch(bot: Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client])
      +dispatch(bot: discord.client.Client)
      -handler_args = ()
      +handler_args = ()
      -name = 'event'
      +name = 'event'
      -class pomice.events.TrackEndEvent(data: dict)
      +class pomice.events.TrackEndEvent(data: dict, player)

      Bases: pomice.events.PomiceEvent

      Fired when a track has successfully ended. Returns the player associated with the event along with the pomice.Track object and reason.

      -name = 'track_end'
      +name = 'track_end'
      -class pomice.events.TrackExceptionEvent(data: dict)
      +class pomice.events.TrackExceptionEvent(data: dict, player)

      Bases: pomice.events.PomiceEvent

      Fired when a track error has occured. Returns the player associated with the event along with the error code and exception.

      -name = 'track_exception'
      +name = 'track_exception'
      -class pomice.events.TrackStartEvent(data: dict)
      +class pomice.events.TrackStartEvent(data: dict, player)

      Bases: pomice.events.PomiceEvent

      Fired when a track has successfully started. Returns the player associated with the event and the pomice.Track object.

      -name = 'track_start'
      +name = 'track_start'
      -class pomice.events.TrackStuckEvent(data: dict)
      +class pomice.events.TrackStuckEvent(data: dict, player)

      Bases: pomice.events.PomiceEvent

      Fired when a track is stuck and cannot be played. Returns the player associated with the event along with the pomice.Track object to be further parsed by the end user.

      -name = 'track_stuck'
      +name = 'track_stuck'
      -class pomice.events.WebSocketClosedEvent(data: dict)
      +class pomice.events.WebSocketClosedEvent(data: dict, _)

      Bases: pomice.events.PomiceEvent

      Fired when a websocket connection to a node has been closed. Returns the reason and the error code.

      -name = 'websocket_closed'
      +name = 'websocket_closed'
      -class pomice.events.WebSocketClosedPayload(data: dict)
      +class pomice.events.WebSocketClosedPayload(data: dict)

      Bases: object

      -class pomice.events.WebSocketOpenEvent(data: dict)
      +class pomice.events.WebSocketOpenEvent(data: dict, _)

      Bases: pomice.events.PomiceEvent

      Fired when a websocket connection to a node has been initiated. Returns the target and the session SSRC.

      -name = 'websocket_open'
      +name = 'websocket_open'
      -

      Exceptions

      +

      Exceptions

      -exception pomice.exceptions.FilterInvalidArgument
      +exception pomice.exceptions.FilterInvalidArgument

      Bases: pomice.exceptions.PomiceException

      An invalid argument was passed to a filter.

      -exception pomice.exceptions.InvalidSpotifyClientAuthorization
      +exception pomice.exceptions.InvalidSpotifyClientAuthorization

      Bases: pomice.exceptions.PomiceException

      No Spotify client authorization was provided for track searching.

      -exception pomice.exceptions.NoNodesAvailable
      +exception pomice.exceptions.NoNodesAvailable

      Bases: pomice.exceptions.PomiceException

      There are no nodes currently available.

      -exception pomice.exceptions.NodeConnectionClosed
      +exception pomice.exceptions.NodeConnectionClosed

      Bases: pomice.exceptions.NodeException

      The node’s connection is closed.

      -exception pomice.exceptions.NodeConnectionFailure
      +exception pomice.exceptions.NodeConnectionFailure

      Bases: pomice.exceptions.NodeException

      There was a problem while connecting to the node.

      -exception pomice.exceptions.NodeCreationError
      +exception pomice.exceptions.NodeCreationError

      Bases: pomice.exceptions.NodeException

      There was a problem while creating the node.

      -exception pomice.exceptions.NodeException
      +exception pomice.exceptions.NodeException

      Bases: Exception

      Base exception for nodes.

      -exception pomice.exceptions.NodeNotAvailable
      +exception pomice.exceptions.NodeNotAvailable

      Bases: pomice.exceptions.PomiceException

      The node is currently unavailable.

      -exception pomice.exceptions.PomiceException
      +exception pomice.exceptions.PomiceException

      Bases: Exception

      Base of all Pomice exceptions.

      -exception pomice.exceptions.SpotifyAlbumLoadFailed
      +exception pomice.exceptions.SpotifyAlbumLoadFailed

      Bases: pomice.exceptions.PomiceException

      The pomice Spotify client was unable to load an album.

      -exception pomice.exceptions.SpotifyPlaylistLoadFailed
      +exception pomice.exceptions.SpotifyPlaylistLoadFailed

      Bases: pomice.exceptions.PomiceException

      The pomice Spotify client was unable to load a playlist.

      -exception pomice.exceptions.SpotifyTrackLoadFailed
      +exception pomice.exceptions.SpotifyTrackLoadFailed

      Bases: pomice.exceptions.PomiceException

      The pomice Spotify client was unable to load a track.

      -exception pomice.exceptions.TrackInvalidPosition
      +exception pomice.exceptions.TrackInvalidPosition

      Bases: pomice.exceptions.PomiceException

      An invalid position was chosen for a track.

      -exception pomice.exceptions.TrackLoadError
      +exception pomice.exceptions.TrackLoadError

      Bases: pomice.exceptions.PomiceException

      There was an error while loading a track.

      -

      Filters

      +

      Filters

      -class pomice.filters.ChannelMix(*, left_to_left: float = 1, right_to_right: float = 1, left_to_right: float = 0, right_to_left: float = 0)
      +class pomice.filters.ChannelMix(*, left_to_left: float = 1, right_to_right: float = 1, left_to_right: float = 0, right_to_left: float = 0)

      Bases: pomice.filters.Filter

      Filter which manually adjusts the panning of the audio, which can make for some cool effects when done correctly.

      @@ -309,7 +385,7 @@ for some cool effects when done correctly.

      -class pomice.filters.Distortion(*, sin_offset: float = 0, sin_scale: float = 1, cos_offset: float = 0, cos_scale: float = 1, tan_offset: float = 0, tan_scale: float = 1, offset: float = 0, scale: float = 1)
      +class pomice.filters.Distortion(*, sin_offset: float = 0, sin_scale: float = 1, cos_offset: float = 0, cos_scale: float = 1, tan_offset: float = 0, tan_scale: float = 1, offset: float = 0, scale: float = 1)

      Bases: pomice.filters.Filter

      Filter which generates a distortion effect. Useful for certain filter implementations where distortion is needed.

      @@ -317,8 +393,8 @@ distortion is needed.

      -class pomice.filters.Equalizer(*, levels: list)
      -

      Bases: object

      +class pomice.filters.Equalizer(*, levels: list) +

      Bases: pomice.filters.Filter

      Filter which represents a 15 band equalizer. You can adjust the dynamic of the sound using this filter. i.e: Applying a bass boost filter to emphasize the bass in a song. @@ -327,13 +403,17 @@ The format for the levels is: List[Tuple[int, float]]

      -class pomice.filters.Filter
      +class pomice.filters.Filter

      Bases: object

      +

      The base class for all filters. +You can use these filters if you have the latest Lavalink version +installed. If you do not have the latest Lavalink version, +these filters will not work.

      -class pomice.filters.Karaoke(*, level: float = 1.0, mono_level: float = 1.0, filter_band: float = 220.0, filter_width: float = 100.0)
      +class pomice.filters.Karaoke(*, level: float = 1.0, mono_level: float = 1.0, filter_band: float = 220.0, filter_width: float = 100.0)

      Bases: pomice.filters.Filter

      Filter which filters the vocal track from any song and leaves the instrumental. Best for karaoke as the filter implies.

      @@ -341,7 +421,7 @@ Best for karaoke as the filter implies.

      -class pomice.filters.LowPass(*, smoothing: float = 20)
      +class pomice.filters.LowPass(*, smoothing: float = 20)

      Bases: pomice.filters.Filter

      Filter which supresses higher frequencies and allows lower frequencies to pass. You can also do this with the Equalizer filter, but this is an easier way to do it.

      @@ -349,7 +429,7 @@ You can also do this with the Equalizer filter, but this is an easier way to do
      -class pomice.filters.Rotation(*, rotation_hertz: float = 5)
      +class pomice.filters.Rotation(*, rotation_hertz: float = 5)

      Bases: pomice.filters.Filter

      Filter which produces a stereo-like panning effect, which sounds like the audio is being rotated around the listener’s head

      @@ -357,18 +437,17 @@ the audio is being rotated around the listener’s head

      -class pomice.filters.Timescale(*, speed: float = 1.0, pitch: float = 1.0, rate: float = 1.0)
      +class pomice.filters.Timescale(*, speed: float = 1.0, pitch: float = 1.0, rate: float = 1.0)

      Bases: pomice.filters.Filter

      Filter which changes the speed and pitch of a track. -Do be warned that this filter is bugged as of the lastest Lavalink dev version -due to the filter patch not corresponding with the track time.

      -

      In short this means that your track will either end prematurely or end later due to this. -This is not the library’s fault.

      +You can make some very nice effects with this filter, +i.e: a vaporwave-esque filter which slows the track down +a certain amount to produce said effect.

      -class pomice.filters.Tremolo(*, frequency: float = 2.0, depth: float = 0.5)
      +class pomice.filters.Tremolo(*, frequency: float = 2.0, depth: float = 0.5)

      Bases: pomice.filters.Filter

      Filter which produces a wavering tone in the music, causing it to sound like the music is changing in volume rapidly.

      @@ -376,7 +455,7 @@ causing it to sound like the music is changing in volume rapidly.

      -class pomice.filters.Vibrato(*, frequency: float = 2.0, depth: float = 0.5)
      +class pomice.filters.Vibrato(*, frequency: float = 2.0, depth: float = 0.5)

      Bases: pomice.filters.Filter

      Filter which produces a wavering tone in the music, similar to the Tremolo filter, but changes in pitch rather than volume.

      @@ -384,23 +463,23 @@ but changes in pitch rather than volume.

      -

      Objects

      +

      Objects

      -class pomice.objects.Playlist(*, playlist_info: dict, tracks: list, ctx: Optional[discord.ext.commands.context.Context] = None, spotify: bool = False, thumbnail: Optional[str] = None, uri: Optional[str] = None)
      +class pomice.objects.Playlist(*, playlist_info: dict, tracks: list, ctx: Optional[discord.ext.commands.context.Context] = None, spotify: bool = False, spotify_playlist=None)

      Bases: object

      The base playlist object. Returns critical playlist information needed for parsing by Lavalink. You can also pass in commands.Context to get a discord.py Context object in your tracks.

      -property thumbnail: Optional[str]
      +property thumbnail: Optional[str]

      Spotify album/playlist thumbnail, or None if not a Spotify object.

      -property uri: Optional[str]
      +property uri: Optional[str]

      Spotify album/playlist URI, or None if not a Spotify object.

      @@ -408,7 +487,7 @@ You can also pass in commands.Context to get a discord.py Context object in your
      -class pomice.objects.Track(*, track_id: str, info: dict, ctx: Optional[discord.ext.commands.context.Context] = None, spotify: bool = False, search_type: pomice.enums.SearchType = SearchType.ytsearch)
      +class pomice.objects.Track(*, track_id: str, info: dict, ctx: Optional[discord.ext.commands.context.Context] = None, spotify: bool = False, search_type: pomice.enums.SearchType = SearchType.ytsearch, spotify_track=None)

      Bases: object

      The base track object. Returns critical track information needed for parsing by Lavalink. You can also pass in commands.Context to get a discord.py Context object in your track.

      @@ -416,10 +495,10 @@ You can also pass in commands.Context to get a discord.py Context object in your
      -

      Player

      +

      Player

      -class pomice.player.Player(client: Optional[Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client]] = None, channel: Optional[discord.channel.VoiceChannel] = None, **kwargs)
      +class pomice.player.Player(client: Optional[discord.client.Client] = None, channel: Optional[discord.channel.VoiceChannel] = None, *, node: Optional[pomice.pool.Node] = None)

      Bases: discord.voice_client.VoiceProtocol

      The base player class for Pomice. In order to initiate a player, you must pass it in as a cls when you connect to a channel. @@ -428,13 +507,13 @@ i.e: `py `

      -property bot: Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client]
      +property bot: discord.client.Client

      Property which returns the bot associated with this player instance

      -async connect(*, timeout: float, reconnect: bool)
      +async connect(*, timeout: float, reconnect: bool)

      |coro|

      An abstract method called when the client initiates the connection request.

      When a connection is requested initially, the library calls the constructor @@ -454,31 +533,31 @@ The order that these two are called is unspecified.

      -property current: pomice.objects.Track
      +property current: pomice.objects.Track

      Property which returns the currently playing track

      -async destroy()
      +async destroy()

      Disconnects and destroys the player, and runs internal cleanup.

      -async disconnect(*, force: bool = False)
      +async disconnect(*, force: bool = False)

      Disconnects the player from voice.

      -property filter: pomice.filters.Filter
      +property filter: pomice.filters.Filter

      Property which returns the currently applied filter, if one is applied

      -async get_tracks(query: str, *, ctx: Optional[discord.ext.commands.context.Context] = None, search_type: pomice.enums.SearchType = SearchType.ytsearch)
      +async get_tracks(query: str, *, ctx: Optional[discord.ext.commands.context.Context] = None, search_type: pomice.enums.SearchType = SearchType.ytsearch)

      Fetches tracks from the node’s REST api to parse into Lavalink.

      If you passed in Spotify API credentials when you created the node, you can also pass in a Spotify URL of a playlist, album or track and it will be parsed @@ -489,44 +568,44 @@ Context object on any track you search.

      -property guild: discord.guild.Guild
      +property guild: discord.guild.Guild

      Property which returns the guild associated with the player

      -property is_connected: bool
      +property is_connected: bool

      Property which returns whether or not the player is connected

      -property is_dead: bool
      +property is_dead: bool

      Returns a bool representing whether the player is dead or not. A player is considered dead if it has been destroyed and removed from stored players.

      -property is_paused: bool
      +property is_paused: bool

      Property which returns whether or not the player has a track which is paused or not.

      -property is_playing: bool
      +property is_playing: bool

      Property which returns whether or not the player is actively playing a track.

      -property node: pomice.pool.Node
      +property node: pomice.pool.Node

      Property which returns the node the player is connected to

      -async on_voice_server_update(data: dict)
      +async on_voice_server_update(data: dict)

      |coro|

      An abstract method that is called when initially connecting to voice. This corresponds to VOICE_SERVER_UPDATE.

      @@ -538,7 +617,7 @@ This corresponds to
      -async on_voice_state_update(data: dict)
      +async on_voice_state_update(data: dict)

      |coro|

      An abstract method that is called when the client’s voice state has changed. This corresponds to VOICE_STATE_UPDATE.

      @@ -550,50 +629,57 @@ has changed. This corresponds to
      -async play(track: pomice.objects.Track, *, start: int = 0, end: int = 0, ignore_if_playing: bool = False) pomice.objects.Track
      +async play(track: pomice.objects.Track, *, start: int = 0, end: int = 0, ignore_if_playing: bool = False) pomice.objects.Track

      Plays a track. If a Spotify track is passed in, it will be handled accordingly.

      -property position: float
      +property position: float

      Property which returns the player’s position in a track in milliseconds

      +
      +
      +async reset_filter()
      +

      Resets a currently applied filter to its default parameters. +You must have a filter applied in order for this to work

      +
      +
      -async seek(position: float) float
      +async seek(position: float) float

      Seeks to a position in the currently playing track milliseconds

      -async set_filter(filter: pomice.filters.Filter) pomice.filters.Filter
      +async set_filter(filter: pomice.filters.Filter) pomice.filters.Filter

      Sets a filter of the player. Takes a pomice.Filter object. -This will only work if you are using the development version of Lavalink.

      +This will only work if you are using a version of Lavalink that supports filters.

      -async set_pause(pause: bool) bool
      +async set_pause(pause: bool) bool

      Sets the pause state of the currently playing track.

      -async set_volume(volume: int) int
      +async set_volume(volume: int) int

      Sets the volume of the player as an integer. Lavalink accepts values from 0 to 500.

      -async stop()
      +async stop()

      Stops the currently playing track.

      -property volume: int
      +property volume: int

      Property which returns the players current volume

      @@ -601,23 +687,23 @@ This will only work if you are using the development version of Lavalink.

      -

      Pool

      +

      Pool

      -class pomice.pool.Node(*, pool, bot: Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client], host: str, port: int, password: str, identifier: str, session: Optional[aiohttp.client.ClientSession], spotify_client_id: Optional[str], spotify_client_secret: Optional[str])
      +class pomice.pool.Node(*, pool, bot: discord.client.Client, host: str, port: int, password: str, identifier: str, secure: bool = False, heartbeat: int = 30, region: Optional[discord.enums.VoiceRegion] = None, session: Optional[aiohttp.client.ClientSession] = None, spotify_client_id: Optional[str] = None, spotify_client_secret: Optional[str] = None)

      Bases: object

      The base class for a node. This node object represents a Lavalink node. To enable Spotify searching, pass in a proper Spotify Client ID and Spotify Client Secret

      -property bot: Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client]
      +property bot: discord.client.Client

      Property which returns the discord.py client linked to this node

      -async build_track(identifier: str, ctx: Optional[discord.ext.commands.context.Context] = None) pomice.objects.Track
      +async build_track(identifier: str, ctx: Optional[discord.ext.commands.context.Context] = None) pomice.objects.Track

      Builds a track using a valid track identifier

      You can also pass in a discord.py Context object to get a Context object on the track it builds.

      @@ -625,26 +711,26 @@ Context object on the track it builds.

      -async connect()
      +async connect()

      Initiates a connection with a Lavalink node and adds it to the node pool.

      -async disconnect()
      +async disconnect()

      Disconnects a connected Lavalink node and removes it from the node pool. This also destroys any players connected to the node.

      -get_player(guild_id: int)
      +get_player(guild_id: int)

      Takes a guild ID as a parameter. Returns a pomice Player object.

      -async get_tracks(query: str, *, ctx: Optional[discord.ext.commands.context.Context] = None, search_type: pomice.enums.SearchType = SearchType.ytsearch)
      +async get_tracks(query: str, *, ctx: Optional[discord.ext.commands.context.Context] = None, search_type: pomice.enums.SearchType = SearchType.ytsearch)

      Fetches tracks from the node’s REST api to parse into Lavalink.

      If you passed in Spotify API credentials, you can also pass in a Spotify URL of a playlist, album or track and it will be parsed accordingly.

      @@ -654,42 +740,48 @@ Context object on any track you search.

      -property is_connected: bool
      +property is_connected: bool

      “Property which returns whether this node is connected or not

      -property latency: int
      -

      Property which returns the latency of the node in milliseconds

      +property latency +

      Property which returns the latency of the node

      -property player_count: int
      +property player_count: int

      Property which returns how many players are connected to this node

      -property players: Dict[int, Player]
      +property players: Dict[int, Player]

      Property which returns a dict containing the guild ID and the player object.

      -property pool
      +property pool

      Property which returns the pool this node is apart of

      +
      +
      +property region: Optional[discord.enums.VoiceRegion]
      +

      Property which returns the VoiceRegion of the node, if one is set

      +
      +
      -async send(**data)
      +async send(**data)
      -property stats: pomice.utils.NodeStats
      +property stats: pomice.utils.NodeStats

      Property which returns the node stats.

      @@ -697,32 +789,49 @@ Context object on any track you search.

      -class pomice.pool.NodePool
      +class pomice.pool.NodePool

      Bases: object

      The base class for the node pool. This holds all the nodes that are to be used by the bot.

      -async classmethod create_node(*, bot: Union[discord.ext.commands.bot.AutoShardedBot, discord.shard.AutoShardedClient, discord.ext.commands.bot.Bot, discord.client.Client], host: str, port: str, password: str, identifier: str, spotify_client_id: Optional[str], spotify_client_secret: Optional[str], session: Optional[aiohttp.client.ClientSession] = None) pomice.pool.Node
      +async classmethod create_node(*, bot: discord.client.Client, host: str, port: str, password: str, identifier: str, secure: bool = False, heartbeat: int = 30, region: Optional[discord.enums.VoiceRegion] = None, spotify_client_id: Optional[str] = None, spotify_client_secret: Optional[str] = None, session: Optional[aiohttp.client.ClientSession] = None) pomice.pool.Node

      Creates a Node object to be then added into the node pool. For Spotify searching capabilites, pass in valid Spotify API credentials.

      +
      +
      +classmethod get_best_node(*, algorithm: pomice.enums.NodeAlgorithm, voice_region: Optional[discord.enums.VoiceRegion] = None) pomice.pool.Node
      +

      Fetches the best node based on an NodeAlgorithm. +This option is preferred if you want to choose the best node +from a multi-node setup using either the node’s latency +or the node’s voice region.

      +

      Use NodeAlgorithm.by_ping if you want to get the best node +based on the node’s latency.

      +

      Use NodeAlgorithm.by_region if you want to get the best node +based on the node’s voice region. This method will only work +if you set a voice region when you create a node.

      +

      Use NodeAlgorithm.by_players if you want to get the best node +based on how players it has. This method will return a node with +the least amount of players

      +
      +
      -classmethod get_node(*, identifier: Optional[str] = None) pomice.pool.Node
      +classmethod get_node(*, identifier: Optional[str] = None) pomice.pool.Node

      Fetches a node from the node pool using it’s identifier. If no identifier is provided, it will choose a node at random.

      -property node_count
      +property node_count
      -property nodes: Dict[str, pomice.pool.Node]
      +property nodes: Dict[str, pomice.pool.Node]

      Property which returns a dict with the node identifier and the Node object.

      @@ -730,7 +839,11 @@ If no identifier is provided, it will choose a node at random.

      -

      Utils

      +

      Utils

      +
      +
      +class pomice.utils.ExponentialBackoff(base: int = 1, *, integral: bool = False)
      +

      Bases: object

      The MIT License (MIT) Copyright (c) 2015-present Rapptz Permission is hereby granted, free of charge, to any person obtaining a @@ -748,20 +861,16 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

      -
      -
      -class pomice.utils.ExponentialBackoff(base: int = 1, *, integral: bool = False)
      -

      Bases: object

      -delay() float
      +delay() float
      -class pomice.utils.NodeStats(data: dict)
      +class pomice.utils.NodeStats(data: dict)

      Bases: object

      The base class for the node stats object. Gives critical information on the node, which is updated every minute.

      @@ -771,84 +880,34 @@ Gives critical information on the node, which is updated every minute.

      +
      - +
      -
      +
      + - - - - - - - -

      Navigation

      - - -
      -

      Related Topics

      - -
      - - - - - - - - - - -
      - -
      - - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/pomice.spotify.html b/docs/_build/html/pomice.spotify.html index cb76774..1ab5a9a 100644 --- a/docs/_build/html/pomice.spotify.html +++ b/docs/_build/html/pomice.spotify.html @@ -1,123 +1,42 @@ - + + + - - - - - - Spotify — Pomice 1.1.1 documentation - - - - - - + + Spotify — Pomice 1.1.1 documentation + + + + + + + + + - - - - - - + + - - - -
      -
      -
      - - -
      - -
      -

      Spotify

      -
      -

      spotify.Album

      -
      -
      -class pomice.spotify.album.Album(data: dict)
      -

      Bases: object

      -

      The base class for a Spotify album

      -
      - -
      -
      -

      spotify.Client

      -
      -
      -class pomice.spotify.client.Client(client_id: str, client_secret: str)
      -

      Bases: object

      -

      The base client for the Spotify module of Pomice. -This class will do all the heavy lifting of getting all the metadata -for any Spotify URL you throw at it.

      -
      -
      -async search(*, query: str)
      -
      - -
      - -
      -
      -

      spotify.Exceptions

      -
      -
      -exception pomice.spotify.exceptions.InvalidSpotifyURL
      -

      Bases: Exception

      -

      An invalid Spotify URL was passed

      -
      - -
      -
      -exception pomice.spotify.exceptions.SpotifyRequestException
      -

      Bases: Exception

      -

      An error occurred when making a request to the Spotify API

      -
      - -
      -
      -

      spotify.Playlist

      -
      -
      -class pomice.spotify.playlist.Playlist(data: dict, tracks: List[pomice.spotify.track.Track])
      -

      Bases: object

      -

      The base class for a Spotify playlist

      -
      - -
      -
      -

      spotify.Track

      -
      -
      -class pomice.spotify.track.Track(data: dict)
      -

      Bases: object

      -

      The base class for a Spotify Track

      -
      - -
      -
      - - -
      - -
      -
      -
      + - + - - -
      - - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index 1ccf71c..99302e1 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -1,122 +1,114 @@ - - - - - - - Search — Pomice 1.1.1 documentation - - + + + + + Search — Pomice 1.1.1 documentation + + - - - - + + + + + + + - - - - - - - - + + + +
      + -
      -
      -
      - +
      -
      - -

      Search

      - +
      +
      +
      +
        +
      • »
      • +
      • Search
      • +
      • +
      • +
      +
      +
      +
      +
      +
      - +
      -
      +
      + + + + + - - - - - - -

      Navigation

      - - -
      -

      Related Topics

      - -
      - - - - - - - - -
      -
      -
      -
      - - - - - - + \ No newline at end of file diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 59d9c6d..2acf37a 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["index","modules","pomice","pomice.spotify"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","modules.rst","pomice.rst","pomice.spotify.rst"],objects:{"pomice.enums":{SearchType:[2,1,1,""]},"pomice.enums.SearchType":{scsearch:[2,2,1,""],ytmsearch:[2,2,1,""],ytsearch:[2,2,1,""]},"pomice.events":{PomiceEvent:[2,1,1,""],TrackEndEvent:[2,1,1,""],TrackExceptionEvent:[2,1,1,""],TrackStartEvent:[2,1,1,""],TrackStuckEvent:[2,1,1,""],WebSocketClosedEvent:[2,1,1,""],WebSocketClosedPayload:[2,1,1,""],WebSocketOpenEvent:[2,1,1,""]},"pomice.events.PomiceEvent":{dispatch:[2,3,1,""],handler_args:[2,2,1,""],name:[2,2,1,""]},"pomice.events.TrackEndEvent":{name:[2,2,1,""]},"pomice.events.TrackExceptionEvent":{name:[2,2,1,""]},"pomice.events.TrackStartEvent":{name:[2,2,1,""]},"pomice.events.TrackStuckEvent":{name:[2,2,1,""]},"pomice.events.WebSocketClosedEvent":{name:[2,2,1,""]},"pomice.events.WebSocketOpenEvent":{name:[2,2,1,""]},"pomice.exceptions":{FilterInvalidArgument:[2,4,1,""],InvalidSpotifyClientAuthorization:[2,4,1,""],NoNodesAvailable:[2,4,1,""],NodeConnectionClosed:[2,4,1,""],NodeConnectionFailure:[2,4,1,""],NodeCreationError:[2,4,1,""],NodeException:[2,4,1,""],NodeNotAvailable:[2,4,1,""],PomiceException:[2,4,1,""],SpotifyAlbumLoadFailed:[2,4,1,""],SpotifyPlaylistLoadFailed:[2,4,1,""],SpotifyTrackLoadFailed:[2,4,1,""],TrackInvalidPosition:[2,4,1,""],TrackLoadError:[2,4,1,""]},"pomice.filters":{ChannelMix:[2,1,1,""],Distortion:[2,1,1,""],Equalizer:[2,1,1,""],Filter:[2,1,1,""],Karaoke:[2,1,1,""],LowPass:[2,1,1,""],Rotation:[2,1,1,""],Timescale:[2,1,1,""],Tremolo:[2,1,1,""],Vibrato:[2,1,1,""]},"pomice.objects":{Playlist:[2,1,1,""],Track:[2,1,1,""]},"pomice.objects.Playlist":{thumbnail:[2,5,1,""],uri:[2,5,1,""]},"pomice.player":{Player:[2,1,1,""]},"pomice.player.Player":{bot:[2,5,1,""],connect:[2,3,1,""],current:[2,5,1,""],destroy:[2,3,1,""],disconnect:[2,3,1,""],filter:[2,5,1,""],get_tracks:[2,3,1,""],guild:[2,5,1,""],is_connected:[2,5,1,""],is_dead:[2,5,1,""],is_paused:[2,5,1,""],is_playing:[2,5,1,""],node:[2,5,1,""],on_voice_server_update:[2,3,1,""],on_voice_state_update:[2,3,1,""],play:[2,3,1,""],position:[2,5,1,""],seek:[2,3,1,""],set_filter:[2,3,1,""],set_pause:[2,3,1,""],set_volume:[2,3,1,""],stop:[2,3,1,""],volume:[2,5,1,""]},"pomice.pool":{Node:[2,1,1,""],NodePool:[2,1,1,""]},"pomice.pool.Node":{bot:[2,5,1,""],build_track:[2,3,1,""],connect:[2,3,1,""],disconnect:[2,3,1,""],get_player:[2,3,1,""],get_tracks:[2,3,1,""],is_connected:[2,5,1,""],latency:[2,5,1,""],player_count:[2,5,1,""],players:[2,5,1,""],pool:[2,5,1,""],send:[2,3,1,""],stats:[2,5,1,""]},"pomice.pool.NodePool":{create_node:[2,3,1,""],get_node:[2,3,1,""],node_count:[2,5,1,""],nodes:[2,5,1,""]},"pomice.spotify":{album:[3,0,0,"-"],client:[3,0,0,"-"],exceptions:[3,0,0,"-"],playlist:[3,0,0,"-"],track:[3,0,0,"-"]},"pomice.spotify.album":{Album:[3,1,1,""]},"pomice.spotify.client":{Client:[3,1,1,""]},"pomice.spotify.client.Client":{search:[3,3,1,""]},"pomice.spotify.exceptions":{InvalidSpotifyURL:[3,4,1,""],SpotifyRequestException:[3,4,1,""]},"pomice.spotify.playlist":{Playlist:[3,1,1,""]},"pomice.spotify.track":{Track:[3,1,1,""]},"pomice.utils":{ExponentialBackoff:[2,1,1,""],NodeStats:[2,1,1,""]},"pomice.utils.ExponentialBackoff":{delay:[2,3,1,""]},pomice:{enums:[2,0,0,"-"],events:[2,0,0,"-"],exceptions:[2,0,0,"-"],filters:[2,0,0,"-"],objects:[2,0,0,"-"],player:[2,0,0,"-"],pool:[2,0,0,"-"],utils:[2,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","exception","Python exception"],"5":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:exception","5":"py:property"},terms:{"0":[0,2],"1":[0,2],"100":2,"127":0,"15":2,"2":2,"20":2,"2015":2,"2021":[],"220":2,"3030":0,"5":2,"500":2,"abstract":2,"class":[0,2,3],"do":[2,3],"enum":[0,1],"float":2,"import":0,"int":2,"return":2,"short":2,"super":0,"throw":3,"while":[0,2],A:2,AND:2,AS:2,BE:2,BUT:2,FOR:2,For:2,IN:2,IS:2,If:[0,2],In:[0,2],NO:2,NOT:2,No:[0,2],OF:2,OR:2,THE:2,TO:2,The:[0,2,3],There:2,To:2,WITH:2,_:[],__init__:[0,2],abov:2,accept:2,accordingli:2,action:2,activ:[0,2],activitytyp:0,ad:2,add:2,add_cog:0,adjust:2,after:2,aiohttp:2,album:[0,1,2],alias:0,all:[2,3],allow:2,along:2,also:[0,2],altern:2,an:[2,3],ani:[2,3],apart:2,api:[2,3],appli:2,ar:2,argument:[0,2],aris:2,around:2,associ:2,async:[0,2,3],audio:[0,2],author:[0,2],autoshardedbot:2,autoshardedcli:2,avail:2,await:[0,2],band:2,base:[2,3],bass:2,been:2,being:[0,2],below:0,best:2,bool:2,boost:2,bot:[0,2],bug:2,build:2,build_track:2,butteri:0,c:2,call:2,can:[0,2],cannot:2,capabilit:2,caus:2,certain:2,chang:2,change_voice_st:2,channel:[0,2],channelmix:2,charg:2,checkfailur:0,choos:2,chosen:2,cl:[0,2],claim:2,classmethod:2,cleanup:2,client:[0,1,2],client_id:3,client_secret:3,clientsess:2,close:2,cloudwithax:[],code:2,cog:0,com:[],command:[0,2],command_prefix:0,commanderror:0,compil:0,condit:2,connect:[0,2],consid:2,constructor:2,contain:2,content:[],context:[0,2],contract:2,conveni:0,cool:2,copi:2,copyright:2,coro:2,correctli:2,correspond:2,cos_offset:2,cos_scal:2,creat:2,create_nod:[0,2],credenti:2,critic:2,ctx:[0,2],current:2,customiz:0,damag:2,data:[2,3],dead:2,deal:2,def:[0,2],delai:2,deliveri:0,depth:2,design:0,destroi:2,dev:2,develop:2,dict:[2,3],differ:2,directli:0,disconnect:2,discord:[0,2],dispatch:2,distort:2,distribut:2,document:2,done:2,download:0,due:2,dynam:2,e:2,easi:0,easier:2,effect:2,either:2,els:0,emphas:2,enabl:2,end:2,equal:2,error:[2,3],event:[0,1],everi:2,everyth:0,exampl:0,except:[0,1],exclus:2,expect:2,exponentialbackoff:2,express:2,ext:[0,2],f:0,fail:2,fals:2,fault:2,featur:2,fetch:2,file:2,filter:[0,1],filter_band:2,filter_width:2,filterinvalidargu:2,fire:2,fit:2,flow:2,follow:2,forc:2,format:2,found:0,free:2,frequenc:2,freyacod:[],from:[0,2],furnish:2,further:2,gener:2,get:[0,2,3],get_nod:2,get_play:2,get_track:[0,2],getattr:0,github:[],give:2,grant:2,guild:2,guild_id:2,ha:2,handl:2,handler_arg:2,head:2,heavi:3,here:0,herebi:2,higher:2,hold:2,holder:2,host:[0,2],how:[0,2],http:0,i:[0,2],id:2,identifi:[0,2],ignore_if_plai:2,implement:2,impli:2,includ:2,index:[],info:2,inform:2,initi:2,instanc:2,instrument:2,integ:2,integr:2,interfac:0,intern:2,invalid:[2,3],invalidspotifyclientauthor:2,invalidspotifyurl:3,invok:0,is_connect:2,is_dead:2,is_paus:2,is_plai:2,isinst:0,join:0,karaok:2,kind:2,kwarg:2,lastest:2,latenc:2,later:2,latest:[],lavalink:[0,2],leav:2,left_to_left:2,left_to_right:2,level:2,liabil:2,liabl:2,librari:[0,2],licens:2,lift:3,like:2,limit:2,link:2,list:[2,3],listen:[0,2],load:2,look:0,lower:2,lowpass:2,m:0,made:0,main:0,make:[2,3],mani:2,manual:2,mean:2,merchant:2,merg:2,metadata:3,method:2,millisecond:2,minut:2,mit:2,modern:0,modifi:2,modul:3,mono_level:2,music:[0,2],must:[0,2],mybot:0,name:[0,2],necessari:2,need:2,node:[0,2],node_count:2,nodeconnectionclos:2,nodeconnectionfailur:2,nodecreationerror:2,nodeexcept:2,nodenotavail:2,nodepool:[0,2],nodestat:2,none:[0,2],noninfring:2,nonodesavail:2,notic:2,object:[0,1,3],obtain:2,occur:[2,3],offset:2,on_pomice_track_start:2,on_readi:0,on_voice_server_upd:2,on_voice_state_upd:2,one:2,onli:2,onlin:0,option:2,order:[0,2],other:2,otherwis:2,out:[0,2],packag:[],page:[],pan:2,paramet:2,pars:2,particular:2,pass:[2,3],password:[0,2],patch:2,paus:2,payload:2,permiss:2,permit:2,person:2,pitch:2,plai:[0,2],player:[0,1],player_count:2,playlist:[0,1,2],playlist_info:2,pleas:0,point:2,pomic:[1,3],pomiceev:2,pomiceexcept:2,pool:[0,1],port:[0,2],portion:2,posit:2,possibl:[],preciou:0,prematur:2,present:2,print:0,problem:2,produc:2,proper:2,properti:2,provid:[0,2],publish:2,purpos:2,py:[0,2],queri:[0,2,3],r:0,rais:0,random:2,rapidli:2,rapptz:2,rate:2,rather:2,raw:2,re:0,readi:0,reason:2,recommend:2,reconnect:2,regular:2,releas:[],remov:2,repres:2,request:[2,3],resourc:0,rest:2,restrict:2,result:[0,2],right:2,right_to_left:2,right_to_right:2,rotat:2,rotation_hertz:2,run:[0,2],s:2,scale:2,scenario:2,scsearch:2,search:[0,2,3],search_typ:2,searchtyp:2,secret:2,seek:2,self:[0,2],sell:2,send:[0,2],server:2,session:2,set:2,set_filt:2,set_paus:2,set_volum:2,shall:2,shard:2,similar:2,sin_offset:2,sin_scal:2,smooth:[0,2],so:2,softwar:2,some:2,song:2,sound:2,soundcloud:2,specifi:0,speed:2,spotifi:[0,1,2],spotify_client_id:2,spotify_client_secret:2,spotifyalbumloadfail:2,spotifyplaylistloadfail:2,spotifyrequestexcept:3,spotifytrackloadfail:2,ssrc:2,start:2,start_nod:0,stat:2,state:2,stereo:2,stop:2,store:2,str:[0,2,3],stuck:2,subject:2,sublicens:2,submodul:[],subpackag:[],substanti:2,successfulli:2,supress:2,system:0,take:2,tan_offset:2,tan_scal:2,target:2,term:0,textchannel:0,than:2,thi:[0,2,3],thumbnail:2,time:2,timeout:2,timescal:2,token:0,tone:2,tort:2,track:[0,1,2],track_end:2,track_except:2,track_id:2,track_start:2,track_stuck:2,trackendev:2,trackexceptionev:2,trackinvalidposit:2,trackloaderror:2,trackstartev:2,trackstuckev:2,tremolo:2,tupl:2,two:2,type:[0,2],unabl:2,unavail:2,under:2,union:2,unspecifi:2,updat:2,uri:2,url:[2,3],url_reg:0,us:[0,2],user:[0,2],util:[0,1],valid:2,valu:2,version:2,vibrato:2,vocal:2,voic:[0,2],voice_cli:[0,2],voice_server_upd:2,voice_state_upd:2,voicechannel:2,voiceprotocol:2,volum:2,wa:[2,3],wai:[0,2],want:[0,2],warn:2,warranti:2,wast:0,waver:2,websocket:2,websocket_clos:2,websocket_open:2,websocketclosedev:2,websocketclosedpayload:2,websocketopenev:2,were:0,when:[2,3],where:2,whether:2,which:[0,2],whom:2,within:2,without:[0,2],work:[0,2],would:2,wrapper:0,www:0,you:[2,3],your:[0,2],youshallnotpass:0,youtub:2,ytmsearch:2,ytsearch:2},titles:["Welcome to Pomice!","<no title>","Pomice","Spotify"],titleterms:{"enum":2,album:3,befor:0,client:3,content:0,document:[],event:2,except:[2,3],filter:2,indic:[],jumpstart:0,modul:[],object:2,packag:[],player:2,playlist:3,pomic:[0,2],pool:2,quick:0,s:[],spotifi:3,start:0,submodul:[],subpackag:[],tabl:[],track:3,util:2,welcom:0,you:0}}) \ No newline at end of file +Search.setIndex({docnames:["index","modules","pomice","pomice.spotify"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["index.rst","modules.rst","pomice.rst","pomice.spotify.rst"],objects:{"pomice.enums":[[2,1,1,"","NodeAlgorithm"],[2,1,1,"","SearchType"]],"pomice.enums.NodeAlgorithm":[[2,2,1,"","by_ping"],[2,2,1,"","by_players"],[2,2,1,"","by_region"]],"pomice.enums.SearchType":[[2,2,1,"","scsearch"],[2,2,1,"","ytmsearch"],[2,2,1,"","ytsearch"]],"pomice.events":[[2,1,1,"","PomiceEvent"],[2,1,1,"","TrackEndEvent"],[2,1,1,"","TrackExceptionEvent"],[2,1,1,"","TrackStartEvent"],[2,1,1,"","TrackStuckEvent"],[2,1,1,"","WebSocketClosedEvent"],[2,1,1,"","WebSocketClosedPayload"],[2,1,1,"","WebSocketOpenEvent"]],"pomice.events.PomiceEvent":[[2,3,1,"","dispatch"],[2,2,1,"","handler_args"],[2,2,1,"","name"]],"pomice.events.TrackEndEvent":[[2,2,1,"","name"]],"pomice.events.TrackExceptionEvent":[[2,2,1,"","name"]],"pomice.events.TrackStartEvent":[[2,2,1,"","name"]],"pomice.events.TrackStuckEvent":[[2,2,1,"","name"]],"pomice.events.WebSocketClosedEvent":[[2,2,1,"","name"]],"pomice.events.WebSocketOpenEvent":[[2,2,1,"","name"]],"pomice.exceptions":[[2,4,1,"","FilterInvalidArgument"],[2,4,1,"","InvalidSpotifyClientAuthorization"],[2,4,1,"","NoNodesAvailable"],[2,4,1,"","NodeConnectionClosed"],[2,4,1,"","NodeConnectionFailure"],[2,4,1,"","NodeCreationError"],[2,4,1,"","NodeException"],[2,4,1,"","NodeNotAvailable"],[2,4,1,"","PomiceException"],[2,4,1,"","SpotifyAlbumLoadFailed"],[2,4,1,"","SpotifyPlaylistLoadFailed"],[2,4,1,"","SpotifyTrackLoadFailed"],[2,4,1,"","TrackInvalidPosition"],[2,4,1,"","TrackLoadError"]],"pomice.filters":[[2,1,1,"","ChannelMix"],[2,1,1,"","Distortion"],[2,1,1,"","Equalizer"],[2,1,1,"","Filter"],[2,1,1,"","Karaoke"],[2,1,1,"","LowPass"],[2,1,1,"","Rotation"],[2,1,1,"","Timescale"],[2,1,1,"","Tremolo"],[2,1,1,"","Vibrato"]],"pomice.objects":[[2,1,1,"","Playlist"],[2,1,1,"","Track"]],"pomice.objects.Playlist":[[2,5,1,"","thumbnail"],[2,5,1,"","uri"]],"pomice.player":[[2,1,1,"","Player"]],"pomice.player.Player":[[2,5,1,"","bot"],[2,3,1,"","connect"],[2,5,1,"","current"],[2,3,1,"","destroy"],[2,3,1,"","disconnect"],[2,5,1,"","filter"],[2,3,1,"","get_tracks"],[2,5,1,"","guild"],[2,5,1,"","is_connected"],[2,5,1,"","is_dead"],[2,5,1,"","is_paused"],[2,5,1,"","is_playing"],[2,5,1,"","node"],[2,3,1,"","on_voice_server_update"],[2,3,1,"","on_voice_state_update"],[2,3,1,"","play"],[2,5,1,"","position"],[2,3,1,"","reset_filter"],[2,3,1,"","seek"],[2,3,1,"","set_filter"],[2,3,1,"","set_pause"],[2,3,1,"","set_volume"],[2,3,1,"","stop"],[2,5,1,"","volume"]],"pomice.pool":[[2,1,1,"","Node"],[2,1,1,"","NodePool"]],"pomice.pool.Node":[[2,5,1,"","bot"],[2,3,1,"","build_track"],[2,3,1,"","connect"],[2,3,1,"","disconnect"],[2,3,1,"","get_player"],[2,3,1,"","get_tracks"],[2,5,1,"","is_connected"],[2,5,1,"","latency"],[2,5,1,"","player_count"],[2,5,1,"","players"],[2,5,1,"","pool"],[2,5,1,"","region"],[2,3,1,"","send"],[2,5,1,"","stats"]],"pomice.pool.NodePool":[[2,3,1,"","create_node"],[2,3,1,"","get_best_node"],[2,3,1,"","get_node"],[2,5,1,"","node_count"],[2,5,1,"","nodes"]],"pomice.spotify":[[3,0,0,"-","album"],[3,0,0,"-","client"],[3,0,0,"-","exceptions"],[3,0,0,"-","playlist"],[3,0,0,"-","track"]],"pomice.spotify.album":[[3,1,1,"","Album"]],"pomice.spotify.client":[[3,1,1,"","Client"]],"pomice.spotify.client.Client":[[3,3,1,"","search"]],"pomice.spotify.exceptions":[[3,4,1,"","InvalidSpotifyURL"],[3,4,1,"","SpotifyRequestException"]],"pomice.spotify.playlist":[[3,1,1,"","Playlist"]],"pomice.spotify.track":[[3,1,1,"","Track"]],"pomice.utils":[[2,1,1,"","ExponentialBackoff"],[2,1,1,"","NodeStats"]],"pomice.utils.ExponentialBackoff":[[2,3,1,"","delay"]],pomice:[[2,0,0,"-","enums"],[2,0,0,"-","events"],[2,0,0,"-","exceptions"],[2,0,0,"-","filters"],[2,0,0,"-","objects"],[2,0,0,"-","player"],[2,0,0,"-","pool"],[2,0,0,"-","utils"]]},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","attribute","Python attribute"],"3":["py","method","Python method"],"4":["py","exception","Python exception"],"5":["py","property","Python property"]},objtypes:{"0":"py:module","1":"py:class","2":"py:attribute","3":"py:method","4":"py:exception","5":"py:property"},terms:{"0":[0,2],"1":[0,2],"100":2,"127":0,"15":2,"2":2,"20":2,"2015":2,"220":2,"3":2,"30":2,"3030":0,"5":2,"500":2,"abstract":2,"class":[0,2,3],"default":2,"do":[2,3],"enum":[0,1],"float":2,"import":0,"int":2,"return":2,"super":0,"throw":3,"while":[0,2],A:2,AND:2,AS:2,BE:2,BUT:2,FOR:2,For:2,IN:2,IS:2,If:[0,2],In:[0,2],NO:2,NOT:2,No:[0,2],OF:2,OR:2,THE:2,TO:2,The:[0,2,3],There:2,To:2,WITH:2,_:2,__init__:[0,2],abov:2,accept:2,accordingli:2,action:2,activ:[0,2],activitytyp:0,actual:2,ad:2,add:2,add_cog:0,adjust:2,after:2,aiohttp:2,album:[0,1,2],algorithm:2,alias:0,all:[2,3],allow:2,along:2,also:[0,2],altern:2,amount:2,an:[2,3],ani:[2,3],apart:2,api:[2,3],appli:2,ar:2,arg:2,argument:[0,2],aris:2,around:2,associ:2,async:[0,2,3],audio:[0,2],author:[0,2],avail:2,await:[0,2],band:2,base:[2,3],bass:2,been:2,being:[0,2],below:0,best:2,bool:2,boost:2,bot:[0,2],build:2,build_track:2,butteri:0,by_p:2,by_play:2,by_region:2,c:2,call:2,can:[0,2],cannot:2,capabilit:2,caus:2,certain:2,chang:2,change_voice_st:2,channel:[0,2],channelmix:2,charg:2,checkfailur:0,choos:2,chosen:2,cl:[0,2],claim:2,classmethod:2,cleanup:2,client:[0,1,2],client_id:3,client_secret:3,clientsess:2,close:2,code:2,cog:0,command:[0,2],command_prefix:0,commanderror:0,compil:0,condit:2,connect:[0,2],consid:2,constructor:2,contain:2,context:[0,2],contract:2,conveni:0,cool:2,copi:2,copyright:2,coro:2,correctli:2,correspond:2,cos_offset:2,cos_scal:2,creat:2,create_nod:[0,2],credenti:2,critic:2,ctx:[0,2],current:2,customiz:0,damag:2,data:[2,3],dead:2,deal:2,def:[0,2],delai:2,deliveri:0,depth:2,design:0,destroi:2,dict:[2,3],differ:2,differenti:2,directli:0,disconnect:2,discord:[0,2],dispatch:2,distort:2,distribut:2,document:2,done:2,down:2,download:0,dynam:2,e:2,easi:0,easier:2,effect:2,either:2,els:0,emphas:2,enabl:2,end:2,equal:2,error:[2,3],esqu:2,event:[0,1],everi:2,everyth:0,exampl:0,except:[0,1],exclus:2,expect:2,exponentialbackoff:2,express:2,ext:[0,2],f:0,fail:2,fals:2,featur:2,fetch:2,file:2,filter:[0,1],filter_band:2,filter_width:2,filterinvalidargu:2,fire:2,fit:2,flow:2,follow:2,forc:2,format:2,found:0,free:2,frequenc:2,from:[0,2],furnish:2,further:2,gener:2,get:[0,2,3],get_best_nod:2,get_nod:2,get_play:2,get_track:[0,2],getattr:0,give:2,grant:2,guild:2,guild_id:2,ha:2,handl:2,handler_arg:2,have:2,head:2,heartbeat:2,heavi:3,here:0,herebi:2,higher:2,hold:2,holder:2,host:[0,2],how:[0,2],http:0,i:[0,2],id:2,identifi:[0,2],ignore_if_plai:2,imag:3,implement:2,impli:2,includ:2,info:2,inform:2,initi:2,instal:2,instanc:2,instrument:2,integ:2,integr:2,interfac:0,intern:2,invalid:[2,3],invalidspotifyclientauthor:2,invalidspotifyurl:3,invok:0,is_connect:2,is_dead:2,is_paus:2,is_plai:2,isinst:0,its:2,join:0,karaok:2,kind:2,latenc:2,latest:2,lavalink:[0,2],least:2,leav:2,left_to_left:2,left_to_right:2,level:2,liabil:2,liabl:2,librari:[0,2],licens:2,lift:3,like:2,limit:2,link:2,list:[2,3],listen:[0,2],load:2,look:0,lower:2,lowest:2,lowpass:2,m:0,made:0,main:0,make:[2,3],mani:2,manual:2,merchant:2,merg:2,metadata:3,method:2,millisecond:2,minut:2,mit:2,modern:0,modifi:2,modul:3,mono_level:2,multi:2,music:[0,2],must:[0,2],mybot:0,name:[0,2],necessari:2,need:2,nice:2,node:[0,2],node_count:2,nodealgorithm:2,nodeconnectionclos:2,nodeconnectionfailur:2,nodecreationerror:2,nodeexcept:2,nodenotavail:2,nodepool:[0,2],nodestat:2,none:[0,2,3],noninfring:2,nonodesavail:2,notic:2,object:[0,1,3],obtain:2,occur:[2,3],offset:2,on_pomice_track_start:2,on_readi:0,on_voice_server_upd:2,on_voice_state_upd:2,one:2,onli:2,onlin:0,option:2,order:[0,2],other:2,otherwis:2,out:[0,2],pan:2,paramet:2,pars:2,particular:2,pass:[2,3],password:[0,2],paus:2,payload:2,permiss:2,permit:2,person:2,pitch:2,plai:[0,2],player:[0,1],player_count:2,playlist:[0,1,2],playlist_info:2,pleas:0,point:2,pomic:[1,3],pomiceev:2,pomiceexcept:2,pool:[0,1],port:[0,2],portion:2,posit:2,preciou:0,prefer:2,present:2,print:0,problem:2,produc:2,proper:2,properti:2,provid:[0,2],publish:2,purpos:2,py:[0,2],queri:[0,2,3],r:0,rais:0,random:2,rapidli:2,rapptz:2,rate:2,rather:2,raw:2,re:0,readi:0,reason:2,recommend:2,reconnect:2,region:2,regular:2,remov:2,repres:2,request:[2,3],reset:2,reset_filt:2,resourc:0,respons:2,rest:2,restrict:2,result:[0,2],right:2,right_to_left:2,right_to_right:2,rotat:2,rotation_hertz:2,run:[0,2],s:2,said:2,scale:2,scenario:2,scsearch:2,search:[0,2,3],search_typ:2,searchtyp:2,secret:2,secur:2,seek:2,self:[0,2],sell:2,send:[0,2],server:2,session:2,set:2,set_filt:2,set_paus:2,set_volum:2,setup:2,shall:2,similar:2,sin_offset:2,sin_scal:2,sinc:2,slow:2,smooth:[0,2],so:2,softwar:2,some:2,song:2,sound:2,soundcloud:2,specifi:[0,2],speed:2,spotifi:[0,1,2],spotify_client_id:2,spotify_client_secret:2,spotify_playlist:2,spotify_track:2,spotifyalbumloadfail:2,spotifyplaylistloadfail:2,spotifyrequestexcept:3,spotifytrackloadfail:2,ssrc:2,start:2,start_nod:0,stat:2,state:2,stereo:2,stop:2,store:2,str:[0,2,3],stuck:2,subject:2,sublicens:2,substanti:2,successfulli:2,support:2,supress:2,system:0,take:2,tan_offset:2,tan_scal:2,target:2,term:0,textchannel:0,than:2,thi:[0,2,3],thumbnail:2,time:2,timeout:2,timescal:2,token:0,tone:2,tort:2,track:[0,1,2],track_end:2,track_except:2,track_id:2,track_start:2,track_stuck:2,trackendev:2,trackexceptionev:2,trackinvalidposit:2,trackloaderror:2,trackstartev:2,trackstuckev:2,tremolo:2,tupl:2,two:2,type:[0,2],unabl:2,unavail:2,under:2,unspecifi:2,updat:2,uri:2,url:[2,3],url_reg:0,us:[0,2],user:[0,2],util:[0,1],valid:2,valu:2,vaporwav:2,veri:2,version:2,vibrato:2,vocal:2,voic:[0,2],voice_cli:[0,2],voice_region:2,voice_server_upd:2,voice_state_upd:2,voicechannel:2,voiceprotocol:2,voiceregion:2,volum:2,wa:[2,3],wai:[0,2],want:[0,2],warranti:2,wast:0,waver:2,websocket:2,websocket_clos:2,websocket_open:2,websocketclosedev:2,websocketclosedpayload:2,websocketopenev:2,were:0,when:[2,3],where:2,whether:2,which:[0,2],whom:2,within:2,without:[0,2],work:[0,2],would:2,wrapper:0,www:0,you:[2,3],your:[0,2],youshallnotpass:0,youtub:2,ytmsearch:2,ytsearch:2},titles:["Welcome to Pomice!","<no title>","Pomice","Spotify"],titleterms:{"enum":2,album:3,befor:0,client:3,content:0,event:2,except:[2,3],filter:2,jumpstart:0,object:2,player:2,playlist:3,pomic:[0,2],pool:2,quick:0,spotifi:3,start:0,track:3,util:2,welcom:0,you:0}}) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 481648a..a063af0 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -12,7 +12,7 @@ # import os import sys -sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('..')) # -- Project information ----------------------------------------------------- @@ -49,7 +49,7 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +html_theme = 'sphinx_rtd_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/requirements_rtd.txt b/docs/requirements_rtd.txt index 4d319be..b5608df 100644 --- a/docs/requirements_rtd.txt +++ b/docs/requirements_rtd.txt @@ -1 +1,3 @@ +sphinx +sphinx-rtd-theme git+https://github.com/Rapptz/discord.py \ No newline at end of file