
    ZQIi
                        d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ  e         ej                   e j                  d              e j                  d	      Zd
 Zd Zd Zedk(  r e ed             yy)    N)datetimetimezone)FacebookAdsApi)AdSet)
AdActivity)load_dotenvFB_ACCESS_TOKEN)access_tokenAD_ACCOUNT_IDc                    t        |       j                  t        j                  j                  t        j                  j
                  t        j                  j                  t        j                  j                  gddi      }|D ]  }|j                         }d|j                  dd      j                         vr6|j                  d      }t        |t              rt        j                  |      }|j                  d      xs i j                  d      }|j                  d	      xs i j                  d	      }|j                  d
      |j                  d      ||dc S  y #  i }Y wxY w)Nlimit2   )fieldsparamsBUDGET
event_type 
extra_data	old_value	new_value
event_time
actor_name)timeactor
old_budget
new_budget)r   get_activitiesr   Fieldr   r   r   r   export_all_datagetupper
isinstancestrjsonloads)adset_idactsadeoldvnewvs          2/var/www/webhook.estador.de/web/meta/bot/scaler.pyget_last_budget_changer.      s@   ?))''''''''	
 } * D  
155r288::EE,aZZ] k"(b--k:k"(b--k: EE,'UU<(	
 	

&  As   E""E(c                 J   t        |       }|r|j                  d      sy|d   j                  dd      }t        j                  |      j                  t        j                        }t        j                  t        j                        }||z
  j                         dz  }|dk  S )zGReturn True if ad set was scaled (budget changed) within last 48 hours.r   Fz+0000z+00:00i  0   )
r.   r    replacer   fromisoformat
astimezoner   utcnowtotal_seconds)r&   changetr5   
diff_hourss        r-   was_scaled_in_last_48hr:   .   s    #H-FF+vw1Aq!,,X\\:A
,,x||
$C'((*T1J    c                 |   	 t        |       j                  ddg      }|j                  d      xs |j                  d      }|syt        |      }t        t	        |dz              }|j                  d      rdnd}t        |       j                  |t        |      i       |dz  S # t        $ r
}Y d}~yd}~ww xY w)z
    Increases the ad set's current budget by 15%.
    Works for daily_budget or lifetime_budget automatically.
    Returns the new budget value (in EUR) or None on failure.
    daily_budgetlifetime_budget)r   Ng333333?)r   g      Y@)r   api_getr    intround
api_updater#   	Exception)r&   adsetbr   r   update_fieldr*   s          r-   scale_adset_budgetrG   <   s    h''@Q/R'SIIn%E3D)E V
zC/01
 */>)B~HY 	h""<Z*I"JE!! s   AB( A!B( (	B;6B;__main__120231857409700259)osr$   r   r   facebook_business.apir   !facebook_business.adobjects.adsetr   &facebook_business.adobjects.adactivityr   dotenvr   initgetenvr   r.   r:   rG   __name__print r;   r-   <module>rT      sx     ' 0 3 =     +<!= >		/*B4 z	
 !5
67 r;   