+
    ,(j&                        ^ RI t ^ RIt^ RIHtHtHt ^ RIHt ^ RIH	t	 Rt
R tR tR tR	 t]R
8X  dT   ^ RIt]! ]P$                  4      ^8  d   ]P$                  ^,          M^Wt]! ]P*                  ! ]! ]4      R^R7      4       R# R# )    N)urlparseparse_qs	urlencode)requests)apiz&https://q5f2m3bd.zavjcswh.biz/gs2c/apic                   \        RV  2RR7      R,          p\        P                  ! VR^R7      p\        P                  ! RVP
                  4      pV'       g$   \        RVP
                  R	,          ,           4      h\        \        V4      P                  4      P                  4        UUu/ uF  w  rEWE^ ,          bK  	  pppVP                  ^4      Wa3# u uppi )
uW   用彩虹注单数字id换 PP 壳页URL，取出 token 和 playSessionId/stylename/hashz"/betManage/userBet/queryOrderInfo/GET)methoddatachrome)impersonatetimeoutz!window\.token\s*=\s*"([0-9a-f]+)"u$   没拿到 PP token，壳页内容：:N   N)r   r   getresearchtextRuntimeErrorr   r   queryitemsgroup)bet_id
loader_urlrmkvqs   &      /home/ubuntu/api/pp_round.py_get_token_and_queryr       s    9&B5QRXYJZXrBA
		6?AAAFF4LPQQ%hz&:&@&@AGGIJITQaDIAJ771:q$$ 	Ks   ,Cc                h   \        V 4      w  rp\        V4      pVP                   RVP                   R2pRVRVR,          RVP	                  RR4      RVP	                  RR4      RR	/pV R
VR,           R2\        V4      ,           p\        P                  ! VR^RV/R7      pVP                  4       # )uR   拿某注单对应的 PP 回合所有动作（含 request/response 玩法明细）z://z	/gs2c/apitokenplaySessionId	stylename hashlanguagezhz/history/v3/action/children?id=&r   Referer)r   r   headers)	r    r   schemenetlocr   r   r   postjson)	r   r"   r   r   upp_rootbaseurlr   s	   &        r   get_round_actionsr4      s    /7EjA
#ahhZy1GUOQ-?{B/vr9JD I4Q5G4H
JYW[_
\CcxiQ[E\]A668O    c           
        \        V 4      pVP                  R4      ;'       g    . pV'       g   RRRRRRR/ /# V^ ,          P                  R/ 4      pV^ ,          P                  R	/ 4      p\        VP                  R
R4      4      p\        VP                  RR4      4      pRV9   ;'       g    RV9   pVR8H  ;'       g    VR8H  pV'       d    RRT;'       g    R RT;'       g    R R2rMV'       d   RRrMRRrR Uu/ uF  qV9   g   K  WP                  V4      bK  	  ppVP                  R4      VR&   VP                  R4      VR&   VR,          ^ ,          P                  R	/ 4      P                  R4      VR&   RV	RVRVRV
RV/# u upi )u  判断该注单的玩法类型：
  bought  购买免费游戏 (花钱直接买 free spins)
  free    自然触发的免费游戏 (转出scatter赢的，没花钱买)
  normal  普通转动
判断核心字段：
  purtr (purchase triggered) = "1"  -> 购买触发的免费游戏
  pur(request)               = "1"  -> 该把就是购买动作
  fs / fsmax 存在                    -> 处于免费游戏中
  ch_k/trail 只是"可购买菜单"，每把都显示，≠ 已购买
返回 {kind, bought, in_free_spins, reason, markers}r   kindNboughtreasonu   无回合数据markersrequestresponsepurtrr%   purfsfsmax1zpurtr=-z
, req.pur=u    -> 购买免费游戏freeuC   有 fs/fsmax 但 purtr!=1 -> 自然触发的免费游戏(非购买)normalu   无 fs/purtr -> 普通转动zreq.pursymbolntpbetin_free_spins)r=   purir?   r@   ch_ktrail)r4   r   str)r   r   r   reqrespr=   pur_reqin_fsr8   r7   r9   r   r:   s   &            r   classifyrQ   $   s    V$DHHV""Ehh8I9VXYY
(,,y"
%C8<<
B'D"%&E#''%$%GT\//w$Esl//3F6%,,3z'..SAQQg!hf	df!?f'Xf'X!ae\e~q((1+~'XGfGI)GH&\!_((R8<<UCGEND(FOUfi2 2	 gs   ?F	F	c                     \        V 4      # )N)rQ   )r   s   &r   is_bonus_buyrS   M   s    Fr5   __main__F)ensure_asciiindent)r   r/   urllib.parser   r   r   	curl_cffir   clientr   PP_ROOTr    r4   rQ   rS   __name__syslenargvbidprintdumps r5   r   <module>rc      sy     6 6  
2%
%2R zSXX*#((1+C	$**Xc]q
AB	 r5   