Skip to content
Snippets Groups Projects
helpers.py 2.52 KiB
Newer Older
##	common/helpers.py
##
## Gajim Team:
##	- Yann Le Boulanger <asterix@lagaule.org>
##	- Vincent Hanquez <tab@snarc.org>
##	- Nikos Kouremenos <kourem@gmail.com>
##
##	Copyright (C) 2003-2005 Gajim Team
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published
## by the Free Software Foundation; version 2 only.
##
## 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 General Public License for more details.
##

nkour's avatar
nkour committed
from common import i18n
_ = i18n._
import sre
Yann Leboulanger's avatar
Yann Leboulanger committed
def get_uf_show(show):
	'''returns a userfriendly string for dnd/xa/chat
nkour's avatar
nkour committed
	and makes the rest translatable'''
Yann Leboulanger's avatar
Yann Leboulanger committed
	if show == 'dnd':
nkour's avatar
nkour committed
		uf_show = _('Busy')
Yann Leboulanger's avatar
Yann Leboulanger committed
	elif show == 'xa':
nkour's avatar
nkour committed
		uf_show = _('Not Available')
Yann Leboulanger's avatar
Yann Leboulanger committed
	elif show == 'chat':
nkour's avatar
nkour committed
		uf_show = _('Free for Chat')
	elif show == 'online':
nkour's avatar
nkour committed
		uf_show = _('Available')
nkour's avatar
nkour committed
	elif show == 'connecting':
		uf_show = _('Connecting')
	elif show == 'away':
		uf_show = _('Away')
nkour's avatar
nkour committed
	elif show == 'offline':
		uf_show = _('Offline')
	elif show == 'invisible':
		uf_show = _('Invisible')
nkour's avatar
nkour committed
	elif show == 'not in the roster':
nkour's avatar
nkour committed
		uf_show = _('Not in the roster')
nkour's avatar
nkour committed
	elif show == 'requested':
		uf_show = _('Unknown')
nkour's avatar
nkour committed
	else:
		uf_show = _('Has errors')

def get_sorted_keys(adict):
	keys = adict.keys()
	keys.sort()
	return keys

def to_one_line(msg):
	msg = msg.replace('\\', '\\\\')
	msg = msg.replace('\n', '\\n')
	# s1 = 'test\ntest\\ntest'
	# s11 = s1.replace('\\', '\\\\')
	# s12 = s11.replace('\n', '\\n')
	# s12
	# 'test\\ntest\\\\ntest'
	return msg

def from_one_line(msg):
	# (?<!\\) is a lookbehind assertion which asks anything but '\'
	# to match the regexp that follows it

	# So here match '\\n' but not if you have a '\' before that
	re = sre.compile(r'(?<!\\)\\n')
	msg = re.sub('\n', msg)
	msg = msg.replace('\\\\', '\\')
	# s12 = 'test\\ntest\\\\ntest'
	# s13 = re.sub('\n', s12)
	# s14 s13.replace('\\\\', '\\')
	# s14
	# 'test\ntest\\ntest'
	return msg

def get_uf_chatstate(chatstate):
	'''removes chatstate jargon and returns user friendly messages'''
	if chatstate == 'active':
		return _('is paying attention to the conversation')
	elif chatstate == 'inactive':
		return _('is doing something else')
	elif chatstate == 'composing':
		return _('is composing a message...')
	elif chatstate == 'paused':
		return _('paused composing a message...')
	elif chatstate == 'gone':
nkour's avatar
nkour committed
		return _('has closed the chat window or tab')