@@ -50,25 +50,29 @@ def _encrypt_data_v1(data, key, iv):
5050
5151
5252class Params :
53- def __init__ (self , expiry = dt .datetime .now (tz = timezone .utc ) + dt .timedelta (hours = 1 ),
54- identity_scope = IdentityScope .UID2 .value , token_generated = dt .datetime .now (tz = timezone .utc ),
55- identity_established = dt .datetime .now (tz = timezone .utc )):
53+ def __init__ (self , expiry = None , identity_scope = IdentityScope .UID2 .value , token_generated = None ,
54+ identity_established = None ):
55+ now = dt .datetime .now (tz = timezone .utc )
56+ if identity_established is None :
57+ identity_established = now
58+ if token_generated is None :
59+ token_generated = now
60+ if expiry is None :
61+ expiry = now + dt .timedelta (hours = 1 )
62+
63+ self .identity_established = identity_established
64+ self .token_generated = token_generated
5665 self .token_expiry = expiry
5766 self .identity_scope = identity_scope
58- self .token_generated = token_generated
59- self .identity_established = identity_established
60- if not isinstance (expiry , dt .datetime ):
61- self .token_expiry = dt .datetime .now (tz = timezone .utc ) + expiry
62-
63-
64- def default_params ():
65- return Params ()
6667
6768
6869class UID2TokenGenerator :
6970
7071 @staticmethod
71- def generate_uid2_token_v2 (id_str , master_key , site_id , site_key , params = default_params (), version = 2 ):
72+ def generate_uid2_token_v2 (id_str , master_key , site_id , site_key , params = None , version = 2 ):
73+ if params is None :
74+ params = Params ()
75+
7276 id = bytes (id_str , 'utf-8' )
7377 identity = int .to_bytes (site_id , 4 , 'big' )
7478 identity += int .to_bytes (len (id ), 4 , 'big' )
@@ -88,26 +92,19 @@ def generate_uid2_token_v2(id_str, master_key, site_id, site_key, params=default
8892 return base64 .b64encode (token ).decode ('ascii' )
8993
9094 @staticmethod
91- def generate_uid2_token_v3 (id_str , master_key , site_id , site_key , params = default_params () ):
95+ def generate_uid2_token_v3 (id_str , master_key , site_id , site_key , params = None ):
9296 return UID2TokenGenerator .generate_uid2_token_with_debug_info (id_str , master_key , site_id , site_key , params ,
9397 AdvertisingTokenVersion .ADVERTISING_TOKEN_V3 .value )
9498
9599 @staticmethod
96- def generate_uid2_token_v4 (id_str , master_key , site_id , site_key , params = default_params () ):
100+ def generate_uid2_token_v4 (id_str , master_key , site_id , site_key , params = None ):
97101 return UID2TokenGenerator .generate_uid2_token_with_debug_info (id_str , master_key , site_id , site_key , params ,
98102 AdvertisingTokenVersion .ADVERTISING_TOKEN_V4 .value )
99103
100104 @staticmethod
101105 def generate_uid_token (id_str , master_key , site_id , site_key , identity_scope , token_version ,
102106 identity_established = None , token_generated = None , token_expiry = None ):
103- params = default_params ()
104- params .identity_scope = identity_scope
105- if identity_established is not None :
106- params .identity_established = identity_established
107- if token_generated is not None :
108- params .token_generated = token_generated
109- if token_expiry is not None :
110- params .token_expiry = token_expiry
107+ params = Params (token_expiry , identity_scope , token_generated , identity_established )
111108 if token_version == AdvertisingTokenVersion .ADVERTISING_TOKEN_V2 :
112109 return UID2TokenGenerator .generate_uid2_token_v2 (id_str , master_key , site_id , site_key , params )
113110 elif token_version == AdvertisingTokenVersion .ADVERTISING_TOKEN_V3 :
@@ -119,6 +116,8 @@ def generate_uid_token(id_str, master_key, site_id, site_key, identity_scope, to
119116
120117 @staticmethod
121118 def generate_uid2_token_with_debug_info (id_str , master_key , site_id , site_key , params , version ):
119+ if params is None :
120+ params = Params ()
122121
123122 # Publisher Data
124123 site_payload = int .to_bytes (site_id , length = 4 , byteorder = 'big' )
0 commit comments