fixes for 1.0-beta

This commit is contained in:
Nicolas Lœuillet 2013-08-07 19:14:28 +02:00
parent 580d60b941
commit b916bcfccc
6 changed files with 83 additions and 38 deletions

View File

@ -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);
} }
} }

View File

@ -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);
} }
$this->messages->add('s', _('the link has been added successfully')); if (!$import) {
$this->messages->add('s', _('the link has been added successfully'));
}
} }
else { else {
$this->messages->add('e', _('error during insertion : the link wasn\'t added')); if (!$import) {
Tools::logm('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 ' . $url->getUrl());
}
} }
} }
else { else {
$this->messages->add('e', _('error during fetching content : the link wasn\'t added')); if (!$import) {
Tools::logm('error during content fetch'); $this->messages->add('e', _('error during fetching content : the link wasn\'t added'));
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);
Tools::redirect(); if (!$import) {
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);
Tools::redirect(); if (!$import) {
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');

View File

@ -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'])) {

View File

@ -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();

View File

@ -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>