diff options
| author | 2022-10-09 15:43:30 +0200 | |
|---|---|---|
| committer | 2022-10-09 15:43:30 +0200 | |
| commit | 648a876d77a7591eac6c4ad5f14b30988e18ce20 (patch) | |
| tree | 5832c068fd7d4d0a1fa80096849dde18a25887d4 /app/Models/Feed.php | |
| parent | 72265c1eca41424f761246abc5a7fe84fd8bc0f9 (diff) | |
Add support for custom XPath date/time format (#4703)
* Add support for custom XPath date/time format
#fix https://github.com/FreshRSS/FreshRSS/issues/4701
Improvement of https://github.com/FreshRSS/FreshRSS/pull/4220
* Format is not XPath
* Remove TODOs in en-GB
Diffstat (limited to 'app/Models/Feed.php')
| -rw-r--r-- | app/Models/Feed.php | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/app/Models/Feed.php b/app/Models/Feed.php index a81f1c561..5efe55006 100644 --- a/app/Models/Feed.php +++ b/app/Models/Feed.php @@ -612,6 +612,7 @@ class FreshRSS_Feed extends Minz_Model { $xPathItemUri = $xPathSettings['itemUri'] ?? ''; $xPathItemAuthor = $xPathSettings['itemAuthor'] ?? ''; $xPathItemTimestamp = $xPathSettings['itemTimestamp'] ?? ''; + $xPathItemTimeFormat = $xPathSettings['itemTimeFormat'] ?? ''; $xPathItemThumbnail = $xPathSettings['itemThumbnail'] ?? ''; $xPathItemCategories = $xPathSettings['itemCategories'] ?? ''; $xPathItemUid = $xPathSettings['itemUid'] ?? ''; @@ -652,6 +653,12 @@ class FreshRSS_Feed extends Minz_Model { $item['link'] = $xPathItemUri == '' ? '' : @$xpath->evaluate('normalize-space(' . $xPathItemUri . ')', $node); $item['author'] = $xPathItemAuthor == '' ? '' : @$xpath->evaluate('normalize-space(' . $xPathItemAuthor . ')', $node); $item['timestamp'] = $xPathItemTimestamp == '' ? '' : @$xpath->evaluate('normalize-space(' . $xPathItemTimestamp . ')', $node); + if ($xPathItemTimeFormat != '') { + $dateTime = DateTime::createFromFormat($xPathItemTimeFormat, $item['timestamp'] ?? ''); + if ($dateTime != false) { + $item['timestamp'] = $dateTime->format(DateTime::ATOM); + } + } $item['thumbnail'] = $xPathItemThumbnail == '' ? '' : @$xpath->evaluate('normalize-space(' . $xPathItemThumbnail . ')', $node); if ($xPathItemCategories != '') { $itemCategories = @$xpath->query($xPathItemCategories, $node); |
