Skip to content

Instantly share code, notes, and snippets.

@perchouli
Created May 21, 2013 10:47
Show Gist options
  • Save perchouli/5618937 to your computer and use it in GitHub Desktop.
Save perchouli/5618937 to your computer and use it in GitHub Desktop.
调用XMPP给Gtalk发消息
#!/usr/bin/env python
# coding: utf-8
from pyxmpp.jid import JID
from pyxmpp.message import Message
from pyxmpp.jabber.client import JabberClient
from pyxmpp.jabber.simple import send_message
from pyxmpp import streamtls
import time
import sys
import datetime
reload(sys)
sys.setdefaultencoding('utf-8')
class Monitor():
def open_page(self):
browser = self.browser
browser.get('http://duoshuo.com/')
time.sleep(10)
for server in ['php5', 'php6', 'php7', 'php8']:
elements = browser.find_elements_by_class_name(server)
try:
idle_processes = int(elements[8].text)
active_processes = int(elements[9].text)
total_processes = int(elements[10].text)
message = 'Idle processes: '+elements[8].text+'; Active processes: ' +elements[9].text+'; Total_processes: ' +elements[10].text
print message
if total_processes > 500 or active_processes > 500:
a = Gtalk('jp.chenyang@gmail.com', u'')
a.send_msg('zhenyupku@gmail.com', message)
except:
pass
time.sleep(900)
class Gtalk():
def __init__(self, sid, spwd):
self.sid = JID(sid)
self.spwd = spwd
def send_msg(self, rid, msg):
self.rid = JID(rid)
if not self.sid.resource:
self.sid = JID(self.sid.node, self.sid.domain, 'send_message')
msg = Message(to_jid=self.rid, body=msg)
def send(stream):
stream.send(msg)
self.xmpp_do(send)
def xmpp_do(self, function):
class Client(JabberClient):
def session_started(self):
function(self.stream)
self.disconnect()
tls = streamtls.TLSSettings(require=True, verify_peer=False)
auth = ['sasl:PLAIN']
gtalkClient = Client(self.sid, self.spwd, tls_settings=tls, auth_methods=auth)
gtalkClient.connect()
try:
gtalkClient.loop(1)
except KeyboardInterrupt:
print u'disconnecting...'
gtalkClient.disconnect()
if __name__ == '__main__':
c = Monitor()
while 1:
c.open_page()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment