diff plugins/xxurl2link.py @ 0:4385a7d0efd1 grumpy-goblin

Deleted and repushed it with the 'grumpy-goblin' branch. I forgot a y
author sirebral
date Tue, 14 Jul 2009 16:41:58 -0500
parents
children ff154cf3350c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/xxurl2link.py	Tue Jul 14 16:41:58 2009 -0500
@@ -0,0 +1,52 @@
+import os
+import orpg.pluginhandler
+import re
+
+class Plugin(orpg.pluginhandler.PluginHandler):
+    # Initialization subroutine.
+    #
+    # !self : instance of self
+    # !chat : instance of the chat window to write to
+    def __init__(self, plugindb, parent):
+        orpg.pluginhandler.PluginHandler.__init__(self, plugindb, parent)
+
+        # The Following code should be edited to contain the proper information
+        self.name = 'URL to link conversion'
+        self.author = 'tdb30 tbaleno@wrathof.com'
+        self.help = "This plugin automaticaly wraps urls in link tags\n"
+        self.help += "making them clickable."
+
+        self.url_regex = None
+        self.mailto_regex = None
+
+    def plugin_enabled(self):
+        #This is where you set any variables that need to be initalized when your plugin starts
+        self.url_regex = re.compile("(?<![\[=\"a-z0-9:/.])((?:http|ftp|gopher)://)?(?<![@a-z])((?:[a-z0-9\-]+[-.]?[a-z0-9]+)*\.(?:[a-z]{2,4})(?:[a-z0-9_=\?\#\&~\%\.\-/\:\+;]*))", re.I)
+
+        self.mailto_regex = re.compile("(?<![=\"a-z0-9:/.])((?:[a-z0-9]+[_]?[a-z0-9]*)+@{1}(?:[a-z0-9]+[-.]?[a-z0-9]+)*\.(?:[a-z]{2,4}))", re.I)
+
+    def plugin_disabled(self):
+        #Here you need to remove any commands you added, and anything else you want to happen when you disable the plugin
+        #such as closing windows created by the plugin
+        pass
+
+    def pre_parse(self, text):
+        text = self.mailto_regex.sub(self.regmailsub, text)
+        text = self.url_regex.sub(self.regurlsub, text)
+        return text
+
+    def plugin_incoming_msg(self, text, type, name, player):
+        text = self.mailto_regex.sub(self.regmailsub, text)
+        text = self.url_regex.sub(self.regurlsub, text)
+        return text, type, name
+
+    def regmailsub(self, m):
+        term = m.group(0).lower()
+        return '<a href="mailto:' + term + '">' + m.group(0) + '</a>'
+
+    def regurlsub(self, m):
+        link = m.group(2)
+        if m.group(1) != None:
+            return '<a href="' + m.group(1).lower() + link + '">' + m.group(0) + '</a>'
+        else:
+            return '<a href="http://' + link + '">' + link + '</a>'