forked from open-webui/open-webui
		
	feat: use local profile image by default
This commit is contained in:
		
							parent
							
								
									3ce8f3e8fb
								
							
						
					
					
						commit
						0c322063b5
					
				
					 4 changed files with 72 additions and 31 deletions
				
			
		|  | @ -65,7 +65,7 @@ class UsersTable: | |||
|                 "name": name, | ||||
|                 "email": email, | ||||
|                 "role": role, | ||||
|                 "profile_image_url": get_gravatar_url(email), | ||||
|                 "profile_image_url": "/user.png", | ||||
|                 "timestamp": int(time.time()), | ||||
|             } | ||||
|         ) | ||||
|  |  | |||
|  | @ -9,7 +9,7 @@ import os | |||
| import aiohttp | ||||
| import json | ||||
| 
 | ||||
| from utils.misc import calculate_sha256 | ||||
| from utils.misc import calculate_sha256, get_gravatar_url | ||||
| 
 | ||||
| from config import OLLAMA_API_BASE_URL, DATA_DIR, UPLOAD_DIR | ||||
| from constants import ERROR_MESSAGES | ||||
|  | @ -165,3 +165,10 @@ def upload(file: UploadFile = File(...)): | |||
|             yield f"data: {json.dumps(res)}\n\n" | ||||
| 
 | ||||
|     return StreamingResponse(file_process_stream(), media_type="text/event-stream") | ||||
| 
 | ||||
| 
 | ||||
| @router.get("/gravatar") | ||||
| async def get_gravatar( | ||||
|     email: str, | ||||
| ): | ||||
|     return get_gravatar_url(email) | ||||
|  |  | |||
							
								
								
									
										23
									
								
								src/lib/apis/utils/index.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/lib/apis/utils/index.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| import { WEBUI_API_BASE_URL } from '$lib/constants'; | ||||
| 
 | ||||
| export const getGravatarUrl = async (email: string) => { | ||||
| 	let error = null; | ||||
| 
 | ||||
| 	const res = await fetch(`${WEBUI_API_BASE_URL}/utils/gravatar?email=${email}`, { | ||||
| 		method: 'GET', | ||||
| 		headers: { | ||||
| 			'Content-Type': 'application/json' | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(async (res) => { | ||||
| 			if (!res.ok) throw await res.json(); | ||||
| 			return res.json(); | ||||
| 		}) | ||||
| 		.catch((err) => { | ||||
| 			console.log(err); | ||||
| 			error = err; | ||||
| 			return null; | ||||
| 		}); | ||||
| 
 | ||||
| 	return res; | ||||
| }; | ||||
|  | @ -6,6 +6,7 @@ | |||
| 	import { updateUserProfile } from '$lib/apis/auths'; | ||||
| 
 | ||||
| 	import UpdatePassword from './Account/UpdatePassword.svelte'; | ||||
| 	import { getGravatarUrl } from '$lib/apis/utils'; | ||||
| 
 | ||||
| 	export let saveHandler: Function; | ||||
| 
 | ||||
|  | @ -98,6 +99,7 @@ | |||
| 		<div class=" mb-2.5 font-medium">Profile</div> | ||||
| 
 | ||||
| 		<div class="flex space-x-5"> | ||||
| 			<div class="flex flex-col"> | ||||
| 				<div class="self-center"> | ||||
| 					<button | ||||
| 						class="relative rounded-full dark:bg-gray-700" | ||||
|  | @ -130,6 +132,15 @@ | |||
| 						</div> | ||||
| 					</button> | ||||
| 				</div> | ||||
| 				<button | ||||
| 					class=" text-xs text-gray-600" | ||||
| 					on:click={async () => { | ||||
| 						const url = await getGravatarUrl($user.email); | ||||
| 
 | ||||
| 						profileImageUrl = url; | ||||
| 					}}>Use Gravatar</button | ||||
| 				> | ||||
| 			</div> | ||||
| 
 | ||||
| 			<div class="flex-1"> | ||||
| 				<div class="flex flex-col w-full"> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue