1111
1212import markdown
1313import requests
14+ from django .conf import settings
1415from django .contrib .sites .models import Site
1516from django .core .cache import cache
17+ from django .templatetags .static import static
1618
1719logger = logging .getLogger (__name__ )
1820
@@ -179,27 +181,26 @@ def save_user_avatar(url):
179181 logger .info (url )
180182
181183 try :
184+ basedir = os .path .join (settings .STATICFILES , 'avatar' )
185+
182186 imgname = url .split ('/' )[- 1 ]
183187 if imgname :
184- path = r'{basedir}/avatar/{img}' .format (
185- basedir = setting .resource_path , img = imgname )
188+ path = f'{ basedir } /{ imgname } '
186189 if os .path .exists (path ):
187190 os .remove (path )
188191 rsp = requests .get (url , timeout = 2 )
189192 if rsp .status_code == 200 :
190- basepath = r'{basedir}/avatar/' .format (
191- basedir = setting .resource_path )
192- if not os .path .exists (basepath ):
193- os .makedirs (basepath )
193+ if not os .path .exists (basedir ):
194+ os .makedirs (basedir )
194195
195- imgextensions = ['.jpg' , '.png' , 'jpeg' , '.gif' ]
196- isimage = len ([i for i in imgextensions if url .endswith (i )]) > 0
196+ image_extensions = ['.jpg' , '.png' , 'jpeg' , '.gif' ]
197+ isimage = len ([i for i in image_extensions if url .endswith (i )]) > 0
197198 ext = os .path .splitext (url )[1 ] if isimage else '.jpg'
198- savefilename = str (uuid .uuid4 ().hex ) + ext
199- logger .info ('保存用户头像:' + basepath + savefilename )
200- with open (basepath + savefilename , 'wb+' ) as file :
199+ save_filename = str (uuid .uuid4 ().hex ) + ext
200+ logger .info ('保存用户头像:' + basedir + save_filename )
201+ with open (os . path . join ( basedir , save_filename ) , 'wb+' ) as file :
201202 file .write (rsp .content )
202- return 'https://resource.lylinux.net/ avatar/' + savefilename
203+ return static ( ' avatar/' + save_filename )
203204 except Exception as e :
204205 logger .error (e )
205206 return url
@@ -217,3 +218,11 @@ def delete_view_cache(prefix, keys):
217218 from django .core .cache .utils import make_template_fragment_key
218219 key = make_template_fragment_key (prefix , keys )
219220 cache .delete (key )
221+
222+
223+ def get_resource_url ():
224+ if settings .STATIC_URL :
225+ return settings .STATIC_URL
226+ else :
227+ site = get_current_site ()
228+ return 'http://' + site .domain + '/static/'
0 commit comments