# Path: lib/mentionsdb.py
# def add_mention(screen_name, slug):
# def get_mentions_by_user(screen_name, per_page, page):
# 
# Path: lib/postsdb.py
# def get_post_by_slug(slug):
# def get_all():
# def get_posts_by_bumps(screen_name, per_page, page):
# def get_posts_by_query(query, per_page=10, page=1):
# def get_posts_by_tag(tag):
# def get_posts_by_screen_name(screen_name, per_page=10, page=1):
# def get_posts_by_screen_name_and_tag(screen_name, tag, per_page=10, page=1):
# def get_featured_posts(per_page=10, page=1):
# def get_new_posts(per_page=50, page=1):
# def get_hot_posts(per_page=50, page=1):
# def get_hot_posts_by_day(day=date.today(), hide_featured=False):
# def get_daily_posts_by_sort_score(min_score=8):
# def get_hot_posts_24hr(start=datetime.now()):
# def get_sad_posts(per_page=50, page=1):
# def get_deleted_posts(per_page=50, page=1):
# def get_unique_posters(start_date, end_date):
# def get_featured_posts_count():
# def get_post_count_by_query(query):
# def get_post_count():
# def get_post_count_for_range(start_date, end_date):
# def get_delete_posts_count():
# def get_post_count_by_tag(tag):
# def get_latest_staff_posts_by_tag(tag, limit=10):
# def get_posts_by_normalized_url(normalized_url, limit):
# def get_posts_with_min_votes(min_votes):
# def get_hot_posts_past_week():
# def get_related_posts_by_tag(tag):
# def add_subscriber_to_post(slug, email):
# def remove_subscriber_from_post(slug, email):
# def save_post(post):
# def update_post_score(slug, score, scores):
# def delete_all_posts_by_user(screen_name):
# def insert_post(post):
# def sort_posts(day="all"):
# 
# Path: lib/tagsdb.py
# def get_user_tags(screen_name):
# def get_all_tags(sort=None):
# def get_hot_tags():
# def get_user_tags(screen_name):
# def save_tag(tag):
# 
# Path: lib/userdb.py
# def get_all():
# def get_user_by_id_str(id_str):
# def get_user_by_screen_name(screen_name):
# def get_user_by_email(email_address):
# def get_disqus_users():
# def get_newsletter_recipients():
# def create_new_user(user, access_token):
# def save_user(user):
# def get_user_count():
# def add_tags_to_user(screen_name, tags=[]):
# def update_twitter(id_str=None, api=None):
# def update_twitter_profile_images():


import tornado.web
import app.basic
from lib import disqus
from lib import mentionsdb
from lib import postsdb
from lib import tagsdb
from lib import userdb
        self.redirect("/user/%s/settings?msg=updated" % user['user']['screen_name'])

###########################
### LOG USER OUT OF ACCOUNT
### /auth/logout
###########################
class LogOut(app.basic.BaseHandler):
    def get(self):
        self.clear_all_cookies()
        self.redirect(self.get_argument('next', '/'))

##########################
### USER PROFILE
### /user/(.+)
##########################
class Profile(app.basic.BaseHandler):
    def get(self, screen_name, section="shares"):
        user = userdb.get_user_by_screen_name(screen_name)
        if not user:
            raise tornado.web.HTTPError(404)

        view = "profile"
        #section = self.get_argument('section', 'shares')
        tag = self.get_argument('tag', '')
        per_page = int(self.get_argument('per_page', 10))
        page = int(self.get_argument('page',1))
        if section == 'mentions':
            # get the @ mention list for this user
            posts = mentionsdb.get_mentions_by_user(screen_name.lower(), per_page, page)
        elif section =='bumps':

# Path: lib/mentionsdb.py
# def add_mention(screen_name, slug):
# def get_mentions_by_user(screen_name, per_page, page):
# 
# Path: lib/postsdb.py
# def get_post_by_slug(slug):
# def get_all():
# def get_posts_by_bumps(screen_name, per_page, page):
# def get_posts_by_query(query, per_page=10, page=1):
# def get_posts_by_tag(tag):
# def get_posts_by_screen_name(screen_name, per_page=10, page=1):
# def get_posts_by_screen_name_and_tag(screen_name, tag, per_page=10, page=1):
# def get_featured_posts(per_page=10, page=1):
# def get_new_posts(per_page=50, page=1):
# def get_hot_posts(per_page=50, page=1):
# def get_hot_posts_by_day(day=date.today(), hide_featured=False):
# def get_daily_posts_by_sort_score(min_score=8):
# def get_hot_posts_24hr(start=datetime.now()):
# def get_sad_posts(per_page=50, page=1):
# def get_deleted_posts(per_page=50, page=1):
# def get_unique_posters(start_date, end_date):
# def get_featured_posts_count():
# def get_post_count_by_query(query):
# def get_post_count():
# def get_post_count_for_range(start_date, end_date):
# def get_delete_posts_count():
# def get_post_count_by_tag(tag):
# def get_latest_staff_posts_by_tag(tag, limit=10):
# def get_posts_by_normalized_url(normalized_url, limit):
# def get_posts_with_min_votes(min_votes):
# def get_hot_posts_past_week():
# def get_related_posts_by_tag(tag):
# def add_subscriber_to_post(slug, email):
# def remove_subscriber_from_post(slug, email):
# def save_post(post):
# def update_post_score(slug, score, scores):
# def delete_all_posts_by_user(screen_name):
# def insert_post(post):
# def sort_posts(day="all"):
# 
# Path: lib/tagsdb.py
# def get_user_tags(screen_name):
# def get_all_tags(sort=None):
# def get_hot_tags():
# def get_user_tags(screen_name):
# def save_tag(tag):
# 
# Path: lib/userdb.py
# def get_all():
# def get_user_by_id_str(id_str):
# def get_user_by_screen_name(screen_name):
# def get_user_by_email(email_address):
# def get_disqus_users():
# def get_newsletter_recipients():
# def create_new_user(user, access_token):
# def save_user(user):
# def get_user_count():
# def add_tags_to_user(screen_name, tags=[]):
# def update_twitter(id_str=None, api=None):
# def update_twitter_profile_images():


# Path: app/user.py
import tornado.web
import app.basic
from lib import disqus
from lib import mentionsdb
from lib import postsdb
from lib import tagsdb
from lib import userdb

        self.redirect("/user/%s/settings?msg=updated" % user['user']['screen_name'])

###########################
### LOG USER OUT OF ACCOUNT
### /auth/logout
###########################
class LogOut(app.basic.BaseHandler):
    def get(self):
        self.clear_all_cookies()
        self.redirect(self.get_argument('next', '/'))

##########################
### USER PROFILE
### /user/(.+)
##########################
class Profile(app.basic.BaseHandler):
    def get(self, screen_name, section="shares"):
        user = userdb.get_user_by_screen_name(screen_name)
        if not user:
            raise tornado.web.HTTPError(404)

        view = "profile"
        #section = self.get_argument('section', 'shares')
        tag = self.get_argument('tag', '')
        per_page = int(self.get_argument('per_page', 10))
        page = int(self.get_argument('page',1))
        if section == 'mentions':
            # get the @ mention list for this user
            posts = mentionsdb.get_mentions_by_user(screen_name.lower(), per_page, page)
        elif section =='bumps':

            posts = postsdb.get_posts_by_bumps(screen_name, per_page, page)