Exemplo n.º 1
0
    def register_request(self, req):
        if not self.__connected:
            kom.Connection.__init__(self, self.__server, user=self.__connuser)
            self.__connected = 1
            kom.ReqLogin(self, self.__userno, self.__password).response()

        return kom.Connection.register_request(self, req)
Exemplo n.º 2
0
    def connect_and_login(self, connection_class):
        # Connect
        server = self.get_server()
        port = self.get_port()
        if server is None:
            return (None, "server not specified")
        try:
            conn = connection_class(server, port)
        except:
            return (None, "failed to connect to %s:%d" % (server, port))

        # Lookup name
        name = self.get_name()
        if name is None:
            return (None, "name not specified")
        persons = conn.lookup_name(name, want_pers=1, want_confs=0)
        if len(persons) == 0:
            return (None, "name doesn't match anybody")
        elif len(persons) <> 1:
            return (None, "name matches %d persons" % len(persons))
        self.person_no = persons[0][0]

        # Login
        password = self.get_password()
        if password is None:
            return (None, "password not specified")
        try:
            kom.ReqLogin(conn, self.person_no, password).response()
        except:
            return (None, 'failed to log in as "%s"' % persons[0][1])

        # Done!
        return (conn, None)
Exemplo n.º 3
0
 def login(self, pers_no, password, client_name, client_version):
     self.client_name = client_name
     self.client_version = client_version
     kom.ReqLogin(self.conn, pers_no, password).response()
     kom.ReqSetClientVersion(self.conn, self.client_name,
                             self.client_version)
     self.conn.set_user(pers_no)
Exemplo n.º 4
0
def main():
    c = thkom.ThreadedConnection("kom.lysator.liu.se")
    kom.ReqLogin(c, string.atoi(sys.argv[1]), sys.argv[2], 1).response()
    print "Logged in!"
    c.add_async_handler(kom.ASYNC_SEND_MESSAGE, handlemsg)
    kom.ReqAcceptAsync(c, [kom.ASYNC_SEND_MESSAGE]).response()
    l = thread.allocate_lock()
    l.acquire()
    l.acquire()
Exemplo n.º 5
0
def connect_and_login(options, connection_class=kom.CachedConnection):

    # Get server
    server = options.server
    if server is None:
        if os.environ.has_key("KOMSERVER"):
            server = os.environ["KOMSERVER"]
        else:
            raise Error, "server not specified"

    # Get name
    name = options.name
    if name is None:
        if os.environ.has_key("KOMNAME"):
            name = os.environ["KOMNAME"]
        else:
            raise Error, "name not specified"

    # Get password
    password = options.password
    if password is None:
        if os.environ.has_key("KOMPASSWORD"):
            password = os.environ["KOMPASSWORD"]
        else:
            password = getpass.getpass("Password for %s on %s: " %
                                       (name, server))

    # Connect
    try:
        conn = connection_class(server)
    except:
        (t, v, tb) = sys.exc_info()
        raise Error, "failed to connect (%s)" % t

    # Lookup name
    persons = conn.lookup_name(name, want_pers=1, want_confs=0)
    if len(persons) == 0:
        raise Error, "name not found"
    elif len(persons) <> 1:
        raise Error, "name not unique"
    person_no = persons[0][0]

    # Login
    try:
        kom.ReqLogin(conn, person_no, password).response()
    except kom.Error:
        (t, v, tb) = sys.exc_info()
        raise Error, "failed to log in (%s)" % t

    # Done!
    return conn
Exemplo n.º 6
0
def connect_and_login(options, connection_class=kom.CachedConnection):

    # Get server
    server = options.server
    if server is None:
        if "KOMSERVER" in os.environ:
            server = os.environ["KOMSERVER"]
        else:
            raise Error("server not specified")

    # Get name
    name = options.name
    if name is None:
        if "KOMNAME" in os.environ:
            name = os.environ["KOMNAME"]
        else:
            raise Error("name not specified")

    # Get password
    password = options.password
    if password is None:
        if "KOMPASSWORD" in os.environ:
            password = os.environ["KOMPASSWORD"]
        else:
            password = getpass.getpass(f"Password for {name} on {server}")

    # Connect
    try:
        conn = connection_class(server)
    except kom.LocalError as err:
        raise Error(f"failed to connect ({err})")

    # Lookup name
    persons = conn.lookup_name(name, want_pers=1, want_confs=0)
    if len(persons) == 0:
        raise Error("name not found")
    elif len(persons) != 1:
        raise Error("name not unique")
    person_no = persons[0][0]

    # Login
    try:
        kom.ReqLogin(conn, person_no, password).response()
    except kom.Error as err:
        raise Error(f"failed to log in ({err})")

    # Done!
    return conn
Exemplo n.º 7
0
def main():
    c = thkom.ThreadedConnection("kom.lysator.liu.se")
    kom.ReqLogin(c, string.atoi(sys.argv[1]), sys.argv[2], 1).response()
    print "Logged in!"
    q = Queue.Queue(10)
    c.add_async_handler(kom.ASYNC_SEND_MESSAGE, q)
    kom.ReqAcceptAsync(c, [kom.ASYNC_SEND_MESSAGE]).response()
    while 1:
        msg, conn = q.get()
        recr = kom.ReqGetUconfStat(c, msg.recipient)
        senr = kom.ReqGetUconfStat(c, msg.sender)
        recn = recr.response().name
        senn = senr.response().name

        print "------------------------------------------------------------"
        print "Från", senn
        print "Till", recn
        print
        print msg.message
        print "------------------------------------------------------------"
Exemplo n.º 8
0
            t = encodings.codecs.latin_1_decode( "Asså, ba, jag förstår inte vad du snackar om" )[0]

    if not replyed:
        try:
            kom.ReqSendMessage(conn, msg.sender,   encodings.codecs.latin_1_encode(t)[0] ).response()
        except:
            print traceback.print_exc()
            #print orgsearch

conn = kom.CachedConnection(KOMSERVER, 4894, "telefonisten")


persons = conn.lookup_name(AGENT_PERSON, want_pers = 1, want_confs = 0)
if len(persons) != 1:
    print "Not just one match"
else:
    person = persons[0][0]

                                  
kom.ReqLogin(conn, person, AGENT_PASSWORD, invisible = 1).response()

conn.add_async_handler(kom.ASYNC_SEND_MESSAGE, async_message)
kom.ReqAcceptAsync(conn, [kom.ASYNC_SEND_MESSAGE,]).response()

kom.ReqSetClientVersion(conn, "telefonist.py", VERSION)

while 1:
    conn.parse_present_data()
    time.sleep(0.5)

Exemplo n.º 9
0
    kom.ReqCreateText(conn, subject + "\n" + reformat_text(text), misc_info,
                      aux_items).response()


def async_message(msg, c):
    if msg.recipient:
        # Not alarm message
        return

    subject = SUBJECT % get_pers_name(msg.sender)
    print "Creating article with subject:"
    print subject
    write_article(msg.sender, subject, msg.message)


def setup_asyncs(conn):
    conn.add_async_handler(kom.ASYNC_SEND_MESSAGE, async_message)
    kom.ReqAcceptAsync(conn, [
        kom.ASYNC_SEND_MESSAGE,
    ]).response()


conn = kom.CachedConnection(KOMSERVER, 4894, "alarm_archiver")
kom.ReqLogin(conn, AGENT_PERSON, AGENT_PASSWORD, invisible=1).response()
setup_asyncs(conn)
kom.ReqSetClientVersion(conn, "alarm_archiver.py", VERSION)

while 1:
    select.select([conn.socket], [], [])
    conn.parse_present_data()
Exemplo n.º 10
0
conn = kom.CachedConnection(KOMSERVER, 4894, "invite-all")

# Lookup agent user
lookup_result = kom.ReqLookupZName(conn, AGENT_PERSON, want_pers = 1).response()
if len(lookup_result) < 1:
    print "Agent user not found"
    sys.exit(1)
elif len(lookup_result) > 2:
    print "Agent username ambigious"
    sys.exit(1)

agent_person_no = lookup_result[0].conf_no

# Login
kom.ReqLogin(conn, agent_person_no, AGENT_PASSWORD, invisible = 1).response()
kom.ReqSetClientVersion(conn, "invite-all", VERSION)

# Lookup conference number
lookup_result = kom.ReqLookupZName(conn, INVITE_CONF, want_confs = 1).response()
if len(lookup_result) < 1:
    print "Conference not found"
    sys.exit(1)
elif len(lookup_result) > 2:
    print "Conference name ambigious"
    sys.exit(1)

invite_conf_no = lookup_result[0].conf_no

# Get all persons
all_persons = kom.ReqLookupZName(conn, "", want_pers = 1).response()
Exemplo n.º 11
0
def main():
        
    conn = kom.CachedConnection(KOMSERVER, 4894, "snobben")

# lookup_name thinks # in the first position means numerical

    conn.bot = {}
    conn.authors = {}
    conn.confs = {}
    conn.ignoreconfs = []
    conn.rlock = threading.RLock()
    conn.channels = {}

    bot = 0
    
    for p in CHANNELS.keys():
        nick = AGENT_PERSON
        confs = conn.lookup_name(" "+CHANNELS[p], want_pers = 0, want_confs = 1)
        if len(confs) != 1:
            print "Conferences: not just one match"
            raise SystemExit

        if not bot:
            bot = listenBot(conn, [p], nick, ircserver(), IRCPORT )
            conn.authors[nick] = bot 
            conn.bot[nick] = bot 
            threading.Thread( None, bot.start, nick ).start()        
        else:
            bot.join( p )
            
        conn.channels[ confs[0][0] ] = p
        conn.confs[ p.lower() ] = confs[0][0]
        
        conn.ignoreconfs.append([ confs[0][0] ])
    
        print "Connected to %s" % p
    
    conn.rlock.acquire()
    persons = conn.lookup_name(AGENT_PERSON, want_pers = 1, want_confs = 0)
    conn.rlock.release()

    print conn.channels
    
    if len(persons) != 1:
        print "Persons: not just one match"
        raise SystemExit

    person = persons[0][0]
    
    conn.ignoreconfs.append( person )

    conn.rlock.acquire()
    kom.ReqLogin(conn, person, AGENT_PASSWORD, invisible = 1).response()
    
    conn.add_async_handler(kom.ASYNC_SEND_MESSAGE, async_message)
    conn.add_async_handler(kom.ASYNC_NEW_TEXT, async_text)
    
    kom.ReqAcceptAsync(conn, [kom.ASYNC_SEND_MESSAGE,kom.ASYNC_NEW_TEXT,]).response()
    
    kom.ReqSetClientVersion(conn, "snobben.py", KOMVERSION)
    conn.rlock.release()
    
    print "Starting main kom-loop"
    while 1:
        conn.rlock.acquire()
        conn.parse_present_data()
        conn.rlock.release()
        time.sleep(0.5)