Пример #1
0
    def handle_cleaner_var(self, var):
        """Handle one <var> element under <cleaner>.

        Example:

        <var name="basepath">
         <value search="glob">~/.config/f*</value>
         <value>~/.config/foo</value>
         <value>%AppData\foo</value>
         </var>
        """
        var_name = var.getAttribute('name')
        for value_element in var.getElementsByTagName('value'):
            if not self.os_match(value_element.getAttribute('os')):
                continue
            value_str = getText(value_element.childNodes)
            is_glob = value_element.getAttribute('search') == 'glob'
            if is_glob:
                value_list = expand_glob_join(value_str, '')
            else:
                value_list = [
                    value_str,
                ]
            if self.vars.has_key(var_name):
                # append
                self.vars[var_name] = value_list + self.vars[var_name]
            else:
                # initialize
                self.vars[var_name] = value_list
Пример #2
0
 def handle_cleaner_running(self, running_elements):
     """<running> element under <cleaner>"""
     # example: <running type="command">opera</running>
     for running in running_elements:
         detection_type = running.getAttribute('type')
         value = getText(running.childNodes)
         self.cleaner.add_running(detection_type, value)
Пример #3
0
    def handle_cleaner_var(self, var):                     
        """Handle one <var> element under <cleaner>.          cleaner 아래의 var 요소

        Example:

        <var name="basepath">
         <value search="glob">~/.config/f*</value>
         <value>~/.config/foo</value>
         <value>%AppData\foo</value>
         </var>
        """
        var_name = var.getAttribute('name')           #var태그에서 name속성을 추출
        for value_element in var.getElementsByTagName('value'):   # var태그의 value태그들 반복한다.
            if not self.os_match(value_element.getAttribute('os')):  # value태그들에서 os속성값을 추출해 운영체제와 일치하는지 확인한다.
                continue                                             # 일치하지않으면 continue
            value_str = getText(value_element.childNodes)            # value태그들의 자식노드들을 text형식으로 추출 (경로가 저장된다)
            is_glob = value_element.getAttribute('search') == 'glob'  # value태그의 search속성이 glob인지 확인하고 저장
            if is_glob:
                value_list = expand_glob_join(value_str, '') # is_glob이 참이면 추출한 경로에 운영체제에 맞게 연결하고, 
                                                             # 경로안에 환경변수가 있다면 확장하고
            else:                                            # list를 돌려주는 함수 expand_glob_join 호출
                value_list = [value_str, ]                   # 아닐경우 추출한 경로를 list에 저장
            if self.vars.has_key(var_name):
                # append
                self.vars[var_name] = value_list + self.vars[var_name] 
            else:
                # initialize
                self.vars[var_name] = value_list 
Пример #4
0
    def handle_cleaner_var(self, var):
        """Handle one <var> element under <cleaner>.

        Example:

        <var name="basepath">
         <value search="glob">~/.config/f*</value>
         <value>~/.config/foo</value>
         <value>%AppData\foo</value>
         </var>
        """
        var_name = var.getAttribute('name')
        for value_element in var.getElementsByTagName('value'):
            if not self.os_match(value_element.getAttribute('os')):
                continue
            value_str = getText(value_element.childNodes)
            is_glob = value_element.getAttribute('search') == 'glob'
            if is_glob:
                value_list = expand_glob_join(value_str, '')
            else:
                value_list = [value_str, ]
            if self.vars.has_key(var_name):
                # append
                self.vars[var_name] = value_list + self.vars[var_name]
            else:
                # initialize
                self.vars[var_name] = value_list
Пример #5
0
 def handle_cleaner_option_label(self, label):
     """<label> element under <option>"""
     self.option_name = _(getText(label.childNodes))
     translate = label.getAttribute('translate')
     translators = label.getAttribute('translators')
     if not translate or boolstr_to_bool(translate):
         self.xlate_cb(self.option_name, translators)
Пример #6
0
 def handle_cleaner_running(self, running_elements):
     """<running> element under <cleaner>"""
     # example: <running type="command">opera</running>
     for running in running_elements:
         detection_type = running.getAttribute('type')
         value = getText(running.childNodes)
         self.cleaner.add_running(detection_type, value)
Пример #7
0
 def handle_cleaner_option_label(self, label):
     """<label> element under <option>"""
     self.option_name = _(getText(label.childNodes))
     translate = label.getAttribute('translate')
     translators = label.getAttribute('translators')
     if not translate or boolstr_to_bool(translate):
         self.xlate_cb(self.option_name, translators)
Пример #8
0
 def handle_cleaner_option_label(self, label):
     """<label> element under <option>
        option태그 아래에서의 label요소"""
     self.option_name = _(getText(label.childNodes)) # label의 자식노드를 text로 추출해서 option_name에 저장
     translate = label.getAttribute('translate') # label에서 translate속성 추출
     translators = label.getAttribute('translators') # label에서 translators속성 추출
     if not translate or boolstr_to_bool(translate): 
         self.xlate_cb(self.option_name, translators) # translate 나 translate를 파이썬부울로 변환한 값이 true가아니면
Пример #9
0
    def handle_cleaner_description(self, description):
        """<description> element under <cleaner>
            cleaner태그 아래에서 description태그 요소"""
        self.cleaner.description = _(getText(description.childNodes))
        # description의 자식노드들을 text로 추출하여 self.cleaner.description에 저장
        # 여기서 description의 자식노드란 <description>설명</description> 이 있을때 설명 부분에 해당한다.

        translators = description.getAttribute('translators')
        #description에서 translators속성 값을 추출
        self.xlate_cb(self.cleaner.description, translators)
Пример #10
0
 def handle_cleaner_running(self, running_elements):
     """<running> element under <cleaner>
        cleaner태그 아래의 running태그 요소"""
     # example: <running type="command">opera</running>
     for running in running_elements: # running_elements의 요소를 running에 반복
         if not self.os_match(running.getAttribute('os')):
             continue
             # 만약 running에서 추출한 os(현재 사용중인 운영체제)가 지원하는 os와 일치하지않으면 continue
         detection_type = running.getAttribute('type')
         # running에서 type속성 값 추출 (실행 중인 프로그램의 type)
         value = getText(running.childNodes)
         # running의 자식노드들을 text로 추출
         self.cleaner.add_running(detection_type, value)
Пример #11
0
    def handle_cleaner_label(self, label):
        """<label> element under <cleaner>
           cleaner태그 아래에 label태그 요소"""

        self.cleaner.name = _(getText(label.childNodes))
        # label객체의 자식노드들을 text로 추출해서 self.cleaner.name에 저장
        translate = label.getAttribute('translate')
        #label에서 translate속성 추출
        if translate and boolstr_to_bool(translate):
            self.xlate_cb(self.cleaner.name)
            # translate 와 translate를 bool값으로 한것이 True면
            # xlate_cb함수에 self.cleaner.name값을 넣어서 사용
            """ xlate_cb함수가 번역과 관련된 함수인데 위에서 xlate_cb의 값이 None이면
                xlate_mode는 False이고이 함수는 None값을 돌려주는 함수가됨 """
            """ xlate_mode의 값이 None이 아니면 xlate_mode가 True가 되는것으로 보아
Пример #12
0
    def handle_cleaner_var(self, var):
        """Handle one <var> element under <cleaner>.

        Example:

        <var name="basepath">
         <value>~/.config/foo</value>
         <value>%AppData\foo</value>
         </var>
        """
        var_name = var.getAttribute('name')
        for value_element in var.getElementsByTagName('value'):
            value_str = getText(value_element.childNodes)
            if self.vars.has_key(var_name):
                # append
                self.vars[var_name] = [
                    value_str,
                ] + self.vars[var_name]
            else:
                # initialize
                self.vars[var_name] = [
                    value_str,
                ]
Пример #13
0
 def handle_cleaner_label(self, label):
     """<label> element under <cleaner>"""
     self.cleaner.name = _(getText(label.childNodes))
     translate = label.getAttribute('translate')
     if translate and boolstr_to_bool(translate):
         self.xlate_cb(self.cleaner.name)
Пример #14
0
 def handle_cleaner_option_warning(self, warning):
     """<warning> element under <option>"""
     self.option_warning = _(getText(warning.childNodes))
     self.xlate_cb(self.option_warning)
Пример #15
0
 def handle_cleaner_option_description(self, description):
     """<description> element under <option>"""
     self.option_description = _(getText(description.childNodes))
     translators = description.getAttribute('translators')
     self.xlate_cb(self.option_description, translators)
Пример #16
0
 def handle_cleaner_option_description(self, description):         
     """<description> element under <option>"""                     # cleaner태그 아래의 option태그 아래의 description 요소
     self.option_description = _(getText(description.childNodes))   # description의 자식노드를 text형식으로 추출
     translators = description.getAttribute('translators')          # description에서 translators 속성 추출
     self.xlate_cb(self.option_description, translators)            # xlate_cb함수 사용
Пример #17
0
 def handle_cleaner_label(self, label):
     """<label> element under <cleaner>"""
     self.cleaner.name = _(getText(label.childNodes))
     translate = label.getAttribute('translate')
     if translate and boolstr_to_bool(translate):
         self.xlate_cb(self.cleaner.name)
Пример #18
0
 def handle_cleaner_option_warning(self, warning):             # clearner 아래의 option 아래의 warning 요소
     """<warning> element under <option>"""
     self.option_warning = _(getText(warning.childNodes))      # warning의 자식노드를 text data로 추출
     self.xlate_cb(self.option_warning)                        # xlate_cb함수 사용 
Пример #19
0
 def handle_cleaner_option_warning(self, warning):
     """<warning> element under <option>"""
     self.option_warning = _(getText(warning.childNodes))
     self.xlate_cb(self.option_warning)
Пример #20
0
 def handle_cleaner_option_description(self, description):
     """<description> element under <option>"""
     self.option_description = _(getText(description.childNodes))
     translators = description.getAttribute('translators')
     self.xlate_cb(self.option_description, translators)