예제 #1
0
def generate(user_id, date, order='asc'):
    try:
        uas = UserAlias.gets_by_user_id(user_id)
        if not uas:
            return

        start_date = datetime.datetime(date.year, date.month, 1)
        end_date = datetime.datetime(date.year, date.month,
                calendar.monthrange(date.year, date.month)[1], 23, 59, 59)
        pdf_filename = get_pdf_filename(user_id, date.strftime("%Y%m"))
        print '----generate pdf:', start_date, ' to ', end_date, ' file is', pdf_filename

        if is_pdf_file_exists(pdf_filename):
            print '---- %s exists, so ignore...' % pdf_filename
            return

        status_ids = Status.get_ids_by_date(user_id, start_date, end_date)[:900]
        if order == 'asc':
            status_ids = status_ids[::-1]
        if not status_ids:
            print '----- status ids is none', status_ids
            return
        generate_pdf(pdf_filename, user_id, status_ids, capacity=-1)
        if not is_pdf_file_exists(pdf_filename):
            print '----%s generate pdf for user:%s fail' % (datetime.datetime.now(), user_id)
        else:
            print '----%s generate pdf for user:%s succ' % (datetime.datetime.now(), user_id)
    except Exception, e:
        import traceback
        print '%s %s' % (datetime.datetime.now(), traceback.format_exc())
예제 #2
0
def generate(user_id, date, order='asc'):
    try:
        uas = UserAlias.gets_by_user_id(user_id)
        if not uas:
            return

        start_date = datetime.datetime(date.year, date.month, 1)
        end_date = datetime.datetime(
            date.year, date.month,
            calendar.monthrange(date.year, date.month)[1], 23, 59, 59)
        pdf_filename = get_pdf_filename(user_id, date.strftime("%Y%m"))
        print '----generate pdf:', start_date, ' to ', end_date, ' file is', pdf_filename

        if is_pdf_file_exists(pdf_filename):
            print '---- %s exists, so ignore...' % pdf_filename
            return

        status_ids = Status.get_ids_by_date(user_id, start_date,
                                            end_date)[:900]
        if order == 'asc':
            status_ids = status_ids[::-1]
        if not status_ids:
            print '----- status ids is none', status_ids
            return
        generate_pdf(pdf_filename, user_id, status_ids, capacity=-1)
        if not is_pdf_file_exists(pdf_filename):
            print '----%s generate pdf for user:%s fail' % (
                datetime.datetime.now(), user_id)
        else:
            print '----%s generate pdf for user:%s succ' % (
                datetime.datetime.now(), user_id)
    except Exception, e:
        import traceback
        print '%s %s' % (datetime.datetime.now(), traceback.format_exc())
예제 #3
0
def generate(user_id, date, order='asc'):
    try:
        uas = UserAlias.gets_by_user_id(user_id)
        if not uas:
            return

        start_date = datetime.datetime(date.year, date.month, 1)
        end_date = datetime.datetime(
            date.year, date.month,
            calendar.monthrange(date.year, date.month)[1], 23, 59, 59)

        pdf_filename = get_pdf_filename(user_id, date.strftime("%Y%m"), "")
        pdf_filename_compressed = get_pdf_filename(user_id,
                                                   date.strftime("%Y%m"))
        print '----generate pdf:', start_date, ' to ', end_date, ' file is', pdf_filename

        if is_pdf_file_exists(pdf_filename_compressed):
            print '---- %s exists, so ignore...' % pdf_filename_compressed
            return

        status_ids = Status.get_ids_by_date(user_id, start_date,
                                            end_date)[:900]
        if order == 'asc':
            status_ids = status_ids[::-1]
        if not status_ids:
            print '----- status ids is none', status_ids
            return
        generate_pdf(pdf_filename, user_id, status_ids)

        if not is_pdf_file_exists(pdf_filename):
            print '----%s generate pdf for user:%s fail' % (
                datetime.datetime.now(), user_id)
        else:
            commands.getoutput(
                "cd %s && tar -zcf %s %s && rm %s" %
                (config.PDF_FILE_DOWNLOAD_DIR, pdf_filename_compressed,
                 pdf_filename, pdf_filename))
            print '----%s generate pdf for user:%s succ' % (
                datetime.datetime.now(), user_id)
    except Exception, e:
        import traceback
        print '%s %s' % (datetime.datetime.now(), traceback.format_exc())
예제 #4
0
파일: views.py 프로젝트: perryhau/thepast
def pdf(uid):
    user = User.get(uid)
    if not user:
        abort(401, "No such user")
    
    pdf_filename = get_pdf_filename(user.id)
    if not is_pdf_file_exists(pdf_filename):
        generate_pdf(pdf_filename, user.id, 0, 10000000)
    if not is_pdf_file_exists(pdf_filename):
        abort(400, "generate pdf fail, please try again...")

    full_file_name = os.path.join(config.PDF_FILE_DOWNLOAD_DIR, pdf_filename)
    resp = make_response()
    resp.headers['Cache-Control'] = 'no-cache'
    resp.headers['Content-Type'] = 'application/pdf'
    resp.headers['Content-Disposition'] = 'attachment; filename=%s' % pdf_filename
    resp.headers['Content-Length'] = os.path.getsize(full_file_name)
    redir = '/down/pdf/' + pdf_filename
    resp.headers['X-Accel-Redirect'] = redir
    return resp
예제 #5
0
# -*- coding:utf-8 -*-

import sys

sys.path.append("../")

import time
import datetime

activate_this = "../env/bin/activate_this.py"
execfile(activate_this, dict(__file__=activate_this))

from past.utils.pdf import generate_pdf, get_pdf_filename, is_pdf_file_exists
from past.model.user import User

if __name__ == "__main__":

    for uid in User.get_ids(0, 10000000):
        try:
            pdf_filename = get_pdf_filename(uid)
            generate_pdf(pdf_filename, uid, 0, 100000, capacity=-1)
            if not is_pdf_file_exists(pdf_filename):
                print "%s generate pdf for user:%s fail" % (datetime.datetime.now(), uid)
            else:
                print "%s generate pdf for user:%s succ" % (datetime.datetime.now(), uid)
        except Exception, e:
            print "%s %s" % (datetime.datetime.now(), e)

        time.sleep(1)
예제 #6
0
from past.utils.pdf import generate_pdf, get_pdf_filename, is_pdf_file_exists
from past.model.user import User, UserAlias
from past import config

if __name__ == "__main__":
    
    #for uid in User.get_ids(0, 10000000):
    for uid in range(634,652):
        try:
            uas = UserAlias.gets_by_user_id(uid)
            if not uas:
                continue
            types = [x.type for x in uas]
            count = 300
            if config.OPENID_TYPE_DICT[config.OPENID_SINA] in types \
                    or config.OPENID_TYPE_DICT[config.OPENID_QQ] in types:
                count = 250
            pdf_filename = get_pdf_filename(uid)
            print pdf_filename
            generate_pdf(pdf_filename, uid, 0, count, capacity=-1)
            if not is_pdf_file_exists(pdf_filename):
                print '%s generate pdf for user:%s fail' % (datetime.datetime.now(), uid)
            else:
                print '%s generate pdf for user:%s succ' % (datetime.datetime.now(), uid)
        except Exception, e:
            import traceback
            print '%s %s' % (datetime.datetime.now(), traceback.format_exc())

        time.sleep(1)