import sys
import plugin
import re
import urllib2
from utils import url_parser

from twisted.python import log

title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE)

class Titlegiver(plugin.Plugin):

    def __init__(self):
        plugin.Plugin.__init__(self, "Titlegiver")

    @staticmethod
    def find_title_url(url):
        return Titlegiver.find_title(urllib2.urlopen(url).read())

    @staticmethod
    def find_title(text):
        return title_re.search(text).group(1)

    def privmsg(self, server_id, user, channel, message):
        for url in url_parser.find_urls(message):
            try:
                self.say(server_id, channel, Titlegiver.find_title_url(url))
            except:
                log.msg("Unable to find title for:", url)

if __name__ == "__main__":
    sys.exit(Titlegiver.run())


import sys
import plugin
import re
import urllib2
from utils import url_parser

from twisted.python import log

title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE|re.DOTALL)

class Titlegiver(plugin.Plugin):

    def __init__(self):
        plugin.Plugin.__init__(self, "Titlegiver")

    @staticmethod
    def find_title_url(url):
        return Titlegiver.find_title(urllib2.urlopen(url).read()).strip()

    @staticmethod
    def find_title(text):
        return title_re.search(text).group(1)

    def privmsg(self, server_id, user, channel, message):
        for url in url_parser.find_urls(message):
            try:
                self.say(server_id, channel, Titlegiver.find_title_url(url))
            except:
                log.msg("Unable to find title for:", url)

if __name__ == "__main__":
    sys.exit(Titlegiver.run())


Fix for titles containing cr
Fix for titles containing cr

  import sys
  import plugin
  import re
  import urllib2
  from utils import url_parser
  
  from twisted.python import log
  
- title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE)
+ title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE|re.DOTALL)
  
  class Titlegiver(plugin.Plugin):
  
      def __init__(self):
          plugin.Plugin.__init__(self, "Titlegiver")
  
      @staticmethod
      def find_title_url(url):
-         return Titlegiver.find_title(urllib2.urlopen(url).read())
+         return Titlegiver.find_title(urllib2.urlopen(url).read()).strip()
  
      @staticmethod
      def find_title(text):
          return title_re.search(text).group(1)
  
      def privmsg(self, server_id, user, channel, message):
          for url in url_parser.find_urls(message):
              try:
                  self.say(server_id, channel, Titlegiver.find_title_url(url))
              except:
                  log.msg("Unable to find title for:", url)
  
  if __name__ == "__main__":
      sys.exit(Titlegiver.run())
  
  
Fix for titles containing cr
## Code Before:
import sys
import plugin
import re
import urllib2
from utils import url_parser

from twisted.python import log

title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE)

class Titlegiver(plugin.Plugin):

    def __init__(self):
        plugin.Plugin.__init__(self, "Titlegiver")

    @staticmethod
    def find_title_url(url):
        return Titlegiver.find_title(urllib2.urlopen(url).read())

    @staticmethod
    def find_title(text):
        return title_re.search(text).group(1)

    def privmsg(self, server_id, user, channel, message):
        for url in url_parser.find_urls(message):
            try:
                self.say(server_id, channel, Titlegiver.find_title_url(url))
            except:
                log.msg("Unable to find title for:", url)

if __name__ == "__main__":
    sys.exit(Titlegiver.run())


## Instruction:
Fix for titles containing cr
## Code After:
import sys
import plugin
import re
import urllib2
from utils import url_parser

from twisted.python import log

title_re = re.compile(r'<title>(.*?)</title>', re.IGNORECASE|re.DOTALL)

class Titlegiver(plugin.Plugin):

    def __init__(self):
        plugin.Plugin.__init__(self, "Titlegiver")

    @staticmethod
    def find_title_url(url):
        return Titlegiver.find_title(urllib2.urlopen(url).read()).strip()

    @staticmethod
    def find_title(text):
        return title_re.search(text).group(1)

    def privmsg(self, server_id, user, channel, message):
        for url in url_parser.find_urls(message):
            try:
                self.say(server_id, channel, Titlegiver.find_title_url(url))
            except:
                log.msg("Unable to find title for:", url)

if __name__ == "__main__":
    sys.exit(Titlegiver.run())

