aboutsummaryrefslogtreecommitdiffhomepage
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/3rdparty/site_config/standard/bastamag.net.txt10
-rw-r--r--inc/3rdparty/site_config/standard/bearmetal.eu.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/blog.cloudflare.com.txt8
-rw-r--r--inc/3rdparty/site_config/standard/blog.niqnutn.com.txt9
-rw-r--r--inc/3rdparty/site_config/standard/captaineconomics.fr.txt6
-rw-r--r--inc/3rdparty/site_config/standard/cloudacademy.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/codebase64.org.txt9
-rw-r--r--inc/3rdparty/site_config/standard/cyrille-borne.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/des-livres-pour-changer-de-vie.fr.txt6
-rw-r--r--inc/3rdparty/site_config/standard/espacepolitique.revues.org.txt10
-rw-r--r--inc/3rdparty/site_config/standard/frankdenneman.nl.txt2
-rw-r--r--inc/3rdparty/site_config/standard/frontburner.dmagazine.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/ganglia.info.txt2
-rw-r--r--inc/3rdparty/site_config/standard/gokulkrishh.github.io.txt6
-rw-r--r--inc/3rdparty/site_config/standard/hackersrepublic.org.txt6
-rw-r--r--inc/3rdparty/site_config/standard/iceblog.free.fr.txt7
-rw-r--r--inc/3rdparty/site_config/standard/iso.500px.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/it-connect.fr.txt9
-rw-r--r--inc/3rdparty/site_config/standard/jsforcats.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/lapin-blanc.blogs.docteo.net.txt6
-rw-r--r--inc/3rdparty/site_config/standard/lececil.org.txt6
-rw-r--r--inc/3rdparty/site_config/standard/metrocop.net.txt6
-rw-r--r--inc/3rdparty/site_config/standard/pérotin.com.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/reddit.com.txt6
-rw-r--r--inc/3rdparty/site_config/standard/spiil.org.txt6
-rw-r--r--inc/3rdparty/site_config/standard/yosko.net.txt6
-rwxr-xr-xinc/poche/Database.class.php144
-rwxr-xr-xinc/poche/Poche.class.php44
28 files changed, 274 insertions, 82 deletions
diff --git a/inc/3rdparty/site_config/standard/bastamag.net.txt b/inc/3rdparty/site_config/standard/bastamag.net.txt
new file mode 100644
index 00000000..142c959c
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/bastamag.net.txt
@@ -0,0 +1,10 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.bastamag.net%2FEncadrement-des-loyers-pourquoi-Anne-Hidalgo-ferait-bien-de-visiter-Vienne-l
4
5body: //div[@id='content']//article
6
7strip_id_or_class: appel-soutien
8strip_id_or_class: liste dossiers-content
9
10test_url: http://www.bastamag.net/Encadrement-des-loyers-pourquoi-Anne-Hidalgo-ferait-bien-de-visiter-Vienne-l
diff --git a/inc/3rdparty/site_config/standard/bearmetal.eu.txt b/inc/3rdparty/site_config/standard/bearmetal.eu.txt
new file mode 100644
index 00000000..44d34655
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/bearmetal.eu.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=https%3A%2F%2Fbearmetal.eu%2Ftheden%2Fits-not-about-you%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')]
6test_url: https://bearmetal.eu/theden/its-not-about-you/
diff --git a/inc/3rdparty/site_config/standard/blog.cloudflare.com.txt b/inc/3rdparty/site_config/standard/blog.cloudflare.com.txt
index db80a35f..9b7cf25c 100755
--- a/inc/3rdparty/site_config/standard/blog.cloudflare.com.txt
+++ b/inc/3rdparty/site_config/standard/blog.cloudflare.com.txt
@@ -3,7 +3,11 @@ title: substring-before(//title, '-')
3 3
4author: //a[ contains(@href, '/people') ] 4author: //a[ contains(@href, '/people') ]
5 5
6body: //div[ @class='post' ] 6body: //article[contains(concat(' ',normalize-space(@class),' '),' post ')]
7
8strip_id_or_class: section learn-more
9strip_id_or_class: section comments
10strip_id_or_class: disqus_thread
7 11
8# Date is impossible to retrieve since they use those stupid "fuzzy" dates, inserted through javascript, at posterous. 12# Date is impossible to retrieve since they use those stupid "fuzzy" dates, inserted through javascript, at posterous.
9test_url: http://blog.cloudflare.com/understanding-analytics-when-is-a-page-view-n \ No newline at end of file 13test_url: http://blog.cloudflare.com/understanding-analytics-when-is-a-page-view-n
diff --git a/inc/3rdparty/site_config/standard/blog.niqnutn.com.txt b/inc/3rdparty/site_config/standard/blog.niqnutn.com.txt
new file mode 100644
index 00000000..aa2f1865
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/blog.niqnutn.com.txt
@@ -0,0 +1,9 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fblog.niqnutn.com%2Farticle35%2Fsteganographie-l-art-de-dissimuler-un-message
4
5body: //article[contains(concat(' ',normalize-space(@class),' '),' article-content ')]//section
6
7strip_id_or_class: sommaire
8
9test_url: http://blog.niqnutn.com/article35/steganographie-l-art-de-dissimuler-un-message
diff --git a/inc/3rdparty/site_config/standard/captaineconomics.fr.txt b/inc/3rdparty/site_config/standard/captaineconomics.fr.txt
new file mode 100644
index 00000000..036e0281
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/captaineconomics.fr.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.captaineconomics.fr%2F-les-immigres-recemment-arrives-en-france-qui-sont-ils-insee
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' post_content ')]
6test_url: http://www.captaineconomics.fr/-les-immigres-recemment-arrives-en-france-qui-sont-ils-insee
diff --git a/inc/3rdparty/site_config/standard/cloudacademy.com.txt b/inc/3rdparty/site_config/standard/cloudacademy.com.txt
new file mode 100644
index 00000000..f5b67840
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/cloudacademy.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fcloudacademy.com%2Fblog%2Fberkshelf-manage-chef-cookbooks%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')]
6test_url: http://cloudacademy.com/blog/berkshelf-manage-chef-cookbooks/ \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/codebase64.org.txt b/inc/3rdparty/site_config/standard/codebase64.org.txt
new file mode 100644
index 00000000..d992d2f1
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/codebase64.org.txt
@@ -0,0 +1,9 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fcodebase64.org%2Fdoku.php%3Fid%3Dbase%3Ademo_coding_introduction
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' page ')]
6
7strip_id_or_class: dw__toc
8
9test_url: http://codebase64.org/doku.php?id=base:demo_coding_introduction
diff --git a/inc/3rdparty/site_config/standard/cyrille-borne.com.txt b/inc/3rdparty/site_config/standard/cyrille-borne.com.txt
new file mode 100644
index 00000000..7b41aa0b
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/cyrille-borne.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.cyrille-borne.com%2Farticle511%2Fun-an-de-zte-open-c-plus-tard
4
5body: //article//section
6test_url: http://www.cyrille-borne.com/article511/un-an-de-zte-open-c-plus-tard \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/des-livres-pour-changer-de-vie.fr.txt b/inc/3rdparty/site_config/standard/des-livres-pour-changer-de-vie.fr.txt
new file mode 100644
index 00000000..56b0ea27
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/des-livres-pour-changer-de-vie.fr.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.des-livres-pour-changer-de-vie.fr%2Fbit-literacy-2%2F
4
5body: //div[@id='getsocialmain']
6test_url: http://www.des-livres-pour-changer-de-vie.fr/bit-literacy-2/ \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/espacepolitique.revues.org.txt b/inc/3rdparty/site_config/standard/espacepolitique.revues.org.txt
new file mode 100644
index 00000000..c4acb26e
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/espacepolitique.revues.org.txt
@@ -0,0 +1,10 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fespacepolitique.revues.org%2F284
4
5body: //div[@id='text']
6
7strip_id_or_class: paranumber
8strip_id_or_class: go-top
9
10test_url: http://espacepolitique.revues.org/284
diff --git a/inc/3rdparty/site_config/standard/frankdenneman.nl.txt b/inc/3rdparty/site_config/standard/frankdenneman.nl.txt
new file mode 100644
index 00000000..c6011002
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/frankdenneman.nl.txt
@@ -0,0 +1,2 @@
1body: //*[(@class = "content")]
2test_url: http://frankdenneman.nl/
diff --git a/inc/3rdparty/site_config/standard/frontburner.dmagazine.com.txt b/inc/3rdparty/site_config/standard/frontburner.dmagazine.com.txt
new file mode 100644
index 00000000..73f44324
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/frontburner.dmagazine.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Ffrontburner.dmagazine.com%2F2015%2F04%2F23%2Fthe-barrett-brown-review-of-arts-and-letters-and-jail-a-sign-of-things-to-come%2F
4
5body: //div[@id='article-body']
6test_url: http://frontburner.dmagazine.com/2015/04/23/the-barrett-brown-review-of-arts-and-letters-and-jail-a-sign-of-things-to-come/
diff --git a/inc/3rdparty/site_config/standard/ganglia.info.txt b/inc/3rdparty/site_config/standard/ganglia.info.txt
new file mode 100644
index 00000000..2ae27b48
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/ganglia.info.txt
@@ -0,0 +1,2 @@
1body: //*[(@id = "mid")]
2test_url: http://ganglia.info/
diff --git a/inc/3rdparty/site_config/standard/gokulkrishh.github.io.txt b/inc/3rdparty/site_config/standard/gokulkrishh.github.io.txt
new file mode 100644
index 00000000..b395fa9e
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/gokulkrishh.github.io.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=https%3A%2F%2Fgokulkrishh.github.io%2FJavascript-Guidelines%2F
4
5body: //section[contains(concat(' ',normalize-space(@class),' '),' main-content ')]
6test_url: https://gokulkrishh.github.io/Javascript-Guidelines/
diff --git a/inc/3rdparty/site_config/standard/hackersrepublic.org.txt b/inc/3rdparty/site_config/standard/hackersrepublic.org.txt
new file mode 100644
index 00000000..da01c213
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/hackersrepublic.org.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.hackersrepublic.org%2Fculture-du-hacking%2Fune-histoire-de-privileges
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' field-name-body ')]//div[contains(concat(' ',normalize-space(@class),' '),' field-items ')]//div[contains(concat(' ',normalize-space(@class),' '),' field-item ') and (contains(concat(' ',normalize-space(@class),' '),' even '))]
6test_url: http://www.hackersrepublic.org/culture-du-hacking/une-histoire-de-privileges
diff --git a/inc/3rdparty/site_config/standard/iceblog.free.fr.txt b/inc/3rdparty/site_config/standard/iceblog.free.fr.txt
new file mode 100644
index 00000000..9d1ce214
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/iceblog.free.fr.txt
@@ -0,0 +1,7 @@
1
2# Generated by FiveFilters.org's web-based selection tool
3# Place this file inside your site_config/custom/ folder
4# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Ficeblog.free.fr%2Findex.php%3Farticle102%2Fweb-histoire-geek-4
5
6body: //article//section
7test_url: http://iceblog.free.fr/index.php?article102/web-histoire-geek-4
diff --git a/inc/3rdparty/site_config/standard/iso.500px.com.txt b/inc/3rdparty/site_config/standard/iso.500px.com.txt
new file mode 100644
index 00000000..ffa29a1d
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/iso.500px.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=https%3A%2F%2Fiso.500px.com%2Fhow-i-post-processed-the-most-successful-image-of-my-career%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' post-content ')]
6test_url: https://iso.500px.com/how-i-post-processed-the-most-successful-image-of-my-career/
diff --git a/inc/3rdparty/site_config/standard/it-connect.fr.txt b/inc/3rdparty/site_config/standard/it-connect.fr.txt
new file mode 100644
index 00000000..80c95e68
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/it-connect.fr.txt
@@ -0,0 +1,9 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.it-connect.fr%2Fdebuter-avec-docker-et-les-containers-sous-debian-8%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' post_inner_wrapper ')]
6
7strip_id_or_class: toc_container
8
9test_url: http://www.it-connect.fr/debuter-avec-docker-et-les-containers-sous-debian-8/
diff --git a/inc/3rdparty/site_config/standard/jsforcats.com.txt b/inc/3rdparty/site_config/standard/jsforcats.com.txt
new file mode 100644
index 00000000..f2699ef1
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/jsforcats.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fjsforcats.com%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' post-content ')]
6test_url: http://jsforcats.com/
diff --git a/inc/3rdparty/site_config/standard/lapin-blanc.blogs.docteo.net.txt b/inc/3rdparty/site_config/standard/lapin-blanc.blogs.docteo.net.txt
new file mode 100644
index 00000000..38835a90
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/lapin-blanc.blogs.docteo.net.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Flapin-blanc.blogs.docteo.net%2F2015%2F01%2F20%2Flencadrement-doctoral-deviendrait-il-un-sujet-dactualite%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')]
6test_url: http://lapin-blanc.blogs.docteo.net/2015/01/20/lencadrement-doctoral-deviendrait-il-un-sujet-dactualite/
diff --git a/inc/3rdparty/site_config/standard/lececil.org.txt b/inc/3rdparty/site_config/standard/lececil.org.txt
new file mode 100644
index 00000000..8a38bbf3
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/lececil.org.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.lececil.org%2Fnode%2F7688
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' field-body ')]
6test_url: http://www.lececil.org/node/7688
diff --git a/inc/3rdparty/site_config/standard/metrocop.net.txt b/inc/3rdparty/site_config/standard/metrocop.net.txt
new file mode 100644
index 00000000..9535f125
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/metrocop.net.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fmetrocop.net%2Fmythic-comics%2Fissue-1%2F
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' entry ')]
6test_url: http://metrocop.net/mythic-comics/issue-1/
diff --git a/inc/3rdparty/site_config/standard/pérotin.com.txt b/inc/3rdparty/site_config/standard/pérotin.com.txt
new file mode 100644
index 00000000..7784fa4c
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/pérotin.com.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=xn--protin-bva.com%2Fpost%2F2009%2F06%2F09%2FSAV-Free-un-sketch-kafkaien
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' post ')]
6test_url: http://xn--protin-bva.com/post/2009/06/09/SAV-Free-un-sketch-kafkaien
diff --git a/inc/3rdparty/site_config/standard/reddit.com.txt b/inc/3rdparty/site_config/standard/reddit.com.txt
index ba342c7c..c3f2d3e5 100755
--- a/inc/3rdparty/site_config/standard/reddit.com.txt
+++ b/inc/3rdparty/site_config/standard/reddit.com.txt
@@ -7,7 +7,9 @@ author: //p[@class="tagline"]/a
7# this doesn't work for some reason...? 7# this doesn't work for some reason...?
8date: //p[@class="tagline"]//@datetime 8date: //p[@class="tagline"]//@datetime
9 9
10body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1] 10#body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1]
11
12body: //div[contains(concat(' ',normalize-space(@class),' '),' usertext-body ') and (contains(concat(' ',normalize-space(@class),' '),' may-blank-within ')) and (contains(concat(' ',normalize-space(@class),' '),' md-container '))]//div[contains(concat(' ',normalize-space(@class),' '),' md ')]
11 13
12strip_id_or_class: tagline 14strip_id_or_class: tagline
13strip_id_or_class: unvotable-message 15strip_id_or_class: unvotable-message
@@ -18,4 +20,4 @@ single_page_link: //p[@class="title"]/a[contains(@href, 'http://')]
18 20
19test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/ 21test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/
20test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/ 22test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/
21test_url: http://www.reddit.com/r/WritingPrompts/comments/2786lw/wp_in_a_world_where_puns_are_illegal_one_man/chybk8e \ No newline at end of file 23test_url: http://www.reddit.com/r/WritingPrompts/comments/2786lw/wp_in_a_world_where_puns_are_illegal_one_man/chybk8e
diff --git a/inc/3rdparty/site_config/standard/spiil.org.txt b/inc/3rdparty/site_config/standard/spiil.org.txt
new file mode 100644
index 00000000..dd12fb88
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/spiil.org.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=https%3A%2F%2Fwww.spiil.org%2Fguide-bonnes-pratiques-editeurs-de-presse-ligne
4
5body: //div[contains(concat(' ',normalize-space(@class),' '),' node-content ')]
6test_url: https://www.spiil.org/guide-bonnes-pratiques-editeurs-de-presse-ligne
diff --git a/inc/3rdparty/site_config/standard/yosko.net.txt b/inc/3rdparty/site_config/standard/yosko.net.txt
new file mode 100644
index 00000000..99e711e3
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/yosko.net.txt
@@ -0,0 +1,6 @@
1# Generated by FiveFilters.org's web-based selection tool
2# Place this file inside your site_config/custom/ folder
3# Source: http://siteconfig.fivefilters.org/grab.php?url=http%3A%2F%2Fwww.yosko.net%2Farticle33%2Fsnippet-06-javascript-capturer-des-raccourcis-clavier-utilises-par-votre-navigateur
4
5body: //article//section
6test_url: http://www.yosko.net/article33/snippet-06-javascript-capturer-des-raccourcis-clavier-utilises-par-votre-navigateur
diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php
index 7be7a394..7ec1602d 100755
--- a/inc/poche/Database.class.php
+++ b/inc/poche/Database.class.php
@@ -156,11 +156,14 @@ class Database {
156 { 156 {
157 $sql = "SELECT * FROM users_config WHERE user_id = ?"; 157 $sql = "SELECT * FROM users_config WHERE user_id = ?";
158 $query = $this->executeQuery($sql, array($id)); 158 $query = $this->executeQuery($sql, array($id));
159 $result = $query->fetchAll(); 159 $result = ($query) ? $query->fetchAll() : false;
160 $user_config = array(); 160 $user_config = false;
161 if ($query) {
162 $user_config = array();
161 163
162 foreach ($result as $key => $value) { 164 foreach ($result as $key => $value) {
163 $user_config[$value['name']] = $value['value']; 165 $user_config[$value['name']] = $value['value'];
166 }
164 } 167 }
165 168
166 return $user_config; 169 return $user_config;
@@ -171,11 +174,7 @@ class Database {
171 $sql = "SELECT * FROM users WHERE username=?"; 174 $sql = "SELECT * FROM users WHERE username=?";
172 $query = $this->executeQuery($sql, array($username)); 175 $query = $this->executeQuery($sql, array($username));
173 $login = $query->fetchAll(); 176 $login = $query->fetchAll();
174 if (isset($login[0])) { 177 return (isset($login[0]) && $query) ? true : false;
175 return true;
176 } else {
177 return false;
178 }
179 } 178 }
180 179
181 public function login($username, $password, $isauthenticated = FALSE) 180 public function login($username, $password, $isauthenticated = FALSE)
@@ -187,10 +186,10 @@ class Database {
187 $sql = "SELECT * FROM users WHERE username=? AND password=?"; 186 $sql = "SELECT * FROM users WHERE username=? AND password=?";
188 $query = $this->executeQuery($sql, array($username, $password)); 187 $query = $this->executeQuery($sql, array($username, $password));
189 } 188 }
190 $login = $query->fetchAll(); 189 $login = ($query) ? $query->fetchAll() : false;
191 190
192 $user = array(); 191 $user = array();
193 if (isset($login[0])) { 192 if ($login[0]) {
194 $user['id'] = $login[0]['id']; 193 $user['id'] = $login[0]['id'];
195 $user['username'] = $login[0]['username']; 194 $user['username'] = $login[0]['username'];
196 $user['password'] = $login[0]['password']; 195 $user['password'] = $login[0]['password'];
@@ -243,7 +242,7 @@ class Database {
243 { 242 {
244 $sql = 'SELECT count(*) FROM users'.( $username ? ' WHERE username=?' : ''); 243 $sql = 'SELECT count(*) FROM users'.( $username ? ' WHERE username=?' : '');
245 $query = $this->executeQuery($sql, ( $username ? array($username) : array())); 244 $query = $this->executeQuery($sql, ( $username ? array($username) : array()));
246 list($count) = $query->fetch(); 245 list($count) = ($query) ? $query->fetch() : false;
247 return $count; 246 return $count;
248 } 247 }
249 248
@@ -252,7 +251,7 @@ class Database {
252 $sql = "SELECT * FROM users WHERE id=?"; 251 $sql = "SELECT * FROM users WHERE id=?";
253 $query = $this->executeQuery($sql, array($userID)); 252 $query = $this->executeQuery($sql, array($userID));
254 $password = $query->fetchAll(); 253 $password = $query->fetchAll();
255 return isset($password[0]['password']) ? $password[0]['password'] : null; 254 return ($query) ? $password[0]['password'] : false;
256 } 255 }
257 256
258 public function deleteUserConfig($userID) 257 public function deleteUserConfig($userID)
@@ -260,18 +259,22 @@ class Database {
260 $sql_action = 'DELETE from users_config WHERE user_id=?'; 259 $sql_action = 'DELETE from users_config WHERE user_id=?';
261 $params_action = array($userID); 260 $params_action = array($userID);
262 $query = $this->executeQuery($sql_action, $params_action); 261 $query = $this->executeQuery($sql_action, $params_action);
263 return $query; 262 return ($query) ? $query : false;
264 } 263 }
265 264
266 public function deleteTagsEntriesAndEntries($userID) 265 public function deleteTagsEntriesAndEntries($userID)
267 { 266 {
268 $entries = $this->retrieveAll($userID); 267 $entries = $this->retrieveAll($userID);
269 foreach($entries as $entryid) { 268 if ($entries) {
270 $tags = $this->retrieveTagsByEntry($entryid); 269 foreach($entries as $entry) {
271 foreach($tags as $tag) { 270 $tags = $this->retrieveTagsByEntry($entry['id']);
272 $this->removeTagForEntry($entryid,$tags); 271 foreach($tags as $tag) {
272 $this->removeTagForEntry($entry['id'], $tags);
273 }
274 $this->deleteById($entryid,$userID);
273 } 275 }
274 $this->deleteById($entryid,$userID); 276 } else {
277 return false;
275 } 278 }
276 } 279 }
277 280
@@ -302,7 +305,7 @@ class Database {
302 $query = $this->executeQuery($sql, array($user_id)); 305 $query = $this->executeQuery($sql, array($user_id));
303 $entries = $query->fetchAll(); 306 $entries = $query->fetchAll();
304 307
305 return $entries; 308 return ($query) ? $entries : false;
306 } 309 }
307 310
308 public function retrieveUnfetchedEntriesCount($user_id) 311 public function retrieveUnfetchedEntriesCount($user_id)
@@ -320,44 +323,44 @@ class Database {
320 $query = $this->executeQuery($sql, array($user_id)); 323 $query = $this->executeQuery($sql, array($user_id));
321 $entries = $query->fetchAll(); 324 $entries = $query->fetchAll();
322 325
323 return $entries; 326 return ($query) ? $entries : false;
324 } 327 }
325 328
326 public function retrieveAllWithTags($user_id) 329 public function retrieveAllWithTags($user_id)
327 { 330 {
328 $entries = $this->retrieveAll($user_id); 331 $entries = $this->retrieveAll($user_id);
329 $count = count($entries); 332 if ($entries) {
330 for ($i = 0; $i < $count; $i++) { 333 $count = count($entries);
331 $tag_entries = $this->retrieveTagsByEntry($entries[$i]['id']); 334 for ($i = 0; $i < $count; $i++) {
332 $tags = []; 335 $tag_entries = $this->retrieveTagsByEntry($entries[$i]['id']);
333 foreach ($tag_entries as $tag) { 336 $tags = [];
334 $tags[] = $tag[1]; 337 foreach ($tag_entries as $tag) {
335 } 338 $tags[] = $tag[1];
336 $entries[$i]['tags'] = implode(',', $tags); 339 }
340 $entries[$i]['tags'] = implode(',', $tags);
341 }
337 } 342 }
338 return $entries; 343 return $entries;
339 } 344 }
340 345
341 public function retrieveOneById($id, $user_id) 346 public function retrieveOneById($id, $user_id)
342 { 347 {
343 $entry = NULL;
344 $sql = "SELECT * FROM entries WHERE id=? AND user_id=?"; 348 $sql = "SELECT * FROM entries WHERE id=? AND user_id=?";
345 $params = array(intval($id), $user_id); 349 $params = array(intval($id), $user_id);
346 $query = $this->executeQuery($sql, $params); 350 $query = $this->executeQuery($sql, $params);
347 $entry = $query->fetchAll(); 351 $entry = $query->fetchAll();
348 352
349 return isset($entry[0]) ? $entry[0] : null; 353 return ($query) ? $entry[0] : false;
350 } 354 }
351 355
352 public function retrieveOneByURL($url, $user_id) 356 public function retrieveOneByURL($url, $user_id)
353 { 357 {
354 $entry = NULL;
355 $sql = "SELECT * FROM entries WHERE url=? AND user_id=?"; 358 $sql = "SELECT * FROM entries WHERE url=? AND user_id=?";
356 $params = array($url, $user_id); 359 $params = array($url, $user_id);
357 $query = $this->executeQuery($sql, $params); 360 $query = $this->executeQuery($sql, $params);
358 $entry = $query->fetchAll(); 361 $entry = $query->fetchAll();
359 362
360 return isset($entry[0]) ? $entry[0] : null; 363 return ($query) ? $entry[0] : false;
361 } 364 }
362 365
363 public function reassignTags($old_entry_id, $new_entry_id) 366 public function reassignTags($old_entry_id, $new_entry_id)
@@ -395,7 +398,8 @@ class Database {
395 $query = $this->executeQuery($sql, $params); 398 $query = $this->executeQuery($sql, $params);
396 $entries = $query->fetchAll(); 399 $entries = $query->fetchAll();
397 400
398 return $entries; 401 return ($query) ? $entries : false;
402
399 } 403 }
400 404
401 public function getEntriesByViewCount($view, $user_id, $tag_id = 0) 405 public function getEntriesByViewCount($view, $user_id, $tag_id = 0)
@@ -422,7 +426,7 @@ class Database {
422 } 426 }
423 427
424 $query = $this->executeQuery($sql, $params); 428 $query = $this->executeQuery($sql, $params);
425 list($count) = $query->fetch(); 429 list($count) = ($query) ? $query->fetch() : array(false);
426 430
427 return $count; 431 return $count;
428 } 432 }
@@ -445,26 +449,34 @@ class Database {
445 $query = $this->executeQuery($sql, $params); 449 $query = $this->executeQuery($sql, $params);
446 $id = $query->fetchAll(); 450 $id = $query->fetchAll();
447 451
448 return $id; 452 return ($query) ? $id : false;
449 } 453 }
450 454
451 public function getPreviousArticle($id, $user_id) 455 public function getPreviousArticle($id, $user_id)
452 { 456 {
453 $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ? AND is_read=0) AND user_id=? AND is_read=0"; 457 $sqlcondition = "is_read=0";
458 if (STORAGE == 'postgres') {
459 $sqlcondition = "is_read=false";
460 }
461 $sql = "SELECT id FROM entries WHERE id = (SELECT max(id) FROM entries WHERE id < ? AND " . $sqlcondition . ") AND user_id=? AND " . $sqlcondition;
454 $params = array($id, $user_id); 462 $params = array($id, $user_id);
455 $query = $this->executeQuery($sql, $params); 463 $query = $this->executeQuery($sql, $params);
456 $id_entry = $query->fetchAll(); 464 $id_entry = ($query) ? $query->fetchAll() : false;
457 $id = $id_entry[0][0]; 465 $id = ($query) ? $id_entry[0][0] : false;
458 return $id; 466 return $id;
459 } 467 }
460 468
461 public function getNextArticle($id, $user_id) 469 public function getNextArticle($id, $user_id)
462 { 470 {
463 $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ? AND is_read=0) AND user_id=? AND is_read=0"; 471 $sqlcondition = "is_read=0";
472 if (STORAGE == 'postgres') {
473 $sqlcondition = "is_read=false";
474 }
475 $sql = "SELECT id FROM entries WHERE id = (SELECT min(id) FROM entries WHERE id > ? AND " . $sqlcondition . ") AND user_id=? AND " . $sqlcondition;
464 $params = array($id, $user_id); 476 $params = array($id, $user_id);
465 $query = $this->executeQuery($sql, $params); 477 $query = $this->executeQuery($sql, $params);
466 $id_entry = $query->fetchAll(); 478 $id_entry = ($query) ? $query->fetchAll() : false;
467 $id = $id_entry[0][0]; 479 $id = ($query) ? $id_entry[0][0] : false;
468 return $id; 480 return $id;
469 } 481 }
470 482
@@ -540,7 +552,7 @@ class Database {
540 $sql_action .= $this->getEntriesOrder().' ' . $limit; 552 $sql_action .= $this->getEntriesOrder().' ' . $limit;
541 $params_action = array($user_id, $search, $search, $search); 553 $params_action = array($user_id, $search, $search, $search);
542 $query = $this->executeQuery($sql_action, $params_action); 554 $query = $this->executeQuery($sql_action, $params_action);
543 return $query->fetchAll(); 555 return ($query) ? $query->fetchAll() : false;
544 } 556 }
545 557
546 public function retrieveAllTags($user_id, $term = NULL) 558 public function retrieveAllTags($user_id, $term = NULL)
@@ -553,23 +565,23 @@ class Database {
553 GROUP BY tags.id, tags.value 565 GROUP BY tags.id, tags.value
554 ORDER BY tags.value"; 566 ORDER BY tags.value";
555 $query = $this->executeQuery($sql, (($term)? array($user_id, strtolower('%'.$term.'%')) : array($user_id) )); 567 $query = $this->executeQuery($sql, (($term)? array($user_id, strtolower('%'.$term.'%')) : array($user_id) ));
556 $tags = $query->fetchAll(); 568 $tags = ($query) ? $query->fetchAll() : false;
557 569
558 return $tags; 570 return $tags;
559 } 571 }
560 572
561 public function retrieveTag($id, $user_id) 573 public function retrieveTag($id, $user_id)
562 { 574 {
563 $tag = NULL;
564 $sql = "SELECT DISTINCT tags.* FROM tags 575 $sql = "SELECT DISTINCT tags.* FROM tags
565 LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id 576 LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id
566 LEFT JOIN entries ON tags_entries.entry_id=entries.id 577 LEFT JOIN entries ON tags_entries.entry_id=entries.id
567 WHERE tags.id=? AND entries.user_id=?"; 578 WHERE tags.id=? AND entries.user_id=?";
568 $params = array(intval($id), $user_id); 579 $params = array(intval($id), $user_id);
569 $query = $this->executeQuery($sql, $params); 580 $query = $this->executeQuery($sql, $params);
570 $tag = $query->fetchAll(); 581 $tags = ($query) ? $query->fetchAll() : false;
582 $tag = ($query) ? $tags[0] : false;
571 583
572 return isset($tag[0]) ? $tag[0] : NULL; 584 return $tag[0];
573 } 585 }
574 586
575 public function retrieveEntriesByTag($tag_id, $user_id) 587 public function retrieveEntriesByTag($tag_id, $user_id)
@@ -579,7 +591,7 @@ class Database {
579 LEFT JOIN tags_entries ON tags_entries.entry_id=entries.id 591 LEFT JOIN tags_entries ON tags_entries.entry_id=entries.id
580 WHERE tags_entries.tag_id = ? AND entries.user_id=? ORDER by entries.id DESC"; 592 WHERE tags_entries.tag_id = ? AND entries.user_id=? ORDER by entries.id DESC";
581 $query = $this->executeQuery($sql, array($tag_id, $user_id)); 593 $query = $this->executeQuery($sql, array($tag_id, $user_id));
582 $entries = $query->fetchAll(); 594 $entries = ($query) ? $query->fetchAll() : false;
583 595
584 return $entries; 596 return $entries;
585 } 597 }
@@ -591,7 +603,7 @@ class Database {
591 LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id 603 LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id
592 WHERE tags_entries.entry_id = ?"; 604 WHERE tags_entries.entry_id = ?";
593 $query = $this->executeQuery($sql, array($entry_id)); 605 $query = $this->executeQuery($sql, array($entry_id));
594 $tags = $query->fetchAll(); 606 $tags = ($query) ? $query->fetchAll() : false;
595 607
596 return $tags; 608 return $tags;
597 } 609 }
@@ -601,38 +613,40 @@ class Database {
601 $sql_action = "DELETE FROM tags_entries WHERE tag_id=? AND entry_id=?"; 613 $sql_action = "DELETE FROM tags_entries WHERE tag_id=? AND entry_id=?";
602 $params_action = array($tag_id, $entry_id); 614 $params_action = array($tag_id, $entry_id);
603 $query = $this->executeQuery($sql_action, $params_action); 615 $query = $this->executeQuery($sql_action, $params_action);
604 return $query; 616 return ($query) ? $query : false;
605 } 617 }
606 618
607 public function cleanUnusedTag($tag_id) 619 public function cleanUnusedTag($tag_id)
608 { 620 {
609 $sql_action = "SELECT tags.* FROM tags JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?"; 621 $sql_action = "SELECT tags.* FROM tags JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?";
610 $query = $this->executeQuery($sql_action,array($tag_id)); 622 $query = $this->executeQuery($sql_action,array($tag_id));
611 $tagstokeep = $query->fetchAll(); 623 $tagstokeep = ($query) ? $query->fetchAll() : false;
612 $sql_action = "SELECT tags.* FROM tags LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?"; 624 $sql_action = "SELECT tags.* FROM tags LEFT JOIN tags_entries ON tags_entries.tag_id=tags.id WHERE tags.id=?";
613 $query = $this->executeQuery($sql_action,array($tag_id)); 625 $query = $this->executeQuery($sql_action,array($tag_id));
614 $alltags = $query->fetchAll(); 626 $alltags = ($query) ? $query->fetchAll() : false;
615 627
616 foreach ($alltags as $tag) { 628 if ($tagstokeep && $alltags) {
617 if ($tag && !in_array($tag,$tagstokeep)) { 629 foreach ($alltags as $tag) {
618 $sql_action = "DELETE FROM tags WHERE id=?"; 630 if ($tag && !in_array($tag,$tagstokeep)) {
619 $params_action = array($tag[0]); 631 $sql_action = "DELETE FROM tags WHERE id=?";
620 $this->executeQuery($sql_action, $params_action); 632 $params_action = array($tag[0]);
621 return true; 633 $this->executeQuery($sql_action, $params_action);
634 return true;
635 }
622 } 636 }
637 } else {
638 return false;
623 } 639 }
624
625 } 640 }
626 641
627 public function retrieveTagByValue($value) 642 public function retrieveTagByValue($value)
628 { 643 {
629 $tag = NULL;
630 $sql = "SELECT * FROM tags WHERE value=?"; 644 $sql = "SELECT * FROM tags WHERE value=?";
631 $params = array($value); 645 $params = array($value);
632 $query = $this->executeQuery($sql, $params); 646 $query = $this->executeQuery($sql, $params);
633 $tag = $query->fetchAll(); 647 $tag = ($query) ? $query->fetchAll() : false;
634 648
635 return isset($tag[0]) ? $tag[0] : null; 649 return ($query) ? $tag[0] : false;
636 } 650 }
637 651
638 public function createTag($value) 652 public function createTag($value)
@@ -640,7 +654,7 @@ class Database {
640 $sql_action = 'INSERT INTO tags ( value ) VALUES (?)'; 654 $sql_action = 'INSERT INTO tags ( value ) VALUES (?)';
641 $params_action = array($value); 655 $params_action = array($value);
642 $query = $this->executeQuery($sql_action, $params_action); 656 $query = $this->executeQuery($sql_action, $params_action);
643 return $query; 657 return ($query) ? $query : false;
644 } 658 }
645 659
646 public function setTagToEntry($tag_id, $entry_id) 660 public function setTagToEntry($tag_id, $entry_id)
@@ -648,7 +662,7 @@ class Database {
648 $sql_action = 'INSERT INTO tags_entries ( tag_id, entry_id ) VALUES (?, ?)'; 662 $sql_action = 'INSERT INTO tags_entries ( tag_id, entry_id ) VALUES (?, ?)';
649 $params_action = array($tag_id, $entry_id); 663 $params_action = array($tag_id, $entry_id);
650 $query = $this->executeQuery($sql_action, $params_action); 664 $query = $this->executeQuery($sql_action, $params_action);
651 return $query; 665 return ($query) ? $query : false;
652 } 666 }
653 667
654 private function getEntriesOrder() 668 private function getEntriesOrder()
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index baa08788..ea196ce2 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -266,6 +266,15 @@ class Poche
266 } 266 }
267 foreach($entry_ids as $id) { 267 foreach($entry_ids as $id) {
268 $msg = 'delete link #' . $id; 268 $msg = 'delete link #' . $id;
269
270 // deleting tags and tags_entries
271 $tags = $this->store->retrieveTagsByEntry($id);
272 foreach ($tags as $tag) {
273 $this->store->removeTagForEntry($id, $tag['id']);
274 $this->store->cleanUnusedTag($tag['id']);
275 }
276
277 // deleting pictures
269 if ($this->store->deleteById($id, $this->user->getId())) { 278 if ($this->store->deleteById($id, $this->user->getId())) {
270 if (DOWNLOAD_PICTURES) { 279 if (DOWNLOAD_PICTURES) {
271 Picture::removeDirectory(ABS_PATH . $id); 280 Picture::removeDirectory(ABS_PATH . $id);
@@ -278,7 +287,7 @@ class Poche
278 } 287 }
279 Tools::logm($msg); 288 Tools::logm($msg);
280 } 289 }
281 Tools::redirect(); 290 Tools::redirect('?');
282 break; 291 break;
283 case 'toggle_fav' : 292 case 'toggle_fav' :
284 $this->store->favoriteById($id, $this->user->getId()); 293 $this->store->favoriteById($id, $this->user->getId());
@@ -441,6 +450,7 @@ class Poche
441 $token = $this->user->getConfigValue('token'); 450 $token = $this->user->getConfigValue('token');
442 $http_auth = (isset($_SERVER['PHP_AUTH_USER']) || isset($_SERVER['REMOTE_USER'])) ? true : false; 451 $http_auth = (isset($_SERVER['PHP_AUTH_USER']) || isset($_SERVER['REMOTE_USER'])) ? true : false;
443 $only_user = ($this->store->listUsers() > 1) ? false : true; 452 $only_user = ($this->store->listUsers() > 1) ? false : true;
453 $https = substr(Tools::getPocheUrl(), 0, 5) == 'https';
444 $tpl_vars = array( 454 $tpl_vars = array(
445 'themes' => $themes, 455 'themes' => $themes,
446 'languages' => $languages, 456 'languages' => $languages,
@@ -453,7 +463,8 @@ class Poche
453 'token' => $token, 463 'token' => $token,
454 'user_id' => $this->user->getId(), 464 'user_id' => $this->user->getId(),
455 'http_auth' => $http_auth, 465 'http_auth' => $http_auth,
456 'only_user' => $only_user 466 'only_user' => $only_user,
467 'https' => $https
457 ); 468 );
458 Tools::logm('config view'); 469 Tools::logm('config view');
459 break; 470 break;
@@ -590,7 +601,7 @@ class Poche
590 601
591 $count = $this->store->getEntriesByViewCount($view, $this->user->getId(), $id); 602 $count = $this->store->getEntriesByViewCount($view, $this->user->getId(), $id);
592 603
593 if ($count > 0) { 604 if ($count && $count > 0) {
594 $this->pagination->set_total($count); 605 $this->pagination->set_total($count);
595 $page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')), 606 $page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')),
596 $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . (($id)?'&id='.$id:'') . '&' )); 607 $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . (($id)?'&id='.$id:'') . '&' ));
@@ -894,14 +905,18 @@ class Poche
894 */ 905 */
895 public function export() 906 public function export()
896 { 907 {
897 $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json"; 908 $filename = "wallabag-export-".$this->user->getId()."-".date("Y-m-d").".json";
898 header('Content-Disposition: attachment; filename='.$filename); 909 header('Content-Disposition: attachment; filename='.$filename);
899 910
900 $entries = $this->store->retrieveAllWithTags($this->user->getId()); 911 $entries = $this->store->retrieveAllWithTags($this->user->getId());
901 echo $this->tpl->render('export.twig', array( 912 if ($entries) {
902 'export' => Tools::renderJson($entries), 913 echo $this->tpl->render('export.twig', array(
903 )); 914 'export' => Tools::renderJson($entries),
904 Tools::logm('export view'); 915 ));
916 Tools::logm('export view');
917 } else {
918 Tools::logm('error accessing database while exporting');
919 }
905 } 920 }
906 921
907 /** 922 /**
@@ -977,7 +992,7 @@ class Poche
977 if (0 == $limit) { 992 if (0 == $limit) {
978 $limit = count($entries); 993 $limit = count($entries);
979 } 994 }
980 if (count($entries) > 0) { 995 if ($entries && count($entries) > 0) {
981 for ($i = 0; $i < min(count($entries), $limit); $i++) { 996 for ($i = 0; $i < min(count($entries), $limit); $i++) {
982 $entry = $entries[$i]; 997 $entry = $entries[$i];
983 $newItem = $feed->createNewItem(); 998 $newItem = $feed->createNewItem();
@@ -989,7 +1004,10 @@ class Poche
989 $feed->addItem($newItem); 1004 $feed->addItem($newItem);
990 } 1005 }
991 } 1006 }
992 1007 else
1008 {
1009 Tools::logm("database error while generating feeds");
1010 }
993 $feed->genarateFeed(); 1011 $feed->genarateFeed();
994 exit; 1012 exit;
995 } 1013 }