def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) from commands import * self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) filter = "" if matches.group(1) is not None: filter = matches.group(1) cmds = [ help.helpmsg, awaken.helpmsg, echo.helpmsg, honor.helpmsg, whoison.helpmsg ] msg = "\n".join(cmds) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) both = False reroll = False if matches.group(1) == "+": both = True if matches.group(2) in ['r', 'reroll']: reroll = True conv_info = self.fleep.conversation_sync(constants.CHAT_SOUL) members = conv_info['header']['members'] m = [] name = "Your" members_info = self.fleep.contact_sync_list(members) for member in members_info['contacts']: if member['account_id'] == account_id: name = member['display_name'] elif member['account_id'] not in [ constants.ACCOUNT_ID, constants.JAMES, constants.JENNY, constants.GTJ, constants.ANDERAN, constants.JOEYBANANAS, constants.SPOONY ]: m.append(member['display_name']) logging.debug("members: {0}".format(m)) seed = (datetime.datetime.utcnow() - datetime.timedelta(hours=15)).date().isoformat() + account_id random.seed(seed) first = m.pop(random.randint(0, len(m) - 1)) second = m.pop(random.randint(0, len(m) - 1)) msg = "" if both == False: msg = "{0} honor of the day is *{1}*".format( name, first if reroll == False else second) else: msg = "{0} honor of the day is *{1}* and *{2}*".format( name, first, second) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) hours = 1.0 try: if matches.group(1) is not None: hours = float(matches.group(1)) except ValueError: self.fleep.message_send( conv_id, "Error: Please specify time in hours. Example: {0}".format( usage)) return conv_info = self.fleep.conversation_sync(conv_id) members = conv_info['header']['members'] m = {} members_info = self.fleep.contact_sync_list(members) for member in members_info['contacts']: if member['account_id'] != constants.ACCOUNT_ID and member.has_key( 'activity_time'): relative_time = time.time() - float(member['activity_time']) if relative_time <= hours * 3600: m[member['display_name']] = { 'relative_time': relative_time, 'msg': secondsToOutput(member['display_name'], relative_time) } logging.debug("members: {0}".format(m)) sorted_m = sorted(m.items(), key=lambda x: x[1]['relative_time'], reverse=True) msg = ":::\nLast seen on Fleep...\n{0}".format("\n".join( map(lambda x: x[1]['msg'], sorted_m))) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) from commands import * self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) filter = ""; if matches.group(1) is not None: filter = matches.group(1) cmds = [ help.helpmsg, awaken.helpmsg, echo.helpmsg, honor.helpmsg, whoison.helpmsg ] msg = "\n".join(cmds) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) both = False reroll = False if matches.group(1) == "+": both = True if matches.group(2) in [ 'r', 'reroll' ]: reroll = True conv_info = self.fleep.conversation_sync(constants.CHAT_SOUL) members = conv_info['header']['members'] m = [] name = "Your" members_info = self.fleep.contact_sync_list(members) for member in members_info['contacts']: if member['account_id'] == account_id: name = member['display_name'] elif member['account_id'] not in [ constants.ACCOUNT_ID, constants.JAMES, constants.JENNY, constants.GTJ, constants.ANDERAN, constants.JOEYBANANAS, constants.SPOONY ]: m.append(member['display_name']) logging.debug("members: {0}".format(m)) seed = (datetime.datetime.utcnow() - datetime.timedelta(hours = 15)).date().isoformat() + account_id random.seed(seed) first = m.pop(random.randint(0, len(m) - 1)) second = m.pop(random.randint(0, len(m) - 1)) msg = "" if both == False: msg = "{0} honor of the day is *{1}*".format(name, first if reroll == False else second) else: msg = "{0} honor of the day is *{1}* and *{2}*".format(name, first, second) self.fleep.message_send(conv_id, msg) self.response.write(msg)
class help(webapp2.RequestHandler): fleep = None conv_id = "" message = "" def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) from commands import * self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) filter = "" if matches.group(1) is not None: filter = matches.group(1) cmds = [ help.helpmsg, awaken.helpmsg, echo.helpmsg, honor.helpmsg, whoison.helpmsg ] msg = "\n".join(cmds) self.fleep.message_send(conv_id, msg) self.response.write(msg) def post(self): self.get() def handle_exception(self, exception, mode): if self.fleep is not None: self.fleep.message_send(self.conv_id, "Error: Something unexpected happened.") self.fleep.message_send( constants.CHAT_JAMES, "An error occurred when processing: {0}\n:::\n{1}".format( self.message, exception)) # run the default exception handling webapp2.RequestHandler.handle_exception(self, exception, mode)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) if matches is None: return self.fleep.message_send(conv_id, matches.group(1)) self.response.write(matches.group(1))
class help(webapp2.RequestHandler): fleep = None conv_id = "" message = "" def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) from commands import * self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) filter = ""; if matches.group(1) is not None: filter = matches.group(1) cmds = [ help.helpmsg, awaken.helpmsg, echo.helpmsg, honor.helpmsg, whoison.helpmsg ] msg = "\n".join(cmds) self.fleep.message_send(conv_id, msg) self.response.write(msg) def post(self): self.get() def handle_exception(self, exception, mode): if self.fleep is not None: self.fleep.message_send(self.conv_id, "Error: Something unexpected happened.") self.fleep.message_send(constants.CHAT_JAMES, "An error occurred when processing: {0}\n:::\n{1}".format(self.message, exception)) # run the default exception handling webapp2.RequestHandler.handle_exception(self, exception, mode)
class echo(webapp2.RequestHandler): fleep = None conv_id = "" message = "" def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) if matches is None: return self.fleep.message_send(conv_id, matches.group(1)) self.response.write(matches.group(1)) def post(self): self.get() def handle_exception(self, exception, mode): if self.fleep is not None: self.fleep.message_send(self.conv_id, "Error: Something unexpected happened.") self.fleep.message_send( constants.CHAT_JAMES, "An error occurred when processing: {0}\n:::\n{1}".format( self.message, exception)) # run the default exception handling webapp2.RequestHandler.handle_exception(self, exception, mode)
class echo(webapp2.RequestHandler): fleep = None conv_id = "" message = "" def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') cron = self.request.get('cron') if (constants.DEBUG and cron is not None): return self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) if matches is None: return self.fleep.message_send(conv_id, matches.group(1)) self.response.write(matches.group(1)) def post(self): self.get() def handle_exception(self, exception, mode): if self.fleep is not None: self.fleep.message_send(self.conv_id, "Error: Something unexpected happened.") self.fleep.message_send(constants.CHAT_JAMES, "An error occurred when processing: {0}\n:::\n{1}".format(self.message, exception)) # run the default exception handling webapp2.RequestHandler.handle_exception(self, exception, mode)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) hours = 1.0; try: if matches.group(1) is not None: hours = float(matches.group(1)) except ValueError: self.fleep.message_send(conv_id, "Error: Please specify time in hours. Example: {0}".format(usage)) return conv_info = self.fleep.conversation_sync(conv_id) members = conv_info['header']['members'] m = {} members_info = self.fleep.contact_sync_list(members) for member in members_info['contacts']: if member['account_id'] != constants.ACCOUNT_ID and member.has_key('activity_time'): relative_time = time.time() - float(member['activity_time']) if relative_time <= hours * 3600: m[member['display_name']] = { 'relative_time': relative_time, 'msg': secondsToOutput(member['display_name'], relative_time) } logging.debug("members: {0}".format(m)) sorted_m = sorted(m.items(), key = lambda x: x[1]['relative_time'], reverse = True) msg = ":::\nLast seen on Fleep...\n{0}".format("\n".join(map(lambda x: x[1]['msg'], sorted_m))) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') cron = self.request.get('cron') if (constants.DEBUG and cron is not None): return self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) if matches is None: return self.fleep.message_send(conv_id, matches.group(1)) self.response.write(matches.group(1))
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) if matches is None: self.fleep.message_send( conv_id, "Error: Please specify a hero. Example: {0}".format(usage)) return heroes = re.split("[, ]", matches.group(1).lower()) sets = utils.GetGoogleSheet( "1w-w0GPyvXt-Aouqkhh5CkGUSsI0m3kevuhq9vZ83lQE", "763917879", "select B, C, D, E", 0, "B18:E50") mats = utils.GetGoogleSheet( "1w-w0GPyvXt-Aouqkhh5CkGUSsI0m3kevuhq9vZ83lQE", "763917879", "select B, C, D, E, F, G, H, I, J", 0, "B3:J6") heroes1 = [] heroes2 = [] heroes3 = [] heroes4 = [] for row in sets.get('table').get('rows'): if row.get('c')[0] is not None and row.get('c')[0].get( 'v') is not None and any( s in row.get('c')[0].get('v').lower() for s in heroes): heroes1.append(row.get('c')[0].get('v')) if row.get('c')[1] is not None and row.get('c')[1].get( 'v') is not None and any( s in row.get('c')[1].get('v').lower() for s in heroes): heroes2.append(row.get('c')[1].get('v')) if row.get('c')[2] is not None and row.get('c')[2].get( 'v') is not None and any( s in row.get('c')[2].get('v').lower() for s in heroes): heroes3.append(row.get('c')[2].get('v')) if row.get('c')[3] is not None and row.get('c')[3].get( 'v') is not None and any( s in row.get('c')[3].get('v').lower() for s in heroes): heroes4.append(row.get('c')[3].get('v')) msg = "" if len(heroes1) > 0: msg += ":::\nMats required to awaken '{0}':\n- {1}\n- {2}\n- {3}\n- {4}\n- {5}\n- {6}\nDungeons:\n- {7}\n- {8}\n- {9}\n:::\n".format( ", ".join(heroes1), mats.get('table').get('rows')[0].get('c')[0].get('v'), mats.get('table').get('rows')[0].get('c')[1].get('v'), mats.get('table').get('rows')[0].get('c')[2].get('v'), mats.get('table').get('rows')[0].get('c')[3].get('v'), mats.get('table').get('rows')[0].get('c')[4].get('v'), mats.get('table').get('rows')[0].get('c')[5].get('v'), mats.get('table').get('rows')[0].get('c')[6].get('v'), mats.get('table').get('rows')[0].get('c')[7].get('v'), mats.get('table').get('rows')[0].get('c')[8].get('v')) if len(heroes2) > 0: msg += ":::\nMats required to awaken '{0}':\n- {1}\n- {2}\n- {3}\n- {4}\n- {5}\n- {6}\nDungeons:\n- {7}\n- {8}\n- {9}\n:::\n".format( ", ".join(heroes2), mats.get('table').get('rows')[1].get('c')[0].get('v'), mats.get('table').get('rows')[1].get('c')[1].get('v'), mats.get('table').get('rows')[1].get('c')[2].get('v'), mats.get('table').get('rows')[1].get('c')[3].get('v'), mats.get('table').get('rows')[1].get('c')[4].get('v'), mats.get('table').get('rows')[1].get('c')[5].get('v'), mats.get('table').get('rows')[1].get('c')[6].get('v'), mats.get('table').get('rows')[1].get('c')[7].get('v'), mats.get('table').get('rows')[1].get('c')[8].get('v')) if len(heroes3) > 0: msg += ":::\nMats required to awaken '{0}':\n- {1}\n- {2}\n- {3}\n- {4}\n- {5}\n- {6}\nDungeons:\n- {7}\n- {8}\n- {9}\n:::\n".format( ", ".join(heroes3), mats.get('table').get('rows')[2].get('c')[0].get('v'), mats.get('table').get('rows')[2].get('c')[1].get('v'), mats.get('table').get('rows')[2].get('c')[2].get('v'), mats.get('table').get('rows')[2].get('c')[3].get('v'), mats.get('table').get('rows')[2].get('c')[4].get('v'), mats.get('table').get('rows')[2].get('c')[5].get('v'), mats.get('table').get('rows')[2].get('c')[6].get('v'), mats.get('table').get('rows')[2].get('c')[7].get('v'), mats.get('table').get('rows')[2].get('c')[8].get('v')) if len(heroes4) > 0: msg += ":::\nMats required to awaken '{0}':\n- {1}\n- {2}\n- {3}\n- {4}\n- {5}\n- {6}\nDungeons:\n- {7}\n- {8}\n- {9}\n:::\n".format( ", ".join(heroes4), mats.get('table').get('rows')[3].get('c')[0].get('v'), mats.get('table').get('rows')[3].get('c')[1].get('v'), mats.get('table').get('rows')[3].get('c')[2].get('v'), mats.get('table').get('rows')[3].get('c')[3].get('v'), mats.get('table').get('rows')[3].get('c')[4].get('v'), mats.get('table').get('rows')[3].get('c')[5].get('v'), mats.get('table').get('rows')[3].get('c')[6].get('v'), mats.get('table').get('rows')[3].get('c')[7].get('v'), mats.get('table').get('rows')[3].get('c')[8].get('v')) if len(heroes1) + len(heroes2) + len(heroes3) + len(heroes4) == 0: msg = "No awaken info found for '{0}'".format(matches.group(1)) self.fleep.message_send(conv_id, msg) self.response.write(msg)
def get(self): self.fleep = FleepApi(constants.FLEEP_HOST) self.fleep.account_login(constants.FLEEP_USERNAME, constants.FLEEP_PASSWORD) self.response.headers['Content-Type'] = 'text/plain' conv_id = self.request.get('conv_id') account_id = self.request.get('account_id') message = self.request.get('message') self.conv_id = conv_id self.message = message matches = re.search(regex, message, flags=re.M | re.S | re.I) search = matches.group(1) if search is None: self.fleep.message_send(conv_id, "Error: Please specify a guild member. Example: {0}".format(usage)) self.response.write("Error: Please specify a guild member. Example: {0}".format(usage)) return members = re.split("[, ]", search.lower()) query = "select {0} where lower({1}) matches '.*({2}).*'".format(utils.GoogleSheetRange("A", "CV"), "A", "|".join(members)) stats = utils.GetGoogleSheet("1Ge91fmZEbNNLzAc4LwoeIqN8w5pdYMwbxgNuAjd25Pk", "720812518", query, 1, "A1:CZ50") msg = "No member(s) found for '{0}'. Check spelling.".format(search) if (len(stats.get('table').get('rows')) == 0): self.fleep.message_send(conv_id, msg) self.response.write(msg) return col_name = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('name') col_hero1a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero1a') col_upgrade1a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade1a') col_skill1a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill1a') col_2ndskill1a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill1a') col_hero2a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero2a') col_upgrade2a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade2a') col_skill2a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill2a') col_2ndskill2a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill2a') col_hero3a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero3a') col_upgrade3a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade3a') col_skill3a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill3a') col_2ndskill3a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill3a') col_hero4a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero4a') col_upgrade4a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade4a') col_skill4a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill4a') col_2ndskill4a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill4a') col_hero5a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero5a') col_upgrade5a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade5a') col_skill5a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill5a') col_2ndskill5a = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill5a') col_hero1b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero1b') col_upgrade1b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade1b') col_skill1b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill1b') col_2ndskill1b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill1b') col_hero2b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero2b') col_upgrade2b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade2b') col_skill2b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill2b') col_2ndskill2b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill2b') col_hero3b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero3b') col_upgrade3b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade3b') col_skill3b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill3b') col_2ndskill3b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill3b') col_hero4b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero4b') col_upgrade4b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade4b') col_skill4b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill4b') col_2ndskill4b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill4b') col_hero5b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('hero5b') col_upgrade5b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('upgrade5b') col_skill5b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('shortskill5b') col_2ndskill5b = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('short2ndskill5b') col_pet1 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('pet 1') col_petstar1 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('pet star 1') col_pet2 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('pet 2') col_petstar2 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('pet star 2') col_transcend1 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('lvl extreme 1') col_transcend2 = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('lvl extreme 2') col_7skill = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('7*skill') col_heroquality = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('heroquality') col_rating = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('rating') col_rank = list(map((lambda x: x.get('label').lower()), stats.get('table').get('cols'))).index('rank') len_name = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_name]))), stats.get('table').get('rows'))), 0)) + 2 len_hero1 = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero1a])) + len(self.vget(x.get('c')[col_upgrade1a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero1b])) + len(self.vget(x.get('c')[col_upgrade1b]))), stats.get('table').get('rows'))), 0)) + 3 len_skill1 = max(5, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill1a])) + len(self.vget(x.get('c')[col_2ndskill1a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill1b])) + len(self.vget(x.get('c')[col_2ndskill1b]))), stats.get('table').get('rows'))), 0)) + 3 len_hero2 = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero2a])) + len(self.vget(x.get('c')[col_upgrade2a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero2b])) + len(self.vget(x.get('c')[col_upgrade2b]))), stats.get('table').get('rows'))), 0)) + 3 len_skill2 = max(5, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill2a])) + len(self.vget(x.get('c')[col_2ndskill2a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill2b])) + len(self.vget(x.get('c')[col_2ndskill2b]))), stats.get('table').get('rows'))), 0)) + 3 len_hero3 = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero3a])) + len(self.vget(x.get('c')[col_upgrade3a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero3b])) + len(self.vget(x.get('c')[col_upgrade3b]))), stats.get('table').get('rows'))), 0)) + 3 len_skill3 = max(5, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill3a])) + len(self.vget(x.get('c')[col_2ndskill3a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill3b])) + len(self.vget(x.get('c')[col_2ndskill3b]))), stats.get('table').get('rows'))), 0)) + 3 len_hero4 = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero4a])) + len(self.vget(x.get('c')[col_upgrade4a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero4b])) + len(self.vget(x.get('c')[col_upgrade4b]))), stats.get('table').get('rows'))), 0)) + 3 len_skill4 = max(5, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill4a])) + len(self.vget(x.get('c')[col_2ndskill4a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill4b])) + len(self.vget(x.get('c')[col_2ndskill4b]))), stats.get('table').get('rows'))), 0)) + 3 len_hero5 = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero5a])) + len(self.vget(x.get('c')[col_upgrade5a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_hero5b])) + len(self.vget(x.get('c')[col_upgrade5b]))), stats.get('table').get('rows'))), 0)) + 3 len_skill5 = max(5, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill5a])) + len(self.vget(x.get('c')[col_2ndskill5a]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_skill5b])) + len(self.vget(x.get('c')[col_2ndskill5b]))), stats.get('table').get('rows'))), 0)) + 3 len_pet = max(3, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_petstar1])) + len(self.vget(x.get('c')[col_pet1]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_petstar2])) + len(self.vget(x.get('c')[col_pet2]))), stats.get('table').get('rows'))), 0)) + 4 len_transcend = max(6, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_transcend1]))), stats.get('table').get('rows'))), 0), reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_transcend2]))), stats.get('table').get('rows'))), 0)) + 2 len_skill7s = max(7, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_7skill]))), stats.get('table').get('rows'))), 0)) + 2 len_heroquality = max(11, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_heroquality]))), stats.get('table').get('rows'))), 0)) + 2 len_rating = max(6, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_rating]))), stats.get('table').get('rows'))), 0)) + 2 len_rank = max(4, reduce(max, list(map((lambda x: len(self.vget(x.get('c')[col_rank]))), stats.get('table').get('rows'))), 0)) msg = ":::\n{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}\n".format( "Name".ljust(len_name), "Hero1".ljust(len_hero1), "Skill1".ljust(len_skill1), "Hero2".ljust(len_hero2), "Skill2".ljust(len_skill2), "Hero3".ljust(len_hero3), "Skill3".ljust(len_skill3), "Hero4".ljust(len_hero4), "Skill4".ljust(len_skill4), "Hero5".ljust(len_hero5), "Skill5".ljust(len_skill5), "Pet".ljust(len_pet), "Transc".ljust(len_transcend), "7*Skill".ljust(len_skill7s), "HeroQuality".ljust(len_heroquality), "Rating".ljust(len_rating), "Rank".ljust(len_rank)) msg += "\n".join("{0}\n{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}\n{18}{19}{20}{21}{22}{23}{24}{25}{26}{27}{28}{29}{30}".format( "-".ljust(len_name + len_hero1 + len_skill1 + len_hero2 + len_skill2 + len_hero3 + len_skill3 + len_hero4 + len_skill4 + len_hero5 + len_skill5 + len_pet + len_transcend + len_skill7s + len_heroquality + len_rating + len_rank, "-"), self.vget(x.get('c')[col_name]).ljust(len_name), (self.vget(x.get('c')[col_hero1a]) + "+" + self.vget(x.get('c')[col_upgrade1a])).ljust(len_hero1), (self.vget(x.get('c')[col_skill1a]) + " " + self.vget(x.get('c')[col_2ndskill1a])).ljust(len_skill1), (self.vget(x.get('c')[col_hero2a]) + "+" + self.vget(x.get('c')[col_upgrade2a])).ljust(len_hero2), (self.vget(x.get('c')[col_skill2a]) + " " + self.vget(x.get('c')[col_2ndskill2a])).ljust(len_skill2), (self.vget(x.get('c')[col_hero3a]) + "+" + self.vget(x.get('c')[col_upgrade3a])).ljust(len_hero3), (self.vget(x.get('c')[col_skill3a]) + " " + self.vget(x.get('c')[col_2ndskill3a])).ljust(len_skill3), (self.vget(x.get('c')[col_hero4a]) + "+" + self.vget(x.get('c')[col_upgrade4a])).ljust(len_hero4), (self.vget(x.get('c')[col_skill4a]) + " " + self.vget(x.get('c')[col_2ndskill4a])).ljust(len_skill4), (self.vget(x.get('c')[col_hero5a]) + "+" + self.vget(x.get('c')[col_upgrade5a])).ljust(len_hero5), (self.vget(x.get('c')[col_skill5a]) + " " + self.vget(x.get('c')[col_2ndskill5a])).ljust(len_skill5), (self.vget(x.get('c')[col_petstar1]) + "* " + self.vget(x.get('c')[col_pet1])).ljust(len_pet), self.vget(x.get('c')[col_transcend1]).ljust(len_transcend), self.vget(x.get('c')[col_7skill]).ljust(len_skill7s), self.vget(x.get('c')[col_heroquality]).ljust(len_heroquality), self.vget(x.get('c')[col_rating]).ljust(len_rating), self.vget(x.get('c')[col_rank]).ljust(len_rank), "".ljust(len_name), (self.vget(x.get('c')[col_hero1b]) + "+" + self.vget(x.get('c')[col_upgrade1b])).ljust(len_hero1), (self.vget(x.get('c')[col_skill1b]) + " " + self.vget(x.get('c')[col_2ndskill1b])).ljust(len_skill1), (self.vget(x.get('c')[col_hero2b]) + "+" + self.vget(x.get('c')[col_upgrade2b])).ljust(len_hero2), (self.vget(x.get('c')[col_skill2b]) + " " + self.vget(x.get('c')[col_2ndskill2b])).ljust(len_skill2), (self.vget(x.get('c')[col_hero3b]) + "+" + self.vget(x.get('c')[col_upgrade3b])).ljust(len_hero3), (self.vget(x.get('c')[col_skill3b]) + " " + self.vget(x.get('c')[col_2ndskill3b])).ljust(len_skill3), (self.vget(x.get('c')[col_hero4b]) + "+" + self.vget(x.get('c')[col_upgrade4b])).ljust(len_hero4), (self.vget(x.get('c')[col_skill4b]) + " " + self.vget(x.get('c')[col_2ndskill4b])).ljust(len_skill4), (self.vget(x.get('c')[col_hero5b]) + "+" + self.vget(x.get('c')[col_upgrade5b])).ljust(len_hero5), (self.vget(x.get('c')[col_skill5b]) + " " + self.vget(x.get('c')[col_2ndskill5b])).ljust(len_skill5), (self.vget(x.get('c')[col_petstar2]) + "* " + self.vget(x.get('c')[col_pet2])).ljust(len_pet), self.vget(x.get('c')[col_transcend2]).ljust(len_transcend)) for x in stats.get('table').get('rows')) self.fleep.message_send(conv_id, msg) self.response.write(msg)