Commit Graph

2683 Commits

Author SHA1 Message Date
maTh
76d547d830 i18n/de (#5171) 2023-03-06 18:12:43 +01:00
maTh
f0a545a47a fix: i18n for autom. dark mode config (#5168)
* i18n

* Update app/i18n/fr/conf.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-06 18:12:06 +01:00
maTh
068d18b69b Add: <meta name="theme-color"> (#5105)
* implemented

* themes' metadata.json

* fix

* fix

* retrigger tests

* Update lib/Minz/View.php

Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>

* Update lib/Minz/View.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update lib/Minz/View.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update lib/Minz/View.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* fix

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Co-authored-by: Luc SANCHEZ <4697568+ColonelMoutarde@users.noreply.github.com>
2023-03-04 15:05:58 +01:00
Sadetdin EYILI
d3966befaf feat: create config to display website icon only / name only / icon and name / none on feeds (#4969)
* feat: create config to display website icon only / name only / icon and name / none on feeds

* fix title hovering

* reverted: column in .phtml

* Update app/i18n/fr/conf.php

---------

Co-authored-by: mathContao <math-home@web.de>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-03-04 14:51:07 +01:00
maTh
27c7367534 Improve UI/UX install process (#5147)
* less buttons on step 1

* add form-group

* jump to next step as link not as button

* improve navigation bar HTML structure

* sync password-show button with extra.js

* fix CSS

* i18n: step 4: split text strings for help text (max chars default user)

* show menu button if mobile view

* improve header layout with empty div

* step 5: button in form-actions

* improve buttons in goup-controls

* Favicon added

* Button: Font color  hover btn-attention

* install check step: add subtitles

* fix .btn

* improve tabindex

* improve showPW_this()
2023-03-04 13:57:52 +01:00
Alexandre Alapetite
44f72889a5 Safer updateCachedValues (#5158)
#fix https://github.com/FreshRSS/FreshRSS/issues/5156
2023-03-04 10:06:30 +01:00
Alexandre Alapetite
e2a7e192a6 Fix MySQL bug (#5132)
#fix https://github.com/FreshRSS/FreshRSS/issues/5128
MySQL cannot have multiple VARCHAR(x) whose total length is higher than 65535 in the same table.

> ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
2023-02-23 16:21:29 +01:00
yzqzss
f3216b61b9 add archive.org as sharing service (#5096)
Co-authored-by: maTh <math-home@web.de>
2023-02-22 22:13:38 +01:00
maTh
f015029c8e fix: sharing service config: data-leave-validation (#5098) 2023-02-22 22:11:49 +01:00
Alexandre Alapetite
05ae1b0d26 XML+XPath (#5076)
* XML+XPath
#fix https://github.com/FreshRSS/FreshRSS/issues/5075
Implementation allowing to take an XML document as input using an XML parser (instead of an HTML parser for HTML+XPath)

* Remove noise from another PR

* Better MIME for XML

* And add glob *.xml for cache cleaning

* Minor syntax

* Add glob json for clean cache
2023-02-09 13:57:20 +01:00
Luc SANCHEZ
b9a62a6aaa code improvement for phpstan and humans ;) (#5084)
* code improvement for phpstan and humans ;)

* code improvement for phpstan and humans ;)

* code improvement for phpstan and humans ;)

* code improvement for phpstan and humans ;)

* PHPSTAN level 6

* PHPStan level 9

* Avoid return mixed

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-02-09 13:52:55 +01:00
Alexandre Alapetite
64d68a691c Fix disabling proxy (#5082)
#fix https://github.com/FreshRSS/FreshRSS/issues/5081
Allow disabling curl proxy for specific feed, when proxy is defined globally
2023-02-08 17:52:51 +01:00
Alexandre Alapetite
e899e4edd9 More robust application of access permissions (#5062)
* More robust application of access permissions
We were in particular missing directory traversal `+X` in our current recommendations.
Extracted to own shell script so it can easily be invoked.
Update access permissions in Docker to account to be more robust.
#fix https://github.com/FreshRSS/FreshRSS/discussions/5037

* Minor simplification

* Restrict mkdir permissions
Default mkdir permissions are 0777, which is not good for security, so downgrade to 0770.
2023-02-06 15:42:53 +01:00
Alexandre Alapetite
de2077b563 Increase max HTTP timeout (#5074)
* Increase maximum HTTP request timeout from 2 minutes to 15 minutes;
    * Reason: I have some RSS Bridge generating feeds, which can take several minutes.

* Increase default HTTP request timeout from 15 to 20s.
    * Reason: I regularly observe feeds, which are slow to answer.
2023-02-06 14:11:41 +01:00
Luc SANCHEZ
40aa8b9264 Type hinting and doc (#5063)
* Type hinting and doc

* fix cs

* Remove declare strict

* Remove declare strict

* Pass PHPStan level 9
Revert too boolean syntax

* Minor wording

* Fix revert typo

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-02-03 14:35:59 +01:00
Alexandre Alapetite
9b5de54a9c Remove -x on some files not needing it (#5065) 2023-02-03 14:34:47 +01:00
maTh
9f221e9c51 Fix: dropdowns' overflow (#5055) 2023-01-30 20:34:28 +01:00
maTh
e53ba88bb9 Search Improved: dropdown (#4994)
* first draft

* fix

* RTL CSS

* add link to documentation

* hide search button in desktop view

* rename .no-desktop to .only-mobile

* i18n

* add ID

* Theme: Swage

* Theme Scewdriver

* Theme Pafat

* Theme flat

* Theme: Adark

* Theme: Dark

* i18n: German

* i18n en-us

* fix i18n

* Update app/i18n/fr/gen.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update app/layout/nav_menu.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update app/layout/nav_menu.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* Update app/layout/nav_menu.phtml

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* wip

* mapco theme

* RTL for Ansum and Mapco

* fix

* fix

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-30 20:32:55 +01:00
Alexandre Alapetite
4f316b2ed3 PHPStan level 9 for ./p/ and lib_rss.php (#5049)
And app/FreshRSS.php
Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
2023-01-29 18:53:51 +01:00
Alexandre Alapetite
e617830e96 Fix types hint in UserQuery.php (#5045)
* Fix types hint in UserQuery.php
In particular, we had a mix of strings and integers for the query state
Pass PHPStan level 9

* Unneeded null check
2023-01-28 13:37:09 +01:00
Alexandre Alapetite
07efaf71ea Fix error handling when updating URL (#5039)
Fix 3 related error handling when updating the feed URL with an invalid URL. Previously leading to unclear 500 page with additional PHP errors.
2023-01-26 08:59:34 +01:00
Alexandre Alapetite
2f02754522 Increase max feed URL length and drop unicity (#5038)
* Increase max feed URL length and drop unicity
#fix https://github.com/FreshRSS/FreshRSS/issues/4338
Drop the unicity constraint on our feed URL. In practice, this did not add much value as identical feeds could have different URLs. And it generated several problems, for instance during renaming or automatic redirections such as from HTTP to HTTPS, with collisions for which we dot not have any elegant handling.
I have kept a high limit of 32768 because cURL does not seem to have any limit except memory, which might lead to memory problems. This is the highest server-side value reported by https://www.sistrix.com/ask-sistrix/technical-seo/site-structure/url-length-how-long-can-a-url-be

* Same for Web site URL
For consistency
2023-01-26 08:13:38 +01:00
maTh
1c4b328ae1 Improved: expanding inputs (#5040)
* fix

* wider input element
2023-01-25 22:23:51 +01:00
Alexandre Alapetite
1c434971d4 statsController at phpStan level 9 (#5028)
Follow up of https://github.com/FreshRSS/FreshRSS/pull/5024

```
vendor/bin/phpstan analyse --level 9 app/Controllers/statsController.php
```

Contributes to https://github.com/FreshRSS/FreshRSS/issues/4112
2023-01-21 23:20:44 +01:00
Luc SANCHEZ
2216940f00 type hinting javascriptController (#5032) 2023-01-21 23:19:26 +01:00
maTh
f31c310a6d fix: Lemmy sharing service parameter (#5020) 2023-01-20 23:52:36 +01:00
Luc SANCHEZ
75a203fff2 Type hinting statsController.php (#5024) 2023-01-20 23:37:41 +01:00
Alexandre Alapetite
c13f1de139 Use paramBoolean consistently (#5025)
* Use paramBoolean consistently
So that we have cleaner values (true booleans) everywhere in user's config.php
2023-01-20 23:14:10 +01:00
Alexandre Alapetite
dbdb7869c4 Safer timezone set (#5021)
* Safer timezone set
Add missing tzdata in Docker :newest
Fallback to UTC if no timezone is defined at all
#fix https://github.com/FreshRSS/FreshRSS/pull/4906#issuecomment-1386747169

* Better refactoring
Show fallback timezone everywhere
2023-01-19 18:26:04 +01:00
berumuron
daaa391e33 tec: Update the lib_opml (#4403)
* fix: Fix undefined GLOB_BRACE on Alpine

The manual states that:

> Note: The GLOB_BRACE flag is not available on some non GNU systems,
> like Solaris or Alpine Linux.

This generated an error on Alpine.

Reference: https://www.php.net/manual/function.glob.php

* fix: List details of feeds for OPML exportation

The details are necessary to export the XPath information, the CSS full
content path and read actions filters.

* Update LibOpml to 0.4.0

* Refactor OPML importation to be more robust

First, it fixes two regressions introduced by the update of lib_opml:

- title attribute is used when text attribute is missing;
- the OPML category attribute is used as a fallback for feeds categories.

In a related way, if also fixes a problem when a feed had both a parent
category outline and a category attribute. Before, it only considered the
attribute as its category, but now it considers the parent outline.

Then, it counts category limit correctly by not increasing
`$nb_categories` if the category already exists.

* Exclude lib_opml from the CodeSniffer

* Fix variable names when logging some errors

* Fix catch of LibOpml Exception

* Make sure to declare the category

* Exclude lib_opml from PHPStan analyze

* Disable markdownlint for lib_opml

* Fix typos

* Use auto-loading and allow updates via Composer

* Fix broken links to lib_opml

* Bring back the ability to import the OPML frss:opmlUrl attribute

* Refactor the logs of OPML errors

* Update lib_opml to the version 0.5.0

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-18 10:12:21 +01:00
maTh
33468def4a Improved: navigation menu structure (#4937) 2023-01-17 15:52:29 +01:00
maTh
0ab130eb9c Added: Mark theme as deprecated (#4807)
* i18n + config

* docs

* deprecated marked themes

* fix

* fix markdown

* i18n: fix link params

* i18n: French

* deprecated => no longer supported

* i18n: German

* Docs: deprecated => no longer supported

* Docs: French

* i18n: en-us

* i18n German

* isset() -> !empty()

* i18n: fix German

* i18n: English, delete // TODO
2023-01-17 15:39:55 +01:00
maTh
c75baefe40 fix Automatic dark mode status (#5002) 2023-01-09 16:15:15 +01:00
Alexandre Alapetite
1d9d4e3e3c Update dev dependencies (#4993)
Related to https://github.com/FreshRSS/FreshRSS/pull/4991
Required a few changes in code to pass the tests
2023-01-09 12:59:30 +01:00
Alexandre Alapetite
3fb8ab8eb5 Handling of parentheses as special characters in searches (#4989)
#fix https://github.com/FreshRSS/FreshRSS/issues/4987
2023-01-09 12:59:09 +01:00
maTh
b5a418ec16 Added: Dark mode for Origine +Origine compact themes (#4843)
* first draft

* fix: theme slider: properties box

* improved colors

* option to enable/disable dark mode

* fixes

* Update app/i18n/fr/conf.php

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

* i18n english improved

* fix dark background color for favorites + hover colors

* select list: no, auto

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2023-01-09 10:40:38 +01:00
Sadetdin EYILI
bbe3eb8f41 Lazy load logo on install, logo on header and theme thumbs in config slide (#4998)
* feat: lazy load logo on install, logo on header and theme thumbs in config slide
2023-01-09 10:37:35 +01:00
Alexandre Alapetite
8f9c4143fc Better enclosures (#4944)
* Better enclosures
#fix https://github.com/FreshRSS/FreshRSS/issues/4702
Improvement of https://github.com/FreshRSS/FreshRSS/pull/2898

* A few fixes

* Better enclosure titles

* Improve thumbnails

* Implement thumbnail for HTML+XPath

* Avoid duplicate enclosures
#fix https://github.com/FreshRSS/FreshRSS/issues/1668

* Fix regex

* Add basic support for media:credit
And use <figure> for enclosures

* Fix link encoding + simplify code

* Fix some SimplePie bugs
Encoding errors in enclosure links

* Remove debugging syslog

* Remove debugging syslog

* SimplePie fix multiple RSS2 enclosures
#fix https://github.com/FreshRSS/FreshRSS/issues/4974

* Improve thumbnails

* Performance with yield
Avoid generating all enclosures if not used

* API keep providing enclosures inside content
Clients are typically not showing the enclosures to the users (tested with News+, FeedMe, Readrops, Fluent Reader Lite)

* Lint

* Fix API output enclosure

* Fix API content strcut

* API tolerate enclosures without a type
2023-01-06 19:53:43 +01:00
maTh
92d1b0cda7 Keep view for search landing page (#4981) 2023-01-02 21:54:00 +01:00
Sadetdin EYILI
914bc62aef fix: favicon after editing feed url (#4975)
refactor: replace `$cat` variable by the `$values['category']` values
2022-12-31 15:57:37 +01:00
Alexandre Alapetite
6261dc9cf4 User-defined time zone (#4906)
* User-defined time zone
#fix https://github.com/FreshRSS/FreshRSS/issues/2754

* Update app/i18n/nl/conf.php

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>

* Timezone when creating a new user

Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
2022-11-29 15:27:32 +01:00
maTh
c05e931d5e Deleted: bookmark.svg (#4897)
* delete bookmark.svg

* optimize Pafat theme
2022-11-26 11:31:30 +01:00
Alexandre Alapetite
aa07582419 Better restrict tag search (#4882)
* Better restrict tag search
#fix https://github.com/FreshRSS/FreshRSS/issues/4877
Search only on full tag names and not on parts of tag names

* Better whitespace handling
2022-11-23 22:41:00 +01:00
maTh
ef5483490c Improved: config dropdown structure (#4891)
* phtml and frss.css

* theme Origine

* theme adark

* theme Ansum

* theme Mapco

* theme BlueLagoon

* theme dark

* theme flat

* theme nord

* theme Screwdriver

* theme swage

* fix

* fix

* RTL

* fix nord theme

* fix SourceMap lines
2022-11-23 22:40:23 +01:00
Alexandre Alapetite
4bf678f8e4 HTML+XPath allow content as HTML (#4878)
* HTML+XPath allow content as HTML
#fix https://github.com/FreshRSS/FreshRSS/issues/4869

* Wrong variable reuse

* Allow both HTML and expressions
2022-11-22 08:15:22 +01:00
maTh
9b674e7e93 Improved: show bigmarkasread button only, when there are unread articles (#4681)
* function toggle_bigMarkAsRead_button()

* nothing_to_load text outside of bigmarkasread button

* improved

* fix

* Update p/scripts/main.js

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2022-11-20 15:10:33 +01:00
Alexis Degrugillier
02b906549e Fix feed ordering (#4841)
Before, the feeds were not ordered every time there was a change in the category
feed list. This behavior was causing discrepancies in the displayed list.
Now, the feeds are ordered every time there is a change in the category feed list.

See #4790
2022-11-20 14:50:27 +01:00
Myuki
77c214c83c [i18n] Improve translation: zh-cn (#4856) 2022-11-20 14:48:27 +01:00
Zhiyuan Zheng
ce5531b39a Add Chinese for custom date/time format (#4853)
* Translate item_timeFormat in Chinese

* Update sub.php

* Update sub.php
2022-11-15 16:06:00 +01:00
Alexandre Alapetite
42eeb402ad Fix type hints regressions (#4855)
Fix regressions from https://github.com/FreshRSS/FreshRSS/pull/4561

Example:

```
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to checkToken() must be an instance of FreshRSS_UserConfiguration, instance of Minz_Configuration given, called in /var/www/FreshRSS/p/api/greader.php on line 1091 and defined in /var/www/FreshRSS/p/api/greader.php:223
Stack trace:
#0 /var/www/FreshRSS/p/api/greader.php(1091): checkToken()
#1 {main}
  thrown in /var/www/FreshRSS/p/api/greader.php on line 223
```

Improvement of https://github.com/FreshRSS/FreshRSS/pull/4110
2022-11-15 15:42:26 +01:00