mijiaAPI 3.0.1__tar.gz → 3.0.2__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.
Files changed (28) hide show
  1. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/CHANGELOG.md +8 -2
  2. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/PKG-INFO +1 -1
  3. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/__main__.py +1 -1
  4. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/apis.py +14 -0
  5. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/logger.py +1 -1
  6. mijiaapi-3.0.2/mijiaAPI/version.py +1 -0
  7. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/PKG-INFO +1 -1
  8. mijiaapi-3.0.1/mijiaAPI/version.py +0 -1
  9. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  10. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/.gitignore +0 -0
  11. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/FAQ.md +0 -0
  12. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/LICENSE +0 -0
  13. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/README.md +0 -0
  14. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/demos/test_apis.py +0 -0
  15. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/demos/test_get_statistics.py +0 -0
  16. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/demos/test_login.py +0 -0
  17. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/__init__.py +0 -0
  18. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/devices.py +0 -0
  19. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/errors.py +0 -0
  20. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI/miutils.py +0 -0
  21. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/SOURCES.txt +0 -0
  22. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/dependency_links.txt +0 -0
  23. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/entry_points.txt +0 -0
  24. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/requires.txt +0 -0
  25. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/mijiaAPI.egg-info/top_level.txt +0 -0
  26. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/pyproject.toml +0 -0
  27. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/setup.cfg +0 -0
  28. {mijiaapi-3.0.1 → mijiaapi-3.0.2}/uv.lock +0 -0
@@ -2,14 +2,20 @@
2
2
 
3
3
  本文档记录了项目的v1.3.7以来的重要变更。
4
4
 
5
- ## [3.0.1](https://github.com/Do1e/mijia-api/compare/v3.0.0...v3.0.1) - 2025-12.09
5
+ ## [3.0.2](https://github.com/Do1e/mijia-api/compare/v3.0.1...v3.0.2) - 2026-01-01
6
+ ### new feature
7
+ * 为`available`属性添加了缓存机制,减少频繁调用带来的性能损耗
8
+ ### chore
9
+ * 日志信息显示毫秒
10
+
11
+ ## [3.0.1](https://github.com/Do1e/mijia-api/compare/v3.0.0...v3.0.1) - 2025-12-09
6
12
  ### new feature
7
13
  * 新增 API `mijiaAPI.get_shared_devices_list()`,用于获取共享设备列表
8
14
  ### bugfix
9
15
  * 修复了 alpine 下 `locale` 无法正常获取,默认使用 `zh_CN` 解决,如果需要在 alpine 下使用其他位置,请自行设置环境变量 `LC_ALL` 和 `LANG`。
10
16
  * 修复了共享家庭中无权限的问题,确保传递正确的 `owner_id`。
11
17
 
12
- ## [3.0.0](https://github.com/Do1e/mijia-api/compare/v2.0.2...v3.0.0) - 2025-11.28
18
+ ## [3.0.0](https://github.com/Do1e/mijia-api/compare/v2.0.2...v3.0.0) - 2025-11-28
13
19
  ### new feature
14
20
  * 使用最新的米家API接口,从 https://api.io.mi.com/app 切换到 https://api.mijia.tech/app
15
21
  * `mijiaAPI` 类的初始化参数变更,请传递用于保存认证数据的路径 `auth_data_path` 而不是认证数据
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mijiaAPI
3
- Version: 3.0.1
3
+ Version: 3.0.2
4
4
  Summary: A Python API for Xiaomi Mijia
5
5
  Author-email: Do1e <i@do1e.cn>
6
6
  License: GPL-3.0-or-later
@@ -11,7 +11,7 @@ from .devices import get_device_info, mijiaDevice
11
11
  from .version import version
12
12
 
13
13
 
14
- logging.getLogger("mijiaAPI").setLevel(logging.INFO)
14
+ logging.getLogger("mijiaAPI").setLevel(logging.DEBUG)
15
15
 
16
16
  def parse_args(args):
17
17
  parser = argparse.ArgumentParser(description=f"Mijia API CLI (v{version})")
@@ -37,6 +37,9 @@ class mijiaAPI():
37
37
  else:
38
38
  self.auth_data_path = Path(auth_data_path)
39
39
 
40
+ self._available_cache = None
41
+ self._available_cache_time = 0
42
+
40
43
  if self.auth_data_path.exists():
41
44
  with open(self.auth_data_path, "r") as f:
42
45
  self.auth_data = json.load(f)
@@ -72,10 +75,21 @@ class mijiaAPI():
72
75
  return False
73
76
  if any(key not in self.auth_data for key in ["ua", "ssecurity", "userId", "cUserId", "serviceToken"]):
74
77
  return False
78
+
79
+ current_time = int(time.time())
80
+ if current_time - self._available_cache_time < 60:
81
+ logger.debug(f"使用缓存的available结果: {self._available_cache}")
82
+ return self._available_cache
83
+
75
84
  try:
76
85
  self.check_new_msg(refresh_token=False)
77
86
  except Exception:
87
+ self._available_cache = False
88
+ self._available_cache_time = current_time
78
89
  return False
90
+
91
+ self._available_cache = True
92
+ self._available_cache_time = current_time
79
93
  return True
80
94
 
81
95
  @property
@@ -38,7 +38,7 @@ def get_logger(name: str) -> logging.Logger:
38
38
  console_handler = logging.StreamHandler()
39
39
 
40
40
  formatter = ColorFormatter(
41
- "%(asctime)s - %(name)s - %(levelname)s: %(message)s",
41
+ "%(asctime)s.%(msecs)03d - %(name)s - %(levelname)s: %(message)s",
42
42
  datefmt="%Y-%m-%d %H:%M:%S",
43
43
  )
44
44
  console_handler.setFormatter(formatter)
@@ -0,0 +1 @@
1
+ version = "3.0.2"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mijiaAPI
3
- Version: 3.0.1
3
+ Version: 3.0.2
4
4
  Summary: A Python API for Xiaomi Mijia
5
5
  Author-email: Do1e <i@do1e.cn>
6
6
  License: GPL-3.0-or-later
@@ -1 +0,0 @@
1
- version = "3.0.1"
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