aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Lœuillet <nicolas@loeuillet.org>2014-11-15 20:48:49 +0100
committerNicolas Lœuillet <nicolas@loeuillet.org>2014-11-15 20:48:49 +0100
commit153237671001225dea40957e33e67fe16e6124fc (patch)
tree4f5ec06050233f9cd5740904785edcbc65eb2cd9
parent44d35257e805856b4913c63fcbed3c0acb64bae8 (diff)
parentd3122db7b267b384cd70f368328a9ed024719135 (diff)
downloadwallabag-153237671001225dea40957e33e67fe16e6124fc.tar.gz
wallabag-153237671001225dea40957e33e67fe16e6124fc.tar.zst
wallabag-153237671001225dea40957e33e67fe16e6124fc.zip
Merge pull request #932 from wallabag/dev1.8.1
1.8.1
-rw-r--r--.gitignore4
-rw-r--r--Vagrantfile71
-rw-r--r--inc/3rdparty/class.messages.php2
-rwxr-xr-xinc/3rdparty/site_config/standard/512pixels.net.txt4
-rwxr-xr-xinc/3rdparty/site_config/standard/README.md8
-rw-r--r--inc/3rdparty/site_config/standard/adme.ru.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/alexduner.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/anandtech.com.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/apotheke-adhoc.de.txt23
-rwxr-xr-xinc/3rdparty/site_config/standard/arstechnica.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/autocar.co.uk.txt13
-rwxr-xr-xinc/3rdparty/site_config/standard/bbc.co.uk.txt17
-rwxr-xr-xinc/3rdparty/site_config/standard/bbc.com.txt60
-rwxr-xr-xinc/3rdparty/site_config/standard/bit-tech.net.txt19
-rwxr-xr-xinc/3rdparty/site_config/standard/bleacherreport.com.txt16
-rwxr-xr-xinc/3rdparty/site_config/standard/blogs.faz.net.txt45
-rwxr-xr-xinc/3rdparty/site_config/standard/brasil.elpais.com.txt7
-rwxr-xr-xinc/3rdparty/site_config/standard/businessweek.com.txt41
-rwxr-xr-xinc/3rdparty/site_config/standard/buzzfeed.com.txt11
-rwxr-xr-xinc/3rdparty/site_config/standard/canonrumors.com.txt28
-rwxr-xr-xinc/3rdparty/site_config/standard/chomsky.info.txt3
-rwxr-xr-xinc/3rdparty/site_config/standard/cn.reuters.com.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/code.fivefilters.org.txt4
-rwxr-xr-xinc/3rdparty/site_config/standard/csmonitor.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/da.feedsportal.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/designsponge.com.txt31
-rwxr-xr-xinc/3rdparty/site_config/standard/desitvforum.net.txt4
-rwxr-xr-xinc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt29
-rwxr-xr-xinc/3rdparty/site_config/standard/dictionary.reference.com.txt8
-rwxr-xr-xinc/3rdparty/site_config/standard/dropbox.com.txt4
-rwxr-xr-xinc/3rdparty/site_config/standard/echo-online.de.txt24
-rwxr-xr-xinc/3rdparty/site_config/standard/economist.com.txt7
-rwxr-xr-xinc/3rdparty/site_config/standard/eurogamer.net.txt13
-rwxr-xr-xinc/3rdparty/site_config/standard/facebook.com.txt9
-rwxr-xr-x[-rw-r--r--]inc/3rdparty/site_config/standard/faz.net.txt0
-rwxr-xr-xinc/3rdparty/site_config/standard/finance.yahoo.com.txt4
-rwxr-xr-xinc/3rdparty/site_config/standard/fivechapters.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/fivefilters.org.txt5
-rwxr-xr-xinc/3rdparty/site_config/standard/foreignpolicy.com.txt8
-rwxr-xr-xinc/3rdparty/site_config/standard/golem.de.txt53
-rwxr-xr-xinc/3rdparty/site_config/standard/heise.de.txt43
-rwxr-xr-xinc/3rdparty/site_config/standard/hosted.ap.org.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/itunes.apple.com.txt14
-rwxr-xr-xinc/3rdparty/site_config/standard/kachiblog.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/lifehacker.co.uk.txt7
-rwxr-xr-xinc/3rdparty/site_config/standard/mainpost.de.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/medialens.org.txt3
-rwxr-xr-xinc/3rdparty/site_config/standard/medium.com.txt13
-rwxr-xr-xinc/3rdparty/site_config/standard/menshealth.com.sg.txt12
-rwxr-xr-xinc/3rdparty/site_config/standard/northumberlandview.ca.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/nytimes.com.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/real.gr.txt6
-rwxr-xr-xinc/3rdparty/site_config/standard/reddit.com.txt5
-rwxr-xr-xinc/3rdparty/site_config/standard/searchengineland.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/sourcebooks.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/tabletmag.com.txt5
-rwxr-xr-xinc/3rdparty/site_config/standard/tagesspiegel.de.txt60
-rwxr-xr-xinc/3rdparty/site_config/standard/techmeme.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/theatlantic.com.txt2
-rwxr-xr-xinc/3rdparty/site_config/standard/theglobeandmail.com.txt7
-rwxr-xr-xinc/3rdparty/site_config/standard/theguardian.com.txt13
-rwxr-xr-xinc/3rdparty/site_config/standard/theverge.com.txt7
-rwxr-xr-xinc/3rdparty/site_config/standard/thisiscolossal.com.txt25
-rwxr-xr-xinc/3rdparty/site_config/standard/towerofthehand.com.txt10
-rwxr-xr-xinc/3rdparty/site_config/standard/twitter.com.txt3
-rwxr-xr-xinc/3rdparty/site_config/standard/vanityfair.com.txt5
-rwxr-xr-xinc/3rdparty/site_config/standard/wn.de.txt18
-rwxr-xr-xinc/poche/Database.class.php8
-rw-r--r--inc/poche/Language.class.php3
-rwxr-xr-xinc/poche/Poche.class.php4
-rwxr-xr-xinc/poche/Routing.class.php2
-rwxr-xr-xinc/poche/Tools.class.php3
-rwxr-xr-xinc/poche/config.inc.default.php2
-rwxr-xr-xinstall/index.php10
-rw-r--r--install/mysql.sql12
-rw-r--r--locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mobin12987 -> 15691 bytes
-rw-r--r--locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po249
-rw-r--r--locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mobin0 -> 15782 bytes
-rw-r--r--locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po666
-rw-r--r--locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mobin16505 -> 17885 bytes
-rw-r--r--locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po52
-rw-r--r--themes/baggy/_menu.twig1
-rwxr-xr-xthemes/baggy/_pocheit-form.twig6
-rw-r--r--themes/baggy/_search-form.twig10
-rwxr-xr-xthemes/baggy/about.twig74
-rwxr-xr-xthemes/baggy/config.twig120
-rwxr-xr-xthemes/baggy/css/main.css194
-rwxr-xr-xthemes/baggy/edit-tags.twig4
-rwxr-xr-xthemes/baggy/home.twig17
-rwxr-xr-xthemes/baggy/js/init.js5
-rw-r--r--themes/baggy/login.twig8
-rwxr-xr-xthemes/baggy/tags.twig4
-rwxr-xr-xthemes/courgette/home.twig14
-rw-r--r--themes/default/_menu.twig1
-rwxr-xr-xthemes/default/_sorting.twig4
-rwxr-xr-xthemes/default/about.twig74
-rwxr-xr-xthemes/default/config.twig129
-rw-r--r--themes/default/css/messages.css5
-rwxr-xr-xthemes/default/css/style.css11
-rwxr-xr-xthemes/default/edit-tags.twig6
-rwxr-xr-xthemes/default/home.twig13
-rw-r--r--themes/default/js/popupForm.js61
-rwxr-xr-xthemes/default/js/saveLink.js34
103 files changed, 2186 insertions, 501 deletions
diff --git a/.gitignore b/.gitignore
index aec2e3ef..5b34c79f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,9 @@
1.DS_Store
1assets/* 2assets/*
2cache/* 3cache/*
3vendor 4vendor
4composer.phar 5composer.phar
5db/poche.sqlite 6db/poche.sqlite
6inc/poche/config.inc.php 7inc/poche/config.inc.php
7inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/ \ No newline at end of file 8inc/3rdparty/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/
9.vagrant \ No newline at end of file
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 00000000..221ad6db
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,71 @@
1
2$script_sqlite = <<SCRIPT
3apt-get update
4apt-get install -y apache2 php5 php5-sqlite php5-xdebug
5apt-get clean -y
6echo "ServerName localhost" >> /etc/apache2/apache2.conf
7service apache2 restart
8rm -f /var/www/html/index.html
9date > /etc/vagrant_provisioned_at
10SCRIPT
11
12$script_mysql = <<SCRIPT
13export DEBIAN_FRONTEND=noninteractive
14apt-get update
15apt-get install -y apache2 php5 php5-mysql php5-xdebug mysql-server mysql-client
16apt-get clean -y
17echo "ServerName localhost" >> /etc/apache2/apache2.conf
18service apache2 restart
19service mysql restart
20echo "create database wallabag;" | mysql -u root
21rm -f /var/www/html/index.html
22date > /etc/vagrant_provisioned_at
23SCRIPT
24
25$script_postgres = <<SCRIPT
26export DEBIAN_FRONTEND=noninteractive
27apt-get update
28apt-get install -y apache2 php5 php5-pgsql php5-xdebug postgresql postgresql-contrib
29apt-get clean -y
30echo "ServerName localhost" >> /etc/apache2/apache2.conf
31service apache2 restart
32service postgresql restart
33rm -f /var/www/html/index.html
34date > /etc/vagrant_provisioned_at
35SCRIPT
36
37Vagrant.configure("2") do |config|
38
39 config.vm.define "sqlite" do |m|
40 m.vm.box = "ubuntu/trusty64"
41 m.vm.provision "shell", inline: $script_sqlite
42 m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
43 end
44
45 config.vm.define "mysql" do |m|
46 m.vm.box = "ubuntu/trusty64"
47 m.vm.provision "shell", inline: $script_mysql
48 m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
49 end
50
51 config.vm.define "postgres" do |m|
52 m.vm.box = "ubuntu/trusty64"
53 m.vm.provision "shell", inline: $script_postgres
54 m.vm.synced_folder ".", "/var/www/html", owner: "www-data", group: "www-data"
55 end
56
57 config.vm.define "debian7" do |m|
58 m.vm.box = "chef/debian-7.6"
59 m.vm.provision "shell", inline: $script_sqlite
60 m.vm.synced_folder ".", "/var/www", owner: "www-data", group: "www-data"
61 end
62
63 config.vm.define "debian6" do |m|
64 m.vm.box = "chef/debian-6.0.10"
65 m.vm.provision "shell", inline: $script_sqlite
66 m.vm.synced_folder ".", "/var/www", owner: "www-data", group: "www-data"
67 end
68
69 config.vm.network :forwarded_port, guest: 80, host: 8003
70 #config.vm.network "public_network", :bridge => "en0: Wi-Fi (AirPort)"
71end
diff --git a/inc/3rdparty/class.messages.php b/inc/3rdparty/class.messages.php
index 27c28f43..fbca0df0 100644
--- a/inc/3rdparty/class.messages.php
+++ b/inc/3rdparty/class.messages.php
@@ -44,7 +44,7 @@ class Messages {
44 var $msgId; 44 var $msgId;
45 var $msgTypes = array( 'help', 'info', 'warning', 'success', 'error' ); 45 var $msgTypes = array( 'help', 'info', 'warning', 'success', 'error' );
46 var $msgClass = 'messages'; 46 var $msgClass = 'messages';
47 var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>X</a>\n%s</div>\n"; 47 var $msgWrapper = "<div class='%s %s'><a href='#' class='closeMessage'>&times;</a>\n%s</div>\n";
48 var $msgBefore = '<p>'; 48 var $msgBefore = '<p>';
49 var $msgAfter = "</p>\n"; 49 var $msgAfter = "</p>\n";
50 50
diff --git a/inc/3rdparty/site_config/standard/512pixels.net.txt b/inc/3rdparty/site_config/standard/512pixels.net.txt
index e458980f..02a996f7 100755
--- a/inc/3rdparty/site_config/standard/512pixels.net.txt
+++ b/inc/3rdparty/site_config/standard/512pixels.net.txt
@@ -1,2 +1,2 @@
1title: substring-before(//title, '&mdash;') 1title: //meta[@property='og:title']/@content
2test_url: http://512pixels.net/more-on-linked-lists/ \ No newline at end of file 2test_url: http://www.512pixels.net/blog/2014/10/the-move
diff --git a/inc/3rdparty/site_config/standard/README.md b/inc/3rdparty/site_config/standard/README.md
index 9040ba85..ab5b12d9 100755
--- a/inc/3rdparty/site_config/standard/README.md
+++ b/inc/3rdparty/site_config/standard/README.md
@@ -1,12 +1,14 @@
1Full-Text RSS site config files 1Full-Text RSS site config files
2================ 2================
3 3
4[Full-Text RSS](http://fivefilters.org/content-only/), our article extraction tool, makes use of site-specific extraction rules to improve results. Each time a URL is processed, it checks to see if there are extraction rules for the site being processed. If there are no site patterns, it tries to detect the content block automatically. 4[Full-Text RSS](http://fivefilters.org/content-only/), our article extraction tool, makes use of site-specific extraction rules to improve results. Each time a URL is processed, it checks to see if there are extraction rules for the site being processed. If there are no rules are found, it tries to detect the content block automatically.
5 5
6This repository contains the site config files we use in Full-Text RSS. 6This repository contains the site-specific extraction rules we rely on in Full-Text RSS.
7 7
8### Contributing changes 8### Contributing changes
9 9
10We run automated tests on these files to detect issues. If you'd like to help keep these up to date, please look at the [test results](http://siteconfig.fivefilters.org/test/) and see which files you'd like to contribute fixes for.
11
10We chose GitHub for this set of files because they offer one feature which we hope will make contributing changes easier: [file editing](https://github.com/blog/844-forking-with-the-edit-button) through the web interface. 12We chose GitHub for this set of files because they offer one feature which we hope will make contributing changes easier: [file editing](https://github.com/blog/844-forking-with-the-edit-button) through the web interface.
11 13
12You can now make changes to any of our site config files and request that your changes be pulled into the main set we maintain. This is what GitHub calls the Fork and Pull model: 14You can now make changes to any of our site config files and request that your changes be pulled into the main set we maintain. This is what GitHub calls the Fork and Pull model:
@@ -31,7 +33,7 @@ Marco, Instapaper's creator, graciously opened up the database of contributions
31 33
32> And, recognizing that your efforts could be useful to a wide range of other tools and services, I'll make the list of all of these site-specific configurations available to the public, free, with no strings attached. 34> And, recognizing that your efforts could be useful to a wide range of other tools and services, I'll make the list of all of these site-specific configurations available to the public, free, with no strings attached.
33 35
34Most of the extraction rules in our set are borrowed from Instapaper. You can see the list maintained by Instapaper at [instapaper.com/bodytext/](http://instapaper.com/bodytext/) (login required). 36Most of the extraction rules in our set are borrowed from Instapaper. You can see the list maintained by Instapaper at [instapaper.com/bodytext/](http://instapaper.com/bodytext/) (no longer available since Instapaper was sold).
35 37
36### Testing site config files 38### Testing site config files
37 39
diff --git a/inc/3rdparty/site_config/standard/adme.ru.txt b/inc/3rdparty/site_config/standard/adme.ru.txt
new file mode 100644
index 00000000..b929685d
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/adme.ru.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.adme.ru%2Ftvorchestvo-hudozhniki%2Fprostoj-kak-5-kopeek-hudozhnik-557405%2F
4
5body: //article[contains(concat(' ',normalize-space(@class),' '),' article ')]
6test_url: http://www.adme.ru/tvorchestvo-hudozhniki/prostoj-kak-5-kopeek-hudozhnik-557405/
diff --git a/inc/3rdparty/site_config/standard/alexduner.com.txt b/inc/3rdparty/site_config/standard/alexduner.com.txt
index bd9de9d7..3897f9ec 100755
--- a/inc/3rdparty/site_config/standard/alexduner.com.txt
+++ b/inc/3rdparty/site_config/standard/alexduner.com.txt
@@ -1,4 +1,4 @@
1body: //section[@class='content'] 1body: //section[@class='content']
2date: //span[1] 2date: //span[1]
3author: //h1[@id='sitetitle'] 3author: //h1[@id='sitetitle']
4test_url: https://alexduner.com/blog/2013/1/something-i-learned-today \ No newline at end of file 4test_url: http://alexduner.com/blog/something-i-learned-today
diff --git a/inc/3rdparty/site_config/standard/anandtech.com.txt b/inc/3rdparty/site_config/standard/anandtech.com.txt
index 7d804918..fc95c5d8 100755
--- a/inc/3rdparty/site_config/standard/anandtech.com.txt
+++ b/inc/3rdparty/site_config/standard/anandtech.com.txt
@@ -1,3 +1,5 @@
1body: //section[@class='main_cont']/img | //div[@class='articleContent']
2title: //div[@class='blog_top_left']//h2
1author: //a[@class='b'][1] 3author: //a[@class='b'][1]
2date: substring-after(substring-before(//div, 'Posted in'), ' on ') 4date: substring-after(substring-before(//div, 'Posted in'), ' on ')
3strip_image_src: /content/images/globals/ 5strip_image_src: /content/images/globals/
@@ -8,4 +10,6 @@ prune: no
8 10
9single_page_link: concat('http://www.anandtech.com/print/', substring-after(//meta[@property='og:url']/@content, '/show/')) 11single_page_link: concat('http://www.anandtech.com/print/', substring-after(//meta[@property='og:url']/@content, '/show/'))
10 12
11test_url: http://www.anandtech.com/show/5812/eurocom-monster-10-clevos-little-monster/ \ No newline at end of file 13test_url: http://www.anandtech.com/show/8370/gigabyte-am1m-s2h-review
14test_url: http://www.anandtech.com/show/8402/sandisk-releases-ultra-ii-ssd-the-second-tlc-nand-ssd-in-the-market
15test_url: http://www.anandtech.com/show/8400/arms-cortex-m-even-smaller-and-lower-power-cpu-cores
diff --git a/inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt b/inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt
new file mode 100755
index 00000000..3a702e7b
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/apotheke-adhoc.de.txt
@@ -0,0 +1,23 @@
1# Author: zinnober
2
3prune: no
4
5title: substring-before(//div[@id='content']/h1, ',')
6
7single_page_link: //a[@title='Seite drucken']
8
9body: //div[@id='detail-body']
10
11replace_string(<span class="description">): <em>
12replace_string(<p class="leadtext"><small>): <p class="leadtext">
13
14# Fix headlines
15replace_string(Patrick Hollstein): &nbsp;
16replace_string(APOTHEKE ADHOC): &nbsp;
17replace_string(dpa): &nbsp;
18replace_string(Katharina Lübke): &nbsp;
19replace_string(Julia Pradel): &nbsp;
20replace_string(Franziska Gerhardt): &nbsp;
21
22test_url: http://www.apotheke-adhoc.de/nachrichten/politik/nachricht-detail-politik/deutscher-apothekertag-antraege-gegen-lieferengpaesse-2/
23
diff --git a/inc/3rdparty/site_config/standard/arstechnica.com.txt b/inc/3rdparty/site_config/standard/arstechnica.com.txt
index 767f6800..eb92aa2c 100755
--- a/inc/3rdparty/site_config/standard/arstechnica.com.txt
+++ b/inc/3rdparty/site_config/standard/arstechnica.com.txt
@@ -13,5 +13,7 @@ title: //div[@id='story']//h2[@class='title']
13strip: //div[@class='pager'] 13strip: //div[@class='pager']
14next_page_link: //nav//a[span/@class='next']/@href 14next_page_link: //nav//a[span/@class='next']/@href
15 15
16native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
17
16test_url: http://arstechnica.com/tech-policy/news/2012/02/gigabit-internet-for-80-the-unlikely-success-of-californias-sonicnet.ars 18test_url: http://arstechnica.com/tech-policy/news/2012/02/gigabit-internet-for-80-the-unlikely-success-of-californias-sonicnet.ars
17test_url: http://arstechnica.com/apple/2005/04/macosx-10-4/ 19test_url: http://arstechnica.com/apple/2005/04/macosx-10-4/
diff --git a/inc/3rdparty/site_config/standard/autocar.co.uk.txt b/inc/3rdparty/site_config/standard/autocar.co.uk.txt
new file mode 100755
index 00000000..9f4fe18b
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/autocar.co.uk.txt
@@ -0,0 +1,13 @@
1title: //div[@class='col-center']/h1
2author: //div[@class='personality']/a
3date: //div[@class='personality-date']
4body: //div[@class='content-top ']//div[@class='content'][1] | //div[contains(@class,'article-body')] | //div[contains(@class,'main-article')]
5
6next_page_link: //div[@id='review-link']/a
7
8strip: //div[@class='author-block']
9strip: //p//iframe[contains(@src,'signup')]/preceding::p[1]
10
11test_url: http://www.autocar.co.uk/car-review/volkswagen/golf
12test_url: http://www.autocar.co.uk/car-news/pebble-beach/saleen-unveils-performance-electric-vehicle-based-tesla-model-s
13test_url: http://www.autocar.co.uk/car-review/rolls-royce/first-drives/rolls-royce-ghost-series-ii-first-drive-review
diff --git a/inc/3rdparty/site_config/standard/bbc.co.uk.txt b/inc/3rdparty/site_config/standard/bbc.co.uk.txt
index ef1f491a..bad77654 100755
--- a/inc/3rdparty/site_config/standard/bbc.co.uk.txt
+++ b/inc/3rdparty/site_config/standard/bbc.co.uk.txt
@@ -13,7 +13,7 @@ body: //div[contains(@class, 'hrecipe')]//div[@id='subcolumn-1']
13#strip: //div[@class="story-feature narrow"] 13#strip: //div[@class="story-feature narrow"]
14#strip: //div[@class="story-feature wide"] 14#strip: //div[@class="story-feature wide"]
15#strip: //div[@class="story-feature dslideshow-enclosure"] 15#strip: //div[@class="story-feature dslideshow-enclosure"]
16strip: //div[contains(@class, "story-feature")] 16strip: //div[contains(@class, "story-feature") and not(contains(@class, 'full-width'))]
17strip: //span[@class="story-date"] 17strip: //span[@class="story-date"]
18#strip: //div[@class="caption body-narrow-width"] 18#strip: //div[@class="caption body-narrow-width"]
19strip: //div[@class="warning"]//p 19strip: //div[@class="warning"]//p
@@ -30,13 +30,26 @@ strip: //div[contains(@class, 'comment-introduction')]
30strip: //div[contains(@class, 'share-tools')] 30strip: //div[contains(@class, 'share-tools')]
31strip: //div[@id='also-related-links'] 31strip: //div[@id='also-related-links']
32 32
33strip_id_or_class: share-help
34strip_id_or_class: comments_module
35
33replace_string(<noscript>): <div> 36replace_string(<noscript>): <div>
34replace_string(</noscript>): </div> 37replace_string(</noscript>): </div>
35 38
39tidy: no
36prune: no 40prune: no
37 41
38dissolve: //h2 42dissolve: //h2
43
39test_url: http://www.bbc.co.uk/sport/0/football/23224017 44test_url: http://www.bbc.co.uk/sport/0/football/23224017
45test_contains: Swansea City have completed the club-record signing
46
40test_url: http://www.bbc.co.uk/news/business-15060862 47test_url: http://www.bbc.co.uk/news/business-15060862
48test_contains: Europe's leaders are meeting again to try to solve
49
50# news feed
51test_url: http://feeds.bbci.co.uk/news/rss.xml
52# sports feed
53test_url: http://feeds.bbci.co.uk/sport/0/football/rss.xml?edition=int
41# video entry 54# video entry
42test_url: http://www.bbc.co.uk/news/world-asia-22056933 \ No newline at end of file 55test_url: http://www.bbc.co.uk/news/world-asia-22056933
diff --git a/inc/3rdparty/site_config/standard/bbc.com.txt b/inc/3rdparty/site_config/standard/bbc.com.txt
new file mode 100755
index 00000000..c04a683e
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/bbc.com.txt
@@ -0,0 +1,60 @@
1body: //div[@class="story-body"]
2# for video entries
3body: //div[contains(@class, "videoInStory") or @id="meta-information"]
4title: //h1[@class="story-header"]
5date: //span[@class="story-date"]/span[@class='date']
6# for sport site
7date: //meta[@name='DCTERMS.created']/@content
8author: //div[@id='headline']//span[@class='byline-name']
9
10# recipes, e.g. http://www.bbc.co.uk/food/recipes/mymincepies_71055
11body: //div[contains(@class, 'hrecipe')]//div[@id='subcolumn-1']
12
13#strip: //div[@class="story-feature narrow"]
14#strip: //div[@class="story-feature wide"]
15#strip: //div[@class="story-feature dslideshow-enclosure"]
16strip: //div[contains(@class, "story-feature") and not(contains(@class, 'full-width'))]
17strip: //span[@class="story-date"]
18#strip: //div[@class="caption body-narrow-width"]
19strip: //div[@class="warning"]//p
20strip: //div[@id='page-bookmark-links-head']
21strip: //object
22strip: //div[contains(@class, "bbccom_advert_placeholder")]
23strip: //div[contains(@class, "embedded-hyper")]
24strip: //div[contains(@class, 'market-data')]
25strip: //a[contains(@class, 'hidden')]
26strip: //div[contains(@class, 'hypertabs')]
27strip: //div[contains(@class, 'related')]
28strip: //form[@id='comment-form']
29strip: //div[contains(@class, 'comment-introduction')]
30strip: //div[contains(@class, 'share-tools')]
31strip: //div[@id='also-related-links']
32
33strip_id_or_class: share-help
34strip_id_or_class: comments_module
35
36replace_string(<noscript>): <div>
37replace_string(</noscript>): </div>
38
39native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
40
41tidy: no
42prune: no
43
44dissolve: //h2
45
46test_url: http://www.bbc.com/sport/0/football/28918021
47test_contains: Cameroonian footballer Albert Ebosse has died
48
49test_url: http://www.bbc.com/sport/0/football/23224017
50
51test_url: http://www.bbc.com/news/business-15060862
52test_contains: Europe's leaders are meeting again to try
53
54
55# news feed
56test_url: http://feeds.bbci.co.uk/news/rss.xml
57# sports feed
58test_url: http://feeds.bbci.co.uk/sport/0/football/rss.xml?edition=int
59# video entry
60test_url: http://www.bbc.com/news/world-asia-22056933
diff --git a/inc/3rdparty/site_config/standard/bit-tech.net.txt b/inc/3rdparty/site_config/standard/bit-tech.net.txt
new file mode 100755
index 00000000..c6f5b204
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/bit-tech.net.txt
@@ -0,0 +1,19 @@
1body: //div[@id='column_1']
2next_page_link: //div[@class='next']/a[not(contains(@href, '/comments') or contains(@href, '/news/'))]
3prune: no
4
5author: substring-after(//p[@class='byline'], 'by ')
6date: substring-before(substring-after(//p[@class='byline'], 'on '), ' by')
7
8strip: //h1
9strip_id_or_class: socialLinks
10strip_id_or_class: byline
11strip_id_or_class: pageSelector
12strip_id_or_class: articleTabs
13strip_id_or_class: pageNav
14strip_id_or_class: share
15strip_id_or_class: commentsContainer
16strip_id_or_class: below_article_related
17
18test_url: http://www.bit-tech.net/hardware/storage/2014/08/13/ocz-arc-100-240gb-review/1
19test_url: http://www.bit-tech.net/news/bits/2014/08/15/google-trojan/1
diff --git a/inc/3rdparty/site_config/standard/bleacherreport.com.txt b/inc/3rdparty/site_config/standard/bleacherreport.com.txt
new file mode 100755
index 00000000..9205e44e
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/bleacherreport.com.txt
@@ -0,0 +1,16 @@
1body: //div[contains(@class, 'article_pages')]
2
3strip_id_or_class: article_page-header
4strip_id_or_class: paginator
5strip_id_or_class: article_info
6
7find_string: src="data:image
8replace_string: ignore-src="data:image
9find_string: data-defer-src="
10replace_string: src="
11
12prune: no
13
14test_url: http://bleacherreport.com/articles/feed
15test_url: http://bleacherreport.com/articles/2137787-christian-ponders-newborn-daughter-was-named-after-fsu-legend-bobby-bowden
16test_url: http://bleacherreport.com/articles/2137596-college-football-week-1-picks-unlv-runnin-rebels-vs-arizona-wildcats/ \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/blogs.faz.net.txt b/inc/3rdparty/site_config/standard/blogs.faz.net.txt
new file mode 100755
index 00000000..4f2626f1
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/blogs.faz.net.txt
@@ -0,0 +1,45 @@
1# Author: zinnober
2
3tidy: no
4prune: no
5
6# Set author
7author: //a[@rel='author']
8
9# Set date
10date: //span[@class='Datum']
11
12# Content is here
13body: //div[@class='Artikel']
14
15# Tidy up before article
16strip: //div[@id='FAZHeaderNeu']
17strip: //h2[@itemprop='headline']
18strip: //span[@class='Datum']
19strip: //span[@class='Autor']
20strip_id_or_class: ArticlePagerTop
21strip: //div[@class='FAZArtikelEinleitung']/h2
22
23# General cleanup
24strip: //div[@class='clear']
25strip: //span[@class='Bildnachweis']
26strip: //iframe
27strip_id_or_class: Community
28strip: ' · '
29
30# Remove tracking and ads
31strip_image_src: /l.gif?
32strip: //img[@width='1']
33strip_id_or_class: invisible
34strip_id_or_class: Anzeige
35strip_id_or_class: billboard
36
37# Remove clutter after article
38strip_id_or_class: Tagline
39strip_id_or_class: ArtikelAbbinder
40strip_id_or_class: FAZArtikelKommentare
41strip_id_or_class: ArtikelKommentieren
42strip_id_or_class: FAZContentRight
43
44# Try it yourself
45test_url: http://blogs.faz.net/wost/2014/08/17/viel-fuck-und-wenig-guter-sex-1239/
diff --git a/inc/3rdparty/site_config/standard/brasil.elpais.com.txt b/inc/3rdparty/site_config/standard/brasil.elpais.com.txt
index 0b8feb6a..6a22dcb7 100755
--- a/inc/3rdparty/site_config/standard/brasil.elpais.com.txt
+++ b/inc/3rdparty/site_config/standard/brasil.elpais.com.txt
@@ -19,5 +19,8 @@ strip: //p[@class='nota_pie']
19strip: //div[starts-with(@id, 'sumario') and contains(., 'más información')] 19strip: //div[starts-with(@id, 'sumario') and contains(., 'más información')]
20strip: //div[@id='coment' or @id='foros_not'] 20strip: //div[@id='coment' or @id='foros_not']
21 21
22test_url: http://elpais.com/elpais/2012/02/06/gente/1328526783_491687.html 22test_url: http://brasil.elpais.com/brasil/2014/10/15/politica/1413334841_878730.html
23test_url: http://www.elpais.com/articulo/cultura/mano/retrato/materia/elpepicul/20120207elpepicul_2/Tes 23test_contains: O PT quer intensificar a presença do ex-presidente
24
25test_url: http://brasil.elpais.com/brasil/2014/10/13/internacional/1413225730_450761.html
26test_contains: Todos na localidade onde ele nasceu ainda falavam da façanha
diff --git a/inc/3rdparty/site_config/standard/businessweek.com.txt b/inc/3rdparty/site_config/standard/businessweek.com.txt
index 03085593..f546b708 100755
--- a/inc/3rdparty/site_config/standard/businessweek.com.txt
+++ b/inc/3rdparty/site_config/standard/businessweek.com.txt
@@ -1,30 +1,17 @@
1# story has several pages, should be detected 1# include the lead graphic in the body, if available
2body: //div[@id='storyBody'] 2body: //div[contains(concat(' ', normalize-space(@id), ' '), ' lead_graphic ')] | //div[contains(concat(' ', normalize-space(@itemprop), ' '), ' articleBody ')]
3body: //div[@id='article_body'] 3title: //h1[contains(concat(' ', normalize-space(@itemprop), ' '), ' headline ')]
4body: //div[@id='story_body'] 4date: //time[contains(concat(' ', normalize-space(@itemprop), ' '), ' datePublished ')]
5 5
6title://h1[@id='article_headline'] 6strip_id_or_class: photo_credit
7 7strip_id_or_class: photo_caption
8# article author 8strip_id_or_class: inline_gallery
9author: //p[@class='author']/a 9# pull quote, often inside a blockquote element
10# story author(s) 10strip_id_or_class: pq
11author: substring-after(//p[@class='byline'], 'By ') 11strip_id_or_class: credit
12 12strip_id_or_class: figcaption
13# article date 13strip_id_or_class: related_item
14date: //span[@class='published_date']
15# story date
16date: //span[@class='date']
17
18date: substring-after(//div[contains(@class,'attributor')],'on')
19strip_id_or_class: inset
20strip: //p/span[@class='photoCredit']
21strip: //h1
22
23strip_id_or_class: page_count
24strip_id_or_class: tools
25strip_id_or_class: pagination
26
27single_page_link: //li[@id='stPrint']/a
28 14
29test_url: http://www.businessweek.com/magazine/buyback-insurance-a-good-deal-for-retailers-07282011.html 15test_url: http://www.businessweek.com/magazine/buyback-insurance-a-good-deal-for-retailers-07282011.html
30test_url: http://www.businessweek.com/articles/2012-06-06/american-pain-the-largest-u-dot-s-dot-pill-mills-rise-and-fall \ No newline at end of file 16test_url: http://www.businessweek.com/articles/2012-06-06/american-pain-the-largest-u-dot-s-dot-pill-mills-rise-and-fall
17test_url: http://www.businessweek.com/articles/2014-07-09/american-apparel-dov-charneys-sleazy-struggle-for-control
diff --git a/inc/3rdparty/site_config/standard/buzzfeed.com.txt b/inc/3rdparty/site_config/standard/buzzfeed.com.txt
index 97dddaee..ea88ea47 100755
--- a/inc/3rdparty/site_config/standard/buzzfeed.com.txt
+++ b/inc/3rdparty/site_config/standard/buzzfeed.com.txt
@@ -10,6 +10,15 @@ date: //time[@data-print='date']
10body: //div[@data-print='body'] 10body: //div[@data-print='body']
11body: //section[@data-print='body'] 11body: //section[@data-print='body']
12 12
13find_string: rel:bf_image_src=
14replace_string: src=
15find_string: src="data:
16replace_string: disabled_src="data:
17
18native_ad_clue: //meta[@property="article:section" and @content="Advertiser"]
19
13# For various things... 20# For various things...
14strip: *[@data-print="ignore"] 21strip: *[@data-print="ignore"]
15test_url: http://www.buzzfeed.com/hgrant/35-reasons-why-dogs-hate-the-holidays \ No newline at end of file 22test_url: http://www.buzzfeed.com/hgrant/35-reasons-why-dogs-hate-the-holidays
23# Native ad
24test_url: http://www.buzzfeed.com/bravo/ways-to-up-your-online-dating-game \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/canonrumors.com.txt b/inc/3rdparty/site_config/standard/canonrumors.com.txt
new file mode 100755
index 00000000..c22cf4f1
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/canonrumors.com.txt
@@ -0,0 +1,28 @@
1# Author: zinnober
2
3tidy: no
4prune: no
5
6# Set title
7title: //h2
8
9date: //li[@class='time']
10
11# Set author
12author: //a[contains(@rel, 'author')]
13
14# Content is here
15body: //div[@id='content']
16
17# Tidy up before article
18strip: //div[@class='meta']
19
20# Tidy up after article
21strip_id_or_class: nr_related_placeholder
22strip_id_or_class: twitter-share-button
23strip_id_or_class: afterpost
24strip_id_or_class: tags
25
26# Try it yourself
27test_url: http://www.canonrumors.com/2014/09/chuck-westfall-talks-canon-eos-7d-mark-ii/
28test_url: http://www.canonrumors.com/2014/09/canon-cinema-eos-captures-space-in-4k-for-new-imax-3d-film/
diff --git a/inc/3rdparty/site_config/standard/chomsky.info.txt b/inc/3rdparty/site_config/standard/chomsky.info.txt
index 31440538..2645f119 100755
--- a/inc/3rdparty/site_config/standard/chomsky.info.txt
+++ b/inc/3rdparty/site_config/standard/chomsky.info.txt
@@ -2,4 +2,5 @@ title: //div[@class='title']
2author: //div[@class='author'] 2author: //div[@class='author']
3prune: no 3prune: no
4 4
5test_url: http://www.chomsky.info/onchomsky/2002----.htm \ No newline at end of file 5test_url: http://www.chomsky.info/onchomsky/2002----.htm
6test_contains: The propaganda model argues
diff --git a/inc/3rdparty/site_config/standard/cn.reuters.com.txt b/inc/3rdparty/site_config/standard/cn.reuters.com.txt
index b3878662..28f10472 100755
--- a/inc/3rdparty/site_config/standard/cn.reuters.com.txt
+++ b/inc/3rdparty/site_config/standard/cn.reuters.com.txt
@@ -1,5 +1,9 @@
1title: //div[@id='maincontent']//h1 1title: //div[@id='maincontent']//h1
2body: //div[@id='resizeableText'] 2body: //div[@id='resizeableText']
3 3
4single_page_link: concat(//link[@rel='canonical']/@href, '?sp=true')
5
4test_url: http://cn.reuters.com/article/CNAnalysesNews/idCNKBS0FF0NM20140710 6test_url: http://cn.reuters.com/article/CNAnalysesNews/idCNKBS0FF0NM20140710
5test_url: http://cn.reuters.feedsportal.com/CNAnalysesNews \ No newline at end of file 7test_url: http://cn.reuters.feedsportal.com/CNAnalysesNews
8# multipage link
9test_url: http://cn.reuters.com/article/idCNKBS0FF0UL20140710 \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/code.fivefilters.org.txt b/inc/3rdparty/site_config/standard/code.fivefilters.org.txt
index 269fb547..f8a88cae 100755
--- a/inc/3rdparty/site_config/standard/code.fivefilters.org.txt
+++ b/inc/3rdparty/site_config/standard/code.fivefilters.org.txt
@@ -1 +1,3 @@
1body: //div[@id='content'] 1body: //div[@id='readme']
2
3test_url: http://code.fivefilters.org/full-text-rss
diff --git a/inc/3rdparty/site_config/standard/csmonitor.com.txt b/inc/3rdparty/site_config/standard/csmonitor.com.txt
index b482e34e..70ab9885 100755
--- a/inc/3rdparty/site_config/standard/csmonitor.com.txt
+++ b/inc/3rdparty/site_config/standard/csmonitor.com.txt
@@ -15,4 +15,4 @@ strip_id_or_class: promotion-tag
15tidy: no 15tidy: no
16prune: no 16prune: no
17 17
18test_url: www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Earliest-warnings-1979-84 \ No newline at end of file 18test_url: http://www.csmonitor.com/World/Middle-East/2011/1108/Imminent-Iran-nuclear-threat-A-timeline-of-warnings-since-1979/Earliest-warnings-1979-84
diff --git a/inc/3rdparty/site_config/standard/da.feedsportal.com.txt b/inc/3rdparty/site_config/standard/da.feedsportal.com.txt
index 381446e5..2bd66be8 100755
--- a/inc/3rdparty/site_config/standard/da.feedsportal.com.txt
+++ b/inc/3rdparty/site_config/standard/da.feedsportal.com.txt
@@ -2,4 +2,4 @@ single_page_link: //a
2tidy: no 2tidy: no
3prune: no 3prune: no
4 4
5test_url: da.feedsportal.com/c/585/f/413794/s/17037b5a/l/0L0Stelegraaf0Bnl0Cbinnenland0C10A2757860C0I0IKlacht0Itegen0Idr0B0IFrank0Iniet0I0Eontvankelijk0I0I0Bhtml0Dcid0Frss/ia1.htm \ No newline at end of file 5test_url: http://da.feedsportal.com/c/585/f/413794/s/17037b5a/l/0L0Stelegraaf0Bnl0Cbinnenland0C10A2757860C0I0IKlacht0Itegen0Idr0B0IFrank0Iniet0I0Eontvankelijk0I0I0Bhtml0Dcid0Frss/ia1.htm
diff --git a/inc/3rdparty/site_config/standard/designsponge.com.txt b/inc/3rdparty/site_config/standard/designsponge.com.txt
new file mode 100755
index 00000000..2cd2f1f6
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/designsponge.com.txt
@@ -0,0 +1,31 @@
1# Author: zinnober
2
3tidy: no
4prune: no
5
6# Set title
7title: //header/h1
8
9# Set author
10author: //a[rel='author']
11
12# Content is here
13body: //article
14
15# Tidy up before article
16strip: //header
17
18# Tidy up article
19strip: //div[contains(@id, 'gallery-')]
20replace_string(<a rel="attachment): <p rel="attachment
21
22
23# Tidy up after article
24strip: //div[@class='sm']
25strip_id_or_class: related
26strip_id_or_class: comments
27strip: //footer
28
29# Try it yourself
30test_url: http://www.designsponge.com/2010/06/seattle-design-guide.html
31test_url: http://www.designsponge.com/2012/04/sneak-peek-liz-cook.html
diff --git a/inc/3rdparty/site_config/standard/desitvforum.net.txt b/inc/3rdparty/site_config/standard/desitvforum.net.txt
index efa85f76..c77007b7 100755
--- a/inc/3rdparty/site_config/standard/desitvforum.net.txt
+++ b/inc/3rdparty/site_config/standard/desitvforum.net.txt
@@ -2,4 +2,6 @@ body: (//blockquote[contains(@class, 'postcontent')])[1]
2body: (//div[starts-with(@id, 'post_message')])[1] 2body: (//div[starts-with(@id, 'post_message')])[1]
3 3
4prune: no 4prune: no
5tidy: no \ No newline at end of file 5tidy: no
6
7test_url: http://www.desitvforum.net/forum/watch-online/431739-creature-3d-2014-watch-online-download-dvd-rip.html
diff --git a/inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt b/inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt
new file mode 100755
index 00000000..36709cab
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/deutsche-apotheker-zeitung.de.txt
@@ -0,0 +1,29 @@
1# Author: zinnober
2
3prune: yes
4tidy: yes
5
6title: //h1
7date: //p[@class='news_datum']
8author: //span[@class='author']
9
10body: //div[@class='tagesnews-content']
11
12# General clenaup
13strip_id_or_class: dachzeile
14strip: //h3
15strip: //p[@class='bodytext']//a
16strip_id_or_class: autor_datum
17strip_id_or_class: comments
18strip_id_or_class: banner-
19
20strip: //p[contains(., 'Lesen Sie')]
21strip: //p[contains(., '– in DAZ')]
22
23# Fix image captions
24replace_string(<p class="image_caption">): <p><small><em>
25replace_string(</dd>): </em></small></dd>
26
27test_url: http://www.deutsche-apotheker-zeitung.de/pharmazie/news/2014/09/03/weniger-nebenwirkungen-aber-kein-zusatznutzen/13715.html
28test_url: http://www.deutsche-apotheker-zeitung.de/recht/news/2014/09/02/urteile-zum-cannabis-eigenanbau-bfarm-geht-in-berufung/13716.html
29
diff --git a/inc/3rdparty/site_config/standard/dictionary.reference.com.txt b/inc/3rdparty/site_config/standard/dictionary.reference.com.txt
index f8b79c80..b8243d0c 100755
--- a/inc/3rdparty/site_config/standard/dictionary.reference.com.txt
+++ b/inc/3rdparty/site_config/standard/dictionary.reference.com.txt
@@ -1,8 +1,6 @@
1title: //h1[@id='query_h1'] 1body: //div[contains(@class, 'source-data')]
2body: //div[contains(@class, 'lunatext results_content')] 2strip: //button
3strip_id_or_class: spl_unshd
4#replace_string(<div class="dicTl">): <div class="dicTl">------------------<br />
5 3
6prune: no 4prune: no
7 5
8test_url: http://www.wired.com/cloudline/2011/10/meet-arms-cortex-a15-the-future-of-the-ipad-and-possibly-the-macbook-air/ \ No newline at end of file 6test_url: http://dictionary.reference.com/browse/propaganda
diff --git a/inc/3rdparty/site_config/standard/dropbox.com.txt b/inc/3rdparty/site_config/standard/dropbox.com.txt
index 92ae31b2..3b51569f 100755
--- a/inc/3rdparty/site_config/standard/dropbox.com.txt
+++ b/inc/3rdparty/site_config/standard/dropbox.com.txt
@@ -1 +1,3 @@
1single_page_link: //a[@id='download_button_link'] \ No newline at end of file 1single_page_link: //a[@id='download_button_link']
2
3test_url: https://www.dropbox.com/s/qmocfrco2t0d28o/Fluffbeast.docx
diff --git a/inc/3rdparty/site_config/standard/echo-online.de.txt b/inc/3rdparty/site_config/standard/echo-online.de.txt
new file mode 100755
index 00000000..e53de23e
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/echo-online.de.txt
@@ -0,0 +1,24 @@
1# Author: Marvin Dickhaus <github@marvindickhaus.de>
2# 2014-10-08
3
4#Tidy just messes up the DOM
5tidy: no
6
7title: //h1
8body: //h2 | //div[@id='artikelteaser'] | //div[@id='artikeltext']
9
10#Strip
11strip_image_src: artikel_a_merken.gif
12strip: //div[@class='zusatzinfo']
13
14#Author: substring is used to remove the " Von " prefix.
15author: substring(//li[@class='artikelautor'], 5)
16
17date: //li[@class='artikeldatum']
18
19#The first two URLs will at some point no longer show
20#the full article. There is a time-based paywall
21#installed. Using the feed should present valid output
22test_url: http://www.echo-online.de/art1231,5503063
23test_url: http://www.echo-online.de/art1168,5502598
24test_url: http://www.echo-online.de/rss/darmstadt.xml
diff --git a/inc/3rdparty/site_config/standard/economist.com.txt b/inc/3rdparty/site_config/standard/economist.com.txt
index 16c9ed64..8db5fdd6 100755
--- a/inc/3rdparty/site_config/standard/economist.com.txt
+++ b/inc/3rdparty/site_config/standard/economist.com.txt
@@ -1,8 +1,13 @@
1body: //div[@class='main-content'] 1body: //div[@class='main-content']
2body: //article[contains(@class, 'resp-node')]
2date: //time[@class='date-created'] 3date: //time[@class='date-created']
3strip: //aside 4strip: //aside
4prune: no 5prune: no
5 6
6autodetect_next_page: no 7autodetect_next_page: no
7 8
8test_url: http://www.economist.com/node/21528429 \ No newline at end of file 9test_url: http://www.economist.com/node/21528429
10
11test_url: http://www.economist.com/news/essays/21623373-which-something-old-and-powerful-encountered-vault
12test_contains: the calfskin pages are smooth
13test_contains: Books will evolve online and off
diff --git a/inc/3rdparty/site_config/standard/eurogamer.net.txt b/inc/3rdparty/site_config/standard/eurogamer.net.txt
index 8a351667..8931becb 100755
--- a/inc/3rdparty/site_config/standard/eurogamer.net.txt
+++ b/inc/3rdparty/site_config/standard/eurogamer.net.txt
@@ -1,8 +1,9 @@
1body: //div[ @class='content' ] | //div[ @class='blog-entry' ] 1body: //p[@class='strapline'] | //div[@class='cover-image'] | //article[@class='hd']
2strip: //div[@class='social top']
3strip: //p[@class='byline']
2 4
3strip: //h2/abbr | //div[ @class='lowleader' ] | //*[ @class='discussion' ] | //img[ @class='play-button' ] | //div[ @class='boxout' ] | //h2/a | //h2 | //h2/div | //p[ @class='timestamp' ] | //a[ @class='eurogamer-author' ] | //p[ @class='aPager' ] | //h1 | //div[ @id='lowleader' ] | //a[ @class='next' ] | //div[contains(concat(' ', normalize-space(@class), ' '), ' pullquote ')] 5date: //span[@itemprop='datePublished']
6author: //a[@itemprop='author']/text()
4 7
5date://p[ @class='timestamp' ] 8test_url: http://www.eurogamer.net/articles/2014-08-20-bungie-ordered-to-return-shares-to-composer-marty-odonnell
6 9test_url: http://www.eurogamer.net/articles/2014-08-20-invisible-inc-does-espionage-justice
7author://a[ @class='eurogamer-author' ]
8test_url: http://www.eurogamer.net/articles/digitalfoundry-vs-unreal-engine-4 \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/facebook.com.txt b/inc/3rdparty/site_config/standard/facebook.com.txt
index 6a492767..26d4f905 100755
--- a/inc/3rdparty/site_config/standard/facebook.com.txt
+++ b/inc/3rdparty/site_config/standard/facebook.com.txt
@@ -1,5 +1,12 @@
1body: //div[@id='imagestage'] 1body: //div[@id='imagestage']
2body: //div[contains(@class, 'userContentWrapper')]
3
4strip_id_or_class: commentable
5
2prune: no 6prune: no
3tidy: no 7tidy: no
4 8
5test_url: https://www.facebook.com/feeds/page.php?id=338077742912613&format=rss20 \ No newline at end of file 9# single_page_link: replace(substring-after(//noscript//meta[@http-equiv="refresh"]/@content, 'URL='), "&amp;", "&")
10
11test_url: https://www.facebook.com/permalink.php?story_fbid=10154584776550183&id=294468630182
12test_contains: holding an extraordinary session in Brussels this month
diff --git a/inc/3rdparty/site_config/standard/faz.net.txt b/inc/3rdparty/site_config/standard/faz.net.txt
index 47048a1b..47048a1b 100644..100755
--- a/inc/3rdparty/site_config/standard/faz.net.txt
+++ b/inc/3rdparty/site_config/standard/faz.net.txt
diff --git a/inc/3rdparty/site_config/standard/finance.yahoo.com.txt b/inc/3rdparty/site_config/standard/finance.yahoo.com.txt
index 248522cb..0c967db0 100755
--- a/inc/3rdparty/site_config/standard/finance.yahoo.com.txt
+++ b/inc/3rdparty/site_config/standard/finance.yahoo.com.txt
@@ -5,8 +5,8 @@ strip: //div[contains(@class, 'related-companies')]
5strip: //div[@id='y-article-related'] 5strip: //div[@id='y-article-related']
6strip: //div[@id='ypf-article-related'] 6strip: //div[@id='ypf-article-related']
7prune: no 7prune: no
8tidy: no
8 9
9single_page_link: //div[@class='ft']//a[contains(@href, 'page=all')] 10single_page_link: //div[@class='ft']//a[contains(@href, 'page=all')]
10 11
11test_url: http://sg.finance.yahoo.com/news/Motorola-takes-wraps-249-rsg-3508842732.html?x=0&.v=1 12test_url: http://finance.yahoo.com/news/canadian-orebodies-gives-notice-exercise-130000032.html \ No newline at end of file
12test_url: http://finance.yahoo.com/news/super-young-retirement-savers.html \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/fivechapters.com.txt b/inc/3rdparty/site_config/standard/fivechapters.com.txt
index d9c5e42e..9614d2f6 100755
--- a/inc/3rdparty/site_config/standard/fivechapters.com.txt
+++ b/inc/3rdparty/site_config/standard/fivechapters.com.txt
@@ -1,2 +1,2 @@
1body: //div[@class='entry'] 1body: //div[@class='entry']
2test_url: http://www.fivechapters.com/2010/paris-part-one/ \ No newline at end of file 2test_url: http://www.fivechapters.com/2014/the-saddest-writer-in-america-part-two/
diff --git a/inc/3rdparty/site_config/standard/fivefilters.org.txt b/inc/3rdparty/site_config/standard/fivefilters.org.txt
index dc1db432..f37f02b9 100755
--- a/inc/3rdparty/site_config/standard/fivefilters.org.txt
+++ b/inc/3rdparty/site_config/standard/fivefilters.org.txt
@@ -1 +1,4 @@
1prune: no \ No newline at end of file 1body: //section[contains(@class, 'container')]
2prune: no
3
4test_url: http://fivefilters.org/kindle-it/
diff --git a/inc/3rdparty/site_config/standard/foreignpolicy.com.txt b/inc/3rdparty/site_config/standard/foreignpolicy.com.txt
index 4e84b989..853a5b7b 100755
--- a/inc/3rdparty/site_config/standard/foreignpolicy.com.txt
+++ b/inc/3rdparty/site_config/standard/foreignpolicy.com.txt
@@ -1,15 +1,19 @@
1title: //div[@class='translateHead']//h1 | //div[@id='art-mast']//h1 1title: //div[@class='translateHead']//h1 | //div[@id='art-mast']//h1
2author: substring-after(//span[@id='by-line'], 'BY ') 2author: substring-after(//span[@id='by-line'], 'BY ')
3date: //span[@id='pub-date'] 3date: //span[@id='pub-date']
4body: //div[@id='art-mast']/h2 | //div[@class='translateBody'] | //div[@id='art-body'] 4body: (//article//img[contains(@class, 'main_photo')])[1] | (//article//div[contains(@class, 'full_post_content')])[1]
5#body: //div[@id='art-mast']/h2 | //div[@class='translateBody'] | //div[@id='art-body']
5#Strip inside article content 6#Strip inside article content
6strip: //div[@id='share-box'] 7strip: //div[@id='share-box']
7strip: //div[@id='special-box'] 8strip: //div[@id='special-box
9
10strip_id_or_class: side_panel
8 11
9prune: no 12prune: no
10 13
11single_page_link: //span[@id='controls']/a[contains(@href, 'print=yes')] 14single_page_link: //span[@id='controls']/a[contains(@href, 'print=yes')]
12single_page_link: //a[text()='SINGLE PAGE'] 15single_page_link: //a[text()='SINGLE PAGE']
13 16
17test_url: http://www.foreignpolicy.com/articles/2014/07/22/the_end_game_in_gaza_netanyahu_hamas
14test_url: http://www.foreignpolicy.com/articles/2011/08/01/a_murderers_manifesto_and_me 18test_url: http://www.foreignpolicy.com/articles/2011/08/01/a_murderers_manifesto_and_me
15test_url: http://www.foreignpolicy.com/articles/2012/02/29/five_years_in_damascus \ No newline at end of file 19test_url: http://www.foreignpolicy.com/articles/2012/02/29/five_years_in_damascus \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/golem.de.txt b/inc/3rdparty/site_config/standard/golem.de.txt
index 6afdebe8..c64860c0 100755
--- a/inc/3rdparty/site_config/standard/golem.de.txt
+++ b/inc/3rdparty/site_config/standard/golem.de.txt
@@ -1,25 +1,34 @@
1# Jens Kohl, jens.kohl@... 1# Author: zinnober
2# - Added publication date 2# Rewrite of original template which fetched the printer-version without pictures
3# - Striped pagination block
4# - Added single page link
5# - Added xpath-querys for the printer friendly version
6 3
7title: //h1 4tidy: no
8body: //div[@class='formatted']
9prune: no 5prune: no
10 6
11date: substring-after(//li[2][@class="text1"], 'Datum:') 7# Set full title
12strip: //ol[@class="list-chapters"] 8title: //h1
13strip_comments: yes 9
14 10date: //time
15# next: commands for printer friendly pages 11
16single_page_link: //a[contains(@href, 'print.php?a=')]/@href 12# Content is here
17title: //body/h3 13body: //article
18strip_image_src: staticrl/images/logo.jpg 14
19strip_image_src: http://cpx.golem.de/cpx.php?class=7 15# Fetch full multipage articles
20strip: //body/h3 16next_page_link: //a[@id='atoc_next']
21strip: //body/b[1] 17
22strip: //body/b[2] 18# Remove tracking and ads
23strip: //body/b[3] 19strip_id_or_class: iqadtile4
24strip: //div[1] 20
25test_url: http://www.golem.de/1112/88696.html \ No newline at end of file 21# General Cleanup
22strip_id_or_class: list-jtoc
23strip_id_or_class: table-jtoc
24strip_id_or_class: implied
25strip_id_or_class: social-
26strip_id_or_class: comments
27strip_id_or_class: footer
28
29# Tidy up galleries (could still be improved, though)
30strip: //img[@src='']
31
32# Try yourself
33test_url: http://www.golem.de/news/intel-core-i7-5960x-im-test-die-pc-revolution-beginnt-mit-octacore-und-ddr4-1408-108893.html
34test_url: http://www.golem.de/news/test-infamous-first-light-neonbunter-actionspass-1408-108914.html
diff --git a/inc/3rdparty/site_config/standard/heise.de.txt b/inc/3rdparty/site_config/standard/heise.de.txt
index c51af561..9433104b 100755
--- a/inc/3rdparty/site_config/standard/heise.de.txt
+++ b/inc/3rdparty/site_config/standard/heise.de.txt
@@ -1,7 +1,42 @@
1single_page_link: //p[@class='news_option']/a 1# Author: zinnober
2# Template should work well with either desktop or mobile version (m.heise.de)
2 3
4prune: no
5
6title: //article/h1 | //h1
3date: //p[@class='news_datum'] 7date: //p[@class='news_datum']
4title: //h1 8author: //h4[@class='author']
5body: //div[@class='meldung_wrapper'] 9
10body: //article | //div[@class='meldung_wrapper']
11
12# General cleanup
13strip: //time
14strip: //h4[@class='author']
15strip: //p[@class='news_datum']
16strip: //p[@class='artikel_datum']
17strip: //a[contains(@href, 'mailto')]
18strip_id_or_class: comments
19strip_id_or_class: ISI_IGNORE
20strip_id_or_class: clear
21
22strip_id_or_class: linkurl_grossbild
23strip_id_or_class: image-num
24strip_id_or_class: heisebox_right
25strip_id_or_class: dossier
26
27# Strip Ads
28strip_id_or_class: ad_
29
30# Some optimizations
31replace_string(<h5>): <h2>
32replace_string(</h5>): </h2>
33replace_string(<span class="bild_rechts"): <p
34replace_string(<div class="heisebox">): <blockquote>
35
36
37next_page_link: //a[@class='next']
38next_page_link: //a[@title='vor']
6 39
7test_url: http://www.heise.de/newsticker/meldung/Europa-soll-Grundrechteschutz-im-Netz-staerken-1392664.html \ No newline at end of file 40test_url: http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-3-15-2196231.html
41test_url: http://m.heise.de/open/artikel/Die-Neuerungen-von-Linux-3-15-2196231.html
42test_url: http://www.heise.de/newsticker/meldung/Ueberwachungstechnik-Die-globale-Handy-Standortueberwachung-2301494.html
diff --git a/inc/3rdparty/site_config/standard/hosted.ap.org.txt b/inc/3rdparty/site_config/standard/hosted.ap.org.txt
index dfd81937..a660f23b 100755
--- a/inc/3rdparty/site_config/standard/hosted.ap.org.txt
+++ b/inc/3rdparty/site_config/standard/hosted.ap.org.txt
@@ -2,4 +2,4 @@ body: //table[@class='ap-smallphoto-table'] | //div[@class='body']//*[@class='en
2tidy: no 2tidy: no
3strip_image_src: analytics.apnewsregistry 3strip_image_src: analytics.apnewsregistry
4 4
5test_url: http://hosted.ap.org/dynamic/stories/U/US_SPENDING_SHOWDOWN?SITE=FLPET&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2011-04-06-07-46-50 \ No newline at end of file 5test_url: http://hosted.ap.org/dynamic/stories/E/EU_TURKEY_KURDS?SITE=KSNEW&SECTION=HOME&TEMPLATE=DEFAULT&CTIME=2014-10-14-10-50-25
diff --git a/inc/3rdparty/site_config/standard/itunes.apple.com.txt b/inc/3rdparty/site_config/standard/itunes.apple.com.txt
new file mode 100755
index 00000000..ffd95561
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/itunes.apple.com.txt
@@ -0,0 +1,14 @@
1body: //div[@id='left-stack' or contains(@class, 'center-stack')]
2
3find_string: class="artwork" src="
4replace_string: class="artwork" src-disabled="
5find_string: src-swap-high-dpi="
6replace_string: src="
7
8strip_id_or_class: rating
9strip_id_or_class: listeners-also-bought
10
11prune: no
12
13test_url: https://itunes.apple.com/us/rss/topaudiobooks/limit=10/xml
14test_url: https://itunes.apple.com/us/audiobook/the-giver-unabridged/id356345850 \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/kachiblog.com.txt b/inc/3rdparty/site_config/standard/kachiblog.com.txt
index 35baf8df..57ab0de1 100755
--- a/inc/3rdparty/site_config/standard/kachiblog.com.txt
+++ b/inc/3rdparty/site_config/standard/kachiblog.com.txt
@@ -4,4 +4,4 @@ body: //div[@itemprop='articleBody']
4tidy: no 4tidy: no
5 5
6test_url: http://www.kachiblog.com/2013/05/samsung-galaxy-s4-vs-samsung-galaxy.html 6test_url: http://www.kachiblog.com/2013/05/samsung-galaxy-s4-vs-samsung-galaxy.html
7test_url: http://www.kachiblog.com/feeds/posts/default \ No newline at end of file 7test_url: http://www.kachiblog.com/feed
diff --git a/inc/3rdparty/site_config/standard/lifehacker.co.uk.txt b/inc/3rdparty/site_config/standard/lifehacker.co.uk.txt
new file mode 100755
index 00000000..c540f7f3
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/lifehacker.co.uk.txt
@@ -0,0 +1,7 @@
1title: //div[@itemprop='headline']
2body: //noscript/img | //div[@itemprop='text']
3author: //div[@class='meta meta--post']//a[@class='is-author']
4date: //div[@class='meta meta--post']//time/@datetime
5
6test_url: http://www.lifehacker.co.uk/2014/08/22/dealhacker-10-google-chromecast-super-cheap-batteries-much
7test_url: http://www.lifehacker.co.uk/2014/08/18/andrognito-hides-files-youd-like-keep-away-prying-eyes
diff --git a/inc/3rdparty/site_config/standard/mainpost.de.txt b/inc/3rdparty/site_config/standard/mainpost.de.txt
index 2136de3f..2f6382f1 100755
--- a/inc/3rdparty/site_config/standard/mainpost.de.txt
+++ b/inc/3rdparty/site_config/standard/mainpost.de.txt
@@ -25,4 +25,4 @@ strip_id_or_class: 'rightimage'
25#Comments 25#Comments
26strip: //table 26strip: //table
27strip: //p/following-sibling::*[0] 27strip: //p/following-sibling::*[0]
28test_url: http://www.mainpost.de/ueberregional/meinung/Dioxin-Skandal-bringt-Agrarministerin-in-Bedraengnis;art9517,5920211 \ No newline at end of file 28test_url: http://www.mainpost.de/regional/wuerzburg/Autobahnschuetze-Staatsanwalt-fordert-zwoelf-Jahre;art492151,8386332
diff --git a/inc/3rdparty/site_config/standard/medialens.org.txt b/inc/3rdparty/site_config/standard/medialens.org.txt
index 4c333aa1..c26bac55 100755
--- a/inc/3rdparty/site_config/standard/medialens.org.txt
+++ b/inc/3rdparty/site_config/standard/medialens.org.txt
@@ -1,4 +1,5 @@
1strip_id_or_class: article-tools 1strip_id_or_class: article-tools
2strip_id_or_class: pagenav 2strip_id_or_class: pagenav
3prune: no 3prune: no
4test_url: http://www.medialens.org/index.php/alerts/alert-archive/2012/713-the-illusion-of-democracy.html \ No newline at end of file 4test_url: http://www.medialens.org/index.php/alerts/alert-archive/2012/713-the-illusion-of-democracy.html
5test_contains: In an era of permanent war, economic meltdown
diff --git a/inc/3rdparty/site_config/standard/medium.com.txt b/inc/3rdparty/site_config/standard/medium.com.txt
index acf7cc90..9e9c6895 100755
--- a/inc/3rdparty/site_config/standard/medium.com.txt
+++ b/inc/3rdparty/site_config/standard/medium.com.txt
@@ -1,7 +1,12 @@
1body: //div[contains(@class, 'post-content-inner')] 1body: //div[contains(@class, 'postContent-inner')]
2strip_id_or_class: follow-ups 2strip_id_or_class: supplementalPostContent
3strip_id_or_class: footer
4 3
5prune: no 4prune: no
6 5
7test_url: https://medium.com/p/6844c0d7893b \ No newline at end of file 6test_url: https://medium.com/@savolai/kaytettavyyden-haasteet-keskustelukulttuurista-2-3-6844c0d7893b
7test_contains: Jos käytettävyysongelmat ovat kerran niin tyypillisiä
8test_contains: Keskustelukulttuuriongelmasta (subjective vs. objective bugs)
9
10test_url: https://medium.com/health-the-future/thirty-things-ive-learned-482765ee3503
11test_contains: Remember you will die
12test_contains: You have to have some faith.
diff --git a/inc/3rdparty/site_config/standard/menshealth.com.sg.txt b/inc/3rdparty/site_config/standard/menshealth.com.sg.txt
new file mode 100755
index 00000000..6a669253
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/menshealth.com.sg.txt
@@ -0,0 +1,12 @@
1strip: //div[contains(@style, 'float:right') and contains(., 'advertisement')]
2body: //div[@style="float:left;width:740px;"]
3
4tidy: no
5
6test_url: http://www.menshealth.com.sg/fitness/mh-picks-under-armour-clutchfit-nitro-mid-cleats
7test_contains: These cleats are made for one thing
8
9test_url: http://www.menshealth.com.sg/fitness/top-10-fat-burning-bodyweight-moves-you-can-do-10-minutes
10test_contains: let this workout fool you
11
12test_url: http://www.menshealth.com.sg/fitness/feed \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/northumberlandview.ca.txt b/inc/3rdparty/site_config/standard/northumberlandview.ca.txt
index 88429a78..f698d98e 100755
--- a/inc/3rdparty/site_config/standard/northumberlandview.ca.txt
+++ b/inc/3rdparty/site_config/standard/northumberlandview.ca.txt
@@ -8,4 +8,4 @@ strip_id_or_class: news_morearticlesincat
8strip_id_or_class: ezc_comments 8strip_id_or_class: ezc_comments
9strip_comments: yes 9strip_comments: yes
10 10
11test_url: http://www.northumberlandview.ca/index.php?module=news&func=display&sid=5972 \ No newline at end of file 11test_url: http://www.northumberlandview.ca/index.php?module=news&type=user&func=display&sid=31127
diff --git a/inc/3rdparty/site_config/standard/nytimes.com.txt b/inc/3rdparty/site_config/standard/nytimes.com.txt
index 23c9ad11..54735ec7 100755
--- a/inc/3rdparty/site_config/standard/nytimes.com.txt
+++ b/inc/3rdparty/site_config/standard/nytimes.com.txt
@@ -42,8 +42,12 @@ strip://h6[@class = 'kicker']
42author:substring-after(//h6[@class='byline'],'By ') 42author:substring-after(//h6[@class='byline'],'By ')
43 43
44test_url: http://www.nytimes.com/2011/07/24/books/review/an-academic-authors-unintentional-masterpiece.html 44test_url: http://www.nytimes.com/2011/07/24/books/review/an-academic-authors-unintentional-masterpiece.html
45test_contains: In this column I want to look at a not uncommon way of writing
46
45test_url: http://www.nytimes.com/2012/06/10/arts/television/the-newsroom-aaron-sorkins-return-to-tv.html 47test_url: http://www.nytimes.com/2012/06/10/arts/television/the-newsroom-aaron-sorkins-return-to-tv.html
48test_contains: IF you’ve seen enough of Aaron Sorkin’s theater
49
46test_url: http://www.nytimes.com/2013/03/25/world/middleeast/israeli-military-responds-after-patrols-come-under-fire-from-syria.html 50test_url: http://www.nytimes.com/2013/03/25/world/middleeast/israeli-military-responds-after-patrols-come-under-fire-from-syria.html
47test_url: http://www.nytimes.com/2013/08/15/nyregion/when-the-new-york-city-subway-ran-without-rails.html 51test_url: http://www.nytimes.com/2013/08/15/nyregion/when-the-new-york-city-subway-ran-without-rails.html
48test_url: http://www.nytimes.com/2004/02/29/weekinreview/correspondence-class-consciousness-china-s-wealthy-live-creed-hobbes-darwin-meet.html 52test_url: http://www.nytimes.com/2004/02/29/weekinreview/correspondence-class-consciousness-china-s-wealthy-live-creed-hobbes-darwin-meet.html
49test_url: http://www.nytimes.com/2014/06/19/opinion/gail-collins-romney-and-the-2016-contenders-huddle.html \ No newline at end of file 53test_url: http://www.nytimes.com/2014/06/19/opinion/gail-collins-romney-and-the-2016-contenders-huddle.html
diff --git a/inc/3rdparty/site_config/standard/real.gr.txt b/inc/3rdparty/site_config/standard/real.gr.txt
index 1a33610d..ce0a3c43 100755
--- a/inc/3rdparty/site_config/standard/real.gr.txt
+++ b/inc/3rdparty/site_config/standard/real.gr.txt
@@ -1,3 +1,5 @@
1body: //div[@id='_ctl12__ctl0_Article'] 1body: //div[contains(@class, 'article-photo-wrapper')]
2prune: no 2prune: no
3autodetect_on_failure: no \ No newline at end of file 3
4test_url: http://www.real.gr/DefaultArthro.aspx?page=arthro&id=360962&catID=1
5test_contains: Επισήμως το αποψινό υπουργικό
diff --git a/inc/3rdparty/site_config/standard/reddit.com.txt b/inc/3rdparty/site_config/standard/reddit.com.txt
index 8871f564..ba342c7c 100755
--- a/inc/3rdparty/site_config/standard/reddit.com.txt
+++ b/inc/3rdparty/site_config/standard/reddit.com.txt
@@ -7,7 +7,7 @@ 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[@class="expando"]//div[@class="usertext-body"] 10body: (//div[contains(@class, 'noncollapsed')]//div[contains(@class, 'usertext-body')])[1]
11 11
12strip_id_or_class: tagline 12strip_id_or_class: tagline
13strip_id_or_class: unvotable-message 13strip_id_or_class: unvotable-message
@@ -17,4 +17,5 @@ strip_id_or_class: buttons
17single_page_link: //p[@class="title"]/a[contains(@href, 'http://')] 17single_page_link: //p[@class="title"]/a[contains(@href, 'http://')]
18 18
19test_url: http://www.reddit.com/r/truegaming/comments/wfe7r/i_wrote_about_the_problems_i_honestly_feel_that/ 19test_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/ \ No newline at end of file 20test_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
diff --git a/inc/3rdparty/site_config/standard/searchengineland.com.txt b/inc/3rdparty/site_config/standard/searchengineland.com.txt
index fb6a1074..9ccc5898 100755
--- a/inc/3rdparty/site_config/standard/searchengineland.com.txt
+++ b/inc/3rdparty/site_config/standard/searchengineland.com.txt
@@ -1,4 +1,4 @@
1body: //div[@class="storyBox"] 1body: //div[contains(concat(' ',normalize-space(@class),' '),' article ') and (contains(concat(' ',normalize-space(@class),' '),' clear '))]
2title: //div[@class="storyBox"]/h1 2title: //div[@class="storyBox"]/h1
3author: //a[@rel="author"] 3author: //a[@rel="author"]
4date: substring-before(//span[@class="dateline"], 'by') 4date: substring-before(//span[@class="dateline"], 'by')
diff --git a/inc/3rdparty/site_config/standard/sourcebooks.com.txt b/inc/3rdparty/site_config/standard/sourcebooks.com.txt
index b52169da..86e3df5e 100755
--- a/inc/3rdparty/site_config/standard/sourcebooks.com.txt
+++ b/inc/3rdparty/site_config/standard/sourcebooks.com.txt
@@ -1,4 +1,4 @@
1#grab the actual content div 1#grab the actual content div
2body: //div[@class='rt-article'] 2body: //div[@class='rt-article']
3 3
4test_url: http://www.sourcebooks.com/next/sourcebooks-next-our-blog/1601-another-piece-of-the-e-puzzle-or-when-good-ebook-promotions-go-bad.html \ No newline at end of file 4test_url: http://www.sourcebooks.com/blog/happy-27th-birthday-sourcebooks.html
diff --git a/inc/3rdparty/site_config/standard/tabletmag.com.txt b/inc/3rdparty/site_config/standard/tabletmag.com.txt
new file mode 100755
index 00000000..58b1f5bb
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/tabletmag.com.txt
@@ -0,0 +1,5 @@
1body: //div[contains(@class, 'story-text')]
2
3strip_id_or_class: related
4
5test_url: http://www.tabletmag.com/jewish-news-and-politics/181181/mossberg-parallel-states?all=1 \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/tagesspiegel.de.txt b/inc/3rdparty/site_config/standard/tagesspiegel.de.txt
new file mode 100755
index 00000000..57e7d3df
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/tagesspiegel.de.txt
@@ -0,0 +1,60 @@
1# Author: zinnober
2# Should work with "normal" articles as well as with image galleries
3
4prune: no
5
6# Title
7title: //h1/span[@class='hcf-headline']
8
9# Set author
10author: //a[@rel='author']
11
12# Set date
13date: //span[@class='date hcf-atlas']
14
15# Fetch full multipage articles
16next_page_link: //a[contains(@class, 'hcf-forward')]
17
18# Content is here
19body: //article
20body: //div[contains(@class, 'hcf-screen')]
21
22# Remove tracking and ads
23strip_id_or_class: hcf-ad
24strip_id_or_class: hcf-autoload-ad
25strip_id_or_class: hcf-content-ad
26
27# Tidy up before article
28strip: //article/h1
29strip_id_or_class: hcf-atlas
30strip_id_or_class: hcf-author
31strip_id_or_class: date hcf-atlas
32strip_id_or_class: date hcf-atlas
33
34# General cleanup
35strip: //div[contains(@class, 'hcf-screen')]//h1
36strip: //div[@class='hcf-subpage-titles']//ul
37strip_id_or_class: hcf-doctype-media
38strip_id_or_class: hcf-inline-gallery
39strip_id_or_class: hcf-doctype-video
40strip_id_or_class: hcf-links
41strip_id_or_class: hcf-mini-navi
42strip_id_or_class: hcf-media-control
43strip_id_or_class: hcf-hidden
44replace_string(<span class="hcf-update">Update</span>): <strong>Update: </strong>
45
46# Fix pictures and captions
47replace_string(<a class="hcf-doctype-gallery): <p class="hcf-doctype-gallery
48replace_string(<a class="hcf-doctype-enlarge): <p class="hcf-doctype-enlarge
49replace_string(<figcaption class="hcf-caption">): <br><small><em>
50replace_string(</figcaption>): </em></small>
51
52# Fix image galleries
53replace_string(<a class=" ajaxify): <p class="ajaxify
54replace_string(<div class="hcf-caption"><div><p>): <small><em>
55
56# Try it yourself
57test_url: http://www.tagesspiegel.de/berlin/bezirke/wedding/wedding-jetzt/auf-der-suche-nach-einem-stadtteil-wilder-weiter-wedding/8757156.html
58test_url: http://www.tagesspiegel.de/berlin/olympia-in-berlin-der-flughafen-tegel-soll-das-olympische-dorf-werden/10645036.html
59test_url: http://www.tagesspiegel.de/mediacenter/fotostrecken/berlin/bildergalerie-kreuzberger-der-woche/9305534.html
60
diff --git a/inc/3rdparty/site_config/standard/techmeme.com.txt b/inc/3rdparty/site_config/standard/techmeme.com.txt
index 0b4bfbd6..26eb37b0 100755
--- a/inc/3rdparty/site_config/standard/techmeme.com.txt
+++ b/inc/3rdparty/site_config/standard/techmeme.com.txt
@@ -1,3 +1,3 @@
1single_page_link_in_feed: //b/a 1single_page_link_in_feed: //b/a
2 2
3test_url_feed: http://www.techmeme.com/feed.xml \ No newline at end of file 3test_url: http://www.techmeme.com/feed.xml
diff --git a/inc/3rdparty/site_config/standard/theatlantic.com.txt b/inc/3rdparty/site_config/standard/theatlantic.com.txt
index aa41b153..3fc5611b 100755
--- a/inc/3rdparty/site_config/standard/theatlantic.com.txt
+++ b/inc/3rdparty/site_config/standard/theatlantic.com.txt
@@ -15,6 +15,8 @@ strip: //div[@class='earthbox']
15 15
16single_page_link: //article//a[contains(@class, 'print')] 16single_page_link: //article//a[contains(@class, 'print')]
17 17
18native_ad_clue: //meta[@property="og:url" and contains(@content, '/sponsored/')]
19
18test_url: http://www.theatlantic.com/technology/archive/2011/04/want-to-see-how-crazy-a-bot-run-market-can-be/237773/ 20test_url: http://www.theatlantic.com/technology/archive/2011/04/want-to-see-how-crazy-a-bot-run-market-can-be/237773/
19test_url: http://www.theatlantic.com/magazine/archive/2007/11/the-autumn-of-the-multitaskers/6342/ 21test_url: http://www.theatlantic.com/magazine/archive/2007/11/the-autumn-of-the-multitaskers/6342/
20test_url: http://www.theatlantic.com/entertainment/archive/2012/04/30-rock-live-a-funny-reminder-of-why-sitcoms-arent-shot-live-anymore/256447/ \ No newline at end of file 22test_url: http://www.theatlantic.com/entertainment/archive/2012/04/30-rock-live-a-funny-reminder-of-why-sitcoms-arent-shot-live-anymore/256447/ \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/theglobeandmail.com.txt b/inc/3rdparty/site_config/standard/theglobeandmail.com.txt
index 750f8473..2473cad2 100755
--- a/inc/3rdparty/site_config/standard/theglobeandmail.com.txt
+++ b/inc/3rdparty/site_config/standard/theglobeandmail.com.txt
@@ -1,5 +1,10 @@
1body: //div[contains(@class, 'entry-content')]//div[contains(@class, 'column-2')]
1single_page_link: //div[contains(@class, 'pagination')]//a[contains(@title, 'ingle page')] 2single_page_link: //div[contains(@class, 'pagination')]//a[contains(@title, 'ingle page')]
3strip_id_or_class: entry-related
4strip_id_or_class: entry-sidebar
5strip_id_or_class: entry-pagination
2tidy: no 6tidy: no
3prune: no 7prune: no
4 8
5test_url: http://www.theglobeandmail.com/report-on-business/rob-magazine/how-a-novice-miner-survived-a-summer-in-the-klondike/article2345350/ \ No newline at end of file 9test_url: http://www.theglobeandmail.com/report-on-business/rob-magazine/how-a-novice-miner-survived-a-summer-in-the-klondike/article2345350/
10test_url: http://www.theglobeandmail.com/report-on-business/industry-news/energy-and-resources/cliffs-natural-resources-looking-to-exit-ontarios-ring-of-fire/article20651617/ \ No newline at end of file
diff --git a/inc/3rdparty/site_config/standard/theguardian.com.txt b/inc/3rdparty/site_config/standard/theguardian.com.txt
index c803e4e4..88e2ecf4 100755
--- a/inc/3rdparty/site_config/standard/theguardian.com.txt
+++ b/inc/3rdparty/site_config/standard/theguardian.com.txt
@@ -6,8 +6,19 @@ strip: //div[contains(@class, 'kindleWidget')]
6#strip: //a[not(text())] 6#strip: //a[not(text())]
7strip_id_or_class: pocket-btn 7strip_id_or_class: pocket-btn
8author: //li[@class='byline'] 8author: //li[@class='byline']
9native_ad_clue: //meta[@property="article:tag" and contains(@content, "Partner zone")]
10native_ad_clue: //meta[@property="video:tag" and contains(@content, "Partner zone")]
9prune: no 11prune: no
10tidy: no 12tidy: no
13
11test_url: http://www.theguardian.com/world/2013/oct/04/nsa-gchq-attack-tor-network-encryption 14test_url: http://www.theguardian.com/world/2013/oct/04/nsa-gchq-attack-tor-network-encryption
15test_contains: The National Security Agency has made repeated attempts to develop
16test_contains: The agency did not directly address those questions, instead providing a statement.
17
12test_url: http://www.theguardian.com/world/2013/oct/03/edward-snowden-files-john-lanchester 18test_url: http://www.theguardian.com/world/2013/oct/03/edward-snowden-files-john-lanchester
13test_url: http://www.theguardian.com/commentisfree/2014/jun/15/britishness-search-identity-my-part-in-camerons-odyssey \ No newline at end of file 19test_contains: In August, the editor of the Guardian rang me up and asked if I would spend a week in New York
20test_contains: As the second most senior judge in the country, Lord Hoffmann, said in 2004 about a previous version of our anti-terrorism laws
21
22test_url: http://www.theguardian.com/commentisfree/2014/jun/15/britishness-search-identity-my-part-in-camerons-odyssey
23# Native ad
24test_url: http://www.theguardian.com/sustainable-business/2014/jul/18/ben-jerry-turn-ice-cream-into-energy
diff --git a/inc/3rdparty/site_config/standard/theverge.com.txt b/inc/3rdparty/site_config/standard/theverge.com.txt
index 1e1ce58f..78f8654a 100755
--- a/inc/3rdparty/site_config/standard/theverge.com.txt
+++ b/inc/3rdparty/site_config/standard/theverge.com.txt
@@ -15,6 +15,11 @@ strip: //nav
15strip: //img[contains(@class, 'vox-lazy-load')] 15strip: //img[contains(@class, 'vox-lazy-load')]
16# deal with bad parsing 16# deal with bad parsing
17strip: //div[contains(@class, 'story-image')]//div[contains(., 'function(')] 17strip: //div[contains(@class, 'story-image')]//div[contains(., 'function(')]
18strip: //div[contains(@class, 'm-linkset')]
19strip: //div[contains(@class, 'm-entry__sidebar')]
20strip: //ul[contains(@class, 'm-article__sources')]
21strip: //div[contains(@class, 'chorus-emc__content')]
22
18 23
19strip_id_or_class: gallery 24strip_id_or_class: gallery
20strip_id_or_class: article-meta 25strip_id_or_class: article-meta
@@ -45,4 +50,4 @@ test_url: http://www.theverge.com/2012/2/29/2821763/lytro-review
45test_url: http://www.theverge.com/2011/11/3/2534861/nokia-lumia-800-review 50test_url: http://www.theverge.com/2011/11/3/2534861/nokia-lumia-800-review
46test_url: http://www.theverge.com/2013/2/24/4026114/barnes-noble-shifting-focus-away-from-nook-hardware 51test_url: http://www.theverge.com/2013/2/24/4026114/barnes-noble-shifting-focus-away-from-nook-hardware
47test_url: http://www.theverge.com/2014/6/19/5824072/top-shelf-living-the-dream 52test_url: http://www.theverge.com/2014/6/19/5824072/top-shelf-living-the-dream
48test_url: http://www.theverge.com/rss/frontpage \ No newline at end of file 53test_url: http://www.theverge.com/rss/frontpage
diff --git a/inc/3rdparty/site_config/standard/thisiscolossal.com.txt b/inc/3rdparty/site_config/standard/thisiscolossal.com.txt
new file mode 100755
index 00000000..ab16ce18
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/thisiscolossal.com.txt
@@ -0,0 +1,25 @@
1# Author: zinnober
2
3tidy: no
4prune: no
5
6# Set author
7author: //a[contains(@rel, 'author')]
8
9# Content is here
10body: //article
11
12# Tidy up before article
13strip: //header
14
15# Get rid of doubled images
16strip: //img[contains(@class, '-hidden')]
17
18# Tidy up after article
19strip_id_or_class: social-list
20strip_id_or_class: meta-info
21strip: //footer
22
23# Try it yourself
24test_url: http://www.thisiscolossal.com/2014/09/chicago-in-the-fog-by-michael-salisbury/
25test_url: http://www.thisiscolossal.com/2014/09/bird-portraits-ruffling-with-personality-by-leila-jeffreys/
diff --git a/inc/3rdparty/site_config/standard/towerofthehand.com.txt b/inc/3rdparty/site_config/standard/towerofthehand.com.txt
new file mode 100755
index 00000000..a4d87d12
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/towerofthehand.com.txt
@@ -0,0 +1,10 @@
1title: //div[@id='headline']
2body: //div[@class='entry_text']
3author: //div[text() = 'Author:']/following-sibling::div/a
4date: //div[text() = 'Published:']/following-sibling::div
5single_page_link: //a[@href='noscript.html']
6prune: no
7
8test_url: http://towerofthehand.com/blog/2014/08/08-pitch-this-got-spinoff/index.html
9test_url: http://towerofthehand.com/blog/2014/07/31-definitions-and-embodiments/index.html
10test_url: http://towerofthehand.com/blog/2014/07/03-hero-with-thousand-faces/index.html
diff --git a/inc/3rdparty/site_config/standard/twitter.com.txt b/inc/3rdparty/site_config/standard/twitter.com.txt
index 520ebd85..0e5b7487 100755
--- a/inc/3rdparty/site_config/standard/twitter.com.txt
+++ b/inc/3rdparty/site_config/standard/twitter.com.txt
@@ -6,4 +6,5 @@ date: //span[contains(@class, 'js-short-timestamp')]/@data-time
6prune: no 6prune: no
7tidy: no 7tidy: no
8 8
9test_url: https://twitter.com/medialens/status/216883678582804480 \ No newline at end of file 9test_url: https://twitter.com/medialens/status/216883678582804480
10test_contains: is all but alone in challenging the tsunami of UK
diff --git a/inc/3rdparty/site_config/standard/vanityfair.com.txt b/inc/3rdparty/site_config/standard/vanityfair.com.txt
index efa38224..f52339cf 100755
--- a/inc/3rdparty/site_config/standard/vanityfair.com.txt
+++ b/inc/3rdparty/site_config/standard/vanityfair.com.txt
@@ -2,6 +2,7 @@ title: //meta[@property="og:title"]/@content
2author: //div[contains(@class, 'byline')]//span[contains(@class, 'name')] 2author: //div[contains(@class, 'byline')]//span[contains(@class, 'name')]
3date: //div[contains(@class, 'cn_date_time')] 3date: //div[contains(@class, 'cn_date_time')]
4body: //div[contains(@class, 'pageContainers')] 4body: //div[contains(@class, 'pageContainers')]
5body: //div[@id='main']
5body: //article[@id='items-container'] 6body: //article[@id='items-container']
6#body: //h2[@class='sub-header'] | //div[contains(@class, 'contributor-type') or @class='display-date' or @class='content-container'] 7#body: //h2[@class='sub-header'] | //div[contains(@class, 'contributor-type') or @class='display-date' or @class='content-container']
7 8
@@ -26,5 +27,7 @@ strip: //li[@class='blogNavPrev']
26single_page_link: //a[@title='Print this page'] 27single_page_link: //a[@title='Print this page']
27 28
28test_url: http://www.vanityfair.com/politics/features/2011/05/egypt-revolutionaries-201105 29test_url: http://www.vanityfair.com/politics/features/2011/05/egypt-revolutionaries-201105
30test_contains: nothing can take away from the miracle of Tahrir Square
31
29test_url: http://www.vanityfair.com/politics/features/2008/08/hitchens200808 32test_url: http://www.vanityfair.com/politics/features/2008/08/hitchens200808
30test_url: http://www.vanityfair.com/style/2012/01/prisoners-of-style-201201 \ No newline at end of file 33test_url: http://www.vanityfair.com/style/2012/01/prisoners-of-style-201201
diff --git a/inc/3rdparty/site_config/standard/wn.de.txt b/inc/3rdparty/site_config/standard/wn.de.txt
new file mode 100755
index 00000000..ef18c8a5
--- /dev/null
+++ b/inc/3rdparty/site_config/standard/wn.de.txt
@@ -0,0 +1,18 @@
1author: //div[@id='main']//div[@class='col right']//div[contains(@class, 'attribute-author')]
2body: //div[@id='main']//div[@class='col right']
3strip_id_or_class: boxes
4strip_id_or_class: lazy
5strip_id_or_class: comment_box
6strip_id_or_class: fb_comments
7
8find_string: <noscript>
9replace_string: <div>
10find_string: </noscript>
11replace_string: </div>
12
13prune: no
14tidy: no
15
16test_url: http://www.wn.de/Muenster/Kultur/1742956-Wilm-Weppelmann-verlaesst-die-Einsiedelei-Und-dann-ab-unter-die-Dusche
17# feed
18test_url: http://www.wn.de/rss/feed/wn_muenster \ No newline at end of file
diff --git a/inc/poche/Database.class.php b/inc/poche/Database.class.php
index b5dd2120..f6ba4708 100755
--- a/inc/poche/Database.class.php
+++ b/inc/poche/Database.class.php
@@ -24,15 +24,17 @@ class Database {
24 switch (STORAGE) { 24 switch (STORAGE) {
25 case 'sqlite': 25 case 'sqlite':
26 // Check if /db is writeable 26 // Check if /db is writeable
27 if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) { 27 if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) {
28 die('An error occured: "db" directory must be writeable for your web server user!'); 28 die('An error occured: "db" directory must be writeable for your web server user!');
29 } 29 }
30 $db_path = 'sqlite:' . STORAGE_SQLITE; 30 $db_path = 'sqlite:' . STORAGE_SQLITE;
31 $this->handle = new PDO($db_path); 31 $this->handle = new PDO($db_path);
32 break; 32 break;
33 case 'mysql': 33 case 'mysql':
34 $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB; 34 $db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB . ';charset=utf8mb4';
35 $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD); 35 $this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD, array(
36 PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
37 ));
36 break; 38 break;
37 case 'postgres': 39 case 'postgres':
38 $db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB; 40 $db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
diff --git a/inc/poche/Language.class.php b/inc/poche/Language.class.php
index 8d3912f5..420f2fb9 100644
--- a/inc/poche/Language.class.php
+++ b/inc/poche/Language.class.php
@@ -18,6 +18,7 @@ class Language
18 'cs_CZ.utf8' => 'čeština', 18 'cs_CZ.utf8' => 'čeština',
19 'de_DE.utf8' => 'German', 19 'de_DE.utf8' => 'German',
20 'en_EN.utf8' => 'English', 20 'en_EN.utf8' => 'English',
21 'en_US.utf8' => 'English (US)',
21 'es_ES.utf8' => 'Español', 22 'es_ES.utf8' => 'Español',
22 'fa_IR.utf8' => 'فارسی', 23 'fa_IR.utf8' => 'فارسی',
23 'fr_FR.utf8' => 'Français', 24 'fr_FR.utf8' => 'Français',
@@ -110,4 +111,4 @@ class Language
110 Tools::emptyCache(); 111 Tools::emptyCache();
111 Tools::redirect('?view=config'); 112 Tools::redirect('?view=config');
112 } 113 }
113} \ No newline at end of file 114}
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 8cebafa3..16235474 100755
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -314,6 +314,8 @@ class Poche
314 314
315 switch ($view) 315 switch ($view)
316 { 316 {
317 case 'about':
318 break;
317 case 'config': 319 case 'config':
318 $dev_infos = $this->_getPocheVersion('dev'); 320 $dev_infos = $this->_getPocheVersion('dev');
319 $dev = trim($dev_infos[0]); 321 $dev = trim($dev_infos[0]);
@@ -388,7 +390,7 @@ class Poche
388 $this->pagination->page_links('?view=' . $view . '?search=' . $search . '&sort=' . $_SESSION['sort'] . '&' )); 390 $this->pagination->page_links('?view=' . $view . '?search=' . $search . '&sort=' . $_SESSION['sort'] . '&' ));
389 $tpl_vars['page_links'] = $page_links; 391 $tpl_vars['page_links'] = $page_links;
390 $tpl_vars['nb_results'] = $count; 392 $tpl_vars['nb_results'] = $count;
391 $tpl_vars['search_term'] = $search; 393 $tpl_vars['searchterm'] = $search;
392 } 394 }
393 break; 395 break;
394 case 'view': 396 case 'view':
diff --git a/inc/poche/Routing.class.php b/inc/poche/Routing.class.php
index 0b373058..6ae93d21 100755
--- a/inc/poche/Routing.class.php
+++ b/inc/poche/Routing.class.php
@@ -119,7 +119,7 @@ class Routing
119 } elseif (isset($_GET['deluser'])) { 119 } elseif (isset($_GET['deluser'])) {
120 $this->wallabag->deleteUser($_POST['password4deletinguser']); 120 $this->wallabag->deleteUser($_POST['password4deletinguser']);
121 } elseif (isset($_GET['epub'])) { 121 } elseif (isset($_GET['epub'])) {
122 $epub = new WallabagEpub($this->wallabag, $_GET['method'], $_GET['id'], $_GET['value']); 122 $epub = new WallabagEpub($this->wallabag, $_GET['method'], $_GET['value']);
123 $epub->run(); 123 $epub->run();
124 } elseif (isset($_GET['import'])) { 124 } elseif (isset($_GET['import'])) {
125 $import = $this->wallabag->import(); 125 $import = $this->wallabag->import();
diff --git a/inc/poche/Tools.class.php b/inc/poche/Tools.class.php
index 93ec3fc6..f803e3b5 100755
--- a/inc/poche/Tools.class.php
+++ b/inc/poche/Tools.class.php
@@ -51,6 +51,7 @@ final class Tools
51 51
52 $serverport = (!isset($_SERVER["SERVER_PORT"]) 52 $serverport = (!isset($_SERVER["SERVER_PORT"])
53 || $_SERVER["SERVER_PORT"] == '80' 53 || $_SERVER["SERVER_PORT"] == '80'
54 || $_SERVER["SERVER_PORT"] == HTTP_PORT
54 || ($https && $_SERVER["SERVER_PORT"] == '443') 55 || ($https && $_SERVER["SERVER_PORT"] == '443')
55 || ($https && $_SERVER["SERVER_PORT"]==SSL_PORT) //Custom HTTPS port detection 56 || ($https && $_SERVER["SERVER_PORT"]==SSL_PORT) //Custom HTTPS port detection
56 ? '' : ':' . $_SERVER["SERVER_PORT"]); 57 ? '' : ':' . $_SERVER["SERVER_PORT"]);
@@ -116,7 +117,7 @@ final class Tools
116 { 117 {
117 $views = array( 118 $views = array(
118 'install', 'import', 'export', 'config', 'tags', 119 'install', 'import', 'export', 'config', 'tags',
119 'edit-tags', 'view', 'login', 'error' 120 'edit-tags', 'view', 'login', 'error', 'about'
120 ); 121 );
121 122
122 return (in_array($view, $views) ? $view . '.twig' : 'home.twig'); 123 return (in_array($view, $views) ? $view . '.twig' : 'home.twig');
diff --git a/inc/poche/config.inc.default.php b/inc/poche/config.inc.default.php
index 2a458544..f666f468 100755
--- a/inc/poche/config.inc.default.php
+++ b/inc/poche/config.inc.default.php
@@ -24,6 +24,8 @@
24################################################################################# 24#################################################################################
25# Do not trespass unless you know what you are doing 25# Do not trespass unless you know what you are doing
26################################################################################# 26#################################################################################
27// Change this if http is running on nonstandard port - i.e is behind cache proxy
28@define ('HTTP_PORT', 80);
27 29
28// Change this if not using the standart port for SSL - i.e you server is behind sslh 30// Change this if not using the standart port for SSL - i.e you server is behind sslh
29@define ('SSL_PORT', 443); 31@define ('SSL_PORT', 443);
diff --git a/install/index.php b/install/index.php
index 89dfc017..fee063bb 100755
--- a/install/index.php
+++ b/install/index.php
@@ -102,12 +102,14 @@ else if (isset($_POST['install'])) {
102 $content = file_get_contents('inc/poche/config.inc.php'); 102 $content = file_get_contents('inc/poche/config.inc.php');
103 103
104 if ($_POST['db_engine'] == 'mysql') { 104 if ($_POST['db_engine'] == 'mysql') {
105 $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database']; 105 $db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'] . ';charset=utf8mb4';
106 $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['mysql_server']."');", $content); 106 $content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['mysql_server']."');", $content);
107 $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['mysql_database']."');", $content); 107 $content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['mysql_database']."');", $content);
108 $content = str_replace("define ('STORAGE_USER', 'poche');", "define ('STORAGE_USER', '".$_POST['mysql_user']."');", $content); 108 $content = str_replace("define ('STORAGE_USER', 'poche');", "define ('STORAGE_USER', '".$_POST['mysql_user']."');", $content);
109 $content = str_replace("define ('STORAGE_PASSWORD', 'poche');", "define ('STORAGE_PASSWORD', '".$_POST['mysql_password']."');", $content); 109 $content = str_replace("define ('STORAGE_PASSWORD', 'poche');", "define ('STORAGE_PASSWORD', '".$_POST['mysql_password']."');", $content);
110 $handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password']); 110 $handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password'], array(
111 PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
112 ));
111 113
112 $moreQueries[] = "INSERT INTO `entries` (`id`, `title`, `url`, `is_read`, `is_fav`, `content`, `user_id`) VALUES 114 $moreQueries[] = "INSERT INTO `entries` (`id`, `title`, `url`, `is_read`, `is_fav`, `content`, `user_id`) VALUES
113(1, 'Framabag, un nouveau service libre et gratuit', 'http://www.framablog.org/index.php/post/2014/02/05/Framabag-service-libre-gratuit-interview-developpeur', 0, 0, 0x0a3c68323e556e6520696e74657276696577206465204e69636f6c61732c20736f6e2064c3a976656c6f70706575722e3c2f68323e0a3c703e3c656d3e496c206e6520766f757320612073c3bb72656d656e742070617320c3a96368617070c3a920717565206e6f74726520636f6e736f6d6d6174696f6e20646520636f6e74656e75732064752057656220657374207465727269626c656d656e74206368726f6e6f706861676520657420706172746963756c69c3a872656d656e7420667275737472616e746520746f757420c3a0206c6120666f6973c2a03a206e6f6e207365756c656d656e74206e6f757320706173736f6e732062656175636f7570202874726f70c2a03f292064652074656d707320656e206c69676e6520c3a0206578706c6f726572206c6573206d696e6573206175726966c3a8726573206465206c6120746f696c652c20792064c3a974656374616e742070c3a970697465732065742066696c6f6e732c206d616973206e6f757320736f6d6d657320737572746f757420636f6e7374616d6d656e7420656e206d616e7175652e204dc3aa6d65207369206e6f7573206e6520736f6d6d6573207061732064616e73206c65207a617070696e67206672c3a96ec3a9746971756520736920666163696c656d656e742064c3a96e6f6e63c3a920706172206c657320646f637465732070737963686f6c6f677565732071756920706f6e74696669656e7420737572206c65732064616e67657273206475206e756dc3a9726971756520706f7572206c6573206a65756e65732063657276656c6c65732c20696c206e6f7573207669656e7420736f7576656e74206c6520676fc3bb7420616d6572206465206ce28099696e6163686576c3a9c2a03a20706173206c652074656d707320646520746f7574206c69726520283c6120687265663d22687474703a2f2f66722e77696b74696f6e6172792e6f72672f77696b692f544c4452223e544c3b44523c2f613e2065737420646576656e75206c6520636c696e2064e28099c593696c206d692d6669677565206d692d72616973696e2064e28099756e652067c3a96ec3a9726174696f6e206465206c65637465757273207072657373c3a973292c207061732074726f70206c652074656d70732064652072c3a9666cc3a963686972206e6f6e20706c75732068c3a96c61732c20706173206c652074656d707320646520737569767265206c6120726962616d62656c6c65206465206c69656e73206173736f6369c3a97320c3a020756e2061727469636c65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e506f7572206e6f757320646f6e6e657220626f6e6e6520636f6e736369656e63652c206e6f75732072616e67656f6e73207363727570756c657573656d656e7420756e206d61727175652d7061676520646520706c75732064616e7320756e20736f75732d646f73736965722071756920656e20636f6d706f7274652064c3a96ac3a0203235362c206e6f7573206e6f746f6e7320756e20c3a96cc3a96d656e7420646520706c75732064616e73206c6120746f756a6f757273207269646963756c656d656e74206c6f6e67756520746f75646f756c697374652c2062726566206e6f75732072656d6574746f6e7320c3a020706c757320746172642c2063e280996573742dc3a02d64697265206c6520706c757320736f7576656e742061757820696e74726f757661626c65732063616c656e6465732067726563717565732c206c6520736f696e206465206c69726520767261696d656e7420756e2061727469636c65206a7567c3a920696e74c3a972657373616e742c20646520726567617264657220756e6520766964c3a96f207369676e616cc3a96520706172206c65732072c3a97a6f73736f63696f732c206465206c69726520756e20636861706974726520656e746965722064e28099756e206f75767261676520646973706f6e69626c6520656e206c69676e65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e416c6f7273206269656e2073c3bb722c20c3a02064c3a966617574206465206e6f757320646f6e6e657220746f7574206c652074656d70732071756920736572616974206ec3a963657373616972652c2064657320736f6c7574696f6e73206578697374656e7420706f7572206e6f7573207065726d657474726520646520c2abc2a06c69726520706c75732074617264c2a0c2bb20656e20736175766567617264616e74206c65207072c3a9636965757820706f6c6c656e206465206e6f7320627574696e61676573206465207369746520656e20736974652c2065742064e28099656e20666169726520756c74c3a97269657572656d656e7420766f747265206d69656cc2a03b2063e280996573742062656c20657420626f6e206d616973206c65732072756368657320736f6e7420756e207065752064697374616e7465732c20c3a7612073e28099617070656c6c65206c6520636c6f756420286e6f7320616d69732074656368696573206de280996f6e74206269656e206578706c697175c3a9206d616973206ae280996169207365756c656d656e7420636f6d70726973207175652064657320747275637320c3a0206d6f6920736f6e742073757220646573206d616368696e6573206c6f696e7461696e65732c20c3a761206e65206d652072617373757265207061732074726f702920657420656c6c657320736f6e7420736f7576656e742070726f707269c3a97461697265732c206e65206c61697373616e7420656e7472657220717565206c6573203c733e7574696c69736174657572733c2f733e20636f6e736f6d6d61746575727320706179616e74732065742071756920636f6e73656e74656e7420c3a0206c6575727320636f6e646974696f6e732e2053616e7320636f6d70746572207175652064652067726f7320626f7572646f6e73207669656e6e656e742070726f666974657220706c7573206f75206d6f696e73206469736372c3a874656d656e7420646520746f757465732063657320747261636573206465206e6f75732d6dc3aa6d657320717569207065726d657474656e74206465206d6f6ec3a97469736572206e6f7472652070726f66696cc2a03a207369206a6520636f6c6c65637465207375722063657320736572766963657320286e65206c6573206e6f6d6d6f6e73207061732c206a757374656d656e742920756e652073c3a97269652064e2809961727469636c657320737572206ce280996964c3a965206465204e6174757265206368657a2044696465726f742c206a6520726563657672616920646976657273657320736f6c6c696369746174696f6e7320706f757220646576656e697220636c69656e74206465206c6120626f757469717565204e61747572652026616d703b2044c3a9636f75766572746520647520626f756c65766172642044696465726f742e2045742073692064e280996176656e74757265206c65732070726f6772616d6d6573206465206c61204e5341206d6f756c696e656e7420737572206c6520736572766963652c206a6520736572616920706575742dc3aa74726520756e206a6f75722064616e7320756e65206c6973746520646573206d696c6974616e7473206e61747572697374657320696e64c3a973697261626c657320737572206c657320766f6c73206465206c612050616e416d20286a65206e65207361697320706c75732074726f70207369206a6520706c616973616e7465206cc3a02c2066696e616c656d656e74e280a6293c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6120626f6e6e65206964c3a965c2a03a20c2abc2a0736520636f6e7374697475657220756e2072c3a9736572766f697220646520646f63756d656e74732073c3a96c656374696f6e6ec3a97320c3a020706172636f7572697220706c75732074617264c2a0c2bb20617070656c61697420646f6e6320756e6520617574726520626f6e6e65206964c3a9652c2063656c6c652064e2809961766f6972206c6520636f6e7472c3b46c652064652063652072c3a9736572766f69722c206465206e6f74726520636f6c6c656374696f6e20706572736f6e6e656c6c652e2043e28099657374204e69636f6c6173204cc59375696c6c65742c2063692d646573736f757320696e74657276696577c3a92c207175692073e28099792065737420636f6c6cc3a9206176656320756e652062656c6c65206170706c69636174696f6e20617070656cc3a96520657568e280a6206f75692c20617070656cc3a9652057616c6c616261672e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61736f667420736f757469656e742064e28099617574616e7420706c757320736f6e20696e6974696174697665207175e280993c6120687265663d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f696e6465782e7068702f706f73742f323031342f30312f33312f4765656b74696f6e6e6572642d57616c6c61626167223e6f6e206c7569206120636865726368c3a920646573206d6973c3a872657320706f757220756e6520686973746f697265206465206e6f6d3c2f613e206574207175e28099696c2065737420706f737369626c652064e28099696e7374616c6c657220736f692d6dc3aa6d6520756e6520636f7069652064652057616c6c616261672073757220736f6e2070726f70726520736974652e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6520706574697420706c7573206465204672616d61736f66742c2072c3a97365617520746f756a6f7572732064c3a973697265757820646520766f75732070726f706f7365722064657320616c7465726e617469766573206c6962c3a972617472696365732c2063e2809965737420646520766f75732070726f706f736572202873757220696e736372697074696f6e207072c3a9616c61626c652920756e20616363c3a873206175204672616d616261672c2061757472656d656e742064697420766f7472652057616c6c616261672073757220756e2073657276657572204672616d612a2061766563206e6f74726520676172616e74696520646520636f6e666964656e7469616c6974c3a92e20436f6d6d6520706f7572206c65204672616d616e6577732c206e6f757320766f7573206163637565696c6c6f6e7320766f6c6f6e74696572732064616e73206c61206c696d697465206465206e6f732063617061636974c3a9732c20656e20766f757320696e766974616e7420c3a020766f7573206c616e6365722064616e7320766f747265206175746f2d68c3a962657267656d656e742064652057616c6c616261672e3c6272202f3e4365742061727469636c65206573742074726f70206c6f6e67c2a03f204d657474657a2d6c652064616e73203c6120687265663d22687474703a2f2f7777772e6672616d616261672e6f72672f696e6465782e706870223e766f747265204672616d616261673c2f613e20657420686f702e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61626c6f67c2a03a2053616c7574204e69636f6c6173e280a62054752070657578207465207072c3a973656e74657220627269c3a876656d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e53616c7574c2a0212044c3a976656c6f70706575722050485020646570756973207175656c7175657320616e6ec3a96573206d61696e74656e616e742028313020616e73292c206ae28099616920766f756c75206d652072656d657474726520c3a0206e697665617520746563686e697175656d656e74207061726c616e742028646570756973203320616e732c206ae28099616920706173206d616c206cc3a26368c3a9206c6520636c6176696572292e20506f7572206d6573206265736f696e7320706572736f732c206ae28099616920646f6e63206372c3a9c3a920756e2070657469742070726f6a657420706f75722072656d706c6163657220756e6520736f6c7574696f6e2070726f707269c3a97461697265206578697374616e74652e2053616e7320617563756e65207072c3a974656e74696f6e2c206ae2809961692068c3a962657267c3a92063652070726f6a6574207375722047697468756220657420636f6d6d652063e28099657374206c61207365756c6520736f6c7574696f6e203c656d3e6f70656e20736f757263653c2f656d3e20646520636520747970652c206c65206e6f6d62726520646520706572736f6e6e657320696e74c3a972657373c3a965732061206175676d656e74c3a920e280a63c2f703e0a3c703e3c656d3e4c6573207574696c6973617465757273206465207365727669636573204672616d61736f6674206e65206c6520736176656e742070617320666f7263c3a96d656e742c206d6169732074752061732064c3a96ac3a020706173206d616c207061727469636970c3a920c3a0206c61204672616d6147616c617869652c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e456e2065666665742e204ae28099616920636f6d6d656e63c3a920756e20706c7567696e20706f7572204672616d616e6577732c203c6120687265663d2268747470733a2f2f6769746875622e636f6d2f6e69636f736f6d622f74747273732d70757267652d6163636f756e7473223e74747273732d70757267652d6163636f756e74733c2f613e2c20717569207065726d6574206465206e6574746f796572206c61206261736520646520646f6e6ec3a9657320646520636f6d7074657320706c7573207574696c6973c3a9732e204d616973206365203c656d3e706c7567696e3c2f656d3e2061206265736f696e2064e28099c3aa747265207465726d696ec3a920c3a0203130302520706f757220c3aa74726520696e74c3a96772c3a9206175207365696e206465204672616d616e6577732028657420646f6e632064652054696e792054696e7920525353292c207369207175656c7175e28099756e20736f756861697465206de2809961696465722c20696c206ee2809979206120617563756e20736f7563692e3c6272202f3e4ae28099616920617573736920666169742031206f7520322061707061726974696f6e732064616e73206465732074726164756374696f6e7320706f7572204672616d61626c6f672e205269656e2064e2809965787472616f7264696e616972652c206a65206e652073756973207061732062696c696e6775652c20c3a761206d65207065726d6574206465206de28099656e747261c3ae6e65722e3c2f703e0a3c703e3c656d3e5061726c6f6e73206465207375697465206465206365207175692066c3a2636865c2a03a20746f6e206170706c69636174696f6e2057616c6c616261672c20656c6c652073e28099617070656c6c6169742070617320e2809c506f636865e2809d2c206176616e74c2a03f205475206e6f7573207261636f6e746573206ce28099686973746f697265c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e45756820656e20656666657420e280a62044c3a96ac3a02c20706f757271756f69203c656d3e706f6368653c2f656d3ec2a03f20506172636520717565206ce28099756e206465732074726f697320c2abc2a074c3a96e6f7273c2a0c2bb20737572206c65206d61726368c3a92073e28099617070656c6c65203c656d3e506f636b65743c2f656d3e2e20436f6d6d65206d6f6e206170706c69206ee28099c3a9746169742064657374696ec3a965207175e28099c3a0206d6f6e20757361676520706572736f6e6e656c2061752064c3a9706172742c206a65206e65206d6520737569732070617320746f72747572c3a9206269656e206c6f6e6774656d70732e3c2f703e0a3c703e43657420c3a974c3a92c206f6e2061206661696c6c69206368616e676572206465206e6f6d2c207175616e6420696c2079206120657520646520706c757320656e20706c75732064e280997574696c69736174657572732e2045742070756973206f6e2073e28099657374206469742071756520706f6368652c2063e28099c3a97461697420706173206d616c2c20c3a76120736f6e6e616974206269656e206672616ec3a761697320657420707569732061766563206c6573207175656c717565732064697a61696e65732064e280997574696c69736174657572732c206f6e206e652067c3aa6e657261697420706572736f6e6e652e3c2f703e0a3c703e43e280996573742073616e7320636f6d707465722061766563206c657320736f6369c3a974c3a97320616dc3a972696361696e6573206574206c6575722066c3a2636865757365206d616e696520646520766f756c6f697220656e766f796572206c657572732061766f6361747320c3a020746f757420626f7574206465206368616d702e204c65203233206a616e766965722c206ae280996169207265c3a77520756e20656d61696c206465206c61207061727420647520636162696e65742064e2809961766f6361747320646520506f636b6574206d652064656d616e64616e74206465206368616e676572206c65206e6f6d2c206c65206c6f676f2c206465206e6520706c7573207574696c69736572206c65207465726d6520e2809c726561642d69742d6c61746572e2809d2028c2abc2a06c6973657a206c6520706c75732074617264c2a0c2bb29206574206465206e6520706c757320646972652071756520506f636b6574206ee280996573742070617320677261747569742028746f7574206573742070617274692064e280993c6120687265663d2268747470733a2f2f747769747465722e636f6d2f77616c6c616261676170702f7374617475732f343233373836333635393434323235373932223e756e2074776565743c2f613e206fc3b9206a65207175616c6966696520506f636b657420646520c2abc2a06e6f6e2066726565c2a0c2bb20c3a0207361766f6972206e6f6e206c69627265292e20427265662c206dc3aa6d65207369206a652073656d626c6169732064616e73206d6f6e2064726f69742c206ae280996169207175616e64206dc3aa6d652070726973206c612064c3a9636973696f6e206465206368616e676572206465206e6f6d2065742057616c6c6162616720657374206ec3a92c20737569746520617578203c6120687265663d22687474703a2f2f6672616d61646174652e6f72672f73747564732e7068703f736f6e646167653d6c6c6370366f6a70796339706b6c6861223e64697a61696e65732064652070726f706f736974696f6e73206465206e6f6d207265c3a77565733c2f613e2e2043e2809965737420756e206dc3a96c616e676520656e747265206c652077616c6c61627920286465206c612066616d696c6c6520646573206b616e676f75726f75732c207175692073746f636b656e742064616e73206c65757220706f63686520636520717569206c65757220657374206368657229206574203c656d3e6261673c2f656d3e20286c6573207465726d657320736163202f207361636f636865202f2062657361636520736f6e7420c3a96e6f726dc3a96d656e7420726576656e7573292e204d616973206d61696e74656e616e742c206f6e207661206465206ce280996176616e742c20706c75732064652074656d707320c3a020706572647265206176656320c3a7612c206f6e2061206475207061696e20737572206c6120706c616e6368652e3c6272202f3e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f77616c6c6162795f626162792e6a70672220616c743d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f6368652220636c6173733d22633122207469746c653d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f63686522202f3e206372c3a96469742070686f746f203c6120687265663d22687474703a2f2f7777772e666c69636b722e636f6d2f70686f746f732f3236373832383634404e30302f353032373230323233342f696e2f70686f746f6c6973742d3845654a35412d6831544c36762d4e454c38312d636e4e6b536f2d39594d3174762d374b636736622d387a70416f612d61315a4c4d4e2d39594d3339722d3768355341442d38456548664c2d3845654677752d647456776e4d2d38756f4d45312d4a457a58652d47713471792d3932564a50522d43786531762d38483344324a2d61315a464e732d395937324b362d38456547784c2d354c353346782d354e6b454e732d3555384354592d354e6b7373682d6e6b6176462d3943726777502d3773644341612d647566324b682d685a65707a792d685a645531652d685a656f66462d685a656b44672d685a656741592d685a654d5a6e2d6a61486741662d3850383744322d354e677152762d6154343851422d685a645634592d685a654336342d45526770732d3556594747642d3556594a42312d354e6b72466b2d364a786837682d3768395075512d4552664d782d6831553169682d683155534278223e57696c6c69616d2057617262793c2f613e20717569206175746f72697365206578706c69636974656d656e7420746f7574652072c3a97574696c69736174696f6e2e3c2f703e0a3c703e3c656d3e426f6e2c20616c6f7273206578706c697175652d6d6f6920636520717565206a65207661697320706f75766f69722066616972652061766563204672616d61626167e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e416c6f7273204672616d616261672c20c3a761207465207065726d6574206465207465206372c3a9657220756e20636f6d7074652067726174756974656d656e74206574206c696272656d656e7420706f757220706f75766f6972207574696c697365722057616c6c616261672e205365756c6520746f6e206164726573736520656d61696c20657374206ec3a963657373616972652c206f6e207365206368617267652064e28099696e7374616c6c6572206574206465206d657474726520c3a0206a6f75722057616c6c6162616720706f757220746f692e20547520706575782064e2809961696c6c657572732070726f6669746572203c6120687265663d22687474703a2f2f7777772e6672616d61736f66742e6e65742f23746f705067436c6f7564223e64e280996175747265732073657276696365732070726f706f73c3a97320706172204672616d61736f6674206963693c2f613e2e3c2f703e0a3c703ec380206365206a6f75722c20696c207920612038333420636f6d70746573206372c3a9c3a97320737572204672616d616261672e3c2f703e0a3c703e3c656d3e566f7573206176657a20767261696d656e7420636f6ec3a7752063652073657276696365206166696e207175e280996f6e20707569737365206ce280997574696c69736572206176656320756e206d6178696d756d2064e280996f7574696c732c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4175746f7572206465206ce280996170706c69636174696f6e207765622c20696c206578697374652064c3a96ac3a020646573206170706c69636174696f6e7320706f757220736d61727470686f6e65732028416e64726f69642065742057696e646f77732050686f6e65292c2064657320657874656e73696f6e732046697265666f7820657420476f6f676c65204368726f6d652e3c2f703e0a3c703e436f6d6d652057616c6c6162616720706f7373c3a864652064657320666c7578205253532c2063e2809965737420666163696c65206465206c697265206c65732061727469636c657320736175766567617264c3a97320737572207361206c697365757365202873692063656c6c652d6369207065726d6574206465206c6972652064657320666c757820525353292e2043616c696272652028c2abc2a06c6f67696369656c206465206c6563747572652c2064652067657374696f6e206465206269626c696f7468c3a87175657320657420646520636f6e76657273696f6e206465206669636869657273206e756dc3a972697175657320646520747970652065626f6f6b206f75206c6976726520c3a96c656374726f6e69717565c2a0c2bb2c6e6f757320646974207562756e74752d66722e6f72672920696e74c3a867726520646570756973207175656c717565732073656d61696e6573206d61696e74656e616e74206c6120706f73736962696c6974c3a92064652072c3a9637570c3a9726572206c65732061727469636c6573206e6f6e206c75732c20707261746971756520706f757220666169726520756e20666963686965722065507562c2a0213c2f703e0a3c703e44e28099617574726573206170706c69636174696f6e7320776562207065726d657474656e74206ce28099696e74c3a967726174696f6e20617665632057616c6c61626167202846726573685253532c204c6565642065742054696e792054696e792052535320706f7572206c657320616772c3a96761746575727320646520666c7578292e204ce2809941504920717569207365726120646973706f6e69626c652064616e73206c612070726f636861696e652076657273696f6e2064652057616c6c61626167207065726d657474726120656e636f726520706c75732064e28099696e74657261637469766974c3a92e3c2f703e0a3c703e3c656d3e5920612d742d696c20756e206d6f6465206465206c65637475726520686f7273206c69676e65206f75206573742d6365207175652063e28099657374207072c3a9767520706f7572206c65732070726f636861696e65732076657273696f6e73c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e496c2079206120756e2070736575646f206d6f646520686f7273206c69676e652c20646973706f6e69626c652061766563206ce280996170706c69636174696f6e20416e64726f69642e204f6e20706575742072c3a9637570c3a9726572202876696120756e20666c75782052535329206c65732061727469636c6573206e6f6e206c757320717565206ce280996f6e206120736175766567617264c3a9732e20556e6520666f69732064c3a9636f6e6e656374c3a92c206f6e207065757420636f6e74696e75657220c3a0206c6972652073757220736f6e20736d61727470686f6e65206f75207361207461626c65747465206c65732061727469636c65732e2050617220636f6e7472652c20696c206d616e7175652064657320666f6e6374696f6e6e616c6974c3a973c2a03a207175616e64207475206d61727175657320756e2061727469636c6520636f6d6d65206c752c206365206ee28099657374207061732073796e6368726f6e6973c3a92061766563206c612076657273696f6e207765622064652057616c6c616261672e204ae28099657370c3a8726520717565206a652073756973207072657371756520636c6169722064616e73206d6573206578706c69636174696f6e732e3c2f703e0a3c703e506f7572206c612076322c20717569206573742064c3a96ac3a020656e20636f7572732064652064c3a976656c6f7070656d656e742c206fc3b9206a652073756973206269656e20616964c3a9207061722056696e63656e74204a6f757373652c206f6e2061757261206c6120706f73736962696c6974c3a92064e2809961766f697220756e2076726169206d6f646520686f7273206c69676e652e3c2f703e0a3c703e3c656d3e416c6f7273207369206f6e2076657574206169646572202f2070617274696369706572202f20747269666f75696c6c6572206c6520636f6465202f20766f757320656e766f79657220646573207265746f7572732c206f6e206661697420636f6d6d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4f6e207065757420616964657220646520706c75736965757273206661c3a76f6e73c2a03a3c2f703e0a3c756c3e3c6c693e7574696c697365722077616c6c61626167206574206e6f75732072656d6f6e746572206c65732070726f626cc3a86d65732072656e636f6e7472c3a973c2a03b3c2f6c693e0a3c6c693e706172746963697065722061752064c3a976656c6f7070656d656e74206465206ce280996170706c69636174696f6e2068747470733a2f2f6769746875622e636f6d2f77616c6c616261672f77616c6c616261672053692053696c6578202f2053796d666f6e7932202f2048544d4c35202f206574632e207465207061726c656e742c206ee2809968c3a97369746520706173c2a0213c2f6c693e0a3c6c693e636f6d6d6520746f75742070726f6a65742c206c652067726f7320706f696e74206e6f697220657374206c65206d616e71756520646520646f63756d656e746174696f6e2e203c6120687265663d22687474703a2f2f646f632e77616c6c616261672e6f7267223e456c6c652065737420646973706f206963693c2f613e206d61697320696c206d616e71756520706c65696e2064652063686f73657320657420746f7574206ee280996573742070617320c3a0206a6f7572c2a03b3c2f6c693e0a3c6c693e7061726c65722064652057616c6c61626167206175746f757220646520766f7573c2a03b3c2f6c693e0a3c6c693e696c20657869737465203c6120687265663d2268747470733a2f2f666c617474722e636f6d2f7468696e672f313236353438302f706f6368652d612d726561642d69742d6c617465722d6f70656e2d736f757263652d73797374656d223e756e20636f6d70746520466c617474723c2f613e2e3c2f6c693e0a3c2f756c3e3c703e3c656d3e4c65206d6f74206465206c612066696ee280a63f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4d6572636920c3a0204672616d61736f66742064e280996163637565696c6c697220657420646520736f7574656e69722057616c6c61626167c2a0213c2f703e0a3c703e4c6120726f7574652065737420656e636f7265206269656e206c6f6e67756520706f7572206e6520706c7573207574696c6973657220646520736f6c7574696f6e732070726f707269c3a97461697265732c206d616973206f6e2064657672616974207920617272697665722c206e6f6ec2a03f3c2f703e0a3c703e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f706c65696e4c6573506f636865732e706e672220616c743d226672616d61736f667420706c65696e206c657320706f636865732220636c6173733d22633122207469746c653d226672616d61736f667420706c65696e206c657320706f6368657322202f3e3c6272202f3e3c6120687265663d22687474703a2f2f6672616d616c61622e6f72672f676b6e642d63726561746f722f223e6861636b657a2047c3a967c3a9c2a0213c2f613e3c2f703e0a, 1), 115(1, 'Framabag, un nouveau service libre et gratuit', 'http://www.framablog.org/index.php/post/2014/02/05/Framabag-service-libre-gratuit-interview-developpeur', 0, 0, 0x0a3c68323e556e6520696e74657276696577206465204e69636f6c61732c20736f6e2064c3a976656c6f70706575722e3c2f68323e0a3c703e3c656d3e496c206e6520766f757320612073c3bb72656d656e742070617320c3a96368617070c3a920717565206e6f74726520636f6e736f6d6d6174696f6e20646520636f6e74656e75732064752057656220657374207465727269626c656d656e74206368726f6e6f706861676520657420706172746963756c69c3a872656d656e7420667275737472616e746520746f757420c3a0206c6120666f6973c2a03a206e6f6e207365756c656d656e74206e6f757320706173736f6e732062656175636f7570202874726f70c2a03f292064652074656d707320656e206c69676e6520c3a0206578706c6f726572206c6573206d696e6573206175726966c3a8726573206465206c6120746f696c652c20792064c3a974656374616e742070c3a970697465732065742066696c6f6e732c206d616973206e6f757320736f6d6d657320737572746f757420636f6e7374616d6d656e7420656e206d616e7175652e204dc3aa6d65207369206e6f7573206e6520736f6d6d6573207061732064616e73206c65207a617070696e67206672c3a96ec3a9746971756520736920666163696c656d656e742064c3a96e6f6e63c3a920706172206c657320646f637465732070737963686f6c6f677565732071756920706f6e74696669656e7420737572206c65732064616e67657273206475206e756dc3a9726971756520706f7572206c6573206a65756e65732063657276656c6c65732c20696c206e6f7573207669656e7420736f7576656e74206c6520676fc3bb7420616d6572206465206ce28099696e6163686576c3a9c2a03a20706173206c652074656d707320646520746f7574206c69726520283c6120687265663d22687474703a2f2f66722e77696b74696f6e6172792e6f72672f77696b692f544c4452223e544c3b44523c2f613e2065737420646576656e75206c6520636c696e2064e28099c593696c206d692d6669677565206d692d72616973696e2064e28099756e652067c3a96ec3a9726174696f6e206465206c65637465757273207072657373c3a973292c207061732074726f70206c652074656d70732064652072c3a9666cc3a963686972206e6f6e20706c75732068c3a96c61732c20706173206c652074656d707320646520737569767265206c6120726962616d62656c6c65206465206c69656e73206173736f6369c3a97320c3a020756e2061727469636c65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e506f7572206e6f757320646f6e6e657220626f6e6e6520636f6e736369656e63652c206e6f75732072616e67656f6e73207363727570756c657573656d656e7420756e206d61727175652d7061676520646520706c75732064616e7320756e20736f75732d646f73736965722071756920656e20636f6d706f7274652064c3a96ac3a0203235362c206e6f7573206e6f746f6e7320756e20c3a96cc3a96d656e7420646520706c75732064616e73206c6120746f756a6f757273207269646963756c656d656e74206c6f6e67756520746f75646f756c697374652c2062726566206e6f75732072656d6574746f6e7320c3a020706c757320746172642c2063e280996573742dc3a02d64697265206c6520706c757320736f7576656e742061757820696e74726f757661626c65732063616c656e6465732067726563717565732c206c6520736f696e206465206c69726520767261696d656e7420756e2061727469636c65206a7567c3a920696e74c3a972657373616e742c20646520726567617264657220756e6520766964c3a96f207369676e616cc3a96520706172206c65732072c3a97a6f73736f63696f732c206465206c69726520756e20636861706974726520656e746965722064e28099756e206f75767261676520646973706f6e69626c6520656e206c69676e65e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e416c6f7273206269656e2073c3bb722c20c3a02064c3a966617574206465206e6f757320646f6e6e657220746f7574206c652074656d70732071756920736572616974206ec3a963657373616972652c2064657320736f6c7574696f6e73206578697374656e7420706f7572206e6f7573207065726d657474726520646520c2abc2a06c69726520706c75732074617264c2a0c2bb20656e20736175766567617264616e74206c65207072c3a9636965757820706f6c6c656e206465206e6f7320627574696e61676573206465207369746520656e20736974652c2065742064e28099656e20666169726520756c74c3a97269657572656d656e7420766f747265206d69656cc2a03b2063e280996573742062656c20657420626f6e206d616973206c65732072756368657320736f6e7420756e207065752064697374616e7465732c20c3a7612073e28099617070656c6c65206c6520636c6f756420286e6f7320616d69732074656368696573206de280996f6e74206269656e206578706c697175c3a9206d616973206ae280996169207365756c656d656e7420636f6d70726973207175652064657320747275637320c3a0206d6f6920736f6e742073757220646573206d616368696e6573206c6f696e7461696e65732c20c3a761206e65206d652072617373757265207061732074726f702920657420656c6c657320736f6e7420736f7576656e742070726f707269c3a97461697265732c206e65206c61697373616e7420656e7472657220717565206c6573203c733e7574696c69736174657572733c2f733e20636f6e736f6d6d61746575727320706179616e74732065742071756920636f6e73656e74656e7420c3a0206c6575727320636f6e646974696f6e732e2053616e7320636f6d70746572207175652064652067726f7320626f7572646f6e73207669656e6e656e742070726f666974657220706c7573206f75206d6f696e73206469736372c3a874656d656e7420646520746f757465732063657320747261636573206465206e6f75732d6dc3aa6d657320717569207065726d657474656e74206465206d6f6ec3a97469736572206e6f7472652070726f66696cc2a03a207369206a6520636f6c6c65637465207375722063657320736572766963657320286e65206c6573206e6f6d6d6f6e73207061732c206a757374656d656e742920756e652073c3a97269652064e2809961727469636c657320737572206ce280996964c3a965206465204e6174757265206368657a2044696465726f742c206a6520726563657672616920646976657273657320736f6c6c696369746174696f6e7320706f757220646576656e697220636c69656e74206465206c6120626f757469717565204e61747572652026616d703b2044c3a9636f75766572746520647520626f756c65766172642044696465726f742e2045742073692064e280996176656e74757265206c65732070726f6772616d6d6573206465206c61204e5341206d6f756c696e656e7420737572206c6520736572766963652c206a6520736572616920706575742dc3aa74726520756e206a6f75722064616e7320756e65206c6973746520646573206d696c6974616e7473206e61747572697374657320696e64c3a973697261626c657320737572206c657320766f6c73206465206c612050616e416d20286a65206e65207361697320706c75732074726f70207369206a6520706c616973616e7465206cc3a02c2066696e616c656d656e74e280a6293c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6120626f6e6e65206964c3a965c2a03a20c2abc2a0736520636f6e7374697475657220756e2072c3a9736572766f697220646520646f63756d656e74732073c3a96c656374696f6e6ec3a97320c3a020706172636f7572697220706c75732074617264c2a0c2bb20617070656c61697420646f6e6320756e6520617574726520626f6e6e65206964c3a9652c2063656c6c652064e2809961766f6972206c6520636f6e7472c3b46c652064652063652072c3a9736572766f69722c206465206e6f74726520636f6c6c656374696f6e20706572736f6e6e656c6c652e2043e28099657374204e69636f6c6173204cc59375696c6c65742c2063692d646573736f757320696e74657276696577c3a92c207175692073e28099792065737420636f6c6cc3a9206176656320756e652062656c6c65206170706c69636174696f6e20617070656cc3a96520657568e280a6206f75692c20617070656cc3a9652057616c6c616261672e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61736f667420736f757469656e742064e28099617574616e7420706c757320736f6e20696e6974696174697665207175e280993c6120687265663d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f696e6465782e7068702f706f73742f323031342f30312f33312f4765656b74696f6e6e6572642d57616c6c61626167223e6f6e206c7569206120636865726368c3a920646573206d6973c3a872657320706f757220756e6520686973746f697265206465206e6f6d3c2f613e206574207175e28099696c2065737420706f737369626c652064e28099696e7374616c6c657220736f692d6dc3aa6d6520756e6520636f7069652064652057616c6c616261672073757220736f6e2070726f70726520736974652e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4c6520706574697420706c7573206465204672616d61736f66742c2072c3a97365617520746f756a6f7572732064c3a973697265757820646520766f75732070726f706f7365722064657320616c7465726e617469766573206c6962c3a972617472696365732c2063e2809965737420646520766f75732070726f706f736572202873757220696e736372697074696f6e207072c3a9616c61626c652920756e20616363c3a873206175204672616d616261672c2061757472656d656e742064697420766f7472652057616c6c616261672073757220756e2073657276657572204672616d612a2061766563206e6f74726520676172616e74696520646520636f6e666964656e7469616c6974c3a92e20436f6d6d6520706f7572206c65204672616d616e6577732c206e6f757320766f7573206163637565696c6c6f6e7320766f6c6f6e74696572732064616e73206c61206c696d697465206465206e6f732063617061636974c3a9732c20656e20766f757320696e766974616e7420c3a020766f7573206c616e6365722064616e7320766f747265206175746f2d68c3a962657267656d656e742064652057616c6c616261672e3c6272202f3e4365742061727469636c65206573742074726f70206c6f6e67c2a03f204d657474657a2d6c652064616e73203c6120687265663d22687474703a2f2f7777772e6672616d616261672e6f72672f696e6465782e706870223e766f747265204672616d616261673c2f613e20657420686f702e3c6272202f3e3c2f656d3e3c2f703e0a3c703e3c656d3e4672616d61626c6f67c2a03a2053616c7574204e69636f6c6173e280a62054752070657578207465207072c3a973656e74657220627269c3a876656d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e53616c7574c2a0212044c3a976656c6f70706575722050485020646570756973207175656c7175657320616e6ec3a96573206d61696e74656e616e742028313020616e73292c206ae28099616920766f756c75206d652072656d657474726520c3a0206e697665617520746563686e697175656d656e74207061726c616e742028646570756973203320616e732c206ae28099616920706173206d616c206cc3a26368c3a9206c6520636c6176696572292e20506f7572206d6573206265736f696e7320706572736f732c206ae28099616920646f6e63206372c3a9c3a920756e2070657469742070726f6a657420706f75722072656d706c6163657220756e6520736f6c7574696f6e2070726f707269c3a97461697265206578697374616e74652e2053616e7320617563756e65207072c3a974656e74696f6e2c206ae2809961692068c3a962657267c3a92063652070726f6a6574207375722047697468756220657420636f6d6d652063e28099657374206c61207365756c6520736f6c7574696f6e203c656d3e6f70656e20736f757263653c2f656d3e20646520636520747970652c206c65206e6f6d62726520646520706572736f6e6e657320696e74c3a972657373c3a965732061206175676d656e74c3a920e280a63c2f703e0a3c703e3c656d3e4c6573207574696c6973617465757273206465207365727669636573204672616d61736f6674206e65206c6520736176656e742070617320666f7263c3a96d656e742c206d6169732074752061732064c3a96ac3a020706173206d616c207061727469636970c3a920c3a0206c61204672616d6147616c617869652c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e456e2065666665742e204ae28099616920636f6d6d656e63c3a920756e20706c7567696e20706f7572204672616d616e6577732c203c6120687265663d2268747470733a2f2f6769746875622e636f6d2f6e69636f736f6d622f74747273732d70757267652d6163636f756e7473223e74747273732d70757267652d6163636f756e74733c2f613e2c20717569207065726d6574206465206e6574746f796572206c61206261736520646520646f6e6ec3a9657320646520636f6d7074657320706c7573207574696c6973c3a9732e204d616973206365203c656d3e706c7567696e3c2f656d3e2061206265736f696e2064e28099c3aa747265207465726d696ec3a920c3a0203130302520706f757220c3aa74726520696e74c3a96772c3a9206175207365696e206465204672616d616e6577732028657420646f6e632064652054696e792054696e7920525353292c207369207175656c7175e28099756e20736f756861697465206de2809961696465722c20696c206ee2809979206120617563756e20736f7563692e3c6272202f3e4ae28099616920617573736920666169742031206f7520322061707061726974696f6e732064616e73206465732074726164756374696f6e7320706f7572204672616d61626c6f672e205269656e2064e2809965787472616f7264696e616972652c206a65206e652073756973207061732062696c696e6775652c20c3a761206d65207065726d6574206465206de28099656e747261c3ae6e65722e3c2f703e0a3c703e3c656d3e5061726c6f6e73206465207375697465206465206365207175692066c3a2636865c2a03a20746f6e206170706c69636174696f6e2057616c6c616261672c20656c6c652073e28099617070656c6c6169742070617320e2809c506f636865e2809d2c206176616e74c2a03f205475206e6f7573207261636f6e746573206ce28099686973746f697265c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e45756820656e20656666657420e280a62044c3a96ac3a02c20706f757271756f69203c656d3e706f6368653c2f656d3ec2a03f20506172636520717565206ce28099756e206465732074726f697320c2abc2a074c3a96e6f7273c2a0c2bb20737572206c65206d61726368c3a92073e28099617070656c6c65203c656d3e506f636b65743c2f656d3e2e20436f6d6d65206d6f6e206170706c69206ee28099c3a9746169742064657374696ec3a965207175e28099c3a0206d6f6e20757361676520706572736f6e6e656c2061752064c3a9706172742c206a65206e65206d6520737569732070617320746f72747572c3a9206269656e206c6f6e6774656d70732e3c2f703e0a3c703e43657420c3a974c3a92c206f6e2061206661696c6c69206368616e676572206465206e6f6d2c207175616e6420696c2079206120657520646520706c757320656e20706c75732064e280997574696c69736174657572732e2045742070756973206f6e2073e28099657374206469742071756520706f6368652c2063e28099c3a97461697420706173206d616c2c20c3a76120736f6e6e616974206269656e206672616ec3a761697320657420707569732061766563206c6573207175656c717565732064697a61696e65732064e280997574696c69736174657572732c206f6e206e652067c3aa6e657261697420706572736f6e6e652e3c2f703e0a3c703e43e280996573742073616e7320636f6d707465722061766563206c657320736f6369c3a974c3a97320616dc3a972696361696e6573206574206c6575722066c3a2636865757365206d616e696520646520766f756c6f697220656e766f796572206c657572732061766f6361747320c3a020746f757420626f7574206465206368616d702e204c65203233206a616e766965722c206ae280996169207265c3a77520756e20656d61696c206465206c61207061727420647520636162696e65742064e2809961766f6361747320646520506f636b6574206d652064656d616e64616e74206465206368616e676572206c65206e6f6d2c206c65206c6f676f2c206465206e6520706c7573207574696c69736572206c65207465726d6520e2809c726561642d69742d6c61746572e2809d2028c2abc2a06c6973657a206c6520706c75732074617264c2a0c2bb29206574206465206e6520706c757320646972652071756520506f636b6574206ee280996573742070617320677261747569742028746f7574206573742070617274692064e280993c6120687265663d2268747470733a2f2f747769747465722e636f6d2f77616c6c616261676170702f7374617475732f343233373836333635393434323235373932223e756e2074776565743c2f613e206fc3b9206a65207175616c6966696520506f636b657420646520c2abc2a06e6f6e2066726565c2a0c2bb20c3a0207361766f6972206e6f6e206c69627265292e20427265662c206dc3aa6d65207369206a652073656d626c6169732064616e73206d6f6e2064726f69742c206ae280996169207175616e64206dc3aa6d652070726973206c612064c3a9636973696f6e206465206368616e676572206465206e6f6d2065742057616c6c6162616720657374206ec3a92c20737569746520617578203c6120687265663d22687474703a2f2f6672616d61646174652e6f72672f73747564732e7068703f736f6e646167653d6c6c6370366f6a70796339706b6c6861223e64697a61696e65732064652070726f706f736974696f6e73206465206e6f6d207265c3a77565733c2f613e2e2043e2809965737420756e206dc3a96c616e676520656e747265206c652077616c6c61627920286465206c612066616d696c6c6520646573206b616e676f75726f75732c207175692073746f636b656e742064616e73206c65757220706f63686520636520717569206c65757220657374206368657229206574203c656d3e6261673c2f656d3e20286c6573207465726d657320736163202f207361636f636865202f2062657361636520736f6e7420c3a96e6f726dc3a96d656e7420726576656e7573292e204d616973206d61696e74656e616e742c206f6e207661206465206ce280996176616e742c20706c75732064652074656d707320c3a020706572647265206176656320c3a7612c206f6e2061206475207061696e20737572206c6120706c616e6368652e3c6272202f3e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f77616c6c6162795f626162792e6a70672220616c743d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f6368652220636c6173733d22633122207469746c653d2277616c6c61627920617665632062c3a962c3a92064616e7320736120706f63686522202f3e206372c3a96469742070686f746f203c6120687265663d22687474703a2f2f7777772e666c69636b722e636f6d2f70686f746f732f3236373832383634404e30302f353032373230323233342f696e2f70686f746f6c6973742d3845654a35412d6831544c36762d4e454c38312d636e4e6b536f2d39594d3174762d374b636736622d387a70416f612d61315a4c4d4e2d39594d3339722d3768355341442d38456548664c2d3845654677752d647456776e4d2d38756f4d45312d4a457a58652d47713471792d3932564a50522d43786531762d38483344324a2d61315a464e732d395937324b362d38456547784c2d354c353346782d354e6b454e732d3555384354592d354e6b7373682d6e6b6176462d3943726777502d3773644341612d647566324b682d685a65707a792d685a645531652d685a656f66462d685a656b44672d685a656741592d685a654d5a6e2d6a61486741662d3850383744322d354e677152762d6154343851422d685a645634592d685a654336342d45526770732d3556594747642d3556594a42312d354e6b72466b2d364a786837682d3768395075512d4552664d782d6831553169682d683155534278223e57696c6c69616d2057617262793c2f613e20717569206175746f72697365206578706c69636974656d656e7420746f7574652072c3a97574696c69736174696f6e2e3c2f703e0a3c703e3c656d3e426f6e2c20616c6f7273206578706c697175652d6d6f6920636520717565206a65207661697320706f75766f69722066616972652061766563204672616d61626167e280a63c6272202f3e3c2f656d3e3c2f703e0a3c703e416c6f7273204672616d616261672c20c3a761207465207065726d6574206465207465206372c3a9657220756e20636f6d7074652067726174756974656d656e74206574206c696272656d656e7420706f757220706f75766f6972207574696c697365722057616c6c616261672e205365756c6520746f6e206164726573736520656d61696c20657374206ec3a963657373616972652c206f6e207365206368617267652064e28099696e7374616c6c6572206574206465206d657474726520c3a0206a6f75722057616c6c6162616720706f757220746f692e20547520706575782064e2809961696c6c657572732070726f6669746572203c6120687265663d22687474703a2f2f7777772e6672616d61736f66742e6e65742f23746f705067436c6f7564223e64e280996175747265732073657276696365732070726f706f73c3a97320706172204672616d61736f6674206963693c2f613e2e3c2f703e0a3c703ec380206365206a6f75722c20696c207920612038333420636f6d70746573206372c3a9c3a97320737572204672616d616261672e3c2f703e0a3c703e3c656d3e566f7573206176657a20767261696d656e7420636f6ec3a7752063652073657276696365206166696e207175e280996f6e20707569737365206ce280997574696c69736572206176656320756e206d6178696d756d2064e280996f7574696c732c206e6f6ec2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4175746f7572206465206ce280996170706c69636174696f6e207765622c20696c206578697374652064c3a96ac3a020646573206170706c69636174696f6e7320706f757220736d61727470686f6e65732028416e64726f69642065742057696e646f77732050686f6e65292c2064657320657874656e73696f6e732046697265666f7820657420476f6f676c65204368726f6d652e3c2f703e0a3c703e436f6d6d652057616c6c6162616720706f7373c3a864652064657320666c7578205253532c2063e2809965737420666163696c65206465206c697265206c65732061727469636c657320736175766567617264c3a97320737572207361206c697365757365202873692063656c6c652d6369207065726d6574206465206c6972652064657320666c757820525353292e2043616c696272652028c2abc2a06c6f67696369656c206465206c6563747572652c2064652067657374696f6e206465206269626c696f7468c3a87175657320657420646520636f6e76657273696f6e206465206669636869657273206e756dc3a972697175657320646520747970652065626f6f6b206f75206c6976726520c3a96c656374726f6e69717565c2a0c2bb2c6e6f757320646974207562756e74752d66722e6f72672920696e74c3a867726520646570756973207175656c717565732073656d61696e6573206d61696e74656e616e74206c6120706f73736962696c6974c3a92064652072c3a9637570c3a9726572206c65732061727469636c6573206e6f6e206c75732c20707261746971756520706f757220666169726520756e20666963686965722065507562c2a0213c2f703e0a3c703e44e28099617574726573206170706c69636174696f6e7320776562207065726d657474656e74206ce28099696e74c3a967726174696f6e20617665632057616c6c61626167202846726573685253532c204c6565642065742054696e792054696e792052535320706f7572206c657320616772c3a96761746575727320646520666c7578292e204ce2809941504920717569207365726120646973706f6e69626c652064616e73206c612070726f636861696e652076657273696f6e2064652057616c6c61626167207065726d657474726120656e636f726520706c75732064e28099696e74657261637469766974c3a92e3c2f703e0a3c703e3c656d3e5920612d742d696c20756e206d6f6465206465206c65637475726520686f7273206c69676e65206f75206573742d6365207175652063e28099657374207072c3a9767520706f7572206c65732070726f636861696e65732076657273696f6e73c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e496c2079206120756e2070736575646f206d6f646520686f7273206c69676e652c20646973706f6e69626c652061766563206ce280996170706c69636174696f6e20416e64726f69642e204f6e20706575742072c3a9637570c3a9726572202876696120756e20666c75782052535329206c65732061727469636c6573206e6f6e206c757320717565206ce280996f6e206120736175766567617264c3a9732e20556e6520666f69732064c3a9636f6e6e656374c3a92c206f6e207065757420636f6e74696e75657220c3a0206c6972652073757220736f6e20736d61727470686f6e65206f75207361207461626c65747465206c65732061727469636c65732e2050617220636f6e7472652c20696c206d616e7175652064657320666f6e6374696f6e6e616c6974c3a973c2a03a207175616e64207475206d61727175657320756e2061727469636c6520636f6d6d65206c752c206365206ee28099657374207061732073796e6368726f6e6973c3a92061766563206c612076657273696f6e207765622064652057616c6c616261672e204ae28099657370c3a8726520717565206a652073756973207072657371756520636c6169722064616e73206d6573206578706c69636174696f6e732e3c2f703e0a3c703e506f7572206c612076322c20717569206573742064c3a96ac3a020656e20636f7572732064652064c3a976656c6f7070656d656e742c206fc3b9206a652073756973206269656e20616964c3a9207061722056696e63656e74204a6f757373652c206f6e2061757261206c6120706f73736962696c6974c3a92064e2809961766f697220756e2076726169206d6f646520686f7273206c69676e652e3c2f703e0a3c703e3c656d3e416c6f7273207369206f6e2076657574206169646572202f2070617274696369706572202f20747269666f75696c6c6572206c6520636f6465202f20766f757320656e766f79657220646573207265746f7572732c206f6e206661697420636f6d6d656e74c2a03f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4f6e207065757420616964657220646520706c75736965757273206661c3a76f6e73c2a03a3c2f703e0a3c756c3e3c6c693e7574696c697365722077616c6c61626167206574206e6f75732072656d6f6e746572206c65732070726f626cc3a86d65732072656e636f6e7472c3a973c2a03b3c2f6c693e0a3c6c693e706172746963697065722061752064c3a976656c6f7070656d656e74206465206ce280996170706c69636174696f6e2068747470733a2f2f6769746875622e636f6d2f77616c6c616261672f77616c6c616261672053692053696c6578202f2053796d666f6e7932202f2048544d4c35202f206574632e207465207061726c656e742c206ee2809968c3a97369746520706173c2a0213c2f6c693e0a3c6c693e636f6d6d6520746f75742070726f6a65742c206c652067726f7320706f696e74206e6f697220657374206c65206d616e71756520646520646f63756d656e746174696f6e2e203c6120687265663d22687474703a2f2f646f632e77616c6c616261672e6f7267223e456c6c652065737420646973706f206963693c2f613e206d61697320696c206d616e71756520706c65696e2064652063686f73657320657420746f7574206ee280996573742070617320c3a0206a6f7572c2a03b3c2f6c693e0a3c6c693e7061726c65722064652057616c6c61626167206175746f757220646520766f7573c2a03b3c2f6c693e0a3c6c693e696c20657869737465203c6120687265663d2268747470733a2f2f666c617474722e636f6d2f7468696e672f313236353438302f706f6368652d612d726561642d69742d6c617465722d6f70656e2d736f757263652d73797374656d223e756e20636f6d70746520466c617474723c2f613e2e3c2f6c693e0a3c2f756c3e3c703e3c656d3e4c65206d6f74206465206c612066696ee280a63f3c6272202f3e3c2f656d3e3c2f703e0a3c703e4d6572636920c3a0204672616d61736f66742064e280996163637565696c6c697220657420646520736f7574656e69722057616c6c61626167c2a0213c2f703e0a3c703e4c6120726f7574652065737420656e636f7265206269656e206c6f6e67756520706f7572206e6520706c7573207574696c6973657220646520736f6c7574696f6e732070726f707269c3a97461697265732c206d616973206f6e2064657672616974207920617272697665722c206e6f6ec2a03f3c2f703e0a3c703e3c696d67207372633d22687474703a2f2f7777772e6672616d61626c6f672e6f72672f7075626c69632f5f696d672f6672616d61626c6f672f706c65696e4c6573506f636865732e706e672220616c743d226672616d61736f667420706c65696e206c657320706f636865732220636c6173733d22633122207469746c653d226672616d61736f667420706c65696e206c657320706f6368657322202f3e3c6272202f3e3c6120687265663d22687474703a2f2f6672616d616c61622e6f72672f676b6e642d63726561746f722f223e6861636b657a2047c3a967c3a9c2a0213c2f613e3c2f703e0a, 1),
@@ -288,7 +290,7 @@ php composer.phar install</code></pre></li>
288 <li><label for="mysql_server">Server</label> <input type="text" placeholder="localhost" id="mysql_server" name="mysql_server" /></li> 290 <li><label for="mysql_server">Server</label> <input type="text" placeholder="localhost" id="mysql_server" name="mysql_server" /></li>
289 <li><label for="mysql_database">Database</label> <input type="text" placeholder="wallabag" id="mysql_database" name="mysql_database" /></li> 291 <li><label for="mysql_database">Database</label> <input type="text" placeholder="wallabag" id="mysql_database" name="mysql_database" /></li>
290 <li><label for="mysql_user">User</label> <input type="text" placeholder="user" id="mysql_user" name="mysql_user" /></li> 292 <li><label for="mysql_user">User</label> <input type="text" placeholder="user" id="mysql_user" name="mysql_user" /></li>
291 <li><label for="mysql_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li> 293 <li><label for="mysql_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="mysql_password" name="mysql_password" /></li>
292 </ul> 294 </ul>
293 </li> 295 </li>
294 <li> 296 <li>
@@ -297,7 +299,7 @@ php composer.phar install</code></pre></li>
297 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li> 299 <li><label for="pg_server">Server</label> <input type="text" placeholder="localhost" id="pg_server" name="pg_server" /></li>
298 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li> 300 <li><label for="pg_database">Database</label> <input type="text" placeholder="wallabag" id="pg_database" name="pg_database" /></li>
299 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li> 301 <li><label for="pg_user">User</label> <input type="text" placeholder="user" id="pg_user" name="pg_user" /></li>
300 <li><label for="pg_password">Password</label> <input type="text" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li> 302 <li><label for="pg_password">Password</label> <input type="password" placeholder="p4ssw0rd" id="pg_password" name="pg_password" /></li>
301 </ul> 303 </ul>
302 </li> 304 </li>
303 </ul> 305 </ul>
diff --git a/install/mysql.sql b/install/mysql.sql
index de5640e4..1b65cd35 100644
--- a/install/mysql.sql
+++ b/install/mysql.sql
@@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS `config` (
3 `name` varchar(255) NOT NULL, 3 `name` varchar(255) NOT NULL,
4 `value` varchar(255) NOT NULL, 4 `value` varchar(255) NOT NULL,
5 PRIMARY KEY (`id`) 5 PRIMARY KEY (`id`)
6) ENGINE=InnoDB DEFAULT CHARSET=utf8; 6) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
7 7
8CREATE TABLE IF NOT EXISTS `entries` ( 8CREATE TABLE IF NOT EXISTS `entries` (
9 `id` int(11) NOT NULL AUTO_INCREMENT, 9 `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `entries` (
14 `content` blob NOT NULL, 14 `content` blob NOT NULL,
15 `user_id` int(11) NOT NULL, 15 `user_id` int(11) NOT NULL,
16 PRIMARY KEY (`id`) 16 PRIMARY KEY (`id`)
17) ENGINE=InnoDB DEFAULT CHARSET=utf8; 17) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
18 18
19CREATE TABLE IF NOT EXISTS `users` ( 19CREATE TABLE IF NOT EXISTS `users` (
20 `id` int(11) NOT NULL AUTO_INCREMENT, 20 `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS `users` (
23 `name` varchar(255) NOT NULL, 23 `name` varchar(255) NOT NULL,
24 `email` varchar(255) NOT NULL, 24 `email` varchar(255) NOT NULL,
25 PRIMARY KEY (`id`) 25 PRIMARY KEY (`id`)
26) ENGINE=InnoDB DEFAULT CHARSET=utf8; 26) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
27 27
28CREATE TABLE IF NOT EXISTS `users_config` ( 28CREATE TABLE IF NOT EXISTS `users_config` (
29 `id` int(11) NOT NULL AUTO_INCREMENT, 29 `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -31,13 +31,13 @@ CREATE TABLE IF NOT EXISTS `users_config` (
31 `name` varchar(255) NOT NULL, 31 `name` varchar(255) NOT NULL,
32 `value` varchar(255) NOT NULL, 32 `value` varchar(255) NOT NULL,
33 PRIMARY KEY (`id`) 33 PRIMARY KEY (`id`)
34) ENGINE=InnoDB DEFAULT CHARSET=utf8; 34) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
35 35
36CREATE TABLE IF NOT EXISTS `tags` ( 36CREATE TABLE IF NOT EXISTS `tags` (
37 `id` int(11) NOT NULL AUTO_INCREMENT, 37 `id` int(11) NOT NULL AUTO_INCREMENT,
38 `value` varchar(255) NOT NULL, 38 `value` varchar(255) NOT NULL,
39 PRIMARY KEY (`id`) 39 PRIMARY KEY (`id`)
40) ENGINE=InnoDB DEFAULT CHARSET=utf8; 40) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
41 41
42CREATE TABLE IF NOT EXISTS `tags_entries` ( 42CREATE TABLE IF NOT EXISTS `tags_entries` (
43 `id` int(11) NOT NULL AUTO_INCREMENT, 43 `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -46,4 +46,4 @@ CREATE TABLE IF NOT EXISTS `tags_entries` (
46 FOREIGN KEY(entry_id) REFERENCES entries(id) ON DELETE CASCADE, 46 FOREIGN KEY(entry_id) REFERENCES entries(id) ON DELETE CASCADE,
47 FOREIGN KEY(tag_id) REFERENCES tags(id) ON DELETE CASCADE, 47 FOREIGN KEY(tag_id) REFERENCES tags(id) ON DELETE CASCADE,
48 PRIMARY KEY (`id`) 48 PRIMARY KEY (`id`)
49) ENGINE=InnoDB DEFAULT CHARSET=utf8; 49) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
diff --git a/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo b/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo
index a3c98497..12fef6c8 100644
--- a/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo
+++ b/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo
Binary files differ
diff --git a/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po b/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po
index c589866c..98c6a3e8 100644
--- a/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po
+++ b/locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po
@@ -4,26 +4,26 @@ msgstr ""
4"Report-Msgid-Bugs-To: \n" 4"Report-Msgid-Bugs-To: \n"
5"POT-Creation-Date: 2014-02-25 15:17+0300\n" 5"POT-Creation-Date: 2014-02-25 15:17+0300\n"
6"PO-Revision-Date: \n" 6"PO-Revision-Date: \n"
7"Last-Translator: tcit <tcit@tcit.fr>\n" 7"Last-Translator: tcit <tcit@openmailbox.org>\n"
8"Language-Team: \n" 8"Language-Team: \n"
9"Language: en\n" 9"Language: en\n"
10"MIME-Version: 1.0\n" 10"MIME-Version: 1.0\n"
11"Content-Type: text/plain; charset=UTF-8\n" 11"Content-Type: text/plain; charset=UTF-8\n"
12"Content-Transfer-Encoding: 8bit\n" 12"Content-Transfer-Encoding: 8bit\n"
13"X-Generator: Poedit 1.6.9\n" 13"X-Generator: Poedit 1.5.4\n"
14"X-Poedit-Basepath: .\n" 14"X-Poedit-Basepath: .\n"
15 15
16msgid "wallabag, a read it later open source system" 16msgid "wallabag, a read it later open source system"
17msgstr "wallabag, a read it later open source system" 17msgstr "wallabag, a read it later open source system"
18 18
19msgid "login failed: user doesn't exist" 19msgid "login failed: user doesn't exist"
20msgstr "login failed: user doesn't exist" 20msgstr "Login failed: user doesn't exist"
21 21
22msgid "return home" 22msgid "return home"
23msgstr "return home" 23msgstr "Return Home"
24 24
25msgid "config" 25msgid "config"
26msgstr "config" 26msgstr "Config"
27 27
28msgid "Saving articles" 28msgid "Saving articles"
29msgstr "Saving articles" 29msgstr "Saving articles"
@@ -32,10 +32,16 @@ msgid "There are several ways to save an article:"
32msgstr "There are several ways to save an article:" 32msgstr "There are several ways to save an article:"
33 33
34msgid "read the documentation" 34msgid "read the documentation"
35msgstr "read the documentation" 35msgstr "Read the documentation"
36 36
37msgid "download the extension" 37msgid "download the extension"
38msgstr "download the extension" 38msgstr "Download the extension"
39
40msgid "Firefox Add-On"
41msgstr "Firefox Add-On"
42
43msgid "Chrome Extension"
44msgstr "Chrome Extension"
39 45
40msgid "via F-Droid" 46msgid "via F-Droid"
41msgstr "via F-Droid" 47msgstr "via F-Droid"
@@ -47,7 +53,7 @@ msgid "via Google Play"
47msgstr "via Google Play" 53msgstr "via Google Play"
48 54
49msgid "download the application" 55msgid "download the application"
50msgstr "download the application" 56msgstr "Download the application"
51 57
52msgid "By filling this field" 58msgid "By filling this field"
53msgstr "By filling this field" 59msgstr "By filling this field"
@@ -56,7 +62,7 @@ msgid "bag it!"
56msgstr "bag it!" 62msgstr "bag it!"
57 63
58msgid "Bookmarklet: drag & drop this link to your bookmarks bar" 64msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
59msgstr "Bookmarklet: drag & drop this link to your bookmarks bar" 65msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
60 66
61msgid "Upgrading wallabag" 67msgid "Upgrading wallabag"
62msgstr "Upgrading wallabag" 68msgstr "Upgrading wallabag"
@@ -102,17 +108,16 @@ msgid "Your token:"
102msgstr "Your token:" 108msgstr "Your token:"
103 109
104msgid "Your user id:" 110msgid "Your user id:"
105msgstr "Your user id:" 111msgstr "Your user ID:"
106 112
107msgid "" 113msgid ""
108"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!" 114"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!"
109"</a>." 115"</a>."
110msgstr "" 116msgstr ""
111"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!" 117"<a href='?feed&amp;action=generate'>Regenerate Token</a>"
112"</a>."
113 118
114msgid "Change your theme" 119msgid "Change your theme"
115msgstr "Change your theme" 120msgstr "Change Your Theme"
116 121
117msgid "Theme:" 122msgid "Theme:"
118msgstr "Theme:" 123msgstr "Theme:"
@@ -121,13 +126,13 @@ msgid "Update"
121msgstr "Update" 126msgstr "Update"
122 127
123msgid "Change your language" 128msgid "Change your language"
124msgstr "Change your language" 129msgstr "Change Your Language"
125 130
126msgid "Language:" 131msgid "Language:"
127msgstr "Language:" 132msgstr "Language:"
128 133
129msgid "Change your password" 134msgid "Change your password"
130msgstr "Change your password" 135msgstr "Change Your Password"
131 136
132msgid "New password:" 137msgid "New password:"
133msgstr "New password:" 138msgstr "New password:"
@@ -141,14 +146,26 @@ msgstr "Repeat your new password:"
141msgid "Import" 146msgid "Import"
142msgstr "Import" 147msgstr "Import"
143 148
149msgid "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format."
150msgstr "You can import your Pocket, Readability, Instapaper, wallabag or any fil in appropriate JSON or HTML format."
151
144msgid "" 152msgid ""
145"Please execute the import script locally as it can take a very long time." 153"Please execute the import script locally as it can take a very long time."
146msgstr "" 154msgstr ""
155
156msgid "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required."
157msgstr "Please select export file on your computer and press &ldquo;Import&rdquo; button below. wallabag will parse your file, insert all URLs and start fetching of articles if required."
147"Please execute the import script locally as it can take a very long time." 158"Please execute the import script locally as it can take a very long time."
148 159
160msgid "You can click here to fetch content for articles with no content."
161msgstr "Fetch content for articles with no content"
162
149msgid "More info in the official documentation:" 163msgid "More info in the official documentation:"
150msgstr "More info in the official documentation:" 164msgstr "More info in the official documentation:"
151 165
166msgid "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
167msgstr "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
168
152msgid "Import from Pocket" 169msgid "Import from Pocket"
153msgstr "Import from Pocket" 170msgstr "Import from Pocket"
154 171
@@ -177,17 +194,41 @@ msgstr "to download your database."
177msgid "to export your wallabag data." 194msgid "to export your wallabag data."
178msgstr "to export your wallabag data." 195msgstr "to export your wallabag data."
179 196
197msgid "Export JSON"
198msgstr "Export JSON"
199
180msgid "Cache" 200msgid "Cache"
181msgstr "Cache" 201msgstr "Cache"
182 202
183msgid "to delete cache." 203msgid "to delete cache."
184msgstr "to delete cache." 204msgstr "to delete cache."
185 205
206msgid "Delete Cache"
207msgstr "Delete Cache"
208
186msgid "You can enter multiple tags, separated by commas." 209msgid "You can enter multiple tags, separated by commas."
187msgstr "You can enter multiple tags, separated by commas." 210msgstr "You can enter multiple tags, separated by commas."
188 211
212msgid "Add tags:"
213msgstr "Add tags:"
214
215msgid "no tags"
216msgstr "no tags"
217
218msgid "The tag has been applied successfully"
219msgstr "The tag has been applied successfully"
220
221msgid "interview"
222msgstr "interview"
223
224msgid "editorial"
225msgstr "editorial"
226
227msgid "video"
228msgstr "video"
229
189msgid "return to article" 230msgid "return to article"
190msgstr "return to article" 231msgstr "Return to article"
191 232
192msgid "plop" 233msgid "plop"
193msgstr "plop" 234msgstr "plop"
@@ -200,13 +241,13 @@ msgstr ""
200"here</a>." 241"here</a>."
201 242
202msgid "favoris" 243msgid "favoris"
203msgstr "favoris" 244msgstr "Favorites"
204 245
205msgid "archive" 246msgid "archive"
206msgstr "archive" 247msgstr "Archive"
207 248
208msgid "unread" 249msgid "unread"
209msgstr "unread" 250msgstr "Unread"
210 251
211msgid "by date asc" 252msgid "by date asc"
212msgstr "by date asc" 253msgstr "by date asc"
@@ -236,28 +277,28 @@ msgid "Toggle mark as read"
236msgstr "Toggle mark as read" 277msgstr "Toggle mark as read"
237 278
238msgid "toggle favorite" 279msgid "toggle favorite"
239msgstr "toggle favorite" 280msgstr "Toggle favorite"
240 281
241msgid "delete" 282msgid "delete"
242msgstr "delete" 283msgstr "Delete"
243 284
244msgid "original" 285msgid "original"
245msgstr "original" 286msgstr "Original"
246 287
247msgid "estimated reading time:" 288msgid "estimated reading time:"
248msgstr "estimated reading time:" 289msgstr "Estimated reading time:"
249 290
250msgid "mark all the entries as read" 291msgid "mark all the entries as read"
251msgstr "mark all the entries as read" 292msgstr "Mark all the entries as read"
252 293
253msgid "results" 294msgid "results"
254msgstr "results" 295msgstr "Results"
255 296
256msgid "installation" 297msgid "installation"
257msgstr "installation" 298msgstr "Installation"
258 299
259msgid "install your wallabag" 300msgid "install your wallabag"
260msgstr "install your wallabag" 301msgstr "Install your wallabag"
261 302
262msgid "" 303msgid ""
263"wallabag is still not installed. Please fill the below form to install it. " 304"wallabag is still not installed. Please fill the below form to install it. "
@@ -278,13 +319,13 @@ msgid "Install"
278msgstr "Install" 319msgstr "Install"
279 320
280msgid "login to your wallabag" 321msgid "login to your wallabag"
281msgstr "login to your wallabag" 322msgstr "Login to your wallabag"
282 323
283msgid "Login to wallabag" 324msgid "Login to wallabag"
284msgstr "Login to wallabag" 325msgstr "Login to wallabag"
285 326
286msgid "you are in demo mode, some features may be disabled." 327msgid "you are in demo mode, some features may be disabled."
287msgstr "you are in demo mode, some features may be disabled." 328msgstr "You are in demo mode; some features may be disabled."
288 329
289msgid "Username" 330msgid "Username"
290msgstr "Username" 331msgstr "Username"
@@ -299,10 +340,10 @@ msgid "Sign in"
299msgstr "Sign in" 340msgstr "Sign in"
300 341
301msgid "favorites" 342msgid "favorites"
302msgstr "favorites" 343msgstr "Favorites"
303 344
304msgid "estimated reading time :" 345msgid "estimated reading time :"
305msgstr "estimated reading time :" 346msgstr "Estimated reading time:"
306 347
307msgid "Mark all the entries as read" 348msgid "Mark all the entries as read"
308msgstr "Mark all the entries as read" 349msgstr "Mark all the entries as read"
@@ -344,61 +385,64 @@ msgid "tags:"
344msgstr "tags:" 385msgstr "tags:"
345 386
346msgid "Edit tags" 387msgid "Edit tags"
347msgstr "Edit tags" 388msgstr "Edit Tags"
348 389
349msgid "save link!" 390msgid "save link!"
350msgstr "save link!" 391msgstr "Save Link"
351 392
352msgid "home" 393msgid "home"
353msgstr "home" 394msgstr "Home"
354 395
355msgid "tags" 396msgid "tags"
356msgstr "tags" 397msgstr "Tags"
357 398
358msgid "logout" 399msgid "logout"
359msgstr "logout" 400msgstr "Logout"
360 401
361msgid "powered by" 402msgid "powered by"
362msgstr "powered by" 403msgstr "Powered by"
363 404
364msgid "debug mode is on so cache is off." 405msgid "debug mode is on so cache is off."
365msgstr "debug mode is on so cache is off." 406msgstr "Debug mode is on, so cache is off."
366 407
367msgid "your wallabag version:" 408msgid "your wallabag version:"
368msgstr "your wallabag version:" 409msgstr "Your wallabag version:"
369 410
370msgid "storage:" 411msgid "storage:"
371msgstr "storage:" 412msgstr "Storage:"
372 413
373msgid "save a link" 414msgid "save a link"
374msgstr "save a link" 415msgstr "Save a Link"
375 416
376msgid "back to home" 417msgid "back to home"
377msgstr "back to home" 418msgstr "Back to Home"
378 419
379msgid "toggle mark as read" 420msgid "toggle mark as read"
380msgstr "toggle mark as read" 421msgstr "Toggle mark as read"
381 422
382msgid "tweet" 423msgid "tweet"
383msgstr "tweet" 424msgstr "Tweet"
384 425
385msgid "email" 426msgid "email"
386msgstr "email" 427msgstr "Email"
387 428
388msgid "this article appears wrong?" 429msgid "this article appears wrong?"
389msgstr "this article appears wrong?" 430msgstr "This article appears wrong?"
390 431
391msgid "No link available here!" 432msgid "No link available here!"
392msgstr "No link available here!" 433msgstr "No link available here"
393 434
394msgid "Poching a link" 435msgid "Poching a link"
395msgstr "Poching a link" 436msgstr "bagging a link"
396 437
397msgid "by filling this field" 438msgid "by filling this field"
398msgstr "by filling this field" 439msgstr "by filling this field"
399 440
400msgid "bookmarklet: drag & drop this link to your bookmarks bar" 441msgid "bookmarklet: drag & drop this link to your bookmarks bar"
401msgstr "bookmarklet: drag & drop this link to your bookmarks bar" 442msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
443
444msgid "Drag &amp; drop this link to your bookmarks bar:"
445msgstr "Drag &amp; drop this link to your bookmarks bar:"
402 446
403msgid "your version" 447msgid "your version"
404msgstr "your version" 448msgstr "your version"
@@ -407,32 +451,35 @@ msgid "latest stable version"
407msgstr "latest stable version" 451msgstr "latest stable version"
408 452
409msgid "a more recent stable version is available." 453msgid "a more recent stable version is available."
410msgstr "a more recent stable version is available." 454msgstr "A more recent stable version is available."
411 455
412msgid "you are up to date." 456msgid "you are up to date."
413msgstr "you are up to date." 457msgstr "You are up to date."
414 458
415msgid "latest dev version" 459msgid "latest dev version"
416msgstr "latest dev version" 460msgstr "latest dev version"
417 461
418msgid "a more recent development version is available." 462msgid "a more recent development version is available."
419msgstr "a more recent development version is available." 463msgstr "A more recent development version is available."
464
465msgid "You can clear cache to check the latest release."
466msgstr "You can <a href=\"#cache\">clear the cache</a> to check for the latest release."
420 467
421msgid "Please execute the import script locally, it can take a very long time." 468msgid "Please execute the import script locally, it can take a very long time."
422msgstr "" 469msgstr ""
423"Please execute the import script locally, it can take a very long time." 470"Please execute the import script locally, it can take a very long time."
424 471
425msgid "More infos in the official doc:" 472msgid "More infos in the official doc:"
426msgstr "More infos in the official doc:" 473msgstr "More information in the official doc:"
427 474
428msgid "import from Pocket" 475msgid "import from Pocket"
429msgstr "import from Pocket" 476msgstr "Import from Pocket"
430 477
431msgid "import from Readability" 478msgid "import from Readability"
432msgstr "import from Readability" 479msgstr "Import from Readability"
433 480
434msgid "import from Instapaper" 481msgid "import from Instapaper"
435msgstr "import from Instapaper" 482msgstr "Import from Instapaper"
436 483
437msgid "Tags" 484msgid "Tags"
438msgstr "Tags" 485msgstr "Tags"
@@ -441,74 +488,74 @@ msgid "Untitled"
441msgstr "Untitled" 488msgstr "Untitled"
442 489
443msgid "the link has been added successfully" 490msgid "the link has been added successfully"
444msgstr "the link has been added successfully" 491msgstr "The link has been added successfully."
445 492
446msgid "error during insertion : the link wasn't added" 493msgid "error during insertion : the link wasn't added"
447msgstr "error during insertion : the link wasn't added" 494msgstr "Error during insertion: the link wasn't added."
448 495
449msgid "the link has been deleted successfully" 496msgid "the link has been deleted successfully"
450msgstr "the link has been deleted successfully" 497msgstr "The link has been deleted successfully."
451 498
452msgid "the link wasn't deleted" 499msgid "the link wasn't deleted"
453msgstr "the link wasn't deleted" 500msgstr "The link wasn't deleted."
454 501
455msgid "Article not found!" 502msgid "Article not found!"
456msgstr "Article not found!" 503msgstr "Article not found."
457 504
458msgid "previous" 505msgid "previous"
459msgstr "previous" 506msgstr "Previous"
460 507
461msgid "next" 508msgid "next"
462msgstr "next" 509msgstr "Next"
463 510
464msgid "in demo mode, you can't update your password" 511msgid "in demo mode, you can't update your password"
465msgstr "in demo mode, you can't update your password" 512msgstr "In demo mode, you can't update your password."
466 513
467msgid "your password has been updated" 514msgid "your password has been updated"
468msgstr "your password has been updated" 515msgstr "Your password has been updated."
469 516
470msgid "" 517msgid ""
471"the two fields have to be filled & the password must be the same in the two " 518"the two fields have to be filled & the password must be the same in the two "
472"fields" 519"fields"
473msgstr "" 520msgstr ""
474"the two fields have to be filled & the password must be the same in the two " 521"The two fields must be filled, and the password must be the same in both "
475"fields" 522"fields"
476 523
477msgid "still using the \"" 524msgid "still using the \""
478msgstr "still using the \"" 525msgstr "Still using the \""
479 526
480msgid "that theme does not seem to be installed" 527msgid "that theme does not seem to be installed"
481msgstr "that theme does not seem to be installed" 528msgstr "That theme does not seem to be installed."
482 529
483msgid "you have changed your theme preferences" 530msgid "you have changed your theme preferences"
484msgstr "you have changed your theme preferences" 531msgstr "You have changed your theme preferences."
485 532
486msgid "that language does not seem to be installed" 533msgid "that language does not seem to be installed"
487msgstr "that language does not seem to be installed" 534msgstr "That language does not seem to be installed."
488 535
489msgid "you have changed your language preferences" 536msgid "you have changed your language preferences"
490msgstr "you have changed your language preferences" 537msgstr "You have changed your language preferences."
491 538
492msgid "login failed: you have to fill all fields" 539msgid "login failed: you have to fill all fields"
493msgstr "login failed: you have to fill all fields" 540msgstr "Login failed: you have to fill all fields."
494 541
495msgid "welcome to your wallabag" 542msgid "welcome to your wallabag"
496msgstr "welcome to your wallabag" 543msgstr "Welcome to your wallabag."
497 544
498msgid "login failed: bad login or password" 545msgid "login failed: bad login or password"
499msgstr "login failed: bad login or password" 546msgstr "Login failed: bad login or password."
500 547
501msgid "import from instapaper completed" 548msgid "import from instapaper completed"
502msgstr "import from instapaper completed" 549msgstr "Import from Instapaper completed."
503 550
504msgid "import from pocket completed" 551msgid "import from pocket completed"
505msgstr "import from pocket completed" 552msgstr "Import from Pocket completed."
506 553
507msgid "import from Readability completed. " 554msgid "import from Readability completed. "
508msgstr "import from Readability completed. " 555msgstr "Import from Readability completed."
509 556
510msgid "import from Poche completed. " 557msgid "import from Poche completed. "
511msgstr "import from Poche completed. " 558msgstr "Import from Poche completed. "
512 559
513msgid "Unknown import provider." 560msgid "Unknown import provider."
514msgstr "Unknown import provider." 561msgstr "Unknown import provider."
@@ -520,7 +567,7 @@ msgid "Could not find required \""
520msgstr "Could not find required \"" 567msgstr "Could not find required \""
521 568
522msgid "Uh, there is a problem while generating feeds." 569msgid "Uh, there is a problem while generating feeds."
523msgstr "Uh, there is a problem while generating feeds." 570msgstr "There is a problem generating feeds."
524 571
525msgid "Cache deleted." 572msgid "Cache deleted."
526msgstr "Cache deleted." 573msgstr "Cache deleted."
@@ -529,25 +576,25 @@ msgid "Oops, it seems you don't have PHP 5."
529msgstr "Oops, it seems you don't have PHP 5." 576msgstr "Oops, it seems you don't have PHP 5."
530 577
531msgid "Add user" 578msgid "Add user"
532msgstr "Add user" 579msgstr "Add User"
533 580
534msgid "Add a new user :" 581msgid "Add a new user :"
535msgstr "Add a new user :" 582msgstr "Add a new user:"
536 583
537msgid "Login for new user" 584msgid "Login for new user"
538msgstr "Login for new user" 585msgstr "Login for new user:"
539 586
540msgid "Password for new user" 587msgid "Password for new user"
541msgstr "Password for new user" 588msgstr "Password for new user:"
542 589
543msgid "Email for new user (not required)" 590msgid "Email for new user (not required)"
544msgstr "Email for new user (not required)" 591msgstr "Email for new user (not required):"
545 592
546msgid "Send" 593msgid "Send"
547msgstr "Send" 594msgstr "Send"
548 595
549msgid "Delete account" 596msgid "Delete account"
550msgstr "Delete account" 597msgstr "Delete Account"
551 598
552msgid "You can delete your account by entering your password and validating." 599msgid "You can delete your account by entering your password and validating."
553msgstr "You can delete your account by entering your password and validating." 600msgstr "You can delete your account by entering your password and validating."
@@ -556,7 +603,7 @@ msgid "Be careful, data will be erased forever (that is a very long time)."
556msgstr "Be careful, data will be erased forever (that is a very long time)." 603msgstr "Be careful, data will be erased forever (that is a very long time)."
557 604
558msgid "Type here your password" 605msgid "Type here your password"
559msgstr "Type here your password" 606msgstr "Enter your password"
560 607
561msgid "You are the only user, you cannot delete your own account." 608msgid "You are the only user, you cannot delete your own account."
562msgstr "You are the only user, you cannot delete your own account." 609msgstr "You are the only user, you cannot delete your own account."
@@ -571,6 +618,36 @@ msgstr ""
571msgid "Enter your search here" 618msgid "Enter your search here"
572msgstr "Enter your search here" 619msgstr "Enter your search here"
573 620
621msgid "Tag these results as"
622msgstr "Tag these results as"
623
624# ebook
625msgid "Fancy an E-Book ?"
626msgstr "Fancy an E-Book?"
627
628msgid ""
629"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
630"link</a> to get all your articles in one ebook (ePub 3 format)."
631msgstr ""
632"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate EPUB\">this "
633"link</a> to get all your articles in one ebook (EPUB 3 format)."
634
635msgid ""
636"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
637"articles, depending on your server configuration."
638msgstr ""
639"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
640"articles, depending on your server configuration."
641
642msgid "Download the articles from this tag in an epub"
643msgstr "Download the articles from this tag in an EPUB"
644
645msgid "Download the articles from this search in an epub"
646msgstr "Download the articles from this search in an EPUB"
647
648msgid "Download the articles from this category in an epub"
649msgstr "Download the articles from this category in an EPUB"
650
574#~ msgid "poche it!" 651#~ msgid "poche it!"
575#~ msgstr "poche it!" 652#~ msgstr "poche it!"
576 653
diff --git a/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo
new file mode 100644
index 00000000..a09b4f37
--- /dev/null
+++ b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.mo
Binary files differ
diff --git a/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po
new file mode 100644
index 00000000..25c3aa26
--- /dev/null
+++ b/locale/en_US.utf8/LC_MESSAGES/en_US.utf8.po
@@ -0,0 +1,666 @@
1msgid ""
2msgstr ""
3"Project-Id-Version: wallabag\n"
4"Report-Msgid-Bugs-To: \n"
5"POT-Creation-Date: 2014-02-25 15:17+0300\n"
6"PO-Revision-Date: \n"
7"Last-Translator: tcit <tcit@openmailbox.org>\n"
8"Language-Team: \n"
9"Language: en_US\n"
10"MIME-Version: 1.0\n"
11"Content-Type: text/plain; charset=UTF-8\n"
12"Content-Transfer-Encoding: 8bit\n"
13"X-Generator: Poedit 1.5.4\n"
14"X-Poedit-Basepath: .\n"
15
16msgid "wallabag, a read it later open source system"
17msgstr "wallabag, a read it later open source system"
18
19msgid "login failed: user doesn't exist"
20msgstr "Login failed: user doesn't exist"
21
22msgid "return home"
23msgstr "Return Home"
24
25msgid "config"
26msgstr "Config"
27
28msgid "Saving articles"
29msgstr "Saving articles"
30
31msgid "There are several ways to save an article:"
32msgstr "There are several ways to save an article:"
33
34msgid "read the documentation"
35msgstr "Read the documentation"
36
37msgid "download the extension"
38msgstr "Download the extension"
39
40msgid "Firefox Add-On"
41msgstr "Firefox Add-On"
42
43msgid "Chrome Extension"
44msgstr "Chrome Extension"
45
46msgid "via F-Droid"
47msgstr "via F-Droid"
48
49msgid " or "
50msgstr " or "
51
52msgid "via Google Play"
53msgstr "via Google Play"
54
55msgid "download the application"
56msgstr "Download the application"
57
58msgid "By filling this field"
59msgstr "By filling this field"
60
61msgid "bag it!"
62msgstr "bag it!"
63
64msgid "Bookmarklet: drag & drop this link to your bookmarks bar"
65msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
66
67msgid "Upgrading wallabag"
68msgstr "Upgrading wallabag"
69
70msgid "Installed version"
71msgstr "Installed version"
72
73msgid "Latest stable version"
74msgstr "Latest stable version"
75
76msgid "A more recent stable version is available."
77msgstr "A more recent stable version is available."
78
79msgid "You are up to date."
80msgstr "You are up to date."
81
82msgid "Latest dev version"
83msgstr "Latest dev version"
84
85msgid "A more recent development version is available."
86msgstr "A more recent development version is available."
87
88msgid "You can clear cache to check the latest release."
89msgstr "You can <a href=\"#cache\">clear the cache</a> to check for the latest release."
90
91msgid "Feeds"
92msgstr "Feeds"
93
94msgid ""
95"Your feed token is currently empty and must first be generated to enable "
96"feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>."
97msgstr ""
98"Your feed token is currently empty and must first be generated to enable "
99"feeds. Click <a href='?feed&amp;action=generate'>here to generate it</a>."
100
101msgid "Unread feed"
102msgstr "Unread feed"
103
104msgid "Favorites feed"
105msgstr "Favorites feed"
106
107msgid "Archive feed"
108msgstr "Archive feed"
109
110msgid "Your token:"
111msgstr "Your token:"
112
113msgid "Your user id:"
114msgstr "Your user ID:"
115
116msgid ""
117"You can regenerate your token: <a href='?feed&amp;action=generate'>generate!"
118"</a>."
119msgstr ""
120"<a href='?feed&amp;action=generate'>Regenerate Token</a>"
121
122msgid "Change your theme"
123msgstr "Change Your Theme"
124
125msgid "Theme:"
126msgstr "Theme:"
127
128msgid "Update"
129msgstr "Update"
130
131msgid "Change your language"
132msgstr "Change Your Language"
133
134msgid "Language:"
135msgstr "Language:"
136
137msgid "Change your password"
138msgstr "Change Your Password"
139
140msgid "New password:"
141msgstr "New password:"
142
143msgid "Password"
144msgstr "Password"
145
146msgid "Repeat your new password:"
147msgstr "Repeat your new password:"
148
149msgid "Import"
150msgstr "Import"
151
152msgid "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format."
153msgstr "You can import your Pocket, Readability, Instapaper, wallabag or any file in appropriate JSON or HTML format."
154
155msgid ""
156"Please execute the import script locally as it can take a very long time."
157msgstr ""
158"Please execute the import script locally as it can take a very long time."
159
160msgid "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required."
161msgstr "Please select export file on your computer and press &ldquo;Import&rdquo; button below. wallabag will parse your file, insert all URLs and start fetching of articles if required."
162
163msgid "You can click here to fetch content for articles with no content."
164msgstr "Fetch content for articles with no content"
165
166msgid "More info in the official documentation:"
167msgstr "More info in the official documentation:"
168
169msgid "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
170msgstr "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)"
171
172msgid "Import from Pocket"
173msgstr "Import from Pocket"
174
175#, php-format
176msgid "(you must have a %s file on your server)"
177msgstr "(you must have a %s file on your server)"
178
179msgid "Import from Readability"
180msgstr "Import from Readability"
181
182msgid "Import from Instapaper"
183msgstr "Import from Instapaper"
184
185msgid "Import from wallabag"
186msgstr "Import from wallabag"
187
188msgid "Export your wallabag data"
189msgstr "Export your wallabag data"
190
191msgid "Click here"
192msgstr "Click here"
193
194msgid "to download your database."
195msgstr "to download your database."
196
197msgid "to export your wallabag data."
198msgstr "to export your wallabag data."
199
200msgid "Export JSON"
201msgstr "Export JSON"
202
203msgid "Cache"
204msgstr "Cache"
205
206msgid "to delete cache."
207msgstr "to delete cache."
208
209msgid "Delete Cache"
210msgstr "Delete Cache"
211
212msgid "You can enter multiple tags, separated by commas."
213msgstr "You can enter multiple tags, separated by commas."
214
215msgid "Add tags:"
216msgstr "Add tags:"
217
218msgid "no tags"
219msgstr "no tags"
220
221msgid "The tag has been applied successfully"
222msgstr "The tag has been applied successfully"
223
224msgid "interview"
225msgstr "interview"
226
227msgid "editorial"
228msgstr "editorial"
229
230msgid "video"
231msgstr "video"
232
233msgid "return to article"
234msgstr "Return to article"
235
236msgid "plop"
237msgstr "plop"
238
239msgid ""
240"You can <a href='wallabag_compatibility_test.php'>check your configuration "
241"here</a>."
242msgstr ""
243"You can <a href='wallabag_compatibility_test.php'>check your configuration "
244"here</a>."
245
246msgid "favoris"
247msgstr "Favorites"
248
249msgid "archive"
250msgstr "Archive"
251
252msgid "unread"
253msgstr "Unread"
254
255msgid "by date asc"
256msgstr "by date asc"
257
258msgid "by date"
259msgstr "by date"
260
261msgid "by date desc"
262msgstr "by date desc"
263
264msgid "by title asc"
265msgstr "by title asc"
266
267msgid "by title"
268msgstr "by title"
269
270msgid "by title desc"
271msgstr "by title desc"
272
273msgid "Tag"
274msgstr "Tag"
275
276msgid "No articles found."
277msgstr "No articles found."
278
279msgid "Toggle mark as read"
280msgstr "Toggle mark as read"
281
282msgid "toggle favorite"
283msgstr "Toggle favorite"
284
285msgid "delete"
286msgstr "Delete"
287
288msgid "original"
289msgstr "Original"
290
291msgid "estimated reading time:"
292msgstr "Estimated reading time:"
293
294msgid "mark all the entries as read"
295msgstr "Mark all the entries as read"
296
297msgid "results"
298msgstr "Results"
299
300msgid "installation"
301msgstr "Installation"
302
303msgid "install your wallabag"
304msgstr "Install your wallabag"
305
306msgid ""
307"wallabag is still not installed. Please fill the below form to install it. "
308"Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation "
309"on wallabag website</a>."
310msgstr ""
311"wallabag is still not installed. Please fill the below form to install it. "
312"Don't hesitate to <a href='http://doc.wallabag.org/'>read the documentation "
313"on wallabag website</a>."
314
315msgid "Login"
316msgstr "Login"
317
318msgid "Repeat your password"
319msgstr "Repeat your password"
320
321msgid "Install"
322msgstr "Install"
323
324msgid "login to your wallabag"
325msgstr "Login to your wallabag"
326
327msgid "Login to wallabag"
328msgstr "Login to wallabag"
329
330msgid "you are in demo mode, some features may be disabled."
331msgstr "You are in demo mode; some features may be disabled."
332
333msgid "Username"
334msgstr "Username"
335
336msgid "Stay signed in"
337msgstr "Stay signed in"
338
339msgid "(Do not check on public computers)"
340msgstr "(Do not check on public computers)"
341
342msgid "Sign in"
343msgstr "Sign in"
344
345msgid "favorites"
346msgstr "Favorites"
347
348msgid "estimated reading time :"
349msgstr "Estimated reading time:"
350
351msgid "Mark all the entries as read"
352msgstr "Mark all the entries as read"
353
354msgid "Return home"
355msgstr "Return home"
356
357msgid "Back to top"
358msgstr "Back to top"
359
360msgid "Mark as read"
361msgstr "Mark as read"
362
363msgid "Favorite"
364msgstr "Favorite"
365
366msgid "Toggle favorite"
367msgstr "Toggle favorite"
368
369msgid "Delete"
370msgstr "Delete"
371
372msgid "Tweet"
373msgstr "Tweet"
374
375msgid "Email"
376msgstr "Email"
377
378msgid "shaarli"
379msgstr "shaarli"
380
381msgid "flattr"
382msgstr "flattr"
383
384msgid "Does this article appear wrong?"
385msgstr "Does this article appear wrong?"
386
387msgid "tags:"
388msgstr "tags:"
389
390msgid "Edit tags"
391msgstr "Edit Tags"
392
393msgid "save link!"
394msgstr "Save Link"
395
396msgid "home"
397msgstr "Home"
398
399msgid "tags"
400msgstr "Tags"
401
402msgid "logout"
403msgstr "Logout"
404
405msgid "powered by"
406msgstr "Powered by"
407
408msgid "debug mode is on so cache is off."
409msgstr "Debug mode is on, so cache is off."
410
411msgid "your wallabag version:"
412msgstr "Your wallabag version:"
413
414msgid "storage:"
415msgstr "Storage:"
416
417msgid "save a link"
418msgstr "Save a Link"
419
420msgid "back to home"
421msgstr "Back to Home"
422
423msgid "toggle mark as read"
424msgstr "Toggle mark as read"
425
426msgid "tweet"
427msgstr "Tweet"
428
429msgid "email"
430msgstr "Email"
431
432msgid "this article appears wrong?"
433msgstr "This article appears wrong?"
434
435msgid "No link available here!"
436msgstr "No link available here"
437
438msgid "Poching a link"
439msgstr "bagging a link"
440
441msgid "by filling this field"
442msgstr "by filling this field"
443
444msgid "bookmarklet: drag & drop this link to your bookmarks bar"
445msgstr "Bookmarklet: Drag & drop this link to your bookmarks bar"
446
447msgid "Drag &amp; drop this link to your bookmarks bar:"
448msgstr "Drag &amp; drop this link to your bookmarks bar:"
449
450msgid "your version"
451msgstr "your version"
452
453msgid "latest stable version"
454msgstr "latest stable version"
455
456msgid "a more recent stable version is available."
457msgstr "A more recent stable version is available."
458
459msgid "you are up to date."
460msgstr "You are up to date."
461
462msgid "latest dev version"
463msgstr "latest dev version"
464
465msgid "a more recent development version is available."
466msgstr "A more recent development version is available."
467
468msgid "Please execute the import script locally, it can take a very long time."
469msgstr ""
470"Please execute the import script locally, it can take a very long time."
471
472msgid "More infos in the official doc:"
473msgstr "More information in the official doc:"
474
475msgid "import from Pocket"
476msgstr "Import from Pocket"
477
478msgid "import from Readability"
479msgstr "Import from Readability"
480
481msgid "import from Instapaper"
482msgstr "Import from Instapaper"
483
484msgid "Tags"
485msgstr "Tags"
486
487msgid "Untitled"
488msgstr "Untitled"
489
490msgid "the link has been added successfully"
491msgstr "The link has been added successfully."
492
493msgid "error during insertion : the link wasn't added"
494msgstr "Error during insertion: the link wasn't added."
495
496msgid "the link has been deleted successfully"
497msgstr "The link has been deleted successfully."
498
499msgid "the link wasn't deleted"
500msgstr "The link wasn't deleted."
501
502msgid "Article not found!"
503msgstr "Article not found."
504
505msgid "previous"
506msgstr "Previous"
507
508msgid "next"
509msgstr "Next"
510
511msgid "in demo mode, you can't update your password"
512msgstr "In demo mode, you can't update your password."
513
514msgid "your password has been updated"
515msgstr "Your password has been updated."
516
517msgid ""
518"the two fields have to be filled & the password must be the same in the two "
519"fields"
520msgstr ""
521"The two fields must be filled, and the password must be the same in both "
522"fields"
523
524msgid "still using the \""
525msgstr "Still using the \""
526
527msgid "that theme does not seem to be installed"
528msgstr "That theme does not seem to be installed."
529
530msgid "you have changed your theme preferences"
531msgstr "You have changed your theme preferences."
532
533msgid "that language does not seem to be installed"
534msgstr "That language does not seem to be installed."
535
536msgid "you have changed your language preferences"
537msgstr "You have changed your language preferences."
538
539msgid "login failed: you have to fill all fields"
540msgstr "Login failed: you have to fill all fields."
541
542msgid "welcome to your wallabag"
543msgstr "Welcome to your wallabag."
544
545msgid "login failed: bad login or password"
546msgstr "Login failed: bad login or password."
547
548msgid "import from instapaper completed"
549msgstr "Import from Instapaper completed."
550
551msgid "import from pocket completed"
552msgstr "Import from Pocket completed."
553
554msgid "import from Readability completed. "
555msgstr "Import from Readability completed."
556
557msgid "import from Poche completed. "
558msgstr "Import from Poche completed. "
559
560msgid "Unknown import provider."
561msgstr "Unknown import provider."
562
563msgid "Incomplete inc/poche/define.inc.php file, please define \""
564msgstr "Incomplete inc/poche/define.inc.php file, please define \""
565
566msgid "Could not find required \""
567msgstr "Could not find required \""
568
569msgid "Uh, there is a problem while generating feeds."
570msgstr "There is a problem generating feeds."
571
572msgid "Cache deleted."
573msgstr "Cache deleted."
574
575msgid "Oops, it seems you don't have PHP 5."
576msgstr "Oops, it seems you don't have PHP 5."
577
578msgid "Add user"
579msgstr "Add User"
580
581msgid "Add a new user :"
582msgstr "Add a new user:"
583
584msgid "Login for new user"
585msgstr "Login for new user:"
586
587msgid "Password for new user"
588msgstr "Password for new user:"
589
590msgid "Email for new user (not required)"
591msgstr "Email for new user (not required):"
592
593msgid "Send"
594msgstr "Send"
595
596msgid "Delete account"
597msgstr "Delete Account"
598
599msgid "You can delete your account by entering your password and validating."
600msgstr "You can delete your account by entering your password and validating."
601
602msgid "Be careful, data will be erased forever (that is a very long time)."
603msgstr "Be careful, data will be erased forever (that is a very long time)."
604
605msgid "Type here your password"
606msgstr "Enter your password"
607
608msgid "You are the only user, you cannot delete your own account."
609msgstr "You cannot delete your account because you are the only user."
610
611msgid ""
612"To completely remove wallabag, delete the wallabag folder on your web server "
613"(and eventual databases)."
614msgstr ""
615"To completely remove wallabag, delete the wallabag folder and database(s) from your web server."
616
617msgid "Enter your search here"
618msgstr "Enter your search here"
619
620msgid "Tag these results as"
621msgstr "Tag these results as"
622
623# ebook
624msgid "Fancy an E-Book ?"
625msgstr "Fancy an E-Book?"
626
627msgid ""
628"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
629"link</a> to get all your articles in one ebook (ePub 3 format)."
630msgstr ""
631"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate EPUB\">this "
632"link</a> to get all your articles in one ebook (EPUB 3 format)."
633
634msgid ""
635"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
636"articles, depending on your server configuration."
637msgstr ""
638"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
639"articles, depending on your server configuration."
640
641msgid "Download the articles from this tag in an epub"
642msgstr "Download the articles from this tag in an EPUB"
643
644msgid "Download the articles from this search in an epub"
645msgstr "Download the articles from this search in an EPUB"
646
647msgid "Download the articles from this category in an epub"
648msgstr "Download the articles from this category in an EPUB"
649
650#~ msgid "poche it!"
651#~ msgstr "poche it!"
652
653#~ msgid "Updating poche"
654#~ msgstr "Updating poche"
655
656#~ msgid "create an issue"
657#~ msgstr "create an issue"
658
659#~ msgid "or"
660#~ msgstr "or"
661
662#~ msgid "contact us by mail"
663#~ msgstr "contact us by mail"
664
665#~ msgid "your poche version:"
666#~ msgstr "your poche version:"
diff --git a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo
index f4a28e72..da087516 100644
--- a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo
+++ b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.mo
Binary files differ
diff --git a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
index 0912b872..3d031967 100644
--- a/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
+++ b/locale/fr_FR.utf8/LC_MESSAGES/fr_FR.utf8.po
@@ -4,7 +4,7 @@ msgstr ""
4"Report-Msgid-Bugs-To: \n" 4"Report-Msgid-Bugs-To: \n"
5"POT-Creation-Date: 2014-05-10 20:09+0100\n" 5"POT-Creation-Date: 2014-05-10 20:09+0100\n"
6"PO-Revision-Date: \n" 6"PO-Revision-Date: \n"
7"Last-Translator: tcit <tcit@tcit.fr>\n" 7"Last-Translator: tcit <tcit@openmailbox.org>\n"
8"Language-Team: \n" 8"Language-Team: \n"
9"Language: fr_FR\n" 9"Language: fr_FR\n"
10"MIME-Version: 1.0\n" 10"MIME-Version: 1.0\n"
@@ -12,7 +12,7 @@ msgstr ""
12"Content-Transfer-Encoding: 8bit\n" 12"Content-Transfer-Encoding: 8bit\n"
13"X-Poedit-KeywordsList: _;gettext;gettext_noop\n" 13"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
14"X-Poedit-SourceCharset: UTF-8\n" 14"X-Poedit-SourceCharset: UTF-8\n"
15"X-Generator: Poedit 1.6.9\n" 15"X-Generator: Poedit 1.5.4\n"
16"Plural-Forms: nplurals=2; plural=(n != 1);\n" 16"Plural-Forms: nplurals=2; plural=(n != 1);\n"
17 17
18msgid "wallabag, a read it later open source system" 18msgid "wallabag, a read it later open source system"
@@ -372,6 +372,24 @@ msgstr "Cet article s'affiche mal ?"
372msgid "tags:" 372msgid "tags:"
373msgstr "tags :" 373msgstr "tags :"
374 374
375msgid "Add tags:"
376msgstr "Ajouter des tags :"
377
378msgid "no tags"
379msgstr "pas de tags"
380
381msgid "The tag has been applied successfully"
382msgstr "Le tag a été appliqué avec succès"
383
384msgid "interview"
385msgstr "interview"
386
387msgid "editorial"
388msgstr "éditorial"
389
390msgid "video"
391msgstr "vidéo"
392
375msgid "Edit tags" 393msgid "Edit tags"
376msgstr "Modifier les tags" 394msgstr "Modifier les tags"
377 395
@@ -655,3 +673,33 @@ msgstr "Cache effacé."
655 673
656msgid "Oops, it seems you don't have PHP 5." 674msgid "Oops, it seems you don't have PHP 5."
657msgstr "Oups, vous ne semblez pas avoir PHP 5." 675msgstr "Oups, vous ne semblez pas avoir PHP 5."
676
677msgid "Tag these results as"
678msgstr "Appliquer à ces résultats le tag"
679
680# ebook
681msgid "Fancy an E-Book ?"
682msgstr "Envie d'un E-Book ?"
683
684msgid ""
685"Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this "
686"link</a> to get all your articles in one ebook (ePub 3 format)."
687msgstr ""
688"Cliquez sur <a href=\"./?epub&amp;method=all\" title=\"Générer ePub\">ce "
689"lien</a> pour obtenir tous vos articles (format ePub 3)."
690
691msgid ""
692"This can <b>take a while</b> and can <b>even fail</b> if you have too many "
693"articles, depending on your server configuration."
694msgstr ""
695"Ceci peut <b>prendre un moment</b> et même <b>échouer</b> si vous avez trop "
696"d'articles, selon la configuration de votre serveur."
697
698msgid "Download the articles from this tag in an epub"
699msgstr "Télécharger les articles de ce tag dans un epub"
700
701msgid "Download the articles from this search in an epub"
702msgstr "Télécharger les articles de cette recherche dans un epub"
703
704msgid "Download the articles from this category in an epub"
705msgstr "Télécharger les articles de cette catégorie dans un epub"
diff --git a/themes/baggy/_menu.twig b/themes/baggy/_menu.twig
index 59b6a46b..8b80f65d 100644
--- a/themes/baggy/_menu.twig
+++ b/themes/baggy/_menu.twig
@@ -11,6 +11,7 @@
11 {% include '_search-form.twig' %} 11 {% include '_search-form.twig' %}
12 </li> 12 </li>
13 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> 13 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
14 <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
14 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> 15 <li><a class="icon icon-power" href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
15 </ul> 16 </ul>
16 17
diff --git a/themes/baggy/_pocheit-form.twig b/themes/baggy/_pocheit-form.twig
index 57a928c0..bf2ae903 100755
--- a/themes/baggy/_pocheit-form.twig
+++ b/themes/baggy/_pocheit-form.twig
@@ -1,7 +1,7 @@
1<div id="bagit-form" class="messages info"> 1<div id="bagit-form" class="messages info popup-form">
2 <form method="get" action="index.php" target="_blank" id="bagit-form-form"> 2 <form method="get" action="index.php" target="_blank" id="bagit-form-form">
3 <h2><a href="javascript: void(null);" id="bagit-form-close">X</a> 3 <h2>{% trans "Save a link" %}</h2>
4 {% trans "Save a link" %}</h2> 4 <a href="javascript: void(null);" id="bagit-form-close" class="close-button--popup close-button">&times;</a>
5 <input type="hidden" name="autoclose" value="1" /> 5 <input type="hidden" name="autoclose" value="1" />
6 <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" /> 6 <input required placeholder="example.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
7 <span id="add-link-result"></span> 7 <span id="add-link-result"></span>
diff --git a/themes/baggy/_search-form.twig b/themes/baggy/_search-form.twig
index 7b2c7082..73f7951f 100644
--- a/themes/baggy/_search-form.twig
+++ b/themes/baggy/_search-form.twig
@@ -1,7 +1,9 @@
1<div id="search-form" class="messages info"> 1<div id="search-form" class="messages info popup-form">
2<form method="get" action="index.php"> 2<form method="get" action="index.php">
3 <h2>{%trans "Search" %}</h2>
4 <a href="javascript: void(null);" id="search-form-close" class="close-button--popup close-button">&times;</a>
3 <input type="hidden" name="view" value="search"></input> 5 <input type="hidden" name="view" value="search"></input>
4 <label><a href="javascript: void(null);" id="search-form-close">X</a>{% trans "Search" %}</label> : <input required placeholder="{% trans "Enter your search here" %}" type="text" name="search" id="searchfield" /> 6 <input required placeholder="{% trans "Enter your search here" %}" type="text" name="search" id="searchfield"><br>
5 <input id="submit-search" type="submit" value="{% trans "Search" %} !"></input> 7 <input id="submit-search" type="submit" value="{% trans "Search" %}"></input>
6</form> 8</form>
7</div> \ No newline at end of file 9</div>
diff --git a/themes/baggy/about.twig b/themes/baggy/about.twig
new file mode 100755
index 00000000..7e19a900
--- /dev/null
+++ b/themes/baggy/about.twig
@@ -0,0 +1,74 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "About" %}{% endblock %}
4{% block menu %}
5{% include '_menu.twig' %}
6{% endblock %}
7{% block content %}
8 <h2>{% trans "About wallabag" %}</h2>
9
10 <dl>
11 <dt>{% trans "Project website" %}</dt>
12 <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
13
14 <dt>{% trans "Main developer" %}</dt>
15 <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
16
17 <dt>{% trans "Contributors:" %}</dt>
18 <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
19
20 <dt>{% trans "Bug reports" %}</dt>
21 <dd><a href="http://support.wallabag.org">{% trans "On our support website" %}</a> {% trans "or" %} <a href="https://github.com/wallabag/wallabag/issues">{% trans "on Github" %}</a></dd>
22
23 <dt>{% trans "License" %}</dt>
24 <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
25
26 <dt>{% trans "Version" %}</dt>
27 <dd>{{ constant('POCHE') }}</dd>
28 </dl>
29
30 <p>{% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}</p>
31
32 <h2>{% trans "Helping wallabag" %}</h2>
33
34 <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
35
36 <dl>
37 <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
38
39 <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
40 </dl>
41
42 <h2>{% trans "Credits" %}</h2>
43 <dl>
44 <dt>PHP Readability</dt>
45 <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
46
47 <dt>Full Text RSS</dt>
48 <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
49
50 <dt>logo by Maylis Agniel</dt>
51 <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
52
53 <dt>icons</dt>
54 <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
55
56 <dt>PHP Simple HTML DOM Parser</dt>
57 <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
58
59 <dt>Session</dt>
60 <dd><a href="https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php">https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php</a></dd>
61
62 <dt>Twig</dt>
63 <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
64
65 <dt>Flash messages</dt>
66 <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
67
68 <dt>Pagination</dt>
69 <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
70
71 <dt>PHPePub</dt>
72 <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
73 </dl>
74{% endblock %}
diff --git a/themes/baggy/config.twig b/themes/baggy/config.twig
index 3523cd08..2b967cd4 100755
--- a/themes/baggy/config.twig
+++ b/themes/baggy/config.twig
@@ -6,30 +6,29 @@
6{% endblock %} 6{% endblock %}
7{% block content %} 7{% block content %}
8 <h2>{% trans "Saving articles" %}</h2> 8 <h2>{% trans "Saving articles" %}</h2>
9 <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> 9 <p>{% trans "There are several ways to save an article:" %} {% trans "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)" %}</p>
10 <p>
11 <form method="get" action="index.php">
12 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
13 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
14 <input type="submit" value="{% trans "bag it!" %}" />
15 </form>
16 </p>
17 <h3>Browser Plugins</h3>
10 <ul> 18 <ul>
11 <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> 19 <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
12 <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> 20 <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
13 <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li>
14 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
15 <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li>
16 <li>
17 <form method="get" action="index.php">
18 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
19 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
20 <input type="submit" value="{% trans "bag it!" %}" />
21 </form>
22 </li>
23 <li>{% trans "Bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a></li>
24 </ul> 21 </ul>
25 22 <h3>Mobile Apps</h3>
26 <h2>{% trans "Upgrading wallabag" %}</h2>
27 <ul> 23 <ul>
28 <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> 24 <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via Google Play" %}</a></li>
29 <li>{% trans "Latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_prod }})</li> 25 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
30 {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li> 26 <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" target="_blank">{% trans "download the application" %}</a></li>
31 </ul> 27 </ul>
32 <p>{% trans "You can clear cache to check the latest release." %}</p> 28 <h3>{% trans "Bookmarklet" %}</h3>
29 <p>
30 {% trans "Drag &amp; drop this link to your bookmarks bar:" %} <a id="bookmarklet" ondragend="this.click();" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a>
31 </p>
33 32
34 <h2>{% trans "Feeds" %}</h2> 33 <h2>{% trans "Feeds" %}</h2>
35 {% if token == '' %} 34 {% if token == '' %}
@@ -40,9 +39,11 @@
40 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li> 39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li>
41 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li> 40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li>
42 </ul> 41 </ul>
43 <p>{% trans "Your token:" %} <strong>{{token}}</strong></p> 42 <p class="more-info">
44 <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> 43 {% trans "Your token:" %} <strong>{{token}}</strong><br>
45 <p>{% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}</p> 44 {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
45 {% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}
46 </p>
46 {% endif %} 47 {% endif %}
47 48
48 <h2>{% trans "Change your theme" %}</h2> 49 <h2>{% trans "Change your theme" %}</h2>
@@ -83,6 +84,35 @@
83 <input type="hidden" name="token" value="{{ token }}"> 84 <input type="hidden" name="token" value="{{ token }}">
84 </form> 85 </form>
85 86
87 <h2><a name="import"></a>{% trans "Import" %}</h2>
88 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
89 <p>{% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}</p>
90 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
91 <fieldset class="w500p">
92 <div class="row">
93 <label class="col w150p" for="file">{% trans "File:" %}</label>
94 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
95 </div>
96 <div class="row mts txtcenter">
97 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
98 </div>
99 </fieldset>
100 </form>
101 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
102 <p class="more-info">{% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
103
104 <h2>{% trans "Export your wallabag data" %}</h2>
105 <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
106 <span class="more-info">Data will be exported in a single JSON file.</span></p>
107
108 <h2>{% trans "Fancy an E-Book ?" %}</h2>
109 <p><a href="./?epub&amp;method=all" title="Generate ePub">Download E-Book</a><br>
110 <span class="more-info">{% trans "Articles will be exported as a single E-book file (EPUB 3 format)." %} {% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</span></p>
111
112 <h2><a name="cache"></a>{% trans "Cache" %}</h2>
113 <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
114 <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
115
86 {% if http_auth == 0 %} 116 {% if http_auth == 0 %}
87 <h2>{% trans "Change your password" %}</h2> 117 <h2>{% trans "Change your password" %}</h2>
88 <form method="post" action="?config" name="loginform"> 118 <form method="post" action="?config" name="loginform">
@@ -104,34 +134,7 @@
104 </form> 134 </form>
105 {% endif %} 135 {% endif %}
106 136
107 <h2>{% trans "Import" %}</h2>
108 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
109 <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
110 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
111 <fieldset class="w500p">
112 <div class="row">
113 <label class="col w150p" for="file">{% trans "File:" %}</label>
114 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
115 </div>
116 <div class="row mts txtcenter">
117 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
118 </div>
119 </fieldset>
120 </form>
121 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
122
123 <h2>{% trans "Export your wallabag data" %}</h2>
124 <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
125
126 <h2>{% trans "Fancy an E-Book ?" %}</h2>
127 <p>{% trans "Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this link</a> to get all your articles in one ebook (ePub 3 format)." %}
128 <br>{% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</p>
129
130 <h2>{% trans "Cache" %}</h2>
131 <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p>
132
133 <h2>{% trans 'Add user' %}</h2> 137 <h2>{% trans 'Add user' %}</h2>
134 <p>{% trans 'Add a new user :' %}</p>
135 <form method="post" action="?newuser"> 138 <form method="post" action="?newuser">
136 <fieldset class="w500p"> 139 <fieldset class="w500p">
137 <div class="row"> 140 <div class="row">
@@ -147,7 +150,7 @@
147 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}"> 150 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
148 </div> 151 </div>
149 <div class="row mts txtcenter"> 152 <div class="row mts txtcenter">
150 <button type="submit">{% trans "Send" %}</button> 153 <button type="submit">{% trans "Add user" %}</button>
151 </div> 154 </div>
152 </fieldset> 155 </fieldset>
153 </form> 156 </form>
@@ -161,9 +164,18 @@
161 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}"> 164 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
162 </div> 165 </div>
163 <div class="row mts txtcenter"> 166 <div class="row mts txtcenter">
164 <button type="submit">{% trans "Send" %}</button> 167 <button type="submit">{% trans "Delete account" %}</button>
165 </div> 168 </div>
166 </form> 169 </form>
167 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br /> 170 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
168 {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %} 171 <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
172
173 <h2>{% trans "Upgrading wallabag" %}</h2>
174 <ul>
175 <li>{% trans "Installed version" %}: <strong>{{ constant('POCHE') }}</strong></li>
176 <li>{% trans "Latest stable version" %}: {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_prod }})</li>
177 {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %}: {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li>
178 </ul>
179 <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
180
169{% endblock %} 181{% endblock %}
diff --git a/themes/baggy/css/main.css b/themes/baggy/css/main.css
index b775a291..028c8b4e 100755
--- a/themes/baggy/css/main.css
+++ b/themes/baggy/css/main.css
@@ -70,7 +70,7 @@ h2, h3, h4 {
70 text-transform: uppercase; 70 text-transform: uppercase;
71} 71}
72 72
73p, li { 73p, li, label {
74 color: #666; 74 color: #666;
75} 75}
76 76
@@ -104,10 +104,6 @@ form input[type="text"], select, form input[type="password"], form input[type="u
104 } 104 }
105} 105}
106 106
107fieldset label {
108 min-width: 12.5em;
109}
110
111.inline .row { 107.inline .row {
112 display: inline-block; 108 display: inline-block;
113 margin-right: 0.5em; 109 margin-right: 0.5em;
@@ -119,10 +115,14 @@ fieldset label {
119 115
120fieldset label { 116fieldset label {
121 display: inline-block; 117 display: inline-block;
122 margin-right: 0.5em; 118 min-width: 12.5em;
123 color: #666; 119 color: #666;
124} 120}
125 121
122label {
123 margin-right: 0.5em;
124}
125
126form .row { 126form .row {
127 margin-bottom: 0.5em; 127 margin-bottom: 0.5em;
128} 128}
@@ -180,7 +180,7 @@ h2:after {
180 padding-top: 9.5em; 180 padding-top: 9.5em;
181 height: 100%; 181 height: 100%;
182 box-shadow:inset -4px 0 20px rgba(0,0,0,0.6); 182 box-shadow:inset -4px 0 20px rgba(0,0,0,0.6);
183 z-index: 10; 183 z-index: 15;
184} 184}
185 185
186#main { 186#main {
@@ -191,7 +191,7 @@ h2:after {
191 padding-bottom: 1em; 191 padding-bottom: 1em;
192} 192}
193 193
194 #links a { 194 #links > li > a {
195 display: block; 195 display: block;
196 padding: 0.5em 2em 0.5em 1em; 196 padding: 0.5em 2em 0.5em 1em;
197 color: #FFF; 197 color: #FFF;
@@ -207,7 +207,7 @@ h2:after {
207 transition: all 0.5s ease; 207 transition: all 0.5s ease;
208 } 208 }
209 209
210 #links a:hover, #links a:focus { 210 #links > li > a:hover, #links > li > a:focus {
211 background: #999; 211 background: #999;
212 color: #000; 212 color: #000;
213 } 213 }
@@ -281,12 +281,12 @@ h2:after {
281#listmode a:hover { 281#listmode a:hover {
282 opacity: 1; 282 opacity: 1;
283} 283}
284.tablemode { 284#listmode.tablemode {
285 background-image: url("../img/baggy/table.png"); 285 background-image: url("../img/baggy/table.png");
286 background-repeat: no-repeat; 286 background-repeat: no-repeat;
287 background-position: bottom; 287 background-position: bottom;
288} 288}
289.listmode { 289#listmode.listmode {
290 background-image: url("../img/baggy/list.png"); 290 background-image: url("../img/baggy/list.png");
291 background-repeat: no-repeat; 291 background-repeat: no-repeat;
292 background-position: bottom; 292 background-position: bottom;
@@ -327,15 +327,11 @@ footer a {
327 margin-left: 0!important; 327 margin-left: 0!important;
328} 328}
329 329
330.listmode .entrie p {
331 display: none;
332}
333
334.list-entries + .results { 330.list-entries + .results {
335 margin-bottom: 2em; 331 margin-bottom: 2em;
336} 332}
337 333
338.estimatedTime a { 334.estimatedTime .reading-time {
339 color: #999; 335 color: #999;
340 font-style: italic; 336 font-style: italic;
341 font-weight: normal; 337 font-weight: normal;
@@ -359,11 +355,15 @@ footer a {
359 position: relative; 355 position: relative;
360 overflow: hidden; 356 overflow: hidden;
361 padding: 1.5em 1.5em 3em 1.5em; 357 padding: 1.5em 1.5em 3em 1.5em;
362 -webkit-transition: all 0.5s ease; 358
363 -moz-transition: all 0.5s ease; 359 /* Removing CSS transitions because they make the switch from list view to
364 -ms-transition: all 0.5s ease; 360 * table view jerky
365 -o-transition: all 0.5s ease; 361 */
366 transition: all 0.5s ease; 362 /* -webkit-transition: all 0.5s ease; */
363 /* -moz-transition: all 0.5s ease; */
364 /* -ms-transition: all 0.5s ease; */
365 /* -o-transition: all 0.5s ease; */
366 /* transition: all 0.5s ease; */
367} 367}
368 368
369.entrie:before { 369.entrie:before {
@@ -418,6 +418,7 @@ footer a {
418.entrie h2 { 418.entrie h2 {
419 text-transform: none; 419 text-transform: none;
420 margin-bottom: 0; 420 margin-bottom: 0;
421 line-height: 1.2;
421} 422}
422 423
423 .entrie h2:after { 424 .entrie h2:after {
@@ -540,7 +541,7 @@ footer a {
540 2.1 = "save a link" related styles 541 2.1 = "save a link" related styles
541 ========================================================================== */ 542 ========================================================================== */
542 543
543#bagit-form, #search-form { 544.popup-form {
544 background: rgba(0,0,0,0.5); 545 background: rgba(0,0,0,0.5);
545 position: absolute; 546 position: absolute;
546 top: 0; 547 top: 0;
@@ -549,37 +550,53 @@ footer a {
549 height: 100%; 550 height: 100%;
550 width: 100%; 551 width: 100%;
551 margin: 0; 552 margin: 0;
552 margin-top: -30%; 553 margin-top: -30% !important; /* TODO: get rid of !important here; overridden by .messages selector */
553 padding: 2em; 554 padding: 2em;
554 display: none; 555 display: none;
555 border-left: 1px #EEE solid; 556 border-left: 1px #EEE solid;
556} 557}
557 558
558#bagit-form form, #search-form form { 559 .popup-form form {
559 background: #FFF; 560 background: #FFF;
560 position: absolute; 561 position: absolute;
561 top: 0; 562 top: 0;
562 left: 0; 563 left: 0;
563 z-index: 20; 564 z-index: 20;
564 border: 10px solid #000; 565 border: 10px solid #000;
565 width: 400px; 566 width: 400px;
566 height: 200px; 567 height: 200px;
567 /* margin: -150px 0 0 -300px; */ 568 padding: 2em;
568 padding: 2em; 569 }
570
571#bagit-form-form .addurl {
572 margin-left: 0;
569} 573}
570 574
571a#bagit-form-close, a#search-form-close { 575.closeMessage,
576.close-button {
572 background: #000; 577 background: #000;
573 color: #FFF; 578 color: #FFF;
574 padding: 0.2em 0.5em; 579 font-size: 1.2em;
580 line-height: 1.6;
581 width: 1.6em;
582 height: 1.6em;
583 text-align: center;
575 text-decoration: none; 584 text-decoration: none;
576 display: inline-block;
577 float: right;
578 font-size: 0.6em;
579} 585}
580a#bagit-form-close:hover, a#search-form-close:hover { 586 .closeMessage:hover,
581 background: #999; 587 .closeMessage:focus,
582 color: #000; 588 .close-button:hover,
589 .close-button:focus {
590 background: #999;
591 color: #000;
592 }
593
594.close-button--popup {
595 display: inline-block;
596 position: absolute;
597 top: 0;
598 right: 0;
599 font-size: 1.4em;
583} 600}
584 601
585.active-current { 602.active-current {
@@ -634,56 +651,6 @@ a.add-to-wallabag-link-after:after {
634} 651}
635 652
636/* ========================================================================== 653/* ==========================================================================
637 2.2 = "search for articles" popup div related styles
638 ========================================================================== */
639#search-form {
640 background: rgba(0,0,0,0.5);
641 position: absolute;
642 top: 0;
643 left: 10em;
644 z-index: 20;
645 height: 100%;
646 width: 100%;
647 margin: 0;
648 margin-top: -30%;
649 padding: 2em;
650 display: none;
651 border-left: 1px #EEE solid;
652}
653
654#search-form form {
655 background: #FFF;
656 position: absolute;
657 top: 0;
658 left: 0;
659 z-index: 20;
660 border: 10px solid #000;
661 width: 400px;
662 height: 200px;
663 /* margin: -150px 0 0 -300px; */
664 padding: 2em;
665}
666
667a#search-form-close {
668 background: #000;
669 color: #FFF;
670 padding: 0.2em 0.5em;
671 text-decoration: none;
672 display: inline-block;
673 float: right;
674 font-size: 1.2em;
675}
676a#search-form-close:hover {
677 background: #999;
678 color: #000;
679}
680
681#submit-search{
682margin-left: 4em;
683margin-top:1em;
684}
685
686/* ==========================================================================
687 3 = Pictos 654 3 = Pictos
688 ========================================================================== */ 655 ========================================================================== */
689 656
@@ -777,6 +744,10 @@ margin-top:1em;
777 color: #FFF; 744 color: #FFF;
778} 745}
779 746
747.icon-check.archive:before {
748 color: #FFF;
749}
750
780/* ========================================================================== 751/* ==========================================================================
781 4 = Messages 752 4 = Messages
782 ========================================================================== */ 753 ========================================================================== */
@@ -788,18 +759,6 @@ margin-top:1em;
788 759
789.messages > * { display: inline-block;} 760.messages > * { display: inline-block;}
790 761
791.closeMessage {
792 background: #000;
793 color: #FFF;
794 padding: 0.2em 0.5em;
795 text-decoration: none;
796}
797
798 .closeMessage:hover, .closeMessage:focus {
799 background: #FFF;
800 color: #000;
801 }
802
803.warning { 762.warning {
804 /* font-size: 3em; 763 /* font-size: 3em;
805 color: #999; 764 color: #999;
@@ -816,6 +775,16 @@ margin-top:1em;
816 width: 100%; 775 width: 100%;
817} 776}
818 777
778.more-info {
779 font-size: 0.85em;
780 line-height: 1.5;
781 color: #aaa;
782}
783
784 .more-info a {
785 color: #aaa;
786 }
787
819/* ========================================================================== 788/* ==========================================================================
820 5 = Article 789 5 = Article
821 ========================================================================== */ 790 ========================================================================== */
@@ -841,6 +810,10 @@ blockquote {
841 margin: 0; 810 margin: 0;
842} 811}
843 812
813#article h1 {
814 text-align: left;
815}
816
844#article h2, #article h3, #article h4 { 817#article h2, #article h3, #article h4 {
845 text-transform: none; 818 text-transform: none;
846} 819}
@@ -1029,6 +1002,9 @@ pre code {
1029 height: auto; 1002 height: auto;
1030 padding-top: 3em; 1003 padding-top: 3em;
1031 } 1004 }
1005 #links.menu--open {
1006 display: block;
1007 }
1032 footer { 1008 footer {
1033 position: static; 1009 position: static;
1034 margin-right: 3em; 1010 margin-right: 3em;
@@ -1058,8 +1034,16 @@ pre code {
1058 display: none; 1034 display: none;
1059 } 1035 }
1060 1036
1061 #bagit-form, #search-form { 1037 .popup-form, #bagit-form, #search-form {
1062 left: 0; 1038 left: 0;
1039 width: 100%;
1040 border-left: none;
1041 }
1042
1043 .popup-form form,
1044 #bagit-form form,
1045 #search-form form {
1046 width: 100%;
1063 } 1047 }
1064} 1048}
1065 1049
diff --git a/themes/baggy/edit-tags.twig b/themes/baggy/edit-tags.twig
index 2113e964..d7c15033 100755
--- a/themes/baggy/edit-tags.twig
+++ b/themes/baggy/edit-tags.twig
@@ -13,14 +13,14 @@
13 <h2>{{ entry.title|raw }}</21> 13 <h2>{{ entry.title|raw }}</21>
14</div> 14</div>
15{% if tags is empty %} 15{% if tags is empty %}
16<div class="notags">no tags</div> 16<div class="notags">{% trans "no tags" %}</div>
17{% endif %} 17{% endif %}
18<ul> 18<ul>
19{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %} 19{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
20</ul> 20</ul>
21<form method="post" action="./?action=add_tag"> 21<form method="post" action="./?action=add_tag">
22 <input type="hidden" name="entry_id" value="{{ entry_id }}" /> 22 <input type="hidden" name="entry_id" value="{{ entry_id }}" />
23 <label for="value">Add tags: </label><input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> 23 <label for="value">{% trans "Add tags:" %}</label><input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
24 <input type="submit" value="Tag" /> 24 <input type="submit" value="Tag" />
25 <p>{% trans "Start typing for auto complete." %}<br> 25 <p>{% trans "Start typing for auto complete." %}<br>
26 {% trans "You can enter multiple tags, separated by commas." %}</p> 26 {% trans "You can enter multiple tags, separated by commas." %}</p>
diff --git a/themes/baggy/home.twig b/themes/baggy/home.twig
index e788b588..dec848f2 100755
--- a/themes/baggy/home.twig
+++ b/themes/baggy/home.twig
@@ -38,12 +38,12 @@
38 {% endblock %} 38 {% endblock %}
39 <div id="list-entries" class="list-entries"> 39 <div id="list-entries" class="list-entries">
40 {% for entry in entries %} 40 {% for entry in entries %}
41 <div id="entry-{{ entry.id|e }}" class="entrie"{% if listmode %} style="width:100%; margin-left:0;"{% endif %}> 41 <div id="entry-{{ entry.id|e }}" class="entrie">
42 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2> 42 <h2><a href="index.php?view=view&amp;id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
43 {% if entry.content| getReadingTime > 0 %} 43 {% if entry.content| getReadingTime > 0 %}
44 <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div> 44 <div class="estimatedTime"><span class="tool reading-time">{% trans "estimated reading time :" %} {{ entry.content| getReadingTime }} min</span></div>
45 {% else %} 45 {% else %}
46 <div class="estimatedTime"><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="tool reading-time"><span>{% trans "estimated reading time :" %} <small class="inferieur"><</small> 1 min</span></div> 46 <div class="estimatedTime"><span class="tool reading-time">{% trans "estimated reading time :" %} <small class="inferieur">&lt;</small> 1 min</span></div>
47 {% endif %} 47 {% endif %}
48 <ul class="tools links"> 48 <ul class="tools links">
49 <li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li> 49 <li><a title="{% trans "Toggle mark as read" %}" class="tool icon-check icon {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&amp;id={{ entry.id|e }}"><span>{% trans "Toggle mark as read" %}</span></a></li>
@@ -57,13 +57,14 @@
57 {% endfor %} 57 {% endfor %}
58 </div> 58 </div>
59 {{ block('pager') }} 59 {{ block('pager') }}
60 {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "Mark all the entries as read" %}" href="./?action=archive_all">{{ "Mark all the entries as read" }}</a>{% endif %}{% endif %} 60 {% if view == 'home' %}{% if nb_results > 1 %}<p><a title="{% trans "Mark all the entries as read" %}" href="./?action=archive_all">{% trans "Mark all the entries as read" %}</a></p>{% endif %}{% endif %}
61 61
62 {% if search_term is defined %}<a title="{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}" href="./?action=add_tag&search={{ search_term }}">{% trans %} Apply the tag {{ search_term }} to this search {% endtrans %}</a>{% endif %} 62 {% if searchterm is defined %}<p><a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">
63{% trans "Tag these results as" %} {{ searchterm }}</p></a>{% endif %}
63 64
64 {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a> 65 {% if tag %}<p><a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</p></a>
65 {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a> 66 {% elseif search_term is defined %}<p><a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</p></a>
66 {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %} 67 {% else %}<p><a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a></p>{% endif %}
67 68
68 {% endif %} 69 {% endif %}
69{% endblock %} 70{% endblock %}
diff --git a/themes/baggy/js/init.js b/themes/baggy/js/init.js
index 00470fbf..74cbae68 100755
--- a/themes/baggy/js/init.js
+++ b/themes/baggy/js/init.js
@@ -8,7 +8,10 @@ $.fn.ready(function() {
8 ========================================================================== */ 8 ========================================================================== */
9 9
10 $("#menu").click(function(){ 10 $("#menu").click(function(){
11 $("#links").toggle(); 11 $("#links").toggleClass('menu--open');
12 if ($('#content').hasClass('opacity03')) {
13 $('#content').removeClass('opacity03');
14 }
12 }); 15 });
13 16
14 /* ========================================================================== 17 /* ==========================================================================
diff --git a/themes/baggy/login.twig b/themes/baggy/login.twig
index 645db376..58290e9c 100644
--- a/themes/baggy/login.twig
+++ b/themes/baggy/login.twig
@@ -9,17 +9,17 @@
9 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %} 9 {% if constant('MODE_DEMO') == 1 %}<p>{% trans "you are in demo mode, some features may be disabled." %}</p>{% endif %}
10 <div class="row"> 10 <div class="row">
11 <label class="col w150p" for="login">{% trans "Username" %}</label> 11 <label class="col w150p" for="login">{% trans "Username" %}</label>
12 <input class="col" type="text" id="login" name="login" placeholder="Login" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> 12 <input class="col" type="text" id="login" name="login" placeholder="{% trans "Username" %}" tabindex="1" autofocus {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
13 </div> 13 </div>
14 14
15 <div class="row"> 15 <div class="row">
16 <label class="col w150p" for="password">{% trans "Password" %}</label> 16 <label class="col w150p" for="password">{% trans "Password" %}</label>
17 <input class="col" type="password" id="password" name="password" placeholder="Password" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} /> 17 <input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2" {% if constant('MODE_DEMO') == 1 %}value="poche"{% endif %} />
18 </div> 18 </div>
19 <div class="row"> 19 <div class="row">
20 <label class="col w150p" for="longlastingsession">{% trans "Stay signed in" %}</label> 20
21 <div class="col"> 21 <div class="col">
22 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3"> 22 <input type="checkbox" id="longlastingsession" name="longlastingsession" tabindex="3" /> <label for="longlastingsession">{% trans "Stay signed in" %}</label><br />
23 <small class="inbl">{% trans "(Do not check on public computers)" %}</small> 23 <small class="inbl">{% trans "(Do not check on public computers)" %}</small>
24 </div> 24 </div>
25 </div> 25 </div>
diff --git a/themes/baggy/tags.twig b/themes/baggy/tags.twig
index 9bb93a45..65930eb2 100755
--- a/themes/baggy/tags.twig
+++ b/themes/baggy/tags.twig
@@ -1,5 +1,5 @@
1{% extends "layout.twig" %} 1{% extends "layout.twig" %}
2{% block title %}tags{% endblock %} 2{% block title %}Tags{% endblock %}
3{% block menu %} 3{% block menu %}
4{% include '_menu.twig' %} 4{% include '_menu.twig' %}
5{% endblock %} 5{% endblock %}
@@ -10,4 +10,4 @@
10</li> 10</li>
11{% endfor %} 11{% endfor %}
12</ul> 12</ul>
13{% endblock %} \ No newline at end of file 13{% endblock %}
diff --git a/themes/courgette/home.twig b/themes/courgette/home.twig
index 811298eb..ff27db43 100755
--- a/themes/courgette/home.twig
+++ b/themes/courgette/home.twig
@@ -26,13 +26,13 @@
26 {% block pager %} 26 {% block pager %}
27 {% if nb_results > 1 %} 27 {% if nb_results > 1 %}
28 <div class="results"> 28 <div class="results">
29 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> 29 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}</div>
30 {{ page_links | raw }} 30 {{ page_links | raw }}
31 </div> 31 </div>
32 {% elseif nb_results == 1 %} 32 {% elseif nb_results == 1 %}
33 {% if search_term is defined %} 33 {% if searchterm is defined %}
34 <div class="results"> 34 <div class="results">
35 <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> 35 <div class="nb-results">{% trans "Only one result found for " %} « {{ searchterm }} »</div>
36 </div> 36 </div>
37 {% endif %} 37 {% endif %}
38 {% endif %} 38 {% endif %}
@@ -53,10 +53,12 @@
53 53
54 {{ block('pager') }} 54 {{ block('pager') }}
55 55
56 {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a> 56 {% if searchterm is defined %}<a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">{% trans "Tag these results as" %} {{ searchterm }}</a>{% endif %}
57 {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a> 57
58 {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
59 {% elseif searchterm is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download the articles from this search in an epub" %}</a>
58 {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %} 60 {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %}
59 61
60 {% endif %} 62 {% endif %}
61 63
62{% endblock %} \ No newline at end of file 64{% endblock %}
diff --git a/themes/default/_menu.twig b/themes/default/_menu.twig
index 9b9a6062..eedf84f1 100644
--- a/themes/default/_menu.twig
+++ b/themes/default/_menu.twig
@@ -6,6 +6,7 @@
6 <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li> 6 <li><a href="javascript: void(null);" id="bagit">{% trans "save a link" %}</a><span id="bagit-arrow"></span></li>
7 <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li> 7 <li><a href="javascript: void(null);" id="search">{% trans "search" %}</a><span id="search-arrow"></span></li>
8 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li> 8 <li><a href="./?view=config" {% if view == 'config' %}class="current"{% endif %}>{% trans "config" %}</a></li>
9 <li><a href="./?view=about" {% if view == 'about' %}class="current"{% endif %}>{% trans "about" %}</a></li>
9 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li> 10 <li><a href="./?logout" title="{% trans "logout" %}">{% trans "logout" %}</a></li>
10 </ul> 11 </ul>
11 {% include '_pocheit-form.twig' %} 12 {% include '_pocheit-form.twig' %}
diff --git a/themes/default/_sorting.twig b/themes/default/_sorting.twig
index ce3d38bc..3ce9b949 100755
--- a/themes/default/_sorting.twig
+++ b/themes/default/_sorting.twig
@@ -1,6 +1,6 @@
1{% if entries|length > 1 %} 1{% if entries|length > 1 %}
2 <ul id="sort"> 2 <ul id="sort">
3 <li><a href="./?sort=ia&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li> 3 <li><a href="./?sort=ia&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
4 <li><a href="./?sort=ta&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&amp;view={{ view }}{% if search_term is defined %}&amp;search={{ search_term }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li> 4 <li><a href="./?sort=ta&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&amp;view={{ view }}{% if searchterm is defined %}&amp;search={{ searchterm }}{% endif %}&amp;id={{ id }}"><img src="{{ poche_url }}themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
5 </ul> 5 </ul>
6{% endif %} 6{% endif %}
diff --git a/themes/default/about.twig b/themes/default/about.twig
new file mode 100755
index 00000000..5ca3217c
--- /dev/null
+++ b/themes/default/about.twig
@@ -0,0 +1,74 @@
1{% extends "layout.twig" %}
2
3{% block title %}{% trans "About wallabag" %}{% endblock %}
4{% block menu %}
5{% include '_menu.twig' %}
6{% endblock %}
7{% block content %}
8 <h2>{% trans "About wallabag" %}</h2>
9
10 <dl>
11 <dt>{% trans "Project website" %}</dt>
12 <dd><a href="http://www.wallabag.org">http://www.wallabag.org</a></dd>
13
14 <dt>{% trans "Main developer" %}</dt>
15 <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{% trans "website" %}</a></dd>
16
17 <dt>{% trans "Contributors:" %}</dt>
18 <dd><a href="https://github.com/wallabag/wallabag/graphs/contributors">{% trans "on Github" %}</a></dd>
19
20 <dt>{% trans "Bug reports" %}</dt>
21 <dd><a href="http://support.wallabag.org">{% trans "On our support website" %}</a> {% trans "or" %} <a href="https://github.com/wallabag/wallabag/issues">{% trans "on Github" %}</a></dd>
22
23 <dt>{% trans "License" %}</dt>
24 <dd><a href="http://en.wikipedia.org/wiki/MIT_License">MIT</a></dd>
25
26 <dt>{% trans "Version" %}</dt>
27 <dd>{{ constant('POCHE') }}</dd>
28 </dl>
29
30 <p>{% trans "wallabag is a read-it-later application: you can save a web page by keeping only content. Elements like ads or menus are deleted." %}</p>
31
32 <h2>{% trans "Helping wallabag" %}</h2>
33
34 <p>{% trans "wallabag is free and opensource. You can help us:" %}</p>
35
36 <dl>
37 <dt><a href="http://www.wallabag.org">{% trans "via Paypal" %}</a></dt>
38
39 <dt><a href="http://www.wallabag.org">{% trans "via Flattr" %}</a></dt>
40 </dl>
41
42 <h2>{% trans "Credits" %}</h2>
43 <dl>
44 <dt>PHP Readability</dt>
45 <dd><a href="https://bitbucket.org/fivefilters/php-readability">https://bitbucket.org/fivefilters/php-readability</a></dd>
46
47 <dt>Full Text RSS</dt>
48 <dd><a href="http://code.fivefilters.org/full-text-rss/src">http://code.fivefilters.org/full-text-rss/src</a></dd>
49
50 <dt>logo by Maylis Agniel</dt>
51 <dd><a href="https://github.com/wallabag/logo">https://github.com/wallabag/logo</a></dd>
52
53 <dt>icons</dt>
54 <dd><a href="http://icomoon.io">http://icomoon.io</a></dd>
55
56 <dt>PHP Simple HTML DOM Parser</dt>
57 <dd><a href="http://simplehtmldom.sourceforge.net/">http://simplehtmldom.sourceforge.net/</a></dd>
58
59 <dt>Session</dt>
60 <dd><a href="https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php">https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php</a></dd>
61
62 <dt>Twig</dt>
63 <dd><a href="http://twig.sensiolabs.org">http://twig.sensiolabs.org</a></dd>
64
65 <dt>Flash messages</dt>
66 <dd><a href="https://github.com/plasticbrain/PHP-Flash-Messages">https://github.com/plasticbrain/PHP-Flash-Messages</a></dd>
67
68 <dt>Pagination</dt>
69 <dd><a href="https://github.com/daveismyname/pagination">https://github.com/daveismyname/pagination</a></dd>
70
71 <dt>PHPePub</dt>
72 <dd><a href="https://github.com/Grandt/PHPePub/">https://github.com/Grandt/PHPePub/</a></dd>
73 </dl>
74{% endblock %}
diff --git a/themes/default/config.twig b/themes/default/config.twig
index 36b66e88..082e179f 100755
--- a/themes/default/config.twig
+++ b/themes/default/config.twig
@@ -6,29 +6,29 @@
6{% endblock %} 6{% endblock %}
7{% block content %} 7{% block content %}
8 <h2>{% trans "Saving articles" %}</h2> 8 <h2>{% trans "Saving articles" %}</h2>
9 <p>{% trans "There are several ways to save an article:" %} (<a href="http://doc.wallabag.org/" title="{% trans "read the documentation" %}">?</a>)</p> 9 <p>{% trans "There are several ways to save an article:" %} {% trans "(<a href=\"http://doc.wallabag.org/en/User_documentation/Save_your_first_article\" target=\"_blank\" title=\"Documentation\">?</a>)" %}</p>
10 <p>
11 <form method="get" action="index.php">
12 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label><br>
13 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
14 <input type="submit" value="{% trans "bag it!" %}" />
15 </form>
16 </p>
17 <h3>Browser Plugins</h3>
10 <ul> 18 <ul>
11 <li>Firefox: <a href="https://addons.mozilla.org/firefox/addon/wallabag/" title="download the firefox extension">{% trans "download the extension" %}</a></li> 19 <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans "Firefox Add-On" %}</a></li>
12 <li>Chrome: <a href="http://doc.wallabag.org/doku.php?id=users:chrome_extension" title="download the chrome extension">{% trans "download the extension" %}</a></li> 20 <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{% trans "Chrome Extension" %}</a></li>
13 <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" title="download the application">{% trans "via Google Play" %}</a></li>
14 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" title="download the iOS application">{% trans "download the application" %}</a></li>
15 <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" title="download the window phone application">{% trans "download the application" %}</a></li>
16 <li>
17 <form method="get" action="index.php">
18 <label class="addurl" for="config_plainurl">{% trans "By filling this field" %}:</label>
19 <input required placeholder="example.com/article" class="addurl" id="config_plainurl" name="plainurl" type="url" />
20 <input type="submit" value="{% trans "bag it!" %}" />
21 </form>
22 </li>
23 <li>{% trans "Bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a></li>
24 </ul> 21 </ul>
25 22 <h3>Mobile Apps</h3>
26 <h2>{% trans "Upgrading wallabag" %}</h2>
27 <ul> 23 <ul>
28 <li>{% trans "Installed version" %} : <strong>{{ constant('POCHE') }}</strong></li> 24 <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via F-Droid" %}</a> {% trans " or " %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans "via Google Play" %}</a></li>
29 <li>{% trans "Latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li> 25 <li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans "download the application" %}</a></li>
30 {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %}</li>{% endif %} 26 <li>Windows Phone: <a href="http://www.windowsphone.com/en-us/store/app/wallabag/ff890514-348c-4d0b-9b43-153fff3f7450" target="_blank">{% trans "download the application" %}</a></li>
31 </ul> 27 </ul>
28 <h3>{% trans "Bookmarklet" %}</h3>
29 <p>
30 {% trans "Drag &amp; drop this link to your bookmarks bar:" %} <a id="bookmarklet" ondragend="this.click();" href="javascript:if(top['bookmarklet-url@wallabag.org']){top['bookmarklet-url@wallabag.org'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "bag it!" %}</a>
31 </p>
32 32
33 <h2>{% trans "Feeds" %}</h2> 33 <h2>{% trans "Feeds" %}</h2>
34 {% if token == '' %} 34 {% if token == '' %}
@@ -39,14 +39,16 @@
39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li> 39 <li><a href="?feed&amp;type=fav&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Favorites feed" %}</a></li>
40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li> 40 <li><a href="?feed&amp;type=archive&amp;user_id={{ user_id }}&amp;token={{ token }}" target="_blank">{% trans "Archive feed" %}</a></li>
41 </ul> 41 </ul>
42 <p>{% trans "Your token:" %} <strong>{{token}}</strong></p> 42 <p class="more-info">
43 <p>{% trans "Your user id:" %} <strong>{{user_id}}</strong></p> 43 {% trans "Your token:" %} <strong>{{token}}</strong><br>
44 <p>{% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}</p> 44 {% trans "Your user id:" %} <strong>{{user_id}}</strong><br>
45 {% trans "You can regenerate your token: <a href='?feed&amp;action=generate'>generate!</a>." %}
46 </p>
45 {% endif %} 47 {% endif %}
46 48
47 <h2>{% trans "Change your theme" %}</h2> 49 <h2>{% trans "Change your theme" %}</h2>
48 <form method="post" action="?updatetheme" name="changethemeform"> 50 <form method="post" action="?updatetheme" name="changethemeform">
49 <fieldset class="w500p"> 51 <fieldset class="w500p inline">
50 <div class="row"> 52 <div class="row">
51 <label class="col w150p" for="theme">{% trans "Theme:" %}</label> 53 <label class="col w150p" for="theme">{% trans "Theme:" %}</label>
52 <select class="col" id="theme" name="theme"> 54 <select class="col" id="theme" name="theme">
@@ -65,7 +67,7 @@
65 67
66 <h2>{% trans "Change your language" %}</h2> 68 <h2>{% trans "Change your language" %}</h2>
67 <form method="post" action="?updatelanguage" name="changelanguageform"> 69 <form method="post" action="?updatelanguage" name="changelanguageform">
68 <fieldset class="w500p"> 70 <fieldset class="w500p inline">
69 <div class="row"> 71 <div class="row">
70 <label class="col w150p" for="language">{% trans "Language:" %}</label> 72 <label class="col w150p" for="language">{% trans "Language:" %}</label>
71 <select class="col" id="language" name="language"> 73 <select class="col" id="language" name="language">
@@ -82,6 +84,35 @@
82 <input type="hidden" name="token" value="{{ token }}"> 84 <input type="hidden" name="token" value="{{ token }}">
83 </form> 85 </form>
84 86
87 <h2><a name="import"></a>{% trans "Import" %}</h2>
88 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
89 <p>{% trans "Please select export file on your computer and press \"Import\" button below. Wallabag will parse your file, insert all URLs and start fetching of articles if required." %}</p>
90 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
91 <fieldset class="w500p">
92 <div class="row">
93 <label class="col w150p" for="file">{% trans "File:" %}</label>
94 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
95 </div>
96 <div class="row mts txtcenter">
97 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
98 </div>
99 </fieldset>
100 </form>
101 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
102 <p class="more-info">{% trans "Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
103
104 <h2>{% trans "Export your wallabag data" %}</h2>
105 <p><a href="?export" target="_blank">{% trans "Export JSON" %}</a><br>
106 <span class="more-info">Data will be exported in a single JSON file.</span></p>
107
108 <h2>{% trans "Fancy an E-Book ?" %}</h2>
109 <p><a href="./?epub&amp;method=all" title="Generate ePub">Download E-Book</a><br>
110 <span class="more-info">{% trans "Articles will be exported as a single E-book file (EPUB 3 format)." %} {% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</span></p>
111
112 <h2><a name="cache"></a>{% trans "Cache" %}</h2>
113 <p><a href="?empty-cache">{% trans "Delete Cache" %}</a><br>
114 <span class="more-info">Deleting the cache may help with display or other problems.</span></p>
115
85 {% if http_auth == 0 %} 116 {% if http_auth == 0 %}
86 <h2>{% trans "Change your password" %}</h2> 117 <h2>{% trans "Change your password" %}</h2>
87 <form method="post" action="?config" name="loginform"> 118 <form method="post" action="?config" name="loginform">
@@ -102,55 +133,28 @@
102 <input type="hidden" name="token" value="{{ token }}"> 133 <input type="hidden" name="token" value="{{ token }}">
103 </form> 134 </form>
104 {% endif %} 135 {% endif %}
105
106 <h2>{% trans "Import" %}</h2>
107 <p>{% trans "You can import your Pocket, Readability, Instapaper, Wallabag or any data in appropriate json or html format." %}</p>
108 <p>{% trans "Please select export file on your computer and press \"Import\" button below.<br>Wallabag will parse your file, insert all URLs and start fetching of articles if required.<br>Fetching process is controlled by two constants in your config file: IMPORT_LIMIT (how many articles are fetched at once) and IMPORT_DELAY (delay between fetch of next batch of articles)." %}</p>
109 <form method="post" action="?import" name="uploadfile" enctype="multipart/form-data">
110 <fieldset class="w500p">
111 <div class="row">
112 <label class="col w150p" for="file">{% trans "File:" %}</label>
113 <input class="col" type="file" id="file" name="file" tabindex="4" required="required">
114 </div>
115 <div class="row mts txtcenter">
116 <button class="bouton" type="submit" tabindex="4">{% trans "Import" %}</button>
117 </div>
118 </fieldset>
119 </form>
120 <p><a href="?import">{% trans "You can click here to fetch content for articles with no content." %}</a></p>
121
122 <h2>{% trans "Export your wallabag data" %}</h2>
123 <p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your wallabag data." %}</p>
124
125 <h2>{% trans "Cache" %}</h2>
126 <p><a href="?empty-cache">{% trans "Click here" %}</a> {% trans "to delete cache." %}</p>
127
128 <h2>{% trans "Fancy an E-Book ?" %}</h2>
129 <p>{% trans "Click on <a href=\"./?epub&amp;method=all\" title=\"Generate ePub\">this link</a> to get all your articles in one ebook (ePub 3 format)." %}
130 <br>{% trans "This can <b>take a while</b> and can <b>even fail</b> if you have too many articles, depending on your server configuration." %}</p>
131 136
132 <h2>{% trans 'Add user' %}</h2> 137 <h2>{% trans 'Add user' %}</h2>
133 <p>{% trans 'Add a new user :' %}</p>
134 <form method="post" action="?newuser"> 138 <form method="post" action="?newuser">
135 <fieldset class="w500p"> 139 <fieldset class="w500p">
136 <div class="row"> 140 <div class="row">
137 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label> 141 <label class="col w150p" for="newusername">{% trans 'Login for new user' %}</label>
138 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}"> 142 <input class="col" type="text" id="newusername" name="newusername" placeholder="{% trans 'Login' %}" required>
139 </div> 143 </div>
140 <div class="row"> 144 <div class="row">
141 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label> 145 <label class="col w150p" for="password4newuser">{% trans "Password for new user" %}</label>
142 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans "Password" %}"> 146 <input class="col" type="password" id="password4newuser" name="password4newuser" placeholder="{% trans 'Password' %}" required>
143 </div> 147 </div>
144 <div class="row"> 148 <div class="row">
145 <label class="col w150p" for="newuseremail">{% trans 'Email for new user (not required)' %}</label> 149 <label class="col w150p" for="newuseremail">{% trans 'Email for new user (not required)' %}</label>
146 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}"> 150 <input class="col" type="email" id="newuseremail" name="newuseremail" placeholder="{% trans 'Email' %}">
147 </div> 151 </div>
148 <div class="row mts txtcenter"> 152 <div class="row mts txtcenter">
149 <button type="submit">{% trans "Send" %}</button> 153 <button type="submit">{% trans "Add user" %}</button>
150 </div> 154 </div>
151 </fieldset> 155 </fieldset>
152 </form> 156 </form>
153 157
154 <h2>{% trans "Delete account" %}</h2> 158 <h2>{% trans "Delete account" %}</h2>
155 {% if not only_user %}<form method="post" action="?deluser"> 159 {% if not only_user %}<form method="post" action="?deluser">
156 <p>{% trans "You can delete your account by entering your password and validating." %}<br /><b>{% trans "Be careful, data will be erased forever (that is a very long time)." %}</b></p> 160 <p>{% trans "You can delete your account by entering your password and validating." %}<br /><b>{% trans "Be careful, data will be erased forever (that is a very long time)." %}</b></p>
@@ -160,9 +164,18 @@
160 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}"> 164 <input class="col" type="password" id="password4deletinguser" name="password4deletinguser" placeholder="{% trans "Password" %}">
161 </div> 165 </div>
162 <div class="row mts txtcenter"> 166 <div class="row mts txtcenter">
163 <button type="submit">{% trans "Send" %}</button> 167 <button type="submit">{% trans "Delete account" %}</button>
164 </div> 168 </div>
165 </form> 169 </form>
166 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}<br /> 170 {% else %}<p>{% trans "You are the only user, you cannot delete your own account." %}</p>
167 {% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %} 171 <p>{% trans "To completely remove wallabag, delete the wallabag folder on your web server (and eventual databases)." %}</p>{% endif %}
172
173 <h2>{% trans "Upgrading wallabag" %}</h2>
174 <ul>
175 <li>{% trans "Installed version" %}: <strong>{{ constant('POCHE') }}</strong></li>
176 <li>{% trans "Latest stable version" %}: {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent stable version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_prod }})</li>
177 {% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "Latest dev version" %}: {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://wallabag.org/">{% trans "A more recent development version is available." %}</a></strong>{% else %}{% trans "You are up to date." %}{% endif %} ({% trans "Last check:" %} {{ check_time_dev }}){% endif %}</li>
178 </ul>
179 <p class="more-info">{% trans "You can clear cache to check the latest release." %}</p>
180
168{% endblock %} 181{% endblock %}
diff --git a/themes/default/css/messages.css b/themes/default/css/messages.css
index 3ad4e34e..46b54795 100644
--- a/themes/default/css/messages.css
+++ b/themes/default/css/messages.css
@@ -8,11 +8,6 @@
8 border-radius: 4px; 8 border-radius: 4px;
9} 9}
10 10
11/* Search form message needs a little more width, depending on translations */
12#search-form {
13 width: 420px;
14}
15
16.messages a.closeMessage { 11.messages a.closeMessage {
17 display: none; 12 display: none;
18 float: right; 13 float: right;
diff --git a/themes/default/css/style.css b/themes/default/css/style.css
index e254d481..b25373d6 100755
--- a/themes/default/css/style.css
+++ b/themes/default/css/style.css
@@ -417,6 +417,15 @@ a.add-to-wallabag-link-after:after {
417 padding-left: 10px; 417 padding-left: 10px;
418} 418}
419 419
420/* ==========================================================================
421 "Search" popup div related styles
422 ========================================================================== */
423
424/* Search form message needs a little more width, depending on translations */
425#search-form {
426 width: 420px;
427}
428
420.opacity03 { 429.opacity03 {
421 /*opacity: 0.3;*/ 430 /*opacity: 0.3;*/
422} 431}
@@ -435,4 +444,4 @@ pre code {
435 font-family: "Courier New", Courier, monospace; 444 font-family: "Courier New", Courier, monospace;
436 border: 1px solid #ddd; 445 border: 1px solid #ddd;
437 font-size: 0.96em; 446 font-size: 0.96em;
438} \ No newline at end of file 447}
diff --git a/themes/default/edit-tags.twig b/themes/default/edit-tags.twig
index bd498d26..89c746ec 100755
--- a/themes/default/edit-tags.twig
+++ b/themes/default/edit-tags.twig
@@ -16,15 +16,15 @@
16</div> 16</div>
17 17
18{% if tags is empty %} 18{% if tags is empty %}
19no tags 19{% trans "no tags" %}
20{% endif %} 20{% endif %}
21<ul> 21<ul>
22{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %} 22{% for tag in tags %}<li>{{ tag.value }} <a href="./?action=remove_tag&amp;tag_id={{ tag.id }}&amp;id={{ entry_id }}">✘</a></li>{% endfor %}
23</ul> 23</ul>
24<form method="post" action="./?action=add_tag" id="editTags"> 24<form method="post" action="./?action=add_tag" id="editTags">
25 <input type="hidden" name="entry_id" value="{{ entry_id }}" /> 25 <input type="hidden" name="entry_id" value="{{ entry_id }}" />
26 <label for="value">Add tags: </label> 26 <label for="value">{% trans "Add tags:" %}</label>
27 <input type="text" placeholder="interview, editorial, video" id="value" name="value" required="required" /> 27 <input type="text" placeholder="{% trans "interview" %}, {% trans "editorial" %}, {% trans "video" %}" id="value" name="value" required="required" />
28 <input type="submit" value="Tag" /> 28 <input type="submit" value="Tag" />
29 <p>{% trans "Start typing for auto complete." %}<br> 29 <p>{% trans "Start typing for auto complete." %}<br>
30 {% trans "You can enter multiple tags, separated by commas." %}</p> 30 {% trans "You can enter multiple tags, separated by commas." %}</p>
diff --git a/themes/default/home.twig b/themes/default/home.twig
index 093c2dc5..6bc549e6 100755
--- a/themes/default/home.twig
+++ b/themes/default/home.twig
@@ -31,13 +31,13 @@
31 {% block pager %} 31 {% block pager %}
32 {% if nb_results > 1 %} 32 {% if nb_results > 1 %}
33 <div class="results"> 33 <div class="results">
34 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if search_term is defined %}{% trans " found for « " %} {{ search_term }} »{% endif %}</div> 34 <div class="nb-results">{{ nb_results }} {% trans "results" %}{% if searchterm is defined %}{% trans " found for « " %} {{ searchterm }} »{% endif %}</div>
35 {{ page_links | raw }} 35 {{ page_links | raw }}
36 </div> 36 </div>
37 {% elseif nb_results == 1 %} 37 {% elseif nb_results == 1 %}
38 {% if search_term is defined %} 38 {% if searchterm is defined %}
39 <div class="results"> 39 <div class="results">
40 <div class="nb-results">{% trans "Only one result found for " %} « {{ search_term }} »</div> 40 <div class="nb-results">{% trans "Only one result found for " %} « {{ searchterm }} »</div>
41 </div> 41 </div>
42 {% endif %} 42 {% endif %}
43 {% endif %} 43 {% endif %}
@@ -60,8 +60,11 @@
60 60
61 {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "mark all the entries as read" %}" href="./?action=archive_all">{% trans "mark all the entries as read" %}</a>{% endif %}{% endif %} 61 {% if view == 'home' %}{% if nb_results > 1 %}<a title="{% trans "mark all the entries as read" %}" href="./?action=archive_all">{% trans "mark all the entries as read" %}</a>{% endif %}{% endif %}
62 62
63 {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a> 63 {% if searchterm is defined %}<a title="{% trans "Tag these results as" %} {{ searchterm }}" href="./?action=add_tag&search={{ searchterm }}">
64 {% elseif search_term is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ search_term }}">{% trans "Download the articles from this search in an epub" %}</a> 64{% trans "Tag these results as" %} {{ searchterm }}</a>{% endif %}
65
66 {% if tag %}<a title="{% trans "Download the articles from this tag in an epub" %}" href="./?epub&amp;method=tag&amp;value={{ tag.value }}">{% trans "Download the articles from this tag in an epub" %}</a>
67 {% elseif searchterm is defined %}<a title="{% trans "Download the articles from this search in an epub" %}" href="./?epub&amp;method=search&amp;value={{ searchterm }}">{% trans "Download the articles from this search in an epub" %}</a>
65 {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %} 68 {% else %}<a title="{% trans "Download the articles from this category in an epub" %}" href="./?epub&amp;method=category&amp;value={{ view }}">{% trans "Download the articles from this category in an epub" %}</a>{% endif %}
66 69
67 {% endif %} 70 {% endif %}
diff --git a/themes/default/js/popupForm.js b/themes/default/js/popupForm.js
index a32e6e70..d233e600 100644
--- a/themes/default/js/popupForm.js
+++ b/themes/default/js/popupForm.js
@@ -1,21 +1,72 @@
1$(document).ready(function() { 1$(document).ready(function() {
2 2
3 $("#search-form").hide(); 3 $("#search-form").hide();
4 $("#bagit-form").hide();
4 5
5 function closeSearch() { 6 //---------------------------------------------------------------------------
7 // Toggle the "Search" popup in the sidebar
8 //---------------------------------------------------------------------------
9 function toggleSearch() {
6 $("#search-form").toggle(); 10 $("#search-form").toggle();
7 $("#search").toggleClass("current"); 11 $("#search").toggleClass("current");
12 $("#search").toggleClass("active-current");
8 $("#search-arrow").toggleClass("arrow-down"); 13 $("#search-arrow").toggleClass("arrow-down");
14 if ($("#search").hasClass("current")) {
15 $("#content").addClass("opacity03");
16 } else {
17 $("#content").removeClass("opacity03");
18 }
19 }
20
21 //---------------------------------------------------------------------------
22 // Toggle the "Save a Link" popup in the sidebar
23 //---------------------------------------------------------------------------
24 function toggleBagit() {
25 $("#bagit-form").toggle();
26 $("#bagit").toggleClass("current");
27 $("#bagit").toggleClass("active-current");
28 $("#bagit-arrow").toggleClass("arrow-down");
29 if ($("#bagit").hasClass("current")) {
30 $("#content").addClass("opacity03");
31 } else {
32 $("#content").removeClass("opacity03");
33 }
34 }
35
36 //---------------------------------------------------------------------------
37 // Close all #links popups in the sidebar
38 //---------------------------------------------------------------------------
39 function closePopups() {
40 $("#links .messages").hide();
41 $("#links > li > a").removeClass("active-current");
42 $("#links > li > a").removeClass("current");
43 $("[id$=-arrow]").removeClass("arrow-down");
44 $("#content").removeClass("opacity03");
9 } 45 }
10 46
11 $("#search").click(function(){ 47 $("#search").click(function(){
12 closeSearch(); 48 closePopups();
13 $('#searchfield').focus(); 49 toggleSearch();
50 $("#searchfield").focus();
51 });
52
53 $("#bagit").click(function(){
54 closePopups();
55 toggleBagit();
56 $("#plainurl").focus();
14 }); 57 });
15 58
16 $("#search-form-close").click(function(){ 59 $("#search-form-close").click(function(){
17 closeSearch(); 60 toggleSearch();
61 });
62
63 $("#bagit-form-close").click(function(){
64 toggleBagit();
18 }); 65 });
19 66
67 // $("#").click(function(){
68 // toggleSearch();
69 // });
70
20 71
21}); \ No newline at end of file 72});
diff --git a/themes/default/js/saveLink.js b/themes/default/js/saveLink.js
index 6dbce97e..a7acd84c 100755
--- a/themes/default/js/saveLink.js
+++ b/themes/default/js/saveLink.js
@@ -13,7 +13,7 @@ $.fn.ready(function() {
13 13
14 $bagit.toggleClass("active-current"); 14 $bagit.toggleClass("active-current");
15 15
16 //only if bagiti link is not presented on page 16 //only if bag-it link is not presented on page
17 if ( $bagit.length === 0 ) { 17 if ( $bagit.length === 0 ) {
18 if ( event !== 'undefined' && event ) { 18 if ( event !== 'undefined' && event ) {
19 $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200}); 19 $bagitForm.css( {position:"absolute", top:event.pageY, left:event.pageX-200});
@@ -23,6 +23,11 @@ $.fn.ready(function() {
23 } 23 }
24 } 24 }
25 25
26 if ($("#search-form").length != 0) {
27 $("#search").removeClass("current");
28 $("#search-arrow").removeClass("arrow-down");
29 $("#search-form").hide();
30 }
26 $bagitForm.toggle(); 31 $bagitForm.toggle();
27 $('#content').toggleClass("opacity03"); 32 $('#content').toggleClass("opacity03");
28 if (url !== 'undefined' && url) { 33 if (url !== 'undefined' && url) {
@@ -31,18 +36,21 @@ $.fn.ready(function() {
31 $('#plainurl').focus(); 36 $('#plainurl').focus();
32 } 37 }
33 38
34 39 //---------------------------------------------------------------------------
35 $bagit.click(function(){ 40 // These two functions are now taken care of in popupForm.js
36 $bagit.toggleClass("current"); 41 //---------------------------------------------------------------------------
37 $("#bagit-arrow").toggleClass("arrow-down"); 42
38 toggleSaveLinkForm(); 43 // $bagit.click(function(){
39 }); 44 // $bagit.toggleClass("current");
40 45 // $("#bagit-arrow").toggleClass("arrow-down");
41 $("#bagit-form-close").click(function(){ 46 // toggleSaveLinkForm();
42 $bagit.removeClass("current"); 47 // });
43 $("#bagit-arrow").removeClass("arrow-down"); 48
44 toggleSaveLinkForm(); 49 // $("#bagit-form-close").click(function(){
45 }); 50 // $bagit.removeClass("current");
51 // $("#bagit-arrow").removeClass("arrow-down");
52 // toggleSaveLinkForm();
53 // });
46 54
47 55
48 //send "bag it link" form request via ajax 56 //send "bag it link" form request via ajax