# 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/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():


from mongo import db
from datetime import datetime
from lib import postsdb, userdb
import pymongo
import json
import logging
import settings
import urllib2
import requests
        body_html += "<p>discussion: <a href='http://%s/posts/%s'>http://%s/posts/%s</a></p>" % (settings.get('base_url'), post['slug'], settings.get('base_url'), post['slug'])
        body_html += "<hr />"
    body_html += "Want to unsubscribe? Visit http://%s/user/settings" % settings.get('base_url')

    email = {
            'from': from_email,
            'subject': subject,
            'body_html': body_html
    }

    # create the email
    # POST https://api.sendgrid.com/api/newsletter/add.json
    # @identity (created in advance == the sender's identity), @name (of email), @subject, @text, @html
    api_link = 'https://api.sendgrid.com/api/newsletter/add.json'
    params = {
            'identity': settings.get('sendgrid_sender_identity'),
            'name': email_name,
            'subject': email['subject'],
            'text': '', #to do get text version,
            'html': email['body_html']
    }
    result = do_api_request(api_link, method="POST", params=params)

    return result

#
# Setup Email List
#
def setup_email_list():
    email_sent = False

# 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/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: lib/emailsdb.py
from mongo import db
from datetime import datetime
from lib import postsdb, userdb
import pymongo
import json
import logging
import settings
import urllib2
import requests

        body_html += "<p>discussion: <a href='http://%s/posts/%s'>http://%s/posts/%s</a></p>" % (settings.get('base_url'), post['slug'], settings.get('base_url'), post['slug'])
        body_html += "<hr />"
    body_html += "Want to unsubscribe? Visit http://%s/user/settings" % settings.get('base_url')

    email = {
            'from': from_email,
            'subject': subject,
            'body_html': body_html
    }

    # create the email
    # POST https://api.sendgrid.com/api/newsletter/add.json
    # @identity (created in advance == the sender's identity), @name (of email), @subject, @text, @html
    api_link = 'https://api.sendgrid.com/api/newsletter/add.json'
    params = {
            'identity': settings.get('sendgrid_sender_identity'),
            'name': email_name,
            'subject': email['subject'],
            'text': '', #to do get text version,
            'html': email['body_html']
    }
    result = do_api_request(api_link, method="POST", params=params)

    return result

#
# Setup Email List
#
def setup_email_list():
    email_sent = False

    recipients = userdb.get_newsletter_recipients()