webapi where you can request scheduled rss feed publishing
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
import flask_apscheduler
|
|
|
|
from feedgen.feed import FeedGenerator
|
|
|
|
from flask import Flask
|
|
|
|
from flask_migrate import Migrate
|
|
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
|
|
|
|
|
|
db = SQLAlchemy()
|
|
|
|
migrate = Migrate()
|
|
|
|
|
|
|
|
|
|
|
|
def create_app():
|
|
|
|
APP = Flask(__name__)
|
|
|
|
scheduler = flask_apscheduler.APScheduler()
|
|
|
|
scheduler.api_enabled = True
|
|
|
|
scheduler.init_app(APP)
|
|
|
|
scheduler.start()
|
|
|
|
APP.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///schedule.db"
|
|
|
|
APP.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
|
|
|
|
|
|
|
|
db.init_app(APP)
|
|
|
|
migrate.init_app(APP, db, render_as_batch=True)
|
|
|
|
|
|
|
|
@scheduler.task("interval", id="update", minutes=10)
|
|
|
|
def update():
|
|
|
|
create_rss_feed()
|
|
|
|
|
|
|
|
return APP
|
|
|
|
|
|
|
|
|
|
|
|
def create_rss_feed():
|
|
|
|
print("creating rss feed")
|
|
|
|
fg = FeedGenerator()
|
|
|
|
atomfeed = fg.atom_str(pretty=True)
|
|
|
|
rssfeed = fg.rss_str(pretty=True)
|
|
|
|
fg.atom_file("atom.xml")
|
|
|
|
fg.rss_file("rss.xml")
|