import argparse
import shutil
import pygraphviz as pgv
+import glob
from amara import bindery
from amara.xslt import transform
from Cheetah.Template import Template
return set(self._tree)
class Page():
+ """Class representing a version of a webpage"""
+ def __init__(self,page):
+ self._file = page[1]
+ self._lang = page[0]
+ self._doc = None
+ self._resources = []
+ self._title = None
+ self._menu = None
+ self._rendered_article = None
+
+class Link():
"""Class representing a webpage on the site"""
def __init__(self,link):
self._link = link
- self._resources = []
- self._script = 0
+ # find the representations of the link.
+ self._pages = []
+ path = link
+ if self._link[-1] == '/':
+ path = path+'index'
+ lang = self._scan_languages(path)
+ for l in lang:
+ self._pages.append(Page(l))
+
+ def _scan_languages(self,path):
+ lang = []
+ for l in glob.glob('.'+path+'*'):
+ ls = l.split('.')
+ if len(ls) > 3 and ls[3] == 'xml':
+ lang.append((ls[2],l))
+ return lang
def link(self):
return self._link
"""Class keeping the internal site structure"""
def __init__(self):
self._file = 'sitemap.txt'
- self._pages = []
self._tree = Trie()
- def add_page(self, link):
- page = Page(link)
- self._pages.append(page)
+ def add_link(self, link):
tokens = filter(None,re.split(r'(^/\w*/|\w*/)',link))
- self._tree.add(tokens,page)
+ self._tree.add(tokens,Link(link))
def read_map(self):
try:
sml = f.read().split()
f.close()
for line in sml:
- self.add_page(line)
+ self.add_link(line)
except IOError, what_error:
print 'INFO: Could not read sitemap.txt - one will be created'
def set(self):
- return set(page.link() for page in self._pages)
-
- def pages(self):
- return self._pages
+ return set(link.link() for link in self._tree)
def graph(self):
self._tree.graph()