little cleanup

parent b9a05fe4
......@@ -19,7 +19,7 @@
import sys
# disable any printout (this would mess the display)
stderr = sys.stderr
STDERR = sys.stderr
sys.stderr = open('/dev/null', 'w')
sys.stdout = open('/dev/null', 'w')
......@@ -28,21 +28,22 @@ from multiuserchat import MultiUserChat
from config import config
from handler import Handler
from gui import Gui
from curses import wrapper, initscr
from curses import initscr
import curses
import signal
signal.signal(signal.SIGINT, signal.SIG_IGN)
import traceback
def exception_handler(type_, value, tb):
def exception_handler(type_, value, trace):
"""
on any traceback: exit ncurses and print the traceback
then exit the program
"""
curses.echo()
curses.endwin()
traceback.print_exception(type_, value, tb, None, stderr)
traceback.print_exception(type_, value, trace, None, STDERR)
sys.exit()
sys.excepthook = exception_handler
......@@ -63,9 +64,18 @@ class Client(object):
self.connection.start()
self.gui = Gui(self.stdscr, MultiUserChat(self.connection.client))
def launch(self):
"""
launch
"""
self.gui.main_loop(self.stdscr)
def main():
"""
main function
"""
client = Client()
client.gui.main_loop(client.stdscr)
client.launch()
sys.exit()
if __name__ == '__main__':
......
......@@ -45,7 +45,7 @@ class Config(RawConfigParser):
elif type(default) == float:
res = self.getfloat(option)
elif type(default) == bool:
res = self.getbool(option)
res = self.getboolean(option)
else:
res = self.getstr(option)
except NoOptionError:
......@@ -75,7 +75,7 @@ class Config(RawConfigParser):
RawConfigParser.write(self, f)
f.close()
def setAndSave(self, option, value):
def set_and_save(self, option, value):
self.set(option, value)
self.save()
......
......@@ -23,7 +23,6 @@ import xmpp
from config import config
from logging import logger
from threading import Thread
from multiuserchat import MultiUserChat
from handler import Handler
class Connection(Thread):
......@@ -100,7 +99,8 @@ class Connection(Thread):
def process(self, timeout=10):
if self.online:
try:self.client.Process(timeout)
try:
self.client.Process(timeout)
except:
pass # FIXME
else:
......
......@@ -29,7 +29,6 @@ locale.setlocale(locale.LC_ALL, '')
import sys
import curses
from curses import textpad
from datetime import datetime
from handler import Handler
......@@ -48,8 +47,8 @@ class User(object):
self.color = randrange(2, 10)
def update(self, affiliation, show, status, role):
self.affiliation = None
self.show = None
self.affiliation = affiliation
self.show = show
self.status = status
self.role = role
......@@ -75,14 +74,15 @@ class Room(object):
if not msg:
logger.info('msg is None..., %s' % (nick))
return
self.lines.append((datetime.now(), nick.encode('utf-8'), msg.encode('utf-8')))
self.lines.append((datetime.now(), nick.encode('utf-8'),
msg.encode('utf-8')))
def add_info(self, info):
""" info, like join/quit/status messages"""
try:
self.lines.append((datetime.now(), info.encode('utf-8')))
return info.encode('utf-8')
except: # I JUST FUCKING HATE THIS .encode.decode.shit !!!
except:
self.lines.append((datetime.now(), info))
return info
......@@ -100,11 +100,11 @@ class Room(object):
status = stanza.getStatus()
role = stanza.getRole()
if not self.joined: # user in the room BEFORE us.
self.users.append(User(nick, affiliation, show, status, role))
if nick.encode('utf-8') == self.own_nick:
self.joined = True
return self.add_info(_("Your nickname is %s") % (nick))
return self.add_info(_("%s is in the room") % (nick.encode-('utf-8')))
self.users.append(User(nick, affiliation, show, status, role))
if nick.encode('utf-8') == self.own_nick:
self.joined = True
return self.add_info(_("Your nickname is %s") % (nick))
return self.add_info(_("%s is in the room") % (nick.encode-('utf-8')))
change_nick = stanza.getStatusCode() == '303'
kick = stanza.getStatusCode() == '307'
user = self.get_user_by_name(nick)
......@@ -239,7 +239,7 @@ class Gui(object):
self.window.do_command(key)
def current_room(self):
return self.rooms[0]
return self.rooms[0]
def get_room_by_name(self, name):
for room in self.rooms:
......@@ -293,7 +293,7 @@ class Gui(object):
nick_from = ''
room = self.get_room_by_name(room_from)
if not room:
self.information(_("message received for a non-existing room: %s") % (name))
self.information(_("message received for a non-existing room: %s") % (room_from))
return
body = stanza.getBody()
if not body:
......@@ -320,7 +320,7 @@ class Gui(object):
from_room = stanza.getFrom().getStripped()
room = self.get_room_by_name(from_room)
if not room:
self.information(_("presence received for a non-existing room: %s") % (name))
self.information(_("presence received for a non-existing room: %s") % (from_room))
if stanza.getType() == 'error':
msg = _("Error: %s") % stanza.getError()
else:
......@@ -446,7 +446,7 @@ class Gui(object):
res = roomname+'/'+nick
else:
res = roomname
config.setAndSave('rooms', bookmarked+':'+res)
config.set_and_save('rooms', bookmarked+':'+res)
def command_set(self, args):
if len(args) != 2:
......@@ -454,7 +454,7 @@ class Gui(object):
return
option = args[0]
value = args[1]
config.setAndSave(option, value)
config.set_and_save(option, value)
msg = "%s=%s" % (option, value)
room = self.current_room()
room.add_info(msg)
......
......@@ -50,7 +50,7 @@ class MultiUserChat(object):
def on_connected(self, jid):
self.own_jid = jid
rooms = config.get('rooms', '')
if rooms == '':
if rooms == '' or type(rooms) != str:
return
else:
rooms = rooms.split(':')
......
......@@ -18,7 +18,6 @@
# along with Poezio. If not, see <http://www.gnu.org/licenses/>.
import curses
from logging import logger
class Win(object):
def __init__(self, height, width, y, x, parent_win):
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment