diff --git a/evennia/commands/default/help.py b/evennia/commands/default/help.py index 9f7990722d..f52c37130e 100644 --- a/evennia/commands/default/help.py +++ b/evennia/commands/default/help.py @@ -198,7 +198,8 @@ class CmdHelp(Command): # retrieve all available commands and database topics all_cmds = [cmd for cmd in cmdset if self.check_show_help(cmd, caller)] all_topics = [topic for topic in HelpEntry.objects.all() if topic.access(caller, 'view', default=True)] - all_categories = list(set([cmd.help_category.lower() for cmd in all_cmds] + [topic.help_category.lower() for topic in all_topics])) + all_categories = list(set([cmd.help_category.lower() for cmd in all_cmds] + [topic.help_category.lower() + for topic in all_topics])) if query in ("list", "all"): # we want to list all available help entries, grouped by category @@ -222,7 +223,8 @@ class CmdHelp(Command): if suggestion_maxnum > 0: vocabulary = [cmd.key for cmd in all_cmds if cmd] + [topic.key for topic in all_topics] + all_categories [vocabulary.extend(cmd.aliases) for cmd in all_cmds] - suggestions = [sugg for sugg in string_suggestions(query, set(vocabulary), cutoff=suggestion_cutoff, maxnum=suggestion_maxnum) + suggestions = [sugg for sugg in string_suggestions(query, set(vocabulary), cutoff=suggestion_cutoff, + maxnum=suggestion_maxnum) if sugg != query] if not suggestions: suggestions = [sugg for sugg in vocabulary if sugg != query and sugg.startswith(query)] @@ -231,9 +233,9 @@ class CmdHelp(Command): match = [cmd for cmd in all_cmds if cmd == query] if len(match) == 1: formatted = self.format_help_entry(match[0].key, - match[0].get_help(caller, cmdset), - aliases=match[0].aliases, - suggested=suggestions) + match[0].get_help(caller, cmdset), + aliases=match[0].aliases, + suggested=suggestions) self.msg_help(formatted) return @@ -241,16 +243,17 @@ class CmdHelp(Command): match = list(HelpEntry.objects.find_topicmatch(query, exact=True)) if len(match) == 1: formatted = self.format_help_entry(match[0].key, - match[0].entrytext, - aliases=match[0].aliases.all(), - suggested=suggestions) + match[0].entrytext, + aliases=match[0].aliases.all(), + suggested=suggestions) self.msg_help(formatted) return # try to see if a category name was entered if query in all_categories: - self.msg_help(self.format_help_list({query:[cmd.key for cmd in all_cmds if cmd.help_category==query]}, - {query:[topic.key for topic in all_topics if topic.help_category==query]})) + self.msg_help(self.format_help_list({query: [cmd.key for cmd in all_cmds if cmd.help_category == query]}, + {query: [topic.key for topic in all_topics + if topic.help_category == query]})) return # no exact matches found. Just give suggestions. @@ -264,6 +267,7 @@ def _loadhelp(caller): else: return "" + def _savehelp(caller, buffer): entry = caller.db._editing_help caller.msg("Saved help entry.") @@ -275,6 +279,7 @@ def _quithelp(caller): caller.msg("Closing the editor.") del caller.db._editing_help + class CmdSetHelp(COMMAND_DEFAULT_CLASS): """ Edit the help database. @@ -307,7 +312,7 @@ class CmdSetHelp(COMMAND_DEFAULT_CLASS): help_category = "Building" def func(self): - "Implement the function" + """Implement the function""" switches = self.switches lhslist = self.lhslist @@ -329,7 +334,7 @@ class CmdSetHelp(COMMAND_DEFAULT_CLASS): # check if we have an old entry with the same name try: for querystr in topicstrlist: - old_entry = HelpEntry.objects.find_topicmatch(querystr) # also search by alias + old_entry = HelpEntry.objects.find_topicmatch(querystr) # also search by alias if old_entry: old_entry = list(old_entry)[0] break @@ -352,12 +357,12 @@ class CmdSetHelp(COMMAND_DEFAULT_CLASS): else: helpentry = create.create_help_entry(topicstr, self.rhs, category=category, - locks=lockstring,aliases=aliases) + locks=lockstring, aliases=aliases) self.caller.db._editing_help = helpentry EvEditor(self.caller, loadfunc=_loadhelp, savefunc=_savehelp, - quitfunc=_quithelp, key="topic {}".format(topicstr), - persistent=True) + quitfunc=_quithelp, key="topic {}".format(topicstr), + persistent=True) return if 'append' in switches or "merge" in switches or "extend" in switches: @@ -401,21 +406,21 @@ class CmdSetHelp(COMMAND_DEFAULT_CLASS): self.msg("Overwrote the old topic '%s'%s." % (topicstr, aliastxt)) else: self.msg("Topic '%s'%s already exists. Use /replace to overwrite " - "or /append or /merge to add text to it." % (topicstr, aliastxt)) + "or /append or /merge to add text to it." % (topicstr, aliastxt)) else: # no old entry. Create a new one. new_entry = create.create_help_entry(topicstr, self.rhs, category=category, - locks=lockstring,aliases=aliases) + locks=lockstring, aliases=aliases) if new_entry: self.msg("Topic '%s'%s was successfully created." % (topicstr, aliastxt)) if 'edit' in switches: # open the line editor to edit the helptext self.caller.db._editing_help = new_entry EvEditor(self.caller, loadfunc=_loadhelp, - savefunc=_savehelp, quitfunc=_quithelp, - key="topic {}".format(new_entry.key), - persistent=True) + savefunc=_savehelp, quitfunc=_quithelp, + key="topic {}".format(new_entry.key), + persistent=True) return else: self.msg("Error when creating topic '%s'%s! Contact an admin." % (topicstr, aliastxt))