reorder some startup to prevent heartbeat issues (#3073)

* reorder some startup to prevent heartbeat issues

* changelog

* handle startup cleanup in audio

* style

* rebased to handle conflict

* be a little smarter to prevent (some) infinite hangs

* Fix a pre-existing NoneType Error

* Migrate config before things are using it...

* another place we should ensure we're ready

* rename-toavoid-issues

* fix cache ordering and mis-use of ensure_future

* remove incorrect typehints

* style
This commit is contained in:
Michael H
2019-11-09 14:19:57 -05:00
committed by GitHub
parent 6852b7a1d1
commit b3363acf77
10 changed files with 192 additions and 156 deletions

View File

@@ -3,7 +3,6 @@ import contextlib
import os
import re
import time
from typing import NoReturn
from urllib.parse import urlparse
import discord
@@ -11,7 +10,7 @@ import lavalink
from redbot.core import Config, commands
from redbot.core.bot import Red
from . import dataclasses
from . import audio_dataclasses
from .converters import _pass_config_to_converters
@@ -51,7 +50,7 @@ def pass_config_to_dependencies(config: Config, bot: Red, localtracks_folder: st
_config = config
_pass_config_to_playlist(config, bot)
_pass_config_to_converters(config, bot)
dataclasses._pass_config_to_dataclasses(config, bot, localtracks_folder)
audio_dataclasses._pass_config_to_dataclasses(config, bot, localtracks_folder)
def track_limit(track, maxlength):
@@ -168,7 +167,7 @@ async def clear_react(bot: Red, message: discord.Message, emoji: dict = None):
async def get_description(track):
if any(x in track.uri for x in [f"{os.sep}localtracks", f"localtracks{os.sep}"]):
local_track = dataclasses.LocalPath(track.uri)
local_track = audio_dataclasses.LocalPath(track.uri)
if track.title != "Unknown title":
return "**{} - {}**\n{}".format(
track.author, track.title, local_track.to_string_hidden()
@@ -389,7 +388,7 @@ class Notifier:
key: str = None,
seconds_key: str = None,
seconds: str = None,
) -> NoReturn:
):
"""
This updates an existing message.
Based on the message found in :variable:`Notifier.updates` as per the `key` param
@@ -410,14 +409,14 @@ class Notifier:
except discord.errors.NotFound:
pass
async def update_text(self, text: str) -> NoReturn:
async def update_text(self, text: str):
embed2 = discord.Embed(colour=self.color, title=text)
try:
await self.message.edit(embed=embed2)
except discord.errors.NotFound:
pass
async def update_embed(self, embed: discord.Embed) -> NoReturn:
async def update_embed(self, embed: discord.Embed):
try:
await self.message.edit(embed=embed)
self.last_msg_time = time.time()