diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e992c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +vendor +composer.phar +db/poche.sqlite +output +phpdoc* \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9d6ba13 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: php + +php: + - 5.4 + +branches: + only: + - dev + +before_script: + - composer install + +notifications: + email: + - nicolas.loeuillet@gmail.com \ No newline at end of file diff --git a/CREDITS b/CREDITS index c917a01..a6dedce 100644 --- a/CREDITS +++ b/CREDITS @@ -1,16 +1,14 @@ poche is based on : -* ReadItYourself http://www.memiks.fr/readityourself/ -* PHP Readability http://www.keyvan.net/2010/08/php-readability/ +* PHP Readability https://bitbucket.org/fivefilters/php-readability * Encoding https://github.com/neitanod/forceutf8 * logo by Brightmix http://www.iconfinder.com/icondetails/43256/128/jeans_monotone_pocket_icon * icons http://icomoon.io * PHP Simple HTML DOM Parser (for Pocket import) http://simplehtmldom.sourceforge.net/ * Session https://github.com/tontof/kriss_feed/blob/master/src/class/Session.php +* Twig http://twig.sensiolabs.org +* Flash messages https://github.com/plasticbrain/PHP-Flash-Messages +* Pagination https://github.com/daveismyname/pagination poche is developed by Nicolas Lœuillet under the Do What the Fuck You Want to Public License -Contributors : -Nicolas Lœuillet aka nico_somb -Tom.C. aka tmos -PeaceCopathe -Gregoire_M \ No newline at end of file +Contributors : https://github.com/inthepoche/poche/graphs/contributors \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 0000000..cf02728 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,53 @@ +# Installing poche + +Get the [latest dev version](https://github.com/inthepoche/poche/archive/dev.zip) of poche on github. Unzip it and upload it on your server. + +your datas can be stored on sqlite, postgres or mysql databases. + +Edit /inc/poche/config.inc.php : + +```php +define ('STORAGE','sqlite'); # postgres, mysql, sqlite +define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite +define ('STORAGE_DB', 'poche'); # only for postgres & mysql +define ('STORAGE_SQLITE', './db/poche.sqlite'); +define ('STORAGE_USER', 'user'); # leave blank for sqlite +define ('STORAGE_PASSWORD', 'pass'); # leave blank for sqlite +``` + +poche must have write access on assets, cache and db directories. + +[PHP cURL](http://www.php.net/manual/en/book.curl.php) & [tidy_parse_string](http://www.php.net/manual/en/tidy.parsestring.php) are recommended. + +## twig +poche now uses twig for templating. You have to install twig. + +Install composer in your project : +```bash +curl -s http://getcomposer.org/installer | php +``` +Install via composer : +```bash +php composer.phar install +``` + +If you don't want to install twig by yourself, you can download [this file](http://static.inthepoche.com/files/poche-1.0-latest-with-twig.zip). + +## storage in sqlite +You have to install [sqlite for php](http://www.php.net/manual/en/book.sqlite.php) on your server. + +Copy /install/poche.sqlite in /db + +## storage in mysql +Execute /install/mysql.sql file in your database. + +## storage in postgres +Execute /install/postgres.sql file in your database. + +## upgrading from poche <= 0.3 +With poche <= 0.3, all your datas were stored in a sqlite file. The structure of this file changed. + +You have to execute http://yourpoche/install/update_sqlite_from_0_to_1.php before using this new version. + +## installing poche +you can go on your poche http://yourpoche. You have to fill the fields and that's all ! \ No newline at end of file diff --git a/README.md b/README.md index b44e7d3..5bea7ca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # poche -Abandon Pocket, Instapaper and other Readability service : adopt poche. It is the same, but it is open source. +Abandon Pocket, Instapaper and other Readability service : adopt poche. It is the same, but it is open source. Moreover, you can migrate from Pocket & Readability. ![poche](http://inthepoche.com/img/logo.png) @@ -11,24 +11,6 @@ To get news from poche, [follow us on twitter](http://twitter.com/getpoche) or [ [![flattr](http://api.flattr.com/button/flattr-badge-large.png)](http://flattr.com/thing/1265480/poche-a-read-it-later-open-source-system) -## Usage -You can easily add a "poched" page with the bookmarklet. - -poche save the entire content of a poched links : text and pictures are stored on your server. - -You can : -* read a page in a comfortable reading view -* archive a link -* put a link in favorite -* delete a link - -## Requirements & installation -You have to install [sqlite for php](http://www.php.net/manual/en/book.sqlite.php) on your server. - -Get the [latest version](https://github.com/inthepoche/poche) of poche on github. Unzip it and upload it on your server. poche must have write access on assets, cache and db directories. - -That's all, **poche works** ! - ## Security You **have** to protect your db/poche.sqlite file. Modify the virtual host of your website to add this condition : ```apache @@ -46,12 +28,14 @@ location ~ /(db) { } ``` -## Import from Pocket +## Usage +See the documentation on our website : [inthepoche.com](http://inthepoche.com). -If you want to import your Pocket datas, [export them here](https://getpocket.com/export). Put the HTML file in your poche directory, execute import.php file locally by following instructions. Be careful, the script can take a very long time. +## Travis +[![Build Status](https://api.travis-ci.org/inthepoche/poche.png?branch=dev)](http://travis-ci.org/#!/inthepoche/poche) ## License -Copyright © 2010-2013 Nicolas Lœuillet +Copyright © 2010-2013 Nicolas Lœuillet This work is free. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, -as published by Sam Hocevar. See the COPYING file for more details. +as published by Sam Hocevar. See the COPYING file for more details. \ No newline at end of file diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..ac3c0e9 --- /dev/null +++ b/TODO.md @@ -0,0 +1,11 @@ +# TODO + +pouvoir annuler la suppression +conventions codage ? phing ? vérifier error_log qui trainent +phpDocumentor +minifier css +revoir tous les css +barre fixe d'admin sur la page d'un billet ? +revoir export (export vers pocket &cie ? ) +raccourcis clavier +date d'ajout d'un lien \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..6c69e48 --- /dev/null +++ b/composer.json @@ -0,0 +1,7 @@ +{ + "require": { + "twig/twig": "1.*", + "twig/extensions": "1.0.*", + "umpirsky/twig-gettext-extractor": "1.1.*" + } +} \ No newline at end of file diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..9e17fca --- /dev/null +++ b/composer.lock @@ -0,0 +1,744 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file" + ], + "hash": "1c8badb14d91f4f3ef1cfae23252a2c4", + "packages": [ + { + "name": "symfony/event-dispatcher", + "version": "v2.3.2", + "target-dir": "Symfony/Component/EventDispatcher", + "source": { + "type": "git", + "url": "https://github.com/symfony/EventDispatcher.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "symfony/dependency-injection": "~2.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "http://symfony.com", + "time": "2013-05-13 14:36:40" + }, + { + "name": "symfony/filesystem", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Filesystem", + "source": { + "type": "git", + "url": "https://github.com/symfony/Filesystem.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Filesystem/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Filesystem\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "http://symfony.com", + "time": "2013-06-04 15:02:05" + }, + { + "name": "symfony/form", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Form", + "source": { + "type": "git", + "url": "https://github.com/symfony/Form.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Form/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/event-dispatcher": "~2.1", + "symfony/intl": "~2.3", + "symfony/options-resolver": "~2.1", + "symfony/property-access": "~2.2" + }, + "require-dev": { + "symfony/http-foundation": "~2.2", + "symfony/validator": "~2.2" + }, + "suggest": { + "symfony/http-foundation": "", + "symfony/validator": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Form\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Form Component", + "homepage": "http://symfony.com", + "time": "2013-07-01 12:24:43" + }, + { + "name": "symfony/icu", + "version": "v1.0.0", + "target-dir": "Symfony/Component/Icu", + "source": { + "type": "git", + "url": "https://github.com/symfony/Icu.git", + "reference": "v1.0.0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Icu/zipball/v1.0.0", + "reference": "v1.0.0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/intl": ">=2.3,<3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Symfony\\Component\\Icu\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Contains an excerpt of the ICU data and classes to load it.", + "homepage": "http://symfony.com", + "keywords": [ + "icu", + "intl" + ], + "time": "2013-06-03 18:32:07" + }, + { + "name": "symfony/intl", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Intl", + "source": { + "type": "git", + "url": "https://github.com/symfony/Intl.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Intl/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/icu": "~1.0-RC" + }, + "require-dev": { + "symfony/filesystem": ">=2.1" + }, + "suggest": { + "ext-intl": "to use the component with locales other than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Intl\\": "" + }, + "classmap": [ + "Symfony/Component/Intl/Resources/stubs" + ], + "files": [ + "Symfony/Component/Intl/Resources/stubs/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch", + "homepage": "http://wiedler.ch/igor/" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + } + ], + "description": "A PHP replacement layer for the C intl extension that includes additional data from the ICU library.", + "homepage": "http://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "time": "2013-07-08 13:00:35" + }, + { + "name": "symfony/options-resolver", + "version": "v2.3.2", + "target-dir": "Symfony/Component/OptionsResolver", + "source": { + "type": "git", + "url": "https://github.com/symfony/OptionsResolver.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/OptionsResolver/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\OptionsResolver\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony OptionsResolver Component", + "homepage": "http://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "time": "2013-04-11 06:50:46" + }, + { + "name": "symfony/property-access", + "version": "v2.3.2", + "target-dir": "Symfony/Component/PropertyAccess", + "source": { + "type": "git", + "url": "https://github.com/symfony/PropertyAccess.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/PropertyAccess/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\PropertyAccess\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony PropertyAccess Component", + "homepage": "http://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "time": "2013-07-01 12:24:43" + }, + { + "name": "symfony/routing", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Routing", + "source": { + "type": "git", + "url": "https://github.com/symfony/Routing.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Routing/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "doctrine/common": "~2.2", + "psr/log": "~1.0", + "symfony/config": "~2.2", + "symfony/yaml": "~2.0" + }, + "suggest": { + "doctrine/common": "", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Routing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "http://symfony.com", + "time": "2013-06-23 08:16:02" + }, + { + "name": "symfony/translation", + "version": "v2.3.2", + "target-dir": "Symfony/Component/Translation", + "source": { + "type": "git", + "url": "https://github.com/symfony/Translation.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Translation/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "symfony/config": "~2.0", + "symfony/yaml": "~2.2" + }, + "suggest": { + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "http://symfony.com", + "time": "2013-05-13 14:36:40" + }, + { + "name": "symfony/twig-bridge", + "version": "v2.3.2", + "target-dir": "Symfony/Bridge/Twig", + "source": { + "type": "git", + "url": "https://github.com/symfony/TwigBridge.git", + "reference": "v2.3.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/TwigBridge/zipball/v2.3.2", + "reference": "v2.3.2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "twig/twig": "~1.11" + }, + "require-dev": { + "symfony/form": "2.2.*", + "symfony/http-kernel": "~2.2", + "symfony/routing": "~2.2", + "symfony/security": "~2.0", + "symfony/templating": "~2.1", + "symfony/translation": "~2.2", + "symfony/yaml": "~2.0" + }, + "suggest": { + "symfony/form": "", + "symfony/http-kernel": "", + "symfony/routing": "", + "symfony/security": "", + "symfony/templating": "", + "symfony/translation": "", + "symfony/yaml": "" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Bridge\\Twig\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "Symfony Twig Bridge", + "homepage": "http://symfony.com", + "time": "2013-05-16 10:19:58" + }, + { + "name": "twig/extensions", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/fabpot/Twig-extensions.git", + "reference": "v1.0.0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/v1.0.0", + "reference": "v1.0.0", + "shasum": "" + }, + "require": { + "twig/twig": "1.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_Extensions_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Common additional features for Twig that do not directly belong in core", + "homepage": "https://github.com/fabpot/Twig-extensions", + "keywords": [ + "debug", + "i18n", + "text" + ], + "time": "2013-02-28 14:21:30" + }, + { + "name": "twig/twig", + "version": "v1.13.2", + "source": { + "type": "git", + "url": "https://github.com/fabpot/Twig.git", + "reference": "v1.13.2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fabpot/Twig/zipball/v1.13.2", + "reference": "v1.13.2", + "shasum": "" + }, + "require": { + "php": ">=5.2.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.13-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "http://twig.sensiolabs.org", + "keywords": [ + "templating" + ], + "time": "2013-08-03 15:35:31" + }, + { + "name": "umpirsky/twig-gettext-extractor", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/umpirsky/Twig-Gettext-Extractor.git", + "reference": "1.1.3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/umpirsky/Twig-Gettext-Extractor/zipball/1.1.3", + "reference": "1.1.3", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/filesystem": ">=2.0,<3.0", + "symfony/form": ">=2.0,<3.0", + "symfony/routing": ">=2.0,<3.0", + "symfony/translation": ">=2.0,<3.0", + "symfony/twig-bridge": ">=2.0,<3.0", + "twig/extensions": "1.0.*", + "twig/twig": ">=1.2.0,<2.0-dev" + }, + "require-dev": { + "symfony/config": "2.1.*" + }, + "bin": [ + "twig-gettext-extractor" + ], + "type": "application", + "autoload": { + "psr-0": { + "Twig\\Gettext": "." + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Саша Стаменковић", + "email": "umpirsky@gmail.com", + "homepage": "http://umpirsky.com" + } + ], + "description": "The Twig Gettext Extractor is Poedit friendly tool which extracts translations from twig templates.", + "time": "2013-02-14 16:41:48" + } + ], + "packages-dev": [ + + ], + "aliases": [ + + ], + "minimum-stability": "stable", + "stability-flags": [ + + ], + "platform": [ + + ], + "platform-dev": [ + + ] +} diff --git a/css/style-dark.css b/css/style-dark.css deleted file mode 100644 index 813c291..0000000 --- a/css/style-dark.css +++ /dev/null @@ -1,90 +0,0 @@ -/*** GENERAL ***/ -body { - color: #fff; - background-color: #0d0d0d; -} - -a, a:hover, a:visited { - color: #fff; -} - -#main ul#links li a.current { - background-color: #000; - color: #fff; -} - -#links a:hover, .backhome a:hover{ - background-color: #fff; - color: #000; -} - -input[type=submit].delete { - background : url('../img/dark/remove.png') no-repeat center center; - color : transparent; -} - -#main .entrie { - color: #fff; - background-color: #000; - border: 1px solid #fff; -} - -#main .entrie h2 a:hover { - color: #29B1E3; -} - -a.fav span { - background: url('../img/dark/star-on.png') no-repeat; -} - -a.fav span:hover { - background: url('../img/dark/star-off.png') no-repeat; -} - -a.fav-off span { - background: url('../img/dark/star-off.png') no-repeat; -} - -a.fav-off span:hover { - background: url('../img/dark/star-on.png') no-repeat; -} - -a.archive span { - background: url('../img/dark/checkmark-on.png') no-repeat; -} - -a.archive span:hover { - background: url('../img/dark/checkmark-off.png') no-repeat; -} - -a.archive-off span { - background: url('../img/dark/checkmark-off.png') no-repeat; -} - -a.archive-off span:hover { - background: url('../img/dark/checkmark-on.png') no-repeat; -} - -/*** ***/ -/*** ARTICLE PAGE ***/ - -body.article { - color: #fff; - background-color: #0d0d0d; -} - -#article header { - border-bottom: 1px solid #222222; -} - -#article article { - border-bottom: 1px solid #222222; -} - -.vieworiginal a { - color: #888888; -} - -.entrie { - background-color: #fff; -} diff --git a/css/style-light.css b/css/style-light.css deleted file mode 100644 index cd2384c..0000000 --- a/css/style-light.css +++ /dev/null @@ -1,100 +0,0 @@ -/*** GENERAL ***/ -body { - color: #222222; - background-color: #F1F1F1; -} - -a, a:hover, a:visited { - color: #000; -} - -.bouton { - background-color: #000; - color: #fff; - border: none; -} -.bouton:hover { - background-color: #222222; - color: #F1F1F1; -} - -#main ul#links li a.current { - background-color: #000; - color: #fff; -} - -#links a:hover, .backhome a:hover{ - background-color: #040707; - color: #F1F1F1; -} - -input[type=submit].delete { - background : url('../img/light/remove.png') no-repeat center center; - color : transparent; -} - -#main .entrie { - color: #2e2e2e; - background-color: #ffffff; - border: 1px solid #000; -} - -#main .entrie h2 a:hover { - color: #F5BE00; -} - -a.fav span { - background: url('../img/light/star-on.png') no-repeat; -} - -a.fav span:hover { - background: url('../img/light/star-off.png') no-repeat; -} - -a.fav-off span { - background: url('../img/light/star-off.png') no-repeat; -} - -a.fav-off span:hover { - background: url('../img/light/star-on.png') no-repeat; -} - -a.archive span { - background: url('../img/light/checkmark-on.png') no-repeat; -} - -a.archive span:hover { - background: url('../img/light/checkmark-off.png') no-repeat; -} - -a.archive-off span { - background: url('../img/light/checkmark-off.png') no-repeat; -} - -a.archive-off span:hover { - background: url('../img/light/checkmark-on.png') no-repeat; -} - -/*** ***/ -/*** ARTICLE PAGE ***/ - -body.article { - color: #222222; - background-color: #F1F1F1; -} - -#article header { - border-bottom: 1px solid #222222; -} - -#article article { - border-bottom: 1px solid #222222; -} - -.vieworiginal a { - color: #888888; -} - -.entrie { - background-color: #fff; -} diff --git a/css/style.css b/css/style.css deleted file mode 100644 index 9fadfa9..0000000 --- a/css/style.css +++ /dev/null @@ -1,215 +0,0 @@ -/*** GENERAL ***/ -body { - font: 20px/1.3em Palatino,Georgia,serif; - margin: 10px; -} - -header { - text-align: center; -} - -.bouton { - border-radius: 2px; -} - -#main ul#links { - padding: 0; - list-style-type: none; - text-align: center; -} - -#main ul#links li { - display: inline; -} - -#main ul#links li a.current { - -webkit-border-radius: 2px; - border-radius: 2px; -} - -#main ul#sort { - padding: 0; - list-style-type: none; - text-align: center; -} - -#main ul#sort li { - display: inline; - font-size: 0.9em; -} - -#main ul#sort img:hover { - cursor: pointer; -} - -#main, #article { - margin: 0 auto; -} - -#links a, .backhome a{ - text-decoration: none; - padding: 5px 10px; -} -#links a:hover, .backhome a:hover{ - -webkit-border-radius: 2px; - border-radius: 2px; -} - -footer { - text-align: right; -} - -/*** ***/ -/*** LINKS DISPLAY ***/ - -#main a.tool { - text-decoration: none; - cursor: pointer; -} - -input[type=submit].delete { - width : 16px; - height :16px; - border : none; - cursor: pointer; - font-size : 0; -} - -#main #content { - margin-top: 20px; -} - -#main .entrie { - padding: 15px; - min-height: 8em; - border: 1px solid; -} - -#main .entrie h2 a { - text-decoration: none; -} - -.tools { - text-align: right; -} - -.tools ul { - padding: 0; margin: 0; - list-style-type: none; -} - -.tools ul li { - line-height: 20px; -} - -.tools a.tool { - cursor: pointer; -} - -#article .tools { - position: relative; - display: inline; - top: 0px; - right: 0px; - width: 100%; - text-align: left; -} - -#article .tools ul li{ - display: inline; -} - -#main .entrie .tools a.tool span, #article .tools a.tool span { - display: inline-block; - width: 16px; - height: 16px; -} - - -/*** ***/ -/*** ARTICLE PAGE ***/ - -body.article { - font: 20px/1.3em Palatino,Georgia,serif; -} - -#article header { - text-align: left; -} - -#article header a { - text-decoration: none; -} - -.vieworiginal a { - text-decoration: none; -} - -.backhome { - display: inline; -} - -/*** ***/ - -#main -{ - max-width: 60em; /* 960 px */ - margin: 0 auto; -} -#content -{ - width: 103.125%; /* 990px */ - overflow: hidden; - margin-left: -1.562%; /* 15px */ - margin-bottom: -1.875em; /* 30px */ -} - -.entrie -{ - width: 30.303%; /* 300px */ - background-color: #fff; - float: left; - margin: 0 1.515% 1.875em; /* 15px 30px */ -} - -@media only screen and ( max-width: 40em ) /* 640px */ -{ - .entrie - { - width: 46.876%; /* 305px */ - margin-bottom: 0.938em; /* 15px */ - } -} - -@media only screen and ( max-width: 20em ) /* 320px */ -{ - #content - { - width: 100%; - margin-left: 0; - } - - .entrie - { - width: 100%; - margin-left: 0; - margin-right: 0; - } -} - -/*** ***/ -/*** MESSAGES ***/ - -.messages { width: 100%; -moz-border-radius: 4px; border-radius: 4px; display: block; padding: 10px 0; margin: 10px auto 10px; clear: both; } -.messages a.closeMessage { margin: -14px -8px 0 0; display:none; width: 16px; height: 16px; float: right; background: url(../img/messages/close.png) no-repeat; } -/*.messages:hover a.closeMessage { visibility:visible; }*/ -.messages p { margin: 3px 0 3px 10px !important; padding: 0 10px 0 23px !important; font-size: 14px; line-height: 16px; } -.messages.error { border: 1px solid #C42608; color: #c00 !important; background: #FFF0EF; } -.messages.error p { background: url(../img/messages/cross.png ) no-repeat 0px 50%; color:#c00 !important; } -.messages.success {background: #E0FBCC; border: 1px solid #6DC70C; } -.messages.success p { background: url(../img/messages/tick.png) no-repeat 0px 50%; color: #2B6301 !important; } -.messages.warning { background: #FFFCD3; border: 1px solid #EBCD41; color: #000; } -.messages.warning p { background: url(../img/messages/warning.png ) no-repeat 0px 50%; color: #5F4E01; } -.messages.information, .messages.info { background: #DFEBFB; border: 1px solid #82AEE7; } -.messages.information p, .messages.info p { background: url(../img/messages/help.png ) no-repeat 0px 50%; color: #064393; } -.messages.information a { text-decoration: underline; } diff --git a/img/dark/checkmark-off.png b/img/dark/checkmark-off.png deleted file mode 100644 index efc3439..0000000 Binary files a/img/dark/checkmark-off.png and /dev/null differ diff --git a/img/dark/checkmark-on.png b/img/dark/checkmark-on.png deleted file mode 100644 index 24391c2..0000000 Binary files a/img/dark/checkmark-on.png and /dev/null differ diff --git a/img/dark/down.png b/img/dark/down.png deleted file mode 100644 index 41ea960..0000000 Binary files a/img/dark/down.png and /dev/null differ diff --git a/img/dark/logo.png b/img/dark/logo.png deleted file mode 100644 index 9fba064..0000000 Binary files a/img/dark/logo.png and /dev/null differ diff --git a/img/dark/remove.png b/img/dark/remove.png deleted file mode 100644 index 41786fd..0000000 Binary files a/img/dark/remove.png and /dev/null differ diff --git a/img/dark/star-off.png b/img/dark/star-off.png deleted file mode 100644 index 90651b5..0000000 Binary files a/img/dark/star-off.png and /dev/null differ diff --git a/img/dark/star-on.png b/img/dark/star-on.png deleted file mode 100644 index 7fc1447..0000000 Binary files a/img/dark/star-on.png and /dev/null differ diff --git a/img/dark/up.png b/img/dark/up.png deleted file mode 100644 index 1679e18..0000000 Binary files a/img/dark/up.png and /dev/null differ diff --git a/img/logo.png b/img/logo.png deleted file mode 100644 index f917857..0000000 Binary files a/img/logo.png and /dev/null differ diff --git a/import.php b/import.php deleted file mode 100644 index 72e3eac..0000000 --- a/import.php +++ /dev/null @@ -1,50 +0,0 @@ - - * @copyright 2013 - * @license http://www.wtfpl.net/ see COPYING file - */ - -set_time_limit(0); - -include dirname(__FILE__).'/inc/config.php'; -include dirname(__FILE__).'/inc/simple_html_dom.php'; - -if (!isset($_GET['start'])) { - echo 'Please execute the import script locally, it can take a very long time.
Bye bye Pocket, let\'s go !'; -} -else { - $html = new simple_html_dom(); - $html->load_file('ril_export.html'); - - $read = 0; - $errors = array(); - foreach($html->find('ul') as $ul) - { - foreach($ul->find('li') as $li) - { - $a = $li->find('a'); - $url = $a[0]->href; - - - action_to_do('add', $url); - if ($read == '1') { - $last_id = $db->getHandle()->lastInsertId(); - $sql_update = "UPDATE entries SET is_read=~is_read WHERE id=?"; - $params_update = array($last_id); - $query_update = $db->getHandle()->prepare($sql_update); - $query_update->execute($params_update); - } - } - # Pocket génère un fichier HTML avec deux