Merge pull request #24 from diego-treitos/master
Added HTML strip plugin
This commit is contained in:
47
stable/htmlstrip.py
Normal file
47
stable/htmlstrip.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
# vim: set ts=2 sw=2 sts=2 et:
|
||||
"""
|
||||
Author: Diego Blanco <diego.blanco@treitos.com>
|
||||
|
||||
Removes "unwanted" HTML tags from incoming messages and unescapes html.
|
||||
|
||||
Some XMPP clients like Adium or Pidgin send HTML tags like <font>, <b>, <u>, etc
|
||||
to format text, specially when using OTR. This plugin removes them and also
|
||||
unescapes HTML like <, >, etc that these clients also tend to escape.
|
||||
"""
|
||||
|
||||
import re
|
||||
import prof
|
||||
import html
|
||||
|
||||
#( regular expressions
|
||||
re_font = re.compile('</?FONT(>| [^>]+>)', re.IGNORECASE)
|
||||
re_br = re.compile('</?BR>', re.IGNORECASE)
|
||||
re_styles = re.compile('</?(U|B|I)>', re.IGNORECASE)
|
||||
re_link = re.compile('</?a(>| [^>]+>)', re.IGNORECASE)
|
||||
#)
|
||||
|
||||
def _htmlstrip(message):
|
||||
""" Cleans message
|
||||
"""
|
||||
try:
|
||||
_message = message
|
||||
_message = re_styles.sub( '', _message )
|
||||
_message = re_font.sub( '', _message )
|
||||
_message = re_br.sub( '\n', _message )
|
||||
_message = re_link.sub( '', _message )
|
||||
|
||||
_message = html.unescape( _message )
|
||||
except:
|
||||
return ("ERR@htmlstrip.py: " + message)
|
||||
finally:
|
||||
return (_message)
|
||||
|
||||
def prof_pre_chat_message_display(barejid, resource, message):
|
||||
return _htmlstrip(message)
|
||||
|
||||
def prof_pre_room_message_display(barejid, nick, message):
|
||||
return _htmlstrip(message)
|
||||
|
||||
def prof_pre_priv_message_display(barejid, nick, message):
|
||||
return _htmlstrip(message)
|
||||
Reference in New Issue
Block a user