Code Duplication    Length = 16-22 lines in 2 locations

src/darkslide/generator.py 2 locations

@@ 156-177 (lines=22) @@
153
                    self.user_js.append({
154
                        'path_url': js_path,
155
                        'contents': '',
156
                    })
157
                elif not os.path.exists(js_path):
158
                    raise IOError('%s user js file not found' % (js_path,))
159
                else:
160
                    with codecs.open(js_path,
161
                                     encoding=self.encoding) as js_file:
162
                        self.user_js.append({
163
                            'path_url': utils.get_path_url(js_path,
164
                                                           self.relative and self.destination_dir),
165
                            'contents': js_file.read(),
166
                        })
167
168
    def add_toc_entry(self, title, level, slide_number):
169
        """ Adds a new entry to current presentation Table of Contents.
170
        """
171
        self.__toc.append({'title': title, 'number': slide_number,
172
                           'level': level})
173
174
    @property
175
    def toc(self):
176
        """ Smart getter for Table of Content list.
177
        """
178
        toc = []
179
        stack = [toc]
180
        for entry in self.__toc:
@@ 138-153 (lines=16) @@
135
                if not os.path.exists(css_path):
136
                    raise IOError('%s user css file not found' % (css_path,))
137
                with codecs.open(css_path, encoding=self.encoding) as css_file:
138
                    self.user_css.append({
139
                        'path_url': utils.get_path_url(css_path,
140
                                                       self.relative and self.destination_dir),
141
                        'contents': css_file.read(),
142
                    })
143
144
    def add_user_js(self, js_list):
145
        """ Adds supplementary user javascript files to the presentation. The
146
            ``js_list`` arg can be either a ``list`` or a string.
147
        """
148
        if isinstance(js_list, string_types):
149
            js_list = [js_list]
150
        for js_path in js_list:
151
            if js_path and js_path not in self.user_js:
152
                if js_path.startswith("http:"):
153
                    self.user_js.append({
154
                        'path_url': js_path,
155
                        'contents': '',
156
                    })