Ejemplo n.º 1
0
    def clear(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        try:
            ctx.args[0] = int(ctx.args[0]) + 1
        except:
            return handler.error_handler(ctx, "arguments", "clear (ilość wiadomości 1-99) [osoba]")

        if not len(ctx.args) <= 1 and int(ctx.args[0]) > 100:
            return handler.error_handler(ctx, "arguments", "clear (ilość wiadomości 1-99) [osoba]")

        messages = list(map(lambda x: x["id"], discord.get_messages(ctx.data["channel_id"], ctx.args[0])))

        if len(ctx.data["mentions"]) == 1:
            x = []
            ctx.args[0] = int(ctx.args[0]) - 1
            for message in messages:
                message = discord.get_message(ctx.data["channel_id"], message)
                if "author" in message and message["author"]["id"] == ctx.data["mentions"][0]["id"]:
                    x.append(message["id"])

            messages = x
            message = f"Usunięto `{ctx.args[0]}` wiadomości użytkownika `{ctx.data['mentions'][0]['username']}`"
        else:
            message = f"Usunięto `{ctx.args[0]}` wiadomości"

        bulk_delete = discord.bulk_delete_messages(ctx.data["channel_id"], {
            "messages": messages
        })

        if not bulk_delete.status_code == 204:
            return handler.error_handler(ctx, 8)

        ctx.send(message)
Ejemplo n.º 2
0
    def decode(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = " ".join(ctx.args)
        if not ctx.args:
            return handler.error_handler(
                ctx, "arguments",
                "encode (tekst wyświetlany) | (tekst ukryty)")

        text = ""
        letter = ""
        chars = {value: key for key, value in arrays._characters.items()}

        for char in ctx.args:
            if char in chars or char == "\u200f":
                if char == "\u200f":
                    text += chars[letter]
                    letter = ""
                else:
                    letter += char

        if not text:
            return ctx.send("W tej wiadomości nie ma ukrytego tekstu")

        ctx.send("`" + text + "`")
Ejemplo n.º 3
0
    def encode(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = " ".join(ctx.args).lower().split(" | ")
        if not len(ctx.args) == 2:
            return handler.error_handler(
                ctx, "arguments",
                "encode (tekst wyświetlany) | (tekst ukryty)")

        text = ctx.args[0][0]

        other = {
            "ą": "a",
            "ś": "s",
            "ó": "o",
            "ł": "l",
            "ę": "e",
            "ń": "n",
            "ź": "z",
            "ż": "z",
            "ć": "c"
        }

        for char in ctx.args[1]:
            if char in other:
                ctx.args[1] = ctx.args[1].replace(char, other[char])

        for char in ctx.args[1]:
            if char in arrays._characters:
                text += arrays._characters[char] + "\u200f"

        text += ctx.args[0][1:]

        ctx.send("`" + text + "`")
Ejemplo n.º 4
0
    def todo(ctx):
        if not ctx.args:
            return ctx.send(
                embed={
                    "title": "Komendy todo:",
                    "description":
                    "> `todo add (tekst)`, `todo view [osoba]`, `todo remove (id)`, `todo clear`",
                    "color": 0xe74c3c
                })

        user = ctx.data["author"]["id"]
        users = functions.read_json("users")

        if not user in users:
            users[user] = {}

        if not "todo" in users[user]:
            users[user]["todo"] = []

        if ctx.args[0] == "add":
            ctx.args = " ".join(ctx.args[1:])
            if len(ctx.args) > 100:
                return handler.error_handler(ctx, "toolongtext", 100)

            users[user]["todo"].append(ctx.args)

            ctx.send("Dodano do todo")

        elif ctx.args[0] == "view":
            if len(ctx.data["mentions"]) == 1:
                user = ctx.data["mentions"][0]["id"]

            user = discord.get_user(user)

            ctx.send(
                embed={
                    "title":
                    f"Todo użytkownika {user['username']}:",
                    "description":
                    "\n".join([
                        f"{users[user['id']]['todo'].index(i)}. {i}"
                        for i in users[user["id"]]["todo"]
                    ]),
                    "color":
                    0xe74c3c
                })

        elif ctx.args[0] == "remove":
            if not len(ctx.args) == 2:
                return handler.error_handler(ctx, "arguments",
                                             "todo remove (id)")

            del users[user]["todo"][int(ctx.args[1])]
            ctx.send("Usunięto z todo")

        elif ctx.args[0] == "clear":
            del users[user]["todo"]
            ctx.send("Wyczyszczono todo")

        functions.write_json("users", users)
Ejemplo n.º 5
0
    def _ascii(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not ctx.args:
            return handler.error_handler(ctx, "arguments", "ascii (tekst)")

        ctx.send("```" + pyfiglet.Figlet().renderText(" ".join(ctx.args)) +
                 "```")
Ejemplo n.º 6
0
    def rnumber(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.args) == 2:
            return handler.error_handler(ctx, "arguments", "rnumber (od) (do)")

        ctx.args = list(map(lambda x: int(x), ctx.args))

        ctx.send(random.randint(ctx.args[0], ctx.args[1]))
Ejemplo n.º 7
0
    def meme(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        channel = discord.get_channel(ctx.data["channel_id"])
        if not channel["nsfw"]:
            return handler.error_handler(ctx, "nsfw")

        url = ctx.requests.get("https://cenzurabot.pl/api/memes/jbzd").json()
        ctx.send(url["meme"])
Ejemplo n.º 8
0
    def pm(ctx):
        permission = "ADMINISTRATOR"
        if not (permissions.has_permission(ctx, ctx.data["author"]["id"], permission) or (ctx.data["author"]["id"] == ctx.guilds[ctx.data["guild_id"]]["owner_id"])):
            return handler.error_handler(ctx, "nopermission", permission)

        if not (ctx.args and ctx.data["mention_roles"]):
            return ctx.send(embed = {
                "title": "Komendy pm:",
                "description": "> `pm add (rola) (komenda)`, `pm remove (rola) (komenda)`, `pm delete (rola)`",
                "color": 0xe74c3c
            })

        blacklist = ["help", "botstats", "profile", "todo", "eval", "reload"]

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if ctx.args[0] == "add":
            if not ctx.args[2] in ctx.commands:
                return handler.error_handler(ctx, "notfound")
            elif ctx.args[2] in blacklist:
                return ctx.send("Tej komendy nie można dodać/odebrać!")

            if not ctx.data["mention_roles"][0] in guilds[guild]["permissions"]:
                guilds[guild]["permissions"][ctx.data["mention_roles"][0]] = {}

            guilds[guild]["permissions"][ctx.data["mention_roles"][0]][ctx.args[2]] = True

            ctx.send("Dodano permisje")

        elif ctx.args[0] == "remove":
            if not ctx.args[2] in ctx.commands:
                return handler.error_handler(ctx, "notfound")
            elif ctx.args[2] in blacklist:
                return ctx.send("Tej komendy nie można dodać/odebrać!")

            if not ctx.data["mention_roles"][0] in guilds[guild]["permissions"]:
                guilds[guild]["permissions"][ctx.data["mention_roles"][0]] = {}

            guilds[guild]["permissions"][ctx.data["mention_roles"][0]][ctx.args[2]] = False

            ctx.send("Usunięto permisje")
        
        elif ctx.args[0] == "delete":
            del guilds[guild]["permissions"][ctx.data["mention_roles"][0]]
            ctx.send("Usunięto role")

        else:
            return ctx.send(embed = {
                "title": "Komendy pm:",
                "description": "> `pm add (rola) (komenda)`, `pm remove (rola) (komenda)`, `pm delete (rola)`",
                "color": 0xe74c3c
            })

        functions.write_json("guilds", guilds)
Ejemplo n.º 9
0
    def google(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = " ".join(ctx.args)
        if not ctx.args:
            return handler.error_handler(ctx, "arguments",
                                         "google (zapytanie)")

        ctx.send(
            f"https://google.com/search?q={urllib.parse.quote_plus(ctx.args)}")
Ejemplo n.º 10
0
    def rchoice(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = " ".join(ctx.args)
        ctx.args = ctx.args.split(" | ")

        if not len(ctx.args) >= 2:
            return handler.error_handler(ctx, "arguments",
                                         "rchoice (a) | (b) | [c] itd.")

        ctx.send(random.choice(ctx.args))
Ejemplo n.º 11
0
    def hug(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.data["mentions"]) == 1:
            return handler.error_handler(ctx, "arguments", "hug (osoba)")

        image_url = ctx.requests.get(
            "https://nekos.life/api/hug").json()["url"]
        image = ctx.requests.get(image_url).content

        ctx.send(
            f"**{ctx.data['author']['username']}** przytulił **{ctx.data['mentions'][0]['username']}**!",
            files=[("hug.gif", image)])
Ejemplo n.º 12
0
    def removewarnsevent(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.args) == 1 or ctx.args[0] not in ["kick", "ban", "mute"]:
            return handler.error_handler(ctx, "arguments", "warnsevent (kick/ban/mute)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        del guilds[guild]["warnsevent"][ctx.args[0]]

        ctx.send("Usunięto event")

        functions.write_json("guilds", guilds)
Ejemplo n.º 13
0
    def gay(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not ctx.data["mentions"]:
            user = ctx.data["author"]["id"], ctx.data["author"]["avatar"]
        else:
            user = ctx.data["mentions"][0]["id"], ctx.data["mentions"][0][
                "avatar"]

        content = ctx.requests.get(
            f"https://cdn.discordapp.com/avatars/{user[0]}/{user[1]}.png?size=2048"
        ).content
        open("images/image.png", "wb").write(content)

        image = Image.open("images/image.png").convert("RGBA")
        lgbt = Image.open("images/lgbt.png").convert("RGBA")

        image = ImageOps.fit(image, (512, 512))
        lgbt = ImageOps.fit(lgbt, (512, 512))

        mask = Image.new("L", (512, 512), 128)

        avatar = Image.composite(image, lgbt, mask)
        avatar.save("images/gay.png")

        ctx.send(files=[("gay.png", open("images/gay.png", "rb"))])
Ejemplo n.º 14
0
    def _eval(ctx):
        if not ctx.data["author"]["id"] in config.owners:
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = " ".join(ctx.args)

        code = "\n".join(f"    {x}" for x in ctx.args.splitlines())
        body = f"def elo():\n{code}"

        parsed = ast.parse(body)
        body = parsed.body[0].body

        insert_returns(body)

        env2 = {"ctx": ctx, "bot": bot, "discord": discord}

        env.update(env2)

        exec(compile(parsed, filename="siema", mode="exec"), env)

        try:
            result = eval("elo()", env)
        except Exception:
            result = traceback.format_exc().splitlines()[-1]

        response = ctx.send(result)

        if not response.status_code == 200:
            ctx.send(f"```{response.json()}```")
Ejemplo n.º 15
0
    def panda(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        image_url = ctx.requests.get(
            "https://some-random-api.ml/img/panda").json()["link"]
        image = ctx.requests.get(image_url).content

        ctx.send(files=[("panda.png", image)])
Ejemplo n.º 16
0
    def warns(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.data["mentions"]) == 1:
            return handler.error_handler(ctx, "arguments", "warns (osoba)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "warns" in guilds[guild] or not ctx.data["mentions"][0]["id"] in guilds[guild]["warns"]:
            return handler.error_handler(ctx, "notfound")

        ctx.send(embed = {
            "title": f"Warny użytkownika {ctx.data['mentions'][0]['username']}:",
            "description": "\n".join([f"{guilds[guild]['warns'][ctx.data['mentions'][0]['id']].index(i)}. {i}" for i in guilds[guild]["warns"][ctx.data["mentions"][0]["id"]]]),
            "color": 0xe74c3c
        })
Ejemplo n.º 17
0
    def removewarn(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.args) == 2:
            return handler.error_handler(ctx, "arguments", "removewarn (osoba) (id)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "warns" in guilds[guild] or not ctx.data["mentions"][0]["id"] in guilds[guild]["warns"]:
            return handler.error_handler(ctx, "notfound")

        del guilds[guild]["warns"][ctx.data["mentions"][0]["id"]][int(ctx.args[1])]

        ctx.send("Usunięto ostrzeżenie")

        functions.write_json("guilds", guilds)
Ejemplo n.º 18
0
    def clearwarns(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.args) == 1:
            return handler.error_handler(ctx, "arguments", "clearwarns (osoba)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "warns" in guilds[guild] or not ctx.data["mentions"][0]["id"] in guilds[guild]["warns"]:
            return handler.error_handler(ctx, "notfound")

        del guilds[guild]["warns"][ctx.data["mentions"][0]["id"]]

        ctx.send("Wyczyszczono ostrzeżenia")

        functions.write_json("guilds", guilds)
Ejemplo n.º 19
0
    def warnsevent(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.args) == 2 or ctx.args[0] not in ["kick", "ban", "mute"]:
            return handler.error_handler(ctx, "arguments", "warnsevent (kick/ban/mute) (ilość warnów)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "warnsevent" in guilds[guild]:
            guilds[guild]["warnsevent"] = {}

        guilds[guild]["warnsevent"][ctx.args[0]] = str(ctx.args[1])

        ctx.send("Dodano event")

        functions.write_json("guilds", guilds)
Ejemplo n.º 20
0
    def help(ctx):
        if len(ctx.args) == 1:
            if not ctx.args[0] in ctx.commands:
                return handler.error_handler(ctx, "commandnotfound")
                
            return ctx.send(embed = {
                "title": "POMOC:",
                "description": f"Opis: `{ctx.commands[ctx.args[0]]['description']}`\nUżycie: `{ctx.commands[ctx.args[0]]['usage']}`",
                "color": 0xe74c3c,
                "thumbnail": {
                    "url": f"http://cdn.discordapp.com/avatars/{ctx.bot['id']}/{ctx.bot['avatar']}.png?size=2048"
                },
                "footer": {
                    "text": "() - obowiązkowe, [] - opcjonalne"
                }
            })

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if guild in guilds and "prefix" in guilds[guild]:
            prefix = guilds[guild]["prefix"]
        else:
            prefix = config.prefix
        
        blacklist = ["help", "dev"]

        categories = {}
        for command in ctx.commands:
            if not ctx.commands[command]["category"] in categories:
                categories[ctx.commands[command]["category"]] = []

        for command in ctx.commands:
            categories[ctx.commands[command]["category"]].append("`" + command + "`")

        fields = []
        for category in categories:
            if not category in blacklist:
                fields.append({
                    "name": category + ":",
                    "value": "> " + ", ".join(categories[category]),
                    "inline": False
                })

        fields.append({
                        "name": "\u200b",
                        "value": f"\[ [Dodaj bota](https://discord.com/api/oauth2/authorize?client_id={ctx.bot['id']}&permissions=268561494&scope=bot) \] \[ [Support](https://discord.gg/tDQURnVtGC) \] \[ [Kod bota](https://github.com/CZUBIX/cenzura) \] \[ [Strona](https://cenzurabot.pl) \]",
                        "inline": False
                    })

        ctx.send(embed = {
            "title": "POMOC:",
            "description": f"Prefix na tym serwerze to: `{prefix}`\nWpisz `pomoc [komenda]` by sprawdzić użycie danej komendy",
            "color": 0xe74c3c,
            "fields": fields
        })
Ejemplo n.º 21
0
    def unmute(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)
        
        if not len(ctx.args) == 1:
            return handler.error_handler(ctx, "arguments", "unmute (osoba)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "mute_role" in guilds[guild]:
            return handler.error_handler(ctx, "notfound")

        status = discord.remove_guild_member_role(guild, ctx.data["mentions"][0]["id"], guilds[guild]["mute_role"])

        if not status.status_code == 204:
            return handler.error_handler(ctx, 6)

        ctx.send("Odmutowano użytkownika")
Ejemplo n.º 22
0
    def servericon(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        guild = discord.get_guild(ctx.data["guild_id"])
        image = ctx.requests.get(
            f"https://cdn.discordapp.com/icons/{ctx.data['guild_id']}/{guild['icon']}.png?size=2048"
        ).content

        ctx.send(files=[("servericon.png", image)])
Ejemplo n.º 23
0
    def kick(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not len(ctx.data["mentions"]) == 1:
            return handler.error_handler(ctx, "arguments", "kick (osoba) [powód]")

        if len(ctx.args) >= 2:
            ctx.args = " ".join(ctx.args[1:])
            reason = ctx.args
        else:
            reason = "nie podano powodu"

        status = discord.remove_guild_member(ctx.data["guild_id"], ctx.data["mentions"][0]["id"])
        
        if not status.status_code == 204:
            return handler.error_handler(ctx, 6)

        ctx.send(f"Wyrzucono użytkownika `{ctx.data['mentions'][0]['username']}` z powodu `{reason}`")
Ejemplo n.º 24
0
    def howgay(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not ctx.data["mentions"]:
            user = ctx.data["author"]["username"]
        else:
            user = ctx.data["mentions"][0]["username"]

        ctx.send(f"{user} jest gejem w {random.randint(0, 100)}%!")
Ejemplo n.º 25
0
    def serverinfo(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        guild = ctx.guilds[ctx.data["guild_id"]]

        ctx.send(embed = {
            "title": f"Informacje o {guild['name']}:",
            "color": 0xe74c3c,
            "fields": [
                {
                    "name": "Właściciel:",
                    "value": f"<@{guild['owner_id']}> ({guild['owner_id']})",
                    "inline": False
                },
                {
                    "name": "ID:",
                    "value": ctx.data["guild_id"],
                    "inline": False
                },
                {
                    "name": "Ilość osób:",
                    "value": guild["member_count"],
                    "inline": False
                },
                {
                    "name": "Ilość kanałów:",
                    "value": len(guild["channels"]),
                    "inline": False
                },
                {
                    "name": "Ilość ról:",
                    "value": len(guild["roles"]),
                    "inline": False
                },
                {
                    "name": "Ilość emotek:",
                    "value": len(guild["emojis"]),
                    "inline": False
                },
                {
                    "name": "Został stworzony:",
                    "value": str(datetime.fromtimestamp(((int(ctx.data["guild_id"]) >> 22) + 1420070400000) / 1000)).split(".")[0],
                    "inline": False
                },
                {
                    "name": "Boosty:",
                    "value": f"{guild['premium_subscription_count']} boosty / {guild['premium_tier']} poziom",
                    "inline": False
                }
            ],
            "thumbnail": {
                "url": f"https://cdn.discordapp.com/icons/{ctx.data['guild_id']}/{guild['icon']}.png?size=2048"
            }
        })
Ejemplo n.º 26
0
    def ship(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if len(ctx.data["mentions"]) == 1:
            me = ctx.data["author"]["id"], ctx.data["author"][
                "avatar"], ctx.data["author"]["username"]
            me_avatar = f"https://cdn.discordapp.com/avatars/{me[0]}/{me[1]}.png?size=2048"
            m = ctx.data["mentions"][0]["id"], ctx.data["mentions"][0][
                "avatar"], ctx.data["mentions"][0]["username"]
            m_avatar = f"https://cdn.discordapp.com/avatars/{m[0]}/{m[1]}.png?size=2048"
        elif len(ctx.data["mentions"]) == 2:
            me = ctx.data["mentions"][1]["id"], ctx.data["mentions"][1][
                "avatar"], ctx.data["mentions"][1]["username"]
            me_avatar = f"https://cdn.discordapp.com/avatars/{me[0]}/{me[1]}.png?size=2048"
            m = ctx.data["mentions"][0]["id"], ctx.data["mentions"][0][
                "avatar"], ctx.data["mentions"][0]["username"]
            m_avatar = f"https://cdn.discordapp.com/avatars/{m[0]}/{m[1]}.png?size=2048"
        else:
            return handler.error_handler(ctx, "arguments",
                                         "ship (osoba) [osoba]")

        open("images/member1.png",
             "wb").write(ctx.requests.get(m_avatar).content)
        open("images/member2.png",
             "wb").write(ctx.requests.get(me_avatar).content)

        para = Image.open("images/para.png").convert("RGBA")
        member1 = Image.open("images/member1.png").convert("RGBA")
        member2 = Image.open("images/member2.png").convert("RGBA")

        member1 = ImageOps.fit(member1, (300, 300))
        member2 = ImageOps.fit(member2, (300, 300))

        para.paste(member1, (360, 250), member1)
        para.paste(member2, (890, 180), member2)

        para.save("images/ship.png")

        ctx.send(
            f"**{m[2]}** + **{me[2]}** = **{m[2][:round(len(m[2]) / 2)].lower()}{me[2][round(len(me[2]) / 2):].lower()}**\nIch miłość jest równa **{random.randint(0, 100)}%**!",
            files=[("ship.png", open("images/ship.png", "rb"))])
Ejemplo n.º 27
0
    def reload(ctx):
        if not ctx.data["author"]["id"] in config.owners:
            return handler.error_handler(ctx, "nopermission", ctx.command)

        try:
            bot.register_module(ctx.args[0], bot, discord)
            result = f"Przeładowano `{ctx.args[0]}`"
        except:
            result = "```" + traceback.format_exc().splitlines()[-1] + "```"

        ctx.send(result)
Ejemplo n.º 28
0
    def mute(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)
        
        if not len(ctx.args) == 1:
            return handler.error_handler(ctx, "arguments", "mute (osoba)")

        guild = ctx.data["guild_id"]
        guilds = functions.read_json("guilds")

        if not "mute_role" in guilds[guild]:
            role = discord.create_guild_role(guild, {"name": "muted"}).json()

            guilds[guild]["mute_role"] = role["id"]
            channels = discord.get_guild_channels(guild)

            for channel in channels:
                if channel["type"] == 0:
                    a = discord.edit_channel_permissions(channel["id"], role["id"], {
                        "deny": permissions.permissions["SEND_MESSAGES"],
                        "allow": permissions.permissions["ADD_REACTIONS"],
                        "type": 0
                    })

                elif channel["type"] == 2:
                    discord.edit_channel_permissions(channel["id"], role["id"], {
                        "deny": permissions.permissions["SPEAK"],
                        "allow": permissions.permissions["VIEW_CHANNEL"],
                        "type": 0
                    })

            functions.write_json("guilds", guilds)

        status = discord.add_guild_member_role(guild, ctx.data["mentions"][0]["id"], guilds[guild]["mute_role"])

        if not status.status_code == 204:
            return handler.error_handler(ctx, 6)

        ctx.send("Zmutowano użytkownika")
Ejemplo n.º 29
0
    def garfield(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        ctx.args = (" ".join(ctx.args)).lower()
        if not ctx.args:
            return handler.error_handler(ctx, "arguments", "garfield (tekst)")
        elif len(ctx.args) > 100:
            return handler.error_handler(ctx, "toolongtext", 100)

        other = {
            "ą": "a",
            "ś": "s",
            "ó": "o",
            "ł": "l",
            "ę": "e",
            "ń": "n",
            "ź": "z",
            "ż": "z",
            "ć": "c"
        }

        text = ""

        for letter in ctx.args:
            if ("garfield_" + letter in arrays.emotes) or (letter in other):
                if letter in other:
                    letter = other[letter]
                letter = "garfield_" + letter
                text += f"<:{letter}:{arrays.emotes[letter]}>"
            elif letter in ["`", "\\"]:
                text += ""
            elif letter == " ":
                text += f"<:space:{arrays.emotes[' ']}>"
            else:
                text += letter

        ctx.send(text)
Ejemplo n.º 30
0
    def avatar(ctx):
        if not functions.has_permission(ctx):
            return handler.error_handler(ctx, "nopermission", ctx.command)

        if not ctx.data["mentions"]:
            user = ctx.data["author"]["id"], ctx.data["author"]["avatar"]
        else:
            user = ctx.data["mentions"][0]["id"], ctx.data["mentions"][0][
                "avatar"]

        image = ctx.requests.get(
            f"https://cdn.discordapp.com/avatars/{user[0]}/{user[1]}.png?size=2048"
        ).content

        ctx.send(files=[("avatar.png", image)])