Skip to main content

Instant Article for Masonite

Project description

Instant Articles

GitHub Workflow Status PyPI Python Version GitHub release (latest by date including pre-releases) License star Code style: black

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

pip install masonite-instant-article

Configuration

Add InstantArticleProvider to your project in config/providers.py:

# config/providers.py
# ...
from instant_article.providers import InstantArticleProvider

# ...
PROVIDERS = [
    # ...
    # Third Party Providers
    InstantArticleProvider
    # ...
]

Then you can publish the configuration by doing:

python craft package:publish instant_article

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
"""

Implementation

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
        })

Your project is now ready to go :+1:.

Contributing

Please read the Contributing Documentation here.

License

masonite-filemanager is open-sourced software licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

masonite-instant-article-0.1.2.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

masonite_instant_article-0.1.2-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file masonite-instant-article-0.1.2.tar.gz.

File metadata

File hashes

Hashes for masonite-instant-article-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9ad4d844f0837096b73744821c805b43a2c30ee7b00e91c938c946ea549b528e
MD5 995b1541a07eae31433de2bc095582b7
BLAKE2b-256 2eaa60d648a4db3b210429fc360ce5ff8957456568cf040217c6511a68b96543

See more details on using hashes here.

File details

Details for the file masonite_instant_article-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for masonite_instant_article-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7df2df2ff6b2144ed42066934295b4b09b51ccb346b3df716e431f50fe9d5179
MD5 3735142dd57f7db7a0bde86f16e7ba55
BLAKE2b-256 10cec0779f636450928335f06caabd299bfa7cd10a5052dfe306c952e81980f1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page