def get(endpoint,data): # Define URL url = db.get_setting('server') + "Presentation/Service.svc/ajaxEndpoint/" + endpoint # Encode data data = json.dumps(data) # Replace ## with \f (because I can't get it escaped beforehand for some odd reason) data = data.replace('##',r'\f') # Add URL + data to request r = urllib2.Request(url,data) # Add extra headers r.add_header('Content-Type', 'application/json') r.add_header('X-Qooxdoo-Reponse-Type', 'application/json') r.add_header('Referer', db.get_setting('server') + 'index.aspx') # Make request, decode and return try: r = urllib2.urlopen(r) d = json.loads(r.read()) except ValueError: d = None except urllib2.URLError as e: d = None print 'URL Error', e if 'HTTP Error 503' in e: print 'pausing for 10 seconds....' import time time.sleep(10) return d
def new_session(): print "Connecting new session." # Build opener with cookies o = urllib2.build_opener(urllib2.HTTPCookieProcessor()) urllib2.install_opener(o) # Encode data data = urllib.urlencode({'mail':db.get_setting('email'), 'password':db.get_setting('password')}) # Do the login... r = o.open('https://www.lordofultima.com/en/user/login', data) response = r.read() r.close() # Extract session ID s = response.find('Id" value="') p = s + 11 sess = response[p:p+36] # Generate session key from session ID key = get("OpenSession",{'session':sess,'reset':'false'}) key = key['i'] # Save session key to database db.set_setting('session',key) # Connect session to continent chat poll(("CHAT:/c 11",)) return key
def whisper(message, target = None): if not target: target = database.get_setting('lastwhisper') print 'whispered ---> [' + target + ']' + message return connect.poll(("CHAT:/w " + target + ' ' + message,),True)
def output(message,chatroom='A'): print('said --> [%s] %s'%(chatroom, message)) text = "CHAT:" if chatroom == 'C': text += message elif 'rivatein' in chatroom: text += '/w ' + database.get_setting('lastwhisper') + ' ' + message else: text += "/a " + message connect.poll((text,),True) return True
def get_session(test=False): # Get stored session from DB session = db.get_setting('session') # Test session if required # If test fails or no session is found, generate a new one if test: session = test_session() if not session: session = new_session() return session
def runbot(): print 'hbot [%s] starting up, master!'%database.get_setting('username') while 1: bot.check() time.sleep(config.SPEED)
def testUnkown(inp): response = responder.reply_to_unknown_chat(inp) if not response: print 'Response is empty' return main.send(database.get_setting(Setting.ADMIN_ID), response)