Add /userid/id redirect to /user/name
This commit is contained in:
		
							parent
							
								
									f61570acfb
								
							
						
					
					
						commit
						57355cb032
					
				
					 2 changed files with 19 additions and 7 deletions
				
			
		|  | @ -18,7 +18,7 @@ Documentation is still a work in progress. In general, I use: | |||
| - Improve the "tags on this page" list. Maybe add separate buttons for must/may/forbid on each. | ||||
| - Some way for the database to re-identify a file that was moved / renamed (lost & found). Maybe file hash of the first few mb is good enough. | ||||
| - Debate whether the `UserMixin.login` method should accept usernames or I should standardize the usage of IDs only internally. | ||||
| - Ability to access user page and user photos by user's ID, not just username. | ||||
| - Ability to access user photos by user's ID, not just username. | ||||
| - Should album size be cached on disk? | ||||
| - Replace columns like area, ratio, bitrate by using expression indices or views (`width * height` etc). | ||||
| - Add some way to support large image albums without flooding the search results. Considering a "hidden" property so that a handful of representative images can appear in the search results, and the rest can be found on the actual Album page. | ||||
|  |  | |||
|  | @ -118,6 +118,10 @@ def P_tag(tagname): | |||
| def P_user(username): | ||||
|     return P.get_user(username=username) | ||||
| 
 | ||||
| @P_wrapper | ||||
| def P_user_id(userid): | ||||
|     return P.get_user(id=userid) | ||||
| 
 | ||||
| def send_file(filepath, override_mimetype=None): | ||||
|     ''' | ||||
|     Range-enabled file sending. | ||||
|  | @ -347,10 +351,6 @@ def get_tags_core(specific_tag=None): | |||
|     tags.sort(key=lambda x: x.qualified_name()) | ||||
|     return tags | ||||
| 
 | ||||
| def get_user_core(username): | ||||
|     user = P_user(username) | ||||
|     return user | ||||
| 
 | ||||
| def post_photo_add_remove_tag_core(photoid, tagname, add_or_remove): | ||||
|     photo = P_photo(photoid, response_type='json') | ||||
|     tag = P_tag(tagname, response_type='json') | ||||
|  | @ -833,17 +833,29 @@ def get_thumbnail(photoid): | |||
| @site.route('/user/<username>', methods=['GET']) | ||||
| @session_manager.give_token | ||||
| def get_user_html(username): | ||||
|     user = get_user_core(username) | ||||
|     user = P_user(username, response_type='html') | ||||
|     session = session_manager.get(request) | ||||
|     return flask.render_template('user.html', user=user, session=session) | ||||
| 
 | ||||
| @site.route('/user/<username>.json', methods=['GET']) | ||||
| @session_manager.give_token | ||||
| def get_user_json(username): | ||||
|     user = get_user_core(username) | ||||
|     user = P_user(username, response_type='json') | ||||
|     user = etiquette.jsonify.user(user) | ||||
|     return jsonify.make_json_response(user) | ||||
| 
 | ||||
| @site.route('/userid/<userid>') | ||||
| @site.route('/userid/<userid>.json') | ||||
| def get_user_id_redirect(userid): | ||||
|     if request.url.endswith('.json'): | ||||
|         user = P_user_id(userid, response_type='json') | ||||
|     else: | ||||
|         user = P_user_id(userid, response_type='html') | ||||
|     url_from = '/userid/' + userid | ||||
|     url_to = '/user/' + user.username | ||||
|     url = request.url.replace(url_from, url_to) | ||||
|     return flask.redirect(url) | ||||
| 
 | ||||
| 
 | ||||
| @site.route('/apitest') | ||||
| @session_manager.give_token | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue