예제 #1
0
def main():
    md = MetaDoc()
    
    sd_all = [SimpleDoc(info) for info in md.get_meta_info(scope = 'simple')]

    sd_list = [sd for sd in sd_all if list_check(sd)]
    sd_error_list = [sd for sd in sd_all if not list_check(sd)]

    for sd in sd_list:
        try:
            if sd.is_translated:
                print sd.meta_info['file_id'], '/', sd.en_title, '/', sd.ja_title.encode('utf-8') 
            else:
                print sd.meta_info['file_id'], '/', sd.en_title, '/', 'NOT_TRANSLATED'
        except Exception, errormsg:
            print errormsg, sd.meta_info['file_id']
예제 #2
0
파일: test.py 프로젝트: gentoojp/metadoc
#!env python

from simple_doc import SimpleDoc
from handbook import Handbook
from metadoc import MetaDoc

m = MetaDoc()

for info in [i for i in  m.get_meta_info(scope = 'handbook')]:
  doc = Handbook(info)
  if doc.has_child():
      for c in doc.childs:
          print "%s -> %s" % (c.meta_info['parent'], c.meta_info['file_en_path'])
예제 #3
0
class TransStatus(object):
    def __init__(self):
        self.base_template = Template(open(CONFIG['BASE_TAMPLATE'], 'r').read().decode('utf-8'))
        self.chapter_template = Template(open(CONFIG['CHAPTER_TEMPLATE'], 'r').read().decode('utf-8'))

        self.md = MetaDoc()
        self.categories = {}

        # Simple Documents
        sd_all = [info for info in self.md.get_meta_info(scope = 'simple')]
        sd_all = guess_categories(sd_all)
        sd_all = [SimpleDoc(info) for info in sd_all]
        sd_list = [sd for sd in sd_all if self.list_check(sd)]
        sd_error_list = [sd for sd in sd_all if not self.list_check(sd)]

        for sd in sd_list:
            self.add_doc(sd)
        
        hb_all = [info for info in self.md.get_meta_info(scope = 'handbook')]
        hb_all = guess_categories_coverpage(hb_all)
        hb_all = [Handbook(info) for info in hb_all]
        
        for hb in hb_all:
            self.add_doc(hb)

    def add_doc(self, doc):
        for (k, v) in doc.meta_info['ja_memberof'].items():
            if self.categories.has_key(k):
                self.categories[k]['member'].append(doc)
            else:
                parent = self.md.get_parent_category_title(lang='ja', c_id=k)
                self.categories.update({k: {'member': [], 'title': v, 'parent': parent}})
                self.categories[k]['member'].append(doc)

    def list_check(self, sd):
        if sd.meta_info_error:
            return False

        if sd.meta_info['file_id'] in CONFIG['NON_LIST_FILE']:
            return False

        if not sd.meta_info['en_memberof']:
            return False

        return True

    def dump(self):
        chapters = []
        for category in sorted(self.categories.items()):
            records = []
            for record in self.record(category[0]):
                records.append(record)

            if len(records) > 0:
                c_title = u"%s -> %s" % (category[1]['parent'], category[1]['title'])
                chapters.append(self.chapter_template.substitute(chapter = c_title, records = u"".join(records)))
        
        d = u"%s" % date.today().strftime('%d %b %Y')
        print self.base_template.substitute(date = d, chapters = u"".join(chapters)).encode('utf-8')


    def record(self, category_id):
        docs = self.categories[category_id]['member']
        for doc in docs:
            attrs = {
                    'en_url': escape(doc_url(doc, lang='en')),
                    'en_cvs': escape(doc_url(doc, lang='en', cvs=True)),
                    'en_cvs_rev': doc.en_cvs_rev,
                    'en_title': doc.en_title,
                    }
            if doc.is_translated:
                if doc.en_cvs_rev == doc.ja_org_rev:
                    template = Template(open(CONFIG['RECORD_LATEST_TEMPLATE'], 'r').read().decode('utf-8'))
                else:
                    template = Template(open(CONFIG['RECORD_TEMPLATE'], 'r').read().decode('utf-8'))
                    
                doc_diff_url = docdiff_url(doc)
                
                if doc_diff_url == None:
                    doc_diff_url = ""
                else:
                    doc_diff_url = CONFIG['DIFF_URL'] + doc_diff_url


                try:
                    translator = doc.translator
                except:
                    translator = ""
                attrs.update({
                    'ja_url': escape(doc_url(doc, lang='ja')),
                    'ja_cvs': escape(doc_url(doc, lang='ja', cvs=True)),
                    'ja_cvs_rev': doc.ja_org_rev,
                    'diff_url': escape(doc_url(doc, diff=True)),
                    'doc_diff_url': escape(doc_diff_url),
                    'translator': escape(translator)
                    })
            else:
                template = Template(open(CONFIG['RECORD_NOT_TRANSLATE_TEMPLATE'], 'r').read().decode('utf-8'))

            yield template.substitute(attrs)