Skip to content

Commit

Permalink
add extension for code download
Browse files Browse the repository at this point in the history
  • Loading branch information
ZsgsDesign committed Mar 21, 2019
1 parent 22c3ff0 commit 7f91b68
Show file tree
Hide file tree
Showing 2 changed files with 245 additions and 2 deletions.
245 changes: 244 additions & 1 deletion app/Models/SubmissionModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,247 @@ class SubmissionModel extends Model
'Output Limit Exceeded' => 'wemd-deep-purple-text',
"Idleness Limit Exceed" => 'wemd-deep-purple-text'
];
public $langConfig=[];

public function __construct()
{
$tempLangConfig=[[
"id" => "plaintext",
"extensions" => [".txt", ".gitignore"],
"aliases" => ["Plain Text", "text"],
"mimetypes" => ["text/plain"]
], [
"id" => "json",
"extensions" => [".json", ".bowerrc", ".jshintrc", ".jscsrc", ".eslintrc", ".babelrc"],
"aliases" => ["JSON", "json"],
"mimetypes" => ["application/json"]
], [
"id" => "bat",
"extensions" => [".bat", ".cmd"],
"aliases" => ["Batch", "bat"]
], [
"id" => "coffeescript",
"extensions" => [".coffee"],
"aliases" => ["CoffeeScript", "coffeescript", "coffee"],
"mimetypes" => ["text/x-coffeescript", "text/coffeescript"]
], [
"id" => "c",
"extensions" => [".c", ".h"],
"aliases" => ["C", "c"]
], [
"id" => "cpp",
"extensions" => [".cpp", ".cc", ".cxx", ".hpp", ".hh", ".hxx"],
"aliases" => ["C++", "Cpp", "cpp"]
], [
"id" => "csharp",
"extensions" => [".cs", ".csx", ".cake"],
"aliases" => ["C#", "csharp"]
], [
"id" => "csp",
"extensions" => [],
"aliases" => ["CSP", "csp"]
], [
"id" => "css",
"extensions" => [".css"],
"aliases" => ["CSS", "css"],
"mimetypes" => ["text/css"]
], [
"id" => "dockerfile",
"extensions" => [".dockerfile"],
"filenames" => ["Dockerfile"],
"aliases" => ["Dockerfile"]
], [
"id" => "fsharp",
"extensions" => [".fs", ".fsi", ".ml", ".mli", ".fsx", ".fsscript"],
"aliases" => ["F#", "FSharp", "fsharp"]
], [
"id" => "go",
"extensions" => [".go"],
"aliases" => ["Go"]
], [
"id" => "handlebars",
"extensions" => [".handlebars", ".hbs"],
"aliases" => ["Handlebars", "handlebars"],
"mimetypes" => ["text/x-handlebars-template"]
], [
"id" => "html",
"extensions" => [".html", ".htm", ".shtml", ".xhtml", ".mdoc", ".jsp", ".asp", ".aspx", ".jshtm"],
"aliases" => ["HTML", "htm", "html", "xhtml"],
"mimetypes" => ["text/html", "text/x-jshtm", "text/template", "text/ng-template"]
], [
"id" => "ini",
"extensions" => [".ini", ".properties", ".gitconfig"],
"filenames" => ["config", ".gitattributes", ".gitconfig", ".editorconfig"],
"aliases" => ["Ini", "ini"]
], [
"id" => "java",
"extensions" => [".java", ".jav"],
"aliases" => ["Java", "java"],
"mimetypes" => ["text/x-java-source", "text/x-java"]
], [
"id" => "javascript",
"extensions" => [".js", ".es6", ".jsx"],
"firstLine" => "^#!.*\\bnode",
"filenames" => ["jakefile"],
"aliases" => ["JavaScript", "javascript", "js"],
"mimetypes" => ["text/javascript"]
], [
"id" => "less",
"extensions" => [".less"],
"aliases" => ["Less", "less"],
"mimetypes" => ["text/x-less", "text/less"]
], [
"id" => "lua",
"extensions" => [".lua"],
"aliases" => ["Lua", "lua"]
], [
"id" => "markdown",
"extensions" => [".md", ".markdown", ".mdown", ".mkdn", ".mkd", ".mdwn", ".mdtxt", ".mdtext"],
"aliases" => ["Markdown", "markdown"]
], [
"id" => "msdax",
"extensions" => [".dax", ".msdax"],
"aliases" => ["DAX", "MSDAX"]
], [
"id" => "mysql",
"extensions" => [],
"aliases" => ["MySQL", "mysql"]
], [
"id" => "objective-c",
"extensions" => [".m"],
"aliases" => ["Objective-C"]
], [
"id" => "pgsql",
"extensions" => [],
"aliases" => ["PostgreSQL", "postgres", "pg", "postgre"]
], [
"id" => "php",
"extensions" => [".php", ".php4", ".php5", ".phtml", ".ctp"],
"aliases" => ["PHP", "php"],
"mimetypes" => ["application/x-php"]
], [
"id" => "postiats",
"extensions" => [".dats", ".sats", ".hats"],
"aliases" => ["ATS", "ATS/Postiats"]
], [
"id" => "powerquery",
"extensions" => [".pq", ".pqm"],
"aliases" => ["PQ", "M", "Power Query", "Power Query M"]
], [
"id" => "powershell",
"extensions" => [".ps1", ".psm1", ".psd1"],
"aliases" => ["PowerShell", "powershell", "ps", "ps1"]
], [
"id" => "pug",
"extensions" => [".jade", ".pug"],
"aliases" => ["Pug", "Jade", "jade"]
], [
"id" => "python",
"extensions" => [".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi"],
"aliases" => ["Python", "py"],
"firstLine" => "^#!/.*\\bpython[0-9.-]*\\b"
], [
"id" => "r",
"extensions" => [".r", ".rhistory", ".rprofile", ".rt"],
"aliases" => ["R", "r"]
], [
"id" => "razor",
"extensions" => [".cshtml"],
"aliases" => ["Razor", "razor"],
"mimetypes" => ["text/x-cshtml"]
], [
"id" => "redis",
"extensions" => [".redis"],
"aliases" => ["redis"]
], [
"id" => "redshift",
"extensions" => [],
"aliases" => ["Redshift", "redshift"]
], [
"id" => "ruby",
"extensions" => [".rb", ".rbx", ".rjs", ".gemspec", ".pp"],
"filenames" => ["rakefile"],
"aliases" => ["Ruby", "rb"]
], [
"id" => "rust",
"extensions" => [".rs", ".rlib"],
"aliases" => ["Rust", "rust"]
], [
"id" => "sb",
"extensions" => [".sb"],
"aliases" => ["Small Basic", "sb"]
], [
"id" => "scss",
"extensions" => [".scss"],
"aliases" => ["Sass", "sass", "scss"],
"mimetypes" => ["text/x-scss", "text/scss"]
], [
"id" => "sol",
"extensions" => [".sol"],
"aliases" => ["sol", "solidity", "Solidity"]
], [
"id" => "sql",
"extensions" => [".sql"],
"aliases" => ["SQL"]
], [
"id" => "st",
"extensions" => [".st", ".iecst", ".iecplc", ".lc3lib"],
"aliases" => ["StructuredText", "scl", "stl"]
], [
"id" => "swift",
"aliases" => ["Swift", "swift"],
"extensions" => [".swift"],
"mimetypes" => ["text/swift"]
], [
"id" => "typescript",
"extensions" => [".ts", ".tsx"],
"aliases" => ["TypeScript", "ts", "typescript"],
"mimetypes" => ["text/typescript"]
], [
"id" => "vb",
"extensions" => [".vb"],
"aliases" => ["Visual Basic", "vb"]
], [
"id" => "xml",
"extensions" => [".xml", ".dtd", ".ascx", ".csproj", ".config", ".wxi", ".wxl", ".wxs", ".xaml", ".svg", ".svgz"],
"firstLine" => "(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)",
"aliases" => ["XML", "xml"],
"mimetypes" => ["text/xml", "application/xml", "application/xaml+xml", "application/xml-dtd"]
], [
"id" => "yaml",
"extensions" => [".yaml", ".yml"],
"aliases" => ["YAML", "yaml", "YML", "yml"],
"mimetypes" => ["application/x-yaml"]
], [
"id" => "scheme",
"extensions" => [".scm", ".ss", ".sch", ".rkt"],
"aliases" => ["scheme", "Scheme"]
], [
"id" => "clojure",
"extensions" => [".clj", ".clojure"],
"aliases" => ["clojure", "Clojure"]
], [
"id" => "shell",
"extensions" => [".sh", ".bash"],
"aliases" => ["Shell", "sh"]
], [
"id" => "perl",
"extensions" => [".pl"],
"aliases" => ["Perl", "pl"]
], [
"id" => "azcli",
"extensions" => [".azcli"],
"aliases" => ["Azure CLI", "azcli"]
], [
"id" => "apex",
"extensions" => [".cls"],
"aliases" => ["Apex", "apex"],
"mimetypes" => ["text/x-apex-source", "text/x-apex"]
]];
foreach($tempLangConfig as $t){
$this->langConfig[$t["id"]]=$t;
}
}

public function insert($sub)
{
Expand Down Expand Up @@ -72,9 +313,11 @@ public function downloadCode($sid, $uid)
if(empty($status)){
return [];
}
$lang=DB::table("compiler")->where(['coid'=>$status["coid"]])->first()["lang"];
$curLang=isset($this->langConfig[$lang])?$this->langConfig[$lang]:$this->langConfig["plaintext"];
return [
"content"=>$status["solution"],
"name"=>$status["submission_date"].".code"
"name"=>$status["submission_date"].$curLang["extensions"][0],
];
}

Expand Down
2 changes: 1 addition & 1 deletion resources/views/js/submission/detail.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ function fetchSubmissionDetail(sid){
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-info d-none" onclick="downloadCode(${sid},'${id}')">Download Code</button>
<button type="button" class="btn btn-info d-none" onclick="downloadCode(${sid},'${id}')"><i class="MDI download"></i> Download Code</button>
<button type="button" class="btn btn-primary" data-dismiss="modal">OK</button>
</div>
</div>
Expand Down

0 comments on commit 7f91b68

Please sign in to comment.