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])
Example #2
0
 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 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")
Example #10
0
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"))