def scan_for_new_quickbook_pages(pages): for location in settings['pages']: pages_data = settings['pages'][location] for src_file_pattern in pages_data['src_files']: for qbk_file in glob.glob(src_file_pattern): pages.add_qbk_file(qbk_file, location, pages_data) pages.save()
def update_quickbook(refresh=False): # Now check quickbook files. pages = load_pages() if not refresh: scan_for_new_quickbook_pages(pages) # Translate new and changed pages pages.convert_quickbook_pages(refresh) # Generate 'Index' pages downloads = [] for x in settings['downloads']: entries = pages.match_pages(x['matches'], sort=True) if 'count' in x: entries = entries[:x['count']] if entries: y = {'anchor': x['anchor'], 'entries': entries} if len(entries) == 1: y['label'] = x['single'] else: y['label'] = x['plural'] downloads.append(y) index_page_variables = {'pages': pages, 'downloads': downloads} for index_page in settings['index-pages']: boost_site.util.write_py_template(index_page, settings['index-pages'][index_page], index_page_variables) # Generate RSS feeds if not refresh: rss_items = boost_site.state.load('generated/state/rss-items.txt') for feed_file in settings['feeds']: feed_data = settings['feeds'][feed_file] rss_feed = rss_prefix(feed_file, feed_data) feed_pages = pages.match_pages(feed_data['matches']) if 'count' in feed_data: feed_pages = feed_pages[:feed_data['count']] for qbk_page in feed_pages: item_xml = None if qbk_page.loaded: item = generate_rss_item(qbk_page.qbk_file, qbk_page) item['item'] = item['item'].toxml('utf-8').decode('utf-8') rss_items[qbk_page.qbk_file] = item boost_site.state.save(rss_items, 'generated/state/rss-items.txt') rss_feed += item['item'] elif qbk_page.qbk_file in rss_items: rss_feed += rss_items[qbk_page.qbk_file]['item'] else: print("Missing entry for %s" % qbk_page.qbk_file) rss_feed += rss_postfix(feed_file, feed_data) output_file = open(feed_file, 'wb') try: output_file.write(rss_feed.encode('utf-8')) finally: output_file.close() pages.save()
def update_quickbook(refresh = False): # Now check quickbook files. pages = load_pages() if not refresh: scan_for_new_quickbook_pages(pages) # Translate new and changed pages pages.convert_quickbook_pages(refresh) # Generate 'Index' pages downloads = [] for x in settings['downloads']: entries = pages.match_pages(x['matches'], sort = True) if 'count' in x: entries = entries[:x['count']] if entries: y = { 'anchor': x['anchor'], 'entries' : entries } if len(entries) == 1: y['label'] = x['single'] else: y['label'] = x['plural'] downloads.append(y) index_page_variables = { 'pages' : pages, 'downloads' : downloads } for index_page in settings['index-pages']: boost_site.util.write_py_template( index_page, settings['index-pages'][index_page], index_page_variables) # Generate RSS feeds if not refresh: rss_items = boost_site.state.load('generated/state/rss-items.txt') for feed_file in settings['feeds']: feed_data = settings['feeds'][feed_file] rss_feed = rss_prefix(feed_file, feed_data) feed_pages = pages.match_pages(feed_data['matches']) if 'count' in feed_data: feed_pages = feed_pages[:feed_data['count']] for qbk_page in feed_pages: item_xml = None if qbk_page.loaded: item = generate_rss_item(qbk_page.qbk_file, qbk_page) item['item'] = item['item'].toxml('utf-8').decode('utf-8') rss_items[qbk_page.qbk_file] = item boost_site.state.save(rss_items, 'generated/state/rss-items.txt') rss_feed += item['item'] elif qbk_page.qbk_file in rss_items: rss_feed += rss_items[qbk_page.qbk_file]['item'] else: print("Missing entry for %s" % qbk_page.qbk_file) rss_feed += rss_postfix(feed_file, feed_data) output_file = open(feed_file, 'wb') try: output_file.write(rss_feed.encode('utf-8')) finally: output_file.close() pages.save()