From 90f9242ddb4d8767fa655b7d55c4fbcb797ea289 Mon Sep 17 00:00:00 2001 From: Clxud Date: Tue, 28 Feb 2023 16:31:58 +0000 Subject: [PATCH] add double dot sys path to conf --- docs/_build/doctrees/environment.pickle | Bin 174889 -> 175648 bytes docs/_build/doctrees/index.doctree | Bin 8230 -> 8209 bytes docs/_build/html/.buildinfo | 2 +- docs/_build/html/objects.inv | Bin 2721 -> 2699 bytes docs/_build/html/searchindex.js | 2 +- docs/conf.py | 2 + docs/hdi/player.md | 55 ++++++++++++++++++++++++ 7 files changed, 59 insertions(+), 2 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index bef3bebe5762f61e0e9635f96b4a9dbebe425701..42d25600f29582e0e5ef80ece5ab863361a2911b 100644 GIT binary patch literal 175648 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 literal 174889 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 V(ZdgA#)Esfz|hYCYAH?90{|+7R+j(( diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 4778169d3f6be74967665e12080ef06fce25b9c6..40e0a2123b7daf861bd1f0a7332b1e66da46e447 100644 GIT binary patch delta 43 xcmZ4HFwudffpsd|MiwhZ33>hU{G#mQg2d!h{et}5Odyq#pIofJIh%2}8~`+J4y*tG delta 64 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 SE1-2#yD}0t1OErK|A2w^w+@s5 delta 2630 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 diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index dc787ef..d994104 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/enums", "api/events", "api/exceptions", "api/filters", "api/index", "api/objects", "api/player", "api/pool", "api/queue", "api/utils", "faq", "hdi/events", "hdi/filters", "hdi/index", "hdi/node", "hdi/player", "hdi/pool", "hdi/queue", "index", "installation", "quickstart"], "filenames": ["api\\enums.md", "api\\events.md", "api\\exceptions.md", "api\\filters.md", "api\\index.md", "api\\objects.md", "api\\player.md", "api\\pool.md", "api\\queue.md", "api\\utils.md", "faq.md", "hdi\\events.md", "hdi\\filters.md", "hdi\\index.md", "hdi\\node.md", "hdi\\player.md", "hdi\\pool.md", "hdi\\queue.md", "index.md", "installation.md", "quickstart.md"], "titles": ["Enums", "Events", "Exceptions", "Filters", "API Reference", "Objects", "Player", "Pool", "Queue", "Utils", "Frequently Asked Questions", "Use the Events class", "Use the Filter class", "How Do I?", "Use the Node class", "Use the Player class", "Use the NodePool class", "Use the Queue class", "Pomice", "Installation", "Quick Jumpstart"], "terms": {"class": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 20], "pomic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 19, 20], "loopmod": [0, 8], "valu": [0, 3, 6, 14, 15, 16], "base": [0, 1, 2, 3, 5, 6, 7, 8, 9, 16, 19], "The": [0, 1, 2, 3, 5, 6, 7, 9, 14, 15, 16], "differ": [0, 4, 15, 16], "loop": [0, 8], "mode": [0, 8], "thi": [0, 2, 3, 6, 7, 8, 9, 10, 13, 14, 15, 16, 19, 20], "featur": [0, 16, 18, 19], "i": [0, 1, 2, 3, 6, 7, 8, 9, 10, 14, 15, 16, 18, 19, 20], "exclus": 0, "queue": [0, 2, 4, 13, 14, 15], "util": [0, 4], "If": [0, 1, 3, 6, 7, 8, 10, 13, 14, 15, 16, 19, 20], "you": [0, 1, 3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 20], "ar": [0, 2, 6, 7, 10, 14, 15, 16, 19], "us": [0, 2, 3, 4, 6, 7, 9, 10, 13, 18, 19, 20], "necessari": [0, 3], "track": [0, 1, 2, 3, 5, 6, 7, 8, 13, 16, 20], "set": [0, 3, 6, 7, 8, 13, 14, 16, 19], "current": [0, 2, 3, 6, 8, 15], "whole": 0, "nodealgorithm": [0, 7, 16], "node": [0, 1, 2, 6, 7, 9, 10, 13, 15, 19, 20], "algorithm": [0, 7, 16], "onli": [0, 6], "differenti": 0, "method": [0, 3, 4, 6, 7], "sinc": 0, "actual": 0, "handl": [0, 6, 14, 15, 19], "get_best_nod": [0, 7, 16], "by_p": [0, 7, 16], "return": [0, 1, 5, 6, 7, 8, 14, 15, 16], "": [0, 1, 2, 3, 6, 7, 8, 10, 15, 19], "latenc": [0, 7, 14], "prefer": [0, 3, 7, 10], "lowest": 0, "respons": 0, "time": [0, 15], "by_play": [0, 7, 16], "how": [0, 7, 10, 14, 15, 18, 19, 20], "mani": [0, 7, 8, 14], "player": [0, 1, 4, 7, 13, 20], "ha": [0, 1, 6, 7, 8, 14, 15, 16], "least": [0, 7], "amount": [0, 3, 7, 8, 15], "platformrecommend": 0, "choos": [0, 7], "what": [0, 10, 15, 16], "platform": 0, "want": [0, 1, 7, 10, 14, 15, 16, 19, 20], "recommend": [0, 6, 7, 13], "function": [0, 2, 13, 14, 15, 16, 18], "spotifi": [0, 2, 5, 6, 7, 14, 15, 16, 18], "come": 0, "from": [0, 2, 3, 6, 7, 8, 9, 14, 15, 16, 20], "youtub": [0, 6, 7], "playlisttyp": [0, 5], "playlist": [0, 2, 5, 6, 7, 14, 15, 20], "type": [0, 14, 15, 16, 20], "defin": 0, "soundcloud": 0, "apple_mus": [0, 7, 16], "appl": [0, 2, 5, 7, 14, 15, 16, 18], "music": [0, 2, 3, 5, 7, 14, 15, 16, 18, 19, 20], "apple_music_list": 0, "soundcloud_playlist": 0, "spotify_playlist": 0, "youtube_playlist": 0, "routeiptyp": 0, "specifi": [0, 3, 8, 14, 15, 16, 20], "rout": 0, "planner": 0, "ip": [0, 16], "block": 0, "lavalink": [0, 2, 3, 5, 6, 7, 10, 14, 15, 16, 18, 19], "routeplann": 0, "ipv4": 0, "ipv6": 0, "inet4address": 0, "inet6address": 0, "routestrategi": 0, "strategi": 0, "rotate_on_ban": 0, "rotat": [0, 3], "whenev": 0, "thei": [0, 16], "get": [0, 5, 6, 7, 8, 13, 19], "ban": 0, "load_bal": 0, "select": 0, "random": [0, 7, 16], "balanc": 0, "out": [0, 3, 9, 19], "request": [0, 2, 5, 6], "between": 0, "them": [0, 13, 16], "nano_switch": 0, "switch": 0, "everi": [0, 1, 9], "cpu": 0, "clock": 0, "cycl": 0, "rotating_nano_switch": 0, "balancingiprouteplann": 0, "nanoiprouteplann": 0, "rotatingiprouteplann": 0, "rotatingnanoiprouteplann": 0, "searchtyp": [0, 5, 6, 7, 14, 15], "search": [0, 2, 6, 7, 14, 15, 20], "ytsearch": [0, 5, 6, 7, 14, 15], "regular": 0, "which": [0, 3, 6, 7, 9, 14, 15, 19], "best": [0, 3, 7, 13], "all": [0, 1, 2, 3, 6, 7, 8, 9, 13, 14, 15, 16, 19], "scenario": 0, "ytmsearch": 0, "audio": [0, 3, 19], "result": [0, 20], "scsearch": 0, "an": [0, 2, 3, 5, 6, 7, 8, 9, 15, 19], "altern": 0, "tracktyp": [0, 5], "http": [0, 20], "sourc": 0, "apple_music_track": 0, "http_sourc": 0, "soundcloud_track": 0, "spotify_track": 0, "youtube_track": 0, "urlregex": 0, "object": [0, 1, 3, 4, 6, 7, 8, 9, 14, 15, 16], "url": [0, 5, 6, 7, 16], "regex": 0, "spotify_url": 0, "discord_mp3_url": 0, "discord": [0, 5, 6, 7, 10, 14, 16, 18, 19, 20], "mp3": 0, "youtube_url": 0, "youtube_timestamp": 0, "timestamp": [0, 5], "am_url": 0, "soundcloud_url": 0, "base_url": 0, "standard": 0, "am_single_in_album_regex": 0, "re": [0, 20], "compil": [0, 20], "com": 0, "p": 0, "countri": 0, "za": 0, "z": 0, "2": [0, 3, 6], "album": [0, 2, 5, 6, 7], "song": [0, 3, 6, 15], "artist": 0, "name": [0, 1, 14, 15, 16, 20], "id": [0, 7, 14, 16], "id2": 0, "www": [0, 20], "cdn": 0, "discordapp": 0, "attach": 0, "channel_id": 0, "0": [0, 2, 3, 6, 15, 20], "9": 0, "message_id": 0, "file": [0, 9], "z0": 0, "9_": 0, "lavalink_search": 0, "ytm": 0, "sc": 0, "soundcloud_playlist_url": 0, "m": [0, 20], "soundcloud_track_in_set_url": 0, "_": [0, 1], "open": 0, "youtube_playlist_url": 0, "youtu": 0, "list": [0, 3, 5, 6, 7, 8, 10, 14, 15, 16], "video": 0, "t": [0, 8, 10, 16], "start": [0, 1, 6, 15, 19, 20], "d": 0, "w": 0, "v": 0, "emb": 0, "youtube_vid_in_playlist": 0, "pomiceev": 1, "dispatch": 1, "must": [1, 2, 3, 6, 7, 15, 20], "format": [1, 3, 6], "within": [1, 4, 6, 8, 15, 16, 18, 19], "your": [1, 5, 6, 7, 10, 14, 15, 16, 18, 19], "bot": [1, 6, 7, 14, 15, 16, 18, 20], "code": [1, 19], "listen": [1, 3, 20], "e": [1, 3, 6], "when": [1, 2, 3, 6, 8, 14, 15, 16], "would": [1, 6, 13, 14, 15, 16], "py": [1, 5, 6, 7, 10, 14, 16, 18], "async": [1, 6, 7, 20], "def": [1, 20], "on_pomice_track_start": 1, "self": [1, 6, 20], "union": [1, 5, 6, 7, 14, 15], "client": [1, 2, 6, 7, 14, 15, 16, 18], "handler_arg": 1, "trackendev": 1, "data": [1, 6, 7, 9], "dict": [1, 5, 6, 7, 9, 14], "fire": 1, "successfulli": 1, "end": [1, 6, 8, 15, 16], "associ": [1, 6, 9, 14, 15], "along": [1, 16], "reason": 1, "track_end": 1, "trackexceptionev": 1, "error": [1, 2], "occur": 1, "except": [1, 4, 8], "track_except": 1, "trackstartev": 1, "track_start": 1, "trackstuckev": 1, "stuck": 1, "cannot": [1, 10], "plai": [1, 3, 6, 7, 13, 14, 20], "further": 1, "pars": [1, 5, 6, 7], "user": [1, 5, 19], "track_stuck": 1, "websocketclosedev": 1, "websocket": 1, "connect": [1, 2, 6, 7, 9, 10, 13, 14, 16, 20], "been": [1, 6, 15], "close": [1, 2], "websocket_clos": 1, "websocketclosedpayload": 1, "websocketopenev": 1, "initi": [1, 6, 7, 14, 15, 16], "target": 1, "session": [1, 7], "ssrc": 1, "websocket_open": 1, "applemusicnoten": 2, "pomiceexcept": 2, "link": [2, 7, 14], "wa": [2, 3], "pass": [2, 3, 5, 6, 7, 15], "enabl": [2, 7, 8, 14, 15, 16], "filterinvalidargu": 2, "invalid": 2, "argument": [2, 8, 20], "filter": [2, 4, 5, 6, 7, 8, 13, 14], "filtertagalreadyinus": 2, "A": [2, 6, 9, 15, 16], "tag": [2, 3, 6], "alreadi": [2, 8], "anoth": 2, "filtertaginvalid": 2, "unabl": 2, "find": [2, 4, 8, 13, 14], "invalidspotifyclientauthor": 2, "No": [2, 20], "author": [2, 6, 9, 20], "provid": [2, 7, 9, 14, 15, 19], "lavalinkversionincompat": 2, "version": [2, 3, 6], "incompat": 2, "3": 2, "7": 2, "avoid": 2, "nonodesavail": 2, "There": [2, 14, 15], "avail": [2, 8, 15, 16], "nodeconnectionclos": 2, "nodeexcept": 2, "nodeconnectionfailur": 2, "problem": 2, "while": [2, 19], "nodecreationerror": 2, "creat": [2, 6, 7, 8, 14, 15, 16], "nodenotavail": 2, "unavail": 2, "noderestexcept": 2, "made": [2, 19], "rest": [2, 6, 7], "uri": [2, 5], "fail": [2, 6], "queueempti": [2, 8], "queueexcept": [2, 8], "rais": [2, 8, 20], "attempt": 2, "retriev": 2, "empti": [2, 6], "queueful": 2, "add": [2, 6, 7, 8, 15, 16, 19], "full": [2, 3], "spotifyalbumloadfail": 2, "load": 2, "spotifyplaylistloadfail": 2, "spotifytrackloadfail": 2, "trackinvalidposit": 2, "posit": [2, 6, 8, 13], "chosen": 2, "trackloaderror": 2, "channelmix": 3, "str": [3, 5, 6, 7, 14, 15, 16, 20], "left_to_left": 3, "float": [3, 5, 6, 9, 14, 15], "1": [3, 9, 20], "right_to_right": 3, "left_to_right": 3, "right_to_left": 3, "manual": 3, "adjust": [3, 15], "pan": 3, "can": [3, 5, 6, 7, 10, 14, 15, 16, 18, 19], "make": [3, 15, 18], "some": [3, 6, 10, 14, 15], "cool": 3, "effect": 3, "done": 3, "correctli": 3, "distort": 3, "sin_offset": 3, "sin_scal": 3, "cos_offset": 3, "cos_scal": 3, "tan_offset": 3, "tan_scal": 3, "offset": 3, "scale": 3, "gener": 3, "certain": [3, 13, 14, 15, 16], "implement": [3, 14, 15, 19], "where": 3, "need": [3, 5, 10, 14, 15, 16, 19], "equal": 3, "level": 3, "repres": [3, 6, 7], "15": 3, "band": 3, "dynam": 3, "sound": [3, 15], "appli": [3, 6, 7, 8, 14, 15], "bass": 3, "boost": 3, "emphas": 3, "tupl": 3, "int": [3, 6, 7, 8, 9, 14, 15, 16], "classmethod": [3, 7], "preset": 3, "fun": 3, "energet": 3, "increas": 3, "high": 3, "flat": 3, "eq": 3, "board": 3, "default": [3, 6, 14, 15, 16], "metal": 3, "mid": 3, "one": [3, 14], "genr": 3, "more": [3, 10, 19], "concert": 3, "like": [3, 6, 14, 15, 16], "piano": 3, "stand": 3, "have": [3, 6, 10, 13, 14, 15, 16, 19], "latest": 3, "instal": [3, 10, 18], "do": [3, 9, 10, 14, 15, 16, 18], "work": [3, 6, 7, 10, 15, 16, 19], "each": 3, "put": [3, 8, 14, 15], "remov": [3, 6, 7, 8, 15], "set_preload": 3, "bool": [3, 6, 7, 8, 9, 14, 15, 16], "intern": [3, 6], "whether": [3, 6, 7, 9, 14, 15], "preload": [3, 6], "karaok": 3, "mono_level": 3, "filter_band": 3, "220": 3, "filter_width": 3, "100": [3, 18], "vocal": 3, "ani": [3, 6, 7, 8, 9, 10, 19], "leav": 3, "instrument": 3, "impli": [3, 9], "lowpass": 3, "smooth": [3, 19], "20": 3, "supress": 3, "higher": [3, 15], "frequenc": 3, "allow": 3, "lower": [3, 15], "also": [3, 5, 6, 7, 14, 15, 18, 19], "easier": [3, 18], "wai": [3, 19], "rotation_hertz": 3, "5": 3, "produc": 3, "stereo": 3, "being": [3, 19], "around": 3, "head": 3, "timescal": 3, "speed": 3, "pitch": 3, "rate": 3, "chang": [3, 6], "veri": 3, "nice": 3, "vaporwav": 3, "esqu": 3, "slow": 3, "down": 3, "said": 3, "nightcor": 3, "up": [3, 14, 15, 16, 19], "match": 3, "sped": 3, "assign": 3, "give": [3, 9], "half": 3, "record": 3, "casett": 3, "tremolo": 3, "depth": 3, "waver": 3, "tone": 3, "caus": 3, "volum": [3, 6, 13], "rapidli": 3, "vibrato": 3, "similar": 3, "rather": [3, 13], "than": [3, 15, 19], "here": [4, 10, 14, 15, 16, 19, 20], "enum": [4, 8, 14, 15, 16], "event": [4, 9, 13], "pool": [4, 14, 16], "playlist_info": 5, "playlist_typ": 5, "thumbnail": 5, "option": [5, 6, 7, 8, 14, 15, 16], "none": [5, 6, 7, 8, 20], "critic": [5, 9], "inform": [5, 9, 10], "command": [5, 14, 15, 16, 20], "context": [5, 6, 7, 14, 15, 20], "properti": [5, 6, 7, 8, 14, 15], "either": [5, 6, 7, 8, 10, 15, 16], "its": [5, 6], "neither": 5, "those": [5, 14, 15, 16], "track_id": 5, "info": 5, "ctx": [5, 6, 7, 14, 15, 20], "track_typ": 5, "search_typ": [5, 6, 7, 14, 15], "member": [5, 8], "helper": [6, 15], "add_filt": [6, 15], "check": 6, "get_all_payload": 6, "payload": 6, "get_filt": 6, "get_preload_filt": 6, "has_filt": 6, "filter_tag": 6, "exist": [6, 14], "has_glob": 6, "global": 6, "has_preload": 6, "were": [6, 20], "remove_filt": [6, 15], "reset_filt": [6, 15], "channel": [6, 10, 15, 20], "voicechannel": 6, "voiceprotocol": 6, "In": [6, 19], "order": [6, 19], "cl": [6, 15, 20], "await": [6, 14, 15, 16, 20], "voic": [6, 7, 20], "fast_appli": [6, 15], "fals": [6, 7, 8, 9, 15], "take": [6, 7, 8, 19], "support": [6, 10], "instantli": [6, 15], "arg": 6, "true": [6, 7, 8, 15, 16], "instanc": [6, 15], "timeout": 6, "reconnect": 6, "self_deaf": 6, "self_mut": 6, "coro": 6, "abstract": 6, "call": 6, "librari": [6, 10, 18, 19], "constructor": 6, "under": 6, "__init__": [6, 20], "point": 6, "disconnect": [6, 7], "flow": 6, "guild": [6, 7, 14, 15], "change_voice_st": 6, "after": [6, 14, 15, 16, 19], "on_voice_server_upd": 6, "on_voice_state_upd": 6, "two": 6, "unspecifi": 6, "expect": 6, "indic": 6, "should": [6, 14, 15, 16], "mute": 6, "new": [6, 8], "deafen": 6, "destroi": [6, 7, 13], "run": [6, 14, 15, 16, 20], "cleanup": 6, "forc": 6, "interact": [6, 14, 15], "get_recommend": [6, 7, 14, 15], "get_track": [6, 7, 14, 15, 20], "queri": [6, 7, 14, 15, 18, 20], "fetch": [6, 7, 14, 15], "api": [6, 7, 10, 13, 18, 19], "credenti": [6, 7], "accordingli": [6, 7], "mai": [6, 7], "onc": [6, 7], "is_connect": [6, 7, 14, 15], "is_dead": [6, 15], "dead": [6, 15], "consid": [6, 15], "store": [6, 15], "is_paus": [6, 15], "paus": [6, 13], "is_plai": [6, 15], "activ": [6, 15, 20], "correspond": 6, "voice_server_upd": 6, "raw": 6, "ddoc": 6, "server": 6, "updat": [6, 9], "topic": 6, "gatewai": 6, "state": 6, "voice_state_upd": 6, "resourc": [6, 10, 19], "ignore_if_plai": [6, 15], "millisecond": [6, 15], "reset": 6, "seek": [6, 13], "set_paus": [6, 15], "set_volum": [6, 15], "integ": [6, 15], "accept": [6, 15], "500": [6, 15], "stop": [6, 13], "host": [7, 10, 16, 20], "port": [7, 16, 20], "password": [7, 16, 20], "identifi": [7, 16, 20], "secur": 7, "heartbeat": 7, "30": 7, "clientsess": 7, "spotify_client_id": [7, 16], "spotify_client_secret": [7, 16], "To": [7, 14, 15, 16], "proper": [7, 10, 14, 15, 16], "secret": [7, 16], "paramet": [7, 14, 15, 16], "build_track": 7, "build": 7, "valid": 7, "get_play": [7, 14], "guild_id": [7, 14], "els": [7, 20], "ping": [7, 14], "alia": 7, "player_count": [7, 14], "contain": [7, 14], "apart": [7, 14], "send": [7, 20], "path": 7, "include_vers": 7, "stat": [7, 9, 14], "nodestat": [7, 9, 14], "nodepool": [7, 13, 14, 20], "hold": 7, "create_nod": [7, 16, 20], "ad": [7, 8, 13, 14], "For": [7, 10, 16], "capabilit": [7, 18], "multi": 7, "setup": 7, "region": 7, "get_nod": [7, 16], "node_count": 7, "max_siz": 8, "overflow": 8, "iter": 8, "input": [8, 15], "includ": [8, 9, 15, 16, 18], "shuffl": 8, "clear": 8, "item": 8, "clear_track_filt": 8, "copi": [8, 9], "count": 8, "disable_loop": 8, "disabl": 8, "extend": 8, "atom": 8, "given": 8, "upon": 8, "possibl": 8, "won": 8, "prevent": 8, "drop": [8, 19], "find_posit": 8, "valueerror": 8, "next": [8, 18], "immedi": 8, "get_queu": 8, "is_empti": 8, "is_ful": 8, "reach": 8, "is_loop": 8, "jump": 8, "begin": 8, "loop_mod": 8, "pop": 8, "right": [8, 9], "side": 8, "back": 8, "put_at_front": 8, "front": 8, "put_at_index": 8, "index": 8, "set_loop_mod": 8, "size": 8, "exponentialbackoff": 9, "integr": 9, "mit": 9, "licens": 9, "copyright": 9, "c": 9, "2015": 9, "present": 9, "rapptz": 9, "permiss": 9, "herebi": 9, "grant": 9, "free": [9, 16, 19], "charg": 9, "person": 9, "obtain": 9, "softwar": 9, "document": 9, "deal": 9, "without": [9, 15, 19, 20], "restrict": 9, "limit": 9, "modifi": 9, "merg": 9, "publish": 9, "distribut": 9, "sublicens": 9, "sell": 9, "permit": 9, "whom": 9, "furnish": 9, "so": [9, 16, 19], "subject": 9, "follow": 9, "condit": 9, "abov": 9, "notic": 9, "shall": 9, "substanti": 9, "portion": 9, "THE": 9, "AS": 9, "warranti": 9, "OF": 9, "kind": 9, "express": 9, "OR": 9, "BUT": 9, "NOT": 9, "TO": 9, "merchant": 9, "fit": 9, "FOR": 9, "particular": 9, "purpos": 9, "AND": 9, "noninfring": 9, "IN": 9, "NO": 9, "holder": 9, "BE": 9, "liabl": 9, "claim": 9, "damag": 9, "other": [9, 10, 16], "liabil": 9, "action": 9, "contract": 9, "tort": 9, "otherwis": 9, "aris": 9, "WITH": 9, "delai": 9, "minut": 9, "why": 10, "sai": 10, "common": 10, "issu": 10, "don": [10, 16], "configur": 10, "properli": 10, "unreach": 10, "due": 10, "firewal": 10, "rule": 10, "malform": 10, "network": 10, "experienc": 10, "first": [10, 16], "download": [10, 19], "As": 10, "consult": 10, "doc": 10, "go": 10, "through": 10, "specfic": 10, "hand": 10, "pleas": [10, 19], "experi": 10, "assum": 10, "python": [10, 18], "asynchron": [10, 18], "program": 10, "refer": [10, 13, 14, 15, 16, 18, 19], "section": [10, 13, 16, 19], "interest": 10, "learn": [10, 14, 15], "quick": [10, 19], "exampl": [10, 19, 20], "quickstart": [10, 18], "cover": 13, "basic": 13, "too": 13, "confus": 13, "straightforward": 13, "explan": 13, "three": 16, "main": [14, 16, 20], "our": [14, 15, 16, 19], "we": [14, 15, 16, 18], "fill": [14, 15, 16], "rememb": 16, "field": 16, "By": 16, "2333": 16, "distinguish": 16, "itself": 16, "goe": 16, "later": 16, "look": [14, 15, 16, 20], "someth": [14, 15, 16], "note": [], "requir": [16, 19], "anyth": [16, 19], "queu": 16, "anywai": 16, "becaus": 16, "now": [15, 16], "move": 16, "see": [15, 16], "grab": 16, "ll": [14, 16], "view": 16, "xyz": 16, "fulli": 18, "design": [18, 19], "commun": 18, "seamlessli": 18, "It": 18, "coverag": 18, "entir": 18, "spec": 18, "access": [14, 15, 18], "easi": [18, 19], "understand": 18, "built": 18, "custom": 18, "develop": 18, "big": 18, "frequent": [14, 15, 18], "ask": 18, "question": 18, "deliveri": 19, "system": 19, "directli": 19, "interfac": 19, "butteri": 19, "wast": 19, "preciou": 19, "conveni": 19, "everyth": 19, "customiz": 19, "pip": 19, "depend": [15, 19], "hitch": 19, "familiar": 19, "just": 19, "advanc": 19, "cog": [19, 20], "advantag": 19, "applic": 19, "outsid": 19, "below": 20, "import": 20, "ext": 20, "url_reg": 20, "r": 20, "mybot": 20, "super": 20, "command_prefix": 20, "activitytyp": 20, "add_cog": 20, "on_readi": 20, "print": 20, "onlin": 20, "start_nod": 20, "127": 20, "3030": 20, "youshallnotpass": 20, "f": 20, "readi": 20, "join": 20, "alias": 20, "textchannel": 20, "getattr": 20, "checkfailur": 20, "voice_cli": [15, 20], "invok": 20, "commanderror": 20, "found": 20, "term": 20, "isinst": 20, "token": 20, "tabl": [], "header": [], "row": [], "descript": [14, 15, 16], "most": 15, "coupl": [14, 15], "same": [14, 15], "thing": [14, 15], "regardless": 14, "string": [14, 15], "whatev": [14, 15], "ideal": [14, 15], "sort": [14, 15], "about": [14, 15], "recommad": 14, "control": 13, "unpaus": 13, "voice_channel": 15, "few": 15, "ignor": 15, "replac": 15, "boolean": 15, "mean": 15, "po": 15, "rang": 15, "extens": 15, "suit": 15, "manag": 15, "tool": 15, "help": 15, "almost": 15, "chose": 15}, "objects": {"pomice": [[0, 0, 0, "-", "enums"], [1, 0, 0, "-", "events"], [2, 0, 0, "-", "exceptions"], [3, 0, 0, "-", "filters"], [5, 0, 0, "-", "objects"], [6, 0, 0, "-", "player"], [7, 0, 0, "-", "pool"], [8, 0, 0, "-", "queue"], [9, 0, 0, "-", "utils"]], "pomice.enums": [[0, 1, 1, "", "LoopMode"], [0, 1, 1, "", "NodeAlgorithm"], [0, 1, 1, "", "PlatformRecommendation"], [0, 1, 1, "", "PlaylistType"], [0, 1, 1, "", "RouteIPType"], [0, 1, 1, "", "RouteStrategy"], [0, 1, 1, "", "SearchType"], [0, 1, 1, "", "TrackType"], [0, 1, 1, "", "URLRegex"]], "pomice.enums.LoopMode": [[0, 2, 1, "", "QUEUE"], [0, 2, 1, "", "TRACK"]], "pomice.enums.NodeAlgorithm": [[0, 2, 1, "", "by_ping"], [0, 2, 1, "", "by_players"]], "pomice.enums.PlatformRecommendation": [[0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.PlaylistType": [[0, 2, 1, "", "APPLE_MUSIC"], [0, 2, 1, "", "SOUNDCLOUD"], [0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.RouteIPType": [[0, 2, 1, "", "IPV4"], [0, 2, 1, "", "IPV6"]], "pomice.enums.RouteStrategy": [[0, 2, 1, "", "LOAD_BALANCE"], [0, 2, 1, "", "NANO_SWITCH"], [0, 2, 1, "", "ROTATE_ON_BAN"], [0, 2, 1, "", "ROTATING_NANO_SWITCH"]], "pomice.enums.SearchType": [[0, 2, 1, "", "scsearch"], [0, 2, 1, "", "ytmsearch"], [0, 2, 1, "", "ytsearch"]], "pomice.enums.TrackType": [[0, 2, 1, "", "APPLE_MUSIC"], [0, 2, 1, "", "HTTP"], [0, 2, 1, "", "SOUNDCLOUD"], [0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.URLRegex": [[0, 2, 1, "", "AM_SINGLE_IN_ALBUM_REGEX"], [0, 2, 1, "", "AM_URL"], [0, 2, 1, "", "BASE_URL"], [0, 2, 1, "", "DISCORD_MP3_URL"], [0, 2, 1, "", "LAVALINK_SEARCH"], [0, 2, 1, "", "SOUNDCLOUD_PLAYLIST_URL"], [0, 2, 1, "", "SOUNDCLOUD_TRACK_IN_SET_URL"], [0, 2, 1, "", "SOUNDCLOUD_URL"], [0, 2, 1, "", "SPOTIFY_URL"], [0, 2, 1, "", "YOUTUBE_PLAYLIST_URL"], [0, 2, 1, "", "YOUTUBE_TIMESTAMP"], [0, 2, 1, "", "YOUTUBE_URL"], [0, 2, 1, "", "YOUTUBE_VID_IN_PLAYLIST"]], "pomice.events": [[1, 1, 1, "", "PomiceEvent"], [1, 1, 1, "", "TrackEndEvent"], [1, 1, 1, "", "TrackExceptionEvent"], [1, 1, 1, "", "TrackStartEvent"], [1, 1, 1, "", "TrackStuckEvent"], [1, 1, 1, "", "WebSocketClosedEvent"], [1, 1, 1, "", "WebSocketClosedPayload"], [1, 1, 1, "", "WebSocketOpenEvent"]], "pomice.events.PomiceEvent": [[1, 3, 1, "", "dispatch"], [1, 2, 1, "", "handler_args"], [1, 2, 1, "", "name"]], "pomice.events.TrackEndEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackExceptionEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackStartEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackStuckEvent": [[1, 2, 1, "", "name"]], "pomice.events.WebSocketClosedEvent": [[1, 2, 1, "", "name"]], "pomice.events.WebSocketOpenEvent": [[1, 2, 1, "", "name"]], "pomice.exceptions": [[2, 4, 1, "", "AppleMusicNotEnabled"], [2, 4, 1, "", "FilterInvalidArgument"], [2, 4, 1, "", "FilterTagAlreadyInUse"], [2, 4, 1, "", "FilterTagInvalid"], [2, 4, 1, "", "InvalidSpotifyClientAuthorization"], [2, 4, 1, "", "LavalinkVersionIncompatible"], [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, "", "NodeRestException"], [2, 4, 1, "", "PomiceException"], [2, 4, 1, "", "QueueEmpty"], [2, 4, 1, "", "QueueException"], [2, 4, 1, "", "QueueFull"], [2, 4, 1, "", "SpotifyAlbumLoadFailed"], [2, 4, 1, "", "SpotifyPlaylistLoadFailed"], [2, 4, 1, "", "SpotifyTrackLoadFailed"], [2, 4, 1, "", "TrackInvalidPosition"], [2, 4, 1, "", "TrackLoadError"]], "pomice.filters": [[3, 1, 1, "", "ChannelMix"], [3, 1, 1, "", "Distortion"], [3, 1, 1, "", "Equalizer"], [3, 1, 1, "", "Filter"], [3, 1, 1, "", "Karaoke"], [3, 1, 1, "", "LowPass"], [3, 1, 1, "", "Rotation"], [3, 1, 1, "", "Timescale"], [3, 1, 1, "", "Tremolo"], [3, 1, 1, "", "Vibrato"]], "pomice.filters.Equalizer": [[3, 3, 1, "", "boost"], [3, 3, 1, "", "flat"], [3, 3, 1, "", "metal"], [3, 3, 1, "", "piano"]], "pomice.filters.Filter": [[3, 3, 1, "", "set_preload"]], "pomice.filters.Timescale": [[3, 3, 1, "", "nightcore"], [3, 3, 1, "", "vaporwave"]], "pomice.objects": [[5, 1, 1, "", "Playlist"], [5, 1, 1, "", "Track"]], "pomice.objects.Playlist": [[5, 5, 1, "", "thumbnail"], [5, 5, 1, "", "uri"]], "pomice.player": [[6, 1, 1, "", "Filters"], [6, 1, 1, "", "Player"]], "pomice.player.Filters": [[6, 3, 1, "", "add_filter"], [6, 5, 1, "", "empty"], [6, 3, 1, "", "get_all_payloads"], [6, 3, 1, "", "get_filters"], [6, 3, 1, "", "get_preload_filters"], [6, 3, 1, "", "has_filter"], [6, 5, 1, "", "has_global"], [6, 5, 1, "", "has_preload"], [6, 3, 1, "", "remove_filter"], [6, 3, 1, "", "reset_filters"]], "pomice.player.Player": [[6, 3, 1, "", "add_filter"], [6, 5, 1, "", "bot"], [6, 3, 1, "", "connect"], [6, 5, 1, "", "current"], [6, 3, 1, "", "destroy"], [6, 3, 1, "", "disconnect"], [6, 5, 1, "", "filters"], [6, 3, 1, "", "get_recommendations"], [6, 3, 1, "", "get_tracks"], [6, 5, 1, "", "guild"], [6, 5, 1, "", "is_connected"], [6, 5, 1, "", "is_dead"], [6, 5, 1, "", "is_paused"], [6, 5, 1, "", "is_playing"], [6, 5, 1, "", "node"], [6, 3, 1, "", "on_voice_server_update"], [6, 3, 1, "", "on_voice_state_update"], [6, 3, 1, "", "play"], [6, 5, 1, "", "position"], [6, 3, 1, "", "remove_filter"], [6, 3, 1, "", "reset_filters"], [6, 3, 1, "", "seek"], [6, 3, 1, "", "set_pause"], [6, 3, 1, "", "set_volume"], [6, 3, 1, "", "stop"], [6, 5, 1, "", "volume"]], "pomice.pool": [[7, 1, 1, "", "Node"], [7, 1, 1, "", "NodePool"]], "pomice.pool.Node": [[7, 5, 1, "", "bot"], [7, 3, 1, "", "build_track"], [7, 3, 1, "", "connect"], [7, 3, 1, "", "disconnect"], [7, 3, 1, "", "get_player"], [7, 3, 1, "", "get_recommendations"], [7, 3, 1, "", "get_tracks"], [7, 5, 1, "", "is_connected"], [7, 5, 1, "", "latency"], [7, 5, 1, "", "ping"], [7, 5, 1, "", "player_count"], [7, 5, 1, "", "players"], [7, 5, 1, "", "pool"], [7, 3, 1, "", "send"], [7, 5, 1, "", "stats"]], "pomice.pool.NodePool": [[7, 3, 1, "", "create_node"], [7, 3, 1, "", "get_best_node"], [7, 3, 1, "", "get_node"], [7, 5, 1, "", "node_count"], [7, 5, 1, "", "nodes"]], "pomice.queue": [[8, 1, 1, "", "Queue"]], "pomice.queue.Queue": [[8, 3, 1, "", "clear"], [8, 3, 1, "", "clear_track_filters"], [8, 3, 1, "", "copy"], [8, 5, 1, "", "count"], [8, 3, 1, "", "disable_loop"], [8, 3, 1, "", "extend"], [8, 3, 1, "", "find_position"], [8, 3, 1, "", "get"], [8, 3, 1, "", "get_queue"], [8, 5, 1, "", "is_empty"], [8, 5, 1, "", "is_full"], [8, 5, 1, "", "is_looping"], [8, 3, 1, "", "jump"], [8, 5, 1, "", "loop_mode"], [8, 3, 1, "", "pop"], [8, 3, 1, "", "put"], [8, 3, 1, "", "put_at_front"], [8, 3, 1, "", "put_at_index"], [8, 3, 1, "", "remove"], [8, 3, 1, "", "set_loop_mode"], [8, 3, 1, "", "shuffle"], [8, 5, 1, "", "size"]], "pomice.utils": [[9, 1, 1, "", "ExponentialBackoff"], [9, 1, 1, "", "NodeStats"]], "pomice.utils.ExponentialBackoff": [[9, 3, 1, "", "delay"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:exception", "5": "py:property"}, "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"]}, "titleterms": {"enum": 0, "event": [1, 11], "except": 2, "filter": [3, 12, 15], "api": 4, "refer": 4, "object": 5, "player": [6, 14, 15], "paramet": 6, "pool": 7, "queue": [8, 17], "util": 9, "frequent": 10, "ask": 10, "question": 10, "us": [11, 12, 14, 15, 16, 17], "class": [11, 12, 14, 15, 16, 17], "how": 13, "do": 13, "i": 13, "node": [14, 16], "nodepool": 16, "ad": [15, 16], "get": [14, 15, 16], "best": 16, "pomic": 18, "quick": [18, 20], "link": 18, "instal": 19, "jumpstart": 20, "track": [14, 15], "recommend": [14, 15], "connect": 15, "control": 15, "destroi": 15, "plai": 15, "seek": 15, "posit": 15, "paus": 15, "unpaus": 15, "set": 15, "volum": 15, "stop": 15}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Enums": [[0, "module-pomice.enums"]], "Events": [[1, "module-pomice.events"]], "Exceptions": [[2, "module-pomice.exceptions"]], "Filters": [[3, "module-pomice.filters"]], "API Reference": [[4, "api-reference"]], "Objects": [[5, "module-pomice.objects"]], "Player": [[6, "module-pomice.player"]], "Parameters": [[6, "parameters"], [6, "id1"], [6, "id4"]], "Pool": [[7, "module-pomice.pool"]], "Queue": [[8, "module-pomice.queue"]], "Utils": [[9, "module-pomice.utils"]], "Frequently Asked Questions": [[10, "frequently-asked-questions"]], "Use the Events class": [[11, "use-the-events-class"]], "Use the Filter class": [[12, "use-the-filter-class"]], "Use the Queue class": [[17, "use-the-queue-class"]], "Pomice": [[18, "pomice"]], "Quick Links:": [[18, "quick-links"]], "Installation": [[19, "installation"]], "Quick Jumpstart": [[20, "quick-jumpstart"]], "Use the NodePool class": [[16, "use-the-nodepool-class"]], "Adding a node": [[16, "adding-a-node"]], "Getting a node": [[16, "getting-a-node"]], "Getting the best node": [[16, "getting-the-best-node"]], "Use the Node class": [[14, "use-the-node-class"]], "Getting a player": [[14, "getting-a-player"]], "Getting tracks": [[14, "getting-tracks"], [15, "getting-tracks"]], "Getting recommendations": [[14, "getting-recommendations"], [15, "getting-recommendations"]], "How Do I?": [[13, "how-do-i"]], "Use the Player class": [[15, "use-the-player-class"]], "Connecting a player": [[15, "connecting-a-player"]], "Controlling the player": [[15, "controlling-the-player"]], "Destroying a player": [[15, "destroying-a-player"]], "Playing a track": [[15, "playing-a-track"]], "Seeking to a position": [[15, "seeking-to-a-position"]], "Pausing/unpausing the player": [[15, "pausing-unpausing-the-player"]], "Setting the player volume": [[15, "setting-the-player-volume"]], "Stopping the player": [[15, "stopping-the-player"]], "Controlling filters": [[15, "controlling-filters"]], "Adding a filter": [[15, "adding-a-filter"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/enums", "api/events", "api/exceptions", "api/filters", "api/index", "api/objects", "api/player", "api/pool", "api/queue", "api/utils", "faq", "hdi/events", "hdi/filters", "hdi/index", "hdi/node", "hdi/player", "hdi/pool", "hdi/queue", "index", "installation", "quickstart"], "filenames": ["api/enums.md", "api/events.md", "api/exceptions.md", "api/filters.md", "api/index.md", "api/objects.md", "api/player.md", "api/pool.md", "api/queue.md", "api/utils.md", "faq.md", "hdi/events.md", "hdi/filters.md", "hdi/index.md", "hdi/node.md", "hdi/player.md", "hdi/pool.md", "hdi/queue.md", "index.md", "installation.md", "quickstart.md"], "titles": ["Enums", "Events", "Exceptions", "Filters", "API Reference", "Objects", "Player", "Pool", "Queue", "Utils", "Frequently Asked Questions", "Use the Events class", "Use the Filter class", "How Do I?", "Use the Node class", "Use the Player class", "Use the NodePool class", "Use the Queue class", "Pomice", "Installation", "Quick Jumpstart"], "terms": {"class": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 20], "pomic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 19, 20], "loopmod": [0, 8], "valu": [0, 3, 6, 14, 15, 16], "base": [0, 1, 2, 3, 5, 6, 7, 8, 9, 16, 19], "The": [0, 1, 2, 3, 5, 6, 7, 9, 14, 15, 16], "differ": [0, 4, 15, 16], "loop": [0, 8], "mode": [0, 8], "thi": [0, 2, 3, 6, 7, 8, 9, 10, 13, 14, 15, 16, 19, 20], "featur": [0, 16, 18, 19], "i": [0, 1, 2, 3, 6, 7, 8, 9, 10, 14, 15, 16, 18, 19, 20], "exclus": 0, "queue": [0, 2, 4, 13, 14, 15], "util": [0, 4], "If": [0, 1, 3, 6, 7, 8, 10, 13, 14, 15, 16, 19, 20], "you": [0, 1, 3, 4, 5, 6, 7, 10, 13, 14, 15, 16, 19, 20], "ar": [0, 2, 6, 7, 10, 14, 15, 16, 19], "us": [0, 2, 3, 4, 6, 7, 9, 10, 13, 18, 19, 20], "necessari": [0, 3], "track": [0, 1, 2, 3, 5, 6, 7, 8, 13, 16, 20], "set": [0, 3, 6, 7, 8, 13, 14, 16, 19], "current": [0, 2, 3, 6, 8, 15], "whole": 0, "nodealgorithm": [0, 7, 16], "node": [0, 1, 2, 6, 7, 9, 10, 13, 15, 19, 20], "algorithm": [0, 7, 16], "onli": [0, 6], "differenti": 0, "method": [0, 3, 4, 6, 7], "sinc": 0, "actual": 0, "handl": [0, 6, 14, 15, 19], "get_best_nod": [0, 7, 16], "by_p": [0, 7, 16], "return": [0, 1, 5, 6, 7, 8, 14, 15, 16], "": [0, 1, 2, 3, 6, 7, 8, 10, 15, 19], "latenc": [0, 7, 14], "prefer": [0, 3, 7, 10], "lowest": 0, "respons": 0, "time": [0, 15], "by_play": [0, 7, 16], "how": [0, 7, 10, 14, 15, 18, 19, 20], "mani": [0, 7, 8, 14], "player": [0, 1, 4, 7, 13, 20], "ha": [0, 1, 6, 7, 8, 14, 15, 16], "least": [0, 7], "amount": [0, 3, 7, 8, 15], "platformrecommend": 0, "choos": [0, 7], "what": [0, 10, 15, 16], "platform": 0, "want": [0, 1, 7, 10, 14, 15, 16, 19, 20], "recommend": [0, 6, 7, 13], "function": [0, 2, 13, 14, 15, 16, 18], "spotifi": [0, 2, 5, 6, 7, 14, 15, 16, 18], "come": 0, "from": [0, 2, 3, 6, 7, 8, 9, 14, 15, 16, 20], "youtub": [0, 6, 7], "playlisttyp": [0, 5], "playlist": [0, 2, 5, 6, 7, 14, 15, 20], "type": [0, 14, 15, 16, 20], "defin": 0, "soundcloud": 0, "apple_mus": [0, 7, 16], "appl": [0, 2, 5, 7, 14, 15, 16, 18], "music": [0, 2, 3, 5, 7, 14, 15, 16, 18, 19, 20], "apple_music_list": 0, "soundcloud_playlist": 0, "spotify_playlist": 0, "youtube_playlist": 0, "routeiptyp": 0, "specifi": [0, 3, 8, 14, 15, 16, 20], "rout": 0, "planner": 0, "ip": [0, 16], "block": 0, "lavalink": [0, 2, 3, 5, 6, 7, 10, 14, 15, 16, 18, 19], "routeplann": 0, "ipv4": 0, "ipv6": 0, "inet4address": 0, "inet6address": 0, "routestrategi": 0, "strategi": 0, "rotate_on_ban": 0, "rotat": [0, 3], "whenev": 0, "thei": [0, 16], "get": [0, 5, 6, 7, 8, 13, 19], "ban": 0, "load_bal": 0, "select": 0, "random": [0, 7, 16], "balanc": 0, "out": [0, 3, 9, 19], "request": [0, 2, 5, 6], "between": 0, "them": [0, 13, 16], "nano_switch": 0, "switch": 0, "everi": [0, 1, 9], "cpu": 0, "clock": 0, "cycl": 0, "rotating_nano_switch": 0, "balancingiprouteplann": 0, "nanoiprouteplann": 0, "rotatingiprouteplann": 0, "rotatingnanoiprouteplann": 0, "searchtyp": [0, 5, 6, 7, 14, 15], "search": [0, 2, 6, 7, 14, 15, 20], "ytsearch": [0, 5, 6, 7, 14, 15], "regular": 0, "which": [0, 3, 6, 7, 9, 14, 15, 19], "best": [0, 3, 7, 13], "all": [0, 1, 2, 3, 6, 7, 8, 9, 13, 14, 15, 16, 19], "scenario": 0, "ytmsearch": 0, "audio": [0, 3, 19], "result": [0, 20], "scsearch": 0, "an": [0, 2, 3, 5, 6, 7, 8, 9, 15, 19], "altern": 0, "tracktyp": [0, 5], "http": [0, 20], "sourc": 0, "apple_music_track": 0, "http_sourc": 0, "soundcloud_track": 0, "spotify_track": 0, "youtube_track": 0, "urlregex": 0, "object": [0, 1, 3, 4, 6, 7, 8, 9, 14, 15, 16], "url": [0, 5, 6, 7, 16], "regex": 0, "spotify_url": 0, "discord_mp3_url": 0, "discord": [0, 5, 6, 7, 10, 14, 16, 18, 19, 20], "mp3": 0, "youtube_url": 0, "youtube_timestamp": 0, "timestamp": [0, 5], "am_url": 0, "soundcloud_url": 0, "base_url": 0, "standard": 0, "am_single_in_album_regex": 0, "re": [0, 20], "compil": [0, 20], "com": 0, "p": 0, "countri": 0, "za": 0, "z": 0, "2": [0, 3, 6], "album": [0, 2, 5, 6, 7], "song": [0, 3, 6, 15], "artist": 0, "name": [0, 1, 14, 15, 16, 20], "id": [0, 7, 14, 16], "id2": 0, "www": [0, 20], "cdn": 0, "discordapp": 0, "attach": 0, "channel_id": 0, "0": [0, 2, 3, 6, 15, 20], "9": 0, "message_id": 0, "file": [0, 9], "z0": 0, "9_": 0, "lavalink_search": 0, "ytm": 0, "sc": 0, "soundcloud_playlist_url": 0, "m": [0, 20], "soundcloud_track_in_set_url": 0, "_": [0, 1], "open": 0, "youtube_playlist_url": 0, "youtu": 0, "list": [0, 3, 5, 6, 7, 8, 10, 14, 15, 16], "video": 0, "t": [0, 8, 10, 16], "start": [0, 1, 6, 15, 19, 20], "d": 0, "w": 0, "v": 0, "emb": 0, "youtube_vid_in_playlist": 0, "pomiceev": 1, "dispatch": 1, "must": [1, 2, 3, 6, 7, 15, 20], "format": [1, 3, 6], "within": [1, 4, 6, 8, 15, 16, 18, 19], "your": [1, 5, 6, 7, 10, 14, 15, 16, 18, 19], "bot": [1, 6, 7, 14, 15, 16, 18, 20], "code": [1, 19], "listen": [1, 3, 20], "e": [1, 3, 6], "when": [1, 2, 3, 6, 8, 14, 15, 16], "would": [1, 6, 13, 14, 15, 16], "py": [1, 5, 6, 7, 10, 14, 16, 18], "async": [1, 6, 7, 20], "def": [1, 20], "on_pomice_track_start": 1, "self": [1, 6, 20], "union": [1, 5, 6, 7, 14, 15], "client": [1, 2, 6, 7, 14, 15, 16, 18], "handler_arg": 1, "trackendev": 1, "data": [1, 6, 7, 9], "dict": [1, 5, 6, 7, 9, 14], "fire": 1, "successfulli": 1, "end": [1, 6, 8, 15, 16], "associ": [1, 6, 9, 14, 15], "along": [1, 16], "reason": 1, "track_end": 1, "trackexceptionev": 1, "error": [1, 2], "occur": 1, "except": [1, 4, 8], "track_except": 1, "trackstartev": 1, "track_start": 1, "trackstuckev": 1, "stuck": 1, "cannot": [1, 10], "plai": [1, 3, 6, 7, 13, 14, 20], "further": 1, "pars": [1, 5, 6, 7], "user": [1, 5, 19], "track_stuck": 1, "websocketclosedev": 1, "websocket": 1, "connect": [1, 2, 6, 7, 9, 10, 13, 14, 16, 20], "been": [1, 6, 15], "close": [1, 2], "websocket_clos": 1, "websocketclosedpayload": 1, "websocketopenev": 1, "initi": [1, 6, 7, 14, 15, 16], "target": 1, "session": [1, 7], "ssrc": 1, "websocket_open": 1, "applemusicnoten": 2, "pomiceexcept": 2, "link": [2, 7, 14], "wa": [2, 3], "pass": [2, 3, 5, 6, 7, 15], "enabl": [2, 7, 8, 14, 15, 16], "filterinvalidargu": 2, "invalid": 2, "argument": [2, 8, 20], "filter": [2, 4, 5, 6, 7, 8, 13, 14], "filtertagalreadyinus": 2, "A": [2, 6, 9, 15, 16], "tag": [2, 3, 6], "alreadi": [2, 8], "anoth": 2, "filtertaginvalid": 2, "unabl": 2, "find": [2, 4, 8, 13, 14], "invalidspotifyclientauthor": 2, "No": [2, 20], "author": [2, 6, 9, 20], "provid": [2, 7, 9, 14, 15, 19], "lavalinkversionincompat": 2, "version": [2, 3, 6], "incompat": 2, "3": 2, "7": 2, "avoid": 2, "nonodesavail": 2, "There": [2, 14, 15], "avail": [2, 8, 15, 16], "nodeconnectionclos": 2, "nodeexcept": 2, "nodeconnectionfailur": 2, "problem": 2, "while": [2, 19], "nodecreationerror": 2, "creat": [2, 6, 7, 8, 14, 15, 16], "nodenotavail": 2, "unavail": 2, "noderestexcept": 2, "made": [2, 19], "rest": [2, 6, 7], "uri": [2, 5], "fail": [2, 6], "queueempti": [2, 8], "queueexcept": [2, 8], "rais": [2, 8, 20], "attempt": 2, "retriev": 2, "empti": [2, 6], "queueful": 2, "add": [2, 6, 7, 8, 15, 16, 19], "full": [2, 3], "spotifyalbumloadfail": 2, "load": 2, "spotifyplaylistloadfail": 2, "spotifytrackloadfail": 2, "trackinvalidposit": 2, "posit": [2, 6, 8, 13], "chosen": 2, "trackloaderror": 2, "channelmix": 3, "str": [3, 5, 6, 7, 14, 15, 16, 20], "left_to_left": 3, "float": [3, 5, 6, 9, 14, 15], "1": [3, 9, 20], "right_to_right": 3, "left_to_right": 3, "right_to_left": 3, "manual": 3, "adjust": [3, 15], "pan": 3, "can": [3, 5, 6, 7, 10, 14, 15, 16, 18, 19], "make": [3, 15, 18], "some": [3, 6, 10, 14, 15], "cool": 3, "effect": 3, "done": 3, "correctli": 3, "distort": 3, "sin_offset": 3, "sin_scal": 3, "cos_offset": 3, "cos_scal": 3, "tan_offset": 3, "tan_scal": 3, "offset": 3, "scale": 3, "gener": 3, "certain": [3, 13, 14, 15, 16], "implement": [3, 14, 15, 19], "where": 3, "need": [3, 5, 10, 14, 15, 16, 19], "equal": 3, "level": 3, "repres": [3, 6, 7], "15": 3, "band": 3, "dynam": 3, "sound": [3, 15], "appli": [3, 6, 7, 8, 14, 15], "bass": 3, "boost": 3, "emphas": 3, "tupl": 3, "int": [3, 6, 7, 8, 9, 14, 15, 16], "classmethod": [3, 7], "preset": 3, "fun": 3, "energet": 3, "increas": 3, "high": 3, "flat": 3, "eq": 3, "board": 3, "default": [3, 6, 14, 15, 16], "metal": 3, "mid": 3, "one": [3, 14], "genr": 3, "more": [3, 10, 19], "concert": 3, "like": [3, 6, 14, 15, 16], "piano": 3, "stand": 3, "have": [3, 6, 10, 13, 14, 15, 16, 19], "latest": 3, "instal": [3, 10, 18], "do": [3, 9, 10, 14, 15, 16, 18], "work": [3, 6, 7, 10, 15, 16, 19], "each": 3, "put": [3, 8, 14, 15], "remov": [3, 6, 7, 8, 15], "set_preload": 3, "bool": [3, 6, 7, 8, 9, 14, 15, 16], "intern": [3, 6], "whether": [3, 6, 7, 9, 14, 15], "preload": [3, 6], "karaok": 3, "mono_level": 3, "filter_band": 3, "220": 3, "filter_width": 3, "100": [3, 18], "vocal": 3, "ani": [3, 6, 7, 8, 9, 10, 19], "leav": 3, "instrument": 3, "impli": [3, 9], "lowpass": 3, "smooth": [3, 19], "20": 3, "supress": 3, "higher": [3, 15], "frequenc": 3, "allow": 3, "lower": [3, 15], "also": [3, 5, 6, 7, 14, 15, 18, 19], "easier": [3, 18], "wai": [3, 19], "rotation_hertz": 3, "5": 3, "produc": 3, "stereo": 3, "being": [3, 19], "around": 3, "head": 3, "timescal": 3, "speed": 3, "pitch": 3, "rate": 3, "chang": [3, 6], "veri": 3, "nice": 3, "vaporwav": 3, "esqu": 3, "slow": 3, "down": 3, "said": 3, "nightcor": 3, "up": [3, 14, 15, 16, 19], "match": 3, "sped": 3, "assign": 3, "give": [3, 9], "half": 3, "record": 3, "casett": 3, "tremolo": 3, "depth": 3, "waver": 3, "tone": 3, "caus": 3, "volum": [3, 6, 13], "rapidli": 3, "vibrato": 3, "similar": 3, "rather": [3, 13], "than": [3, 15, 19], "here": [4, 10, 14, 15, 16, 19, 20], "enum": [4, 8, 14, 15, 16], "event": [4, 9, 13], "pool": [4, 14, 16], "playlist_info": 5, "playlist_typ": 5, "thumbnail": 5, "option": [5, 6, 7, 8, 14, 15, 16], "none": [5, 6, 7, 8, 20], "critic": [5, 9], "inform": [5, 9, 10], "command": [5, 14, 15, 16, 20], "context": [5, 6, 7, 14, 15, 20], "properti": [5, 6, 7, 8, 14, 15], "either": [5, 6, 7, 8, 10, 15, 16], "its": [5, 6], "neither": 5, "those": [5, 14, 15, 16], "track_id": 5, "info": 5, "ctx": [5, 6, 7, 14, 15, 20], "track_typ": 5, "search_typ": [5, 6, 7, 14, 15], "member": [5, 8], "helper": [6, 15], "add_filt": [6, 15], "check": 6, "get_all_payload": 6, "payload": 6, "get_filt": 6, "get_preload_filt": 6, "has_filt": 6, "filter_tag": 6, "exist": [6, 14], "has_glob": 6, "global": 6, "has_preload": 6, "were": [6, 20], "remove_filt": [6, 15], "reset_filt": [6, 15], "channel": [6, 10, 15, 20], "voicechannel": 6, "voiceprotocol": 6, "In": [6, 19], "order": [6, 19], "cl": [6, 15, 20], "await": [6, 14, 15, 16, 20], "voic": [6, 7, 20], "fast_appli": [6, 15], "fals": [6, 7, 8, 9, 15], "take": [6, 7, 8, 19], "support": [6, 10], "instantli": [6, 15], "arg": 6, "true": [6, 7, 8, 15, 16], "instanc": [6, 15], "timeout": 6, "reconnect": 6, "self_deaf": 6, "self_mut": 6, "coro": 6, "abstract": 6, "call": 6, "librari": [6, 10, 18, 19], "constructor": 6, "under": 6, "__init__": [6, 20], "point": 6, "disconnect": [6, 7], "flow": 6, "guild": [6, 7, 14, 15], "change_voice_st": 6, "after": [6, 14, 15, 16, 19], "on_voice_server_upd": 6, "on_voice_state_upd": 6, "two": 6, "unspecifi": 6, "expect": 6, "indic": 6, "should": [6, 14, 15, 16], "mute": 6, "new": [6, 8], "deafen": 6, "destroi": [6, 7, 13], "run": [6, 14, 15, 16, 20], "cleanup": 6, "forc": 6, "interact": [6, 14, 15], "get_recommend": [6, 7, 14, 15], "get_track": [6, 7, 14, 15, 20], "queri": [6, 7, 14, 15, 18, 20], "fetch": [6, 7, 14, 15], "api": [6, 7, 10, 13, 18, 19], "credenti": [6, 7], "accordingli": [6, 7], "mai": [6, 7], "onc": [6, 7], "is_connect": [6, 7, 14, 15], "is_dead": [6, 15], "dead": [6, 15], "consid": [6, 15], "store": [6, 15], "is_paus": [6, 15], "paus": [6, 13], "is_plai": [6, 15], "activ": [6, 15, 20], "correspond": 6, "voice_server_upd": 6, "raw": 6, "ddoc": 6, "server": 6, "updat": [6, 9], "topic": 6, "gatewai": 6, "state": 6, "voice_state_upd": 6, "resourc": [6, 10, 19], "ignore_if_plai": [6, 15], "millisecond": [6, 15], "reset": 6, "seek": [6, 13], "set_paus": [6, 15], "set_volum": [6, 15], "integ": [6, 15], "accept": [6, 15], "500": [6, 15], "stop": [6, 13], "host": [7, 10, 16, 20], "port": [7, 16, 20], "password": [7, 16, 20], "identifi": [7, 16, 20], "secur": 7, "heartbeat": 7, "30": 7, "clientsess": 7, "spotify_client_id": [7, 16], "spotify_client_secret": [7, 16], "To": [7, 14, 15, 16], "proper": [7, 10, 14, 15, 16], "secret": [7, 16], "paramet": [7, 14, 15, 16], "build_track": 7, "build": 7, "valid": 7, "get_play": [7, 14], "guild_id": [7, 14], "els": [7, 20], "ping": [7, 14], "alia": 7, "player_count": [7, 14], "contain": [7, 14], "apart": [7, 14], "send": [7, 20], "path": 7, "include_vers": 7, "stat": [7, 9, 14], "nodestat": [7, 9, 14], "nodepool": [7, 13, 14, 20], "hold": 7, "create_nod": [7, 16, 20], "ad": [7, 8, 13, 14], "For": [7, 10, 16], "capabilit": [7, 18], "multi": 7, "setup": 7, "region": 7, "get_nod": [7, 16], "node_count": 7, "max_siz": 8, "overflow": 8, "iter": 8, "input": [8, 15], "includ": [8, 9, 15, 16, 18], "shuffl": 8, "clear": 8, "item": 8, "clear_track_filt": 8, "copi": [8, 9], "count": 8, "disable_loop": 8, "disabl": 8, "extend": 8, "atom": 8, "given": 8, "upon": 8, "possibl": 8, "won": 8, "prevent": 8, "drop": [8, 19], "find_posit": 8, "valueerror": 8, "next": [8, 18], "immedi": 8, "get_queu": 8, "is_empti": 8, "is_ful": 8, "reach": 8, "is_loop": 8, "jump": 8, "begin": 8, "loop_mod": 8, "pop": 8, "right": [8, 9], "side": 8, "back": 8, "put_at_front": 8, "front": 8, "put_at_index": 8, "index": 8, "set_loop_mod": 8, "size": 8, "exponentialbackoff": 9, "integr": 9, "mit": 9, "licens": 9, "copyright": 9, "c": 9, "2015": 9, "present": 9, "rapptz": 9, "permiss": 9, "herebi": 9, "grant": 9, "free": [9, 16, 19], "charg": 9, "person": 9, "obtain": 9, "softwar": 9, "document": 9, "deal": 9, "without": [9, 15, 19, 20], "restrict": 9, "limit": 9, "modifi": 9, "merg": 9, "publish": 9, "distribut": 9, "sublicens": 9, "sell": 9, "permit": 9, "whom": 9, "furnish": 9, "so": [9, 16, 19], "subject": 9, "follow": 9, "condit": 9, "abov": 9, "notic": 9, "shall": 9, "substanti": 9, "portion": 9, "THE": 9, "AS": 9, "warranti": 9, "OF": 9, "kind": 9, "express": 9, "OR": 9, "BUT": 9, "NOT": 9, "TO": 9, "merchant": 9, "fit": 9, "FOR": 9, "particular": 9, "purpos": 9, "AND": 9, "noninfring": 9, "IN": 9, "NO": 9, "holder": 9, "BE": 9, "liabl": 9, "claim": 9, "damag": 9, "other": [9, 10, 16], "liabil": 9, "action": 9, "contract": 9, "tort": 9, "otherwis": 9, "aris": 9, "WITH": 9, "delai": 9, "minut": 9, "why": 10, "sai": 10, "common": 10, "issu": 10, "don": [10, 16], "configur": 10, "properli": 10, "unreach": 10, "due": 10, "firewal": 10, "rule": 10, "malform": 10, "network": 10, "experienc": 10, "first": [10, 16], "download": [10, 19], "As": 10, "consult": 10, "doc": 10, "go": 10, "through": 10, "specfic": 10, "hand": 10, "pleas": [10, 19], "experi": 10, "assum": 10, "python": [10, 18], "asynchron": [10, 18], "program": 10, "refer": [10, 13, 14, 15, 16, 18, 19], "section": [10, 13, 16, 19], "interest": 10, "learn": [10, 14, 15], "quick": [10, 19], "exampl": [10, 19, 20], "quickstart": [10, 18], "cover": 13, "basic": 13, "too": 13, "confus": 13, "straightforward": 13, "explan": 13, "three": 16, "main": [14, 16, 20], "our": [14, 15, 16, 19], "we": [14, 15, 16, 18], "fill": [14, 15, 16], "rememb": 16, "field": 16, "By": 16, "2333": 16, "distinguish": 16, "itself": 16, "goe": 16, "later": 16, "look": [14, 15, 16, 20], "someth": [14, 15, 16], "note": [], "requir": [16, 19], "anyth": [16, 19], "queu": 16, "anywai": 16, "becaus": 16, "now": [15, 16], "move": 16, "see": [15, 16], "grab": 16, "ll": [14, 16], "view": 16, "xyz": 16, "fulli": 18, "design": [18, 19], "commun": 18, "seamlessli": 18, "It": 18, "coverag": 18, "entir": 18, "spec": 18, "access": [14, 15, 18], "easi": [18, 19], "understand": 18, "built": 18, "custom": 18, "develop": 18, "big": 18, "frequent": [14, 15, 18], "ask": 18, "question": 18, "deliveri": 19, "system": 19, "directli": 19, "interfac": 19, "butteri": 19, "wast": 19, "preciou": 19, "conveni": 19, "everyth": 19, "customiz": 19, "pip": 19, "depend": [15, 19], "hitch": 19, "familiar": 19, "just": 19, "advanc": 19, "cog": [19, 20], "advantag": 19, "applic": 19, "outsid": 19, "below": 20, "import": 20, "ext": 20, "url_reg": 20, "r": 20, "mybot": 20, "super": 20, "command_prefix": 20, "activitytyp": 20, "add_cog": 20, "on_readi": 20, "print": 20, "onlin": 20, "start_nod": 20, "127": 20, "3030": 20, "youshallnotpass": 20, "f": 20, "readi": 20, "join": 20, "alias": 20, "textchannel": 20, "getattr": 20, "checkfailur": 20, "voice_cli": [15, 20], "invok": 20, "commanderror": 20, "found": 20, "term": 20, "isinst": 20, "token": 20, "tabl": [], "header": [], "row": [], "descript": [14, 15, 16], "most": 15, "coupl": [14, 15], "same": [14, 15], "thing": [14, 15], "regardless": 14, "string": [14, 15], "whatev": [14, 15], "ideal": [14, 15], "sort": [14, 15], "about": [14, 15], "recommad": 14, "control": 13, "unpaus": 13, "voice_channel": 15, "few": 15, "ignor": 15, "replac": 15, "boolean": 15, "mean": 15, "po": 15, "rang": 15, "extens": 15, "suit": 15, "manag": 15, "tool": 15, "help": 15, "almost": 15, "chose": 15}, "objects": {"pomice": [[0, 0, 0, "-", "enums"], [1, 0, 0, "-", "events"], [2, 0, 0, "-", "exceptions"], [3, 0, 0, "-", "filters"], [5, 0, 0, "-", "objects"], [6, 0, 0, "-", "player"], [7, 0, 0, "-", "pool"], [8, 0, 0, "-", "queue"], [9, 0, 0, "-", "utils"]], "pomice.enums": [[0, 1, 1, "", "LoopMode"], [0, 1, 1, "", "NodeAlgorithm"], [0, 1, 1, "", "PlatformRecommendation"], [0, 1, 1, "", "PlaylistType"], [0, 1, 1, "", "RouteIPType"], [0, 1, 1, "", "RouteStrategy"], [0, 1, 1, "", "SearchType"], [0, 1, 1, "", "TrackType"], [0, 1, 1, "", "URLRegex"]], "pomice.enums.LoopMode": [[0, 2, 1, "", "QUEUE"], [0, 2, 1, "", "TRACK"]], "pomice.enums.NodeAlgorithm": [[0, 2, 1, "", "by_ping"], [0, 2, 1, "", "by_players"]], "pomice.enums.PlatformRecommendation": [[0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.PlaylistType": [[0, 2, 1, "", "APPLE_MUSIC"], [0, 2, 1, "", "SOUNDCLOUD"], [0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.RouteIPType": [[0, 2, 1, "", "IPV4"], [0, 2, 1, "", "IPV6"]], "pomice.enums.RouteStrategy": [[0, 2, 1, "", "LOAD_BALANCE"], [0, 2, 1, "", "NANO_SWITCH"], [0, 2, 1, "", "ROTATE_ON_BAN"], [0, 2, 1, "", "ROTATING_NANO_SWITCH"]], "pomice.enums.SearchType": [[0, 2, 1, "", "scsearch"], [0, 2, 1, "", "ytmsearch"], [0, 2, 1, "", "ytsearch"]], "pomice.enums.TrackType": [[0, 2, 1, "", "APPLE_MUSIC"], [0, 2, 1, "", "HTTP"], [0, 2, 1, "", "SOUNDCLOUD"], [0, 2, 1, "", "SPOTIFY"], [0, 2, 1, "", "YOUTUBE"]], "pomice.enums.URLRegex": [[0, 2, 1, "", "AM_SINGLE_IN_ALBUM_REGEX"], [0, 2, 1, "", "AM_URL"], [0, 2, 1, "", "BASE_URL"], [0, 2, 1, "", "DISCORD_MP3_URL"], [0, 2, 1, "", "LAVALINK_SEARCH"], [0, 2, 1, "", "SOUNDCLOUD_PLAYLIST_URL"], [0, 2, 1, "", "SOUNDCLOUD_TRACK_IN_SET_URL"], [0, 2, 1, "", "SOUNDCLOUD_URL"], [0, 2, 1, "", "SPOTIFY_URL"], [0, 2, 1, "", "YOUTUBE_PLAYLIST_URL"], [0, 2, 1, "", "YOUTUBE_TIMESTAMP"], [0, 2, 1, "", "YOUTUBE_URL"], [0, 2, 1, "", "YOUTUBE_VID_IN_PLAYLIST"]], "pomice.events": [[1, 1, 1, "", "PomiceEvent"], [1, 1, 1, "", "TrackEndEvent"], [1, 1, 1, "", "TrackExceptionEvent"], [1, 1, 1, "", "TrackStartEvent"], [1, 1, 1, "", "TrackStuckEvent"], [1, 1, 1, "", "WebSocketClosedEvent"], [1, 1, 1, "", "WebSocketClosedPayload"], [1, 1, 1, "", "WebSocketOpenEvent"]], "pomice.events.PomiceEvent": [[1, 3, 1, "", "dispatch"], [1, 2, 1, "", "handler_args"], [1, 2, 1, "", "name"]], "pomice.events.TrackEndEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackExceptionEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackStartEvent": [[1, 2, 1, "", "name"]], "pomice.events.TrackStuckEvent": [[1, 2, 1, "", "name"]], "pomice.events.WebSocketClosedEvent": [[1, 2, 1, "", "name"]], "pomice.events.WebSocketOpenEvent": [[1, 2, 1, "", "name"]], "pomice.exceptions": [[2, 4, 1, "", "AppleMusicNotEnabled"], [2, 4, 1, "", "FilterInvalidArgument"], [2, 4, 1, "", "FilterTagAlreadyInUse"], [2, 4, 1, "", "FilterTagInvalid"], [2, 4, 1, "", "InvalidSpotifyClientAuthorization"], [2, 4, 1, "", "LavalinkVersionIncompatible"], [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, "", "NodeRestException"], [2, 4, 1, "", "PomiceException"], [2, 4, 1, "", "QueueEmpty"], [2, 4, 1, "", "QueueException"], [2, 4, 1, "", "QueueFull"], [2, 4, 1, "", "SpotifyAlbumLoadFailed"], [2, 4, 1, "", "SpotifyPlaylistLoadFailed"], [2, 4, 1, "", "SpotifyTrackLoadFailed"], [2, 4, 1, "", "TrackInvalidPosition"], [2, 4, 1, "", "TrackLoadError"]], "pomice.filters": [[3, 1, 1, "", "ChannelMix"], [3, 1, 1, "", "Distortion"], [3, 1, 1, "", "Equalizer"], [3, 1, 1, "", "Filter"], [3, 1, 1, "", "Karaoke"], [3, 1, 1, "", "LowPass"], [3, 1, 1, "", "Rotation"], [3, 1, 1, "", "Timescale"], [3, 1, 1, "", "Tremolo"], [3, 1, 1, "", "Vibrato"]], "pomice.filters.Equalizer": [[3, 3, 1, "", "boost"], [3, 3, 1, "", "flat"], [3, 3, 1, "", "metal"], [3, 3, 1, "", "piano"]], "pomice.filters.Filter": [[3, 3, 1, "", "set_preload"]], "pomice.filters.Timescale": [[3, 3, 1, "", "nightcore"], [3, 3, 1, "", "vaporwave"]], "pomice.objects": [[5, 1, 1, "", "Playlist"], [5, 1, 1, "", "Track"]], "pomice.objects.Playlist": [[5, 5, 1, "", "thumbnail"], [5, 5, 1, "", "uri"]], "pomice.player": [[6, 1, 1, "", "Filters"], [6, 1, 1, "", "Player"]], "pomice.player.Filters": [[6, 3, 1, "", "add_filter"], [6, 5, 1, "", "empty"], [6, 3, 1, "", "get_all_payloads"], [6, 3, 1, "", "get_filters"], [6, 3, 1, "", "get_preload_filters"], [6, 3, 1, "", "has_filter"], [6, 5, 1, "", "has_global"], [6, 5, 1, "", "has_preload"], [6, 3, 1, "", "remove_filter"], [6, 3, 1, "", "reset_filters"]], "pomice.player.Player": [[6, 3, 1, "", "add_filter"], [6, 5, 1, "", "bot"], [6, 3, 1, "", "connect"], [6, 5, 1, "", "current"], [6, 3, 1, "", "destroy"], [6, 3, 1, "", "disconnect"], [6, 5, 1, "", "filters"], [6, 3, 1, "", "get_recommendations"], [6, 3, 1, "", "get_tracks"], [6, 5, 1, "", "guild"], [6, 5, 1, "", "is_connected"], [6, 5, 1, "", "is_dead"], [6, 5, 1, "", "is_paused"], [6, 5, 1, "", "is_playing"], [6, 5, 1, "", "node"], [6, 3, 1, "", "on_voice_server_update"], [6, 3, 1, "", "on_voice_state_update"], [6, 3, 1, "", "play"], [6, 5, 1, "", "position"], [6, 3, 1, "", "remove_filter"], [6, 3, 1, "", "reset_filters"], [6, 3, 1, "", "seek"], [6, 3, 1, "", "set_pause"], [6, 3, 1, "", "set_volume"], [6, 3, 1, "", "stop"], [6, 5, 1, "", "volume"]], "pomice.pool": [[7, 1, 1, "", "Node"], [7, 1, 1, "", "NodePool"]], "pomice.pool.Node": [[7, 5, 1, "", "bot"], [7, 3, 1, "", "build_track"], [7, 3, 1, "", "connect"], [7, 3, 1, "", "disconnect"], [7, 3, 1, "", "get_player"], [7, 3, 1, "", "get_recommendations"], [7, 3, 1, "", "get_tracks"], [7, 5, 1, "", "is_connected"], [7, 5, 1, "", "latency"], [7, 5, 1, "", "ping"], [7, 5, 1, "", "player_count"], [7, 5, 1, "", "players"], [7, 5, 1, "", "pool"], [7, 3, 1, "", "send"], [7, 5, 1, "", "stats"]], "pomice.pool.NodePool": [[7, 3, 1, "", "create_node"], [7, 3, 1, "", "get_best_node"], [7, 3, 1, "", "get_node"], [7, 5, 1, "", "node_count"], [7, 5, 1, "", "nodes"]], "pomice.queue": [[8, 1, 1, "", "Queue"]], "pomice.queue.Queue": [[8, 3, 1, "", "clear"], [8, 3, 1, "", "clear_track_filters"], [8, 3, 1, "", "copy"], [8, 5, 1, "", "count"], [8, 3, 1, "", "disable_loop"], [8, 3, 1, "", "extend"], [8, 3, 1, "", "find_position"], [8, 3, 1, "", "get"], [8, 3, 1, "", "get_queue"], [8, 5, 1, "", "is_empty"], [8, 5, 1, "", "is_full"], [8, 5, 1, "", "is_looping"], [8, 3, 1, "", "jump"], [8, 5, 1, "", "loop_mode"], [8, 3, 1, "", "pop"], [8, 3, 1, "", "put"], [8, 3, 1, "", "put_at_front"], [8, 3, 1, "", "put_at_index"], [8, 3, 1, "", "remove"], [8, 3, 1, "", "set_loop_mode"], [8, 3, 1, "", "shuffle"], [8, 5, 1, "", "size"]], "pomice.utils": [[9, 1, 1, "", "ExponentialBackoff"], [9, 1, 1, "", "NodeStats"]], "pomice.utils.ExponentialBackoff": [[9, 3, 1, "", "delay"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:attribute", "3": "py:method", "4": "py:exception", "5": "py:property"}, "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"]}, "titleterms": {"enum": 0, "event": [1, 11], "except": 2, "filter": [3, 12, 15], "api": 4, "refer": 4, "object": 5, "player": [6, 14, 15], "paramet": 6, "pool": 7, "queue": [8, 17], "util": 9, "frequent": 10, "ask": 10, "question": 10, "us": [11, 12, 14, 15, 16, 17], "class": [11, 12, 14, 15, 16, 17], "how": 13, "do": 13, "i": 13, "node": [14, 16], "nodepool": 16, "ad": [15, 16], "get": [14, 15, 16], "best": 16, "pomic": 18, "quick": [18, 20], "link": 18, "instal": 19, "jumpstart": 20, "track": [14, 15], "recommend": [14, 15], "connect": 15, "control": 15, "destroi": 15, "plai": 15, "seek": 15, "posit": 15, "paus": 15, "unpaus": 15, "set": 15, "volum": 15, "stop": 15}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Enums": [[0, "module-pomice.enums"]], "Events": [[1, "module-pomice.events"]], "Exceptions": [[2, "module-pomice.exceptions"]], "Filters": [[3, "module-pomice.filters"]], "API Reference": [[4, "api-reference"]], "Objects": [[5, "module-pomice.objects"]], "Player": [[6, "module-pomice.player"]], "Parameters": [[6, "parameters"], [6, "id1"], [6, "id4"]], "Pool": [[7, "module-pomice.pool"]], "Queue": [[8, "module-pomice.queue"]], "Utils": [[9, "module-pomice.utils"]], "Frequently Asked Questions": [[10, "frequently-asked-questions"]], "Use the Events class": [[11, "use-the-events-class"]], "Use the Filter class": [[12, "use-the-filter-class"]], "How Do I?": [[13, "how-do-i"]], "Use the Node class": [[14, "use-the-node-class"]], "Getting a player": [[14, "getting-a-player"]], "Getting tracks": [[14, "getting-tracks"], [15, "getting-tracks"]], "Getting recommendations": [[14, "getting-recommendations"], [15, "getting-recommendations"]], "Use the Player class": [[15, "use-the-player-class"]], "Connecting a player": [[15, "connecting-a-player"]], "Controlling the player": [[15, "controlling-the-player"]], "Destroying a player": [[15, "destroying-a-player"]], "Playing a track": [[15, "playing-a-track"]], "Seeking to a position": [[15, "seeking-to-a-position"]], "Pausing/unpausing the player": [[15, "pausing-unpausing-the-player"]], "Setting the player volume": [[15, "setting-the-player-volume"]], "Stopping the player": [[15, "stopping-the-player"]], "Controlling filters": [[15, "controlling-filters"]], "Adding a filter": [[15, "adding-a-filter"]], "Use the NodePool class": [[16, "use-the-nodepool-class"]], "Adding a node": [[16, "adding-a-node"]], "Getting a node": [[16, "getting-a-node"]], "Getting the best node": [[16, "getting-the-best-node"]], "Use the Queue class": [[17, "use-the-queue-class"]], "Pomice": [[18, "pomice"]], "Quick Links:": [[18, "quick-links"]], "Installation": [[19, "installation"]], "Quick Jumpstart": [[20, "quick-jumpstart"]]}, "indexentries": {"am_single_in_album_regex (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.AM_SINGLE_IN_ALBUM_REGEX"]], "am_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.AM_URL"]], "apple_music (pomice.enums.playlisttype attribute)": [[0, "pomice.enums.PlaylistType.APPLE_MUSIC"]], "apple_music (pomice.enums.tracktype attribute)": [[0, "pomice.enums.TrackType.APPLE_MUSIC"]], "base_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.BASE_URL"]], "discord_mp3_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.DISCORD_MP3_URL"]], "http (pomice.enums.tracktype attribute)": [[0, "pomice.enums.TrackType.HTTP"]], "ipv4 (pomice.enums.routeiptype attribute)": [[0, "pomice.enums.RouteIPType.IPV4"]], "ipv6 (pomice.enums.routeiptype attribute)": [[0, "pomice.enums.RouteIPType.IPV6"]], "lavalink_search (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.LAVALINK_SEARCH"]], "load_balance (pomice.enums.routestrategy attribute)": [[0, "pomice.enums.RouteStrategy.LOAD_BALANCE"]], "loopmode (class in pomice.enums)": [[0, "pomice.enums.LoopMode"]], "nano_switch (pomice.enums.routestrategy attribute)": [[0, "pomice.enums.RouteStrategy.NANO_SWITCH"]], "nodealgorithm (class in pomice.enums)": [[0, "pomice.enums.NodeAlgorithm"]], "platformrecommendation (class in pomice.enums)": [[0, "pomice.enums.PlatformRecommendation"]], "playlisttype (class in pomice.enums)": [[0, "pomice.enums.PlaylistType"]], "queue (pomice.enums.loopmode attribute)": [[0, "pomice.enums.LoopMode.QUEUE"]], "rotate_on_ban (pomice.enums.routestrategy attribute)": [[0, "pomice.enums.RouteStrategy.ROTATE_ON_BAN"]], "rotating_nano_switch (pomice.enums.routestrategy attribute)": [[0, "pomice.enums.RouteStrategy.ROTATING_NANO_SWITCH"]], "routeiptype (class in pomice.enums)": [[0, "pomice.enums.RouteIPType"]], "routestrategy (class in pomice.enums)": [[0, "pomice.enums.RouteStrategy"]], "soundcloud (pomice.enums.playlisttype attribute)": [[0, "pomice.enums.PlaylistType.SOUNDCLOUD"]], "soundcloud (pomice.enums.tracktype attribute)": [[0, "pomice.enums.TrackType.SOUNDCLOUD"]], "soundcloud_playlist_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.SOUNDCLOUD_PLAYLIST_URL"]], "soundcloud_track_in_set_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.SOUNDCLOUD_TRACK_IN_SET_URL"]], "soundcloud_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.SOUNDCLOUD_URL"]], "spotify (pomice.enums.platformrecommendation attribute)": [[0, "pomice.enums.PlatformRecommendation.SPOTIFY"]], "spotify (pomice.enums.playlisttype attribute)": [[0, "pomice.enums.PlaylistType.SPOTIFY"]], "spotify (pomice.enums.tracktype attribute)": [[0, "pomice.enums.TrackType.SPOTIFY"]], "spotify_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.SPOTIFY_URL"]], "searchtype (class in pomice.enums)": [[0, "pomice.enums.SearchType"]], "track (pomice.enums.loopmode attribute)": [[0, "pomice.enums.LoopMode.TRACK"]], "tracktype (class in pomice.enums)": [[0, "pomice.enums.TrackType"]], "urlregex (class in pomice.enums)": [[0, "pomice.enums.URLRegex"]], "youtube (pomice.enums.platformrecommendation attribute)": [[0, "pomice.enums.PlatformRecommendation.YOUTUBE"]], "youtube (pomice.enums.playlisttype attribute)": [[0, "pomice.enums.PlaylistType.YOUTUBE"]], "youtube (pomice.enums.tracktype attribute)": [[0, "pomice.enums.TrackType.YOUTUBE"]], "youtube_playlist_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.YOUTUBE_PLAYLIST_URL"]], "youtube_timestamp (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.YOUTUBE_TIMESTAMP"]], "youtube_url (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.YOUTUBE_URL"]], "youtube_vid_in_playlist (pomice.enums.urlregex attribute)": [[0, "pomice.enums.URLRegex.YOUTUBE_VID_IN_PLAYLIST"]], "by_ping (pomice.enums.nodealgorithm attribute)": [[0, "pomice.enums.NodeAlgorithm.by_ping"]], "by_players (pomice.enums.nodealgorithm attribute)": [[0, "pomice.enums.NodeAlgorithm.by_players"]], "module": [[0, "module-pomice.enums"], [1, "module-pomice.events"], [2, "module-pomice.exceptions"], [3, "module-pomice.filters"], [5, "module-pomice.objects"], [6, "module-pomice.player"], [7, "module-pomice.pool"], [8, "module-pomice.queue"], [9, "module-pomice.utils"]], "pomice.enums": [[0, "module-pomice.enums"]], "scsearch (pomice.enums.searchtype attribute)": [[0, "pomice.enums.SearchType.scsearch"]], "ytmsearch (pomice.enums.searchtype attribute)": [[0, "pomice.enums.SearchType.ytmsearch"]], "ytsearch (pomice.enums.searchtype attribute)": [[0, "pomice.enums.SearchType.ytsearch"]], "pomiceevent (class in pomice.events)": [[1, "pomice.events.PomiceEvent"]], "trackendevent (class in pomice.events)": [[1, "pomice.events.TrackEndEvent"]], "trackexceptionevent (class in pomice.events)": [[1, "pomice.events.TrackExceptionEvent"]], "trackstartevent (class in pomice.events)": [[1, "pomice.events.TrackStartEvent"]], "trackstuckevent (class in pomice.events)": [[1, "pomice.events.TrackStuckEvent"]], "websocketclosedevent (class in pomice.events)": [[1, "pomice.events.WebSocketClosedEvent"]], "websocketclosedpayload (class in pomice.events)": [[1, "pomice.events.WebSocketClosedPayload"]], "websocketopenevent (class in pomice.events)": [[1, "pomice.events.WebSocketOpenEvent"]], "dispatch() (pomice.events.pomiceevent method)": [[1, "pomice.events.PomiceEvent.dispatch"]], "handler_args (pomice.events.pomiceevent attribute)": [[1, "pomice.events.PomiceEvent.handler_args"]], "name (pomice.events.pomiceevent attribute)": [[1, "pomice.events.PomiceEvent.name"]], "name (pomice.events.trackendevent attribute)": [[1, "pomice.events.TrackEndEvent.name"]], "name (pomice.events.trackexceptionevent attribute)": [[1, "pomice.events.TrackExceptionEvent.name"]], "name (pomice.events.trackstartevent attribute)": [[1, "pomice.events.TrackStartEvent.name"]], "name (pomice.events.trackstuckevent attribute)": [[1, "pomice.events.TrackStuckEvent.name"]], "name (pomice.events.websocketclosedevent attribute)": [[1, "pomice.events.WebSocketClosedEvent.name"]], "name (pomice.events.websocketopenevent attribute)": [[1, "pomice.events.WebSocketOpenEvent.name"]], "pomice.events": [[1, "module-pomice.events"]], "applemusicnotenabled": [[2, "pomice.exceptions.AppleMusicNotEnabled"]], "filterinvalidargument": [[2, "pomice.exceptions.FilterInvalidArgument"]], "filtertagalreadyinuse": [[2, "pomice.exceptions.FilterTagAlreadyInUse"]], "filtertaginvalid": [[2, "pomice.exceptions.FilterTagInvalid"]], "invalidspotifyclientauthorization": [[2, "pomice.exceptions.InvalidSpotifyClientAuthorization"]], "lavalinkversionincompatible": [[2, "pomice.exceptions.LavalinkVersionIncompatible"]], "nonodesavailable": [[2, "pomice.exceptions.NoNodesAvailable"]], "nodeconnectionclosed": [[2, "pomice.exceptions.NodeConnectionClosed"]], "nodeconnectionfailure": [[2, "pomice.exceptions.NodeConnectionFailure"]], "nodecreationerror": [[2, "pomice.exceptions.NodeCreationError"]], "nodeexception": [[2, "pomice.exceptions.NodeException"]], "nodenotavailable": [[2, "pomice.exceptions.NodeNotAvailable"]], "noderestexception": [[2, "pomice.exceptions.NodeRestException"]], "pomiceexception": [[2, "pomice.exceptions.PomiceException"]], "queueempty": [[2, "pomice.exceptions.QueueEmpty"]], "queueexception": [[2, "pomice.exceptions.QueueException"]], "queuefull": [[2, "pomice.exceptions.QueueFull"]], "spotifyalbumloadfailed": [[2, "pomice.exceptions.SpotifyAlbumLoadFailed"]], "spotifyplaylistloadfailed": [[2, "pomice.exceptions.SpotifyPlaylistLoadFailed"]], "spotifytrackloadfailed": [[2, "pomice.exceptions.SpotifyTrackLoadFailed"]], "trackinvalidposition": [[2, "pomice.exceptions.TrackInvalidPosition"]], "trackloaderror": [[2, "pomice.exceptions.TrackLoadError"]], "pomice.exceptions": [[2, "module-pomice.exceptions"]], "channelmix (class in pomice.filters)": [[3, "pomice.filters.ChannelMix"]], "distortion (class in pomice.filters)": [[3, "pomice.filters.Distortion"]], "equalizer (class in pomice.filters)": [[3, "pomice.filters.Equalizer"]], "filter (class in pomice.filters)": [[3, "pomice.filters.Filter"]], "karaoke (class in pomice.filters)": [[3, "pomice.filters.Karaoke"]], "lowpass (class in pomice.filters)": [[3, "pomice.filters.LowPass"]], "rotation (class in pomice.filters)": [[3, "pomice.filters.Rotation"]], "timescale (class in pomice.filters)": [[3, "pomice.filters.Timescale"]], "tremolo (class in pomice.filters)": [[3, "pomice.filters.Tremolo"]], "vibrato (class in pomice.filters)": [[3, "pomice.filters.Vibrato"]], "boost() (pomice.filters.equalizer class method)": [[3, "pomice.filters.Equalizer.boost"]], "flat() (pomice.filters.equalizer class method)": [[3, "pomice.filters.Equalizer.flat"]], "metal() (pomice.filters.equalizer class method)": [[3, "pomice.filters.Equalizer.metal"]], "nightcore() (pomice.filters.timescale class method)": [[3, "pomice.filters.Timescale.nightcore"]], "piano() (pomice.filters.equalizer class method)": [[3, "pomice.filters.Equalizer.piano"]], "pomice.filters": [[3, "module-pomice.filters"]], "set_preload() (pomice.filters.filter method)": [[3, "pomice.filters.Filter.set_preload"]], "vaporwave() (pomice.filters.timescale class method)": [[3, "pomice.filters.Timescale.vaporwave"]], "playlist (class in pomice.objects)": [[5, "pomice.objects.Playlist"]], "track (class in pomice.objects)": [[5, "pomice.objects.Track"]], "pomice.objects": [[5, "module-pomice.objects"]], "thumbnail (pomice.objects.playlist property)": [[5, "pomice.objects.Playlist.thumbnail"]], "uri (pomice.objects.playlist property)": [[5, "pomice.objects.Playlist.uri"]], "filters (class in pomice.player)": [[6, "pomice.player.Filters"]], "player (class in pomice.player)": [[6, "pomice.player.Player"]], "add_filter() (pomice.player.filters method)": [[6, "pomice.player.Filters.add_filter"]], "add_filter() (pomice.player.player method)": [[6, "pomice.player.Player.add_filter"]], "bot (pomice.player.player property)": [[6, "pomice.player.Player.bot"]], "connect() (pomice.player.player method)": [[6, "pomice.player.Player.connect"]], "current (pomice.player.player property)": [[6, "pomice.player.Player.current"]], "destroy() (pomice.player.player method)": [[6, "pomice.player.Player.destroy"]], "disconnect() (pomice.player.player method)": [[6, "pomice.player.Player.disconnect"]], "empty (pomice.player.filters property)": [[6, "pomice.player.Filters.empty"]], "filters (pomice.player.player property)": [[6, "pomice.player.Player.filters"]], "get_all_payloads() (pomice.player.filters method)": [[6, "pomice.player.Filters.get_all_payloads"]], "get_filters() (pomice.player.filters method)": [[6, "pomice.player.Filters.get_filters"]], "get_preload_filters() (pomice.player.filters method)": [[6, "pomice.player.Filters.get_preload_filters"]], "get_recommendations() (pomice.player.player method)": [[6, "pomice.player.Player.get_recommendations"]], "get_tracks() (pomice.player.player method)": [[6, "pomice.player.Player.get_tracks"]], "guild (pomice.player.player property)": [[6, "pomice.player.Player.guild"]], "has_filter() (pomice.player.filters method)": [[6, "pomice.player.Filters.has_filter"]], "has_global (pomice.player.filters property)": [[6, "pomice.player.Filters.has_global"]], "has_preload (pomice.player.filters property)": [[6, "pomice.player.Filters.has_preload"]], "is_connected (pomice.player.player property)": [[6, "pomice.player.Player.is_connected"]], "is_dead (pomice.player.player property)": [[6, "pomice.player.Player.is_dead"]], "is_paused (pomice.player.player property)": [[6, "pomice.player.Player.is_paused"]], "is_playing (pomice.player.player property)": [[6, "pomice.player.Player.is_playing"]], "node (pomice.player.player property)": [[6, "pomice.player.Player.node"]], "on_voice_server_update() (pomice.player.player method)": [[6, "pomice.player.Player.on_voice_server_update"]], "on_voice_state_update() (pomice.player.player method)": [[6, "pomice.player.Player.on_voice_state_update"]], "play() (pomice.player.player method)": [[6, "pomice.player.Player.play"]], "pomice.player": [[6, "module-pomice.player"]], "position (pomice.player.player property)": [[6, "pomice.player.Player.position"]], "remove_filter() (pomice.player.filters method)": [[6, "pomice.player.Filters.remove_filter"]], "remove_filter() (pomice.player.player method)": [[6, "pomice.player.Player.remove_filter"]], "reset_filters() (pomice.player.filters method)": [[6, "pomice.player.Filters.reset_filters"]], "reset_filters() (pomice.player.player method)": [[6, "pomice.player.Player.reset_filters"]], "seek() (pomice.player.player method)": [[6, "pomice.player.Player.seek"]], "set_pause() (pomice.player.player method)": [[6, "pomice.player.Player.set_pause"]], "set_volume() (pomice.player.player method)": [[6, "pomice.player.Player.set_volume"]], "stop() (pomice.player.player method)": [[6, "pomice.player.Player.stop"]], "volume (pomice.player.player property)": [[6, "pomice.player.Player.volume"]], "node (class in pomice.pool)": [[7, "pomice.pool.Node"]], "nodepool (class in pomice.pool)": [[7, "pomice.pool.NodePool"]], "bot (pomice.pool.node property)": [[7, "pomice.pool.Node.bot"]], "build_track() (pomice.pool.node method)": [[7, "pomice.pool.Node.build_track"]], "connect() (pomice.pool.node method)": [[7, "pomice.pool.Node.connect"]], "create_node() (pomice.pool.nodepool class method)": [[7, "pomice.pool.NodePool.create_node"]], "disconnect() (pomice.pool.node method)": [[7, "pomice.pool.Node.disconnect"]], "get_best_node() (pomice.pool.nodepool class method)": [[7, "pomice.pool.NodePool.get_best_node"]], "get_node() (pomice.pool.nodepool class method)": [[7, "pomice.pool.NodePool.get_node"]], "get_player() (pomice.pool.node method)": [[7, "pomice.pool.Node.get_player"]], "get_recommendations() (pomice.pool.node method)": [[7, "pomice.pool.Node.get_recommendations"]], "get_tracks() (pomice.pool.node method)": [[7, "pomice.pool.Node.get_tracks"]], "is_connected (pomice.pool.node property)": [[7, "pomice.pool.Node.is_connected"]], "latency (pomice.pool.node property)": [[7, "pomice.pool.Node.latency"]], "node_count (pomice.pool.nodepool property)": [[7, "pomice.pool.NodePool.node_count"]], "nodes (pomice.pool.nodepool property)": [[7, "pomice.pool.NodePool.nodes"]], "ping (pomice.pool.node property)": [[7, "pomice.pool.Node.ping"]], "player_count (pomice.pool.node property)": [[7, "pomice.pool.Node.player_count"]], "players (pomice.pool.node property)": [[7, "pomice.pool.Node.players"]], "pomice.pool": [[7, "module-pomice.pool"]], "pool (pomice.pool.node property)": [[7, "pomice.pool.Node.pool"]], "send() (pomice.pool.node method)": [[7, "pomice.pool.Node.send"]], "stats (pomice.pool.node property)": [[7, "pomice.pool.Node.stats"]], "queue (class in pomice.queue)": [[8, "pomice.queue.Queue"]], "clear() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.clear"]], "clear_track_filters() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.clear_track_filters"]], "copy() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.copy"]], "count (pomice.queue.queue property)": [[8, "pomice.queue.Queue.count"]], "disable_loop() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.disable_loop"]], "extend() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.extend"]], "find_position() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.find_position"]], "get() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.get"]], "get_queue() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.get_queue"]], "is_empty (pomice.queue.queue property)": [[8, "pomice.queue.Queue.is_empty"]], "is_full (pomice.queue.queue property)": [[8, "pomice.queue.Queue.is_full"]], "is_looping (pomice.queue.queue property)": [[8, "pomice.queue.Queue.is_looping"]], "jump() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.jump"]], "loop_mode (pomice.queue.queue property)": [[8, "pomice.queue.Queue.loop_mode"]], "pomice.queue": [[8, "module-pomice.queue"]], "pop() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.pop"]], "put() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.put"]], "put_at_front() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.put_at_front"]], "put_at_index() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.put_at_index"]], "remove() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.remove"]], "set_loop_mode() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.set_loop_mode"]], "shuffle() (pomice.queue.queue method)": [[8, "pomice.queue.Queue.shuffle"]], "size (pomice.queue.queue property)": [[8, "pomice.queue.Queue.size"]], "exponentialbackoff (class in pomice.utils)": [[9, "pomice.utils.ExponentialBackoff"]], "nodestats (class in pomice.utils)": [[9, "pomice.utils.NodeStats"]], "delay() (pomice.utils.exponentialbackoff method)": [[9, "pomice.utils.ExponentialBackoff.delay"]], "pomice.utils": [[9, "module-pomice.utils"]]}}) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index cf9169b..50cce96 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,6 +14,8 @@ import os import sys from typing import Any, Dict sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath('..')) + # -- Project information ----------------------------------------------------- diff --git a/docs/hdi/player.md b/docs/hdi/player.md index d87f087..e5e98f7 100644 --- a/docs/hdi/player.md +++ b/docs/hdi/player.md @@ -404,6 +404,61 @@ await Player.add_filter( After running this function, you should see your currently playing track sound different depending on the filter you chose. +### Removing a filter + + +To remove a filter, we need to use `Player.remove_filter()` + +```py + +await Player.remove_filter(...) + +``` + + +After you have initialized your function, we need to fill in the proper parameters: + +:::{list-table} +:header-rows: 1 + +* - Name + - Type + - Description + +* - `filter` + - `Filter` + - The filter to remove + +* - `fast_apply` + - `bool` + - If set to `True`, the specified filter will be removed (almost) instantly if a song is playing. Default value is `False`. + +::: + +After you set those parameters, your function should look something like this: + +```py + +await Player.remove_filter( + filter=, + fast_apply= +) + +``` + +After running this function, you should see your currently playing track sound different depending on the filter you chose to remove. + + +### Resetting all filters + +To reset all filters, we need to use `Player.reset_filters()` + +```py + +await Player.reset_filters() + +``` +