Merge remote-tracking branch 'origin/master'
# Conflicts: # cookies/willbrunogmailcom.cookiejar # cookies/willbrunogmailcom.session # geocache.db # src/pymd3_vue_location_sim/simulation_service.py
This commit is contained in:
@@ -1,24 +0,0 @@
|
|||||||
#LWP-Cookies-2.0
|
|
||||||
Set-Cookie3: dslang=US-EN; path="/"; domain=.apple.com; path_spec; secure; discard; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: site=USA; path="/"; domain=.apple.com; path_spec; secure; discard; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: acn01=43IpnpH42yUtX4EjIBDzKr+N4LMOm3RNiCqdigAGC8riq2Mh; path="/"; domain=.apple.com; path_spec; secure; expires="2027-06-08 09:49:46Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: aasp=56817AA81D35F490F778036540827CE7929632BDE9E46C7A717F2CA3BFF0DA1548E41E4FB5D14CDE0B255826AF35EDCD2E65B133A67D7E64B98FABA33FAA9EB69803778EADBD83D3CC8F0558173A5C4FF6C651FEAAE8A43A4137C239C49DCDDFB7B1B5D6CB10C469A2B0D024C979C3F36A20AFB63BF41E52; path="/"; domain=.idmsa.apple.com; path_spec; secure; discard; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-UNIQUE-CLIENT-ID="\"BA==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; discard; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-LOGIN="\"v=1:t=BA==BST_IAAAAAAABLwIAAAAAGomkDsRDmdzLmljbG91ZC5hdXRovQB6nCIEQ9No341e72wJR67LoENHtD8HRO28owG3UAihHwRacNJe6TAO-4vvCAjosdNOAn-0lJDD0z5NKm3qmffJ2G_kXBPOC1951rBUbWMnYRkqJWc1KkTin68HqrI0hea6NXdizVk3wNzfw4W5t6tLjhVi2Q~~\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; discard; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-VALIDATE="\"v=1:t=BA==BST_IAAAAAAABLwIAAAAAGomkDsRDmdzLmljbG91ZC5hdXRovQB6nCIEQ9No341e72wJR67LoENHtD8HRO28owG3UAihHwRacNJe6TAO-4vvCAjosdNOAn-0lJDD0z5NKm3qmffJ2G_kXBPOC1951rBUbWMnYZ8PdzuhtbwcEHscLn-X0LlmTh7wXrzM9XS8auMLbRth4qpxHQ~~\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; discard; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-USER="\"v=1:s=1:d=157320350\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-DS-WEB-SESSION-TOKEN="\"AQHoSy7FvKrWs9m+K1WxMZYoJjMlMTygkA6OAiY21Sinwx8t8khapWBSzOJCl2DampciRznMUUUJSnHBQ6ubChjUtOWGDPOjati9w2glybWjkvOFp2MR74x+QE+VwU1Yt8H0ph63qZUIA9zmbYR68+e2a4lmfHiMe7gFzkYzyW9zZ7AMGU8cFY35QzUEYMJRh3r8M+2kDX9vbhhEglX+kb7o/nHCWUdd0Bry0ykjKM/5oeb2aF0zYfmsXFrV1kwj5EzGDVjqUF2FPJB9RXY3IyA6bk5cRA1OAEQy9X5ui4ZE3dUy4gBToZbQhI/H20CSqbXK3ogS4QxV6yBy0SKTLYMc6oWOld5bb2pt0J3BmnNwNGRYotLcZTdijCUrI8o2icQG2R5wS7bcv/PHrzcWeH/EoswEdRWCtcOCbAzh3DeXp4zmkMT4V15ndhsMe7Yscgzh8rnajuvqYPc404PHwFnwanOifdxNdyxVGsymyjM7zgrlJn0YXD21Xf5bwoAwT5HEHHKWtUYTJ3FgLOvf7zBfyM43YitLd6dz4cW2F2SC6G0qAn8BcCYSqnccgB/84b/hLlkmSq6l1afnr8X0TWbO1VQCBpRkOKghY2clZyFRGU9FzW+FbLzJlAv6mW0ZGbA/bPFMm1sL+PFmi2b6tY2XaTHtK4QhoLRIy8nqzpNPVzvqzCx7wbnG93jZJbn/Ciaw6A8fZviH2Hj9NyrBTLOK0PrIo47Hzv2LEtqyOBsMaMxNRBI=\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-HSA-TRUST="\"28a33818a1dce9a0eecde38e7c8fcc6f080b70bc9feb505599fb2855903a4792_HSARMTKNSRVXWFlajR2ecD1662phQjqU9vXxnL49ZjypuVYYXHDpA3wTiX6Mf2J4WDlIhZj52z81aDOuz+VC80bVhV41TSNN4ggoPjW8WnsQrjniTQYkgJycPQNnzhkK4hfe2AMrr/bhrJJm8sHHc+Oh1HUckN6T7T4c1bmf2Qg9tRwsdRDNyMMyFH/Ml/cQlWKj39/YHlY=SRVX\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-19 17:15:45Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Events="\"S2V5QXBwbDoBAAAA8QRJAAAirZJpQFJb2TDGoxQE/lz1+sRy7Lw+j6Ru//1oW4Q9tA==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Documents="\"S2V5QXBwbDoBAAAAAgRJAADxMLEMWJSkdoTCBeyudeYIHVFYHUPrvZkbD00Eg3HN0Q==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Photos="\"S2V5QXBwbDoBAAAAAwRJAAAj1czR0F0c3UXFa7fi0Kip/IQtiQlXTVnQm0z/0/OC5A==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Cloudkit="\"S2V5QXBwbDoBAAAABARJAAAyJvijP1uNzx7RoqN0XAC6Kw/bjVImAKfj7MIijISjAw==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Safari="\"S2V5QXBwbDoBAAAAFgRJAAD+qR1vbHoP+gcyL4++tpGc4ZtuZMRwR5UgpDo2G5iGLA==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Mail="\"S2V5QXBwbDoBAAAABwRJAACsopvdHc+QIMGwy9okCvHbfbJEeI+Yd/zIu7n3LFfg+A==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Notes="\"S2V5QXBwbDoBAAAACQRJAABsU6GC6NnWE1vfNTJlDw+QTgQInDjUHq8wX3zoeVRWKQ==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-News="\"S2V5QXBwbDoBAAAACwRJAABLn1yxLn3BlILCYhbHi2KkpqtieEA5SMXIGTd+yZkK1A==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-PCS-Sharing="\"S2V5QXBwbDoBAAAADARJAADPIEHYxyiXApTXGZVBXzvqnOBF+d+36fe/w9x5UmpnFA==\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-08 09:49:50Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-TOKEN="\"v=2:t=BA==BST_IAAAAAAABLwIAAAAAGopfFIRDmdzLmljbG91ZC5hdXRovQB53QtaCTAs4CCITjo-fRWh2bVtIOAu14h40Ip1q0WAUEUnwBfTUvwEUmhsuxpa4FKSWxbcA92RLfAcb_8ZTwrE61tzydo9IkuSx_v8lQ31HYWpw1ubasZRHRJnFD5DAOteb5YZ1voZgssHD7i7voBlcYvd7A~~\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-06-24 15:01:38Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X_APPLE_WEB_KB-FHMLYL_TPMN_3A8D3KIPPI0C_EC="\"v=1:t=BA==BST_IAAAAAAABLwIAAAAAGoSRvQRDmdzLmljbG91ZC5hdXRovQCi8Ix1StINjWKN3riIK-CpAGXpUTRwjkr_Ef3T6Xo1q31aJc09ukEXwQzvu5kFWDMNs1UTDzAGX4MHoyyfWaAmgRxcE4O3kg4MAlpXmtvIwHTuFQjeF93_AwW2DWZJfz44Ci4DL_EMCm5tp6ipJSpaS1JdGA~~\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; expires="2026-07-23 00:31:51Z"; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: X-APPLE-WEBAUTH-FMIP="\"BA==BST_IAAAAAAABLwIAAAAAGopfFIRDmdzLmljbG91ZC5hdXRovQB53QtaCTAs4CCITjo-fRWh2bVtIOAu14h40Ip1q0WAUEUnwBfTUvwEUmhsuxpa4FKSWxbcA92RLfAcb_8ZTwrE61tzydo9IkuSx_v8lQ31HTNfVQMURniKacW1UgjZuoo73Kw-mXj2JaJ5nXko4A6PthriKw~~\""; path="/"; domain=.icloud.com; path_spec; domain_dot; secure; discard; HttpOnly=None; version=0
|
|
||||||
Set-Cookie3: xr_3n2093n1a="39tQhROp9MjDRJE1I9bOp4U4pQbWc3/qW/7BFYXHAA=="; path="/"; domain=p144-fmipweb.icloud.com; path_spec; secure; discard; HttpOnly=None; version=0
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{"client_id": "a803c3ce-2586-11f1-a724-8f6777a1d2b5", "session_id": "56817AA81D35F490F778036540827CE7929632BDE9E46C7A717F2CA3BFF0DA1548E41E4FB5D14CDE0B255826AF35EDCD2E65B133A67D7E64B98FABA33FAA9EB69803778EADBD83D3CC8F0558173A5C4FF6C651FEAAE8A43A4137C239C49DCDDFB7B1B5D6CB10C469A2B0D024C979C3F36A20AFB63BF41E52", "auth_attributes": "PaexqsUyyQojHFxVy217bcacZMonhRYIw39BQcvjuhf3YVg9FIIG19HhK4sC4N5Bzy/hADrIGhDSDfwhujpbjORbXxAfbiyjHJm1SRPwNRPTSTozdBumSko3E25ClXy/0JjA3Eb1IG90WSpzED+olZrJ4Tmsi6yXzGeylycMMhv0T4S6H1U5uLgGKx6eMzvIufbnEJMFv36/2uMDU9RI/UqMG5qxx0Vjkla4ZCGP/bkfOrjVgL+OVN9DI+biJCvP7HyXwjuOZW1Slty1DIo2AAeLAnyNOZE=", "scnt": "AAAA-jU2ODE3QUE4MUQzNUY0OTBGNzc4MDM2NTQwODI3Q0U3OTI5NjMyQkRFOUU0NkM3QTcxN0YyQ0EzQkZGMERBMTU0OEU0MUU0RkI1RDE0Q0RFMEIyNTU4MjZBRjM1RURDRDJFNjVCMTMzQTY3RDdFNjRCOThGQUJBMzNGQUE5RUI2OTgwMzc3OEVBREJEODNEM0NDOEYwNTU4MTczQTVDNEZGNkM2NTFGRUFBRThBNDNBNDEzN0MyMzlDNDlEQ0RERkI3QjFCNUQ2Q0IxMEM0NjlBMkIwRDAyNEM5NzlDM0YzNkEyMEFGQjYzQkY0MUU1MnwzAAABnqaxIC753vvCF1phXcEJjQjSGf0QAMzJ6rYIlLPQG8q7DJsGu89_hUoHiYV5AAeLAnfvLKQAKZvWurZdZ1YImodmok9MZQHm8dQvxf0gatg_f9qLUQ", "account_country": "USA", "session_token": "L5/YMfRFlTwUPXqPcM0W3n7vkiDlQn3RxejT+00cvc9UEnAUOllon5kPfGUFNz2lFwk34/3P7cW1G60nkCBQNpl4PDbOxx7F+g6SLXQUOscD8QruAQHHAUQyprwfnIttCsAEVIvURrhE5zkIBNniLb62etKBibgKKKfBbs0KTcBP/lexk+HD9D5N6wsv43Kv3kxwon3CmCZQxHgZ/PrjbSsSVymWagJ1oFN9FGdsL9MdbKLYxB4KvwV8pJF3lUjrdxmL1ekn21UAk8XLY4OrzHsk7EOguRuqjc0Cb9IRHrYhNmZOWLte+d7q85gr6bznDUSnI+QBc9ptpf05hgDzRAAx+CsQEH3U7B8heekhwYP5F8IKfSDY3KLhsDmatRBZECljzd5JWul6NRKkrJlEythJ0DBWmQZByvAmGppTr8wfMeD6yusOnrpVylPo6cbbEf5DII0OLGLLcysNYO4z+/UBmv1i+hfjDlzKaWzu6zLAGLL9LJmu+izcFNSs6qqSxjdIeAL1yuFZQ0mnXi1sPQ/AW6scGmy9RtxZ+ZDlXIP5LXTdJyxmNXixGSARno5y98syQbfNsQnTfX1vLzkMR8YgsZX6z5Zq2ao8nU24+T23iGqs34c8ly+7wTC7cIJh+7ZcXhrfBOB+6QKLkfrroubA/7Ooaf80dJBDmMp91k9uomf6NRY6wYc4W3BclDoJFJ66CzoR15NqcPMaCxIGe3RIYmbD/OSjRUsQ/lFHWXv4t8xvSFvZIW8l909gNBagyBYBKsS5liXOJBvDZblP8q+yo5vQOzhDbX8/+A8WY+PGn7L4a3tc5Yb6DiEaeclzaEHZrQEIM52koiToO6OJSTyRwfJwgpQEbSRFXK0zqXfeBszevqbsw2gSeePeqD+HpM81vmgf9nXxf2mTsyA2cZ6Sefeg5mrAb9N3VVseqiHNRJruqBC5vyO8hnDOXIxE1DxFC0qSRK7JkjbG3a0+zW1AoaHRBnjAfpH9nU8oSBO4feyCjZ+UKvOUerCjcFMtsKjMUseSNXBqQhsXGL3ZdJbrsAAHiwJ8jofG", "trust_eligible": "true", "grant_code": "c7f4eb1fa9c0c4821bb56e7f0d86f4410.0.srzwz.Qg-aHawHsScPT5s8mVqKoA", "trust_token": "HSARMTKNSRVXWFlajR2ecD1662phQjqU9vXxnL49ZjypuVYYXHDpA3wTiX6Mf2J4WDlIhZj52z81aDOuz+VC80bVhV41TSNN4ggoPjW8WnsQrjniTQYkgJycPQNnzhkK4hfe2AMrr/bhrJJm8sHHc+Oh1HUckN6T7T4c1bmf2Qg9tRwsdRDNyMMyFH/Ml/cQlWKj39/YHlY=SRVX"}
|
|
||||||
@@ -9,6 +9,7 @@ dependencies = [
|
|||||||
"geopy[aiohttp]==2.4.1",
|
"geopy[aiohttp]==2.4.1",
|
||||||
"httpx>=0.28.1",
|
"httpx>=0.28.1",
|
||||||
"numpy==2.4.3",
|
"numpy==2.4.3",
|
||||||
|
"psutil>=7.2.2",
|
||||||
"pydantic==2.12.5",
|
"pydantic==2.12.5",
|
||||||
"pyicloud>=2.4.1",
|
"pyicloud>=2.4.1",
|
||||||
"pymobiledevice3==9.8.1",
|
"pymobiledevice3==9.8.1",
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
|
import psutil
|
||||||
import math
|
import math
|
||||||
import random
|
import random
|
||||||
import traceback
|
import traceback
|
||||||
@@ -210,6 +211,16 @@ class SimulationService:
|
|||||||
if isinstance(data, dict)
|
if isinstance(data, dict)
|
||||||
else getattr(data, "address", None)
|
else getattr(data, "address", None)
|
||||||
)
|
)
|
||||||
|
item_type = (
|
||||||
|
data.get("type")
|
||||||
|
if isinstance(data, dict)
|
||||||
|
else getattr(data, "type", None)
|
||||||
|
)
|
||||||
|
instruction = (
|
||||||
|
data.get("instruction")
|
||||||
|
if isinstance(data, dict)
|
||||||
|
else getattr(data, "instruction", None)
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
delay = self.parse_delay_seconds(delay)
|
delay = self.parse_delay_seconds(delay)
|
||||||
except ValueError as e:
|
except ValueError as e:
|
||||||
@@ -257,16 +268,24 @@ class SimulationService:
|
|||||||
"status": "queued",
|
"status": "queued",
|
||||||
"start": new_time.isoformat(),
|
"start": new_time.isoformat(),
|
||||||
"address": address,
|
"address": address,
|
||||||
|
"instruction": instruction,
|
||||||
|
"type": item_type,
|
||||||
}
|
}
|
||||||
resp = {
|
resp = {
|
||||||
"command_status": "OK",
|
"command_status": "OK",
|
||||||
"command_class": "simulation_control",
|
"command_class": "simulation_control",
|
||||||
"command": "add",
|
"command": "add",
|
||||||
"message": f"Location {loc_id} added to the queue",
|
"message": f"Location {loc_id} added to the queue",
|
||||||
"data": {
|
"data":
|
||||||
"simulation": self.get_simulation_status(),
|
{
|
||||||
"location_item": location_item,
|
"simulation":
|
||||||
},
|
{
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
loc_id: location_item,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
self.add_item(loc_id, location_item)
|
self.add_item(loc_id, location_item)
|
||||||
await self.enqueue_next_simulation_item()
|
await self.enqueue_next_simulation_item()
|
||||||
@@ -563,10 +582,10 @@ class SimulationService:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def get_uptime(self) -> float:
|
def get_uptime(self) -> float:
|
||||||
with open('/proc/uptime', 'r') as f:
|
boot_time_timestamp = psutil.boot_time()
|
||||||
# The first number is total uptime seconds
|
boot_time = datetime.fromtimestamp(boot_time_timestamp)
|
||||||
uptime_seconds = float(f.readline().split()[0])
|
uptime = datetime.now() - boot_time
|
||||||
return uptime_seconds
|
return uptime
|
||||||
|
|
||||||
def get_status(self) -> dict:
|
def get_status(self) -> dict:
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -1347,6 +1347,7 @@ dependencies = [
|
|||||||
{ name = "geopy", extra = ["aiohttp"] },
|
{ name = "geopy", extra = ["aiohttp"] },
|
||||||
{ name = "httpx" },
|
{ name = "httpx" },
|
||||||
{ name = "numpy" },
|
{ name = "numpy" },
|
||||||
|
{ name = "psutil" },
|
||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "pyicloud" },
|
{ name = "pyicloud" },
|
||||||
{ name = "pymobiledevice3" },
|
{ name = "pymobiledevice3" },
|
||||||
@@ -1368,6 +1369,7 @@ requires-dist = [
|
|||||||
{ name = "geopy", extras = ["aiohttp"], specifier = "==2.4.1" },
|
{ name = "geopy", extras = ["aiohttp"], specifier = "==2.4.1" },
|
||||||
{ name = "httpx", specifier = ">=0.28.1" },
|
{ name = "httpx", specifier = ">=0.28.1" },
|
||||||
{ name = "numpy", specifier = "==2.4.3" },
|
{ name = "numpy", specifier = "==2.4.3" },
|
||||||
|
{ name = "psutil", specifier = ">=7.2.2" },
|
||||||
{ name = "pydantic", specifier = "==2.12.5" },
|
{ name = "pydantic", specifier = "==2.12.5" },
|
||||||
{ name = "pyicloud", specifier = ">=2.4.1" },
|
{ name = "pyicloud", specifier = ">=2.4.1" },
|
||||||
{ name = "pymobiledevice3", specifier = "==9.8.1" },
|
{ name = "pymobiledevice3", specifier = "==9.8.1" },
|
||||||
|
|||||||
Reference in New Issue
Block a user