jp, core: jp's clean_ustr moved to a new general utils module

This commit is contained in:
Goffi 2013-02-22 00:11:47 +01:00
commit dfe67edc26
2 changed files with 39 additions and 13 deletions

View file

@ -56,10 +56,10 @@ from optparse import OptionParser
from sat.tools.jid import JID
import gobject
from sat_frontends.bridge.DBus import DBusBridgeFrontend,BridgeExceptionNoService
from sat.tools.utils import clean_ustr
import tarfile
import tempfile
import shutil
import unicodedata
try:
from progressbar import ProgressBar, Percentage, Bar, ETA, FileTransferSpeed
except ImportError, e:
@ -198,16 +198,6 @@ class JP(object):
except AttributeError:
pass
def clean_ustr(self, ustr):
"""Clean unicode string
remove special characters from unicode string"""
def valid_chars(unicode_source):
for char in unicode_source:
if unicodedata.category(char) == 'Cc' and char!='\n':
continue
yield char
return ''.join(valid_chars(ustr))
def send_stdin(self):
"""Send incomming data on stdin to jabber contact"""
@ -217,12 +207,12 @@ class JP(object):
if header:
self.bridge.sendMessage(self.dest_jid, header, profile_key=self.profile)
while (True):
line = self.clean_ustr(sys.stdin.readline().decode('utf-8','ignore'))
line = clean_ustr(sys.stdin.readline().decode('utf-8','ignore'))
if not line:
break
self.bridge.sendMessage(self.dest_jid, line.replace("\n",""), profile_key=self.profile)
else:
self.bridge.sendMessage(self.dest_jid, header + self.clean_ustr(u"".join([stream.decode('utf-8','ignore') for stream in sys.stdin.readlines()])), profile_key=self.profile)
self.bridge.sendMessage(self.dest_jid, header + clean_ustr(u"".join([stream.decode('utf-8','ignore') for stream in sys.stdin.readlines()])), profile_key=self.profile)
def pipe_out(self):

36
src/tools/utils.py Normal file
View file

@ -0,0 +1,36 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
SAT: a jabber client
Copyright (C) 2009, 2010, 2011, 2012, 2013 Jérôme Poisson (goffi@goffi.org)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
""" various useful methods """
import unicodedata
def clean_ustr(ustr):
"""Clean unicode string
remove special characters from unicode string"""
def valid_chars(unicode_source):
for char in unicode_source:
if unicodedata.category(char) == 'Cc' and char!='\n':
continue
yield char
return ''.join(valid_chars(ustr))