Exemplo n.º 1
0
    def get_topics_list(self, skip_dirs=False, skip_internal=False):
        """
        List of topics returned on /:list
        """

        if self._cached_topics_list:
            return self._cached_topics_list

        # merging all top level lists
        sources_to_merge = ['tldr', 'cheat', 'cheat.sheets', 'learnxiny']
        if not skip_dirs:
            sources_to_merge.append("cheat.sheets dir")
        if not skip_internal:
            sources_to_merge.append("internal")

        answer = {}
        for key in sources_to_merge:
            answer.update({name: key for name in self._topic_list[key]})
        answer = sorted(set(answer.keys()))

        # doing it in this strange way to save the order of the topics
        for topic in get_learnxiny_list():
            if topic not in answer:
                answer.append(topic)

        self._cached_topics_list = answer
        return answer
Exemplo n.º 2
0
    def __init__(self):

        self._cached_topics_list = []
        self._cached_topic_type = {}

        self.adapter_internal = adapter.internal.InternalPages(
            get_topic_type=self.get_topic_type,
            get_topics_list=self.get_topics_list)
        self.adapter_unknown = adapter.internal.UnknownPages(
            get_topic_type=self.get_topic_type,
            get_topics_list=self.get_topics_list)

        self._topic_list = {
            "late.nz": adapter.latenz.get_list(),
            "internal": self.adapter_internal.get_list(),
            "tldr": adapter.cmd.get_tldr_list(),
            "cheat": adapter.cmd.get_cheat_list(),
            "cheat.sheets": adapter.cheat_sheets.get_list(),
            "cheat.sheets dir": adapter.cheat_sheets.get_dirs_list(),
            "learnxiny": get_learnxiny_list(),
        }

        self._topic_found = {
            "late.nz": adapter.latenz.is_found,
            "internal": self.adapter_internal.is_found,
            "tldr": adapter.cmd.tldr_is_found,
            "cheat": adapter.cmd.cheat_is_found,
            "cheat.sheets": adapter.cheat_sheets.is_found,
            "cheat.sheets dir": adapter.cheat_sheets.is_dir_found,
            "learnxiny": is_valid_learnxy,
        }

        # topic_type, function_getter
        # should be replaced with a decorator
        # pylint: disable=bad-whitespace
        self.topic_getters = (
            ("late.nz", adapter.latenz.get_answer),
            ("cheat.sheets", adapter.cheat_sheets.get_page),
            ("cheat.sheets dir", adapter.cheat_sheets.get_dir),
            ("tldr", adapter.cmd.get_tldr),
            ("internal", self.adapter_internal.get_page),
            ("cheat", adapter.cmd.get_cheat),
            ("learnxiny", get_learnxiny),
            ("translation", adapter.cmd.get_translation),
            ("question", adapter.question.get_page),
            ("unknown", self.adapter_unknown.get_page),
        )
Exemplo n.º 3
0
def get_topics_list(skip_dirs=False, skip_internal=False):
    """
    List of topics returned on /:list
    """

    if CACHED_TOPICS_LIST[0] != []:
        return CACHED_TOPICS_LIST[0]

    answer = CHEAT_TOPICS + TLDR_TOPICS + CHEAT_SHEETS_TOPICS
    answer = sorted(set(answer))

    # doing it in this strange way to save the order of the topics
    for topic in get_learnxiny_list():
        if topic not in answer:
            answer.append(topic)

    if not skip_dirs:
        answer += CHEAT_SHEETS_DIRS
    if not skip_internal:
        answer += INTERNAL_TOPICS

    CACHED_TOPICS_LIST[0] = answer
    return answer
Exemplo n.º 4
0
def get_topics_list(skip_dirs=False, skip_internal=False):
    """
    List of topics returned on /:list
    """

    if CACHED_TOPICS_LIST[0] != []:
        return CACHED_TOPICS_LIST[0]

    answer = CHEAT_TOPICS + TLDR_TOPICS + CHEAT_SHEETS_TOPICS
    answer = sorted(set(answer))

    # doing it in this strange way to save the order of the topics
    for topic in get_learnxiny_list():
        if topic not in answer:
            answer.append(topic)

    if not skip_dirs:
        answer += CHEAT_SHEETS_DIRS
    if not skip_internal:
        answer += INTERNAL_TOPICS

    CACHED_TOPICS_LIST[0] = answer
    return answer