def _add_files(self, spiders):
        """
        Add all selected spiders and other files to the project
        """
        now = datetime.now().timetuple()[:6]
        extractors = self.read_file('extractors.json', deserialize=True) or {}
        files, all_files, spider_templates = self._paths(spiders)
        seen_files = set()
        for file_path in files:
            if file_path in seen_files:
                continue
            if (file_path.startswith('spiders/') and
                    file_path.endswith('.json')):
                path, contents, added = self._add_spider(file_path,
                                                         spider_templates,
                                                         extractors)
                if contents is not None:
                    self._add_file(file_path, contents, now)
            else:
                self._add_file(file_path, self.read_file(file_path), now)
        file_list = set(f.filename for f in self._archive.filelist)
        for file_path in self.required_files:
            if file_path in file_list:
                continue
            self._add_file(file_path, self.file_templates[file_path], now)

        Add all selected spiders and other files to the project
        
portia_server/portia_api/utils/download.py