Merge pull request #4 from strNophix/redis-context

Added aioredis + custom context
This commit is contained in:
2021-10-31 14:47:34 +01:00
committed by GitHub
5 changed files with 43 additions and 2 deletions
+13
View File
@@ -1,8 +1,11 @@
import asyncio
from aioredis.client import Redis
import discord import discord
from discord import ActivityType from discord import ActivityType
from discord.colour import Color from discord.colour import Color
from discord.ext import commands, tasks from discord.ext import commands, tasks
import sys import sys
from signal import SIGINT, SIGTERM
import json import json
from typing import Any, Dict, List, Sequence from typing import Any, Dict, List, Sequence
from discord import Message from discord import Message
@@ -12,6 +15,10 @@ from discord.ext.commands.errors import (
ExtensionNotFound, ExtensionNotFound,
NoEntryPointError, NoEntryPointError,
) )
import aioredis
from aioredis import Redis
from context import CustomContext
class ChristmasBot(commands.Bot): class ChristmasBot(commands.Bot):
@@ -27,6 +34,9 @@ class ChristmasBot(commands.Bot):
self.initial_cog_names: List[str] = self.config.get("cogs", []) self.initial_cog_names: List[str] = self.config.get("cogs", [])
self.colors: Dict[str, Color] = self.process_colours(config.get("colors", [])) self.colors: Dict[str, Color] = self.process_colours(config.get("colors", []))
self._redis_client: Redis = aioredis.from_url(
self.config["redis_url"], encoding="utf-8", decode_responses=True
)
self.invite_link: str = "" self.invite_link: str = ""
slash_guilds = None slash_guilds = None
@@ -77,6 +87,9 @@ class ChristmasBot(commands.Bot):
colour_dict[name] = Color(int(color, 16)) colour_dict[name] = Color(int(color, 16))
return colour_dict return colour_dict
async def get_context(self, message: Message, *, cls=CustomContext):
return await super().get_context(message, cls=cls)
@tasks.loop(seconds=30) @tasks.loop(seconds=30)
async def update_status(self): async def update_status(self):
await self.wait_until_ready() await self.wait_until_ready()
+1
View File
@@ -2,6 +2,7 @@
"token": "", "token": "",
"owner_ids": [194545408960102400, 190875175460405249], "owner_ids": [194545408960102400, 190875175460405249],
"prefixes": ["ck!"], "prefixes": ["ck!"],
"redis_url": "",
"lavalink": { "lavalink": {
"host": "", "host": "",
"port": 2333, "port": 2333,
+7
View File
@@ -0,0 +1,7 @@
from aioredis.client import Redis
from discord.ext import commands
class CustomContext(commands.Context):
def get_redis(self) -> Redis:
return self.bot._redis_client
Generated
+21 -2
View File
@@ -16,6 +16,21 @@ yarl = ">=1.0,<1.6.0"
[package.extras] [package.extras]
speedups = ["aiodns", "brotlipy", "cchardet"] speedups = ["aiodns", "brotlipy", "cchardet"]
[[package]]
name = "aioredis"
version = "2.0.0"
description = "asyncio (PEP 3156) Redis support"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
async-timeout = "*"
typing-extensions = "*"
[package.extras]
hiredis = ["hiredis (>=1.0)"]
[[package]] [[package]]
name = "async-timeout" name = "async-timeout"
version = "3.0.1" version = "3.0.1"
@@ -258,7 +273,7 @@ python-versions = ">=3.6"
name = "typing-extensions" name = "typing-extensions"
version = "3.10.0.2" version = "3.10.0.2"
description = "Backported and Experimental Type Hints for Python 3.5+" description = "Backported and Experimental Type Hints for Python 3.5+"
category = "dev" category = "main"
optional = false optional = false
python-versions = "*" python-versions = "*"
@@ -290,7 +305,7 @@ multidict = ">=4.0"
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = "^3.8" python-versions = "^3.8"
content-hash = "9ecfdbfb13478abd79ab060516a2001a0706019f52c946f63e5ebb308e01622f" content-hash = "3e8f3b5171be334aaa606cd70df03f9b0ac49cb2f78b69723ff49233ce9c1cd3"
[metadata.files] [metadata.files]
aiohttp = [ aiohttp = [
@@ -308,6 +323,10 @@ aiohttp = [
{file = "aiohttp-3.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:687461cd974722110d1763b45c5db4d2cdee8d50f57b00c43c7590d1dd77fc5c"}, {file = "aiohttp-3.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:687461cd974722110d1763b45c5db4d2cdee8d50f57b00c43c7590d1dd77fc5c"},
{file = "aiohttp-3.6.3.tar.gz", hash = "sha256:698cd7bc3c7d1b82bb728bae835724a486a8c376647aec336aa21a60113c3645"}, {file = "aiohttp-3.6.3.tar.gz", hash = "sha256:698cd7bc3c7d1b82bb728bae835724a486a8c376647aec336aa21a60113c3645"},
] ]
aioredis = [
{file = "aioredis-2.0.0-py3-none-any.whl", hash = "sha256:9921d68a3df5c5cdb0d5b49ad4fc88a4cfdd60c108325df4f0066e8410c55ffb"},
{file = "aioredis-2.0.0.tar.gz", hash = "sha256:3a2de4b614e6a5f8e104238924294dc4e811aefbe17ddf52c04a93cbf06e67db"},
]
async-timeout = [ async-timeout = [
{file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"}, {file = "async-timeout-3.0.1.tar.gz", hash = "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f"},
{file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"}, {file = "async_timeout-3.0.1-py3-none-any.whl", hash = "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3"},
+1
View File
@@ -11,6 +11,7 @@ lavalink = "^3.1.4"
humanize = "^3.12.0" humanize = "^3.12.0"
"discord.py" = { git = "https://github.com/iDevision/enhanced-discord.py", branch = "2.0", extras = ["voice", "speed"] } "discord.py" = { git = "https://github.com/iDevision/enhanced-discord.py", branch = "2.0", extras = ["voice", "speed"] }
uvloop = {version = "^0.16.0", optional = true} uvloop = {version = "^0.16.0", optional = true}
aioredis = "^2.0.0"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
black = {version = "^21.9b0", allow-prereleases = true} black = {version = "^21.9b0", allow-prereleases = true}