Commit graph

230 commits

Author SHA1 Message Date
Jeremy Benoist
42f3bb2c63
Use Locale instead of Language 2017-06-09 11:28:04 +02:00
Jeremy Benoist
be54dfe4e6
CS 2017-06-08 21:56:20 +02:00
Jeremy Benoist
0d349ea670
Validate language & preview picture fields
Instead of saving the value of each field right into the content without any validation, it seems better to validate them.
This might sounds obvious now we say that.
2017-06-08 21:51:46 +02:00
Jérémy Benoist
c0d756f67d Merge pull request #3181 from wallabag/api-content-patch
Add ability to patch an entry with more fields
2017-06-07 15:40:59 +02:00
Jeremy Benoist
577c0b6dd8
Use an alternative way to detect image
When parsing content to retrieve images to save locally, we only check for the content-type of the image response.
In some case, that value is empty.
Now we’re also checking for the first few bytes of the content as an alternative to detect if it’s an image wallabag can handle.
We might get higher image supports using that alternative method.
2017-06-05 22:54:02 +02:00
Jeremy Benoist
645291e8fe
Add ability to patch an entry with more fields
Like when we create an entry, we can now patch an entry with new fields:
- content
- language
- preview_picture
- published_at
- authors
2017-06-02 20:52:49 +02:00
Jérémy Benoist
a687c8d915 Merge pull request #2708 from jcharaoui/import-disablecontentupdate
Import disableContentUpdate
2017-06-02 11:26:37 +02:00
Jeremy Benoist
9bf7752f73
CS 2017-06-01 22:58:38 +02:00
Jeremy Benoist
fcad69a427
Replace images with &
Images with `&` in the path weren’t well replaced because they might be with `&` in the html instead.

Replacing `&` with `&` fix the problem.
2017-06-01 22:50:33 +02:00
Jeremy Benoist
ec97072152
No need to catch that Exception 2017-06-01 11:45:02 +02:00
Jeremy Benoist
6acadf8e98
Rewrote code & fix tests 2017-06-01 11:31:45 +02:00
Jeremy Benoist
843182c7cf
CS 2017-06-01 09:52:09 +02:00
Jeremy Benoist
d5c2cc54b5
Fix tests 2017-06-01 09:49:15 +02:00
Jerome Charaoui
d0e9b3d640
Add disableContentUpdate import option
This commit also decouples the "import" and "update" functions inside
ContentProxy. If a content array is available, it must be passed to the
new importEntry method.
2017-06-01 09:48:14 +02:00
Jerome Charaoui
7aba665e48
Avoid returning objects passed by reference.
Objects are always passed by reference, so it doesn't make sense to
return an object which is passed by reference as it will always be the
same object. This change makes the code a bit more readable.
2017-06-01 09:43:01 +02:00
Jeremy Benoist
53da8ad844
Page parameter was never used in the function
It could have been used if we set the current page inside PreparePagerForEntries.
But we did that in each controller because we can have an OutOfRangeCurrentPageException
2017-06-01 09:29:18 +02:00
Jeremy Benoist
f0378b4d7c
Forced date can now be a timestamp too
Add adding more tests for forced content
2017-05-31 14:00:15 +02:00
Jeremy Benoist
9e349f08a6
Improve docs 2017-05-31 14:00:15 +02:00
Jeremy Benoist
0d6cfb884c
Remove htmlawed and use graby instead
Instead of using htmlawed (which is already used in graby) use graby directly (which require some refacto on graby side).
Still needs some tests.
2017-05-31 14:00:15 +02:00
Jeremy Benoist
74a75f7d43
Use graby ContentExtractor to clean html
It might be better to re-use some graby functionalities to clean html instead of building a new system.
2017-05-31 14:00:15 +02:00
Jeremy Benoist
e668a8124c
Allow other fields to be send using API
Entry API can now have these new fields:
- content
- language
- preview_picture
- published_at

Re-use the ContentProxy to be able to do the same using the web UI (in the future).
htmLawed is used to clean stuff from content, I hope it’ll be enough to avoid security breach.

Lower content validation when we want to update an entry with content already defined. Before, language & content_type were required. If there weren’t provided, we re-fetched the content using graby. I think these fields aren’t required for an entry to be created. So I removed them.
Which means some import from the v1 export won’t be re-fetched since they provide content, url & title.

Also, remove liberation link from Readability import to avoid overlaping import (from wallabag v1, which had the same link)
2017-05-31 13:59:45 +02:00
Nicolas Lœuillet
d61fd8be4f Merge pull request #3138 from Kdecherf/2835-tags
Ignore ActionMarkAsRead when removing tag from entry
2017-05-31 11:48:42 +02:00
Kevin Decherf
5dbf3f2326 TagController: ignore ActionMarkAsRead when removing tag from entry
Fixes #2835

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-05-31 00:36:46 +02:00
Jeremy Benoist
5fe65baee5
Fix some Scrutinizer issues 2017-05-30 11:39:15 +02:00
Thomas Citharel
5d3deafd3e CS
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-05-28 01:16:01 +02:00
Thomas Citharel
6bc6fb1f60 Move Tags assigner to a separate file
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-05-27 22:08:14 +02:00
Nicolas Lœuillet
0a033767db
Added logger when we match Tagging rules 2017-05-12 13:13:19 +02:00
Nicolas Lœuillet
dda6a6addc
Added headers field in Entry 2017-05-11 14:18:21 +02:00
Jeremy Benoist
94b232bbb8
Skip auth when no credentials are found
If we can’t find a credential for the current host, even if it required login, we won’t add them and website will be fetched without any login.
2017-05-09 22:53:42 +02:00
Jeremy Benoist
d047530dc0
CS 2017-05-09 11:17:09 +02:00
Bertrand Dunogier
5b914b0422 Improved Guzzle subscribers extensibility
Allows 3rd parties to register new guzzle subscribers by adding extra calls to the http_client_factory service.
2017-05-04 21:44:34 +02:00
Nicolas Lœuillet
64f1d8f77a Merge pull request #3024 from wallabag/store-date
Added publication date and author
2017-04-18 13:12:28 +02:00
Nicolas Lœuillet
7b0b3622ab Added author of article 2017-04-09 15:24:51 +02:00
Nicolas Lœuillet
5e9009ce86 Added publication date 2017-04-05 22:22:52 +02:00
Martin Trigaux
1b70990b01 Add export notice at the end of the epub
The text "Produced by wallabag with PHPePub" is the first page of any epub.

On ebooks reader, it is common (e.g. kobo) to use the first page as the cover of
unread books, which makes it more difficult to differentiate the books.

Move the Notices chapter at the end of the book.
2017-04-05 09:24:48 +02:00
Kevin Decherf
7a3260ae9e Save alpha channel when downloading PNG images
Fixes #2805

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2017-03-29 21:58:29 +02:00
Jeremy Benoist
7bf6b555f5
Log restricted access value
It might help to figure out if we have enabled it or not
2017-02-13 14:20:03 +01:00
Thomas Citharel
8303b037fb add cli export
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2017-01-22 12:51:14 +01:00
Jeremy Benoist
3d71d40349
Avoid false preview image
If the website doesn't provide an og_image, the value will be false and so it'll be saved like that in the database.
We prefer to leave it as null instead of false.
2017-01-10 17:42:36 +01:00
Nicolas Lœuillet
e044d27f82
Replaced chmod for download pictures feature 2016-12-08 13:04:15 +01:00
Jeremy Benoist
106bdbcd0a Add some comments 2016-12-04 11:27:49 +01:00
Jerome Charaoui
e858018fdd Prevent undefined index when import fetching fails 2016-12-02 22:45:04 -05:00
Jerome Charaoui
36e6ef52a1 Imported entries which fail to fetch get standard error body 2016-12-02 22:42:36 -05:00
Jerome Charaoui
29dca43236 Retain imported content if fetching fails, fixes #2658 2016-12-02 22:41:35 -05:00
Nicolas Lœuillet
d51093a7d9
Added documentation and missing translations 2016-11-22 17:32:24 +01:00
Nicolas Lœuillet
d64bf7953b
Added internal setting to enable/disable articles with paywall 2016-11-22 14:56:53 +01:00
Nicolas Lœuillet
40f3ea57fb
Cleared CookieJar to avoid websites who use cookies for analytics 2016-11-22 14:25:51 +01:00
Bertrand Dunogier
7aab0ecf2f Added authentication for restricted access articles
Fix #438. Thank you so much @bdunogier
2016-11-22 14:01:46 +01:00
Jeremy Benoist
68003139e1
Merge remote-tracking branch 'origin/master' into 2.2
# Conflicts:
#	.editorconfig
#	docs/de/index.rst
#	docs/de/user/import.rst
#	docs/en/index.rst
#	docs/en/user/configuration.rst
#	docs/en/user/import.rst
#	docs/fr/index.rst
#	docs/fr/user/import.rst
#	src/Wallabag/CoreBundle/Command/InstallCommand.php
#	src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
#	src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
#	web/bundles/wallabagcore/themes/baggy/css/style.min.css
#	web/bundles/wallabagcore/themes/baggy/js/baggy.min.js
#	web/bundles/wallabagcore/themes/material/css/style.min.css
#	web/bundles/wallabagcore/themes/material/js/material.min.js
2016-11-19 15:30:49 +01:00
Nicolas Lœuillet
10b3509757
Added http_status in Entry entity 2016-11-18 15:09:21 +01:00
Nicolas Lœuillet
54fd55fda1
Tried to fix tests 2016-11-16 23:07:34 +01:00
Nicolas Lœuillet
65cd8a4a9a
Added tests 2016-11-16 23:07:34 +01:00
Nicolas Lœuillet
f052f1fd57
Added constants for redirection values 2016-11-16 23:07:34 +01:00
Nicolas Lœuillet
a42f38d9fb
Added a configuration to define the redirection after archiving an entry
Fix #496
2016-11-16 23:07:34 +01:00
Jeremy Benoist
8d7b4f0eff
Display a bigger image in case of image content
If the content is only an image, we can display a bigger preview image because we won’t have text to display.

Also, split different card view to avoid too much complexity in the entries.html.twig
2016-11-08 22:17:46 +01:00
Nicolas Lœuillet
2fe2e411a7
Replaced TokenStorage with TokenStorageInterface 2016-11-07 10:34:49 +01:00
Jeremy Benoist
001cc7168a
Cleanup 2016-11-03 18:01:25 +01:00
Jeremy Benoist
5a619812ca
Merge remote-tracking branch 'origin/master' into 2.2 2016-11-03 16:41:29 +01:00
Jeremy Benoist
e0597476d1
Use custom event instead of Doctrine ones
This give us ability to use Entry ID to determine where to store images and it’s then more easy to remove them when we remove the entry.
2016-11-01 14:49:02 +01:00
Jeremy Benoist
4b3c983ab8
Inject parameter instead of service
We are injecting CraueConfig service when we only need to retrieve one or two values from it.
Instead I discovered we can directly inject a value from a service in the service definition!
2016-10-30 20:27:41 +01:00
Jeremy Benoist
41ada277f0
Add instance url to the downloaded images 2016-10-30 19:50:00 +01:00
Jeremy Benoist
48656e0eaa
Fixing tests 2016-10-30 11:27:09 +01:00
Jeremy Benoist
7f55941856
Use doctrine event to download images 2016-10-30 10:48:29 +01:00
Jeremy Benoist
45fd7e09d7
Cleanup 2016-10-30 09:58:53 +01:00
Jeremy Benoist
156bf62758
CS 2016-10-29 16:25:45 +02:00
Thomas Citharel
94654765cc
Working 2016-10-29 16:25:45 +02:00
Thomas Citharel
419214d722
Download pictures successfully
Needs to rewrite them properly (get base url)
2016-10-29 16:25:45 +02:00
Thomas Citharel
4dface6670
first draft (from v1) 2016-10-29 16:25:45 +02:00
Jeremy Benoist
b4fcd60e7f
Avoid tag duplication when tagging all articles
Mostly when the tag doesn’t yet exist.
It was created each time it matche the rule… glups.
2016-10-09 18:55:21 +02:00
Jeremy Benoist
74e1f7433a
Fix tag test 2016-10-07 07:43:48 +02:00
Jeremy Benoist
b0458874c8
Fix relations export for Entry
Tags & Annotations weren’t really well exported.
This is now fixed (+ tests)
2016-10-07 07:43:19 +02:00
Jeremy Benoist
77557d289b
Merge remote-tracking branch 'origin/master' into 2.1 2016-10-02 17:37:41 +02:00
Paulino Michelazzo
ffcd91ec6c Remove error message when creating ePub versions
Trying to create a ePub version, the first page shows a message of a
“missing >”. This change solve this problem (and, for sure, in any
download version that’s use HTML).
2016-10-02 13:16:12 +02:00
Jeremy Benoist
82fc3290d4
CS 2016-09-25 12:03:49 +02:00
Jeremy Benoist
401135852c
Use scheduled entity insertions to avoid tag duplicate
Using `getScheduledEntityInsertions()` we can retrieve not yet flushed but already persisted entities and then avoid tags duplication on import.
2016-09-25 12:03:49 +02:00
Jeremy Benoist
d7b4b2c72c
Merge remote-tracking branch 'origin/master' into 2.1 2016-09-19 11:23:07 +02:00
Étienne Gilli
45d94a98f7 Fix issue #2296: epub export with + in the title. 2016-09-18 14:43:54 +02:00
Jeremy Benoist
9401696fe4
Export dates from entries 2016-09-08 16:49:21 +02:00
Nicolas Lœuillet
891456ba9a
Links on each tag in Tags view 2016-08-23 07:24:42 +02:00
Jeremy Benoist
0cecfa2536 CS 2016-08-17 14:36:20 +02:00
Nicolas Lœuillet
4086e0782e
Fix tests 2016-04-15 09:58:29 +02:00
Nicolas Lœuillet
af497a641c
Redirect to homepage if referer is null
Fix #1924
2016-04-15 07:58:01 +02:00
Jeremy Benoist
4094ea4771 Convert array + phpDoc
Thanks for https://github.com/thomasbachem/php-short-array-syntax-converter
2016-04-12 12:25:29 +02:00
Jeremy Benoist
0e49487bb0 Remove some complexicity in InstallCommand 2016-03-28 14:18:50 +02:00
Jeremy Benoist
8f336fda64 Tags were not imported in wallabag v2 import
Also, simplify exportAs matching format
2016-03-27 23:58:37 +02:00
Jeremy Benoist
4d0ec0e721 Fix some Scrutinizer issues 2016-03-27 20:54:57 +02:00
Jeremy Benoist
c2656f96d4 Move assignTagsToEntry in ContentProxy helper 2016-02-19 14:22:20 +01:00
Nicolas Lœuillet
f898102c85 Exported entries were added twice in export file 2016-02-05 13:35:59 +01:00
Jeremy Benoist
d3f31ec485 CS 2016-02-04 20:31:26 +01:00
Thomas Citharel
f161122412 put the equals bar outside the loop 2016-02-04 20:31:26 +01:00
Thomas Citharel
3b07d01937 remove old dependancy 2016-02-04 20:31:26 +01:00
Thomas Citharel
365a38984e better display for txt 2016-02-04 20:31:26 +01:00
Thomas Citharel
6c08fb68b8 add txt export 2016-02-04 20:30:51 +01:00
Jeremy Benoist
63e40f2d7c Add CraueConfig for internal settings 2016-01-31 14:48:26 +01:00
Jeremy Benoist
619cc45359 Symfony Upgrade Fixer FTW
symfony-upgrade-fixer fix src/Wallabag/
2016-01-15 09:35:38 +01:00
Jeremy Benoist
fc73222723 Remove user reference in tag
Fix #1543
2015-12-29 14:50:52 +01:00
Jeremy Benoist
e9fa8c40aa Add test on tagAllForUser
And fix multiplication of entries returned by `tagAllForUser`.
2015-12-28 13:20:48 +01:00
Nicolas Lœuillet
347fa6beb0 php cs 2015-12-08 09:20:03 +01:00
Kévin Gomez
625acf3352 Add a command to automatically tag all entries for a user 2015-11-11 16:27:19 +01:00
Kévin Gomez
1c9cd2a7f0 Errors in the automatic tagging do not prevent the entry from being added 2015-11-11 16:23:49 +01:00
Kévin Gomez
ac9fec610a Add TaggingRule entity 2015-11-11 16:23:49 +01:00
Kévin Gomez
c3510620ad PoC of rule-based tagging 2015-11-11 16:23:49 +01:00
Jeremy Benoist
cceca9ea1d Fix route parameters
Improve export tests
Improve CSV export
2015-11-09 16:32:48 +01:00
Thomas Citharel
268e9e7277 use JMS Serializer 2015-11-09 16:32:48 +01:00
Thomas Citharel
5b7da07620 use the groups annotation instead of setIgnoredAttributes 2015-11-09 16:32:48 +01:00
Thomas Citharel
8ac95cbfcc improved function 2015-11-09 16:32:48 +01:00
Thomas Citharel
b3cc1a14e7 add json & xml 2015-11-09 16:32:48 +01:00
Jeremy Benoist
add597bad9 Rework on export
- all export now return a `HttpFoundation\Response`
- return a 404 on unsupported format
- add tests
2015-11-09 16:32:48 +01:00
Thomas Citharel
03690d1387 Start work on export
For now:
 - ebook
 - mobi
 - pdf
 - csv
2015-11-09 16:32:48 +01:00
Jeremy Benoist
164d260c49 CS
Also force SYMFONY_DEPRECATIONS_HELPER for travis
2015-11-07 00:27:41 +01:00
Jeremy Benoist
18f8f32f70 Fix security.context deprecation 2015-11-07 00:17:37 +01:00
Nicolas Lœuillet
ce782c84b8 fix bug on detect active theme 2015-10-06 20:51:40 +02:00
Nicolas Lœuillet
1210dae105 remove old implementation for login/register/recover 2015-10-03 13:31:48 +02:00
Jeremy Benoist
da3d4998c0 Move readingTime & domainName in ContentProxy
So, everything is centralized in one place when we save a new entry.
2015-09-28 19:35:33 +02:00
Jeremy Benoist
98f0929f16 Handle entry in language
Fix #1333
2015-09-22 20:52:13 +02:00
Jeremy Benoist
f1e29e69cb CS 2015-09-10 22:00:53 +02:00
Jeremy Benoist
558d9aabab Move fetching content in a separate class 2015-09-10 21:57:25 +02:00
Jeremy Benoist
fad316151c Integrate graby 2015-08-24 12:27:17 +02:00
Jeremy Benoist
6eebd8c909 Remove unsed things 2015-08-20 20:39:26 +02:00
Nicolas Lœuillet
2686457448 store estimated reading time / filters on reading time 2015-08-12 09:01:29 +02:00
Jeremy Benoist
4346a86068 CS 2015-05-30 13:59:33 +02:00
Jeremy
3e30422cda Only one pattern for LiipTheme
Others patterns aren't required (but I think it's still important to have them around)
2015-03-01 20:25:43 +01:00
Jeremy
495aecfe74 Cleanup & simplify theme 2015-03-01 10:49:17 +01:00
Jeremy
32da2a70ef Add LiipThemeBundle
Re-defined the config / user relation to be OneToOne bidirectionnal.
ConfigType is now a service so I can inject the list of available themes that are also used by LiipThemeBundle

Force sqlite for test
In case of people use a different driver in parameter.yml (yes I do :))
2015-03-01 10:49:16 +01:00
Nicolas Lœuillet
be463487cc rename Entries to Entry 2015-02-06 07:45:32 +01:00
Jeremy
7df80cb32c CS 2015-01-31 19:12:49 +01:00
Nicolas Lœuillet
c3235553dd first implementation of security 2015-01-31 15:14:10 +01:00
Nicolas Lœuillet
19f2f11ee8 fix themes symlinks 2015-01-28 13:58:12 +01:00
Nicolas Lœuillet
b9ec99e25b replace legacy calls with new one 2015-01-27 13:08:02 +01:00
Nicolas Lœuillet
6b767d1cc0 refactoring for fetching content 2015-01-26 22:15:19 +01:00