def album_create_carousel(): parsed_request = urlparse(flask.request.url) hostname = parsed_request.hostname if 'www.' in hostname: hostname = hostname.split('www.')[1] query = model.Album.query( ndb.AND( user_key==auth.current_user_key(), hostname==hostname, isCarousel==True ) ) album_db = query.fetch(1) if album_db: if album_db.user_key != auth.current_user_key(): return flask.abort(404) else: resource_dbs = album_db.get_resource_dbs() if not album_db: album_db = model.Album( user_key=auth.current_user_key(), hostname=hostname, isCarousel=True ) album_db.put() return flask.redirect(flask.url_for( 'album_update', album_id=album_db.key.id(), ))
def admin_album_update(album_id=0): if album_id: album_db = model.Album.get_by_id(album_id) else: album_db = model.Album() if not album_db: flask.abort(404) form = AlbumUpdateAdminForm(obj=album_db) if flask.request.method == 'GET' and not form.errors: form.tags.data = config.TAG_SEPARATOR.join(form.tags.data) if form.validate_on_submit(): form.tags.data = util.parse_tags(form.tags.data) form.populate_obj(album_db) album_db.put() return flask.redirect( flask.url_for('admin_album_list', order='-modified')) return flask.render_template( 'album/admin_album_update.html', title=album_db.name if album_id else 'New Album', html_class='admin-album-update', form=form, album_db=album_db, back_url_for='admin_album_list', api_url=flask.url_for( 'api.admin.album', album_key=album_db.key.urlsafe() if album_db.key else ''), )
def make_home_template(isEditMode): parsed_request = urlparse(flask.request.url) hostname = parsed_request.hostname if 'www.' in hostname: hostname = hostname.split('www.')[1] # get carousel resources query = model.Album.query( model.Album.hostname==hostname, model.Album.isCarousel==True ) carousel_album_db = query.get() if not carousel_album_db and isEditMode: carousel_album_db = model.Album( user_key=auth.current_user_key(), hostname=hostname, isCarousel=True ) carousel_album_db.put() carousel_resource_dbs = None if carousel_album_db: carousel_resource_dbs, cursors = carousel_album_db.get_resource_dbs() # get site albums query = model.Album.query( model.Album.hostname==hostname, model.Album.isCarousel==False ) album_dbs = query.fetch(30) # limit site albums to 30 album_list = [] for album_db in album_dbs: query = model.Resource.query( model.Resource.album_key==album_db.key ) album_image_db = query.get() if album_image_db: album_info = {'album_db': album_db, 'image_url': album_image_db.image_url} else: album_info = {'album_db': album_db, 'image_url': None} album_list.append(album_info) get_upload_url = None if carousel_album_db and isEditMode: get_upload_url=flask.url_for('api.album.resource.upload', key=carousel_album_db.key.urlsafe()) return flask.render_template( 'welcome.html', html_class='welcome', isEditMode=isEditMode, album_list=album_list, carousel_resource_dbs=carousel_resource_dbs, get_upload_url=get_upload_url, has_json=True, upload_url=blobstore.create_upload_url( flask.request.path, gs_bucket_name=config.CONFIG_DB.bucket_name or None, ), )
def get_album(self, album_id): if self.apikey: url_pattern = r'https://api.douban.com/v2/album/{0}?apikey={1}' url = url_pattern.format(album_id, self.apikey) else: url_pattern = r'https://api.douban.com/v2/album/{0}' url = url_pattern.format(album_id) jsonStr = self.get_html(url) data = json.loads(jsonStr) title = data['title'].strip() url = data['alt'] author = data['author']['name'] created = data['created'] size = int(data['size']) desc = data['desc'].strip() return model.Album(album_id, title, url, author=author, created=created, size=size, desc=desc)
def album_create(): # album_db = model.Album.get_by_id(album_id) # # if album_db # if album_db.user_key != auth.current_user_key(): # return flask.abort(404) # else: # resource_dbs = album_db.get_resource_dbs() # # if not album_db: # todo, securetodo: check if user is registerd with hostname>? parsed_request = urlparse(flask.request.url) hostname = parsed_request.hostname if 'www.' in hostname: hostname = hostname.split('www.')[1] album_db = model.Album( user_key=auth.current_user_key(), hostname=hostname ) album_db.put() return flask.redirect(flask.url_for( 'album_update', album_id=album_db.key.id(), ))