Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/py-package/masonite-instant-articles
This helps you generate facebooks instant articles and also regular feeds with enough customizations you might need.
https://github.com/py-package/masonite-instant-articles
feed instant-articles masonite masonite-package package rss
Last synced: about 14 hours ago
JSON representation
This helps you generate facebooks instant articles and also regular feeds with enough customizations you might need.
- Host: GitHub
- URL: https://github.com/py-package/masonite-instant-articles
- Owner: py-package
- License: mit
- Created: 2022-01-19T12:37:16.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-08-04T12:30:27.000Z (over 2 years ago)
- Last Synced: 2024-12-20T03:49:35.372Z (7 days ago)
- Topics: feed, instant-articles, masonite, masonite-package, package, rss
- Language: Python
- Homepage:
- Size: 72.3 KB
- Stars: 11
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Instant Articles
**If you are seeking package for generating instant article or feeds in Masonite then yes, this package is for you.**
> This helps you generate facebooks instant articles and also regular feeds with enough customizations you might need.
## Installation
```shell
pip install masonite-instant-article
```## Configuration
Add `InstantArticleProvider` to your project in `config/providers.py`:
```python
# config/providers.py
# ...
from instant_article.providers import InstantArticleProvider# ...
PROVIDERS = [
# ...
# Third Party Providers
InstantArticleProvider
# ...
]
```Then you can publish the configuration by doing:
```bash
python craft package:publish instant_article
```## Update Configurations
You need to define options in your `instant_article` configuration file inside `config` directory.
```python
# config
INSTANT_ARTICLE = {
"force_validate": False,
"feed_details": {
"your-custom-route-name.xml": {
'model': 'path-to-your-model-class',
'title': '',
'description': '',
'lang': 'en-us',
'brand': '',
'type': 'instant-article' # feed, instant-article
}
}
}# Example
INSTANT_ARTICLE = {
"force_validate": False,
"feed_details": {
"blogs-rss.xml": {
'model': 'app.models.Blog',
'title': 'Blog Feed',
'description': '',
'lang': 'en-us',
'brand': '',
'type': 'instant-article' # feed, instant-article
},
"news-rss.xml": {
'model': 'app.models.News',
'title': 'News Feed',
'description': '',
'lang': 'en-us',
'brand': '',
'type': 'instant-article' # feed, instant-article
}
}
}# Above feeds can be access from:
"""
https://your-domain.com/rss/blogs-rss.xml
https://your-domain.com/rss/news-rss.xml
"""
```## Implementation
```python
from instant_article.interfaces.instant_article_interface import InstantArticleInterface
from instant_article.models.instant_article import InstantArticleclass YourModel(Model, InstantArticleInterface):
@staticmethod
def get_feed_items():
return YourModel.all() # can be any query returning proper valuesdef format_feed(self):
return InstantArticle.create({
'id': self.id, # required | integer
'title': self.name, # required | string
'subtitle': '', # nullable | string
'kicker': '', # nullable | string
'summary': '', # required | string
'description': '', # required | string
'cover': '', # nullable | string
'updated': self.updated_at, # required | date
'published': self.created_at, # required | date
'link': '', # full url to item...
'author': '' # nullable | email | string
})
```Your project is now ready to go :+1:.
## Contributing
Please read the [Contributing Documentation](CONTRIBUTING.md) here.
## License
masonite-filemanager is open-sourced software licensed under the [MIT license](LICENSE).