#! /usr/bin/env python import subprocess import sys from lxml import etree from lxml.html import HTMLParser from urlparse import urljoin html_parser = HTMLParser(encoding='utf-8') # platform to synchronize should be specified in parameter if len(sys.argv) > 1: PLATFORM_BASE_URL = sys.argv[1] else: PLATFORM_BASE_URL = 'https://test.villeurbanne.fr/' HEAD_URL = urljoin(PLATFORM_BASE_URL, 'publik/get/head') HEADER_URL = urljoin(PLATFORM_BASE_URL, 'publik/get/header') FOOTER_URL = urljoin(PLATFORM_BASE_URL, 'publik/get/footer') BANNER_URL = urljoin(PLATFORM_BASE_URL, 'publik/get/banner') JS_URL = urljoin(PLATFORM_BASE_URL, 'build/publik/publik-app.js') HEAD_FILENAME = 'head.html' HEADER_FILENAME = 'header.html' FOOTER_FILENAME = 'footer.html' BANNER_FILENAME = 'banner.html' subprocess.call(['wget', '--quiet', '-O', HEAD_FILENAME, '--convert-links', HEAD_URL]) head_content = open(HEAD_FILENAME).read().strip() head_content = head_content.replace(HEAD_FILENAME, '') root = etree.fromstring(head_content, parser=html_parser) # remove external undesired elements elements = ['font-awesome'] for link in root.xpath('//link'): for element in elements: if element in link.attrib['href']: parent = link.getparent() parent.remove(link) external_js = '' % JS_URL head_content = etree.tostring(root, method='html') # remove closing because it will be closed later head_content = head_content.replace('', '') head_content = head_content.replace( '', external_js + ''' {% block head %}{% endblock %}