🎨 改进代码结构

This commit is contained in:
Yiwen-Chan 2021-04-17 16:20:04 +08:00
parent a8c3cf96b8
commit cdf8ff4066

View File

@ -17,32 +17,32 @@ func init() {
RunAllow := true RunAllow := true
templates := map[string]string{ templates := map[string]string{
"py2": "print 'Hello World!'", "py2": "print 'Hello World!'",
"ruby": "puts \"Hello World!\";", "ruby": "puts \"Hello World!\";",
"rb": "puts \"Hello World!\";", "rb": "puts \"Hello World!\";",
"php": "<?php\n\techo 'Hello World!';\n?>", "php": "<?php\n\techo 'Hello World!';\n?>",
"javascript": "console.log(\"Hello World!\");", "javascript": "console.log(\"Hello World!\");",
"js": "console.log(\"Hello World!\");", "js": "console.log(\"Hello World!\");",
"node.js": "console.log(\"Hello World!\");", "node.js": "console.log(\"Hello World!\");",
"scala": "object Main {\n def main(args:Array[String])\n {\n println(\"Hello World!\")\n }\n\t\t\n}", "scala": "object Main {\n def main(args:Array[String])\n {\n println(\"Hello World!\")\n }\n\t\t\n}",
"go": "package main\n\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, World!\")\n}", "go": "package main\n\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, World!\")\n}",
"c": "#include <stdio.h>\n\nint main()\n{\n printf(\"Hello, World! \n\");\n return 0;\n}", "c": "#include <stdio.h>\n\nint main()\n{\n printf(\"Hello, World! \n\");\n return 0;\n}",
"c++": "#include <iostream>\nusing namespace std;\n\nint main()\n{\n cout << \"Hello World\";\n return 0;\n}", "c++": "#include <iostream>\nusing namespace std;\n\nint main()\n{\n cout << \"Hello World\";\n return 0;\n}",
"cpp": "#include <iostream>\nusing namespace std;\n\nint main()\n{\n cout << \"Hello World\";\n return 0;\n}", "cpp": "#include <iostream>\nusing namespace std;\n\nint main()\n{\n cout << \"Hello World\";\n return 0;\n}",
"java": "public class HelloWorld {\n public static void main(String []args) {\n System.out.println(\"Hello World!\");\n }\n}", "java": "public class HelloWorld {\n public static void main(String []args) {\n System.out.println(\"Hello World!\");\n }\n}",
"rust": "fn main() {\n println!(\"Hello World!\");\n}", "rust": "fn main() {\n println!(\"Hello World!\");\n}",
"rs": "fn main() {\n println!(\"Hello World!\");\n}", "rs": "fn main() {\n println!(\"Hello World!\");\n}",
"c#": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}", "c#": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}",
"cs": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}", "cs": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}",
"csharp": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}", "csharp": "using System;\nnamespace HelloWorldApplication\n{\n class HelloWorld\n {\n static void Main(string[] args)\n {\n Console.WriteLine(\"Hello World!\");\n }\n }\n}",
"shell": "echo 'Hello World!'", "shell": "echo 'Hello World!'",
"bash": "echo 'Hello World!'", "bash": "echo 'Hello World!'",
"erlang": "% escript will ignore the first line\n\nmain(_) ->\n io:format(\"Hello World!~n\").", "erlang": "% escript will ignore the first line\n\nmain(_) ->\n io:format(\"Hello World!~n\").",
"perl": "print \"Hello, World!\n\";", "perl": "print \"Hello, World!\n\";",
"python": "print(\"Hello, World!\")", "python": "print(\"Hello, World!\")",
"py": "print(\"Hello, World!\")", "py": "print(\"Hello, World!\")",
"swift": "var myString = \"Hello, World!\"\nprint(myString)", "swift": "var myString = \"Hello, World!\"\nprint(myString)",
"lua": "var myString = \"Hello, World!\"\nprint(myString)", "lua": "var myString = \"Hello, World!\"\nprint(myString)",
"pascal": "runcode Hello;\nbegin\n writeln ('Hello, world!')\nend.", "pascal": "runcode Hello;\nbegin\n writeln ('Hello, world!')\nend.",
"kotlin": "fun main(args : Array<String>){\n println(\"Hello World!\")\n}", "kotlin": "fun main(args : Array<String>){\n println(\"Hello World!\")\n}",
"kt": "fun main(args : Array<String>){\n println(\"Hello World!\")\n}", "kt": "fun main(args : Array<String>){\n println(\"Hello World!\")\n}",
@ -121,7 +121,7 @@ func init() {
) )
}) })
zero.OnRegex(`>runcode\s(.+?)\s([\s\S]+)`).SetBlock(true).SecondPriority(). zero.OnRegex(`^>runcode\s(.+?)\s([\s\S]+)$`).SetBlock(true).SecondPriority().
Handle(func(ctx *zero.Ctx) { Handle(func(ctx *zero.Ctx) {
language := ctx.State["regex_matched"].([]string)[1] language := ctx.State["regex_matched"].([]string)[1]
language = strings.ToLower(language) language = strings.ToLower(language)
@ -144,11 +144,15 @@ func init() {
// 执行运行 // 执行运行
block := ctx.State["regex_matched"].([]string)[2] block := ctx.State["regex_matched"].([]string)[2]
block = message.UnescapeCQCodeText(block) block = message.UnescapeCQCodeText(block)
if block == "help"{
if block == "help" {
//输出模板 //输出模板
ctx.SendChain( ctx.SendChain(
message.Text("> ", ctx.Event.Sender.NickName, " ", language, "-template:\n"), message.Text("> ", ctx.Event.Sender.NickName, " ", language, "-template:\n"),
message.Text(templates[language]), message.Text(
">runcode ", language, "\n",
templates[language],
),
) )
return return
} }