aboutsummaryrefslogtreecommitdiffhomepage
path: root/inc
diff options
context:
space:
mode:
authorThomas Citharel <tcit@tcit.fr>2014-08-16 00:54:46 +0200
committerThomas Citharel <tcit@tcit.fr>2014-08-16 00:54:46 +0200
commit1daa8e4a0f6e5afdd20ec307a28b02b1e30b0d70 (patch)
treed2839428e8ada2b2727a43b1a4b900734d209bb3 /inc
parent70549136ba0ba5692448a079b6911cf8bb52cbee (diff)
parentdc764892213e8d1cb458621910aa8d0ce0a3eb7e (diff)
downloadwallabag-1daa8e4a0f6e5afdd20ec307a28b02b1e30b0d70.tar.gz
wallabag-1daa8e4a0f6e5afdd20ec307a28b02b1e30b0d70.tar.zst
wallabag-1daa8e4a0f6e5afdd20ec307a28b02b1e30b0d70.zip
merge fix 776
Diffstat (limited to 'inc')
-rwxr-xr-xinc/poche/Poche.class.php73
1 files changed, 36 insertions, 37 deletions
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 098dd7c1..64a5c4f7 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -551,42 +551,39 @@ class Poche
551 * import datas into your wallabag 551 * import datas into your wallabag
552 * @return boolean 552 * @return boolean
553 */ 553 */
554 public function import()
555 {
556 if (isset($_FILES['file'])) {
557 Tools::logm('Import stated: parsing file');
558
559 // assume, that file is in json format
560
561 $str_data = file_get_contents($_FILES['file']['tmp_name']);
562 $data = json_decode($str_data, true);
563 if ($data === null) {
564
565 // not json - assume html
566
567 $html = new simple_html_dom();
568 $html->load_file($_FILES['file']['tmp_name']);
569 $data = array();
570 $read = 0;
571 foreach(array('ol','ul') as $list) {
572 foreach($html->find($list) as $ul) {
573 foreach($ul->find('li') as $li) {
574 $tmpEntry = array();
575 $a = $li->find('a');
576 $tmpEntry['url'] = $a[0]->href;
577 $tmpEntry['tags'] = $a[0]->tags;
578 $tmpEntry['is_read'] = $read;
579 if ($tmpEntry['url']) {
580 $data[] = $tmpEntry;
581 }
582 }
583
584 // the second <ol/ul> is for read links
585 554
586 $read = ((sizeof($data) && $read) ? 0 : 1); 555 public function import() {
587 } 556
588 } 557 if ( isset($_FILES['file']) && $_FILES['file']['tmp_name'] ) {
558 Tools::logm('Import stated: parsing file');
559
560 // assume, that file is in json format
561 $str_data = file_get_contents($_FILES['file']['tmp_name']);
562 $data = json_decode($str_data, true);
563
564 if ( $data === null ) {
565 //not json - assume html
566 $html = new simple_html_dom();
567 $html->load_file($_FILES['file']['tmp_name']);
568 $data = array();
569 $read = 0;
570 foreach (array('ol','ul') as $list) {
571 foreach ($html->find($list) as $ul) {
572 foreach ($ul->find('li') as $li) {
573 $tmpEntry = array();
574 $a = $li->find('a');
575 $tmpEntry['url'] = $a[0]->href;
576 $tmpEntry['tags'] = $a[0]->tags;
577 $tmpEntry['is_read'] = $read;
578 if ($tmpEntry['url']) {
579 $data[] = $tmpEntry;
580 }
581 }
582 # the second <ol/ul> is for read links
583 $read = ((sizeof($data) && $read)?0:1);
589 } 584 }
585 }
586 }
590 587
591 // for readability structure 588 // for readability structure
592 589
@@ -629,9 +626,11 @@ class Poche
629 $this->messages->add('s', _('Articles inserted: ') . $i . _('. Please note, that some may be marked as "read".')); 626 $this->messages->add('s', _('Articles inserted: ') . $i . _('. Please note, that some may be marked as "read".'));
630 } 627 }
631 628
632 Tools::logm('Import of articles finished: ' . $i . ' articles added (w/o content if not provided).'); 629 Tools::logm('Import of articles finished: '.$i.' articles added (w/o content if not provided).');
633 } 630 }
634 631 else {
632 $this->messages->add('s', _('Did you forget to select a file?'));
633 }
635 // file parsing finished here 634 // file parsing finished here
636 // now download article contents if any 635 // now download article contents if any
637 // check if we need to download any content 636 // check if we need to download any content