aboutsummaryrefslogtreecommitdiff
path: root/cogs
diff options
context:
space:
mode:
Diffstat (limited to 'cogs')
-rw-r--r--cogs/compiler.py78
-rw-r--r--[-rwxr-xr-x]cogs/general.py0
-rw-r--r--[-rwxr-xr-x]cogs/help.py0
-rw-r--r--[-rwxr-xr-x]cogs/logs.py0
-rw-r--r--[-rwxr-xr-x]cogs/player.py0
-rw-r--r--[-rwxr-xr-x]cogs/src.py0
-rw-r--r--[-rwxr-xr-x]cogs/trans.py0
-rw-r--r--[-rwxr-xr-x]cogs/utils.py0
8 files changed, 78 insertions, 0 deletions
diff --git a/cogs/compiler.py b/cogs/compiler.py
new file mode 100644
index 0000000..3046349
--- /dev/null
+++ b/cogs/compiler.py
@@ -0,0 +1,78 @@
+from discord.ext import commands
+import discord
+import requests
+import json
+
+class Compiler(commands.Cog):
+ def __init__(self, bot):
+ self.bot = bot
+
+ @commands.command()
+ async def compile(self, ctx, language=None, *, code=None):
+ """
+ listRequest = requests.get("https://wandbox.org/api/list.json")
+ compilerList = json.loads(listRequest.text)
+
+ for i in compilerList:
+ if i["language"] == language:
+ compiler = i["name"]
+ print(compiler)
+ """
+ compilers = {
+ "python":"cpython-3.8.0",
+ "c":"gcc-head-c",
+ "javascript":"nodejs-head",
+ "typescript":"typescript-3.5.1",
+ "c#":"dotnetcore-head",
+ "bash": "bash",
+ "vim-script": "vim-head",
+ "cpp": "gcc-head",
+ "swift": "swift-5.0.1",
+ "php": "php-head",
+ "coffeescript": "coffeescript-head",
+ "go": "go-head",
+ "java": "openjdk-head",
+ "ruby": "ruby-head",
+ "rust": "rust-head",
+ "sql": "sqlite-head",
+ "perl": "perl-head",
+ "lua": "lua-5.3.4"
+ }
+ if not language:
+ await ctx.send(f"```json\n{json.dumps(compilers, indent=4)}```")
+ if not code:
+ await ctx.send("No code found")
+ return
+ try:
+ compiler = compilers[language]
+ except KeyError:
+ await ctx.send("Language not found")
+ return
+ body = {
+ "compiler": compiler,
+ "code": code,
+ "save": True
+ }
+ head = {
+ "Content-Type":"application/json"
+ }
+ async with ctx.typing():
+ r = requests.post("https://wandbox.org/api/compile.json", headers=head, data=json.dumps(body))
+ try:
+ response = json.loads(r.text)
+ #await ctx.send(f"```json\n{json.dumps(response, indent=4)}```")
+ print(f"```json\n{json.dumps(response, indent=4)}```")
+ except json.decoder.JSONDecodeError:
+ await ctx.send(f"```json\n{r.text}```")
+
+ try:
+ embed=discord.Embed(title="Compiled code")
+ embed.add_field(name="Output", value=f'```{response["program_message"]}```', inline=False)
+ embed.add_field(name="Exit code", value=response["status"], inline=True)
+ embed.add_field(name="Link", value=f"[Permalink]({response['url']})", inline=True)
+ await ctx.send(embed=embed)
+ except KeyError:
+ await ctx.send(f"```json\n{json.dumps(response, indent=4)}```")
+
+def setup(bot):
+ bot.add_cog(Compiler(bot)) \ No newline at end of file
diff --git a/cogs/general.py b/cogs/general.py
index 0847cd4..0847cd4 100755..100644
--- a/cogs/general.py
+++ b/cogs/general.py
diff --git a/cogs/help.py b/cogs/help.py
index 91c9c45..91c9c45 100755..100644
--- a/cogs/help.py
+++ b/cogs/help.py
diff --git a/cogs/logs.py b/cogs/logs.py
index c1b3a49..c1b3a49 100755..100644
--- a/cogs/logs.py
+++ b/cogs/logs.py
diff --git a/cogs/player.py b/cogs/player.py
index 5c046a7..5c046a7 100755..100644
--- a/cogs/player.py
+++ b/cogs/player.py
diff --git a/cogs/src.py b/cogs/src.py
index f0619d4..f0619d4 100755..100644
--- a/cogs/src.py
+++ b/cogs/src.py
diff --git a/cogs/trans.py b/cogs/trans.py
index 2c6ed71..2c6ed71 100755..100644
--- a/cogs/trans.py
+++ b/cogs/trans.py
diff --git a/cogs/utils.py b/cogs/utils.py
index 68567f0..68567f0 100755..100644
--- a/cogs/utils.py
+++ b/cogs/utils.py