From 296f429bacb99290f4e264cb72b7e73089aeb734 Mon Sep 17 00:00:00 2001 From: Jean TOULZA Date: Wed, 18 Jul 2018 12:31:42 +0200 Subject: [PATCH] init commit --- .htaccess | 3 +++ README.md | 14 ++++++++++- composer.json | 13 +++++++++++ redis.php | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 .htaccess create mode 100644 composer.json create mode 100644 redis.php diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..f64aaba --- /dev/null +++ b/.htaccess @@ -0,0 +1,3 @@ +RewriteEngine on +RewriteRule ^/?get/(.+)$ /dweet.io/redis.php?action=get&key=$1 +RewriteRule ^/?set/(.+)/(.+)$ /dweet.io/redis.php?action=set&key=$1&val=$2 \ No newline at end of file diff --git a/README.md b/README.md index cbb0c44..6305868 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ # dweet -dweet.io-like opensource \ No newline at end of file +dweet.io-like opensource + +Installation +------------ +1. `git clone` this repo. +2. `composer install` + +API +------------ +- `https://your-dweet.url/get/` +- `https://your-dweet.url/set//` + +Values are stored up to 24 hours. \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..c320a0d --- /dev/null +++ b/composer.json @@ -0,0 +1,13 @@ +{ + "name": "tasty/dweet", + "type": "project", + "require": { + "predis/predis": "^1.1" + }, + "authors": [ + { + "name": "HipsterCat", + "email": "tasty@hipstercat.fr" + } + ] +} diff --git a/redis.php b/redis.php new file mode 100644 index 0000000..5f3757f --- /dev/null +++ b/redis.php @@ -0,0 +1,64 @@ + $msg))); + } + function edie($msg) { + _die("error", $msg); + } + function sdie($msg) { + _die("success", $msg); + } + function ddie($msg) { + _die("data", $msg); + } + function get_redis($key) { + $client = new Predis\Client(); + ddie($client->get($key)); + } + function set_redis($key, $val) { + $client = new Predis\Client(); + $client->set($key, $val); + $client->expire($key, 86400); // 1d + sdie("ok"); + } + require 'vendor/autoload.php'; + Predis\Autoloader::register(); + + if (g("action") === "get") { + $key = g("key"); + if ($key) { + // get redis key + get_redis($key); + } else { + // no key + edie("no key given"); + } + } elseif (g("action") === "set") { + $key = g("key"); + if ($key) { + $val = g("val"); + if ($val) { + // set redis val for key + set_redis($key, $val); + } else { + $data = json_decode(file_get_contents('php://input'), true); + if ($data === NULL) { + // got key but no val + edie("no val given"); + } else { + set_redis($key, $data); + } + } + } else { + // no key + edie("no key given"); + } + } else { + edie("no action given"); + } +?> \ No newline at end of file