summaryrefslogtreecommitdiffstats
path: root/application/controllers
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@xinu.at>2015-03-26 22:37:46 +0100
committerFlorian Pritz <bluewind@xinu.at>2015-04-01 19:12:09 +0200
commitb58d6d44bda3b229c4f0a32f5147f44b0c9ec446 (patch)
treecf3314621aab7f93240e8b157fcb9c1a5118d7dd /application/controllers
parent8dd9fbe3912d74ab37d6654e83af8dd8fdf9d320 (diff)
Refactor lexer code into dedicated class
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'application/controllers')
-rw-r--r--application/controllers/file.php16
1 files changed, 9 insertions, 7 deletions
diff --git a/application/controllers/file.php b/application/controllers/file.php
index 0dd6eaffe..5bfec4c44 100644
--- a/application/controllers/file.php
+++ b/application/controllers/file.php
@@ -130,21 +130,22 @@ class File extends MY_Controller {
foreach ($files as $key => $filedata) {
$file = $this->mfile->file($filedata['hash']);
+ $pygments = new \libraries\Pygments($file, $filedata["mimetype"], $filedata["filename"]);
// autodetect the lexer for highlighting if the URL contains a / after the ID (/ID/)
// /ID/lexer disables autodetection
$autodetect_lexer = !$lexer && substr_count(ltrim($this->uri->uri_string(), "/"), '/') >= 1;
$autodetect_lexer = $is_multipaste ? true : $autodetect_lexer;
if ($autodetect_lexer) {
- $lexer = $this->mfile->autodetect_lexer($filedata["mimetype"], $filedata["filename"]);
+ $lexer = $pygments->autodetect_lexer();
}
// resolve aliases
// this is mainly used for compatibility
- $lexer = $this->mfile->resolve_lexer_alias($lexer);
+ $lexer = $pygments->resolve_lexer_alias($lexer);
// if there is no mimetype mapping we can't highlight it
- $can_highlight = $this->mfile->can_highlight($filedata["mimetype"]);
+ $can_highlight = $pygments->can_highlight();
$filesize_too_big = filesize($file) > $this->config->item('upload_max_text_size');
@@ -187,7 +188,7 @@ class File extends MY_Controller {
}
// TODO: move lexers json to dedicated URL
- $this->data['lexers'] = $this->mfile->get_lexers();
+ $this->data['lexers'] = \libraries\Pygments::get_lexers();
// Output everything
// Don't use the output class/append_output because it does too
@@ -467,8 +468,8 @@ class File extends MY_Controller {
if (count($ids) == 1) {
$filedata = $this->mfile->get_filedata($id);
$file = $this->mfile->file($filedata['hash']);
- $type = $filedata['mimetype'];
- $lexer = $this->mfile->should_highlight($type);
+ $pygments = new \libraries\Pygments($file, $filedata["mimetype"], $filedata["filename"]);
+ $lexer = $pygments->should_highlight();
// If we detected a highlightable file redirect,
// otherwise show the URL because browsers would just show a DL dialog
@@ -535,7 +536,8 @@ class File extends MY_Controller {
if ($repaste_id) {
$filedata = $this->mfile->get_filedata($repaste_id);
- if ($filedata !== false && $this->mfile->can_highlight($filedata["mimetype"])) {
+ $pygments = new \libraries\Pygments($this->mfile->file($filedata["hash"]), $filedata["mimetype"], $filedata["filename"]);
+ if ($filedata !== false && $pygments->can_highlight()) {
$this->data["textarea_content"] = file_get_contents($this->mfile->file($filedata["hash"]));
}
}