Commit graph

1941 commits

Author SHA1 Message Date
Thomas Citharel
9c7997db8e
Show untagged entries count on tag list (#3993)
Show untagged entries count on tag list
2019-06-06 14:09:23 +02:00
Jeremy Benoist
35c4c80148
Display login in config / user
Just so the user can see its login
2019-06-06 13:51:25 +02:00
Jeremy Benoist
35c7819cb6
Remove link when there are no untagged articles 2019-06-06 13:34:20 +02:00
Jérémy Benoist
c19845a7ae
Merge pull request #3959 from wallabag/mig-tag-collation
mysql: change collation of tag label
2019-06-06 12:03:37 +02:00
Kevin Decherf
2b04b300f8
Merge pull request #3994 from wallabag/feature/revoke-feed-token
Add ability to revoke feed token
2019-06-05 18:32:21 +02:00
Jeremy Benoist
c4bf12aade
Add ability to revoke feed token 2019-06-05 17:55:13 +02:00
Jeremy Benoist
0f2d24feb4
Fix typo & CS 2019-06-05 17:09:05 +02:00
Kevin Decherf
ad51743e8b
Show untagged entries count on tag list
Closes #3235

Signed-off-by: Kevin Decherf <kevin@kdecherf.com>
2019-06-05 17:03:51 +02:00
Jeremy Benoist
d010bdd44b
Add quickstart into the menu
Just in case people want to see that page again.
2019-06-05 15:51:22 +02:00
Jérémy Benoist
16e1c07553
Merge pull request #3271 from wallabag/store-resolved-url
Add `given_url` in Entry table to check if a redirected url has already added
2019-06-05 11:38:00 +02:00
Jeremy Benoist
d8809f70ea
Typos 2019-06-05 10:54:43 +02:00
Jeremy Benoist
70df4c3359
Use two indexes instead of one for hashed urls
When using `OR` in a where clause, a composite index can't be used. We should use a `UNION` to take advantages of it.
Instead, create 2 indexes on each hashed urls and make 2 queries to find an url. It'll be faster than the previous solution.
2019-06-05 10:53:15 +02:00
Jeremy Benoist
7abda3ba52
Drop SimplePie
It was only used to make an absolute url when downloading images.
The deps is still there (in the `composer.lock`) because Graby use it (not for absolute but for encoding).
2019-05-29 17:05:12 +02:00
Jeremy Benoist
f3bfb875e9
Use hash given url to avoid duplicate
Using hashed url we can ensure an index on them to ensure it's fast.
2019-05-29 15:56:20 +02:00
Nicolas Lœuillet
b7fa51ae7d
Added given_url in entry table
- Added index on entry table for given_url field
- Fix tests:

    The previous `bit.ly` url redirected to doc.wallabag but that url doesn't exist in the fixtures.
    I used our own internal "redirector" to create a redirect to an url which exist in the fixtures.

Also, updating current migration to use the new `WallabagMigration`.
2019-05-29 13:50:59 +02:00
Jeremy Benoist
52e8d93248
Fix some Scrutinizer issues 2019-05-29 12:50:44 +02:00
Jérémy Benoist
2cbee36a01
Merge pull request #3944 from shtrom/always-hash-exists-url
Always hash exists url
2019-05-28 14:18:33 +02:00
Jeremy Benoist
6e68417f03
Fix tests after rebase 2019-05-28 12:02:17 +02:00
Jeremy Benoist
b6c1e1bacc
Fix some tests 2019-05-28 11:44:20 +02:00
Jeremy Benoist
a91a3150fb
CS 2019-05-28 11:42:27 +02:00
Jeremy Benoist
448d99f84e
CS 2019-05-28 11:42:27 +02:00
adev
1048c9c4a8
Configure timeout 2019-05-28 11:42:27 +02:00
adev
5f08426201
Fix because of some breaking changes of Graby 2.0 2019-05-28 11:42:27 +02:00
adev
bf9ace0643
Use httplug 2019-05-28 11:40:41 +02:00
Kevin Decherf
5c0701ba41
Merge pull request #3965 from nicofrand/previewPic
Preview picture: use the 1st pic retrieved if no og:image set
2019-05-26 17:47:44 +02:00
Jeremy Benoist
629a3797bc
Remove useless methods
Also fix a phpdoc block
2019-05-24 15:46:28 +02:00
Jeremy Benoist
0132ccd2a2
Change the way to define algorithm for hashing url 2019-05-24 15:17:46 +02:00
Olivier Mehani
4a5516376b
Add Wallabag\CoreBundle\Helper\UrlHasher
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
2019-05-24 15:17:46 +02:00
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