RustLangES / cangrebot

Bot de la comunidad de Discord de RustLang en Español.
11 stars 9 forks source link

Compilador #34

Closed stifskere closed 3 months ago

stifskere commented 3 months ago

Descripción

Esta PR añade un compilador como feature para remplazar al bot de ;compile en el servidor, el comando funciona de una forma similar, pero en este caso con la API de paiza usando una implementación no documentada.

El funcionamiento del comando es simple, lo que se debe hacer es con el prefijo del bot, asumiendo que sea ! poner

!compile
\`\`\`rs
fn main() {
  let 🦀 = "";
  println!("{}", 🦀);
}
\`\`\`

Por defecto, luego cualquier cosa que pongas abajo servirá como STDIN.

Los lenguajes que soporta el compilador son los siguientes:

static LANGUAGES: &[&str] = &["c", "cpp", "objective-c", "java", "kotlin", "scala",
    "swift", "csharp", "go", "haskell", "erlang", "perl", "python", "python3",
    "ruby", "php", "bash", "r", "javascript", "coffeescript", "vb", "cobol", "fsharp", "d",
    "clojure", "elixir", "mysql", "rust", "scheme", "commonlisp", "nadesiko", "typescript",
    "brainfuck", "plain"
];

Y los alias para los lenguajes son:

static LANGUAGE_ALIASES: &[(&str, &str)] = &[
    ("objc", "objective-c"),
    ("kt", "kotlin"),
    ("cs", "csharp"),
    ("py", "python"),
    ("py3", "python3"),
    ("js", "javascript"),
    ("coffee", "coffeescript"),
    ("fs", "fsharp"),
    ("rs", "rust"),
    ("lisp", "commonlisp"),
    ("ts", "typescript"),
    ("bf", "brainfuck")
];

Si usas un alias, este se remplazará con el lenguaje establecido en el mapa, de otra forma, no se remplazará.