Commit Graph

150 Commits

Author SHA1 Message Date
Mike A.
c1e7673eaf fix: define __hash__ and __eq__ for FindMyAccessory 2025-11-17 21:32:52 +01:00
Mike A.
59a55e070b fix: resolve typing errors 2025-11-08 14:58:09 +01:00
Mike A.
997cf8233c feat: cache more intermediate accessory keys
should improve performance for accessories that were paired a long time ago
2025-10-21 00:16:26 +02:00
Mike A.
9d1022c697 feat: support in-memory files for {from,to}_{json,plist} 2025-10-20 23:34:27 +02:00
Mike A.
6fc280e423 feat: prevent more event loop blocking 2025-10-16 22:09:43 +02:00
Mike A.
7c63463099 feat: prevent blocking event loop when getting local ani headers 2025-10-16 01:19:42 +02:00
Mike A.
755e2957e1 feat: do not block event loop on local Anisette init 2025-10-16 00:48:46 +02:00
Mike A.
c062723673 fix: workaround empty HTTP response when fetching device locations (#185) 2025-09-29 22:59:58 +02:00
Mike A.
653ce04f8d fix: prevent log spam when fetching accessories 2025-09-29 20:54:36 +02:00
Mike A.
7a67aa1b3c fix: make latest accessory reports fetchable again 2025-09-29 20:49:48 +02:00
Mike A.
22c72e0253 feat: return early when fetching accessory reports 2025-09-29 20:48:16 +02:00
Mike A.
3cc33f6bb0 feat: improve key alignment efficiency 2025-09-24 22:57:13 +02:00
Mike A.
fdfb32bd1c fix: adjust LocationReport repr 2025-09-19 14:53:36 +02:00
Mike A.
8692eccbef fix: linter warnings 2025-09-16 21:59:46 +02:00
Mike A.
25440fc479 fix: import error on Python 3.9 2025-09-11 16:50:17 +02:00
Mike A.
716f3bcdc5 fix: circular import error 2025-09-11 16:48:37 +02:00
Mike A.
325c831a5c feat: export more classes 2025-09-11 16:33:16 +02:00
Mike A.
e8d05b69bf refactor: combine utils into single import internally 2025-09-11 16:29:01 +02:00
Mike A.
2f1ca10def feat: export all classes in top-level package 2025-09-11 16:19:23 +02:00
Mike Almeloo
21bcb89bbd Merge branch 'main' into fix/accessory-key-drift 2025-09-08 00:51:18 +02:00
Mike A.
066fd0a714 fix: resolve typing issues in scanner 2025-09-06 21:56:19 +02:00
Mike A.
48007752af fix: Make examples work 2025-09-06 21:40:08 +02:00
Mike A.
05ea2c9a74 feat: re-introduce location history 2025-09-06 21:29:00 +02:00
Mike A.
fbaf57ed09 feat!: implement key alignment algorithm for accessories
BREAKING: due to fundamental issues with Apple's API, this commit also DEPRECATES the `fetch_[last_]reports` methods on Apple account instances. It has been replaced by a method named `fetch_location`, which only returns a single location report (the latest one) and does not support setting a date range.
2025-09-05 00:36:37 +02:00
pablobuenaposada
aab830cda4 Resolve versioned tests and update the required dependencies for python <3.11
- The github action that runs pytest in every python version was actually running pyhton 3.13 for all the cases, so it was useless
- The docs uses myst-parser==4.0.1 which is only supported in python >=3.10 and sphinx==8.2.3 which is only supported in python >=3.11, so both dependencies had been attached to needed python version so uv sync doesn't complain anymore
- No need of tool.uv.dependency-groups.docs anymore
- Rest of the changes are related to some imports not available in python 3.9 and 3.10
2025-08-17 11:53:13 +02:00
Mike A.
e992df7f88 feat: dump alignment info when importing accessories 2025-08-08 21:59:31 +02:00
Mike A.
32686a898d fix: include alignment parameters in accessory json 2025-08-07 21:21:21 +02:00
Mike A.
f771ad97d5 refactor: abstraction for plist reading 2025-08-07 21:06:48 +02:00
Mike A.
1d3affb3c2 Merge branch 'main' into pajowu/aligment 2025-08-07 20:46:31 +02:00
Mike A.
e2978b66a0 docs: hide typevar definitions 2025-08-05 15:08:56 +02:00
Mike A.
def535f819 docs: somewhat fix references in source code 2025-08-04 16:16:30 +02:00
Mike Almeloo
55c111073d Merge pull request #148 from malmeloo/feat/better-serialization
Make more objects `Serializable`
2025-08-03 21:46:05 +02:00
Mike A.
2e6f70d199 feat: add session managers 2025-08-03 21:45:04 +02:00
Mike A.
9017efc7be refactor: specialize Serializable subclasses for stronger type safety 2025-08-03 21:42:08 +02:00
Mike A.
543ffe64a3 feat: make FindMyAccessory serializable 2025-08-01 18:05:07 +02:00
Paul Bargewell
e15356c4a7 [fix] QA issues (BLE001) 2025-07-25 14:03:54 +01:00
Paul Bargewell
eba90b56a4 Fix unclosed aiohttp client session warnings
- Add proper session state management to HttpSession, RemoteAnisetteProvider, and AsyncAppleAccount
- Implement idempotent close() methods with _closed flags
- Improve cleanup order and error handling
- Prevent new session creation after close() is called

Fixes resource leaks and eliminates aiohttp unclosed session warnings.
2025-07-25 13:52:08 +01:00
Mike A.
07a3fed11e feat: make LocationReport serializable 2025-07-23 20:24:34 +02:00
Mike A.
cbea476226 feat: make KeyPair serializable 2025-07-23 20:04:31 +02:00
Mike A.
21ef4fe292 Merge remote-tracking branch 'refs/remotes/origin/main' into feat/better-serialization 2025-07-23 19:48:38 +02:00
Mike A.
c8a3605dd3 fix: add guard against incorrect account data deserialization 2025-07-23 19:45:24 +02:00
Mike Almeloo
5c117ddce2 Merge pull request #113 from shreyasminocha/pubkey-ble-conversion
Add BLE ad data generation method
2025-07-18 16:25:34 +02:00
Mike A.
50bd844955 refactor: split adv data method into BLE and OF variants 2025-07-18 16:22:18 +02:00
Mike A.
5d2fd04515 fix: make scanner work with Python 3.13 2025-07-18 16:11:20 +02:00
Mike Almeloo
715b01c165 Merge pull request #144 from malmeloo/feat/migrate-api
feat!(reports): Migrate to new acsn API
2025-07-18 15:02:45 +02:00
Mike A.
bbdd784e6a feat(reports): allow passing Anisette libs path when loading account from JSON 2025-07-14 22:21:21 +02:00
Mike A.
0118666f53 feat(reports): make BaseAppleAccount and subclasses Serializable 2025-07-14 22:10:47 +02:00
Mike A.
c37a51c2eb refactor(reports): improve Serializable base class 2025-07-14 22:10:14 +02:00
Mike A.
a2c3b3136e feat(reports): implement local Anisette provider 2025-07-11 15:04:32 +02:00
Mike A.
e74197372f fix(reports): split key queries into devices
Apple only returns up to 20 location reports per device.
2025-07-10 16:25:30 +02:00