mdbq 4.2.26__tar.gz → 4.2.28__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mdbq might be problematic. Click here for more details.

Files changed (48) hide show
  1. {mdbq-4.2.26 → mdbq-4.2.28}/PKG-INFO +2 -2
  2. mdbq-4.2.28/mdbq/__version__.py +1 -0
  3. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/auth/auth_backend.py +6 -3
  4. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/redis/redis_cache.py +24 -11
  5. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq.egg-info/PKG-INFO +2 -2
  6. mdbq-4.2.26/mdbq/__version__.py +0 -1
  7. {mdbq-4.2.26 → mdbq-4.2.28}/README.txt +0 -0
  8. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/__init__.py +0 -0
  9. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/auth/__init__.py +0 -0
  10. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/auth/crypto.py +0 -0
  11. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/auth/rate_limiter.py +0 -0
  12. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/js/__init__.py +0 -0
  13. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/js/jc.py +0 -0
  14. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/log/__init__.py +0 -0
  15. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/log/mylogger.py +0 -0
  16. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/myconf/__init__.py +0 -0
  17. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/myconf/myconf.py +0 -0
  18. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/__init__.py +0 -0
  19. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/deduplicator.py +0 -0
  20. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/mysql.py +0 -0
  21. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/mysql_query.py +0 -0
  22. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/mysql_writer.py +0 -0
  23. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/s_query.py +0 -0
  24. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/unique_.py +0 -0
  25. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/mysql/uploader.py +0 -0
  26. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/__init__.py +0 -0
  27. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/download_sku_picture.py +0 -0
  28. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/error_handler.py +0 -0
  29. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/otk.py +0 -0
  30. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/pov_city.py +0 -0
  31. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/other/ua_sj.py +0 -0
  32. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/pbix/__init__.py +0 -0
  33. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/pbix/pbix_refresh.py +0 -0
  34. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/pbix/refresh_all.py +0 -0
  35. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/redis/__init__.py +0 -0
  36. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/redis/getredis.py +0 -0
  37. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/route/__init__.py +0 -0
  38. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/route/analytics.py +0 -0
  39. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/route/monitor.py +0 -0
  40. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/route/routes.py +0 -0
  41. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/selenium/__init__.py +0 -0
  42. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/selenium/get_driver.py +0 -0
  43. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq/spider/__init__.py +0 -0
  44. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq.egg-info/SOURCES.txt +0 -0
  45. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq.egg-info/dependency_links.txt +0 -0
  46. {mdbq-4.2.26 → mdbq-4.2.28}/mdbq.egg-info/top_level.txt +0 -0
  47. {mdbq-4.2.26 → mdbq-4.2.28}/setup.cfg +0 -0
  48. {mdbq-4.2.26 → mdbq-4.2.28}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.2.26
3
+ Version: 4.2.28
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -0,0 +1 @@
1
+ VERSION = '4.2.28'
@@ -1016,7 +1016,8 @@ class StandaloneAuthManager:
1016
1016
  WHERE user_id = %s AND is_active = 1
1017
1017
  ''', (user_id,))
1018
1018
 
1019
- device_count = cursor.fetchone()['device_count']
1019
+ device_count_result = cursor.fetchone()
1020
+ device_count = device_count_result['device_count'] if device_count_result else 0
1020
1021
 
1021
1022
  # 撤销用户的所有刷新令牌
1022
1023
  cursor.execute('''
@@ -1832,7 +1833,8 @@ class StandaloneAuthManager:
1832
1833
  WHERE user_id = %s AND is_active = 1
1833
1834
  ''', (user_id,))
1834
1835
 
1835
- active_devices = cursor.fetchone()['active_devices']
1836
+ active_devices_result = cursor.fetchone()
1837
+ active_devices = active_devices_result['active_devices'] if active_devices_result else 0
1836
1838
 
1837
1839
  # 获取登录次数(成功的登录)
1838
1840
  cursor.execute('''
@@ -1840,7 +1842,8 @@ class StandaloneAuthManager:
1840
1842
  WHERE user_id = %s AND login_result = 'success'
1841
1843
  ''', (user_id,))
1842
1844
 
1843
- login_count = cursor.fetchone()['login_count']
1845
+ login_count_result = cursor.fetchone()
1846
+ login_count = login_count_result['login_count'] if login_count_result else 0
1844
1847
 
1845
1848
  # 获取最近登录记录
1846
1849
  cursor.execute('''
@@ -1158,19 +1158,32 @@ def _safe_cache_set(cache_system, cache_key, response_data, ttl, namespace,
1158
1158
  if isinstance(message, str) and ('失败' in message or 'error' in message or 'fail' in message):
1159
1159
  return False
1160
1160
 
1161
- # 检查数据部分(支持多种数据字段名)
1162
- has_data_fields = (
1163
- 'data' in data or # 标准data字段
1164
- 'logs' in data or # 更新日志专用
1165
- 'announcements' in data or # 公告数据
1166
- 'databases' in data or # 数据库列表
1167
- 'tables' in data or # 表列表
1168
- 'rows' in data or # 数据行
1169
- 'message' in data # 包含消息即认为有数据
1161
+ # 检查数据部分(不仅要有字段,还要有有效的非空值)
1162
+ def is_valid_value(value):
1163
+ """判断值是否有效(非None、非空列表、非空字典)"""
1164
+ if value is None:
1165
+ return False
1166
+ if isinstance(value, (list, dict)) and len(value) == 0:
1167
+ return False
1168
+ return True
1169
+
1170
+ # 检查各种数据字段
1171
+ has_valid_data = (
1172
+ ('data' in data and is_valid_value(data.get('data'))) or
1173
+ ('logs' in data and is_valid_value(data.get('logs'))) or
1174
+ ('announcements' in data and is_valid_value(data.get('announcements'))) or
1175
+ ('databases' in data and is_valid_value(data.get('databases'))) or
1176
+ ('tables' in data and is_valid_value(data.get('tables'))) or
1177
+ ('rows' in data and is_valid_value(data.get('rows'))) or
1178
+ # message 单独判断:只有在其他字段都不存在时,才检查 message
1179
+ (not any(key in data for key in ['data', 'logs', 'announcements', 'databases', 'tables', 'rows'])
1180
+ and 'message' in data
1181
+ and data.get('message')
1182
+ and data.get('message') not in ['', 'ok', 'success'])
1170
1183
  )
1171
1184
 
1172
- # 如果有数据字段,基本认为有效
1173
- return has_data_fields
1185
+ # 返回是否有有效数据
1186
+ return has_valid_data
1174
1187
 
1175
1188
  data_validator = default_validator
1176
1189
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: mdbq
3
- Version: 4.2.26
3
+ Version: 4.2.28
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1 +0,0 @@
1
- VERSION = '4.2.26'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes