+
    i6                     x    ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHtHt R tR tR	 tR# )
    N)async_playwright)set_init_script)Path)BASE_DIRLOCAL_CHROME_PATHLOCAL_CHROME_HEADLESS)get_platform_key_by_typePLATFORM_CONFIGSc                P    \         P                  ! 4       p\         P                  ! V4       VP                  \	        WV4      4       VP                  4        R#   \         dA   p\        R\        T4       24       TP                  R\        T4       R24        Rp?R# Rp?ii ; i)u   
统一登录异步处理函数
参数：
    type: 平台类型编号
    id: 账号名
    status_queue: 状态队列，用于返回登录状态
   统一登录失败: $   {"code": 500, "msg": "登录失败: ", "data": null}N)
asyncionew_event_loopset_event_looprun_until_completeunified_login_cookie_genclose	Exceptionprintstrput)typeidstatus_queueloopes   &&&  K/data/.openclaw/workspace/MediaPublishPlatform/sau_backend/myUtils/login.pyrun_unified_loginr      s    \%%'t$ 8< PQ

 \$SVH-.@QHYZ[[\s   AA B%%5B  B%c                  aaaa"    \        \        V 4      4      pV'       g   VP                  R4       R# \        P                  ! V4      pV'       g   VP                  R4       R# V RV R2p\        \        R,          V,          4      pVP                  P                  RRR7       \        4       ;_uu_4       GRj  xL
 pR	. R(OR
\        R\        /pVP                  P                  ! R)/ VB G Rj  xL
 p	V	P                  4       G Rj  xL
 p
\        V
4      G Rj  xL
 p
V
P!                  4       G Rj  xL
 oSP#                  VR,          RRR7      G Rj  xL
  \%        RVR,           R24       RpSP&                  oRo\%        RV 24       \(        P*                  ! 4       oVVVV3R lpSP-                  RV4        \%        RV R24       \(        P.                  ! SP1                  4       VR7      G Rj  xL
  S'       d   V
P9                  \7        V4      R7      G Rj  xL
  VP                  R4       \%        RV 24       V
P;                  4       G Rj  xL
  V	P;                  4       G Rj  xL
  \<        P>                  ! \        \        R ,          R!,          4      4      ;_uu_ 4       pVPA                  4       pVPC                  R"WV^34       VPE                  4        RRR4       VP                  R#4       MAV
P;                  4       G Rj  xL
  V	P;                  4       G Rj  xL
  VP                  R$4       RRR4      GRj  xL
  R#  EL ELf ELQ ELA EL, EL ELm  \(        P2                   d    \%        R4       Ro EL\4         d%   p\%        R\7        T4       24       Ro Rp?ELRp?ii ; i EL ELg ELR  + '       g   i     L; i L L L  + GRj  xL 
 '       g   i     R# ; i  \4         dA   p\%        R%\7        T4       24       TP                  R&\7        T4       R'24        Rp?R# Rp?ii ; i5i)*u   
统一登录cookie生成函数
参数：
    type: 平台类型编号
    id: 账号名
    status_queue: 状态队列，用于返回登录状态
u>   {"code": 400, "msg": "不支持的平台类型", "data": null}Nu;   {"code": 400, "msg": "平台配置不存在", "data": null}_cookie_z.jsoncookiesFileT)parentsexist_okargsheadlessexecutable_path	login_urldomcontentloadedi`  )
wait_untiltimeoutu   请在浏览器中登录platform_nameu   账号i Fu&   启用URL变化事件检测 - 平台: c                    <"   V SP                   8X  dT   SP                  p\        R S RV 24       RVP                  4       9  d    \        R4       RoSP	                  4        R# R# R# 5i)u   URL变化: z -> loginu2   检测到URL不再包含login，认为登录成功TN)
main_frameurlr   lowerset)framecurrent_urlinitial_urllogin_successfulpageurl_changed_events   & r   on_url_change/unified_login_cookie_gen.<locals>.on_url_changeh   sj      DOO+"&((KK}DFG k&7&7&99RS+/()--/ : ,s   A'A*framenavigatedu&   等待URL变化事件，超时时间: u   毫秒)r+   u   URL变化事件检测超时u   URL变化事件检测异常: )pathu5   {"code": 200, "msg": "Cookie已保存", "data": null}u   ✅ 成功保存cookies文件: dbdatabase.dbz
                        INSERT INTO user_info (type, userName, filePath, status)
                        VALUES (?, ?, ?, ?)
                    u2   {"code": 200, "msg": "登录成功", "data": null}ub   {"code": 500, "msg": "登录超时或失败，请检查网络连接或手动登录", "data": null}r   r   r   )z--lang en-USz--no-sandboxz--disable-dev-shm-usagez--disable-gpuz--ignore-certificate-errorsz--start-maximizedz---disable-blink-features=AutomationControlled )#r	   intr   r
   getr   r   parentmkdirr   r   r   chromiumlaunchnew_contextr   new_pagegotor   r0   r   Eventonwait_forwaitTimeoutErrorr   r   storage_stater   sqlite3connectcursorexecutecommit)r   r   r   platform_keyplatform_configcookie_filecookie_file_path
playwrightoptionsbrowsercontextlogin_wait_timeoutr9   r   connrQ   r5   r6   r7   r8   s   &&&             @@@@r   r   r      s    y\/D	:_a +..|<\^ &hrd%8= 8; FG 	%%dT%B $%%%  1!#4G '//66AAAG#//11G+G44G !))++D))OK8EWaf)ggg ,__-M,NfUV "( ((K  % :<.IJ !(0 0 GG$m4	)>?Q>RRXYZ&&'8'='='?I[\\\  ++5E1F+GGG  #Z\78H7IJK mmo%%mmo%% __T(T/M*I%JKKt![[]FNN $ K35 KKM L   #WY mmo%%mmo%%    $H  JA &%%  B14 ,gP ]'' )34#(  )5c!fX>?#( ) H
 &% LK &% &%%%D  \$SVH-.@QHYZ[[\s  Q-P QP P &Q(AP  MP 2O&6M7O&MO&!M""O&9M%:"O&M(A(O&8M.>M+?M.O&O&)O*6O& O!O&8O
9=O&66O	,-O&O O&1O"2O&P O$P QP O&O&"O&%O&(O&+M.."OO&OON<6O&<OO&O&
O&O	O&"O&$P &P 	,O/-
P 	8P 	:P >Q P Q5Q	Q	QQc                    \         P                  ! \        \        R,          R,          4      4      ;_uu_ 4       p\         P                  Vn        VP                  4       pVP                  RV 34       VP                  4       pV'       g   RRRRRR	/uuR	R	R	4       # \        V4      pVR
,          pVP                  RV 34       VP                  4        R	R	R	4       \        \        R,          X,          4      pVP                  4       '       d   VP                  4        \        RV 24       R^RRRR	/#   + '       g   i     Li; i  \         d   pRRRRRR	/u R	p?# R	p?ii ; i)uO   
删除账号
:param account_id: 账号ID
:return: 字典，包含删除结果
r=   r>   z$SELECT * FROM user_info WHERE id = ?codei  msgzaccount not founddataNfilePathz"DELETE FROM user_info WHERE id = ?r"   u   ✅ 成功删除cookies文件: zaccount deleted successfullyi  zdelete failed!)rO   rP   r   r   Rowrow_factoryrQ   rR   fetchonedictrS   existsunlinkr   r   )
account_idr]   rQ   record	file_pathcookies_filer   s   &      r   delete_accountrm      sG   )
__T(T/M"ABCCt&{{D[[]F NNAJ=Q__&FC.D DC &\Fz*I NN?*OKKM) D. H}4y@A  !3L>BC C1D
 	
9 DCD  
C#D
 	

sB   9E	 AD6
E	 7D6A E	 6E	E	 	E&E!E&!E&)r   rO   timeplaywright.async_apir   utils.base_social_mediar   pathlibr   confr   r   r   newFileUpload.platform_configsr	   r
   r   r   rm   r?       r   <module>ru      s3       1 3  C C U
\$A\J/
rt   