def get(self): db.delete(Tile.all()) db.delete(Avatar.all()) cleared = make_maze(20, 20) for t in cleared: view = [] for vy in range(t[1] - view_radius, t[1] + view_radius + 1): for vx in range(t[0] - view_radius, t[0] + view_radius + 1): if (vx, vy) in cleared: shape = get_shape(vx, vy, cleared) view.append({'x': vx, 'y': vy, 'shape': shape}) shape = get_shape(t[0], t[1], cleared) key = db.Key.from_path( 'Maze', 'bogart', 'Tile', '%d-%d' % (t[0], t[1]) ) Tile( key=key, x=t[0], y=t[1], shape=shape, view_blob=json.dumps(view) ).put() Avatar(x=0, y=0, name='jack').put() self.response.out.write('Generator %s' % cleared)
def get(self, name, size=''): if size not in ['','%21normal','%21mini']: self.error(404) return a_obj = Avatar.get_by_key_name(name) if a_obj and a_obj.content: self.header['Content-Type'] = "image/png" self.header['Cache-Control'] = "max-age=172800, public, must-revalidate" self.header['Expires'] = avatar_expires() sized = {'%21normal':48,'%21mini':24} memkey = "avatar_%s_%d"%(name,sized.get(size,73)) img = memcache.get(memkey) if img is None: if size=='': img = a_obj.content else: imgobj = images.Image(a_obj.content) imgobj.resize(sized[size], sized[size]) imgobj.im_feeling_lucky() img = imgobj.execute_transforms(output_encoding=images.JPEG, quality=95) memcache.set(memkey,img,3600) self.write(img) else: self.error(404)
def load_avatars(filename): df = pd.read_excel(filename) avatar_list = list(df['Name']) for url in avatar_list: avatar = Avatar(url=url) db.session.add(avatar) db.session.commit()
def scrape_avatar(id_, site, url): """ Get an twitter avatar from ``url`` and save it to the Profile identified by ``id_``. """ worker.start_job() redis = worker.get_redis() db_session = worker.get_session() avatar = None profile = db_session.query(Profile).filter(Profile.id == id_).first() if profile is None: raise ValueError('No profile exists with id={}'.format(id_)) if site == 'twitter': # Twitter points you to a scaled image by default, but we can # get the original resolution by removing "_normal" from the URL. # # See: https://dev.twitter.com/overview/general/user-profile-images-and-banners url = url.replace('_normal', '') # Update Avatar if it's already stored in the db for profile_avatar in profile.avatars: if profile_avatar.upstream_url == url: profile_avatar.end_date = datetime.today() avatar = profile_avatar break # Otherwise, scrape the new Avatar and append to the profile if avatar is None: response = requests.get(url) response.raise_for_status() if 'content-type' in response.headers: mime = response.headers['content-type'] else: mime = 'application/octet-stream' image = response.content avatar = Avatar(url, mime, image) profile.avatars.append(avatar) profile.current_avatar = avatar db_session.commit() worker.finish_job() redis.publish('avatar', json.dumps({ 'id': id_, 'thumb_url': '/api/file/' + str(avatar.thumb_file.id), 'url': '/api/file/' + str(avatar.file.id), }))
def get(self): db.delete(Tile.all()) db.delete(Avatar.all()) cleared = make_maze(20,20) for t in cleared: view = [] for vy in range(t[1]-view_radius,t[1]+view_radius+1): for vx in range(t[0]-view_radius,t[0]+view_radius+1): if (vx,vy) in cleared: view.append({'x':vx, 'y':vy}) Tile(x=t[0], y=t[1], view_blob=pickle.dumps(view, 2)).put() Avatar(x=0,y=0,name='jack').put() self.response.out.write('Generator %s'%cleared)
def load_avatars(avatars_filename): """Load avatars.""" print "Avatar" for i, row in enumerate(open(avatars_filename)): row = row.rstrip() avatar_src = row avatar = Avatar(avatar_src=avatar_src) db.session.add(avatar) if i % 10 == 0: print i db.session.commit()
def post(self): if self.cur_user: file_content = self.request.get('myfile','') errors = [] if file_content: imgobj = images.Image(file_content) if imgobj.width <= 73 and imgobj.height <= 73: img_large = file_content else: imgobj.resize(73, 73) imgobj.im_feeling_lucky() img_large = imgobj.execute_transforms(output_encoding=images.JPEG, quality=95) av_obj = Avatar.get_or_insert(self.cur_user.name) av_obj.content = img_large av_obj.put() if av_obj.is_saved(): m_obj = Member.get_by_key_name(self.cur_user.name) if m_obj: if m_obj.flag ==1: if m_obj.id == 1: m_obj.flag = 99 else: m_obj.flag = 2 db.run_in_transaction(obj_runput,m_obj, ['cur_user:'******'/setavatar') return else: errors.append('服务器出现意外错误,请稍后再试') else: self.echo('setavatar.html', { 'title': "设置头像", 'errors':errors, 'newest_node': Node.get_newest(), }, layout='_layout.html') else: self.redirect('/')
def _create_sample_profiles(self, config): ''' Create some sample profiles. ''' session = app.database.get_session(self._db) sample_dir = os.path.join(os.path.dirname(__file__), 'sample-data') # Maurice Moss moss_twitter = Profile(site='twitter', upstream_id='12345', username=ProfileUsername( 'maurice.moss', start_date='2014-04-01')) moss_twitter.usernames.append( ProfileUsername('maurice', start_date='2013-06-01', end_date='2014-03-31')) moss_twitter.usernames.append( ProfileUsername('maurie', start_date='2013-02-15', end_date='2013-05-30')) Post(author=moss_twitter, content='Going to the grocery store.', upstream_id='1234', upstream_created='2015-02-04 12:34:50') post = Post(author=moss_twitter, content='Love this band!.', upstream_id='2345', upstream_created='2015-03-01') post.attachments.append( File(name='helloworld.txt', mime='text/plain', content='Hello world!\n\n'.encode('utf8'))) moss_twitter.posts.append(post) with open(os.path.join(sample_dir, 'moss.jpg'), 'rb') as moss_jpg: moss_twitter.avatars.append( Avatar(url='http://foobar.com/moss-avatar.jpg', mime='image/jpeg', image=moss_jpg.read())) moss_twitter.description = "I do IT at Reynholm Industries." moss_twitter.post_count = 1205 moss_twitter.friend_count = 1 moss_twitter.follower_count = 3 moss_twitter.join_date = dateutil.parser.parse('2013-06-01') moss_twitter.join_date_is_exact = False session.add(moss_twitter) # Jen Barber jen_twitter = Profile(site='twitter', upstream_id='23456', username=ProfileUsername( 'jen.barber', start_date='2013-11-12')) jen_twitter.usernames.append( ProfileUsername('jenb', start_date='2013-06-14', end_date='2013-11-12')) jen_twitter.usernames.append( ProfileUsername('jenny', start_date='2013-03-15', end_date='2013-06-14')) with open(os.path.join(sample_dir, 'jen.jpg'), 'rb') as jen_jpg: jen_twitter.avatars.append( Avatar(url='http://foobar.com/jen-avatar.jpg', mime='image/jpeg', image=jen_jpg.read())) jen_twitter.description = "Relationship Manager for the IT department." jen_twitter.post_count = 1543 jen_twitter.friend_count = 1 jen_twitter.follower_count = 1 jen_twitter.join_date = dateutil.parser.parse('2013-03-15') jen_twitter.join_date_is_exact = True moss_twitter.followers.append(jen_twitter) session.add(jen_twitter) # A couple of randos. moss_twitter.followers.append( Profile(site='twitter', upstream_id='345678', username='******')) moss_twitter.followers.append( Profile(site='twitter', upstream_id='456789', username='******')) jen_twitter.followers.append( Profile(site='twitter', upstream_id='567890', username='******')) session.commit()
def get(self): self.response.headers['Content-type'] = 'text/plain' self.response.out.write('Used %d\n'%quota.get_request_api_cpu_usage()) l1 = [[u'TileZ', 260256L], [u'TileZ', 260257L], [u'TileZ', 260258L], [u'TileZ', 260259L], [u'TileZ', 260260L], [u'TileZ', 260261L], [u'TileZ', 260262L], [u'TileZ', 260263L], [u'TileZ', 260264L], [u'TileZ', 260265L]] for tile_path in l1: tile = db.get(db.Key.from_path(*tile_path)) self.response.out.write('Done key gets %d\n' %quota.get_request_api_cpu_usage()) l2 = [(211L, 236L), (631L, 418L), (377L, 212L), (70L, 81L), (552L, 208L), (236L, 361L), (744L, 244L), (577L, 291L), (335L, 87L), (102L, 326L)] for x,y in l2: tile = TileZ.gql('WHERE x = :1 AND y = :2',x,y).get() self.response.out.write('Done xy gets %d\n' %quota.get_request_api_cpu_usage()) l3 = [(432L, 350L, 10L), (729L, 408L, 10L), (736L, 396L, 10L), (164L, 109L, 5L), (457L, 253L, 9L), (330L, 373L, 10L), (224L, 208L, 5L), (97L, 70L, 10L), (422L, 421L, 10L), (316L, 288L, 5L)] for x,y,s in l3: tile = TileZ.gql('WHERE x = :1 AND y = :2 AND shape = :3',x,y,s).get() self.response.out.write('Done xys gets %d\n' %quota.get_request_api_cpu_usage()) l4 = [[u'Avatar', 255856L], [u'Avatar', 316456L], [u'Avatar', 331576L], [u'Avatar', 339456L], [u'Avatar', 425981L], [u'Avatar', 425982L], [u'Avatar', 425983L], [u'Avatar', 425984L], [u'Avatar', 425985L], [u'Avatar', 425986L]] for avatar_path in l4: avatar = db.get(db.Key.from_path(*avatar_path)) self.response.out.write('Done a key gets %d\n' %quota.get_request_api_cpu_usage()) l5 = [u'test_name', u'a', u'zem', u'yp', u'T', u'hobofood', u'woop', u'j', u'bleh', u'Ahaaa'] for a_name in l5: avatar = Avatar.gql('WHERE name = :1',a_name).get() self.response.out.write('Done a property gets %d\n' %quota.get_request_api_cpu_usage())