def get_graph(self): """ユーザーグラフを返す""" name = self.request.get('name') if not name: return 'null' key_name = 'at_%s' % name ent = UserStatus.get_by_key_name(key_name) if not ent: return 'null' self.response.out.write('{') self.response.out.write('img:"%s",' % (ent.profile_image_url)) self.response.out.write('call:%d,callee:%d,' % (ent.call_count, ent.callee_count)) if ent.graph: try: graph = eval(ent.graph) except TypeError: graph = { } self.response.out.write('graph:{') call = graph.get('call', {}) self.response.out.write('call:{') for k, v in call.iteritems(): self.response.out.write('"%s":%s,' % (k, v)) self.response.out.write('},') callee = graph.get('callee', {}) self.response.out.write('callee:{') for k, v in callee.iteritems(): self.response.out.write('"%s":%s,' % (k, v)) self.response.out.write('},') self.response.out.write('}') self.response.out.write('}')
def get_image_url(self): """アイコン画像のURLを返す""" name = self.request.get('name') if not name: return 'null' key_name = 'at_%s' % name url = memcache.get(key=key_name) if not url: ent = UserStatus.get_by_key_name(key_name) if not ent: return 'null' url = ent.profile_image_url memcache.set(key=key_name, value=url) self.response.out.write(url)
def update_status(self, name, type, opposite): name = '%s' % name key_name = 'at_%s' % name ent = UserStatus.get_by_key_name(key_name) if not ent: ent = UserStatus(key_name=key_name) ent.profile_image_url = self.get_profile_image(name) ent.put() if type == 'call': ent.call_count += 1 elif type == 'callee': ent.callee_count += 1 graph = ent.graph or '{ "call":{},"callee":{} }' try: graph = eval(graph) except TypeError: graph = { "call":{}, "callee":{} } graph_item = graph[type] graph_item[opposite] = graph_item.get(opposite, 0) + 1 ent.graph = str(graph) ent.put()
def update_image(self, key_name): ent = UserStatus.get_by_key_name(key_name) if not ent: return name = ent.key().name()[3:] logging.debug('profile_image: %s' % name) if not ent.profile_image_url: try: profile_image_url = self.get_profile_image(name) except urlfetch.InvalidURLError: logging.warning('deleted user?: %s' % name) ent.profile_image_updated = datetime.datetime.max ent.put() else: ent.profile_image_url = profile_image_url logging.debug('profile_image_url: %s' % ent.profile_image_url) if profile_image_url: ent.profile_image_url = profile_image_url ent.profile_image_updated = datetime.datetime.now() ent.put() else: logging.warning('profile_image: %s = NONE' % name) return