Important Change/Update (May 2022)
Discord changed their client to prevent sending messages
that are preceeded by a slash (/)
To run code you can use "./run"
or " /run"
until further notice
I Run Code
Source code for the "I Run Code" Discord Bot used to run code snippets inside Discord chats.
You can add me to your server here
To see a list of supported languages click here
If you have questions check by our Discord Server
engineer-man/piston is the api that actually runs the code.
How to use
Basic Syntax
/run [language] (-> [output syntax] (optional))
[args (optional)]
```[syntax]
<your code>
[stdin (optional)]
* You have to provide either `language` or `syntax`
* You can provide command line arguments by specifying them before the codeblock
* Each line corresponds to one argument
* You can provide standard input by specifying it after the codeblock
## Editing and deleting messages
* You can edit your last `/run` message if you make a mistake and the bot will edit it's initial response.
* You can delete the last output message (that was caused by you) with `/delete` or `/del` or by deleting your most recent `/run` message
## Use a source file instead of a codeblock
/run [language] (-> [output syntax] (optional))
[args1]
[args2]
[stdin1]
[stdin2]
````
* You can attach a file with source code instead of providing a codeblock (Maximum file size is 65535 bytes)
* If you don't specify the language the bot will use the file extension
* You can specify command line arguments and stdin in the command.
* command line arguments should directly follow the `/run` line
* stdin is everything that follows after the first double newline
* Please note that attachments can not be edited therefore you can not use the edit functionality if you provide a source file
# Contributing
If you want to contribute you can just submit a pull request.
### Code styling / IDE Settings
Please style your code according to these guidelines:
* maximum line length is 99 columns
* use 4 spaces for indentation
* files end with a newline
* lines should not have trailing whitespace
If you want to use an auto formatter please use `autopep8`
Example config for VSCode:
```
"[python]": {
"editor.rulers": [
99
],
"editor.tabSize": 4,
},
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"editor.trimAutoWhitespace": true,
"python.formatting.provider": "autopep8",
"python.formatting.autopep8Args": ["--max-line-length", "99"],
```
# What's new
## 2021-09-26
Added `output syntax` functionality.
* The `/run` command will now take an additional output syntax highlighting code on the first line after a `->`
For example
```
/run cs -> json
```
will highlight the resulting output in discord as json.
## 2020-11-29
Added `delete` functionality.
* The `/delete` or `/del` command will make the bot delete it's last output (that was caused by the caller)
* If you delete your most recent `/run` message the corresponding output will also be deleted.
## 2020-08-04
Made writing rust code "snippets" easier (Thanks https://github.com/UsairimIsani)
```rust
fn main() { }
```
will be automatically created if it is not present in the provided code.
## 2020-07-16
Made writing java code "snippets" easier (Thanks https://github.com/Minecraftian14)
When typing Java code the boilerplate code for `public class` will be added automatically.
````java
/run java
```
import java.util.List;
List.of(args).forEach(System.out::println);
```
````
will be interpreted as
````java
/run java
```
import java.util.List;
public class temp extends Object {
public static void main(String[] args) {
List.of(args).forEach(System.out::println);
}
}
```
````
## 2020-07-15
Added optional command line parameters
You can use them by specifying them before the codeblock (1 per line)
Example:
````
/run
parameter 1
parameter 2
```
```
````
## 2021-02-05
Added optional standard input
You can use standard input by specifying it after the codeblock
Example:
````
/run
```
```
standard input
````