mirror of
https://github.com/moparisthebest/wallabag
synced 2024-11-27 11:22:17 -05:00
fixes for 1.0-beta
This commit is contained in:
parent
580d60b941
commit
b916bcfccc
@ -37,19 +37,34 @@ class Database {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function isInstalled() {
|
public function isInstalled() {
|
||||||
$sql = "SELECT username FROM users WHERE id=?";
|
$sql = "SELECT username FROM users";
|
||||||
$query = $this->executeQuery($sql, array('1'));
|
$query = $this->executeQuery($sql, array());
|
||||||
$hasAdmin = $query->fetchAll();
|
$hasAdmin = count($query->fetchAll());
|
||||||
|
|
||||||
if (count($hasAdmin) == 0)
|
if ($hasAdmin == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function install($login, $password) {
|
public function install($login, $password) {
|
||||||
$sql = 'INSERT INTO users ( username, password ) VALUES (?, ?)';
|
$sql = 'INSERT INTO users ( username, password, name, email) VALUES (?, ?, ?, ?)';
|
||||||
$params = array($login, $password);
|
$params = array($login, $password, $login, ' ');
|
||||||
|
$query = $this->executeQuery($sql, $params);
|
||||||
|
|
||||||
|
$sequence = '';
|
||||||
|
if (STORAGE == 'postgres') {
|
||||||
|
$sequence = 'users_id_seq';
|
||||||
|
}
|
||||||
|
|
||||||
|
$id_user = intval($this->getLastId($sequence));
|
||||||
|
|
||||||
|
$sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)';
|
||||||
|
$params = array($id_user, 'pager', '10');
|
||||||
|
$query = $this->executeQuery($sql, $params);
|
||||||
|
|
||||||
|
$sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)';
|
||||||
|
$params = array($id_user, 'language', 'en_EN.UTF8');
|
||||||
$query = $this->executeQuery($sql, $params);
|
$query = $this->executeQuery($sql, $params);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -195,7 +210,7 @@ class Database {
|
|||||||
$query = $this->executeQuery($sql_action, $params_action);
|
$query = $this->executeQuery($sql_action, $params_action);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getLastId() {
|
public function getLastId($column = '') {
|
||||||
return $this->getHandle()->lastInsertId();
|
return $this->getHandle()->lastInsertId($column);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ class Poche
|
|||||||
Tools::initPhp();
|
Tools::initPhp();
|
||||||
Session::init();
|
Session::init();
|
||||||
|
|
||||||
if (isset($_SESSION['poche_user'])) {
|
if (isset($_SESSION['poche_user']) && $_SESSION['poche_user'] != array()) {
|
||||||
$this->user = $_SESSION['poche_user'];
|
$this->user = $_SESSION['poche_user'];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -102,7 +102,7 @@ class Poche
|
|||||||
/**
|
/**
|
||||||
* Call action (mark as fav, archive, delete, etc.)
|
* Call action (mark as fav, archive, delete, etc.)
|
||||||
*/
|
*/
|
||||||
public function action($action, Url $url, $id = 0)
|
public function action($action, Url $url, $id = 0, $import = FALSE)
|
||||||
{
|
{
|
||||||
switch ($action)
|
switch ($action)
|
||||||
{
|
{
|
||||||
@ -110,22 +110,34 @@ class Poche
|
|||||||
if($parametres_url = $url->fetchContent()) {
|
if($parametres_url = $url->fetchContent()) {
|
||||||
if ($this->store->add($url->getUrl(), $parametres_url['title'], $parametres_url['content'], $this->user->getId())) {
|
if ($this->store->add($url->getUrl(), $parametres_url['title'], $parametres_url['content'], $this->user->getId())) {
|
||||||
Tools::logm('add link ' . $url->getUrl());
|
Tools::logm('add link ' . $url->getUrl());
|
||||||
$last_id = $this->store->getLastId();
|
$sequence = '';
|
||||||
|
if (STORAGE == 'postgres') {
|
||||||
|
$sequence = 'entries_id_seq';
|
||||||
|
}
|
||||||
|
$last_id = $this->store->getLastId($sequence);
|
||||||
if (DOWNLOAD_PICTURES) {
|
if (DOWNLOAD_PICTURES) {
|
||||||
$content = filtre_picture($parametres_url['content'], $url->getUrl(), $last_id);
|
$content = filtre_picture($parametres_url['content'], $url->getUrl(), $last_id);
|
||||||
}
|
}
|
||||||
|
if (!$import) {
|
||||||
$this->messages->add('s', _('the link has been added successfully'));
|
$this->messages->add('s', _('the link has been added successfully'));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
|
if (!$import) {
|
||||||
$this->messages->add('e', _('error during insertion : the link wasn\'t added'));
|
$this->messages->add('e', _('error during insertion : the link wasn\'t added'));
|
||||||
Tools::logm('error during insertion : the link wasn\'t added');
|
Tools::logm('error during insertion : the link wasn\'t added ' . $url->getUrl());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
if (!$import) {
|
||||||
$this->messages->add('e', _('error during fetching content : the link wasn\'t added'));
|
$this->messages->add('e', _('error during fetching content : the link wasn\'t added'));
|
||||||
Tools::logm('error during content fetch');
|
Tools::logm('error during content fetch ' . $url->getUrl());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (!$import) {
|
||||||
Tools::redirect();
|
Tools::redirect();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'delete':
|
case 'delete':
|
||||||
$msg = 'delete link #' . $id;
|
$msg = 'delete link #' . $id;
|
||||||
@ -145,12 +157,16 @@ class Poche
|
|||||||
case 'toggle_fav' :
|
case 'toggle_fav' :
|
||||||
$this->store->favoriteById($id, $this->user->getId());
|
$this->store->favoriteById($id, $this->user->getId());
|
||||||
Tools::logm('mark as favorite link #' . $id);
|
Tools::logm('mark as favorite link #' . $id);
|
||||||
|
if (!$import) {
|
||||||
Tools::redirect();
|
Tools::redirect();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'toggle_archive' :
|
case 'toggle_archive' :
|
||||||
$this->store->archiveById($id, $this->user->getId());
|
$this->store->archiveById($id, $this->user->getId());
|
||||||
Tools::logm('archive link #' . $id);
|
Tools::logm('archive link #' . $id);
|
||||||
|
if (!$import) {
|
||||||
Tools::redirect();
|
Tools::redirect();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -267,10 +283,10 @@ class Poche
|
|||||||
|
|
||||||
public function logout()
|
public function logout()
|
||||||
{
|
{
|
||||||
$this->messages->add('s', _('see you soon!'));
|
|
||||||
Tools::logm('logout');
|
|
||||||
$this->user = array();
|
$this->user = array();
|
||||||
Session::logout();
|
Session::logout();
|
||||||
|
$this->messages->add('s', _('see you soon!'));
|
||||||
|
Tools::logm('logout');
|
||||||
Tools::redirect();
|
Tools::redirect();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,6 +295,7 @@ class Poche
|
|||||||
# TODO gestion des articles favs
|
# TODO gestion des articles favs
|
||||||
$html = new simple_html_dom();
|
$html = new simple_html_dom();
|
||||||
$html->load_file('./instapaper-export.html');
|
$html->load_file('./instapaper-export.html');
|
||||||
|
Tools::logm('starting import from instapaper');
|
||||||
|
|
||||||
$read = 0;
|
$read = 0;
|
||||||
$errors = array();
|
$errors = array();
|
||||||
@ -288,10 +305,14 @@ class Poche
|
|||||||
{
|
{
|
||||||
$a = $li->find('a');
|
$a = $li->find('a');
|
||||||
$url = new Url(base64_encode($a[0]->href));
|
$url = new Url(base64_encode($a[0]->href));
|
||||||
$this->action('add', $url);
|
$this->action('add', $url, 0, TRUE);
|
||||||
if ($read == '1') {
|
if ($read == '1') {
|
||||||
$last_id = $this->store->getLastId();
|
$sequence = '';
|
||||||
$this->action('toggle_archive', $url, $last_id);
|
if (STORAGE == 'postgres') {
|
||||||
|
$sequence = 'entries_id_seq';
|
||||||
|
}
|
||||||
|
$last_id = $this->store->getLastId($sequence);
|
||||||
|
$this->action('toggle_archive', $url, $last_id, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +329,7 @@ class Poche
|
|||||||
# TODO gestion des articles favs
|
# TODO gestion des articles favs
|
||||||
$html = new simple_html_dom();
|
$html = new simple_html_dom();
|
||||||
$html->load_file('./ril_export.html');
|
$html->load_file('./ril_export.html');
|
||||||
|
Tools::logm('starting import from pocket');
|
||||||
|
|
||||||
$read = 0;
|
$read = 0;
|
||||||
$errors = array();
|
$errors = array();
|
||||||
@ -317,10 +339,14 @@ class Poche
|
|||||||
{
|
{
|
||||||
$a = $li->find('a');
|
$a = $li->find('a');
|
||||||
$url = new Url(base64_encode($a[0]->href));
|
$url = new Url(base64_encode($a[0]->href));
|
||||||
$this->action('add', $url);
|
$this->action('add', $url, 0, TRUE);
|
||||||
if ($read == '1') {
|
if ($read == '1') {
|
||||||
$last_id = $this->store->getLastId();
|
$sequence = '';
|
||||||
$this->action('toggle_archive', $url, $last_id);
|
if (STORAGE == 'postgres') {
|
||||||
|
$sequence = 'entries_id_seq';
|
||||||
|
}
|
||||||
|
$last_id = $this->store->getLastId($sequence);
|
||||||
|
$this->action('toggle_archive', $url, $last_id, TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,6 +363,7 @@ class Poche
|
|||||||
# TODO gestion des articles lus / favs
|
# TODO gestion des articles lus / favs
|
||||||
$str_data = file_get_contents("./readability");
|
$str_data = file_get_contents("./readability");
|
||||||
$data = json_decode($str_data,true);
|
$data = json_decode($str_data,true);
|
||||||
|
Tools::logm('starting import from Readability');
|
||||||
|
|
||||||
foreach ($data as $key => $value) {
|
foreach ($data as $key => $value) {
|
||||||
$url = '';
|
$url = '';
|
||||||
@ -344,18 +371,22 @@ class Poche
|
|||||||
if ($attr == 'article__url') {
|
if ($attr == 'article__url') {
|
||||||
$url = new Url(base64_encode($attr_value));
|
$url = new Url(base64_encode($attr_value));
|
||||||
}
|
}
|
||||||
|
$sequence = '';
|
||||||
|
if (STORAGE == 'postgres') {
|
||||||
|
$sequence = 'entries_id_seq';
|
||||||
|
}
|
||||||
// if ($attr_value == 'favorite' && $attr_value == 'true') {
|
// if ($attr_value == 'favorite' && $attr_value == 'true') {
|
||||||
// $last_id = $this->store->getLastId();
|
// $last_id = $this->store->getLastId($sequence);
|
||||||
// $this->store->favoriteById($last_id);
|
// $this->store->favoriteById($last_id);
|
||||||
// $this->action('toogle_fav', $url, $last_id);
|
// $this->action('toogle_fav', $url, $last_id, TRUE);
|
||||||
// }
|
|
||||||
// if ($attr_value == 'archive' && $attr_value == 'true') {
|
|
||||||
// $last_id = $this->store->getLastId();
|
|
||||||
// $this->action('toggle_archive', $url, $last_id);
|
|
||||||
// }
|
// }
|
||||||
|
if ($attr_value == 'archive' && $attr_value == 'true') {
|
||||||
|
$last_id = $this->store->getLastId($sequence);
|
||||||
|
$this->action('toggle_archive', $url, $last_id, TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ($url->isCorrect())
|
if ($url->isCorrect())
|
||||||
$this->action('add', $url);
|
$this->action('add', $url, 0, TRUE);
|
||||||
}
|
}
|
||||||
$this->messages->add('s', _('import from Readability completed'));
|
$this->messages->add('s', _('import from Readability completed'));
|
||||||
Tools::logm('import from Readability completed');
|
Tools::logm('import from Readability completed');
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
# storage
|
# storage
|
||||||
define ('STORAGE','postgres'); # postgres, mysql, sqlite
|
define ('STORAGE','sqlite'); # postgres, mysql, sqlite
|
||||||
define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite
|
define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite
|
||||||
define ('STORAGE_DB', 'poche'); # only for postgres & mysql
|
define ('STORAGE_DB', 'poche'); # only for postgres & mysql
|
||||||
define ('STORAGE_SQLITE', './db/poche.sqlite');
|
define ('STORAGE_SQLITE', './db/poche.sqlite');
|
||||||
@ -52,7 +52,6 @@ if (DOWNLOAD_PICTURES) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$poche = new Poche();
|
$poche = new Poche();
|
||||||
|
|
||||||
#XSRF protection with token
|
#XSRF protection with token
|
||||||
// if (!empty($_POST)) {
|
// if (!empty($_POST)) {
|
||||||
// if (!Session::isToken($_POST['token'])) {
|
// if (!Session::isToken($_POST['token'])) {
|
||||||
|
@ -11,7 +11,7 @@ $sql = 'ALTER TABLE entries RENAME TO tempEntries;';
|
|||||||
$query = $handle->prepare($sql);
|
$query = $handle->prepare($sql);
|
||||||
$query->execute();
|
$query->execute();
|
||||||
|
|
||||||
$sql = 'CREATE TABLE entries (id INTEGER PRIMARY KEY, title TEXT, url TEXT, is_read NUMERIC, is_fav NUMERIC, content BLOB, user_id NUMERIC);';
|
$sql = 'CREATE TABLE entries (id INTEGER PRIMARY KEY, title TEXT, url TEXT, is_read NUMERIC DEFAULT 0, is_fav NUMERIC DEFAULT 0, content BLOB, user_id NUMERIC);';
|
||||||
$query = $handle->prepare($sql);
|
$query = $handle->prepare($sql);
|
||||||
$query->execute();
|
$query->execute();
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<footer class="w600p center mt3 smaller txtright">
|
<footer class="w600p center mt3 smaller txtright">
|
||||||
<p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p>
|
<p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p>
|
||||||
{% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE_VERSION')}}</strong></p>{% endif %}
|
{% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE_VERSION')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %}
|
||||||
</footer>
|
</footer>
|
Loading…
Reference in New Issue
Block a user