old_contents: # This weechat plugin pipes the current weechat buffer through urlview
  #
  # Usage:
  # /urlview
  #
  # History:
  # 10-04-2015
  # Version 1.0.1: Reverse text passed to urlview
  # Version 1.0.0: initial release
  
  import distutils.spawn
  import os
  import pipes
  import weechat
  
  
  def urlview(data, buf, args):
      infolist = weechat.infolist_get("buffer_lines", buf, "")
      lines = []
      while weechat.infolist_next(infolist) == 1:
          lines.append(weechat.infolist_string(infolist, "message"))
  
      weechat.infolist_free(infolist)
  
      if not lines:
          weechat.prnt(buf, "No URLs found")
          return weechat.WEECHAT_RC_OK
  
      text = "\n".join(reversed(lines))
      response = os.system("echo %s | urlview" % pipes.quote(text))
      if response != 0:
          weechat.prnt(buf, "No URLs found")
  
      weechat.command(buf, "/window refresh")
  
      return weechat.WEECHAT_RC_OK
  
  
  def main():
      if distutils.spawn.find_executable("urlview") is None:
          return weechat.WEECHAT_RC_ERROR
  
      if not weechat.register("urlview", "Keith Smiley", "1.0.0", "MIT",
                              "Use urlview on the current buffer", "", ""):
          return weechat.WEECHAT_RC_ERROR
  
      weechat.hook_command("urlview", "Pass the current buffer to urlview", "",
                           "", "", "urlview", "")
  
  if __name__ == "__main__":
      main()
  
new_contents: # This weechat plugin pipes the current weechat buffer through urlview
  #
  # Usage:
  # /urlview
  #
  # History:
  # 10-04-2015
  # Version 1.0.0: initial release
  # Version 1.0.1: reverse text passed to urlview
  # Version 1.0.2: remove weechat color from messages
  
  import distutils.spawn
  import os
  import pipes
  import weechat
  
  
  def urlview(data, buf, args):
      infolist = weechat.infolist_get("buffer_lines", buf, "")
      lines = []
      while weechat.infolist_next(infolist) == 1:
          lines.append(
              weechat.string_remove_color(
                  weechat.infolist_string(infolist, "message"),
                  ""
              )
          )
  
      weechat.infolist_free(infolist)
  
      if not lines:
          weechat.prnt(buf, "No URLs found")
          return weechat.WEECHAT_RC_OK
  
      text = "\n".join(reversed(lines))
      response = os.system("echo %s | urlview" % pipes.quote(text))
      if response != 0:
          weechat.prnt(buf, "No URLs found")
  
      weechat.command(buf, "/window refresh")
  
      return weechat.WEECHAT_RC_OK
  
  
  def main():
      if distutils.spawn.find_executable("urlview") is None:
          return weechat.WEECHAT_RC_ERROR
  
      if not weechat.register("urlview", "Keith Smiley", "1.0.2", "MIT",
                              "Use urlview on the current buffer", "", ""):
          return weechat.WEECHAT_RC_ERROR
  
      weechat.hook_command("urlview", "Pass the current buffer to urlview", "",
                           "", "", "urlview", "")
  
  if __name__ == "__main__":
      main()
  
subject: Remove color from weechat messages