Commit graph

1918 commits

Author SHA1 Message Date
Olivier Mehani
d5744bf0df
Delegate findByUrlAndUserId to findByHashedUrlAndUserId
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:46 +02:00
Olivier Mehani
31e276fc16
EntryRestController::getEntriesExistsAction: always find by hashed url
Simplify the logic from #3158 by hashing all the urls from the request,
and only doing a search by hash. This allows to get performance benefits
from the new indexed hash column even when using older clients that do
not hash the URL in the request.

Fixes: #3158, #3919

Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:45 +02:00
Jeremy Benoist
9ca670c801
Fix Instapaper import date 2019-05-24 14:37:54 +02:00
nicofrand
423efadefc Set first picture as preview picture 2019-05-21 20:38:22 +02:00
Jérémy Benoist
a2b5d67560
Merge pull request #3960 from wallabag/api-entries-2817
api/entries: add parameter detail to exclude or include content in response
2019-05-21 11:18:19 +02:00
Kevin Decherf
feb239ea10 mysql: change collation of tag table
utf8mb4_unicode_ci considers that 'caché' is equal to 'cache' which
can lead to attaching incorrect tags to entries. This issue is due to
some unicode normalization done by MySQL.

utf8mb4_bin makes no unicode normalization, letting wallabag to consider
'cache' and 'caché' as two different tags.

We change the collation of the whole table as Doctrine does not support
setting a collation on a column for a specific platform (it tries to
apply utf8mb4_bin even for pgsql and sqlite).

Fixes #3302

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-19 23:37:49 +02:00
Kevin Decherf
2c290747cb api/entries: add parameter detail to exclude or include content in response
detail=metadata will nullify the content field of entries in order to
make smaller responses.

detail=full keeps the former behavior, it sends the content of entries.
It's the default, for backward compatibility.

Fixes #2817

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-18 18:11:08 +02:00
Jeremy Benoist
9f0957b831
Merge remote-tracking branch 'origin/master' into 2.4 2019-05-15 14:38:07 +02:00
Jérémy Benoist
a73cb8a689
Merge pull request #3922 from burkemw3/patch-5
Remove preview picture from share view page for #1875
2019-05-13 06:40:16 +02:00
Matt Burke
19822ecb31 Remove preview picture from share view page for #1875
Essentially, same as commit 038fccd for single entry views. From that commit:
> Showing the preview picture usually leads to showing a duplicate
> image, and frequently leads to showing duplicate images directly
> adjacent to each other.
2019-05-12 12:32:22 -04:00
Kevin Decherf
2dbb5b2307 Enable no-referrer on img tags, enable strict-origin-when-cross-origin by default
Fixes #3889

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-10 23:07:26 +02:00
Jeremy Benoist
637f0df976
Cascade delete on oauth2 table when deleting a user 2019-05-10 20:36:45 +02:00
Jeremy Benoist
844fd9fafc
Fallback to default solution if Imagick fails 2019-05-10 16:52:01 +02:00
Jeremy Benoist
9306c2a368
Use Imagick to keep GIF animation
If Imagick is available, GIF will be saved using it to keep animation.
Otherwise the previous method will be used and the animation won't be kept.
2019-05-10 15:33:36 +02:00
Kevin Decherf
4b5b228650 material: add metadata to list view
Add reading time and creation date to rows of list view.
Refactor styles using a sass mixin.

Fixes #3838

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-05-01 15:47:48 +02:00
Jeremy Benoist
f277bc042c
Fix tests & cs & migration 2019-04-26 12:53:21 +02:00
Thomas Citharel
531c8d0a5c
Changed RSS to Atom feed and improve paging 2019-04-25 13:46:31 +02:00
Jeremy Benoist
35359bd3c6
Adding more tests to cover different scenario 2019-04-24 15:28:15 +02:00
Jeremy Benoist
f45496336f
Add ability to match many domains for credentials
Instead of fetching one domain, we use the same method as in site config (to retrieve the matching file) and handle api.example.org, example.org, .org (yes the last one isn’t useful).
If one of these match, we got it and use it.
2019-04-23 22:39:31 +02:00
Jérémy Benoist
76bc05ebc0
Fix ApiDoc about md5/sha1 2019-04-02 22:59:50 +02:00
Jeremy Benoist
5cc0646e66
Fix index on MySQL 2019-04-01 15:45:17 +02:00
Jeremy Benoist
c579ce2306
Some cleanup
Also, do not run the hashed_url migration into a Doctrine migration
2019-04-01 14:34:20 +02:00
Jeremy Benoist
8a64566298
Use a better index for hashed_url
It'll most often be used in addition to the `user_id`.
Also, automatically generate the hash when saving the url.
Switch from `md5` to `sha1`.
2019-04-01 13:51:57 +02:00
Jeremy Benoist
9c2b2aae70
Keep url in exists endpoint
- Add migration
- Use md5 instead of sha512 (we don't need security here, just a hash)
- Update tests
2019-04-01 13:24:40 +02:00
Thomas Citharel
bfe02a0b48
Hash the urls to check if they exist
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-04-01 13:24:40 +02:00
Jeremy Benoist
3620dae1e6
Merge remote-tracking branch 'origin/master' into 2.4 2019-04-01 13:16:15 +02:00
Jérémy Benoist
bfd69c74e5
Merge pull request #3909 from wallabag/fix/html-not-defined
Fix PHP warning
2019-03-18 09:26:33 +01:00
Jeremy Benoist
8ca858ee73
Fix PHP warning
Looks like sometimes (usually from import) the `html` key isn’t available.
2019-03-18 06:23:41 +01:00
Kevin Decherf
41d476d7e7 epub: fix exception when articles have the same title
This commit fixes an exception occuring when exporting as epub several
articles with the same title. The chapter filename is now derived from
title and url.

Fixes #3642

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-03-17 23:36:10 +01:00
Kevin Decherf
f1f1efb5de material: wrap card actions, remove class hiding of creation date
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-03-03 19:22:32 +01:00
Jeremy Benoist
8c0ba95307
Adding more tests 2019-02-27 15:01:03 +01:00
Jeremy Benoist
ea925bb112
CS 2019-02-27 14:33:26 +01:00
Thomas Citharel
3784688a88
Replace continue; with break; to avoid PHP 7.3 warnings
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2019-02-27 14:29:14 +01:00
Jérémy Benoist
d5154ee2ae
Merge pull request #3886 from wallabag/issue-3602
epub export: fix missing cover image, only for exports of one article
2019-02-25 14:03:41 +01:00
Kevin Decherf
508302042f EntryRestController: add support of expect parameter to delete action
The expect parameter enables an application to request the whole entry
or only the id when requesting its deletion.

`expects` defaults to `entry` to prevent any API breakage.

Fixes #3711

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-20 15:57:50 +01:00
Kevin Decherf
9a7a0e1e6b epub export: fix missing cover image, only for exports of one article
Fixes #3602

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-02-18 00:16:05 +01:00
Jeremy Benoist
44560c7767
CS 2019-02-13 14:06:57 +01:00
Jeremy Benoist
0182cdaec4
CS 2019-02-11 11:57:52 +01:00
Jeremy Benoist
baa5ee2d42
Force default_protocol to generate an url input 2019-02-08 15:03:52 +01:00
Jeremy Benoist
18460b2d79
Merge remote-tracking branch 'origin/master' into 2.4 2019-02-07 18:01:15 +01:00
Jonathan Crooke
7e04bd4ca4
Fix broken 2 factor auth logo image 2019-01-31 22:14:53 +01:00
Jeremy Benoist
8d082488e9
Improve checks & add tests 2019-01-28 06:03:16 +01:00
Tristan Hill
a2e60dd393
status and favourite are actually strings in the import so use == 2019-01-27 18:39:26 +01:00
Jeremy Benoist
4654a83b64
Hash backup codes in the database using password_hash 2019-01-23 14:43:39 +01:00
Jeremy Benoist
c416ed485f
CS 2019-01-23 13:28:24 +01:00
Jeremy Benoist
a0c5eb003f
Change the way to enable 2FA
And add a step to validate a generated code from the OTP app
2019-01-23 13:28:24 +01:00
Jeremy Benoist
4c0e747940
Remove secret from admin 2019-01-23 13:28:24 +01:00
Jeremy Benoist
e073090b8d
Update translation 2019-01-23 13:28:24 +01:00
Jeremy Benoist
dfd0a7bc5f
Add backup codes 2019-01-23 13:28:03 +01:00
Jeremy Benoist
6e4fc956ab
Better translations
Replace “Google Authenticator” by “Google Authenticator, Authy or FreeOTP” in all text.

Translate how to use the code / qr code.
2019-01-23 13:28:02 +01:00
Jeremy Benoist
43ccf4b178
Cleanup 2019-01-23 13:28:02 +01:00
Jeremy Benoist
2dfbe9e5fa
Fix tests 2019-01-23 13:28:02 +01:00
Jeremy Benoist
a6b242a1fd
Enable OTP 2FA
- Update SchebTwoFactorBundle to version 3
- Enable Google 2fa on the bundle
- Disallow ability to use both email and google as 2fa
- Update Ocramius Proxy Manager to handle typed function & attributes (from PHP 7)
- use `$this->addFlash` shortcut instead of `$this->get('session')->getFlashBag()->add`
- update admin to be able to create/reset the 2fa
2019-01-23 13:28:02 +01:00
Jeremy Benoist
acd4412080
Create a dedicated tab to reset data 2019-01-23 13:28:01 +01:00
Jeremy Benoist
8010425444
Fix third argument to Route 2019-01-22 20:42:25 +01:00
Jeremy Benoist
019e1acc49
Factorize sendResponse between Api controllers
And run newer cs fixer
2019-01-22 20:42:25 +01:00
Craig Roberts
9133bd02d1
[wallabag/wallabag#2611] Fix PHPCS lint errors 2019-01-22 20:42:25 +01:00
Craig Roberts
b32057980e
Fixes [wallabag/wallabag#2611] Add a basic Search REST endpoint
- Adds a new `search` key to `src/Wallabag/ApiBundle/Resources/config/routing_rest.yml`
- Reuses the `getBuilderForSearchByUser` method from the EntryRepository
- Supports, `term`, `page`, and `perPage` query parameters
- Some very basic tests
2019-01-22 20:42:24 +01:00
Jeremy Benoist
fe5850d6e2
Update icon to casino 2019-01-22 17:05:21 +01:00
Jeremy Benoist
091bafeb4c
Handle no random result found 2019-01-19 22:30:50 +01:00
Jeremy Benoist
2491c50b6b
Fix status from Instapaper
That status was used as `http_status` in ContentProxy->stockEntry
2019-01-19 22:24:52 +01:00
Jeremy Benoist
50f35f0db2
Move icon into the top menu bar
Change the way to select a random entry:
- select all ids from the given user (with filters)
- choose randomly one in php
- find that entry
2019-01-19 22:24:10 +01:00
Jeremy Benoist
9a57653aec
Redirect to the current view instead of homepage 2019-01-19 21:10:16 +01:00
Jeremy Benoist
90a0d086a8
Better icon 2019-01-19 21:10:16 +01:00
Jeremy Benoist
062fad434a
Better random function 2019-01-19 21:09:33 +01:00
Jeremy Benoist
0447a75b06
Use only one method to randomize
Instead of one per type, one for all is ok.
2019-01-19 21:09:33 +01:00
Jeremy Benoist
f85d220c19
Fix tests 2019-01-19 21:09:33 +01:00
Nicolas Lœuillet
09ef25c3c3
Added random feature 2019-01-19 21:09:32 +01:00
Jeremy Benoist
1e0d8ad7b7
Enable PHPStan
- Fix error for level 0 & 1 (level 7 has 699 errors...)
- Add `updated_at` to site_credential (so the `timestamps()` method applies correctly)
2019-01-18 15:25:50 +01:00
Jeremy Benoist
293730656d Add dedicated email for site config issue
Instead of sending an email to the devs, it now creates an issue on GitHub using a zap from zapier.
2019-01-18 11:15:23 +01:00
Jeremy Benoist
3bd65991ad
Add a new endpoint to retrieve information from the wallabag instance
Useful for api client which required some information.
We might add more inside them in the future.

The endpoint /api/version should be avoided now as it contains not so much information rather the version.
2019-01-15 10:17:11 +01:00
Jeremy Benoist
3afc87426d
CS 2019-01-15 09:49:22 +01:00
Jeremy Benoist
5419a8368e
Merge remote-tracking branch 'origin/master' into 2.4 2019-01-15 09:41:18 +01:00
Jeremy Benoist
78e3fafa3f
Avoid error when a bad order parameter is given
Only allowed parameter are asc & desc
2019-01-14 17:01:21 +01:00
Jérémy Benoist
3625833b2c
Merge pull request #3826 from wallabag/epub-toc
Rework of EPUB/PDF exports
2019-01-11 13:34:38 +01:00
Jérémy Benoist
03663530ed
Merge pull request #3831 from wallabag/fix/api-bad-client-id
Cast client id to avoid PG error
2019-01-10 17:03:03 +01:00
Eloi Coutant
bb8ad42b27
Update entries.html.twig
Should fix https://github.com/wallabag/wallabag/issues/3832
2019-01-10 04:25:51 +01:00
Eloi Coutant
d4466a37fe
Update entries.html.twig
Should fix https://github.com/wallabag/wallabag/issues/3832
2019-01-10 04:23:08 +01:00
Jeremy Benoist
3a2d4cf9fd
Cast client id to avoid PG error
If someone send a malformated client_id when trying to authenticate using the API we got a 500 if wallabag use postgres because the request send a string instead of an integer.
2019-01-09 23:31:14 +01:00
Kevin Decherf
5e1f27767b EntriesExport: avoid else on $authors
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-09 16:26:19 +01:00
Kevin Decherf
dac93644e8 EntriesExport: sanitize filename and fix tests
Filename will now only use a-zA-Z0-9-' and space.

Fixes remaining filename issue on #3811

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-08 15:13:35 +01:00
Kevin Decherf
ad5ef8bca0 EntriesExport/pdf: move notice to the end, add metadata cover
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 23:36:41 +01:00
Kevin Decherf
af83d05ce2 Add translations
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 23:06:02 +01:00
Kevin Decherf
4944703edc EntriesExport/epub: add metadata to each entry's cover
Add metadata to the cover of each entry:

- Publishers
- Estimated reading time
- Date of creation ("Added on")
- Address (URL)

Related to #2821

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:44:14 +01:00
Kevin Decherf
f810834623 EntriesExport: change authors and title when not single entry export
Change '{method} authors' (which gives 'Tag_entries authors' when
exporting a tag) to 'Various authors'.

When exporting a tag (tag_entries), change the title from 'Tag_entries
articles' to 'Tag {tag} articles'.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:44:14 +01:00
Kevin Decherf
30cf72bf55 EntriesExport/epub: revert c779373f, move exportinfo to the end of the book
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:43:16 +01:00
Kevin Decherf
edd1825b58 EntriesExport/epub: use sha1 sums for filenames, fix and rename title chapters
This commit renames entry chapters file using a sha1 sum of their title
for simplicity. Also we fix the 'Title' chapter duplicate issue by using
the hash of the related entry and the suffix '_title'.

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:41:12 +01:00
Kevin Decherf
063d5e7bda EntriesExport/epub: remove TOC page
This change only remove the rendered page of the TOC at the end of the
book, the TOC remains available to readers.

Fixes #3603

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-07 21:11:05 +01:00
Kevin Decherf
5de17117a1
Merge pull request #3827 from wallabag/epub-quote
EntriesExport/epub: replace epub identifier with unique urn
2019-01-07 11:59:38 +01:00
Jérémy Benoist
d2aec7096d
Merge pull request #3820 from lizyn/bugfix/incorrect-calculation-of-CJK-characters-in-reading-time-estimation
Fix incorrect reading time calculation for entries with CJK characters
2019-01-07 10:17:29 +01:00
Kevin Decherf
bf22266a62 EntriesExport/epub: replace epub identifier with unique urn
We replace the title used as the unique identifier of the epub file with
a urn following the format:

  urn:wallabag:{sha1("wallabagUrl:listOfEntryIdsSeparatedByComma")}

This format is repeatable: it always gives the same uid for the same
list of entries.

Fixes #3811

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-01-06 23:29:32 +01:00
lizyn
7f8630b91c Counting two characters together as a word in CJK 2019-01-06 01:21:13 +08:00
Jeremy Benoist
35983eb9bb
Improve reading time tests 2019-01-04 11:23:33 +01:00
Jérémy Benoist
8f5c4b083c
Merge pull request #3816 from wallabag/validate-import-entry
Validate imported entry to avoid error on import
2019-01-04 11:06:53 +01:00
Jeremy Benoist
9f8f188d92
Validate imported entry to avoid error on import
We got some imports with a missing `url` field generating some errors while trying to retrieve an existing entry with that url.
Introducing the `validateEntry` allow us to dismiss a message when it doesn't have an url (or other missing stuff in the future)
2019-01-03 09:42:06 +01:00
Kevin Decherf
2a0e0a47d8 TagRestController: rewrite delete actions to only retrieve tags related to the user
Fixes #3815

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:49 +01:00
Kevin Decherf
6708bf238d TagRepository: refactor query builder for queries by userId
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-30 01:34:44 +01:00
Kevin Decherf
bafb9744c8 fixtures: refactor EntryData, TagData, add a new tag
Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2018-12-29 19:22:05 +01:00
lizyn
5becf260fa fix incorrect reading time calculation for entries with CJK characters 2018-12-25 15:31:44 +08:00
Mateusz Rumiński
e014fa0395
Update messages.pl.yml
Add missing translation
2018-12-02 18:14:21 +01:00