X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/9a9c9a8bf83241c193c5bef6361d41893e72dfd3..a9ab012f12e417222a082bbb80515c781601e7a2:/script.php?ds=sidebyside
diff --git a/script.php b/script.php
index f00b1df..791e950 100644
--- a/script.php
+++ b/script.php
@@ -17,11 +17,8 @@
* along with this program. If not, see .
*/
-/*
- * This file permits to easyly script file sending, receiving, deleting, ...
- * If you don't want this feature, you can simply delete this file from your
- * web directory.
- */
+/* This file offer a kind of API for jirafeau. */
+
define('JIRAFEAU_ROOT', dirname(__FILE__) . '/');
require(JIRAFEAU_ROOT . 'lib/settings.php');
@@ -50,7 +47,7 @@ if ($_SERVER['REQUEST_METHOD'] == "GET" && count($_GET) == 0) {
Scripting interface
This interface permits to script your uploads and downloads.
See source code of this interface to get available calls :)
- You may download a preconfigured Bash Script to easily send to and get files from the API via command line.
+ You may download a preconfigured Bash Script to easily send to and get files from the API via command line.
' # Or set JIRAFEAU_URL.
time='' # Or set JIRAFEAU_TIME.
one_time='' # Or set JIRAFEAU_ONE_TIME.
curl='' # Or set JIRAFEAU_CURL_PATH.
+upload_password='' # Or set JIRAFEAU_UPLOAD_PASSWD
# Config end
if [ -n "$JIRAFEAU_PROXY" ]; then
@@ -246,6 +249,10 @@ if [ -n "$JIRAFEAU_ONE_TIME" ]; then
one_time='1'
fi
+if [ -n "$UPLOAD_PASSWD" ]; then
+ upload_password="$JIRAFEAU_UPLOAD_PASSWORD"
+fi
+
if [ -z "$curl" ]; then
curl="$JIRAFEAU_CURL_PATH"
fi
@@ -280,6 +287,7 @@ if [ -z "$2" ]; then
echo " JIRAFEAU_TIME : expiration time, eg. »minute«, »hour«, »day«, »week«, »month«, »quarter«, »year« or »none«"
echo " JIRAFEAU_ONE_TIME : self-destroy after first download, eg. »1« to enable or »« (empty) to disable"
echo " JIRAFEAU_CURL : alternative path to curl binary"
+ echo " JIRAFEAU_UPLOAD_PASSWD : upload password"
exit 0
fi
@@ -293,6 +301,10 @@ if [ -n "$one_time" ]; then
options="$options -F one_time_download=1"
fi
+f [ -n "$upload_password" ]; then
+ options="$options -F upload_password=$upload_password"
+fi
+
password=''
if [ -n "$3" ]; then
password="$3"
@@ -333,17 +345,35 @@ if [ "$1" == "send" ]; then
fi
cnt=$(( cnt + 1 ))
done)
+ key_code=$(cnt=0; echo "$res" | while read l; do
+ if [[ "$cnt" == "2" ]]; then
+ echo "$l"
+ fi
+ cnt=$(( cnt + 1 ))
+ done)
echo
echo "Download page:"
- echo " ${url}${downloadpage}?h=$code"
+ if [[ $key_code ]]; then
+ echo " ${url}${downloadpage}?h=$code&k=$key_code"
+ else
+ echo " ${url}${downloadpage}?h=$code"
+ fi
echo "Direct download:"
- echo " ${url}${downloadpage}?h=$code&d=1"
+ if [[ $key_code ]]; then
+ echo " ${url}${downloadpage}?h=$code&k=$key_code&d=1"
+ else
+ echo " ${url}${downloadpage}?h=$code&d=1"
+ fi
echo "Delete link:"
echo " ${url}${downloadpage}?h=$code&d=$del_code"
echo
echo "Download via API:"
- echo " ${0} get ${url}${apipage}?h=$code [PASSWORD}"
+ if [[ $key_code ]]; then
+ echo " ${0} get ${url}${apipage}?h=$code&k=$key_code [PASSWORD}"
+ else
+ echo " ${0} get ${url}${apipage}?h=$code [PASSWORD}"
+ fi
echo "Delete via API:"
echo " ${0} delete ${url}${downloadpage}?h=$code&d=$del_code"
@@ -363,72 +393,6 @@ fi
exit;
}
}
-/* Create alias. */
-elseif (isset($_GET['alias_create'])) {
- if (isset($_POST['upload_password'])){
- if (!jirafeau_challenge_upload($cfg, get_ip_address($cfg), $_POST['upload_password'])) {
- echo 'Error 14: Invalid password';
- exit;
- }
- } else {
- if (!jirafeau_challenge_upload($cfg, get_ip_address($cfg), null)) {
- echo 'Error 13: No password nor allowed IP';
- exit;
- }
- }
-
- if (!isset($_POST['alias']) ||
- !isset($_POST['destination']) ||
- !isset($_POST['password'])) {
- echo 'Error 15';
- exit;
- }
-
- echo jirafeau_alias_create($_POST['alias'],
- $_POST['destination'],
- $_POST['password'],
- $ip);
-}
-/* Get alias. */
-elseif (isset($_GET['alias_get'])) {
- if (!isset($_POST['alias'])) {
- echo 'Error 16';
- exit;
- }
-
- echo jirafeau_alias_get($_POST['alias']);
-}
-/* Update alias. */
-elseif (isset($_GET['alias_update'])) {
- if (!isset($_POST['alias']) ||
- !isset($_POST['destination']) ||
- !isset($_POST['password'])) {
- echo 'Error 17';
- exit;
- }
-
- $new_password = '';
- if (isset($_POST['new_password'])) {
- $new_password = $_POST['new_password'];
- }
-
- echo jirafeau_alias_update($_POST['alias'],
- $_POST['destination'],
- $_POST['password'],
- $new_password,
- get_ip_address($cfg));
-}
-/* Delete alias. */
-elseif (isset($_GET['alias_delete'])) {
- if (!isset($_POST['alias']) ||
- !isset($_POST['password'])) {
- echo 'Error 18';
- exit;
- }
-
- echo jirafeau_alias_delete($_POST['alias'],
- $_POST['password']);
-}
/* Initialize an asynchronous upload. */
elseif (isset($_GET['init_async'])) {
if (isset($_POST['upload_password'])){
@@ -458,6 +422,12 @@ elseif (isset($_GET['init_async'])) {
$key = $_POST['key'];
}
+ // Check if one time download is enabled
+ if (!$cfg['one_time_download'] && isset($_POST['one_time_download'])) {
+ echo 'Error 26: One time download is disabled.';
+ exit;
+ }
+
$time = time();
if (!isset($_POST['time']) || !$cfg['availabilities'][$_POST['time']]) {
echo 'Error 22';
@@ -516,7 +486,7 @@ elseif (isset($_GET['end_async'])) {
|| !isset($_POST['code'])) {
echo 'Error 24';
} else {
- echo jirafeau_async_end($_POST['ref'], $_POST['code'], $cfg['enable_crypt'], $cfg['link_name_length']);
+ echo jirafeau_async_end($_POST['ref'], $_POST['code'], $cfg['enable_crypt'], $cfg['link_name_length'], $cfg['file_hash']);
}
} else {
echo 'Error 25';