def setUp(self): self.dirpath = tempfile.mkdtemp() makedirs(join(self.dirpath, "docs")) makedirs(join(self.dirpath, "sdk")) makedirs(join(self.dirpath, "tutorial")) makedirs(join(self.dirpath, "videos")) self.video_src = join(self.dirpath, "videos") self.sections = get_sections(self.dirpath, [self.video_src])
def test_get_sections_with_ignore_path(self): """Test get_sections and ignore one path. get_sections should ignore the dirname that starts with '.' and plus the second argument path, then return others """ videos_src = join(self.dirpath, "videos") result = get_sections(self.dirpath, videos_src) expect = ["docs", "sdk", "tutorial"] self.assertEqual(result, expect)
def test_get_sections_without_ignore_path(self): """Test get_sections method without ignoring any path. get_sections should ignore the dirname that starts with '.' then return other dirname in the source directory """ result = get_sections(self.dirpath, []) expected = ["docs", "sdk", "tutorial", "videos"] self.assertEqual(result, expected)
def compile_sections(): """Bundles each section except the videos directory. Returns: False if one of the paths in the config file does not exist """ try: click.echo( click.style("\nReading and verifying configuration file...", fg="green")) logging.info( "............................ Reading and verifying configuration file." ) important_keys = [ "division", "project_title", "project_subtitle", "source.main_path", "source.video_source", "destination.main_path", "absolute_link_color", "tracking_code" ] conf_data = readconfig(important_keys) except: click.echo("Error in main config file. That's in config.yaml," "in the root directory of nkata. Fix, then try again." " Pull from the sample source directory if necessary.") return title = conf_data["project_title"] sub_title = conf_data["project_subtitle"] src_dir = conf_data["source"]["main_path"] video_src = conf_data["source"]["video_source"] dst = conf_data["destination"]["main_path"] link_color = conf_data["absolute_link_color"] tracking_code = conf_data["tracking_code"] folder_name = conf_data["output_folder_name"] if not folder_name: folder_name = "goc" config = { "title": title, "sub_title": sub_title, "tracking_code": tracking_code, "link_color": link_color } if conf_data["division"]: division_process.append(True) division_values = list(conf_data["division"].values()) division_list = [ item for sublist in division_values for item in sublist ] division_main_list.extend(list(conf_data["division"].keys())) verify_section_config(src_dir, list(set(division_list)), video_src) for div in conf_data["division"]: dst_dir = join(dst, folder_name, div) if not isdir(dst_dir): makedirs(dst_dir) # get list of sections plus ignoring videos source if not exists(src_dir): message = ("\nError: Source Directory( " + src_dir + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.error("Source Directory( " + src_dir + " ) specified doesn't exist") return False sections = get_divisions(conf_data["division"][div], [video_src]) kwargs = (page_index, div, None, sections[1]) process_sections(src_dir, dst_dir, config, sections[0], kwargs) page_index[:] = list() else: division_process.append(False) dst_dir = join(dst, folder_name) if not isdir(dst_dir): makedirs(dst_dir) # get list of sections plus ignoring videos source if not exists(src_dir): message = ("\nError: Source Directory( " + src_dir + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.debug("Source Directory( " + src_dir + " ) specified doesn't exist") return False sections = get_sections(src_dir, [join(src_dir, video_src)]) path_to = folder_name verify_section_config(src_dir, sections, video_src) kwargs = (main_page_index, path_to, "single", None) process_sections(src_dir, dst_dir, config, sections, kwargs) click.echo(click.style(".......... Finished!", fg="green")) logging.info(".............. Finished")
def compile_videos(division=None, div_dir=None, path_to=None): """Bundles only video content. Args: division: Division object div_dir: Division directory path_to: Path to division directory Returns: False if there is an exception """ click.echo("Processing videos .....................................") try: with open("./config.yaml") as data_file: conf_data = yaml.load(data_file) except: message = ("Oops! There is no configuration file." " Check sample and try again...") click.echo(click.style(message, fg="red")) logging.debug("Oops! There is no configuration file.") return False src_dir = conf_data["source"]["main_path"] video_src = conf_data["source"]["video_source"] or "videos" dst = conf_data["destination"]["main_path"] link_color = conf_data["absolute_link_color"] tracking_code = conf_data["tracking_code"] title = conf_data["project_title"] sub_title = conf_data["project_subtitle"] folder_name = conf_data["output_folder_name"] if not folder_name: folder_name = "goc" base_path = basename(normpath(video_src)) dst_dir = join(dst, folder_name, base_path) if not exists(join(src_dir, video_src)): message = ("\nError: Video Source Directory( " + video_src + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.error("Video Source Directory( " + video_src + " ) specified doesn't exist") return False # Initialising a list of transformations video_transformation = VideoTransformation(tracking_code, JINJA_ENVIRONMENT) transformations = list() transformations.append( HtmlTransformation(color=link_color, code=tracking_code, link=False)) transformations.append(video_transformation) # copy videos sections = get_sections(join(src_dir, video_src), join(src_dir, video_src, "metadata")) if not division: kwargs = (src_dir, dst_dir, video_src, title, sub_title, tracking_code, dst, path_to) process_video_sections(sections, folder_name, transformations, video_transformation, kwargs) else: kwargs = (src_dir, div_dir, video_src, title, sub_title, tracking_code, dst, path_to) process_video_sections(division, folder_name, transformations, video_transformation, kwargs) # copy video image(jpeg) if not isdir(join(dst, folder_name, "img")): makedirs(join(dst, folder_name, "img")) shutil.copy2("img/video_image.svg", join(dst, folder_name, "img")) # copy video image(jpeg) if not isdir(join(dst, folder_name, "img")): makedirs(join(dst, folder_name, "img")) shutil.copy2("img/back-arrow.svg", join(dst, folder_name, "img"))
def compile_sections(): """Bundles each section except the videos directory. Returns: False if one of the paths in the config file does not exist """ try: click.echo( click.style("\nReading and verifying configuration file...", fg="green")) logging.info( "............................ Reading and verifying configuration file." ) important_keys = ["division", "project_title", "project_subtitle", "source.main_path", "source.video_source", "destination.main_path", "absolute_link_color", "tracking_code"] conf_data = readconfig(important_keys) except: click.echo("Error in main config file. That's in config.yaml," "in the root directory of nkata. Fix, then try again." " Pull from the sample source directory if necessary.") return title = conf_data["project_title"] sub_title = conf_data["project_subtitle"] src_dir = conf_data["source"]["main_path"] video_src = conf_data["source"]["video_source"] dst = conf_data["destination"]["main_path"] link_color = conf_data["absolute_link_color"] tracking_code = conf_data["tracking_code"] folder_name = conf_data["output_folder_name"] if not folder_name: folder_name = "goc" config = { "title": title, "sub_title": sub_title, "tracking_code": tracking_code, "link_color": link_color } if conf_data["division"]: division_process.append(True) division_values = list(conf_data["division"].values()) division_list = [item for sublist in division_values for item in sublist] division_main_list.extend(list(conf_data["division"].keys())) verify_section_config(src_dir, list(set(division_list)), video_src) for div in conf_data["division"]: dst_dir = join(dst, folder_name, div) if not isdir(dst_dir): makedirs(dst_dir) # get list of sections plus ignoring videos source if not exists(src_dir): message = ("\nError: Source Directory( " + src_dir + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.error("Source Directory( " + src_dir + " ) specified doesn't exist") return False sections = get_divisions(conf_data["division"][div], [video_src]) kwargs = (page_index, div, None, sections[1]) process_sections(src_dir, dst_dir, config, sections[0], kwargs) page_index[:] = list() else: division_process.append(False) dst_dir = join(dst, folder_name) if not isdir(dst_dir): makedirs(dst_dir) # get list of sections plus ignoring videos source if not exists(src_dir): message = ("\nError: Source Directory( " + src_dir + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.debug("Source Directory( " + src_dir + " ) specified doesn't exist") return False sections = get_sections(src_dir, [join(src_dir, video_src)]) path_to = folder_name verify_section_config(src_dir, sections, video_src) kwargs = (main_page_index, path_to, "single", None) process_sections(src_dir, dst_dir, config, sections, kwargs) click.echo(click.style(".......... Finished!", fg="green")) logging.info(".............. Finished")
def compile_videos(division=None, div_dir=None, path_to=None): """Bundles only video content. Args: division: Division object div_dir: Division directory path_to: Path to division directory Returns: False if there is an exception """ click.echo("Processing videos .....................................") try: with open("./config.yaml") as data_file: conf_data = yaml.load(data_file) except: message = ("Oops! There is no configuration file." " Check sample and try again...") click.echo(click.style(message, fg="red")) logging.debug("Oops! There is no configuration file.") return False src_dir = conf_data["source"]["main_path"] video_src = conf_data["source"]["video_source"] or "videos" dst = conf_data["destination"]["main_path"] link_color = conf_data["absolute_link_color"] tracking_code = conf_data["tracking_code"] title = conf_data["project_title"] sub_title = conf_data["project_subtitle"] folder_name = conf_data["output_folder_name"] if not folder_name: folder_name = "goc" base_path = basename(normpath(video_src)) dst_dir = join(dst, folder_name, base_path) if not exists(join(src_dir, video_src)): message = ("\nError: Video Source Directory( " + video_src + " ) specified doesn't exist\n") click.echo(click.style(message, fg="red")) logging.error("Video Source Directory( " + video_src + " ) specified doesn't exist") return False # Initialising a list of transformations video_transformation = VideoTransformation(tracking_code, JINJA_ENVIRONMENT) transformations = list() transformations.append(HtmlTransformation(color=link_color, code=tracking_code, link=False)) transformations.append(video_transformation) # copy videos sections = get_sections(join(src_dir, video_src), join(src_dir, video_src, "metadata")) if not division: kwargs = (src_dir, dst_dir, video_src, title, sub_title, tracking_code, dst, path_to) process_video_sections(sections, folder_name, transformations, video_transformation, kwargs) else: kwargs = (src_dir, div_dir, video_src, title, sub_title, tracking_code, dst, path_to) process_video_sections(division, folder_name, transformations, video_transformation, kwargs) # copy video image(jpeg) if not isdir(join(dst, folder_name, "img")): makedirs(join(dst, folder_name, "img")) shutil.copy2("img/video_image.svg", join(dst, folder_name, "img")) # copy video image(jpeg) if not isdir(join(dst, folder_name, "img")): makedirs(join(dst, folder_name, "img")) shutil.copy2("img/back-arrow.svg", join(dst, folder_name, "img"))