Mercurial > traipse
comparison orpg/chat/chat_util.py @ 18:97265586402b ornery-orc
Traipse 'OpenRPG' {090827-00}
Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc''s main goal is to offer more advanced features and enhance the productivity of the user.
Update Summary:
Update Manager is now in version 0.8. While not every button works, users can now browse the different revisions and their different changesets. The code has been refined some with feature from Core added to it. A Crash report is now created if the users software crashes. Update Manager has been moved to the Traipse Suite menu item, and a Debug Console as been added as well.
author | sirebral |
---|---|
date | Thu, 27 Aug 2009 01:04:43 -0500 |
parents | 4385a7d0efd1 |
children | ff154cf3350c |
comparison
equal
deleted
inserted
replaced
17:265b987cce4f | 18:97265586402b |
---|---|
1 # utility function; see Post() in chatwnd.py | 1 # utility function; see Post() in chatwnd.py |
2 | 2 |
3 import re | 3 import re |
4 import string | 4 import string |
5 from orpg.orpgCore import * | |
6 from orpg.tools.orpg_log import logger | |
7 from orpg.tools.decorators import debugging | |
5 | 8 |
6 #============================================ | 9 #============================================ |
7 # simple_html_repair(string) | 10 # simple_html_repair(string) |
8 # | 11 # |
9 # Crude html/xml parser/verifier. | 12 # Crude html/xml parser/verifier. |
14 # html like <script> or <li> which are known | 17 # html like <script> or <li> which are known |
15 # to cause issues with the chat display | 18 # to cause issues with the chat display |
16 # | 19 # |
17 # Created 04-25-2005 by Snowdog | 20 # Created 04-25-2005 by Snowdog |
18 #============================================= | 21 #============================================= |
22 @debugging | |
19 def simple_html_repair(string): | 23 def simple_html_repair(string): |
20 "Returns string with extra > symbols to isolate badly formated HTML" | 24 "Returns string with extra > symbols to isolate badly formated HTML" |
21 #walk though string checking positions of < and > tags. | 25 #walk though string checking positions of < and > tags. |
22 first_instance = string.find('<') | 26 first_instance = string.find('<') |
23 if first_instance == -1: return string #no html, bail out. | 27 if first_instance == -1: return string #no html, bail out. |
65 #tack them on the end to avoid open-tag conditions | 69 #tack them on the end to avoid open-tag conditions |
66 diff = string.count('<') - string.count('>') | 70 diff = string.count('<') - string.count('>') |
67 if diff > 0: | 71 if diff > 0: |
68 for d in range(1,diff): | 72 for d in range(1,diff): |
69 string = string+">" | 73 string = string+">" |
70 | |
71 return string | 74 return string |
72 | 75 |
76 """ Depricated! Might as well use the already made component.get('xml') | |
73 def strip_unicode(txt): | 77 def strip_unicode(txt): |
74 for i in xrange(len(txt)): | 78 for i in xrange(len(txt)): |
75 if txt[i] not in string.printable: | 79 if txt[i] not in string.printable: |
76 try: | 80 try: |
77 txt = txt.replace(txt[i], '&#' + str(ord(txt[i])) + ';') | 81 txt = txt.replace(txt[i], '&#' + str(ord(txt[i])) + ';') |
78 except: | 82 except: |
79 txt = txt.replace(txt[i], '{?}') | 83 txt = txt.replace(txt[i], '{?}') |
80 return txt | 84 return txt |
85 """ | |
81 | 86 |
82 #================================================ | 87 #================================================ |
83 # strip_script_tags(string) | 88 # strip_script_tags(string) |
84 # | 89 # |
85 # removes all script tags (start and end) | 90 # removes all script tags (start and end) |
86 # 04-26-2005 Snowdog | 91 # 04-26-2005 Snowdog |
87 #================================================ | 92 #================================================ |
93 @debugging | |
88 def strip_script_tags(string): | 94 def strip_script_tags(string): |
89 #kill the <script> issue | 95 #kill the <script> issue |
90 p = re.compile( '<(\s*)(/*)[Ss][Cc][Rr][Ii][Pp][Tt](.*?)>') | 96 p = re.compile( '<(\s*)(/*)[Ss][Cc][Rr][Ii][Pp][Tt](.*?)>') |
91 string = p.sub( "<!-- script tag removed //-->", string) | 97 string = p.sub( "<!-- script tag removed //-->", string) |
92 return string | 98 return string |
95 # strip_li_tags(string) | 101 # strip_li_tags(string) |
96 # | 102 # |
97 # removes all li tags (start and end) | 103 # removes all li tags (start and end) |
98 # 05-13-2005 | 104 # 05-13-2005 |
99 #================================================ | 105 #================================================ |
106 @debugging | |
100 def strip_li_tags(string): | 107 def strip_li_tags(string): |
101 #kill the <li> issue | 108 #kill the <li> issue |
102 string = re.sub( r'<(\s*)[Ll][Ii](.*?)>', r'<b><font color="#000000" size=+1>*</font></b> ', string) | 109 string = re.sub( r'<(\s*)[Ll][Ii](.*?)>', r'<b><font color="#000000" size=+1>*</font></b> ', string) |
103 string = re.sub( r'<(/*)[Ll][Ii](.*?)>', r'<br />', string) | 110 string = re.sub( r'<(/*)[Ll][Ii](.*?)>', r'<br />', string) |
104 return string | 111 return string |
109 # removes all body tags (start and end) from messages | 116 # removes all body tags (start and end) from messages |
110 # should not break the setting of custom background colors | 117 # should not break the setting of custom background colors |
111 # through legitimate means such as the OpenRPG settings. | 118 # through legitimate means such as the OpenRPG settings. |
112 # 07-27-2005 by mDuo13 | 119 # 07-27-2005 by mDuo13 |
113 #================================================ | 120 #================================================ |
121 @debugging | |
114 def strip_body_tags(string): | 122 def strip_body_tags(string): |
115 bodytag_regex = re.compile(r"""<\/?body.*?>""", re.I) | 123 bodytag_regex = re.compile(r"""<\/?body.*?>""", re.I) |
116 string = re.sub(bodytag_regex, "", string) | 124 string = re.sub(bodytag_regex, "", string) |
117 return string | 125 return string |
118 | 126 |
127 # return the text to its normal alignment, so this | 135 # return the text to its normal alignment, so this |
128 # algorithm simply closes them, allowing them to be | 136 # algorithm simply closes them, allowing them to be |
129 # used legitimately without causing much annoyance. | 137 # used legitimately without causing much annoyance. |
130 # 07-27-2005 mDuo13 | 138 # 07-27-2005 mDuo13 |
131 #================================================ | 139 #================================================ |
140 @debugging | |
132 def strip_misalignment_tags(string): | 141 def strip_misalignment_tags(string): |
133 alignment_regex = re.compile(r"""<p([^>]*?)align\s*=\s*('.*?'|".*?"|[^\s>]*)(.*?)>""", re.I) | 142 alignment_regex = re.compile(r"""<p([^>]*?)align\s*=\s*('.*?'|".*?"|[^\s>]*)(.*?)>""", re.I) |
134 string = re.sub(alignment_regex, "<p\\1\\3>", string) | 143 string = re.sub(alignment_regex, "<p\\1\\3>", string) |
135 | 144 |
136 center_regex = re.compile(r"""<center.*?>""", re.I) | 145 center_regex = re.compile(r"""<center.*?>""", re.I) |
147 # | 156 # |
148 # removes all img tags (start and end) | 157 # removes all img tags (start and end) |
149 # 05-13-2005 | 158 # 05-13-2005 |
150 # redone 07-11-2005 by mDuo13 | 159 # redone 07-11-2005 by mDuo13 |
151 #================================================ | 160 #================================================ |
161 @debugging | |
152 def strip_img_tags(string): | 162 def strip_img_tags(string): |
153 #This is a Settings definable feature, Allowing users to enable or disable image display to fix the client crash due to large img posted to chat. | 163 #This is a Settings definable feature, Allowing users to enable or disable image display to fix the client crash due to large img posted to chat. |
154 #p = re.sub( r'<(\s*)(/*)[Ii][Mm][Gg][ ][Ss][Rr][Cc][=](.*?)>', r'<!-- img tag removed //--> <a href=\3>\3</a>', string) | 164 #p = re.sub( r'<(\s*)(/*)[Ii][Mm][Gg][ ][Ss][Rr][Cc][=](.*?)>', r'<!-- img tag removed //--> <a href=\3>\3</a>', string) |
155 | 165 |
156 #this regex is substantially more powerful than the one above | 166 #this regex is substantially more powerful than the one above |