From c23b8e96dbe48481b6c37c7718a5303ffa114bd8 Mon Sep 17 00:00:00 2001 From: Rafael Ortiz Date: Tue, 10 May 2011 20:22:42 +0000 Subject: Adding sugar-es channel, matching aslo release --- diff --git a/NEWS b/NEWS index d781f9b..10bbe33 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +9 +*Adding sugar-es tab +*Adding i18n +*Fixing activity.info (adding bundle_id) + + Version 8 (2010-11-19) * Fixed inability to talk in restored channels (#2493) diff --git a/TODO b/TODO index 53bdf01..9ebff4e 100644 --- a/TODO +++ b/TODO @@ -4,3 +4,4 @@ * Pop up last active channel when loading from journal * Direct the user to localized channels other than #sugar * Multi-server support, maybe? +* Recognize locale to add other channel #sugar-lang diff --git a/activity/activity.info b/activity/activity.info index ca0ae7c..2deac84 100644 --- a/activity/activity.info +++ b/activity/activity.info @@ -1,6 +1,6 @@ [Activity] name = IRC -activity_version = 8 -service_name = org.sugarlabs.IRC +activity_version = 9 +bundle_id = org.sugarlabs.IRC-multilingua icon = activity-ircchat exec = sugar-activity ircactivity.IRCActivity diff --git a/ircactivity.py b/ircactivity.py index f3da056..09ee389 100644 --- a/ircactivity.py +++ b/ircactivity.py @@ -29,6 +29,7 @@ import purk import purk.conf import purk.windows + class IRCActivity(activity.Activity): def __init__(self, handle): @@ -63,11 +64,14 @@ class IRCActivity(activity.Activity): self.show_all() def __visibility_notify_event_cb(self, window, event): - self.is_visible = event.state != gtk.gdk.VISIBILITY_FULLY_OBSCURED - + self.is_visible = event.state != gtk.gdk.VISIBILITY_FULLY_OBSCURED + + #Configuracion por defecto + def default_config(self): self.client.join_server('us.freenode.net') self.client.add_channel('#sugar') + self.client.add_channel_other('#sugar-es') def read_file(self, file_path): if self.metadata['mime_type'] != 'text/plain': @@ -83,7 +87,7 @@ class IRCActivity(activity.Activity): self.client.join_server(data['server']) for chan in data['channels']: self.client.add_channel(chan) - + self.client.add_channel_other(chan) self.client.core.window.network.requested_joins = set() for winid in data['scrollback'].keys(): if winid in data['channels']: diff --git a/purk/ABOUT b/purk/ABOUT index a4b7cc7..46d104c 100644 --- a/purk/ABOUT +++ b/purk/ABOUT @@ -1,4 +1,4 @@ -Urk is a PyGTK IRC Client written by Vincent Povirk and Marc Liddell. +Urk [http://urk.sourceforge.net/] is a PyGTK IRC Client written by Vincent Povirk and Marc Liddell. This current version has been modified in order to have an PyGTK IRC Client Widget called 'PUrk'. diff --git a/purk/core.py b/purk/core.py index 57af19a..acc23b9 100644 --- a/purk/core.py +++ b/purk/core.py @@ -84,7 +84,7 @@ class Client(object): def run_command(self, command): self.core.run_command(command) - def join_server(self, network_name, port=6667): + def join_server(self, network_name, port=8001): command = 'server '+ network_name + ' ' + str(port) self.run_command(command) @@ -98,5 +98,10 @@ class Client(object): print "** DEBUG :: Add default channel: ", channel self.core.channels.append(channel) + def add_channel_other(self, channelother): + print "** DEBUG :: Add default channel other: ", channelother + self.core.channels.append(channelother) + + def clear_channels(self): self.core.channels = [] diff --git a/purk/irc.py b/purk/irc.py index f5bc6bd..cf6a36b 100644 --- a/purk/irc.py +++ b/purk/irc.py @@ -11,6 +11,7 @@ CONNECTING = 1 INITIALIZING = 2 CONNECTED = 3 + def parse_irc(msg, server): msg = msg.split(' ') @@ -39,9 +40,10 @@ def parse_irc(msg, server): # note: this sucks and makes very little sense, but it matches the BNF # as far as we've tested, which seems to be the goal + def default_nicks(): try: - nicks = [conf.get('nick')] + conf.get('altnicks',[]) + nicks = [conf.get('nick')] + conf.get('altnicks', []) if not nicks[0]: # We're going to generate a nick based on the user's nick name @@ -62,9 +64,9 @@ def default_nicks(): # if it's more than 11 characters (as we need 5 for - and the # hash). if len(user_name_letters) == 0: - user_name_letters = "XO" + user_name_letters = "XO" if len(user_name_letters) > 11: - user_name_letters = user_name_letters[0:11] + user_name_letters = user_name_letters[0:11] # Finally, generate a nick by using those letters plus the first # four hash bits of the user's public key. @@ -75,10 +77,11 @@ def default_nicks(): nicks = ["purk"] return nicks + class Network(object): socket = None - def __init__(self, core, server="irc.default.org", port=6667, nicks=[], + def __init__(self, core, server="irc.default.org", port=8001, nicks=[], username="", fullname="", name=None, **kwargs): self.core = core self.manager = core.manager @@ -100,10 +103,10 @@ class Network(object): 'PREFIX': '(ohv)@%+', 'CHANMODES': 'b,k,l,imnpstr', } - self.prefixes = {'o':'@', 'h':'%', 'v':'+', '@':'o', '%':'h', '+':'v'} + self.prefixes = {'o': '@', 'h': '%', 'v': '+', '@': 'o', '%': 'h', '+': 'v'} self.status = DISCONNECTED - self.failedhosts = [] #hosts we've tried and failed to connect to + self.failedhosts = [] # hosts we've tried and failed to connect to self.channel_prefixes = '&#+$' # from rfc2812 self.on_channels = set() @@ -121,9 +124,9 @@ class Network(object): #import random #random.seed() #random.shuffle(result) - if socket.has_ipv6: #prefer ipv6 - result = [(f, t, p, c, a) for (f, t, p, c, a) in result if f == socket.AF_INET6]+result - elif hasattr(socket,"AF_INET6"): #ignore ipv6 + if socket.has_ipv6: # prefer ipv6 + result = [(f, t, p, c, a) for (f, t, p, c, a) in result if f == socket.AF_INET6] + result + elif hasattr(socket, "AF_INET6"): # ignore ipv6 result = [(f, t, p, c, a) for (f, t, p, c, a) in result if f != socket.AF_INET6] self.failedlasthost = False @@ -173,8 +176,11 @@ class Network(object): # Auto join channels on connect for channel in self.core.channels: self.core.run_command("/join %s" % channel) - + for channelother in self.core.channels: + self.core.run_command("/join %s" % channelother) + #called when we read data or failed to read data + def on_read(self, result, error): if error: self.disconnect(error=error[1]) @@ -214,7 +220,7 @@ class Network(object): ) if "!" in pmsg[0]: - e_data.source, e_data.address = pmsg[0].split('!',1) + e_data.source, e_data.address = pmsg[0].split('!', 1) else: e_data.source, e_data.address = pmsg[0], '' @@ -274,10 +280,10 @@ class Network(object): def join(self, target, key='', requested=True): if key: - key = ' '+key - self.raw("JOIN %s%s" % (target,key)) + key = ' ' + key + self.raw("JOIN %s%s" % (target, key)) if requested: - for chan in target.split(' ',1)[0].split(','): + for chan in target.split(' ', 1)[0].split(','): if chan == '0': self.requested_parts.update(self.on_channels) else: @@ -289,13 +295,12 @@ class Network(object): self.raw("PART %s%s" % (target, msg)) if requested: - for chan in target.split(' ',1)[0].split(','): + for chan in target.split(' ', 1)[0].split(','): self.requested_parts.add(self.norm_case(target)) def msg(self, target, msg): self.raw("PRIVMSG %s :%s" % (target, msg)) - - + if len(msg) > 8 and msg[0:7] == "\x01ACTION": self.events.trigger( 'OwnAction', source=self.me, target=str(target), @@ -330,7 +335,10 @@ class Network(object): ) #a Network that is never connected + + class DummyNetwork(Network): + def __nonzero__(self): return False @@ -343,12 +351,15 @@ class DummyNetwork(Network): raise NotImplementedError, "Cannot connect dummy network." def raw(self, msg): - raise NotImplementedError, "Cannot send %s over the dummy network." % repr(msg) + raise NotImplementedError, "Cannot send %s over the dummfy network." % repr(msg) #dummy_network = DummyNetwork() #this was ported from srvx's tools.c + + def match_glob(text, glob, t=0, g=0): + while g < len(glob): if glob[g] in '?*': star_p = q_cnt = 0 @@ -367,7 +378,7 @@ def match_glob(text, glob, t=0, g=0): if g == len(glob): return True for i in xrange(t, len(text)): - if text[i] == glob[g] and match_glob(text, glob, i+1, g+1): + if text[i] == glob[g] and match_glob(text, glob, i + 1, g + 1): return True return False else: diff --git a/purk/windows.py b/purk/windows.py index b48630b..28965ed 100644 --- a/purk/windows.py +++ b/purk/windows.py @@ -8,6 +8,10 @@ def append(window, manager): print "** DEBUG :: Add Window: ", window manager.add(window) +def append(window1, manager): + print "** DEBUG :: Add window1: ", window1 + manager.add(window1) + def remove(window, manager): print "** DEBUG :: Remove Window: ", window manager.remove(window) @@ -297,3 +301,7 @@ class ChannelWindow(Window): def is_channel(self): return True + + def is_channel_other(self): + return True + -- cgit v0.9.1