<gh_stars>0
from discord.errors import HTTPException
from discord.ext import commands
from os import getenv
from discord import Embed
from dotenv import load_dotenv
from requests.models import HTTPError
from riotwatcher import LolWatcher
from json import load

load_dotenv(dotenv_path="config")
prefix = getenv("PREFIX")

class listlol(commands.Cog):
    def __init__(self, client):
        self.client = client
    
    @commands.command()
    async def listlol(
        self,
        ctx,
        region : str = None,
        *,
        pseudo : str = None
    ):
        if not region:
            await ctx.reply(f"Il manque quelque chose dans la commande ou alors tu ne les as pas mis dans l'ordre, regarde la commande **{prefix}aide** pour t'aider ! En cas de bug, veuillez contacter **'STEUSSO'#1111** !")
        else:
            pass
        if not pseudo:
            with open("Fichiers JSON/pseudos_lol.json", "r") as f:
                data = load(f)
                pseudo = data[str(ctx.message.author.id)]
        else:
            pseudo = pseudo
        with open("Fichiers JSON/region.json") as f:
            try:
                data = load(f)
                regionv1 = data[0][region]
                regionv2 = data[2][regionv1]
            except KeyError:
                await ctx.reply(f"**Région invalide**. Veuillez consulter la commande **{prefix}region** pour plus d'informations.")
        watcher = LolWatcher(api_key=getenv("API_KEY"))
        try:
            summoner = watcher.summoner.by_name(regionv1, pseudo)
        except HTTPError:
            await ctx.reply(f"**Joueur inexistant**. Veuillez consulter la commande **{prefix}aide** pour plus d'informations ou réessayer avec un autre pseudo.")
        name = summoner["name"]
        match_list = watcher.match_v5.matchlist_by_puuid(regionv2, summoner["puuid"])
        puuid = summoner["puuid"]
        matchs = []
        for i in range(0, len(match_list)):
            g = match_list[i]
            match_info = watcher.match_v5.by_id(regionv2, g)
            puuids = match_info["metadata"]["participants"]
            position = puuids.index(puuid)
            x = match_info["info"]["participants"][position]
            kills = x["kills"]
            deaths = x["deaths"]
            assists = x["assists"]
            gm = watcher.match_v5.by_id(regionv2, g)["info"]["gameMode"]
            matchs.append(f"**{i+1}** - {g} // {gm} - ``{kills}/{deaths}/{assists}``")
        y = "\n".join(matchs)

        e = Embed(
            title=f"Identifiants des parties de {name} :",
            description=f"Les {len(match_list)} dernières parties du joueur du plus récent au plus ancien. Région sélectionnée : **{region.upper()}**.",
            color=0xFFFFFF
        )
        e.add_field(
            name="Identifiants :",
            value=y
        )
        e.add_field(
            name="Mentions légales :",
            value="Shaco#5459 isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.",
            inline=False
        )
        e.set_footer(
            text=f"Demandé par {ctx.author}",
            icon_url=ctx.author.avatar_url
        )
        try:
            await ctx.send(embed=e)
            await ctx.message.delete()
        except HTTPException:
            await ctx.reply(f"**{name} n'a pas de parties récentes**. Veuillez consulter la commande **{prefix}aide** pour plus d'informations ou réessayer avec un autre compte.")
from discord.errors import HTTPException
from discord.ext import commands
from os import getenv
from discord import Embed
from dotenv import load_dotenv
from requests.models import HTTPError
from riotwatcher import LolWatcher
from json import load

load_dotenv(dotenv_path="config")
prefix = getenv("PREFIX")

class listlol(commands.Cog):
    def __init__(self, client):
        self.client = client
    
    @commands.command()
    async def listlol(
        self,
        ctx,
        region : str = None,
        *,
        pseudo : str = None
    ):
        if not region:
            await ctx.reply(f"Il manque quelque chose dans la commande ou alors tu ne les as pas mis dans l'ordre, regarde la commande **{prefix}aide** pour t'aider ! En cas de bug, veuillez contacter **'STEUSSO'#1111** !")
        else:
            pass
        if not pseudo:
            with open("Fichiers JSON/pseudos_lol.json", "r") as f:
                data = load(f)
                pseudo = data[str(ctx.message.author.id)]
        else:
            pseudo = pseudo
        with open("Fichiers JSON/region.json") as f:
            try:
                data = load(f)
                regionv1 = data[0][region]
                regionv2 = data[2][regionv1]
            except KeyError:
                await ctx.reply(f"**Région invalide**. Veuillez consulter la commande **{prefix}region** pour plus d'informations.")
        watcher = LolWatcher(api_key=getenv("API_KEY"))
        try:
            summoner = watcher.summoner.by_name(regionv1, pseudo)
        except HTTPError:
            await ctx.reply(f"**Joueur inexistant**. Veuillez consulter la commande **{prefix}aide** pour plus d'informations ou réessayer avec un autre pseudo.")
        name = summoner["name"]
        match_list = watcher.match_v5.matchlist_by_puuid(regionv2, summoner["puuid"])
        puuid = summoner["puuid"]
        matchs = []
        for i in range(0, len(match_list)):
            g = match_list[i]
            match_info = watcher.match_v5.by_id(regionv2, g)
            puuids = match_info["metadata"]["participants"]
            position = puuids.index(puuid)
            x = match_info["info"]["participants"][position]
            kills = x["kills"]
            deaths = x["deaths"]
            assists = x["assists"]
            gm = watcher.match_v5.by_id(regionv2, g)["info"]["gameMode"]
            matchs.append(f"**{i+1}** - {g} // {gm} - ``{kills}/{deaths}/{assists}``")
        y = "\n".join(matchs)

        e = Embed(
            title=f"Identifiants des parties de {name} :",
            description=f"Les {len(match_list)} dernières parties du joueur du plus récent au plus ancien. Région sélectionnée : **{region.upper()}**.",
            color=0xFFFFFF
        )
        e.add_field(
            name="Identifiants :",
            value=y
        )
        e.add_field(
            name="Mentions légales :",
            value="Shaco#5459 isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.",
            inline=False
        )
        e.set_footer(
            text=f"Demandé par {ctx.author}",
            icon_url=ctx.author.avatar_url
        )
        try:
            await ctx.send(embed=e)
            await ctx.message.delete()
        except HTTPException:
            await ctx.reply(f"**{name} n'a pas de parties récentes**. Veuillez consulter la commande **{prefix}aide** pour plus d'informations ou réessayer avec un autre compte.")
#5459 isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.",