X-Git-Url: https://harishankar.org/repos/?p=biaweb_qt.git;a=blobdiff_plain;f=biaweb_exporter.py;fp=biaweb_exporter.py;h=e824c086a484037713453babdd8fca1548859204;hp=7c887c6c26642b099e63a9c93ba29d41e253f9ba;hb=b168780a0609f1a8ca2632d6f5e783f200e594d3;hpb=de54d2eb3b283030bd98f7a1f6d056ce2e56b4d7 diff --git a/biaweb_exporter.py b/biaweb_exporter.py index 7c887c6..e824c08 100644 --- a/biaweb_exporter.py +++ b/biaweb_exporter.py @@ -48,6 +48,52 @@ def html_format_rating (rating): rating_str = "".join (items) return rating_str +# function to generate article pages +def generate_article_pages (dbname, conf, templates, category_str, bestrated_str): + # main template + tpl_main = string.Template (templates[0][1]) + # article template + tpl_articlebit = string.Template (templates[1][1]) + + # get all articles from the database + articles = biaweb_db.site_articles (dbname) + if articles == False: + return + + # walk through each article and generate the file in the appropriate category + # folder + for art in articles: + art_cdate = time.ctime (art[5]) + art_mdate = time.ctime (art[6]) + rating_str = html_format_rating (art[9]) + # now build the article from the article bit template + article_str = tpl_articlebit.safe_substitute (article_title = art[1], + article_cdate = art_cdate, + article_mdate = art_mdate, + rating = rating_str, + article_contents = art[4]) + + # now build the article page + articlepage_str = tpl_main.safe_substitute (site_title = conf[1], + site_url = "http://" + conf[0], + meta_keywords = art[3], + meta_description = art[2], + page_title = conf[1], + page_desc = conf[3], + contents_bit = article_str, + list_of_categories = category_str, + list_best_rated = bestrated_str, + copyright = conf[6]) + # write to the article file + try: + farticle = open (os.path.join (conf[5], art[13], art[8] + ".html"), "w+") + farticle.write (articlepage_str) + except OSError, IOError: + return False + + # finally return true + return True + # function to generate category directories and indices def generate_category_indices (dbname, conf, templates, category_str, bestrated_str, category_list): # main template @@ -217,9 +263,15 @@ def generate_site (dbname, files_to_copy, folders_to_copy, search_type_full=True if ret == False: return False + # generate the category directories and indices ret = generate_category_indices (dbname, conf, tpls, cats_str, best_rated_str, cats) if ret == False: return False + # generate the article pages + ret = generate_article_pages (dbname, conf, tpls, cats_str, best_rated_str) + if ret == False: + return False + # finally when all is successfully done return true return True