Esempio n. 1
0
def create_print_issue_pdf():
    """Create or update pdf for the current issue"""

    issue = current_issue()
    editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)]
    results = []
    for suffix, globpattern in editions:

        pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix)
        issue_name = '{issue.number}/{issue.date.year}{suffix}'.format(
            suffix=suffix, issue=issue)
        logger.info('Creating pdf: {}'.format(issue_name))
        tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf')
        try:
            create_web_bundle(filename=tmp_bundle_file.name,
                              globpattern=globpattern)
        except RuntimeWarning as warning:
            logger.info(str(warning))
            continue
        try:
            # pdf_lookfor = pdf_name.split('.')[0]
            # print(pdf_name, pdf_lookfor)
            print_issue = PrintIssue.objects.get(pdf__endswith=pdf_name)
        except PrintIssue.DoesNotExist:
            print_issue = PrintIssue()
        with open(tmp_bundle_file.name, 'rb') as src:
            pdf_content = ContentFile(src.read())
        print_issue.pdf.save(pdf_name, pdf_content, save=False)
        # print_issue.issue_name = issue_name
        print_issue.save()
        logger.info('New bundle file: {}'.format(pdf_name))
        results.append(pdf_name)
    return results
Esempio n. 2
0
def create_print_issue_pdf(issue, **kwargs):
    """Create or update pdf for the current issue"""
    if isinstance(issue, int):
        issue = Issue.objects.get(id=issue)

    editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)]
    results = []
    for suffix, fileglob in editions:

        pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix)
        logger.info('Creating pdf: {}'.format(pdf_name))
        tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf')
        try:
            create_web_bundle(
                issue=issue,
                filename=tmp_bundle_file.name,
                fileglob=fileglob,
                **kwargs,
            )
        except RuntimeWarning as warning:
            logger.info(str(warning))
            continue
        try:
            print_issue = PrintIssue.objects.get(pdf__contains=pdf_name)
        except PrintIssue.DoesNotExist:
            print_issue = PrintIssue()
        with open(tmp_bundle_file.name, 'rb') as src:
            pdf_content = ContentFile(src.read())
        print_issue.pdf.save(pdf_name, pdf_content, save=False)
        print_issue.issue = issue
        print_issue.save()
        logger.info('New bundle file: {}'.format(pdf_name))
        results.append(pdf_name)
    return results
Esempio n. 3
0
def create_print_issue_pdf():
    """Create or update pdf for the current issue"""

    issue = current_issue()
    editions = [('', PAGES_GLOB), ('_mag', MAG_PAGES_GLOB)]
    results = []
    for suffix, globpattern in editions:

        pdf_name = OUTPUT_PDF_NAME.format(issue=issue, suffix=suffix)
        issue_name = '{issue.number}/{issue.date.year}{suffix}'.format(
            suffix=suffix, issue=issue)
        logger.info('Creating pdf: {}'.format(issue_name))
        tmp_bundle_file = tempfile.NamedTemporaryFile(suffix='.pdf')
        try:
            create_web_bundle(
                filename=tmp_bundle_file.name, globpattern=globpattern)
        except RuntimeWarning as warning:
            logger.info(str(warning))
            continue
        try:
            # pdf_lookfor = pdf_name.split('.')[0]
            # print(pdf_name, pdf_lookfor)
            print_issue = PrintIssue.objects.get(pdf__endswith=pdf_name)
        except PrintIssue.DoesNotExist:
            print_issue = PrintIssue()
        with open(tmp_bundle_file.name, 'rb') as src:
            pdf_content = ContentFile(src.read())
        print_issue.pdf.save(pdf_name, pdf_content, save=False)
        # print_issue.issue_name = issue_name
        print_issue.save()
        logger.info('New bundle file: {}'.format(pdf_name))
        results.append(pdf_name)
    return results