diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/manager.py | 34 | ||||
-rw-r--r-- | src/web/models/__init__.py | 15 |
2 files changed, 21 insertions, 28 deletions
diff --git a/src/manager.py b/src/manager.py index b6ff87a0..d5e91d70 100755 --- a/src/manager.py +++ b/src/manager.py @@ -1,11 +1,17 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -from bootstrap import application, db, populate_g, conf +import os +import logging +from werkzeug import generate_password_hash +from bootstrap import application, db, conf from flask.ext.script import Manager from flask.ext.migrate import Migrate, MigrateCommand import web.models +from web.controllers import FeedController, UserController + +logger = logging.getLogger(__name__) Migrate(application, db) @@ -17,16 +23,20 @@ manager.add_command('db', MigrateCommand) def db_empty(): "Will drop every datas stocked in db." with application.app_context(): - populate_g() web.models.db_empty(db) @manager.command def db_create(): "Will create the database from conf parameters." + admin = {'is_admin': True, 'is_api': True, 'is_active': True, + 'nickname': 'admin', + 'pwdhash': generate_password_hash( + os.environ.get("ADMIN_PASSWORD", "password")), + 'email': os.environ.get("ADMIN_EMAIL", "root@jarr.localhost")} with application.app_context(): - populate_g() - web.models.db_create(db) + db.create_all() + UserController(ignore_context=True).create(**admin) @manager.command @@ -44,18 +54,17 @@ def fetch_asyncio(user_id, feed_id): import asyncio with application.app_context(): - populate_g() - from flask import g - from web.models import User + from flask.ext.login import current_user from crawler import classic_crawler + ucontr = UserController() users = [] try: - users = User.query.filter(User.id == int(user_id)).all() + users = [ucontr.get(user_id)] except: - users = User.query.all() + users = ucontr.read() finally: if users == []: - users = User.query.all() + users = ucontr.read() try: feed_id = int(feed_id) @@ -65,9 +74,8 @@ def fetch_asyncio(user_id, feed_id): loop = asyncio.get_event_loop() for user in users: if user.is_active: - print("Fetching articles for " + user.nickname) - g.user = user - classic_crawler.retrieve_feed(loop, g.user, feed_id) + logger.info("Fetching articles for " + user.nickname) + classic_crawler.retrieve_feed(loop, user, feed_id) loop.close() diff --git a/src/web/models/__init__.py b/src/web/models/__init__.py index 7c50cab3..260f3263 100644 --- a/src/web/models/__init__.py +++ b/src/web/models/__init__.py @@ -83,18 +83,3 @@ def db_empty(db): conn.execute(DropTable(table)) trans.commit() - -def db_create(db): - "Will create the database from conf parameters." - db.create_all() - - user1 = User(nickname="admin", - email=os.environ.get("ADMIN_EMAIL", - "root@jarr.localhost"), - pwdhash=generate_password_hash( - os.environ.get("ADMIN_PASSWORD", "password")), - is_admin=True) - - db.session.add(user1) - db.session.commit() - return user1 |