diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index a662f69..90fbcb2 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -828,7 +828,7 @@ class Poche
define('IMPORT_LIMIT', 5);
}
if (!defined('IMPORT_DELAY')) {
- define('IMPORT_DELAY', 5);
+ define('IMPORT_DELAY', 5);
}
if ( isset($_FILES['file']) ) {
@@ -844,18 +844,18 @@ class Poche
$read = 0;
foreach (array('ol','ul') as $list) {
foreach ($html->find($list) as $ul) {
- foreach ($ul->find('li') as $li) {
- $tmpEntry = array();
- $a = $li->find('a');
- $tmpEntry['url'] = $a[0]->href;
- $tmpEntry['tags'] = $a[0]->tags;
- $tmpEntry['is_read'] = $read;
- if ($tmpEntry['url']) {
- $data[] = $tmpEntry;
- }
- }
- # the second
is for read links
- $read = ((sizeof($data) && $read)?0:1);
+ foreach ($ul->find('li') as $li) {
+ $tmpEntry = array();
+ $a = $li->find('a');
+ $tmpEntry['url'] = $a[0]->href;
+ $tmpEntry['tags'] = $a[0]->tags;
+ $tmpEntry['is_read'] = $read;
+ if ($tmpEntry['url']) {
+ $data[] = $tmpEntry;
+ }
+ }
+ # the second is for read links
+ $read = ((sizeof($data) && $read)?0:1);
}
}
}
@@ -866,16 +866,16 @@ class Poche
$data[] = $record;
foreach ($record as $record2) {
if (is_array($record2)) {
- $data[] = $record2;
+ $data[] = $record2;
}
}
}
}
- $i = 0; //counter for articles inserted
+ $urlsInserted = array(); //urls of articles inserted
foreach ($data as $record) {
$url = trim( isset($record['article__url']) ? $record['article__url'] : (isset($record['url']) ? $record['url'] : '') );
- if ( $url ) {
+ if ( $url and !in_array($url, $urlsInserted) ) {
$title = (isset($record['title']) ? $record['title'] : _('Untitled - Import - ').' '._('click to finish import').'');
$body = (isset($record['content']) ? $record['content'] : '');
$isRead = (isset($record['is_read']) ? intval($record['is_read']) : (isset($record['archive'])?intval($record['archive']):0));
@@ -883,16 +883,17 @@ class Poche
//insert new record
$id = $this->store->add($url, $title, $body, $this->user->getId(), $isFavorite, $isRead);
if ( $id ) {
- //increment no of records inserted
- $i++;
+ $urlsInserted[] = $url; //add
+
if ( isset($record['tags']) && trim($record['tags']) ) {
- //@TODO: set tags
+ //@TODO: set tags
}
}
}
}
+ $i = sizeof($urlsInserted);
if ( $i > 0 ) {
$this->messages->add('s', _('Articles inserted: ').$i._('. Please note, that some may be marked as "read".'));
}
@@ -919,17 +920,17 @@ class Poche
$purifier = new HTMLPurifier($config);
foreach ($items as $item) {
- $url = new Url(base64_encode($item['url']));
- $content = Tools::getPageContent($url);
+ $url = new Url(base64_encode($item['url']));
+ $content = Tools::getPageContent($url);
- $title = (($content['rss']['channel']['item']['title'] != '') ? $content['rss']['channel']['item']['title'] : _('Untitled'));
- $body = (($content['rss']['channel']['item']['description'] != '') ? $content['rss']['channel']['item']['description'] : _('Undefined'));
+ $title = (($content['rss']['channel']['item']['title'] != '') ? $content['rss']['channel']['item']['title'] : _('Untitled'));
+ $body = (($content['rss']['channel']['item']['description'] != '') ? $content['rss']['channel']['item']['description'] : _('Undefined'));
- //clean content to prevent xss attack
- $title = $purifier->purify($title);
- $body = $purifier->purify($body);
+ //clean content to prevent xss attack
+ $title = $purifier->purify($title);
+ $body = $purifier->purify($body);
- $this->store->updateContentAndTitle($item['id'], $title, $body, $this->user->getId());
+ $this->store->updateContentAndTitle($item['id'], $title, $body, $this->user->getId());
}
}
@@ -944,8 +945,8 @@ class Poche
*/
public function export()
{
- $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
- header('Content-Disposition: attachment; filename='.$filename);
+ $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
+ header('Content-Disposition: attachment; filename='.$filename);
$entries = $this->store->retrieveAll($this->user->getId());
echo $this->tpl->render('export.twig', array(
@@ -978,13 +979,13 @@ class Poche
public function generateToken()
{
if (ini_get('open_basedir') === '') {
- if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
- echo 'This is a server using Windows!';
- // alternative to /dev/urandom for Windows
- $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
- } else {
- $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
- }
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+ echo 'This is a server using Windows!';
+ // alternative to /dev/urandom for Windows
+ $token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
+ } else {
+ $token = substr(base64_encode(file_get_contents('/dev/urandom', false, null, 0, 20)), 0, 15);
+ }
}
else {
$token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);