def on_status(self, status): if status.text.startswith('@bgpranking AS'): asn = status.text.strip('@bgpranking AS') try: int(asn) except: print status.text return msg_id = status.id sender = status.user.screen_name dates_sources = bgpranking.prepare_sources_by_dates(timeframe=5) ranks = bgpranking.get_all_ranks_single_asn(asn, dates_sources) to_post = '@{user}: {asn}\n'.format(user=sender, asn=asn) dates = sorted(ranks.keys(), reverse=True) for date in dates: info = ranks[date] to_post += '{date}: {rank}\n'.format(date=date, rank=round( 1 + info['total'], 4)) to_post += base_asn_address + asn api.update_status(to_post, msg_id) elif status.text.startswith('@bgpranking IP'): ip = status.text.strip('@bgpranking IP') try: IPy.IP(ip) except: print status.text return msg_id = status.id sender = status.user.screen_name info = bgpranking.get_ip_info(ip, 10) to_post_short = '@{user}: {ip}: http://bgpranking.circl.lu/ip_lookup?ip={ip}'.format( user=sender, ip=ip) if len(info['history']) > 0: latest_data = info['history'][0] template = '\n{asn} - {block}: {base_asn_url}{asn};ip_details={block}\n{descr}' descr = latest_data['descriptions'][0][1] if len(descr) > 40: descr = 'Too Long for Twitter.' to_post = to_post_short + template.format( asn=latest_data['asn'], base_asn_url=base_asn_address, block=latest_data['block'], descr=descr) try: api.update_status(to_post, msg_id) except: api.update_status(to_post_short, msg_id) else: print status.text
def on_status(self, status): if status.text.startswith('@bgpranking AS'): asn = status.text.strip('@bgpranking AS') try: int(asn) except: print status.text return msg_id = status.id sender = status.user.screen_name dates_sources = bgpranking.prepare_sources_by_dates(timeframe=5) ranks = bgpranking.get_all_ranks_single_asn(asn, dates_sources) to_post = '@{user}: {asn}\n'.format(user=sender, asn=asn) dates = sorted(ranks.keys(), reverse=True) for date in dates: info = ranks[date] to_post += '{date}: {rank}\n'.format(date=date,rank=round(1+info['total'], 4)) to_post += base_asn_address + asn api.update_status(to_post, msg_id) elif status.text.startswith('@bgpranking IP'): ip = status.text.strip('@bgpranking IP') try: IPy.IP(ip) except: print status.text return msg_id = status.id sender = status.user.screen_name info = bgpranking.get_ip_info(ip, 10) to_post_short = '@{user}: {ip}: http://bgpranking.circl.lu/ip_lookup?ip={ip}'.format(user=sender, ip=ip) if len(info['history']) > 0: latest_data = info['history'][0] template = '\n{asn} - {block}: {base_asn_url}{asn};ip_details={block}\n{descr}' descr = latest_data['descriptions'][0][1] if len(descr) > 40: descr = 'Too Long for Twitter.' to_post = to_post_short + template.format(asn=latest_data['asn'], base_asn_url=base_asn_address, block=latest_data['block'], descr=descr) try: api.update_status(to_post, msg_id) except: api.update_status(to_post_short, msg_id) else: print status.text
def get_ip_lookup(ip): response = bgpranking.get_ip_info(ip) if len(response.get('history')) == 0: return None return response.get('history'), response.get('ptrrecord')