Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@
- redbot/core/_global_checks.py
- redbot/core/_settings_caches.py
- redbot/core/_sharedlibdeprecation.py
- redbot/core/_json.py
- redbot/core/utils/_internal_utils.py
# Tests
- redbot/pytest/__init__.py
Expand Down
5 changes: 2 additions & 3 deletions redbot/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import asyncio
import functools
import getpass
import json
import logging
import os
import pip
Expand All @@ -27,7 +26,7 @@
from redbot.core.bot import Red, ExitCodes, _NoOwnerSet
from redbot.core._cli import interactive_config, confirm, parse_cli_flags
from redbot.setup import get_data_dir, get_name, save_config
from redbot.core import data_manager, _drivers
from redbot.core import data_manager, _drivers, _json
from redbot.core._debuginfo import DebugInfo
from redbot.core._sharedlibdeprecation import SharedLibImportWarner

Expand All @@ -43,7 +42,7 @@

def _get_instance_names():
with data_manager.config_file.open(encoding="utf-8") as fs:
data = json.load(fs)
data = _json.load(fs)
return sorted(data.keys())


Expand Down
10 changes: 5 additions & 5 deletions redbot/cogs/audio/apis/api_utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import datetime
import json
from collections import namedtuple
from dataclasses import dataclass, field
from pathlib import Path
Expand All @@ -9,6 +8,7 @@
import lavalink
from red_commons.logging import getLogger

from redbot.core import _json
from redbot.core.bot import Red
from redbot.core.i18n import Translator
from redbot.core.utils.chat_formatting import humanize_list
Expand Down Expand Up @@ -50,7 +50,7 @@ def __post_init__(self):
self.updated_on: datetime.datetime = datetime.datetime.fromtimestamp(self.last_updated)

if isinstance(self.query, str):
self.query = json.loads(self.query)
self.query = _json.loads(self.query)


@dataclass
Expand All @@ -61,7 +61,7 @@ class LavalinkCacheFetchForGlobalResult:
def __post_init__(self):
if isinstance(self.data, str):
self.data_string = str(self.data)
self.data = json.loads(self.data)
self.data = _json.loads(self.data)


@dataclass
Expand All @@ -75,7 +75,7 @@ class PlaylistFetchResult:

def __post_init__(self):
if isinstance(self.tracks, str):
self.tracks = json.loads(self.tracks)
self.tracks = _json.loads(self.tracks)


@dataclass
Expand All @@ -87,7 +87,7 @@ class QueueFetchResult:

def __post_init__(self):
if isinstance(self.track, str):
self.track = json.loads(self.track)
self.track = _json.loads(self.track)
if self.track:
self.track_object = lavalink.Track(self.track)

Expand Down
11 changes: 5 additions & 6 deletions redbot/cogs/audio/apis/global_db.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import asyncio
import contextlib
import json

from copy import copy
from pathlib import Path
Expand All @@ -10,7 +9,7 @@
from lavalink.rest_api import LoadResult
from red_commons.logging import getLogger

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -74,7 +73,7 @@ async def get_call(self, query: Optional[Query] = None) -> dict:
headers={"Authorization": self.api_key, "X-Token": self._handshake_token},
params={"query": query},
) as r:
search_response = await r.json(loads=json.loads)
search_response = await r.json(loads=_json.loads)
log.trace(
"GET || Ping %s || Status code %s || %s",
r.headers.get("x-process-time"),
Expand Down Expand Up @@ -105,7 +104,7 @@ async def get_spotify(self, title: str, author: Optional[str]) -> dict:
headers={"Authorization": self.api_key, "X-Token": self._handshake_token},
params=params,
) as r:
search_response = await r.json(loads=json.loads)
search_response = await r.json(loads=_json.loads)
log.trace(
"GET/spotify || Ping %s || Status code %s || %s - %s",
r.headers.get("x-process-time"),
Expand Down Expand Up @@ -175,13 +174,13 @@ async def get_perms(self):
if (not is_enabled) or self.api_key is None:
return global_api_user
with contextlib.suppress(Exception):
async with aiohttp.ClientSession(json_serialize=json.dumps) as session:
async with aiohttp.ClientSession(json_serialize=_json.dumps) as session:
async with session.get(
f"{_API_URL}api/v2/users/me",
headers={"Authorization": self.api_key, "X-Token": self._handshake_token},
) as resp:
if resp.status == 200:
search_response = await resp.json(loads=json.loads)
search_response = await resp.json(loads=_json.loads)
global_api_user["fetched"] = True
global_api_user["can_read"] = search_response.get("can_read", False)
global_api_user["can_post"] = search_response.get("can_post", False)
Expand Down
5 changes: 2 additions & 3 deletions redbot/cogs/audio/apis/interface.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import asyncio
import contextlib
import datetime
import json
import random
import time

Expand All @@ -15,7 +14,7 @@
from red_commons.logging import getLogger

from lavalink.rest_api import LoadResult, LoadType
from redbot.core import Config, commands
from redbot.core import Config, commands, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog, Context
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -896,7 +895,7 @@ async def fetch_track(
):
try:
time_now = int(datetime.datetime.now(datetime.timezone.utc).timestamp())
data = json.dumps(results._raw)
data = _json.dumps(results._raw)
if all(k in data for k in ["loadType", "playlistInfo", "isSeekable", "isStream"]):
task = (
"insert",
Expand Down
5 changes: 2 additions & 3 deletions redbot/cogs/audio/apis/persist_queue_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import concurrent
import json
import time
from pathlib import Path

Expand All @@ -9,7 +8,7 @@
import lavalink
from red_commons.logging import getLogger

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -129,7 +128,7 @@ async def enqueued(self, guild_id: int, room_id: int, track: lavalink.Track):
"room_id": int(room_id),
"played": False,
"time": enqueue_time,
"track": json.dumps(track),
"track": _json.dumps(track),
"track_id": track_identifier,
},
)
5 changes: 2 additions & 3 deletions redbot/cogs/audio/apis/playlist_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import concurrent
import json
from pathlib import Path

from types import SimpleNamespace
from typing import List, MutableMapping, Optional

from red_commons.logging import getLogger

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.i18n import Translator
from redbot.core.utils import AsyncIter
Expand Down Expand Up @@ -258,7 +257,7 @@ async def upsert(
"scope_id": int(scope_id),
"author_id": int(author_id),
"playlist_url": playlist_url,
"tracks": json.dumps(tracks),
"tracks": _json.dumps(tracks),
},
)

Expand Down
7 changes: 3 additions & 4 deletions redbot/cogs/audio/apis/spotify.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import base64
import contextlib
import json
import time
from pathlib import Path

Expand All @@ -9,7 +8,7 @@
import aiohttp
from red_commons.logging import getLogger

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog, Context
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -100,7 +99,7 @@ async def get(
if params is None:
params = {}
async with self.session.request("GET", url, params=params, headers=headers) as r:
data = await r.json(loads=json.loads)
data = await r.json(loads=_json.loads)
if r.status != 200:
log.verbose("Issue making GET request to %r: [%s] %r", url, r.status, data)
return data
Expand Down Expand Up @@ -154,7 +153,7 @@ async def post(
) -> MutableMapping:
"""Make a POST call to spotify."""
async with self.session.post(url, data=payload, headers=headers) as r:
data = await r.json(loads=json.loads)
data = await r.json(loads=_json.loads)
if r.status != 200:
log.verbose("Issue making POST request to %r: [%s] %r", url, r.status, data)
return data
Expand Down
5 changes: 2 additions & 3 deletions redbot/cogs/audio/apis/youtube.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
import json
from pathlib import Path

from typing import TYPE_CHECKING, Mapping, Optional, Union

import aiohttp
from red_commons.logging import getLogger

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -80,7 +79,7 @@ async def get_call(self, query: str) -> Optional[str]:
)
return None
else:
search_response = await r.json(loads=json.loads)
search_response = await r.json(loads=_json.loads)
for search_result in search_response.get("items", []):
if search_result["id"]["kind"] == "youtube#video":
return f"https://www.youtube.com/watch?v={search_result['id']['videoId']}"
Expand Down
5 changes: 2 additions & 3 deletions redbot/cogs/audio/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import asyncio
import datetime
import json

from collections import Counter, defaultdict
from pathlib import Path
Expand All @@ -9,7 +8,7 @@
import aiohttp
import discord

from redbot.core import Config
from redbot.core import Config, _json
from redbot.core.bot import Red
from redbot.core.commands import Cog
from redbot.core.data_manager import cog_data_path
Expand Down Expand Up @@ -78,7 +77,7 @@ def __init__(self, bot: Red):
add_reactions=True,
)

self.session = aiohttp.ClientSession(json_serialize=json.dumps)
self.session = aiohttp.ClientSession(json_serialize=_json.dumps)
self.cog_ready_event = asyncio.Event()
self._ws_resume = defaultdict(asyncio.Event)
self._ws_op_codes = defaultdict(asyncio.LifoQueue)
Expand Down
7 changes: 3 additions & 4 deletions redbot/cogs/audio/core/commands/playlists.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import asyncio
import json
import math
import os
import tarfile
Expand All @@ -14,7 +13,7 @@
import lavalink
from red_commons.logging import getLogger

from redbot.core import commands
from redbot.core import commands, _json
from redbot.core.commands import UserInputOptional
from redbot.core.data_manager import cog_data_path
from redbot.core.i18n import Translator
Expand Down Expand Up @@ -742,7 +741,7 @@ async def command_playlist_download(
playlist_data["link"] = playlist.url
file_name = playlist.id
playlist_data.update({"schema": schema, "version": version})
playlist_data = json.dumps(playlist_data).encode("utf-8")
playlist_data = _json.dumps(playlist_data).encode("utf-8")
to_write = BytesIO()
to_write.write(playlist_data)
to_write.seek(0)
Expand Down Expand Up @@ -1832,7 +1831,7 @@ async def command_playlist_upload(
try:
async with self.session.request("GET", file_url) as r:
uploaded_playlist = await r.json(
content_type="text/plain", encoding="utf-8", loads=json.loads
content_type="text/plain", encoding="utf-8", loads=_json.loads
)
except UnicodeDecodeError:
return await self.send_embed_msg(ctx, title=_("Not a valid playlist file."))
Expand Down
5 changes: 2 additions & 3 deletions redbot/cogs/audio/core/utilities/miscellaneous.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import contextlib
import datetime
import functools
import json
import re
import struct
from pathlib import Path
Expand All @@ -12,7 +11,7 @@
import lavalink
from red_commons.logging import getLogger

from redbot.core import bank, commands
from redbot.core import bank, commands, _json
from redbot.core.commands import Context
from redbot.core.i18n import Translator
from redbot.core.utils import AsyncIter, can_user_send_messages_in
Expand Down Expand Up @@ -310,7 +309,7 @@ async def data_schema_migration(self, from_version: int, to_version: int) -> Non
uri = t.get("info", {}).get("uri")
if uri:
t = {"loadType": "V2_COMPAT", "tracks": [t], "query": uri}
data = json.dumps(t)
data = _json.dumps(t)
if all(
k in data
for k in ["loadType", "playlistInfo", "isSeekable", "isStream"]
Expand Down
9 changes: 4 additions & 5 deletions redbot/cogs/audio/core/utilities/playlists.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import asyncio
import contextlib
import datetime
import json
import math
import random
import time
Expand All @@ -15,7 +14,7 @@
from lavalink import NodeNotFound
from red_commons.logging import getLogger

from redbot.core import commands
from redbot.core import commands, _json
from redbot.core.i18n import Translator
from redbot.core.utils import AsyncIter
from redbot.core.utils.chat_formatting import box
Expand Down Expand Up @@ -381,7 +380,7 @@ async def _load_v3_playlist(
uri = t.get("info", {}).get("uri")
if uri:
t = {"loadType": "V2_COMPAT", "tracks": [t], "query": uri}
data = json.dumps(t)
data = _json.dumps(t)
if all(k in data for k in ["loadType", "playlistInfo", "isSeekable", "isStream"]):
database_entries.append(
{
Expand Down Expand Up @@ -684,15 +683,15 @@ def humanize_scope(
return str(ctx) if ctx else _("the User") if the else _("User")

async def _get_bundled_playlist_tracks(self):
async with aiohttp.ClientSession(json_serialize=json.dumps) as session:
async with aiohttp.ClientSession(json_serialize=_json.dumps) as session:
async with session.get(
CURATED_DATA + f"?timestamp={int(time.time())}",
headers={"content-type": "application/json"},
) as response:
if response.status != 200:
return 0, []
try:
data = json.loads(await response.read())
data = _json.loads(await response.read())
except Exception as exc:
log.error(
"Curated playlist couldn't be parsed, report this error.", exc_info=exc
Expand Down
Loading