Instant Article for Masonite
Project description
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.
How to?
Step 1: Install package
Install package by executing the following command.
pip install masonite-instant-article
Step 2: Add provider to your project
Add InstantArticleProvider
into your project providers:
# config/providers
from instant_article.providers import InstantArticleProvider
PROVIDERS = [
# ...
InstantArticleProvider
]
Step 3: Publish Resources Files
You need to have some files setup and don't worry it's quite easy. You just have to execute the following command.
python craft package:publish instant_article
Step 4: Update Configurations
You need to define options in your instant_article
configuration file inside config
directory.
# 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
"""
Step 5: Implement Instant Article Interface to your Model and configure as follows
from instant_article.interfaces.instant_article_interface import InstantArticleInterface
from instant_article.models.instant_article import InstantArticle
class YourModel(Model, InstantArticleInterface):
@staticmethod
def get_feed_items():
return YourModel.all() # can be any query returning proper values
def 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
})
Step 6: Awesome
- Your project is now ready to go :+1:.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for masonite-instant-article-0.0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f40127e0a7b37d80b5a882e39fd36a122203baf6ed4bc00d2dc4c12f4f896a33 |
|
MD5 | 1469798708b03d89919834942eb0f941 |
|
BLAKE2b-256 | 90d85e53ca8803fff2334d1f83431259112e84412557db88b2b55637b94f810e |