icloud
This commit is contained in:
31
icloud.py
31
icloud.py
@@ -1,13 +1,35 @@
|
||||
import asyncio
|
||||
import json
|
||||
from dotenv import load_dotenv
|
||||
import os
|
||||
import json
|
||||
import logging
|
||||
|
||||
from pyicloud import PyiCloudService
|
||||
from pyicloud.exceptions import PyiCloud2FARequiredException
|
||||
class JsonFormatter(logging.Formatter):
|
||||
def format(self, record: logging.LogRecord) -> str:
|
||||
payload = {
|
||||
"ts": self.formatTime(record, "%Y-%m-%dT%H:%M:%S%z"),
|
||||
"level": record.levelname,
|
||||
"logger": record.name,
|
||||
"message": record.getMessage(),
|
||||
}
|
||||
if record.exc_info:
|
||||
payload["exc_info"] = self.formatException(record.exc_info)
|
||||
return json.dumps(payload, ensure_ascii=True)
|
||||
|
||||
|
||||
handler = logging.StreamHandler()
|
||||
handler.setFormatter(JsonFormatter())
|
||||
root_logger = logging.getLogger()
|
||||
root_logger.handlers = [handler]
|
||||
root_logger.setLevel(logging.INFO)
|
||||
logger = logging.getLogger("ios-api")
|
||||
|
||||
class FindMyMonitor:
|
||||
def __init__(self, username, password, queue: asyncio.Queue, token_file="icloud_token.txt"):
|
||||
self.username = username
|
||||
self.password = password
|
||||
def __init__(self, queue: asyncio.Queue, token_file="icloud_token.txt"):
|
||||
self.username = os.getenv("APPLE_ID")
|
||||
self.password = os.getenv("APPLE_PW")
|
||||
self.token_file = token_file
|
||||
self.queue = queue
|
||||
self.api = None
|
||||
@@ -72,6 +94,7 @@ class FindMyMonitor:
|
||||
self.start()
|
||||
|
||||
while self.running:
|
||||
logger.info("Starting iCloud FMF loop")
|
||||
try:
|
||||
lat, lon, ts = await self.get_location()
|
||||
print(f"[{ts}] Location: {lat}, {lon}")
|
||||
|
||||
Reference in New Issue
Block a user