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
def handle(self, *args, **options): """ Finds pdf files on disks and creates PrintIssue objects. """ for code, suffix in (1, ''), (2, '_mag'): year, number = current_issue() filename = FILENAME_PATTERN.format( year=year, number=number, suffix=suffix, ) files = self.get_staging_pdf_files(code) if len(files) == 0: msg = 'no files found, {}'.format(code) logger.debug(msg) continue if len(files) % 4: msg = 'Incorrect number of pages ({}), {}'.format( len(files), code) logger.debug(msg) continue pdf_path = os.path.join(PDF_FOLDER, filename) args = [PDF_MERGE, pdf_path] + files msg = '\n'.join(args) logger.debug(msg) subprocess.call(args) issue, new = PrintIssue.objects.get_or_create(pdf='pdf/' + filename) if new: name = '{number}/{year}{suffix}'.format(**locals()) issue.issue_name = name
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
def handle(self, *args, **options): # print(options) # if int(options['verbosity']) > 1: # logger = logging.getLogger('console') # else: logger = logging.getLogger(__name__) bundle_pdf(current_issue(), logger)
def upload_folder(cls): issue = current_issue() return os.path.join(str(issue.date.year), str(issue.number))
def upload_folder(cls): issue = current_issue().issue_tuple() return os.path.join(str(issue.date.year), str(issue.number))
def image_upload_folder(): year, issue = current_issue() return '{}/{}/'.format(year, issue)