X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fmisc.py;h=6d61085731a8e35778390a0cff63c91055788f2b;hp=7051ac96cd0a5808c663bfc1e93c1a2ac91afd5a;hb=8c920b5c4b87fd8b54fd566c462c47f9e7f47693;hpb=3878bed244ee3637eb0f3fc5e08840ef3b876dea diff --git a/mudpy/misc.py b/mudpy/misc.py index 7051ac9..6d61085 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -1,6 +1,6 @@ """Miscellaneous functions for the mudpy engine.""" -# Copyright (c) 2004-2020 mudpy authors. Permission to use, copy, +# Copyright (c) 2004-2021 mudpy authors. Permission to use, copy, # modify, and distribute this software is granted under terms # provided in the LICENSE file distributed with this software. @@ -186,8 +186,7 @@ class Element: def is_restricted(self): """Boolean check whether command is administrative or debugging.""" - return self.get( - "administrative", False) or self.get("debugging", False) + return bool(self.get("administrative") or self.get("debugging")) def is_admin(self): """Boolean check whether an actor is controlled by an admin owner.""" @@ -406,6 +405,11 @@ class Universe: element.update_location() element.clean_contents() + # warn when debug mode has been engaged + if self.debug_mode(): + pending_loglines.append(( + "WARNING: Unsafe debugging mode is enabled!", 6)) + # done loading, so disallow updating elements from read-only files self.loading = False @@ -432,13 +436,13 @@ class Universe: host = self.contents["mudpy.network"].get("host") port = self.contents["mudpy.network"].get("port") - # if no host was specified, bind to all local addresses (preferring + # if no host was specified, bind to the loopback address (preferring # ipv6) if not host: if socket.has_ipv6: - host = "::" + host = "::1" else: - host = "0.0.0.0" + host = "127.0.0.1" # figure out if this is ipv4 or v6 family = socket.getaddrinfo(host, port)[0][0] @@ -1086,14 +1090,14 @@ def log(message, level=0): for line in lines: while 0 < len(universe.loglines) >= max_log_lines: del universe.loglines[0] - universe.loglines.append((level, timestamp + " " + line)) + universe.loglines.append((timestamp + " " + line, level)) def get_loglines(level, start, stop): """Return a specific range of loglines filtered by level.""" # filter the log lines - loglines = [x for x in universe.loglines if x[0] >= level] + loglines = [x for x in universe.loglines if x[1] >= level] # we need these in several places total_count = str(len(universe.loglines)) @@ -1115,11 +1119,10 @@ def get_loglines(level, start, stop): stop = 1 # some preamble - message = "There are " + str(total_count) - message += " log lines in memory and " + str(filtered_count) - message += " at or above level " + str(level) + "." - message += " The matching lines from " + str(stop) + " to " - message += str(start) + " are:$(eol)$(eol)" + message = ( + "There are %s log lines in memory and %s at or above level %s. " + "The matching lines from %s to %s are:$(eol)$(eol)" % + (total_count, filtered_count, level, stop, start)) # add the text from the selected lines if stop > 1: @@ -1127,14 +1130,13 @@ def get_loglines(level, start, stop): else: range_lines = loglines[-start:] for line in range_lines: - message += " (" + str(line[0]) + ") " + line[1].replace( - "$(", "$_(" - ) + "$(eol)" + message += " (%s) %s$(eol)" % ( + line[1], line[0].replace("$(", "$_(")) # there were no lines else: - message = "None of the " + str(total_count) - message += " lines in memory matches your request." + message = "None of the %s lines in memory matches your request." % ( + total_count) # pass it back return message @@ -1466,9 +1468,9 @@ def reload_data(): old_loglines = universe.loglines[:] for element in list(universe.contents.values()): element.destroy() - universe.load() + pending_loglines = universe.load() new_loglines = universe.loglines[:] - universe.loglines = old_loglines + new_loglines + universe.loglines = old_loglines + new_loglines + pending_loglines for user in old_userlist: user.reload() @@ -2121,8 +2123,6 @@ def setup(): log("Running version: %s" % universe.versions.version, 1) log("Initial directory: %s" % universe.startdir, 1) log("Command line: %s" % " ".join(sys.argv), 1) - if universe.debug_mode(): - log("WARNING: Unsafe debugging mode is enabled!", 6) # pass the initialized universe back return universe