def _getHTMLClone(self, help_topic=None): """Gets a clone of the HTML, with the footer timestamped, and version information added, ready to be modified and sent to the browser.""" clone = self.html.clone() timestamp = time.strftime('%H:%M on %A %B %d %Y', time.localtime()) clone.footer.timestamp = timestamp clone.footer.version = Version.get_version_string(self.app_for_version) if help_topic: clone.helplink.href = "help?topic=%s" % (help_topic,) return clone
def onBugreport(self): """Create a message to post to [email protected] that hopefully has enough information for us to help this person with their problem.""" self._writePreamble("Send Help Message", ("help", "Help")) report = self.html.bugreport.clone() # Prefill the report sb_ver = Version.get_version_string(self.app_for_version) if hasattr(sys, "frozen"): sb_type = "binary" else: sb_type = "source" py_ver = sys.version try: # Use "Windows" instead of "nt" or people might be confused. os_name = "Windows %d.%d.%d.%d (%s)" % sys.getwindowsversion() except AttributeError: # Not available in non-Windows, or pre 2.3 os_name = os.name report.message_body = "I am using %s (%s), with version %s of " \ "Python; my operating system is %s. I have " \ "trained %d ham and %d spam.\n\nThe problem " \ "I am having is [DESCRIBE YOUR PROBLEM HERE] " \ % (sb_ver, sb_type, py_ver, os_name, self.classifier.nham, self.classifier.nspam) domain_guess = options["pop3proxy", "remote_servers"][0] for pre in ["pop.", "pop3.", "mail.",]: if domain_guess.startswith(pre): domain_guess = domain_guess[len(pre):] report.from_addr.value = "[YOUR EMAIL ADDRESS]@%s" % (domain_guess,) report.cc_addr.value = report.from_addr.value report.subject.value = "Problem with %s" % (self.app_for_version,) # If the user has a log file, attach it. try: import win32api except ImportError: pass else: if hasattr(sys, "frozen"): temp_dir = win32api.GetTempPath() for name in ["SpamBayesService", "SpamBayesServer",]: for i in xrange(3): pn = os.path.join(temp_dir, "%s%d.log" % (name, (i+1))) if os.path.exists(pn): # I can't seem to set a default value for a # "File" input type, so have to change it to # "Text" if one is found. report.file.type = "text" report.file.value = pn # For the moment, just attach the first one # we find. break if report.file.value: break try: smtp_server = options["smtpproxy", "remote_servers"][0] except IndexError: smtp_server = None if not smtp_server: self.write(self._buildBox("Warning", "status.gif", "You will be unable to send this message from " \ "this page, as you do not have your SMTP " \ "server's details entered in your configuration. " \ "Please either <a href='config'>enter those " \ "details</a>, or copy the text below into your " \ "regular mail application.")) del report.submitrow self.write(report) self._writePostamble()