Files
parentzone_downloader/__pycache__/auth_manager.cpython-313.pyc

128 lines
12 KiB
Plaintext
Raw Normal View History

2025-10-07 14:52:04 +01:00
<EFBFBD>
]<5D><>h)!<00><00><><00>SrSSKrSSKrSSKrSSKrSSKJrJrJr SSK J
r
"SS5r Sr \ S:Xa\R"\ "55 gg) z<>
Authentication Manager for ParentZone API
This module handles authentication against the ParentZone login API
and manages session tokens for API requests.
<EFBFBD>N)<03>Optional<61>Dict<63>Any)<01>urljoinc<00>z<00>\rSrSrSS\4SjjrS\S\S\4SjrS\S\4SjrS\ \\44S jr
S\4S
jr S r S r g )<0F> AuthManager<65><00>api_urlc <00>H<00>URS5Ul[URS5Ul[URS5UlSUlSUlSUlSUlSUl [R"[5Ul SSSSS S
S S S SSSS. Ulg)zP
Initialize the authentication manager.
Args:
api_url: Base URL of the API
<EFBFBD>/z/v1/auth/loginz/v1/auth/create-sessionNz!application/json, text/plain, */*z#en-GB,en-US;q=0.9,en;q=0.8,ro;q=0.7zapplication/json;charset=UTF-8zhttps://www.parentzone.mezu=1, izA"Not;A=Brand";v="99", "Google Chrome";v="139", "Chromium";v="139"z?0z"macOS"<22>empty<74>corsz same-sitezuMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36) <0C>acceptzaccept-languagez content-type<70>origin<69>priorityz sec-ch-uazsec-ch-ua-mobilezsec-ch-ua-platformzsec-fetch-destzsec-fetch-modezsec-fetch-sitez
user-agent)<0F>rstripr
r<00> login_url<72>create_session_url<72> session_token<65>api_key<65>user_id<69> user_name<6D> provider_name<6D>logging<6E> getLogger<65>__name__<5F>logger<65>headers)<02>selfr
s <20>A/Users/tudorsitaru/projects/parentzone_downloader/auth_manager.py<70>__init__<5F>AuthManager.__init__s<><00><00><1F>~<7E>~<7E>c<EFBFBD>*<2A><04> <0C> <20><14><1C><1C>/?<3F>@<40><04><0E>")<29>$<24>,<2C>,<2C>8Q<38>"R<><04><1F>,0<><04><1A>&*<2A><04> <0C>&*<2A><04> <0C>(,<2C><04><0E>,0<><04><1A><1D>'<27>'<27><08>1<><04> <0B>:<3A>D<><<3C>1<> <20>\<5C> $<24>"+<2B>%<25>$<24>)<29>R<02> 
<EFBFBD><04> <0C><00>email<69>password<72>returnc <00><00><># <00>URRSU35 UUS.n[R"SS9n[R"US9IShv<01>N nUR UR URUS9IShv<01>N nURRSUR35 URS :XGa<>UR5IShv<01>N nURRS
5 URRS [U535 URRS U35 [U[5(a<>[U5S :<3A>a<>US nURS5UlURS5UlURS5UlURRSUR"SUR$SUR S35 UR'U5IShv<01>N sSSS5IShv<01>N sSSS5IShv<01>N $URR)SU35 SSS5IShv<01>N SSS5IShv<01>N gUR+5IShv<01>N n URR)SURSU 35 SSS5IShv<01>N SSS5IShv<01>N gGNsGNGGN<>N<>N<>N<>N<>N{NdN*N!,IShv<01>N (df  OI=f![,a9n
URR)SU
35 Sn
A
SSS5IShv<01>N gSn
A
ff=fSSS5IShv<01>N g!,IShv<01>N (df  g=f7f)a-
Login to the ParentZone API using two-step authentication.
Step 1: Login with email/password to get user accounts
Step 2: Create session with first account ID and password to get API key
Args:
email: User email
password: User password
Returns:
True if login successful, False otherwise
zAttempting login for )r$r%<00><00><01>total<61><01>timeoutN<74>r<00>jsonzLogin response status: <20><>zLogin successfulzResponse data type: zFull response data: r<00>id<69>name<6D> providerNamezSelected account: <20> at z (ID: <20>)z"Unexpected login response format: FzLogin failed with status <20>: zLogin request failed: )r<00>info<66>aiohttp<74> ClientTimeout<75> ClientSession<6F>postrr<00>statusr.<00>debug<75>type<70>
isinstance<EFBFBD>list<73>len<65>getrrr<00>_create_session<6F>error<6F>text<78> Exception) rr$r%<00>
login_datar,<00>session<6F>response<73>data<74> first_account<6E>
error_text<EFBFBD>es r <00>login<69>AuthManager.login3s<><00><00><00> <0A> <0B> <0B><18><18>0<><15><07>8<>9<><1B> <20>
<EFBFBD>
<EFBFBD>
<1A>'<27>'<27>b<EFBFBD>1<><07><1A>(<28>(<28><17>9<>9<>W<EFBFBD>$ <1D>"<22><<3C><<3C><18>N<EFBFBD>N<EFBFBD> <20>L<EFBFBD>L<EFBFBD>#<23>(<28><12><12><1E><18>K<EFBFBD>K<EFBFBD>$<24>$<24>'><3E>x<EFBFBD><EFBFBD><EFBFBD>>O<>%P<>Q<><1F><EFBFBD><EFBFBD>#<23>-<2D>%-<2D>]<5D>]<5D>_<EFBFBD>4<><04><1C> <0B> <0B>(<28>(<28>);<3B><<3C><1C> <0B> <0B>)<29>)<29>,@<40><14>d<EFBFBD><1A> <0C>*M<>N<><1C> <0B> <0B>)<29>)<29>,@<40><14><06>*G<>H<>&<26>d<EFBFBD>D<EFBFBD>1<>1<>c<EFBFBD>$<24>i<EFBFBD>!<21>m<EFBFBD>,0<><11>G<EFBFBD>M<EFBFBD>+8<>+<<3C>+<<3C>T<EFBFBD>+B<>D<EFBFBD>L<EFBFBD>-:<3A>-><3E>-><3E>v<EFBFBD>-F<>D<EFBFBD>N<EFBFBD>1><3E>1B<31>1B<31>><3E>1R<31>D<EFBFBD>.<2E> <20>K<EFBFBD>K<EFBFBD>,<2C>,<2C>/A<>$<24>.<2E>.<2E>AQ<41>QU<51>VZ<56>Vh<56>Vh<56>Ui<55>io<69>pt<70>p|<7C>p|<7C>o}<7D>}~<7E>-<>A<02>*.<2E>)=<3D>)=<3D>h<EFBFBD>)G<>#G<>1<12><12><12>:<3A>9<>9<>8!<21>K<EFBFBD>K<EFBFBD>-<2D>-<2D>0R<30>SW<53>RX<52>.Y<>Z<>#(<28>7<12><12>:<3A>9<>9<>>,4<>=<3D>=<3D>?<3F>%:<3A>
<EFBFBD><1C> <0B> <0B>)<29>)<29>,E<>h<EFBFBD>o<EFBFBD>o<EFBFBD>EV<45>VX<56>Yc<59>Xd<58>*e<>f<>$<24>?<12><12>:<3A>9<>9<><12> 5<> $H<01>1<12>:<3A><12>:<3A>>&;<3B>;<12>:<3A><12><12><12><>B<1D> <1D><14> <0B> <0B>!<21>!<21>$:<3A>1<EFBFBD>#<23>"><3E>?<3F><1C>K:<3A>9<>9<><39>F <1D><>G:<3A>9<>9<>9<>9<>9<>s<EFBFBD><00>AM*<01>K<06>M*<01>M<03>)K8<02>K<08>K8<02>A K<05>K <08>D&K<05>9K<08>:K<05>= K8<02> K<08>
K8<02> M*<01>K<06>M*<01> K<05>? K8<02>
K<06> K8<02> M*<01>K<04>M*<01> K<05>3K<08>40K<05>$ K8<02>/K<06>0K8<02>4 M*<01>?K<04>M*<01>K8<02> K<05>K<05>K8<02>M*<01>K8<02>M*<01>K<05>K8<02>M*<01>K5 <09>$K'<0E>% K5 <09>1K8<02>4M<03>5K8<02>8
L;<05>L6<05> M<03>$ M*<01>/L2<04>0M*<01>6L;<05>;M<03>> M*<01> M <04>
M*<01>M'<07>M <0C> M'<07>#M*c<00><00>"# <00>UR(dURRS5 gURRSUR35 URUS.nURR 5nSUS'[ R"SS9n[ R"US 9IS
hv<01>N nURURUUS 9IS
hv<01>N nURRS UR35 URS :Xa<>UR5IS
hv<01>N nURRS5 URRSU35 [U[5(aMSU;aGUSUlURRS5 S
S
S
5IS
hv<01>N S
S
S
5IS
hv<01>N gURRSU35 S
S
S
5IS
hv<01>N S
S
S
5IS
hv<01>N gUR#5IS
hv<01>N nURRSURSU35 S
S
S
5IS
hv<01>N S
S
S
5IS
hv<01>N gGN<>GN<>GNKN<>N<>N<>NyNbN(N!,IS
hv<01>N (df  OI=f![$a9n URRSU 35 S
n A S
S
S
5IS
hv<01>N gS
n A ff=fS
S
S
5IS
hv<01>N g
!,IS
hv<01>N (df  g
=f7f)z<>
Create a session using the user ID from login.
Args:
password: User password
Returns:
True if session creation successful, False otherwise
z)No user ID available for session creationFzCreating session for user ID: )r0r%<00>iConnect<63> x-api-productr(r)r+Nr-z Create session response status: r/zSession creation successfulzSession response data: <20>keyzAPI key obtained successfullyTz$No 'key' field in session response: z$Session creation failed with status r5z!Session creation request failed: )rrrCr6r<00>copyr7r8r9r:rr;r.r<r><00>dictrrDrE)
rr%<00> session_data<74>session_headersr,rGrHrIrKrLs
r rB<00>AuthManager._create_sessionps<><00><00><00><14>|<7C>|<7C> <10>K<EFBFBD>K<EFBFBD> <1D> <1D>I<> J<><18> <0C> <0B> <0B><18><18>9<>$<24>,<2C>,<2C><1E>H<>I<><17>,<2C>,<2C> <20>
<EFBFBD> <0C> <1F>,<2C>,<2C>+<2B>+<2B>-<2D><0F>+5<><0F><0F>(<28><19>'<27>'<27>b<EFBFBD>1<><07><1A>(<28>(<28><17>9<>9<>W<EFBFBD> <1D>"<22><<3C><<3C><18>+<2B>+<2B>+<2B>%<25>(<28><12><12><1E><18>K<EFBFBD>K<EFBFBD>$<24>$<24>'G<><08><0F><0F>GX<47>%Y<>Z<><1F><EFBFBD><EFBFBD>#<23>-<2D>%-<2D>]<5D>]<5D>_<EFBFBD>4<><04><1C> <0B> <0B>(<28>(<28>)F<>G<><1C> <0B> <0B>)<29>)<29>,C<>D<EFBFBD>6<EFBFBD>*J<>K<>&<26>d<EFBFBD>D<EFBFBD>1<>1<>e<EFBFBD>t<EFBFBD>m<EFBFBD>+/<2F><05>;<3B>D<EFBFBD>L<EFBFBD> <20>K<EFBFBD>K<EFBFBD>,<2C>,<2C>-L<>M<>#'<27>!<12><12>:<3A>9<>9<>(!<21>K<EFBFBD>K<EFBFBD>-<2D>-<2D>0T<30>UY<55>TZ<54>.[<5B>\<5C>#(<28>'<12><12>:<3A>9<>9<>.,4<>=<3D>=<3D>?<3F>%:<3A>
<EFBFBD><1C> <0B> <0B>)<29>)<29>,P<>QY<51>Q`<60>Q`<60>Pa<50>ac<61>dn<64>co<63>*p<>q<>$<24>/<12><12>:<3A>9<>9<><12> 5<><12>:<3A><12>:<3A>.&;<3B>+<12>:<3A><12><12><12><>2<1D> <1D><14> <0B> <0B>!<21>!<21>$E<>a<EFBFBD>S<EFBFBD>"I<>J<><1C>;:<3A>9<>9<><39>6 <1D><>7:<3A>9<>9<>9<>9<>9<>sv<00>B0L<01>2I,<06>3L<01>6K5<03>8J<02>I/<08>J<02>A J<05>'I2<08>(A>J<05>& J<02>1I5<06>2J<02>6 L<01>I7<04>L<01>J<05>& J<02>1I9<06>2J<02>6 L<01>I;<04>L<01>J<05>I=<08>0J<05> J<02>I?<06>J<02> L<01>&J<04>'L<01>/J<02>2J<05>5J<02>7L<01>9J<02>;L<01>=J<05>?J<02>L<01>J <09> J <0E>
J <09>J<02>K5<03>J<02>
K <05>'K<05>K5<03> L<01>K<04>L<01>K <05> K5<03># L<01>.K1<04>/L<01>5L <07>;K> <0C>< L <07>Lc<00><><00>URR5nUR(aURUS'SUS'U$)ze
Get headers with authentication token.
Returns:
Dictionary of headers including authentication
z x-api-keyrPrQ)rrSr)rrs r <00>get_auth_headers<72>AuthManager.get_auth_headers<72>s:<00><00><17>,<2C>,<2C>#<23>#<23>%<25><07> <0F><<3C><<3C>#'<27><<3C><<3C>G<EFBFBD>K<EFBFBD> <20>'1<>G<EFBFBD>O<EFBFBD> $<24><16>r#c<00><00>URSL$)zX
Check if currently authenticated.
Returns:
True if authenticated, False otherwise
N)r<00>rs r <00>is_authenticated<65>AuthManager.is_authenticated<65>s<00><00><14>|<7C>|<7C>4<EFBFBD>'<27>'r#c<00><><00>SUlSUlSUlSUlSUlUR
R S5 g)zClear the session data.Nz!Logged out - session data cleared)rrrrrrr6r\s r <00>logout<75>AuthManager.logout<75>s:<00><00><1B><04> <0C>!<21><04><1A><1B><04> <0C><1D><04><0E>!<21><04><1A> <0C> <0B> <0B><18><18><<3C>=r#)
rr
rrrrrrrrN)zhttps://api.parentzone.me)r<00>
__module__<EFBFBD> __qualname__<5F>__firstlineno__<5F>strr!<00>boolrMrBrrYr]r`<00>__static_attributes__<5F>r#r rrsc<00><00>
<EFBFBD><03>
<EFBFBD>B;<1D><13>;<1D><03>;<1D><04>;<1D>z7<1D>c<EFBFBD>7<1D>d<EFBFBD>7<1D>r<17>$<24>s<EFBFBD>C<EFBFBD>x<EFBFBD>.<2E><17> (<28>$<24>(<28>>r#rc<00><00><># <00>[5nSnSn[S5 URX5IShv<01>N nU(a<>[S5 [SURSUR35 [SUR
35 [UR (aS UR SS
S 3OS 5 UR5n[S [UR5535 g[S5 gN<>7f)zTest the login functionality.ztudor.sitaru@gmail.comzmTVq8uNUvY7R39EPGVAm@zTesting ParentZone Login...Nu✅ Login successful!zUser: r3z User ID: z API Key: <20>z...zNo API key foundzAuth headers: u❌ Login failed!)
r<00>printrMrrrrrYr?<00>keys)<05> auth_managerr$r%<00>successrs r <00>
test_loginro<00>s<><00><00><00><1E>=<3D>L<EFBFBD> %<25>E<EFBFBD>&<26>H<EFBFBD> <09>
'<27>(<28> <20>&<26>&<26>u<EFBFBD>7<>7<>G<EFBFBD><0E> <0A>%<25>&<26> <0A><06>|<7C>-<2D>-<2D>.<2E>d<EFBFBD><<3C>3M<33>3M<33>2N<32>O<>P<> <0A> <09>,<2C>.<2E>.<2E>/<2F>0<>1<> <0A>L<EFBFBD><P<><P<> <09>,<2C>.<2E>.<2E>s<EFBFBD><02>3<>4<>C<EFBFBD>8<>Vh<56>i<><1F>/<2F>/<2F>1<><07> <0A><0E>t<EFBFBD>G<EFBFBD>L<EFBFBD>L<EFBFBD>N<EFBFBD>3<>4<>5<>6<> <0A>!<21>"<22>8<>s<00>.C7<01>C5<04>CC7<01>__main__)<0F>__doc__<5F>asyncior7r.r<00>typingrrr<00> urllib.parserrror<00>runrhr#r <00><module>rvsP<00><01><04><0F><0E> <0B><0E>&<26>&<26> <20>x><3E>x><3E>v#<23>0 <0C>z<EFBFBD><19> <0B>K<EFBFBD>K<EFBFBD>
<EFBFBD> <0C><1D>r#