summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Pritz <bluewind@server-speed.net>2011-02-15 18:18:13 +0100
committerFlorian Pritz <bluewind@server-speed.net>2011-02-15 18:18:13 +0100
commit96aad27c4fbcf83f3052a4c62a5e0fb6e280d131 (patch)
treeda8bce190e66cc87afe69daf26cbce15d3b79473
parentb7dfe097725ef4f9163ebc2c8ef092480a5d74d9 (diff)
rework cli_client support
Signed-off-by: Florian Pritz <bluewind@server-speed.net>
-rw-r--r--application/controllers/file.php71
-rw-r--r--application/models/file_mod.php25
-rw-r--r--application/views/file_plaintext/client.php12
-rw-r--r--application/views/file_plaintext/delete_form.php2
-rw-r--r--application/views/file_plaintext/deleted.php2
-rw-r--r--application/views/file_plaintext/footer.php0
-rw-r--r--application/views/file_plaintext/header.php0
-rw-r--r--application/views/file_plaintext/html_footer.php5
-rw-r--r--application/views/file_plaintext/html_header.php21
-rw-r--r--application/views/file_plaintext/non_existent.php1
-rw-r--r--application/views/file_plaintext/show_url.php2
-rw-r--r--application/views/file_plaintext/too_big.php2
-rw-r--r--application/views/file_plaintext/upload_error.php2
-rw-r--r--application/views/file_plaintext/upload_form.php4
14 files changed, 97 insertions, 52 deletions
diff --git a/application/controllers/file.php b/application/controllers/file.php
index f8a19f88d..c3d297716 100644
--- a/application/controllers/file.php
+++ b/application/controllers/file.php
@@ -24,6 +24,12 @@ class File extends CI_Controller {
} elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'libcurl') !== false) {
$this->var->cli_client = "curl";
}
+
+ if ($this->var->cli_client) {
+ $this->var->view_dir = "file_plaintext";
+ } else {
+ $this->var->view_dir = "file";
+ }
}
function index()
@@ -38,9 +44,6 @@ class File extends CI_Controller {
$this->do_paste();
} elseif ($id != "file" && $this->file_mod->id_exists($id)) {
$this->file_mod->download();
- } elseif ($this->var->cli_client) {
- $this->file_mod->check_client_version();
- die("No upload or unknown ID requested.\n");
} elseif ($id && $id != "file") {
$this->file_mod->non_existent();
} else {
@@ -56,9 +59,9 @@ class File extends CI_Controller {
$data['client_link_deb'] = base_url().'data/client/deb/';
$data['client_link_slackware'] = base_url().'data/client/slackware/';
- $this->load->view('file/header', $data);
- $this->load->view('file/client', $data);
- $this->load->view('file/footer', $data);
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/client', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
}
function upload_form()
@@ -68,9 +71,9 @@ class File extends CI_Controller {
$data['small_upload_size'] = $this->config->item('small_upload_size');
$data['max_upload_size'] = $this->config->item('upload_max_size');
- $this->load->view('file/header', $data);
- $this->load->view('file/upload_form', $data);
- $this->load->view('file/footer', $data);
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/upload_form', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
}
// Allow CLI clients to query the server for the maxium filesize so they can
@@ -91,31 +94,21 @@ class File extends CI_Controller {
$data["id"] = $id;
if ($password != "NULL") {
if ($this->file_mod->delete_id($id)) {
- if ($this->var->cli_client) {
- echo $id." deleted\n";
- die();
- } else {
- $this->load->view('file/header', $data);
- $this->load->view('file/deleted', $data);
- $this->load->view('file/footer', $data);
- return;
- }
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/deleted', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
+ return;
} else {
- if ($this->var->cli_client) {
- echo 'Couldn\'t delete '.$id."\n";
- die();
- } else {
- $data["msg"] = "Deletion failed. Is the password correct?";
- }
+ $data["msg"] = "Deletion failed. Is the password correct?";
}
- }
- if ($this->var->cli_client) {
- die();
} else {
- $this->load->view('file/header', $data);
- $this->load->view('file/delete_form', $data);
- $this->load->view('file/footer', $data);
+ if ($id && !$this->file_mod->id_exists($id)) {
+ $data["msg"] = "Unkown ID.";
+ }
}
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/delete_form', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
}
// Take the content from post instead of a file
@@ -142,9 +135,9 @@ class File extends CI_Controller {
}
// TODO: Display nice error for cli clients
if(strlen($content) > $this->config->item('upload_max_size')) {
- $this->load->view('file/header', $data);
- $this->load->view('file/too_big');
- $this->load->view('file/footer');
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/too_big');
+ $this->load->view($this->var->view_dir.'/footer');
return;
}
@@ -169,9 +162,9 @@ class File extends CI_Controller {
$extension = $this->input->post('extension');
// TODO: Display nice error for cli clients
if(!isset($_FILES['file'])) {
- $this->load->view('file/header', $data);
- $this->load->view('file/upload_error');
- $this->load->view('file/footer');
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/upload_error');
+ $this->load->view($this->var->view_dir.'/footer');
return;
}
if ($_FILES['file']['error'] !== 0) {
@@ -181,9 +174,9 @@ class File extends CI_Controller {
$filesize = filesize($_FILES['file']['tmp_name']);
// TODO: Display nice error for cli clients
if ($filesize > $this->config->item('upload_max_size')) {
- $this->load->view('file/header', $data);
- $this->load->view('file/too_big');
- $this->load->view('file/footer');
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/too_big');
+ $this->load->view($this->var->view_dir.'/footer');
return;
}
diff --git a/application/models/file_mod.php b/application/models/file_mod.php
index f781e1676..dfb203226 100644
--- a/application/models/file_mod.php
+++ b/application/models/file_mod.php
@@ -126,15 +126,14 @@ class File_mod extends CI_Model {
}
if ($this->var->cli_client) {
- echo $data['url']."\n";
+ $redirect = false;
+ }
+ if ($redirect) {
+ redirect($data['url']);
} else {
- if ($redirect) {
- redirect($data['url']);
- } else {
- $this->load->view('file/header', $data);
- $this->load->view('file/show_url', $data);
- $this->load->view('file/footer', $data);
- }
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/show_url', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
}
}
@@ -142,9 +141,9 @@ class File_mod extends CI_Model {
{
$data["title"] = "Not Found";
$this->output->set_status_header(404);
- $this->load->view('file/header', $data);
- $this->load->view('file/non_existent', $data);
- $this->load->view('file/footer', $data);
+ $this->load->view($this->var->view_dir.'/header', $data);
+ $this->load->view($this->var->view_dir.'/non_existent', $data);
+ $this->load->view($this->var->view_dir.'/footer', $data);
}
function check_client_version()
@@ -239,7 +238,7 @@ class File_mod extends CI_Model {
} else {
$data['timeout'] = "never";
}
- echo $this->load->view('file/html_header', $data, true);
+ echo $this->load->view($this->var->view_dir.'/html_header', $data, true);
$this->load->library("MemcacheLibrary");
if (! $cached = $this->memcachelibrary->get($filedata['hash'].'_'.$mode)) {
ob_start();
@@ -260,7 +259,7 @@ class File_mod extends CI_Model {
$this->memcachelibrary->set($filedata['hash'].'_'.$mode, $cached, 100);
}
echo $cached;
- echo $this->load->view('file/html_footer', $data, true);
+ echo $this->load->view($this->var->view_dir.'/html_footer', $data, true);
} else {
if ($mode == 'plain') {
header("Content-Type: text/plain\n");
diff --git a/application/views/file_plaintext/client.php b/application/views/file_plaintext/client.php
new file mode 100644
index 000000000..188f23379
--- /dev/null
+++ b/application/views/file_plaintext/client.php
@@ -0,0 +1,12 @@
+Shell:
+ curl -n -F "file=@/home/user/foo" <?php echo site_url(); ?> (binary safe)
+ cat file | curl -n -F "file=@-;filename=stdin" <?php echo site_url(); ?> (binary safe)
+
+Client:
+Development (git): http://git.server-speed.net/users/flo/fb
+Latest release: <?php echo $client_link; ?>
+GPG sigs, older versions: <?php echo $client_link_dir; ?>
+
+If you want to use authentication (needed for deleting) add the following to your ~/.netrc:
+ machine paste.xinu.at password my_secret_password
+
diff --git a/application/views/file_plaintext/delete_form.php b/application/views/file_plaintext/delete_form.php
new file mode 100644
index 000000000..ba736078c
--- /dev/null
+++ b/application/views/file_plaintext/delete_form.php
@@ -0,0 +1,2 @@
+<?php if(isset($msg)) echo $msg; ?>
+
diff --git a/application/views/file_plaintext/deleted.php b/application/views/file_plaintext/deleted.php
new file mode 100644
index 000000000..7c8a2a44e
--- /dev/null
+++ b/application/views/file_plaintext/deleted.php
@@ -0,0 +1,2 @@
+<?php echo $id; ?> has been deleted.
+
diff --git a/application/views/file_plaintext/footer.php b/application/views/file_plaintext/footer.php
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/application/views/file_plaintext/footer.php
diff --git a/application/views/file_plaintext/header.php b/application/views/file_plaintext/header.php
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/application/views/file_plaintext/header.php
diff --git a/application/views/file_plaintext/html_footer.php b/application/views/file_plaintext/html_footer.php
new file mode 100644
index 000000000..ddc460a39
--- /dev/null
+++ b/application/views/file_plaintext/html_footer.php
@@ -0,0 +1,5 @@
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
diff --git a/application/views/file_plaintext/html_header.php b/application/views/file_plaintext/html_header.php
new file mode 100644
index 000000000..52ffab007
--- /dev/null
+++ b/application/views/file_plaintext/html_header.php
@@ -0,0 +1,21 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title><?php echo $title; ?></title>
+ <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>data/paste.css" />
+ <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>data/paste-<?php echo $current_highlight; ?>.css" />
+ </head>
+ <body>
+ <div class="top_bar">
+ <a class="raw_link no" href="<?php echo $new_link; ?>">New</a> |
+ <a class="raw_link no" href="<?php echo $raw_link; ?>">Raw</a> |
+ <a class="raw_link no" href="<?php echo $plain_link; ?>">Plain</a> |
+ Currently: <?php echo $current_highlight; ?> |
+ Timeout: <a class="raw_link no" href="<?php echo $delete_link; ?>" title="delete"><?php echo $timeout; ?></a>
+ <div style="float:right;">
+ <a class="raw_link no" href="<?php echo $auto_link; ?>">Code</a> |
+ <a class="raw_link no" href="<?php echo $rmd_link; ?>">Render Markdown</a>
+ </div>
+ </div>
+ <table class="content">
+ <tr>
diff --git a/application/views/file_plaintext/non_existent.php b/application/views/file_plaintext/non_existent.php
new file mode 100644
index 000000000..7da92e954
--- /dev/null
+++ b/application/views/file_plaintext/non_existent.php
@@ -0,0 +1 @@
+I'm sorry, but the requested file doesn't exist.
diff --git a/application/views/file_plaintext/show_url.php b/application/views/file_plaintext/show_url.php
new file mode 100644
index 000000000..bb94d7422
--- /dev/null
+++ b/application/views/file_plaintext/show_url.php
@@ -0,0 +1,2 @@
+<?php echo $url; ?>
+
diff --git a/application/views/file_plaintext/too_big.php b/application/views/file_plaintext/too_big.php
new file mode 100644
index 000000000..d27a0295c
--- /dev/null
+++ b/application/views/file_plaintext/too_big.php
@@ -0,0 +1,2 @@
+Sorry, the file you uploaded is too big.
+
diff --git a/application/views/file_plaintext/upload_error.php b/application/views/file_plaintext/upload_error.php
new file mode 100644
index 000000000..8386b871b
--- /dev/null
+++ b/application/views/file_plaintext/upload_error.php
@@ -0,0 +1,2 @@
+An error occured while uploading. Most likely your file is too big.
+
diff --git a/application/views/file_plaintext/upload_form.php b/application/views/file_plaintext/upload_form.php
new file mode 100644
index 000000000..12d506253
--- /dev/null
+++ b/application/views/file_plaintext/upload_form.php
@@ -0,0 +1,4 @@
+Uploads/pastes are deleted after 5 days<?php if($small_upload_size > 0): ?> unless they are smaller than <?php echo format_bytes($small_upload_size); ?><?php endif; ?>.
+Maximum upload size is <?php echo format_bytes($max_upload_size); ?>.
+
+<?php include "client.php"; ?>