Merge branch 'master' into 29-generic-entities-support

This commit is contained in:
Fabio Manganiello 2022-12-17 00:51:51 +01:00
commit 9ddebb920f
Signed by: blacklight
GPG Key ID: D90FBA7F76362774
7 changed files with 60 additions and 29 deletions

View File

@ -4,13 +4,15 @@ All notable changes to this project will be documented in this file.
Given the high speed of development in the first phase, changes are being
reported only starting from v0.20.2.
## [Unreleased]
## [0.24.3] - 2022-12-17
### Added
- Added `[-v|--verbose]` command-line option to override the default logging
configuration and enable debug logging.
- Added `--version` command-line option to print the current version and exit.
- [[#236](https://git.platypush.tech/platypush/platypush/issues/236)] Added
support for `author` and `tags` attributes on feed entries.
## [0.24.2] - 2022-12-10

View File

@ -25,7 +25,7 @@ from .message.response import Response
from .utils import set_thread_name, get_enabled_plugins
__author__ = 'Fabio Manganiello <info@fabiomanganiello.com>'
__version__ = '0.24.2'
__version__ = '0.24.3'
log = logging.getLogger('platypush')

View File

@ -1,5 +1,5 @@
from datetime import datetime
from typing import Optional
from typing import Iterable, Optional
from platypush.message.event import Event
@ -10,11 +10,30 @@ class NewFeedEntryEvent(Event):
"""
def __init__(
self, *, feed_url: str, url: str, title: Optional[str] = None, id: Optional[str] = None,
feed_title: Optional[str] = None, published: Optional[datetime] = None, summary: Optional[str] = None,
content: Optional[str] = None, **kwargs
self,
*,
feed_url: str,
url: str,
title: Optional[str] = None,
id: Optional[str] = None,
feed_title: Optional[str] = None,
published: Optional[datetime] = None,
summary: Optional[str] = None,
content: Optional[str] = None,
author: Optional[str] = None,
tags: Optional[Iterable[str]] = None,
**kwargs
):
super().__init__(
feed_url=feed_url, url=url, title=title, id=id, feed_title=feed_title,
published=published, summary=summary, content=content, **kwargs
feed_url=feed_url,
url=url,
title=title,
id=id,
feed_title=feed_title,
published=published,
summary=summary,
content=content,
author=author,
tags=tags or [],
**kwargs
)

View File

@ -129,6 +129,12 @@ class RssPlugin(RunnablePlugin):
'title': entry.title,
'summary': getattr(entry, 'summary', None),
'content': self._parse_content(entry),
'author': getattr(entry, 'author', None),
'tags': [
tag['term']
for tag in getattr(entry, 'tags', [])
if tag.get('term')
],
}
for entry in feed.entries
if getattr(entry, 'published_parsed', None)

View File

@ -5,36 +5,40 @@ from platypush.schemas import DateTime
class RssFeedEntrySchema(Schema):
feed_title = fields.String(metadata=dict(description='Feed title'))
feed_title = fields.String(metadata={'description': 'Feed title'})
feed_url = fields.URL(
required=True,
metadata=dict(
description='URL of the feed',
example='https://some-website/rss',
)
metadata={
'description': 'URL of the feed',
'example': 'https://some-website/rss',
},
)
id = fields.String(
required=True,
metadata=dict(
description='Feed entry ID',
example='1234',
)
metadata={
'description': 'Feed entry ID',
'example': '1234',
},
)
url = fields.URL(
required=True,
metadata=dict(
description='URL of the feed entry',
example='https://some-website/articles/1234',
)
metadata={
'description': 'URL of the feed entry',
'example': 'https://some-website/articles/1234',
},
)
published = DateTime(
required=True,
metadata=dict(description='Entry published time')
required=True, metadata={'description': 'Entry published time'}
)
title = fields.String(metadata=dict(description='Feed entry title'))
summary = fields.String(metadata=dict(description='Feed entry summary'))
content = fields.String(metadata=dict(description='Feed entry content'))
title = fields.String(metadata={'description': 'Feed entry title'})
summary = fields.String(metadata={'description': 'Feed entry summary'})
content = fields.String(metadata={'description': 'Feed entry content'})
author = fields.String(metadata={'description': 'Feed entry author'})
tags = fields.List(
fields.String(),
metadata={'description': 'Feed entry tags'},
)

View File

@ -1,10 +1,10 @@
[bumpversion]
current_version = 0.24.2
current_version = 0.24.3
commit = True
tag = True
[metadata]
description-file = README.md
description_file = README.md
[flake8]
max-line-length = 120

View File

@ -28,7 +28,7 @@ backend = pkg_files('platypush/backend')
setup(
name="platypush",
version="0.24.2",
version="0.24.3",
author="Fabio Manganiello",
author_email="info@fabiomanganiello.com",
description="Platypush service",