From 307236190c98c13395b114df990eec50a9160251 Mon Sep 17 00:00:00 2001 From: yj <2077506045@qq.com> Date: 星期三, 27 八月 2025 16:59:48 +0800 Subject: [PATCH] 更新 --- app/services/friend_ignore_service.py | 40 ++++++++++++++++++++++++---------------- 1 files changed, 24 insertions(+), 16 deletions(-) diff --git a/app/services/friend_ignore_service.py b/app/services/friend_ignore_service.py index 2b0123f..2a8f71d 100644 --- a/app/services/friend_ignore_service.py +++ b/app/services/friend_ignore_service.py @@ -30,9 +30,14 @@ """ try: with next(get_db()) as db: - contact = db.query(Contact).filter(Contact.nick_name == nickname).first() + contact = ( + db.query(Contact).filter(Contact.nick_name == nickname).first() + ) if contact: - return contact.wc_id + wc_id = contact.wc_id + if contact.work_wc_id: + wc_id += f",{contact.work_wc_id}" + return wc_id else: logger.warning(f"鏈壘鍒版樀绉颁负 '{nickname}' 鐨勮仈绯讳汉") return None @@ -74,10 +79,10 @@ # 娓呯┖鐜版湁鐨勫拷鐣ュ垪琛� redis_queue.redis_client.delete(self.ignore_list_key) - + # 鎵归噺娣诲姞濂藉弸w_id鍒板拷鐣ュ垪琛� redis_queue.redis_client.sadd(self.ignore_list_key, *friends) - + logger.info(f"宸插皢 {len(friends)} 涓ソ鍙嬫坊鍔犲埌蹇界暐鍒楄〃") return True @@ -111,21 +116,26 @@ # 妫�鏌ユ槸鍚﹀湪鐧藉悕鍗曚腑锛堥�氳繃鏄电О锛� whitelist_wids = self._get_whitelist_wids() - if w_id in whitelist_wids: + + if any(w_id in wids for wids in whitelist_wids): logger.info(f"w_id鍦ㄧ櫧鍚嶅崟涓紝涓嶅拷鐣ユ秷鎭�: w_id={w_id}") return False # 妫�鏌ユ槸鍚﹀湪蹇界暐鍒楄〃涓� - is_in_ignore_list = redis_queue.redis_client.sismember(self.ignore_list_key, w_id) + is_in_ignore_list = redis_queue.redis_client.sismember( + self.ignore_list_key, w_id + ) if is_in_ignore_list: # 濡傛灉鍦ㄥ拷鐣ュ垪琛ㄤ腑锛屾鏌ユ槸鍚﹀湪娴嬭瘯缇ょ粍涓� if group_id and silence_service.is_test_group(group_id): - logger.info(f"娴嬭瘯缇ょ粍涓殑濂藉弸娑堟伅涓嶈蹇界暐: w_id={w_id}, group_id={group_id}") + logger.info( + f"娴嬭瘯缇ょ粍涓殑濂藉弸娑堟伅涓嶈蹇界暐: w_id={w_id}, group_id={group_id}" + ) return False - + logger.info(f"w_id鍦ㄥ拷鐣ュ垪琛ㄤ腑锛屽拷鐣ユ秷鎭�: w_id={w_id}") - + return is_in_ignore_list except Exception as e: @@ -233,7 +243,7 @@ "in_ignore_list": False, "final_ignored": False, "reason": "", - "whitelist_nicknames": settings.friend_ignore_whitelist + "whitelist_nicknames": settings.friend_ignore_whitelist, } if not settings.friend_ignore_enabled: @@ -244,7 +254,9 @@ info["reason"] = "鍦ㄧ櫧鍚嶅崟涓紝涓嶄細琚拷鐣�" return info - info["in_ignore_list"] = redis_queue.redis_client.sismember(self.ignore_list_key, w_id) + info["in_ignore_list"] = redis_queue.redis_client.sismember( + self.ignore_list_key, w_id + ) if info["in_ignore_list"]: info["final_ignored"] = True @@ -256,11 +268,7 @@ except Exception as e: logger.error(f"鑾峰彇蹇界暐鐘舵�佷俊鎭紓甯�: w_id={w_id}, error={str(e)}") - return { - "w_id": w_id, - "error": str(e), - "final_ignored": False - } + return {"w_id": w_id, "error": str(e), "final_ignored": False} # 鍏ㄥ眬濂藉弸蹇界暐鏈嶅姟瀹炰緥 -- Gitblit v1.9.1