Revision: 26501 http://sourceforge.net/p/gar/code/26501 Author: wahwah Date: 2019-01-20 21:15:33 +0000 (Sun, 20 Jan 2019) Log Message: ----------- opencsw-manual: A tool to migrate from OSQA to HTML.
Added Paths: ----------- csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/ csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/README.md csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/generate_html.py csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/threads.json Added: csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/README.md =================================================================== --- csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/README.md (rev 0) +++ csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/README.md 2019-01-20 21:15:33 UTC (rev 26501) @@ -0,0 +1,5 @@ +osqa-migration +============== + +A tool to generate HTML from a JSON file as exported from the OSQA MySQL +database. Added: csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/generate_html.py =================================================================== --- csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/generate_html.py (rev 0) +++ csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/generate_html.py 2019-01-20 21:15:33 UTC (rev 26501) @@ -0,0 +1,62 @@ +#!/usr/bin/env python + +import re +import os +import os.path +import json +import pprint +from jinja2 import Template + +QUESTION_TMPL = """ +<html> +<head> +{{ title }} +</head> +<body> +{{ body }} +<p> +by: {{ username }} +</p> +{% for ans in answer %} +<hr /> +<p> +{{ ans.username }} answers: +</p> +<p> +{{ ans.body }} +</p> +{% endfor %} +</body> +</html> +""" + +def Slugify(s): + return '-'.join(x for x in re.findall('[0-9a-z_]*', s.lower()) if x) + +def WriteFile(root_dir, dir2, filename, content): + try: + os.makedirs(os.path.join(root_dir, dir2)) + except OSError as e: + pass + with open(os.path.join(root_dir, filename), 'w') as fd: + fd.write(content) + +def ProcessQuestion(question): + id = question['id'] + slug = Slugify(question['title']) + dir_name_2 = str(id) + '/' + slug + filename = dir_name_2 + '/index.html' + + tmpl = Template(QUESTION_TMPL) + html = tmpl.render(**question) + WriteFile('/home/maciej/public_html/osqa-static', dir_name_2, filename, html) + + +def main(): + with open('threads.json') as fd: + questions = json.load(fd) + for question in questions: + ProcessQuestion(question) + +if __name__ == '__main__': + main() Added: csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/threads.json =================================================================== --- csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/threads.json (rev 0) +++ csw/mgar/pkg/opencsw-manual/trunk/files/osqa-migration/threads.json 2019-01-20 21:15:33 UTC (rev 26501) @@ -0,0 +1 @@ @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.