From 26e2881f66ef151b437fc2b2586d226a545458b1 Mon Sep 17 00:00:00 2001 From: ppwwyyxx Date: Fri, 9 Jan 2015 22:43:24 +0800 Subject: [PATCH] fix dirname check --- lib/avatar.py | 12 ++++++------ lib/res.py | 15 +++++++++++---- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/lib/avatar.py b/lib/avatar.py index 3d059ec..578ae95 100644 --- a/lib/avatar.py +++ b/lib/avatar.py @@ -1,19 +1,19 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: avatar.py -# Date: Fri Jan 09 22:21:55 2015 +0800 +# Date: Fri Jan 09 22:41:55 2015 +0800 # Author: Yuxin Wu import os import numpy as np +import logging +logger = logging.getLogger(__name__) from .utils import ensure_bin_str, md5 class AvatarReader(object): - def __init__(self, res_dir): - self.avt_dir = os.path.join(res_dir, 'avatar') - assert os.path.isdir(self.avt_dir), \ - "No such directory {}".format(self.avt_dir) + def __init__(self, avt_dir): + self.avt_dir = avt_dir def get_avatar(self, username): """ username: `username` field in db.rcontact""" @@ -23,7 +23,7 @@ class AvatarReader(object): filename = os.path.join(self.avt_dir, dir1, dir2, "user_{}.png.bm".format(filename)) if not os.path.isfile(filename): - # avatar not found! + logger.warn("Avatar not found for {}".format(username)) return None else: img = AvatarReader.read_bm(filename) diff --git a/lib/res.py b/lib/res.py index 98af729..639963d 100644 --- a/lib/res.py +++ b/lib/res.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 # -*- coding: UTF-8 -*- # File: res.py -# Date: Fri Jan 09 22:28:54 2015 +0800 +# Date: Fri Jan 09 22:43:10 2015 +0800 # Author: Yuxin Wu import glob @@ -26,6 +26,8 @@ INTERNAL_EMOJI_DIR = os.path.join(LIB_PATH, 'static', 'internal_emoji') VOICE_DIRNAME = 'voice2' IMG_DIRNAME = 'image2' EMOJI_DIRNAME = 'emoji' +AVATAR_DIRNAME = 'avatar' + JPEG_QUALITY = 50 def do_get_voice_mp3(amr_fpath): @@ -49,16 +51,21 @@ def do_get_voice_mp3(amr_fpath): class Resource(object): """ multimedia resources in chat""" def __init__(self, res_dir): - assert os.path.isdir(res_dir), "No such directory: {}".format(res_dir) + def check(subdir): + assert os.path.isdir(os.path.join(res_dir, subdir)), \ + "No such directory: {}".format(subdir) + [check(k) for k in ['', AVATAR_DIRNAME, IMG_DIRNAME, EMOJI_DIRNAME, VOICE_DIRNAME]] + self.res_dir = res_dir self.img_dir = os.path.join(res_dir, IMG_DIRNAME) + self.voice_dir = os.path.join(res_dir, VOICE_DIRNAME) self.emoji_dir = os.path.join(res_dir, EMOJI_DIRNAME) - self.avt_reader = AvatarReader(self.res_dir) + self.avt_reader = AvatarReader(os.path.join(res_dir, AVATAR_DIRNAME)) def get_voice_filename(self, imgpath): fname = md5(imgpath) dir1, dir2 = fname[:2], fname[2:4] - ret = os.path.join(self.res_dir, VOICE_DIRNAME, dir1, dir2, + ret = os.path.join(self.voice_dir, dir1, dir2, 'msg_{}.amr'.format(imgpath)) if not os.path.isfile(ret): logger.error("Voice file not found for {}".format(imgpath))