예제 #1
0
    def __init__(self):
        my_jid = JID(USER + '/Bot')
        self.my_jid = my_jid
        settings = XMPPSettings({
            "software_name": "qxbot",
            "software_version": __version__,
            "software_os": "Linux",
            "tls_verify_peer": False,
            "starttls": True,
            "ipv6": False,
            "poll_interval": 10,
        })

        settings["password"] = PASSWORD
        version_provider = VersionProvider(settings)
        event_queue = settings["event_queue"]
        self.webqq = WebQQ(QQ, event_queue)
        self.connected = False
        #self.mainloop = TornadoMainLoop(settings)
        self.mainloop = EpollMainLoop(settings)
        self.client = Client(my_jid, [self, version_provider], settings,
                             self.mainloop)
        self.logger = get_logger()
        self.msg_dispatch = MessageDispatch(self, self.webqq, BRIDGES)
        self.xmpp_msg_queue = Queue.Queue()
예제 #2
0
 def newclient(self):
     version_provider = VersionProvider(self.settings)
     self.client = Client(
         self.jid,
         [self, version_provider],
         self.settings,
         main_loop=self.main_loop,
     )
예제 #3
0
 def __init__(self, my_jid, settings):
     version_provider = VersionProvider(settings)
     self.main_loop = SelectMainLoop(settings)
     #self.main_loop = ThreadPool(settings)
     #self.main_loop.start(daemon=True)
     self.client = Client(my_jid, [self, version_provider],
                          settings,
                          main_loop=self.main_loop)
예제 #4
0
파일: xmpp.py 프로젝트: cash2one/FundTray
 def start(self):
     """
     服务开始
     :return:
     """
     logger.warn("XMPPClient::start listen on %s:%s:%s" % (self.protocol, self.JID, self.password))
     self.xmpp_client = Client(self.JID, [self], self.settings)
     self.xmpp_client.connect()
     self.xmpp_client.run()
     self.is_auth = False
예제 #5
0
 def __init__(self):
     self.droid = android.Android()
     settings = XMPPSettings({"software_name": "Say Chat"})
     settings["jid"] = self.droid.dialogGetInput("Google Talk Username").result
     settings["password"] = self.droid.dialogGetInput("Google Talk Password").result
     settings["server"] = "talk.google.com"
     settings["starttls"] = True
     self.client = Client(
       JID(settings["jid"]),
       [self, VersionProvider(settings)],
       settings)
예제 #6
0
 def push(self):
     settings = XMPPSettings({
         u"password": self.from_pwd,
         u"starttls": True,
         u"tls_verify_peer": False,
         u'server': self.xmpp_server,
         u'c2s_port': int(self.xmpp_port),
     })
     xml = self.msg
     client = Client(JID(self.from_jid), [MyHandler(xml.encode('utf-8'))],
                     settings)
     client.connect()
     client.run()
예제 #7
0
파일: sms.py 프로젝트: jhol/churchbot
    def __init__(self, your_jid, your_pass, target_jid, messages):
        self.target_jid = target_jid
        self.messages = messages

        self.connected = False
        self.established = False

        settings = XMPPSettings({
            u"password": your_pass,
            u"starttls": True,
            u"tls_verify_peer": False,
        })
        self.client = Client(JID(your_jid), [self], settings)
        self.client.connect()
예제 #8
0
    def __init__(self, jid, settings, botsettings=None):
        if 'software_name' not in settings:
            settings['software_name'] = self.__class__.__name__
        if 'software_version' not in settings:
            settings['software_version'] = __version__
        version_provider = VersionProvider(settings)

        handlers = []
        if ReceiptSender:
            self.receipt_sender = rs = ReceiptSender()
            handlers.append(rs)

        handlers.extend([self, version_provider])
        self.client = Client(jid, handlers, settings)

        self.presence = defaultdict(dict)
        self.subscribes = ExpiringDictionary(default_timeout=5)
        self.invited = {}
        self.avatar_hash = None
        self.settings = botsettings
예제 #9
0
파일: clubot.py 프로젝트: huahu/clubot
    def __init__(self):
        my_jid = JID(USER + '/Bot')
        self.my_jid = my_jid
        settings = XMPPSettings({
            "software_name": "Clubot",
            "software_version": __version__,
            "software_os": "Linux",
            "tls_verify_peer": False,
            "starttls": True,
            "ipv6": False,
            "poll_interval": 10,
        })

        settings["password"] = PASSWORD
        version_provider = VersionProvider(settings)
        self.connected = False
        mainloop = TornadoMainLoop(settings)
        self.client = Client(my_jid, [self, version_provider], settings,
                             mainloop)
        #self.client = Client(my_jid, [self, version_provider], settings)
        self.logger = get_logger()
        self.trytimes = 0
        self.sended = []
        Logics.empty_status()
예제 #10
0
    def send(self, req_id, stanzas):
        self.req_id = req_id
        self.stanzas = stanzas
        logging.debug(u"XmppClient start sending messages for request #%s",
                      self.req_id)
        try:
            settings = XMPPSettings({
                u"password": self.password,
                u"starttls": self.use_tls,
                u"tls_verify_peer": self.tls_verify_peer,
                u"server": self.host,
                u"port": self.port,
                u"default_stanza_timeout": self.timeout,
            })

            self.client = Client(self.from_jid, [self], settings)
            self.client.connect()
            self.client.run(timeout=self.timeout)
        except Exception, e:
            logging.error(
                "Error sending XMPP notification for request #%s: %s",
                req_id,
                e,
                exc_info=1)
예제 #11
0
    # (4) XMPPのメッセージを受信したときの処理を記述
    @message_stanza_handler()
    def handle_message(self, stanza):
        # (4-1)メッセージのタイトルを設定
        if stanza.subject:
            subject = "Re: " + stanza.subject
        else:
            subject = None

        if stanza.body:
            # (4-2)メッセージの本文の作成
            body = 'You said "' + stanza.body + '".'
            # (5) メッセージオブジェクトの作成
            msg = Message(stanza_type=stanza.stanza_type,
                          from_jid=stanza.to_jid,
                          to_jid=stanza.from_jid,
                          subject=subject,
                          body=body,
                          thread=stanza.thread)
            return msg


# (6) XMPPの初期化とイベントループ
jid = sys.argv[1]
password = sys.argv[2]
settings = XMPPSettings({"password": password})
client = Client(JID(jid), [EchoBotHandler()], settings)
client.connect()

client.run()
예제 #12
0
 def __init__(self, my_jid, args, settings):
     self.args = args
     self.client = Client(my_jid, [self], settings)
     self.presence = defaultdict(dict)
예제 #13
0
    def handle_disconnected(self, event):
        return QUIT

    @event_handler()
    def handle_all(self, event):
        logging.info(u"-- {0}".format(event))


logging.basicConfig(level=logging.INFO)  # change to 'DEBUG' to see more

your_jid = raw_input("Your jid: ")
your_password = getpass("Your password: "******"Target jid: ")
message = raw_input("Message: ")

if sys.version_info.major < 3:
    your_jid = your_jid.decode("utf-8")
    your_password = your_password.decode("utf-8")
    target_jid = target_jid.decode("utf-8")
    message = message.decode("utf-8")

handler = MyHandler(JID(target_jid), message)
settings = XMPPSettings({
    u"password": your_password,
    u"starttls": True,
    u"tls_verify_peer": False,
})
client = Client(JID(your_jid), [handler], settings)
client.connect()
client.run()
예제 #14
0
 def __init__(self, jid, settings):
     self.client = Client(JID(jid), [self], settings)
예제 #15
0
 def __init__(self, my_jid, target_jid, settings):
     self.client = Client(my_jid, [self], settings)
     self.target_jid = target_jid