diff options
Diffstat (limited to 'inc')
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 | |||
5 | body: //div[@id='content']//article | ||
6 | |||
7 | strip_id_or_class: appel-soutien | ||
8 | strip_id_or_class: liste dossiers-content | ||
9 | |||
10 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')] | ||
6 | test_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 | ||
4 | author: //a[ contains(@href, '/people') ] | 4 | author: //a[ contains(@href, '/people') ] |
5 | 5 | ||
6 | body: //div[ @class='post' ] | 6 | body: //article[contains(concat(' ',normalize-space(@class),' '),' post ')] |
7 | |||
8 | strip_id_or_class: section learn-more | ||
9 | strip_id_or_class: section comments | ||
10 | strip_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. |
9 | test_url: http://blog.cloudflare.com/understanding-analytics-when-is-a-page-view-n \ No newline at end of file | 13 | test_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 | |||
5 | body: //article[contains(concat(' ',normalize-space(@class),' '),' article-content ')]//section | ||
6 | |||
7 | strip_id_or_class: sommaire | ||
8 | |||
9 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' post_content ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' page ')] | ||
6 | |||
7 | strip_id_or_class: dw__toc | ||
8 | |||
9 | test_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 | |||
5 | body: //article//section | ||
6 | test_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 | |||
5 | body: //div[@id='getsocialmain'] | ||
6 | test_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 | |||
5 | body: //div[@id='text'] | ||
6 | |||
7 | strip_id_or_class: paranumber | ||
8 | strip_id_or_class: go-top | ||
9 | |||
10 | test_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 @@ | |||
1 | body: //*[(@class = "content")] | ||
2 | test_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 | |||
5 | body: //div[@id='article-body'] | ||
6 | test_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 @@ | |||
1 | body: //*[(@id = "mid")] | ||
2 | test_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 | |||
5 | body: //section[contains(concat(' ',normalize-space(@class),' '),' main-content ')] | ||
6 | test_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 | |||
5 | body: //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 '))] | ||
6 | test_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 | |||
6 | body: //article//section | ||
7 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' post-content ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' post_inner_wrapper ')] | ||
6 | |||
7 | strip_id_or_class: toc_container | ||
8 | |||
9 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' post-content ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' entry-content ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' field-body ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' entry ')] | ||
6 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' post ')] | ||
6 | test_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...? |
8 | date: //p[@class="tagline"]//@datetime | 8 | date: //p[@class="tagline"]//@datetime |
9 | 9 | ||
10 | body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1] | 10 | #body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1] |
11 | |||
12 | body: //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 | ||
12 | strip_id_or_class: tagline | 14 | strip_id_or_class: tagline |
13 | strip_id_or_class: unvotable-message | 15 | strip_id_or_class: unvotable-message |
@@ -18,4 +20,4 @@ single_page_link: //p[@class="title"]/a[contains(@href, 'http://')] | |||
18 | 20 | ||
19 | test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/ | 21 | test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/ |
20 | test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/ | 22 | test_url: http://www.reddit.com/r/worldnews/comments/1as37r/twelve_north_korean_soldiers_attempting_to_defect/ |
21 | test_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 | 23 | test_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 | |||
5 | body: //div[contains(concat(' ',normalize-space(@class),' '),' node-content ')] | ||
6 | test_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 | |||
5 | body: //article//section | ||
6 | test_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 | } |