Skip to content

adreyer/django-monocle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

================================== Monocle: Rich Content using OEmbed

Like A Sir

Monocle is a Django app built for rich content embedding using OEmbed that is built with scalability and performance in mind

Requirements

  • BeautifulSoup
  • Celery

Documentation

Full documentation can be built easily via tox::

$ tox -e docs
$ cd .tox/docs/build/html

Or, alternatively, can be built directly using sphinx. Note, however, that a direct sphinx build will require you install Django, Celery, and BeautifulSoup. A django settings file is required, so you must specify this when building and the monocle tests settings should suffice for this purpose::

$ pip install django celery beautifulsoup
$ cd docs
$ DJANGO_SETTINGS_MODULE=monocle.tests.settings make clean html
$ cd build/html

Key Points and Features

  • Flexible OEmbed provider system/mixins
    • External providers: resources fetched asynchronously
    • Internal providers: no external requests made. Direct resource building
  • Custom oembeddable content fields that prefetch any external or cached internal oembed content
  • Non-blocking asynchronous external content retrieval
  • Custom template tags and filters for oembedding content
  • Cached oembed resources using Django cache backend
    • Configurable cache expiration
    • TTL utilization: automatic cache refresh of stale content
  • Database stored, configurable external providers
  • Providers configurable to be exposed via URL endpoint
  • Support for JSONP callbacks by including a "callback" parameter in the request

TODO

  • Support embed.ly which introduces API credentials to the provider
  • Management command to pre-populate third party providers from embed.ly
  • Expose format=xml from oembed endpoint
  • Pre-configured provider fixtures
  • Support multiple URL requests from oembed endpoint
  • Better exception handling/custom error reporting
  • Expose list of exposed oembed providers via URL
  • Limited access to Django exposed oembed providers (same domain or API key)
  • Configurable allow https url schemes
  • Optional URL kwargs for provider endpoints
  • External providers configurable to handle XML or JSON
  • Non-specific instance check in provider registry (handle contrib external providers)

Contribution and License

Contributions are welcomed. MIT Licensed.

About

Django oEmbed App

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published