News¶
News is an asynchronous web subscription engine built on top of asnycio
and aiohttp
.
from celery import Celery
from django.contrib.auth.models import User
from news.scheduler import Scheduler
from news.backends import DjangoBackend
from news.models.django import (
create_default_schedule,
create_default_news,
)
# create a celery instance (or use your own instance)
celery = Celery()
# define models
Schedule = create_default_schedule(user_model=User)
News = create_default_news(schedule_model=Schedule)
# define a backend
backend = DjangoBackend(schedule_model=Schedule, news_model=News)
# subscribe an url
owner = User.objects.first()
schedule = Schedule(url='http://httpbin.org', owner=owner)
schedule.save()
# run the scheduler
scheduler = Scheduler(backend, celery)
scheduler.start()