mirror of
https://github.com/moparisthebest/wallabag
synced 2024-11-27 11:22:17 -05:00
mv pochetool pochetools
This commit is contained in:
parent
5ffe5cf541
commit
161395d709
@ -58,7 +58,7 @@ $store = new $storage_type();
|
|||||||
# installation
|
# installation
|
||||||
if(!$store->isInstalled())
|
if(!$store->isInstalled())
|
||||||
{
|
{
|
||||||
pocheTool::logm('poche still not installed');
|
pocheTools::logm('poche still not installed');
|
||||||
echo $twig->render('install.twig', array(
|
echo $twig->render('install.twig', array(
|
||||||
'token' => Session::getToken(),
|
'token' => Session::getToken(),
|
||||||
));
|
));
|
||||||
@ -68,7 +68,7 @@ if(!$store->isInstalled())
|
|||||||
# let's rock, install poche baby !
|
# let's rock, install poche baby !
|
||||||
$store->install($_POST['login'], encode_string($_POST['password'] . $_POST['login']));
|
$store->install($_POST['login'], encode_string($_POST['password'] . $_POST['login']));
|
||||||
Session::logout();
|
Session::logout();
|
||||||
pocheTool::redirect();
|
pocheTools::redirect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exit();
|
exit();
|
||||||
|
@ -93,8 +93,8 @@ function get_external_file($url)
|
|||||||
function fetch_url_content($url)
|
function fetch_url_content($url)
|
||||||
{
|
{
|
||||||
$url = base64_decode($url);
|
$url = base64_decode($url);
|
||||||
if (pocheTool::isUrl($url)) {
|
if (pocheTools::isUrl($url)) {
|
||||||
$url = pocheTool::cleanURL($url);
|
$url = pocheTools::cleanURL($url);
|
||||||
$html = Encoding::toUTF8(get_external_file($url));
|
$html = Encoding::toUTF8(get_external_file($url));
|
||||||
|
|
||||||
# if get_external_file if not able to retrieve HTTPS content, try the same URL with HTTP protocol
|
# if get_external_file if not able to retrieve HTTPS content, try the same URL with HTTP protocol
|
||||||
@ -128,7 +128,7 @@ function fetch_url_content($url)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#$msg->add('e', _('error during url preparation : the link is not valid'));
|
#$msg->add('e', _('error during url preparation : the link is not valid'));
|
||||||
pocheTool::logm($url . ' is not a valid url');
|
pocheTools::logm($url . ' is not a valid url');
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -141,16 +141,16 @@ function display_view($view, $id = 0, $full_head = 'yes')
|
|||||||
switch ($view)
|
switch ($view)
|
||||||
{
|
{
|
||||||
case 'install':
|
case 'install':
|
||||||
pocheTool::logm('install mode');
|
pocheTools::logm('install mode');
|
||||||
break;
|
break;
|
||||||
case 'import';
|
case 'import';
|
||||||
pocheTool::logm('import mode');
|
pocheTools::logm('import mode');
|
||||||
break;
|
break;
|
||||||
case 'export':
|
case 'export':
|
||||||
$entries = $store->retrieveAll();
|
$entries = $store->retrieveAll();
|
||||||
$tpl->assign('export', pocheTool::renderJson($entries));
|
$tpl->assign('export', pocheTools::renderJson($entries));
|
||||||
$tpl->draw('export');
|
$tpl->draw('export');
|
||||||
pocheTool::logm('export view');
|
pocheTools::logm('export view');
|
||||||
break;
|
break;
|
||||||
case 'config':
|
case 'config':
|
||||||
$tpl->assign('load_all_js', 0);
|
$tpl->assign('load_all_js', 0);
|
||||||
@ -159,12 +159,12 @@ function display_view($view, $id = 0, $full_head = 'yes')
|
|||||||
$tpl->draw('config');
|
$tpl->draw('config');
|
||||||
$tpl->draw('js');
|
$tpl->draw('js');
|
||||||
$tpl->draw('footer');
|
$tpl->draw('footer');
|
||||||
pocheTool::logm('config view');
|
pocheTools::logm('config view');
|
||||||
break;
|
break;
|
||||||
case 'view':
|
case 'view':
|
||||||
$entry = $store->retrieveOneById($id);
|
$entry = $store->retrieveOneById($id);
|
||||||
if ($entry != NULL) {
|
if ($entry != NULL) {
|
||||||
pocheTool::logm('view link #' . $id);
|
pocheTools::logm('view link #' . $id);
|
||||||
$tpl->assign('id', $entry['id']);
|
$tpl->assign('id', $entry['id']);
|
||||||
$tpl->assign('url', $entry['url']);
|
$tpl->assign('url', $entry['url']);
|
||||||
$tpl->assign('title', $entry['title']);
|
$tpl->assign('title', $entry['title']);
|
||||||
@ -181,7 +181,7 @@ function display_view($view, $id = 0, $full_head = 'yes')
|
|||||||
$tpl->draw('view');
|
$tpl->draw('view');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
pocheTool::logm('error in view call : entry is NULL');
|
pocheTools::logm('error in view call : entry is NULL');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default: # home view
|
default: # home view
|
||||||
@ -215,7 +215,7 @@ function action_to_do($action, $url, $id = 0)
|
|||||||
case 'add':
|
case 'add':
|
||||||
if($parametres_url = fetch_url_content($url)) {
|
if($parametres_url = fetch_url_content($url)) {
|
||||||
if ($store->add($url, $parametres_url['title'], $parametres_url['content'])) {
|
if ($store->add($url, $parametres_url['title'], $parametres_url['content'])) {
|
||||||
pocheTool::logm('add link ' . $url);
|
pocheTools::logm('add link ' . $url);
|
||||||
$last_id = $store->getLastId();
|
$last_id = $store->getLastId();
|
||||||
if (DOWNLOAD_PICTURES) {
|
if (DOWNLOAD_PICTURES) {
|
||||||
$content = filtre_picture($parametres_url['content'], $url, $last_id);
|
$content = filtre_picture($parametres_url['content'], $url, $last_id);
|
||||||
@ -224,12 +224,12 @@ function action_to_do($action, $url, $id = 0)
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#$msg->add('e', _('error during insertion : the link wasn\'t added'));
|
#$msg->add('e', _('error during insertion : the link wasn\'t added'));
|
||||||
pocheTool::logm('error during insertion : the link wasn\'t added');
|
pocheTools::logm('error during insertion : the link wasn\'t added');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#$msg->add('e', _('error during url preparation : the link wasn\'t added'));
|
#$msg->add('e', _('error during url preparation : the link wasn\'t added'));
|
||||||
pocheTool::logm('error during content fetch');
|
pocheTools::logm('error during content fetch');
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
@ -238,20 +238,20 @@ function action_to_do($action, $url, $id = 0)
|
|||||||
remove_directory(ABS_PATH . $id);
|
remove_directory(ABS_PATH . $id);
|
||||||
}
|
}
|
||||||
#$msg->add('s', _('the link has been deleted successfully'));
|
#$msg->add('s', _('the link has been deleted successfully'));
|
||||||
pocheTool::logm('delete link #' . $id);
|
pocheTools::logm('delete link #' . $id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#$msg->add('e', _('the link wasn\'t deleted'));
|
#$msg->add('e', _('the link wasn\'t deleted'));
|
||||||
pocheTool::logm('error : can\'t delete link #' . $id);
|
pocheTools::logm('error : can\'t delete link #' . $id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'toggle_fav' :
|
case 'toggle_fav' :
|
||||||
$store->favoriteById($id);
|
$store->favoriteById($id);
|
||||||
pocheTool::logm('mark as favorite link #' . $id);
|
pocheTools::logm('mark as favorite link #' . $id);
|
||||||
break;
|
break;
|
||||||
case 'toggle_archive' :
|
case 'toggle_archive' :
|
||||||
$store->archiveById($id);
|
$store->archiveById($id);
|
||||||
pocheTool::logm('archive link #' . $id);
|
pocheTools::logm('archive link #' . $id);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
126
inc/poche/pocheTool.class.php
Normal file
126
inc/poche/pocheTool.class.php
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* poche, a read it later open source system
|
||||||
|
*
|
||||||
|
* @category poche
|
||||||
|
* @author Nicolas Lœuillet <support@inthepoche.com>
|
||||||
|
* @copyright 2013
|
||||||
|
* @license http://www.wtfpl.net/ see COPYING file
|
||||||
|
*/
|
||||||
|
|
||||||
|
class pocheTools
|
||||||
|
{
|
||||||
|
public static function initPhp()
|
||||||
|
{
|
||||||
|
define('START_TIME', microtime(true));
|
||||||
|
|
||||||
|
if (phpversion() < 5) {
|
||||||
|
die(_('Oops, it seems you don\'t have PHP 5.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
|
||||||
|
function stripslashesDeep($value) {
|
||||||
|
return is_array($value)
|
||||||
|
? array_map('stripslashesDeep', $value)
|
||||||
|
: stripslashes($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (get_magic_quotes_gpc()) {
|
||||||
|
$_POST = array_map('stripslashesDeep', $_POST);
|
||||||
|
$_GET = array_map('stripslashesDeep', $_GET);
|
||||||
|
$_COOKIE = array_map('stripslashesDeep', $_COOKIE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
register_shutdown_function('ob_end_flush');
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function isUrl($url)
|
||||||
|
{
|
||||||
|
$pattern = '|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
|
||||||
|
|
||||||
|
return preg_match($pattern, $url);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getUrl()
|
||||||
|
{
|
||||||
|
$https = (!empty($_SERVER['HTTPS'])
|
||||||
|
&& (strtolower($_SERVER['HTTPS']) == 'on'))
|
||||||
|
|| (isset($_SERVER["SERVER_PORT"])
|
||||||
|
&& $_SERVER["SERVER_PORT"] == '443'); // HTTPS detection.
|
||||||
|
$serverport = (!isset($_SERVER["SERVER_PORT"])
|
||||||
|
|| $_SERVER["SERVER_PORT"] == '80'
|
||||||
|
|| ($https && $_SERVER["SERVER_PORT"] == '443')
|
||||||
|
? '' : ':' . $_SERVER["SERVER_PORT"]);
|
||||||
|
|
||||||
|
$scriptname = str_replace('/index.php', '/', $_SERVER["SCRIPT_NAME"]);
|
||||||
|
|
||||||
|
if (!isset($_SERVER["SERVER_NAME"])) {
|
||||||
|
return $scriptname;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'http' . ($https ? 's' : '') . '://'
|
||||||
|
. $_SERVER["SERVER_NAME"] . $serverport . $scriptname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function redirect($url = '')
|
||||||
|
{
|
||||||
|
if ($url === '') {
|
||||||
|
$url = (empty($_SERVER['HTTP_REFERER'])?'?':$_SERVER['HTTP_REFERER']);
|
||||||
|
if (isset($_POST['returnurl'])) {
|
||||||
|
$url = $_POST['returnurl'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# prevent loop
|
||||||
|
if (empty($url) || parse_url($url, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) {
|
||||||
|
$url = pocheTool::getUrl();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (substr($url, 0, 1) !== '?') {
|
||||||
|
$ref = pocheTool::getUrl();
|
||||||
|
if (substr($url, 0, strlen($ref)) !== $ref) {
|
||||||
|
$url = $ref;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
header('Location: '.$url);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function cleanURL($url)
|
||||||
|
{
|
||||||
|
|
||||||
|
$url = html_entity_decode(trim($url));
|
||||||
|
|
||||||
|
$stuff = strpos($url,'&utm_source=');
|
||||||
|
if ($stuff !== FALSE)
|
||||||
|
$url = substr($url, 0, $stuff);
|
||||||
|
$stuff = strpos($url,'?utm_source=');
|
||||||
|
if ($stuff !== FALSE)
|
||||||
|
$url = substr($url, 0, $stuff);
|
||||||
|
$stuff = strpos($url,'#xtor=RSS-');
|
||||||
|
if ($stuff !== FALSE)
|
||||||
|
$url = substr($url, 0, $stuff);
|
||||||
|
|
||||||
|
return $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function renderJson($data)
|
||||||
|
{
|
||||||
|
header('Cache-Control: no-cache, must-revalidate');
|
||||||
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
||||||
|
header('Content-type: application/json; charset=UTF-8');
|
||||||
|
|
||||||
|
echo json_encode($data);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function logm($message)
|
||||||
|
{
|
||||||
|
if (DEBUG_POCHE) {
|
||||||
|
$t = strval(date('Y/m/d_H:i:s')) . ' - ' . $_SERVER["REMOTE_ADDR"] . ' - ' . strval($message) . "\n";
|
||||||
|
file_put_contents('./log.txt', $t, FILE_APPEND);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -75,11 +75,11 @@ class pocheTools
|
|||||||
|
|
||||||
# prevent loop
|
# prevent loop
|
||||||
if (empty($url) || parse_url($url, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) {
|
if (empty($url) || parse_url($url, PHP_URL_QUERY) === $_SERVER['QUERY_STRING']) {
|
||||||
$url = pocheTool::getUrl();
|
$url = pocheTools::getUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (substr($url, 0, 1) !== '?') {
|
if (substr($url, 0, 1) !== '?') {
|
||||||
$ref = pocheTool::getUrl();
|
$ref = pocheTools::getUrl();
|
||||||
if (substr($url, 0, strlen($ref)) !== $ref) {
|
if (substr($url, 0, strlen($ref)) !== $ref) {
|
||||||
$url = $ref;
|
$url = $ref;
|
||||||
}
|
}
|
||||||
|
18
index.php
18
index.php
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
include dirname(__FILE__).'/inc/config.php';
|
include dirname(__FILE__).'/inc/config.php';
|
||||||
|
|
||||||
pocheTool::initPhp();
|
pocheTools::initPhp();
|
||||||
|
|
||||||
# XSRF protection with token
|
# XSRF protection with token
|
||||||
if (!empty($_POST)) {
|
if (!empty($_POST)) {
|
||||||
@ -26,7 +26,7 @@ if (isset($_GET['login'])) {
|
|||||||
// Login
|
// Login
|
||||||
if (!empty($_POST['login']) && !empty($_POST['password'])) {
|
if (!empty($_POST['login']) && !empty($_POST['password'])) {
|
||||||
if (Session::login($_SESSION['login'], $_SESSION['pass'], $_POST['login'], encode_string($_POST['password'] . $_POST['login']))) {
|
if (Session::login($_SESSION['login'], $_SESSION['pass'], $_POST['login'], encode_string($_POST['password'] . $_POST['login']))) {
|
||||||
pocheTool::logm('login successful');
|
pocheTools::logm('login successful');
|
||||||
if (!empty($_POST['longlastingsession'])) {
|
if (!empty($_POST['longlastingsession'])) {
|
||||||
$_SESSION['longlastingsession'] = 31536000;
|
$_SESSION['longlastingsession'] = 31536000;
|
||||||
$_SESSION['expires_on'] = time() + $_SESSION['longlastingsession'];
|
$_SESSION['expires_on'] = time() + $_SESSION['longlastingsession'];
|
||||||
@ -36,23 +36,23 @@ if (isset($_GET['login'])) {
|
|||||||
}
|
}
|
||||||
session_regenerate_id(true);
|
session_regenerate_id(true);
|
||||||
|
|
||||||
pocheTool::redirect($referer);
|
pocheTools::redirect($referer);
|
||||||
}
|
}
|
||||||
pocheTool::logm('login failed');
|
pocheTools::logm('login failed');
|
||||||
die(_("Login failed !"));
|
die(_("Login failed !"));
|
||||||
} else {
|
} else {
|
||||||
pocheTool::logm('login failed');
|
pocheTools::logm('login failed');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (isset($_GET['logout'])) {
|
elseif (isset($_GET['logout'])) {
|
||||||
pocheTool::logm('logout');
|
pocheTools::logm('logout');
|
||||||
Session::logout();
|
Session::logout();
|
||||||
pocheTool::redirect();
|
pocheTools::redirect();
|
||||||
}
|
}
|
||||||
elseif (isset($_GET['config'])) {
|
elseif (isset($_GET['config'])) {
|
||||||
if (isset($_POST['password']) && isset($_POST['password_repeat'])) {
|
if (isset($_POST['password']) && isset($_POST['password_repeat'])) {
|
||||||
if ($_POST['password'] == $_POST['password_repeat'] && $_POST['password'] != "") {
|
if ($_POST['password'] == $_POST['password_repeat'] && $_POST['password'] != "") {
|
||||||
pocheTool::logm('password updated');
|
pocheTools::logm('password updated');
|
||||||
if (!MODE_DEMO) {
|
if (!MODE_DEMO) {
|
||||||
$store->updatePassword(encode_string($_POST['password'] . $_SESSION['login']));
|
$store->updatePassword(encode_string($_POST['password'] . $_SESSION['login']));
|
||||||
#your password has been updated
|
#your password has been updated
|
||||||
@ -78,7 +78,7 @@ $tpl_vars = array(
|
|||||||
'isLogged' => Session::isLogged(),
|
'isLogged' => Session::isLogged(),
|
||||||
'referer' => $referer,
|
'referer' => $referer,
|
||||||
'view' => $view,
|
'view' => $view,
|
||||||
'poche_url' => pocheTool::getUrl(),
|
'poche_url' => pocheTools::getUrl(),
|
||||||
'demo' => MODE_DEMO,
|
'demo' => MODE_DEMO,
|
||||||
'title' => _('poche, a read it later open source system'),
|
'title' => _('poche, a read it later open source system'),
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user