Minor improvements, update to-do list.
This commit is contained in:
		
							parent
							
								
									e3610eef2b
								
							
						
					
					
						commit
						d95eac4bb6
					
				
					 4 changed files with 14 additions and 1 deletions
				
			
		|  | @ -20,6 +20,8 @@ Documentation is still a work in progress. In general, I use: | ||||||
| - Debate whether the `UserMixin.login` method should accept usernames or I should standardize the usage of IDs only internally. | - Debate whether the `UserMixin.login` method should accept usernames or I should standardize the usage of IDs only internally. | ||||||
| - Album size is calculated every time you refresh the page. For large albums this is very slow. Consider caching? Or saving to db? | - Album size is calculated every time you refresh the page. For large albums this is very slow. Consider caching? Or saving to db? | ||||||
| - Organize the tag exporter functions better. | - Organize the tag exporter functions better. | ||||||
|  | - Replace columns like area, ratio, bitrate by using [expression indices](https://sqlite.org/expridx.html) — `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. | ||||||
| 
 | 
 | ||||||
| ### Changelog | ### Changelog | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,6 +1,9 @@ | ||||||
| import re | import re | ||||||
| 
 | 
 | ||||||
| def pascal_to_loudsnakes(text): | def pascal_to_loudsnakes(text): | ||||||
|  |     ''' | ||||||
|  |     NoSuchPhoto -> NO_SUCH_PHOTO | ||||||
|  |     ''' | ||||||
|     match = re.findall('[A-Z][a-z]*', text) |     match = re.findall('[A-Z][a-z]*', text) | ||||||
|     text = '_'.join(match) |     text = '_'.join(match) | ||||||
|     text = text.upper() |     text = text.upper() | ||||||
|  |  | ||||||
|  | @ -225,6 +225,10 @@ def post_login(): | ||||||
|     username = request.form['username'] |     username = request.form['username'] | ||||||
|     password = request.form['password'] |     password = request.form['password'] | ||||||
|     try: |     try: | ||||||
|  |         # Consideration: Should the server hash the password to discourage | ||||||
|  |         # information (user exists) leak via response time? | ||||||
|  |         # Currently I think not, because they can check if the account | ||||||
|  |         # page 404s anyway. | ||||||
|         user = P.get_user(username=username) |         user = P.get_user(username=username) | ||||||
|         user = P.login(user.id, password) |         user = P.login(user.id, password) | ||||||
|     except (exceptions.NoSuchUser, exceptions.WrongLogin): |     except (exceptions.NoSuchUser, exceptions.WrongLogin): | ||||||
|  |  | ||||||
|  | @ -148,7 +148,11 @@ | ||||||
|             {% set tags = photo.sorted_tags() %} |             {% set tags = photo.sorted_tags() %} | ||||||
|             {% for tag in tags %} |             {% for tag in tags %} | ||||||
|             <li> |             <li> | ||||||
|                 <a class="tag_object" href="/search?tag_musts={{tag.name}}">{{tag.qualified_name()}}</a><!--  |                 {% set display_name=tag.qualified_name() %} | ||||||
|  |                 {% if display_name|length > 30 %} | ||||||
|  |                 {% set display_name = '...' + display_name[-27:] %} | ||||||
|  |                 {% endif %} | ||||||
|  |                 <a class="tag_object" href="/search?tag_musts={{tag.name}}">{{display_name}}</a><!--  | ||||||
|                 --><button |                 --><button | ||||||
|                 class="remove_tag_button" |                 class="remove_tag_button" | ||||||
|                 onclick="remove_photo_tag('{{photo.id}}', '{{tag.name}}', receive_callback);"> |                 onclick="remove_photo_tag('{{photo.id}}', '{{tag.name}}', receive_callback);"> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue