Merge branch 'refs/heads/master' into feautre/link_checker

This commit is contained in:
2024-06-01 22:36:02 +02:00
45 changed files with 3166 additions and 125 deletions
+1 -1
View File
@@ -137,7 +137,7 @@ class MongoDbManager:
collection = self.db[collection_name] collection = self.db[collection_name]
validated_at = time.strftime("%H:%M:%S", time.localtime()) validated_at = time.strftime("%H:%M:%S", time.localtime())
validated_by = "requests" + str(segement_position) validated_by = "requests:" + str(segement_position)
if is_invalid: if is_invalid:
validated_by = "Invalid" validated_by = "Invalid"
if is_duplicated: if is_duplicated:
+126
View File
@@ -0,0 +1,126 @@
{
"ttst": 120,
"ifov": false,
"hc": 4,
"br_oh": 674,
"br_ow": 393,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 4.8077554980786275,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 674,
"br_w": 393,
"isf": true,
"nddc": 1,
"rs_h": 851,
"rs_w": 393,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.75,
"ars_h": 851,
"ars_w": 393,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "eXyhYz4c,v6GLs9m",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 0.5,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzU2MzEpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hYl0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODg2NjkpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMzY3",
"ckwa": true,
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 618, OpenGL ES 3.2)",
"wwl": false,
"jset": 1713782722
}
@@ -0,0 +1,126 @@
{
"ttst": 128,
"ifov": false,
"hc": 4,
"br_oh": 786,
"br_ow": 432,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 9.994786173935164,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 786,
"br_w": 432,
"isf": true,
"nddc": 1,
"rs_h": 984,
"rs_w": 432,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.5,
"ars_h": 984,
"ars_w": 432,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "8DJEKFh,2j4FKFh3",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzU2MzEpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hYl0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODg2NjkpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMzY3",
"ckwa": true,
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 619",
"wwl": false,
"jset": 1713783336
}
+140
View File
@@ -0,0 +1,140 @@
{
"ttst": 120,
"ifov": false,
"hc": 4,
"br_oh": 674,
"br_ow": 393,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 4.8077554980786275,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 674,
"br_w": 393,
"isf": true,
"nddc": 1,
"rs_h": 851,
"rs_w": 393,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.75,
"ars_h": 851,
"ars_w": 393,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "eXyhYz4c,v6GLs9m",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 0.5,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzU2MzEpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hYl0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODg2NjkpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMzY3",
"ckwa": true,
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 618, OpenGL ES 3.2)",
"wwl": false,
"jset": 1713782742,
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"tbce": 0,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 0,
"m_m_c": 4,
"m_c_c": 4,
"m_cm_r": 1,
"m_ms_r": -1
}
@@ -0,0 +1,141 @@
{
"ttst": 63,
"ifov": false,
"hc": 4,
"br_oh": 786,
"br_ow": 432,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 9.795249415480846,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 786,
"br_w": 432,
"isf": true,
"nddc": 1,
"rs_h": 984,
"rs_w": 432,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.5,
"ars_h": 984,
"ars_w": 432,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "8DJEKFh,2j4FKFh3",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzU2MzEpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hYl0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODg2NjkpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMzY3",
"ckwa": true,
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 619",
"wwl": false,
"jset": 1713783341,
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"tbce": 0,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 3,
"m_m_c": 5,
"m_c_c": 4,
"m_cm_r": 0.8,
"m_ms_r": 1
}&eventCounters={"mousemove": 5, "click": 4,"scroll": 3, "touchstart": 5, "touchend":5, "touchmove": 7, "keydown": 8,"keyup": 8
}
+127
View File
@@ -0,0 +1,127 @@
{
"ttst": 42,
"ifov": false,
"hc": 7,
"br_oh": 646,
"br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 3.5620980093605126,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 646,
"br_w": 360,
"isf": true,
"nddc": 1,
"rs_h": 800,
"rs_w": 360,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 3,
"ars_h": 800,
"ars_w": 360,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "pc1a0Do7,zZrdWLN",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 8,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2",
"ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,d104b,f06c5 g:396ea,defau,81918,33ce0",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)",
"wwl": false,
"jset": 1716415160
}
+139
View File
@@ -0,0 +1,139 @@
{
"ttst": 42,
"ifov": false,
"hc": 7,
"br_oh": 646,
"br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 3.5620980093605126,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 646,
"br_w": 360,
"isf": true,
"nddc": 1,
"rs_h": 800,
"rs_w": 360,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 3,
"ars_h": 800,
"ars_w": 360,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "pc1a0Do7,zZrdWLN",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 8,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2",
"ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,d104b,f06c5 g:396ea,defau,81918,33ce0",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)",
"wwl": false,
"jset": 1716415179,
"dcok": ".hermes.com",
"log2": true,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 110,
"m_m_c": 0,
"m_c_c": 0,
"m_cm_r": -1,
"m_ms_r": 0
}
@@ -1,19 +1,18 @@
{ {
"log1": false, "ttst": 25,
"opts": "endpoint,ajaxListenerPath",
"ttst": 41,
"ifov": false, "ifov": false,
"hc": 3, "hc": 7,
"br_oh": 646, "br_oh": 646,
"br_ow": 360, "br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36", "ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false, "wbd": false,
"tagpu": 3.9694857617239587, "tagpu": 6.426279443512415,
"wdif": false, "wdif": false,
"wdifrm": false, "wdifrm": false,
"npmtm": false, "npmtm": false,
"br_h": 646, "br_h": 646,
"br_w": 360, "br_w": 360,
"isf": true,
"nddc": 1, "nddc": 1,
"rs_h": 800, "rs_h": 800,
"rs_w": 360, "rs_w": 360,
@@ -25,7 +24,7 @@
"pr": 3, "pr": 3,
"ars_h": 800, "ars_h": 800,
"ars_w": 360, "ars_w": 360,
"tz": -60, "tz": -120,
"str_ss": true, "str_ss": true,
"str_ls": true, "str_ls": true,
"str_idb": true, "str_idb": true,
@@ -52,7 +51,7 @@
"vnd": "Google Inc.", "vnd": "Google Inc.",
"bid": "NA", "bid": "NA",
"mmt": "empty", "mmt": "empty",
"plu": "WyZrdOm,EtePPm6d", "plu": "pc1a0Do7,zZrdWLN",
"hdn": false, "hdn": false,
"awe": false, "awe": false,
"geb": false, "geb": false,
@@ -117,31 +116,24 @@
"emt": false, "emt": false,
"bfr": false, "bfr": false,
"dbov": false, "dbov": false,
"cfpfe": "RXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgbnVsbCAocmVhZGluZyAndG9TdHJpbmcnKQ==", "cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "ckFsbCAoaHR0cHM6Ly9kLmRpZ2l0YWwuaGVybWVzL3RhZ3MuanM6Mjo3NTIzNykKICAgIGF0IEhUTUxEb2N1bWVudC5yIChodHRwczovL3JlbmRlenZvdXNwYXJpcy5oZXJtZXMuY29tL2Rpc3QvdmVuZG9yLWM2Mjk1ZTljMjg3ZGExNzYwODllLmpzOjI6ODg2Nzkp", "stcfp": "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2",
"ckwa": true, "ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,d104b,f06c5 g:c9148,defau,1c35e,61dc5",
"glvd": "Google Inc. (Qualcomm)", "glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)", "glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)",
"wwl": false, "wwl": false,
"jset": 1706032747, "jset": 1716415693,
"dcok": ".hermes.com", "dcok": ".hermes.com",
"log2": true, "log2": true,
"mp_cx": 36,
"mp_cy": 405,
"mp_tr": true,
"mp_mx": 0,
"mp_my": 0,
"mp_sx": 36,
"mp_sy": 495,
"tbce": 0,
"es_sigmdn": null, "es_sigmdn": null,
"es_mumdn": null, "es_mumdn": null,
"es_distmdn": null, "es_distmdn": null,
"es_angsmdn": null, "es_angsmdn": null,
"es_angemdn": null, "es_angemdn": null,
"m_s_c": 8, "m_s_c": 120,
"m_m_c": 4, "m_m_c": 0,
"m_c_c": 4, "m_c_c": 0,
"m_cm_r": 1, "m_cm_r": -1,
"m_ms_r": 0.5 "m_ms_r": 0
} }
+139
View File
@@ -0,0 +1,139 @@
{
"ttst": 83,
"ifov": false,
"hc": 2,
"br_oh": 680,
"br_ow": 384,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 9.796197350378677,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 680,
"br_w": 384,
"isf": true,
"nddc": 1,
"rs_h": 854,
"rs_w": 384,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.8125,
"ars_h": 854,
"ars_w": 384,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "zZzCBn6l,oct9eu2",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 2,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2",
"ckwa": true,
"emd": "k:ai,vi,vi,ao,vi,vi d:defau,fefef,920f5,defau,6a718,633e3 g:f8b61,daaa0,4e9e0,defau,31d26,40f29",
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 619",
"wwl": false,
"jset": 1716473093,
"dcok": ".hermes.com",
"log2": true,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 0,
"m_m_c": 3,
"m_c_c": 3,
"m_cm_r": 1.0,
"m_ms_r": -1
}
+141
View File
@@ -0,0 +1,141 @@
{
"opts": "{\"endpoint\":\"https://d.digital.hermes/js/\",\"ajaxListenerPath\":true}",
"xhr_opts": "",
"ttst": 71,
"ifov": false,
"hc": 8,
"br_oh": 663,
"br_ow": 384,
"ua": "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 8.178250208073038,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 663,
"br_w": 384,
"isf": true,
"nddc": 1,
"rs_h": 811,
"rs_w": 384,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.8125,
"ars_h": 811,
"ars_w": 384,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "q899Hiw,ZMGiwYMO",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2",
"ckwa": true,
"emd": "k:ai,vi,ao,vi d:defau,9c510,defau,049c9 g:2a88d,21833,defau,fc0d0",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 630, OpenGL ES 3.2)",
"wwl": false,
"jset": 1716416458,
"dcok": ".hermes.com",
"log2": true,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 123,
"m_m_c": 0,
"m_c_c": 0,
"m_cm_r": -1,
"m_ms_r": 0
}
+126
View File
@@ -0,0 +1,126 @@
{
"ttst": 104,
"ifov": false,
"hc": 8,
"br_oh": 786,
"br_ow": 432,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 2.637976599008111,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 786,
"br_w": 432,
"isf": true,
"nddc": 1,
"rs_h": 984,
"rs_w": 432,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.5,
"ars_h": 984,
"ars_w": 432,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "my4cWTwB,8Ls15FK",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 0.5,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyMDcpXSgnXHg2Mlx4NzJceDZmXHg3N1x4NzNceDY1XHg3Mlx4NjZceDZjXHg2Zlx4NzdceDJkXHg2M1x4NmZceDZlXHg3NFx4NjFceDY5XHg2ZVx4NjVceDcyJyk7aWYobyl7IWZ1bmN0aW9uIHQoKXt2YXIg",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzUwNTIpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWIgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODkyMjMpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMTE0",
"ckwa": true,
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 619",
"wwl": false,
"jset": 1714989181
}
+126
View File
@@ -0,0 +1,126 @@
{
"ttst": 51,
"ifov": false,
"hc": 8,
"br_oh": 684,
"br_ow": 393,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 2.5476085485280664,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 684,
"br_w": 393,
"isf": true,
"nddc": 1,
"rs_h": 873,
"rs_w": 393,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.75,
"ars_h": 873,
"ars_w": 393,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": false,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "a05FKFh,Rnb0Do7G",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 1,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyMDcpXSgnXHg2Mlx4NzJceDZmXHg3N1x4NzNceDY1XHg3Mlx4NjZceDZjXHg2Zlx4NzdceDJkXHg2M1x4NmZceDZlXHg3NFx4NjFceDY5XHg2ZVx4NjVceDcyJyk7aWYobyl7IWZ1bmN0aW9uIHQoKXt2YXIg",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzUwNTIpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWIgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODkyMjMpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxMTE0",
"ckwa": true,
"glvd": "Google Inc. (ARM)",
"glrd": "ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",
"wwl": false,
"jset": 1714988585
}
+126
View File
@@ -0,0 +1,126 @@
{
"ttst": 43,
"ifov": false,
"hc": 4,
"br_oh": 663,
"br_ow": 384,
"ua": "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 5.167040384311697,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 663,
"br_w": 384,
"isf": true,
"nddc": 1,
"rs_h": 811,
"rs_w": 384,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.8125,
"ars_h": 811,
"ars_w": 384,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "c1iRnTJ,YUxg36GL",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4",
"ckwa": true,
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 630",
"wwl": false,
"jset": 1715011727
}
+127
View File
@@ -0,0 +1,127 @@
{
"ttst": 59,
"ifov": false,
"hc": 7,
"br_oh": 684,
"br_ow": 393,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 4.775199583703946,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 684,
"br_w": 393,
"isf": true,
"nddc": 1,
"rs_h": 873,
"rs_w": 393,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.75,
"ars_h": 873,
"ars_w": 393,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": false,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "8DBn6dt1,WTwBAAA",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 2,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4",
"ckwa": true,
"emd": "k:ai,vi,ao",
"glvd": "Google Inc. (ARM)",
"glrd": "ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715011187
}
+126
View File
@@ -0,0 +1,126 @@
{
"ttst": 21.199999999953434,
"ifov": false,
"hc": 9,
"br_oh": 784,
"br_ow": 412,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 5.393727248230813,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 784,
"br_w": 412,
"isf": true,
"nddc": 1,
"rs_h": 915,
"rs_w": 412,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.625,
"ars_h": 915,
"ars_w": 412,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": false,
"plgod": false,
"plg": 0,
"plgne": "NA",
"plgre": "NA",
"plgof": "NA",
"plggt": "NA",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "empty",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 8,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4",
"ckwa": true,
"glvd": "Google Inc. (ARM)",
"glrd": "ANGLE (ARM, Mali-G715, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715012381
}
+1
View File
@@ -0,0 +1 @@
jsData={"ttst":43,"ifov":false,"hc":4,"br_oh":663,"br_ow":384,"ua":"Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36","wbd":false,"tagpu":5.167040384311697,"wdif":false,"wdifrm":false,"npmtm":false,"br_h":663,"br_w":384,"isf":true,"nddc":1,"rs_h":811,"rs_w":384,"rs_cd":24,"phe":false,"nm":false,"jsf":false,"lg":"fr-FR","pr":2.8125,"ars_h":811,"ars_w":384,"tz":-120,"str_ss":true,"str_ls":true,"str_idb":true,"str_odb":true,"plgod":false,"plg":2,"plgne":"err","plgre":"err","plgof":"err","plggt":"err","pltod":false,"hcovdr":false,"hcovdr2":false,"plovdr":false,"plovdr2":false,"ftsovdr":false,"ftsovdr2":false,"lb":false,"eva":33,"lo":false,"ts_mtp":5,"ts_tec":true,"ts_tsa":true,"vnd":"Google Inc.","bid":"NA","mmt":"empty","plu":"c1iRnTJ,YUxg36GL","hdn":false,"awe":false,"geb":false,"dat":false,"med":"defined","aco":"probably","acots":false,"acmp":"probably","acmpts":true,"acw":"probably","acwts":false,"acma":"maybe","acmats":false,"acaa":"probably","acaats":true,"ac3":"","ac3ts":false,"acf":"probably","acfts":false,"acmp4":"maybe","acmp4ts":false,"acmp3":"probably","acmp3ts":false,"acwm":"maybe","acwmts":false,"ocpt":false,"vco":"","vcots":false,"vch":"probably","vchts":true,"vcw":"probably","vcwts":true,"vc3":"maybe","vc3ts":false,"vcmp":"","vcmpts":false,"vcq":"","vcqts":false,"vc1":"probably","vc1ts":true,"dvm":4,"sqt":false,"so":"portrait-primary","wdw":true,"cokys":"bG9hZFRpbWVzY3NpL=","ecpc":false,"lgs":true,"lgsod":false,"psn":true,"edp":false,"addt":true,"wsdc":true,"ccsr":true,"nuad":true,"bcda":true,"idn":true,"capi":false,"svde":false,"vpbq":true,"ucdv":false,"spwn":false,"emt":false,"bfr":false,"dbov":false,"cfpfe":"ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy","stcfp":"Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4","ckwa":true,"glvd":"Qualcomm","glrd":"Adreno (TM) 630","wwl":false,"jset":1715011727}&eventCounters=[]&jsType=ch&cid=Z6f9p4ZRzW1JXIdlNOcBUngqO~MVGN26rwebFQS82MfPxZWKdUeKm0ze2vmyNolXb5EaDpAUe~sBFPwOq3voW2F4YHmFNZTK0IMZfwWPvy4V7zWwyINGYTVueb5ghyni&ddk=789361B674144528D0B7EE76B35826&Referer=https%3A%2F%2Frendezvousparis.hermes.com%2Fclient%2Fregister&request=%2Fclient%2Fregister&responsePage=origin&ddv=4.27.0
+1
View File
@@ -0,0 +1 @@
jsData={"ttst":59,"ifov":false,"hc":7,"br_oh":684,"br_ow":393,"ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36","wbd":false,"tagpu":4.775199583703946,"wdif":false,"wdifrm":false,"npmtm":false,"br_h":684,"br_w":393,"isf":true,"nddc":1,"rs_h":873,"rs_w":393,"rs_cd":24,"phe":false,"nm":false,"jsf":false,"lg":"fr-FR","pr":2.75,"ars_h":873,"ars_w":393,"tz":-120,"str_ss":true,"str_ls":true,"str_idb":true,"str_odb":false,"plgod":false,"plg":2,"plgne":"err","plgre":"err","plgof":"err","plggt":"err","pltod":false,"hcovdr":false,"hcovdr2":false,"plovdr":false,"plovdr2":false,"ftsovdr":false,"ftsovdr2":false,"lb":false,"eva":33,"lo":false,"ts_mtp":5,"ts_tec":true,"ts_tsa":true,"vnd":"Google Inc.","bid":"NA","mmt":"empty","plu":"8DBn6dt1,WTwBAAA","hdn":false,"awe":false,"geb":false,"dat":false,"med":"defined","aco":"probably","acots":false,"acmp":"probably","acmpts":true,"acw":"probably","acwts":false,"acma":"maybe","acmats":false,"acaa":"probably","acaats":true,"ac3":"","ac3ts":false,"acf":"probably","acfts":false,"acmp4":"maybe","acmp4ts":false,"acmp3":"probably","acmp3ts":false,"acwm":"maybe","acwmts":false,"ocpt":false,"vco":"","vcots":false,"vch":"probably","vchts":true,"vcw":"probably","vcwts":true,"vc3":"maybe","vc3ts":false,"vcmp":"","vcmpts":false,"vcq":"","vcqts":false,"vc1":"probably","vc1ts":true,"dvm":2,"sqt":false,"so":"portrait-primary","wdw":true,"cokys":"bG9hZFRpbWVzY3NpL=","ecpc":false,"lgs":true,"lgsod":false,"psn":true,"edp":false,"addt":true,"wsdc":true,"ccsr":true,"nuad":true,"bcda":true,"idn":true,"capi":false,"svde":false,"vpbq":true,"ucdv":false,"spwn":false,"emt":false,"bfr":false,"dbov":false,"cfpfe":"ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy","stcfp":"Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4","ckwa":true,"emd":"k:ai,vi,ao","glvd":"Google Inc. (ARM)","glrd":"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)","wwl":false,"jset":1715011187}&eventCounters=[]&jsType=ch&cid=Dz3C75xS0iEMyb2RyRxXvWjC5yKk6O8XLyHJLyMIMXtSJxOO~tzCcX3IvG_QNoI9HFxa~bFPA8YUebk9NxyFhj2JeZMMzMWH6MYzDWn5xWrzlt1dwHpwgDfW~xbqO66h&ddk=789361B674144528D0B7EE76B35826&Referer=https%3A%2F%2Frendezvousparis.hermes.com%2Fclient%2Fregister&request=%2Fclient%2Fregister&responsePage=origin&ddv=4.27.0
+148
View File
@@ -0,0 +1,148 @@
{
"ttst": 59,
"ifov": false,
"hc": 7,
"br_oh": 684,
"br_ow": 393,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 4.775199583703946,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 684,
"br_w": 393,
"isf": true,
"nddc": 1,
"rs_h": 873,
"rs_w": 393,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.75,
"ars_h": 873,
"ars_w": 393,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": false,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "8DBn6dt1,WTwBAAA",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 2,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "RXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgbnVsbA==",
"stcfp": "ckFsbCAoaHR0cHM6Ly9kLmRpZ2l0YWwuaGVybWVzL3RhZ3MuanM6Mjo3NjM2NCkKICAgIGF0IEhUTUxEb2N1bWVudC5yIChodHRwczovL3JlbmRlenZvdXNwYXJpcy5oZXJtZXMuY29tL2Rpc3QvdmVuZG9yLWM2Mjk1ZTljMjg3ZGExNzYwODllLmpzOjI6ODg2Nzkp",
"ckwa": true,
"emd": "k:ai,vi,ao",
"glvd": "Google Inc. (ARM)",
"glrd": "ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715011198,
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"mp_cx": 264,
"mp_cy": 401,
"mp_tr": true,
"mp_mx": 0,
"mp_my": 0,
"mp_sx": 264,
"mp_sy": 494,
"tbce": 0,
"es_sigmdn": 0.000030160432800383137,
"es_mumdn": 9.16338817778005,
"es_distmdn": 123.06502346320826,
"es_angsmdn": -3.1090837853077677,
"es_angemdn": 0.032508868282025365,
"m_s_c": 0,
"m_m_c": 5,
"m_c_c": 5,
"m_cm_r": 1,
"m_ms_r": -1
}
+141
View File
@@ -0,0 +1,141 @@
{
"ttst": 21.199999999953434,
"ifov": false,
"hc": 9,
"br_oh": 784,
"br_ow": 412,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 5.393727248230813,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 784,
"br_w": 412,
"isf": true,
"nddc": 1,
"rs_h": 915,
"rs_w": 412,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.625,
"ars_h": 915,
"ars_w": 412,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": false,
"plgod": false,
"plg": 0,
"plgne": "NA",
"plgre": "NA",
"plgof": "NA",
"plggt": "NA",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "empty",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 8,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgbj10LG89ZG9jdW1lbnRbbigyNjApXShuKDI5NCkpO2lmKG8peyFmdW5jdGlvbiB0KCl7dmFyIGk9bjt0cnl7dmFyIGE9b1tpKDI2MyldW2koMjYwKV0oJ1x4NjJceDcyXHg2Zlx4NzdceDczXHg2NVx4NzJceDY2XHg2Y1x4NmZceDc3XHgy",
"stcfp": "Oi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzYzNjQpCiAgICBhdCB0LmV4cG9ydHMuZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODApCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxOTI4",
"ckwa": true,
"glvd": "Google Inc. (ARM)",
"glrd": "ANGLE (ARM, Mali-G715, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715012497,
"emd": "k:ai,vi,ao",
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"tbce": 0,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 71,
"m_m_c": 3,
"m_c_c": 4,
"m_cm_r": 1.3333333333333333,
"m_ms_r": 0.04225352112676056
}
+127
View File
@@ -0,0 +1,127 @@
{
"ttst": 44,
"ifov": false,
"hc": 7,
"br_oh": 646,
"br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 7.998561200498068,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 646,
"br_w": 360,
"isf": true,
"nddc": 1,
"rs_h": 800,
"rs_w": 360,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 3,
"ars_h": 800,
"ars_w": 360,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "pc1a0Do7,zZrdWLN",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 8,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6Nzc0MjUpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hY10gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk5NTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyOTU3",
"ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,d104b,f06c5 g:87354,defau,063a3,1bd2c",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715934750
}
@@ -0,0 +1,127 @@
{
"ttst": 88,
"ifov": false,
"hc": 3,
"br_oh": 786,
"br_ow": 432,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 2.659617201677909,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 786,
"br_w": 432,
"isf": true,
"nddc": 1,
"rs_h": 984,
"rs_w": 432,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.5,
"ars_h": 984,
"ars_w": 432,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "0Do78e2b,SRIECgQ",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 2,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6Nzc0MjUpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hY10gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk5NTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyOTU3",
"ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,99cea,25fa3 g:69b6f,defau,ed059,57073",
"glvd": "Qualcomm",
"glrd": "Adreno (TM) 619",
"wwl": false,
"jset": 1715953162
}
+127
View File
@@ -0,0 +1,127 @@
{
"ttst": 101,
"ifov": false,
"hc": 8,
"br_oh": 663,
"br_ow": 384,
"ua": "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 3.375630067013038,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 663,
"br_w": 384,
"isf": true,
"nddc": 1,
"rs_h": 811,
"rs_w": 384,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 2.8125,
"ars_h": 811,
"ars_w": 384,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "q899Hiw,ZMGiwYMO",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6Nzc0MjUpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hY10gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk5NTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyOTU3",
"ckwa": true,
"emd": "k:ai,vi,ao,vi d:defau,9c510,defau,049c9 g:f7cab,6255a,defau,b376f",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 630, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715896159
}
+141
View File
@@ -0,0 +1,141 @@
{
"ttst": 43,
"ifov": false,
"hc": 5,
"br_oh": 646,
"br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 0.29755279781407795,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 646,
"br_w": 360,
"isf": true,
"nddc": 1,
"rs_h": 800,
"rs_w": 360,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 3,
"ars_h": 800,
"ars_w": 360,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "euAfPPm,zZzCJMtW",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 0.5,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6Nzc0MjUpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hY10gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk5NTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyOTU3",
"ckwa": true,
"emd": "k:ai,ao,vi,vi d:defau,defau,d104b,f06c5 g:14588,defau,33a71,7143d",
"glvd": "Google Inc. (Qualcomm)",
"glrd": "ANGLE (Qualcomm, Adreno (TM) 650, OpenGL ES 3.2)",
"wwl": false,
"jset": 1715895446,
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"tbce": 0,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 114,
"m_m_c": 1,
"m_c_c": 1,
"m_cm_r": 1,
"m_ms_r": 0.008771929824561403
}
@@ -0,0 +1,141 @@
{
"ttst": 50,
"ifov": false,
"hc": 5,
"br_oh": 620,
"br_ow": 360,
"ua": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36",
"wbd": false,
"tagpu": 4.919088817133858,
"wdif": false,
"wdifrm": false,
"npmtm": false,
"br_h": 620,
"br_w": 360,
"isf": true,
"nddc": 1,
"rs_h": 804,
"rs_w": 360,
"rs_cd": 24,
"phe": false,
"nm": false,
"jsf": false,
"lg": "fr-FR",
"pr": 3,
"ars_h": 804,
"ars_w": 360,
"tz": -120,
"str_ss": true,
"str_ls": true,
"str_idb": true,
"str_odb": true,
"plgod": false,
"plg": 2,
"plgne": "err",
"plgre": "err",
"plgof": "err",
"plggt": "err",
"pltod": false,
"hcovdr": false,
"hcovdr2": false,
"plovdr": false,
"plovdr2": false,
"ftsovdr": false,
"ftsovdr2": false,
"lb": false,
"eva": 33,
"lo": false,
"ts_mtp": 5,
"ts_tec": true,
"ts_tsa": true,
"vnd": "Google Inc.",
"bid": "NA",
"mmt": "empty",
"plu": "eTJjZUp,iZMOHLs1",
"hdn": false,
"awe": false,
"geb": false,
"dat": false,
"med": "defined",
"aco": "probably",
"acots": false,
"acmp": "probably",
"acmpts": true,
"acw": "probably",
"acwts": false,
"acma": "maybe",
"acmats": false,
"acaa": "probably",
"acaats": true,
"ac3": "",
"ac3ts": false,
"acf": "probably",
"acfts": false,
"acmp4": "maybe",
"acmp4ts": false,
"acmp3": "probably",
"acmp3ts": false,
"acwm": "maybe",
"acwmts": false,
"ocpt": false,
"vco": "",
"vcots": false,
"vch": "probably",
"vchts": true,
"vcw": "probably",
"vcwts": true,
"vc3": "maybe",
"vc3ts": false,
"vcmp": "",
"vcmpts": false,
"vcq": "",
"vcqts": false,
"vc1": "probably",
"vc1ts": true,
"dvm": 4,
"sqt": false,
"so": "portrait-primary",
"wdw": true,
"cokys": "bG9hZFRpbWVzY3NpL=",
"ecpc": false,
"lgs": true,
"lgsod": false,
"psn": true,
"edp": false,
"addt": true,
"wsdc": true,
"ccsr": true,
"nuad": true,
"bcda": true,
"idn": true,
"capi": false,
"svde": false,
"vpbq": true,
"ucdv": false,
"spwn": false,
"emt": false,
"bfr": false,
"dbov": false,
"cfpfe": "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2",
"stcfp": "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6Nzc0MjUpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hY10gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk5NTcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyOTU3",
"ckwa": true,
"emd": "k:ai,vi,ao,vi d:defau,8f9de,defau,24476 g:4e652,f9991,defau,d5801",
"glvd": "ARM",
"glrd": "Mali-G57 MC2",
"wwl": false,
"jset": 1715927566,
"dcok": ".hermes.com",
"log2": true,
"m_fmi": false,
"tbce": 0,
"es_sigmdn": null,
"es_mumdn": null,
"es_distmdn": null,
"es_angsmdn": null,
"es_angemdn": null,
"m_s_c": 0,
"m_m_c": 3,
"m_c_c": 3,
"m_cm_r": 1,
"m_ms_r": -1
}
+21
View File
@@ -0,0 +1,21 @@
## stcfp
获得stcfp的方法,但是取决于tags.js的版本
let stcfp = ""
try {
null[0];
} catch (n) {
//if ("string" != typeof n[["stack"]]) return t[["apply"]](this, arguments);
stcfp = window.btoa(n[["stack"]].slice(-150));
var w = n[["stack"]].split("\n");
// if (i) try {
// w.length > 1 && c[["test"]](w[2]) && (e[["cfpp"]] = true, d("asyncChallengeFinished")), w.length > 2 && l[["test"]](w[w.length - 3]) && (e[["cfcpw"]] = true, d("asyncChallengeFinished")), w.length > 8 && //h[["test"]](w[w.length - 4]) && (e[["cfse"]] = true, d("asyncChallengeFinished"));
//} catch (e) {} else if (a) try {
// w.length > 2 && l[["test"]](w[w.length - 3]) && (e[["cffpw"]] = true, d("asyncChallengeFinished"));
//} catch (e) {}
}
## 4.29.0
在4.29.0的 jsdata le中找不到 *m_fmi**tbce* 这2个属性在4.28.0中存在
+13 -3
View File
@@ -1,5 +1,15 @@
from workers.link_validator import validate_with_FR_ip import time
from workers.link_validator_with_provided_list import validate_all_links
# if __name__ == '__main__':
# # link_list = MONGO_STORE_MANAGER.get_links_to_validate()
# validate_with_FR_ip(segment_position=2)
if __name__ == '__main__': if __name__ == '__main__':
# link_list = MONGO_STORE_MANAGER.get_links_to_validate() # generate test data
validate_with_FR_ip(segment_position=2) while True:
print("call validate_all_links()")
validate_all_links()
print("wait for 30 seconds")
time.sleep(30)
+6
View File
@@ -14,12 +14,14 @@ DOMAN_BTVM_NE_JP = "btvm.ne.jp"
DOMAN_AURORA_DTI_NE_JP = "aurora.dti.ne.jp" DOMAN_AURORA_DTI_NE_JP = "aurora.dti.ne.jp"
DOMAN_GMAIL = "gmail.com" DOMAN_GMAIL = "gmail.com"
DOMAIN_GMX = "gmx.com" DOMAIN_GMX = "gmx.com"
DOMAIN_GMX_NET = "gmx.net"
DOMAIN_GMX_FR = "gmx.fr" DOMAIN_GMX_FR = "gmx.fr"
DOMAIN_GMX_US = "gmx.us" DOMAIN_GMX_US = "gmx.us"
DOMAIN_GMX_CH = "gmx.ch" DOMAIN_GMX_CH = "gmx.ch"
DOMAIN_ONET = "onet.pl" DOMAIN_ONET = "onet.pl"
DOMAIN_NAVER = "naver.com" DOMAIN_NAVER = "naver.com"
DOMAIN_INBOX_LV = "inbox.lv" DOMAIN_INBOX_LV = "inbox.lv"
DOMAIN_GMX_DE = "gmx.de"
DOMAIN_PISS_MAIL = "pissmail.com" DOMAIN_PISS_MAIL = "pissmail.com"
DOMAIN_INCEL_EMAIL = "incel.email" DOMAIN_INCEL_EMAIL = "incel.email"
@@ -34,6 +36,7 @@ IMAP_SERVER_163 = "imap.163.com"
IMAP_SERVER_SINA = "imap.sina.com" IMAP_SERVER_SINA = "imap.sina.com"
YAHOO_IMAP_SERVER = "imap.mail.yahoo.com" YAHOO_IMAP_SERVER = "imap.mail.yahoo.com"
HOTMAIL_IMAP_SERVER = "outlook.office365.com" HOTMAIL_IMAP_SERVER = "outlook.office365.com"
RAMBLER_IMAP_SERVER = "imap.rambler.ru" RAMBLER_IMAP_SERVER = "imap.rambler.ru"
ALICE_IMAP_SERVER = "in.alice.it" ALICE_IMAP_SERVER = "in.alice.it"
TIME_IT_SERVER = "imap.tim.it" TIME_IT_SERVER = "imap.tim.it"
@@ -43,6 +46,7 @@ BTVM_NE_JP = "imap.btvm.ne.jp"
SEREVER_GMAIL = "imap.gmail.com" SEREVER_GMAIL = "imap.gmail.com"
SERVER_IMAGE_ONET = "imap.poczta.onet.pl" SERVER_IMAGE_ONET = "imap.poczta.onet.pl"
SERVER_GMX = "imap.gmx.com" SERVER_GMX = "imap.gmx.com"
SERVER_GMX_NET = "imap.gmx.net"
SERVER_PISS_MAIL = "mail.pissmail.com" SERVER_PISS_MAIL = "mail.pissmail.com"
INBOX_LV = "mail.inbox.lv" INBOX_LV = "mail.inbox.lv"
@@ -97,6 +101,8 @@ def create_imap(login: str):
imap = imaplib.IMAP4(MARS_DTI_NE_JP_SERVER, port=143) imap = imaplib.IMAP4(MARS_DTI_NE_JP_SERVER, port=143)
elif DOMAIN_NAVER in login: elif DOMAIN_NAVER in login:
imap = imaplib.IMAP4_SSL(NAVER_SERVER, port=993) imap = imaplib.IMAP4_SSL(NAVER_SERVER, port=993)
elif DOMAIN_GMX_DE in login or DOMAIN_GMX_NET in login:
imap = imaplib.IMAP4_SSL(SERVER_GMX_NET, port=993)
elif DOMAIN_INBOX_LV in login: elif DOMAIN_INBOX_LV in login:
imap = imaplib.IMAP4_SSL(INBOX_LV, port=993) imap = imaplib.IMAP4_SSL(INBOX_LV, port=993)
elif DOMAIN_PISS_MAIL in login or DOMAIN_CHILD_PIZZA in login or DOMAIN_DMC_CHAT in login or DOMAIN_GENOCIDE_FUN in login or DOMAIN_HATESJE_WS in login or DOMAIN_INCEL_EMAIL in login or DOMAIN_SHITPOSTING_EXPERT in login: elif DOMAIN_PISS_MAIL in login or DOMAIN_CHILD_PIZZA in login or DOMAIN_DMC_CHAT in login or DOMAIN_GENOCIDE_FUN in login or DOMAIN_HATESJE_WS in login or DOMAIN_INCEL_EMAIL in login or DOMAIN_SHITPOSTING_EXPERT in login:
+6 -10
View File
@@ -30,7 +30,7 @@ def check_email_address(email):
print("Valid Email") print("Valid Email")
return True return True
else: else:
print("Invalid Email") print("Invalid Email:" + email)
return False return False
@@ -203,16 +203,12 @@ def need_to_valid_url(url: str, successful_items) -> bool:
parts = url.split('/') parts = url.split('/')
id = parts[5] id = parts[5]
if len(id) == 6: if len(id) == 6:
if id == "CS93VB":
print("found")
for item in successful_items: for item in successful_items:
if item.id == id: if item.id == id:
if item.url_validated is not None: if item.url_validated is not None:
return not item.url_validated return not item.url_validated
else: else:
# if url_validated is None # if url_validated is None
if item.url_validated is not None:
return not item.url_validated
return True return True
return True return True
else: else:
@@ -236,7 +232,7 @@ def need_to_check_email(mail: str, successful_items) -> bool:
return True return True
def find_links_to_validate_from_mail_list(mail_list: list): def find_links_to_validate_from_mail_list(mail_list: list, logger):
# check time before start checking emails # check time before start checking emails
contact_to_book_list = MONGO_STORE_MANAGER.get_all_contact_to_book_list() contact_to_book_list = MONGO_STORE_MANAGER.get_all_contact_to_book_list()
successful_items = MONGO_STORE_MANAGER.get_all_successful_items_for_day() successful_items = MONGO_STORE_MANAGER.get_all_successful_items_for_day()
@@ -252,14 +248,14 @@ def find_links_to_validate_from_mail_list(mail_list: list):
# if need_to_check_email(mail.mail, successful_items): # if need_to_check_email(mail.mail, successful_items):
# mail_reader = MailReader(mail.mail, mail.password) # mail_reader = MailReader(mail.mail, mail.password)
# mail_reader.read_emails(mails_messages) # mail_reader.read_emails(mails_messages)
_refreshed_successful_items = MONGO_STORE_MANAGER.get_all_successful_items_for_day()
for mail in mails_messages: for mail in mails_messages:
match = re.search(VALIDATION_URL_REGEX, mail.body) match = re.search(VALIDATION_URL_REGEX, mail.body)
if match: if match:
url = match.group(0) url = match.group(0)
if need_to_valid_url(url, successful_items): if need_to_valid_url(url, _refreshed_successful_items):
print("need to validate url: " + url) logger.info("need to validate url: " + url)
MONGO_STORE_MANAGER.save_links_to_validate(url, mail.to_address, MONGO_STORE_MANAGER.save_links_to_validate(url, mail.to_address,
_all_contact_list=contact_to_book_list) _all_contact_list=contact_to_book_list)
else: else:
print("do not need to click url --> {}".format(mail.mail_address)) logger.info("do not need to click url --> {}".format(mail.mail_address))
+13
View File
@@ -0,0 +1,13 @@
from multiprocessing import Process
from queue_message.CookiesPublisher import MORNING_DATA_CACHE_2, MORNING_DATA_CACHE, MORNING_DATA_CACHE_BAK
from workers.MessagerTransporter import migrate_message_to_queue
if __name__ == '__main__':
p1 = Process(target=migrate_message_to_queue, args=(MORNING_DATA_CACHE_2, MORNING_DATA_CACHE_BAK))
p1.start()
p2 = Process(target=migrate_message_to_queue, args=(MORNING_DATA_CACHE, MORNING_DATA_CACHE_BAK))
p2.start()
p2.join()
# migrate_message_to_queue(from_queue=MORNING_DATA_CACHE_2)
# migrate_message_to_queue(from_queue=MORNING_DATA_CACHE)
+2
View File
@@ -34,6 +34,7 @@ class ReserveResultPojo:
url_validated = None url_validated = None
created_at = None created_at = None
validated_at = None validated_at = None
proxy: str = None
@staticmethod @staticmethod
def from_firestore_dict(source): def from_firestore_dict(source):
@@ -127,6 +128,7 @@ class ReserveResultPojo:
u'store_type': self.store_type, u'store_type': self.store_type,
u'accepted': self.accepted, u'accepted': self.accepted,
u'url_validated': self.url_validated, u'url_validated': self.url_validated,
u'proxy': self.proxy,
} }
return dest return dest
+9 -15
View File
@@ -20,13 +20,13 @@ from models.jsdata_pojo import JsDataPojo
class JsDataLeTypePojo(JsDataPojo): class JsDataLeTypePojo(JsDataPojo):
def __init__(self, glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu, def __init__(self, glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu,
vnd, pr, ts_mtp, dvm, m_s_c, m_m_c, m_c_c, m_cm_r, m_ms_r): vnd, pr, ts_mtp, dvm, m_s_c, m_m_c, m_c_c, m_cm_r, m_ms_r, emd: str):
super().__init__(glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu, super().__init__(glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu,
vnd, pr, ts_mtp, dvm) vnd, pr, ts_mtp, dvm, emd=emd)
self.log2 = True
self.dcok = ".hermes.com" self.dcok = ".hermes.com"
self.m_fmi = False self.log2 = True
self.tbce = 0 # self.m_fmi = False 这2个字段在4.29.0中没有再出现了
# self.tbce = 0
self.es_sigmdn = None self.es_sigmdn = None
self.es_mumdn = None self.es_mumdn = None
self.es_distmdn = None self.es_distmdn = None
@@ -37,17 +37,11 @@ class JsDataLeTypePojo(JsDataPojo):
self.m_c_c = m_c_c self.m_c_c = m_c_c
self.m_cm_r = m_cm_r self.m_cm_r = m_cm_r
self.m_ms_r = m_ms_r self.m_ms_r = m_ms_r
self.cfpfe = "RXJyb3I6IENhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgbnVsbA==" # 4.25.1 self.cfpfe = "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2" # 4.29.0
self.stcfp = "ckFsbCAoaHR0cHM6Ly9kLmRpZ2l0YWwuaGVybWVzL3RhZ3MuanM6Mjo3NjQ3MykKICAgIGF0IEhUTUxEb2N1bWVudC5yIChodHRwczovL3JlbmRlenZvdXNwYXJpcy5oZXJtZXMuY29tL2Rpc3QvdmVuZG9yLWM2Mjk1ZTljMjg3ZGExNzYwODllLmpzOjI6ODg2Nzkp" # 4.25.1 self.stcfp = "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2" # 4.29.0
test_data_json = """{"glvd":"ARM","glrd":"Mali-G57 MC2","hc":5,"br_oh":620,"br_ow":360,"br_h":620,"br_w":360,"rs_h":804,"rs_w":360,"rs_cd":24,"ars_h":804,"ars_w":360,"plg":2,"eva":33,"vnd":"Google Inc.","plu":["eTJjZUp","iZMOHLs1"],"ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36","dvm":4,"acw":"probably","pr":3,"ts_mtp":5,"tz":-120,"emd":"k:ai,vi,ao,vi d:defau,8f9de,defau,24476 g:4e652,f9991,defau,d5801","cookiesStr":"app.sig=_FqS3_SPN2D40Z4Qlq-_ybxzRvQ;datadome=VSGCNMYkY6L81typRJUpurlyd39dHxdfxIYc6DzRWDT7_rtZ8UodGcbow1okQR2zg_t4d_NcP0rC1ZHNz3XSDAGFZCJhFI49lai~x2Nb2unkhOlY8o4E04Wjmde~auDZ;app=eyJmbGFzaCI6e30sImNhY2hlZmxhc2giOltdLCJjc3JmU2VjcmV0IjoiLW9jbktLVXAzMjVTOEFEdFpLUU9kSXlMIn0=;policy=accepted;lang=fr;"}"""
test_data_json = """{"glvd": "Qualcomm", "glrd": "Adreno (TM) 630", "hc": 2, "br_oh": 663, "br_ow": 384, "br_h": 663,
"br_w": 384, "rs_h": 811, "rs_w": 384, "rs_cd": 24, "ars_h": 811, "ars_w": 384, "plg": 2, "eva": 33,
"vnd": "Google Inc.", "plu": ["5gQIEKN", "Iv26GLka"],
"ua": "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36",
"dvm": 4, "acw": "probably", "pr": 2.8125, "ts_mtp": 5,
"cookiesStr": "app.sig=Arp0SzXCTBF2ordHf3pPTd6cS14;datadome=o_7W8TjHcQjqvnFjFBGAZZ0OmNOd0fnJXfzgqOajAHBBNv7zNMFi2~Jn7wQbTEIZdr2qvg0IFFQQr~Zk5ifzM154V1XxZVhgDZeVkNyRKrQewLBIzVeSagWs587fBqdX;app=eyJmbGFzaCI6e30sImNhY2hlZmxhc2giOltdLCJjc3JmU2VjcmV0IjoieVVRWmJBWnlRTnQ5bFlNbDdNN3R6eHhqIn0=;policy=accepted;lang=fr;"}"""
if __name__ == '__main__': if __name__ == '__main__':
test_data_dict = json.loads(test_data_json) test_data_dict = json.loads(test_data_json)
@@ -59,5 +53,5 @@ if __name__ == '__main__':
ts_mtp=test_data_dict['ts_mtp'], eva=test_data_dict['eva'], ts_mtp=test_data_dict['ts_mtp'], eva=test_data_dict['eva'],
rs_h=test_data_dict['rs_h'], rs_h=test_data_dict['rs_h'],
rs_w=test_data_dict['rs_w'], rs_cd=test_data_dict['rs_cd'], m_s_c=0, m_m_c=3, m_c_c=3, rs_w=test_data_dict['rs_w'], rs_cd=test_data_dict['rs_cd'], m_s_c=0, m_m_c=3, m_c_c=3,
m_cm_r=1, m_ms_r=-1) m_cm_r=1, m_ms_r=-1, emd=test_data_dict['emd'])
print(le_js_data.to_url_encoded_json()) print(le_js_data.to_url_encoded_json())
+7 -10
View File
@@ -130,13 +130,14 @@ class JsDataPojo:
cfpfe: str cfpfe: str
stcfp: str stcfp: str
ckwa: bool ckwa: bool
emd: str
glvd: str glvd: str
glrd: str glrd: str
wwl: bool wwl: bool
jset: int jset: int
def __init__(self, glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu, def __init__(self, glrd, glvd, hc, br_oh, ua, br_ow, br_h, br_w, rs_h, rs_w, rs_cd, ars_h, ars_w, plg, eva, plu,
vnd, pr, ts_mtp, dvm): vnd, pr, ts_mtp, dvm, emd):
# self.opts = "endpoint,ajaxListenerPath" # self.opts = "endpoint,ajaxListenerPath"
self.ttst = random.randint(38, 148) self.ttst = random.randint(38, 148)
self.ifov = False self.ifov = False
@@ -236,6 +237,7 @@ class JsDataPojo:
self.vc1ts = True self.vc1ts = True
self.dvm = dvm self.dvm = dvm
self.set_default_values() self.set_default_values()
self.emd = emd
self.glvd = glvd self.glvd = glvd
self.glrd = glrd self.glrd = glrd
self.wwl = False self.wwl = False
@@ -265,8 +267,8 @@ class JsDataPojo:
self.emt = False self.emt = False
self.bfr = False self.bfr = False
self.dbov = False self.dbov = False
self.cfpfe = "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2" # 4.25.1 self.cfpfe = "ZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudFsnXHg3MVx4NzVceDY1XHg3Mlx4NzlceDUzXHg2NVx4NmNceDY1XHg2M1x4NzRceDZmXHg3MiddKCdceDYyXHg3Mlx4NmZceDc3XHg3M1x4NjVceDcyXHg2Nlx4NmNceDZmXHg3N1x4MmRceDYzXHg2Zlx4NmVceDc0XHg2" # 4.29.0
self.stcfp = "aWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY0NzMpCiAgICBhdCA8Y29tcHV0ZWQ+IFthcyBkZF9hYl0gKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6OTAxMTgpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUyMjY2" # 4.25.1 self.stcfp = "ZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6NzY1MDcpCiAgICBhdCB0Ljxjb21wdXRlZD4uZGRfYWMgKGh0dHBzOi8vZC5kaWdpdGFsLmhlcm1lcy90YWdzLmpzOjI6ODk3ODcpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjUxNjk2" # 4.29.0
self.ckwa = True self.ckwa = True
def to_url_encoded_json(self): def to_url_encoded_json(self):
@@ -275,12 +277,7 @@ class JsDataPojo:
return _safe_string return _safe_string
test_data_json = """{"glvd": "Qualcomm", "glrd": "Adreno (TM) 630", "hc": 2, "br_oh": 663, "br_ow": 384, "br_h": 663, test_data_json = """{"glvd":"ARM","glrd":"Mali-G57 MC2","hc":5,"br_oh":620,"br_ow":360,"br_h":620,"br_w":360,"rs_h":804,"rs_w":360,"rs_cd":24,"ars_h":804,"ars_w":360,"plg":2,"eva":33,"vnd":"Google Inc.","plu":["eTJjZUp","iZMOHLs1"],"ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36","dvm":4,"acw":"probably","pr":3,"ts_mtp":5,"tz":-120,"emd":"k:ai,vi,ao,vi d:defau,8f9de,defau,24476 g:4e652,f9991,defau,d5801","cookiesStr":"app.sig=_FqS3_SPN2D40Z4Qlq-_ybxzRvQ;datadome=VSGCNMYkY6L81typRJUpurlyd39dHxdfxIYc6DzRWDT7_rtZ8UodGcbow1okQR2zg_t4d_NcP0rC1ZHNz3XSDAGFZCJhFI49lai~x2Nb2unkhOlY8o4E04Wjmde~auDZ;app=eyJmbGFzaCI6e30sImNhY2hlZmxhc2giOltdLCJjc3JmU2VjcmV0IjoiLW9jbktLVXAzMjVTOEFEdFpLUU9kSXlMIn0=;policy=accepted;lang=fr;"}"""
"br_w": 384, "rs_h": 811, "rs_w": 384, "rs_cd": 24, "ars_h": 811, "ars_w": 384, "plg": 2, "eva": 33,
"vnd": "Google Inc.", "plu": ["5gQIEKN", "Iv26GLka"],
"ua": "Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36",
"dvm": 4, "acw": "probably", "pr": 2.8125, "ts_mtp": 5,
"cookiesStr": "app.sig=Arp0SzXCTBF2ordHf3pPTd6cS14;datadome=o_7W8TjHcQjqvnFjFBGAZZ0OmNOd0fnJXfzgqOajAHBBNv7zNMFi2~Jn7wQbTEIZdr2qvg0IFFQQr~Zk5ifzM154V1XxZVhgDZeVkNyRKrQewLBIzVeSagWs587fBqdX;app=eyJmbGFzaCI6e30sImNhY2hlZmxhc2giOltdLCJjc3JmU2VjcmV0IjoieVVRWmJBWnlRTnQ5bFlNbDdNN3R6eHhqIn0=;policy=accepted;lang=fr;"}"""
if __name__ == '__main__': if __name__ == '__main__':
test_data_dict = json.loads(test_data_json) test_data_dict = json.loads(test_data_json)
@@ -290,7 +287,7 @@ if __name__ == '__main__':
plg=test_data_dict['plg'], br_h=test_data_dict['br_h'], br_w=test_data_dict['br_w'], plg=test_data_dict['plg'], br_h=test_data_dict['br_h'], br_w=test_data_dict['br_w'],
plu=test_data_dict['plu'], vnd=test_data_dict['vnd'], dvm=test_data_dict['dvm'], plu=test_data_dict['plu'], vnd=test_data_dict['vnd'], dvm=test_data_dict['dvm'],
ts_mtp=test_data_dict['ts_mtp'], eva=test_data_dict['eva'], rs_h=test_data_dict['rs_h'], ts_mtp=test_data_dict['ts_mtp'], eva=test_data_dict['eva'], rs_h=test_data_dict['rs_h'],
rs_w=test_data_dict['rs_w'], rs_cd=test_data_dict['rs_cd']) rs_w=test_data_dict['rs_w'], rs_cd=test_data_dict['rs_cd'], emd=test_data_dict['emd'])
print(js.to_url_encoded_json()) print(js.to_url_encoded_json())
# text_file = open("jsdata.txt", "w") # text_file = open("jsdata.txt", "w")
# # write string to file # # write string to file
+45 -3
View File
@@ -1,3 +1,5 @@
import random
FR_ASOCKS_MOBILE_PROXY = { FR_ASOCKS_MOBILE_PROXY = {
'http': 'http://11797317-mobile-country-FR:nv958134x@190.2.151.110:14046', 'http': 'http://11797317-mobile-country-FR:nv958134x@190.2.151.110:14046',
'https': 'http://11797317-mobile-country-FR:nv958134x@190.2.151.110:14046', 'https': 'http://11797317-mobile-country-FR:nv958134x@190.2.151.110:14046',
@@ -17,16 +19,56 @@ FR_PROXY_ASOCK_RES_2 = {
'http': 'http://10488120-res-country-FR:k94fsbn9a@217.23.6.161:11287', 'http': 'http://10488120-res-country-FR:k94fsbn9a@217.23.6.161:11287',
'https': 'http://10488120-res-country-FR:k94fsbn9a@217.23.6.161:11287' 'https': 'http://10488120-res-country-FR:k94fsbn9a@217.23.6.161:11287'
} }
FR_PROXY_MOB_OXY_STICKY = {
'http': 'http://customer-rendezvousmob-cc-FR:Rdv202220212023@fr-pr.oxylabs.io:{}',
'https': 'http://customer-rendezvousmob-cc-FR:Rdv202220212023@fr-pr.oxylabs.io:{}'
}
FR_PROXY_DATA_IMPULSE_STICKY = {
'http': 'http://1d568220dbefeff21ad4__cr.fr:df99489a25fa72d9@gw.dataimpulse.com:{}',
'https': 'http://1d568220dbefeff21ad4__cr.fr:df99489a25fa72d9@gw.dataimpulse.com:{}'
}
FR_PROXY_RES_OXY_STICKY = {
'http': 'http://customer-rendezvous-cc-FR:Rdv202220212023@fr-pr.oxylabs.io:{}',
'https': 'http://customer-rendezvous-cc-FR:Rdv202220212023@fr-pr.oxylabs.io:{}'
}
FR_DATA_IMPULSE_RES = {
'http': 'http://ac2b8183c3b02714cbd1__cr.fr:336e7f8f4b17e5bd@gw.dataimpulse.com:823',
'https': 'http://ac2b8183c3b02714cbd1__cr.fr:336e7f8f4b17e5bd@gw.dataimpulse.com:823'
}
# 八分之一用data_impulse
MOBILE_PROXY_LIST = [FR_PROXY_MOB_OXY_STICKY, FR_PROXY_MOB_OXY_STICKY, FR_PROXY_MOB_OXY_STICKY, FR_PROXY_MOB_OXY_STICKY,
FR_PROXY_MOB_OXY_STICKY, FR_PROXY_MOB_OXY_STICKY, FR_PROXY_MOB_OXY_STICKY, FR_PROXY_RES_OXY_STICKY,
FR_PROXY_DATA_IMPULSE_STICKY]
class ProxyManager: class ProxyManager:
def __init__(self, logger):
self.logger = logger
def get_link_validate_proxy(self, links_to_validate: list) -> list: def get_link_validate_proxy(self, links_to_validate: list) -> list:
if len(links_to_validate) > 15: if len(links_to_validate) > 15:
return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_ASOCKS_MOBILE_PROXY] return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_DATA_IMPULSE_RES, FR_ASOCKS_MOBILE_PROXY]
# return [FR_PROXY_RES_OXY]
else: else:
return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_ASOCKS_MOBILE_PROXY] return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_ASOCKS_MOBILE_PROXY]
# return [FR_PROXY_RES_OXY] # return [FR_PROXY_RES_OXY]
def get_result_link_proxy(self): def get_result_link_proxy(self):
return [FR_PROXY_ASOCK_RES_2, FR_ASOCKS_MOBILE_PROXY] return [FR_PROXY_RES_OXY, FR_PROXY_ASOCK_RES_2, FR_DATA_IMPULSE_RES, FR_ASOCKS_MOBILE_PROXY]
def get_proxy_for_appointment_request(self) -> dict:
_chosen_proxy = random.choice(MOBILE_PROXY_LIST)
if "oxylabs" in _chosen_proxy["http"]:
self.logger.info("use oxylabs proxy")
_port = random.randint(40001, 49999)
else:
self.logger.info("use dataimpulse proxy")
_port = random.randint(10000, 20000)
self.logger.info("generated port is {}".format(_port))
_proxy_to_use = {}
_proxy_to_use["http"] = _chosen_proxy["http"].format(_port)
_proxy_to_use["https"] = _chosen_proxy["https"].format(_port)
return _proxy_to_use
+2 -1
View File
@@ -7,10 +7,12 @@ REQUEST_DATA_QUEUE_TEST = 'REQUEST_DATA_TEST'
TEST_QUEUE = 'TEST_QUEUE' TEST_QUEUE = 'TEST_QUEUE'
SHARED_OBJECT = 'SHARED_OBJECT' SHARED_OBJECT = 'SHARED_OBJECT'
MORNING_DATA_CACHE = 'MORNING_DATA_CACHE' MORNING_DATA_CACHE = 'MORNING_DATA_CACHE'
MORNING_DATA_CACHE_2 = 'MORNING_DATA_CACHE_2'
MORNING_DATA_CACHE_BAK = 'MORNING_DATA_CACHE_BAK' MORNING_DATA_CACHE_BAK = 'MORNING_DATA_CACHE_BAK'
REQUEST_DATA_QUEUE_DE = 'REQUEST_DATA_DE' REQUEST_DATA_QUEUE_DE = 'REQUEST_DATA_DE'
REQUEST_DATA_OBJECT = 'REQUEST_DATA_OBJECT' REQUEST_DATA_OBJECT = 'REQUEST_DATA_OBJECT'
REGISTER_QUEUE = 'REGISTER_QUEUE' REGISTER_QUEUE = 'REGISTER_QUEUE'
RES_PROXY_DATA = 'RES_PROXY_DATA'
credentials = pika.PlainCredentials('appointment', 'ZyuhJZ2xEYWhElhpJjy7YEpZGZwNYJz2fHIu') credentials = pika.PlainCredentials('appointment', 'ZyuhJZ2xEYWhElhpJjy7YEpZGZwNYJz2fHIu')
@@ -36,4 +38,3 @@ class CookiesPublisher:
def message_count(self): def message_count(self):
return self.channel.queue_declare(queue=self.to_queue, durable=True).method.message_count return self.channel.queue_declare(queue=self.to_queue, durable=True).method.message_count
# return self.queue_method.method.message_count
+27 -22
View File
@@ -13,6 +13,7 @@ from models.contact_pojo import ContactPojo
from models.jsdata_le_pojo import JsDataLeTypePojo from models.jsdata_le_pojo import JsDataLeTypePojo
from models.jsdata_pojo import JsDataPojo from models.jsdata_pojo import JsDataPojo
from models.result_pojo import RequestResult from models.result_pojo import RequestResult
from proxy_manager.proxy_manager import ProxyManager
from queue_message.CookiesPublisher import CookiesPublisher from queue_message.CookiesPublisher import CookiesPublisher
from utiles import is_time_between from utiles import is_time_between
from workers.captcha_result_getter import CaptchaResultGetter, HERMES_REGISTER from workers.captcha_result_getter import CaptchaResultGetter, HERMES_REGISTER
@@ -62,22 +63,20 @@ def is_open():
class AppointmentRequestSender(threading.Thread): class AppointmentRequestSender(threading.Thread):
def __init__(self, sub_contact_list: list, proxy_to_use_list, logger, cookiesPublisher: CookiesPublisher, def __init__(self, sub_contact_list: list, logger, cookiesPublisher: CookiesPublisher,
just_send=False,
queue_name=REQUEST_DATA_QUEUE): queue_name=REQUEST_DATA_QUEUE):
super().__init__() super().__init__()
self.connection = None self.connection = None
self.just_send = just_send
self.logger = logger self.logger = logger
self.already_tried_contact_list = [] self.already_tried_contact_list = []
self.cookiesPublisher = cookiesPublisher self.cookiesPublisher = cookiesPublisher
self.channel = None self.channel = None
self.valid_csrf = None self.valid_csrf = None
self.list_to_retrieve_mails = sub_contact_list self.list_to_retrieve_mails = sub_contact_list
self.initial_contact_list = sub_contact_list self.initial_contact_list = sub_contact_list.copy()
self.contact_list = sub_contact_list self.contact_list = sub_contact_list
self.queue_name = queue_name self.queue_name = queue_name
self.proxy_to_use_list = proxy_to_use_list self.proxy_manager = ProxyManager(logger)
self.already_read_emails = False self.already_read_emails = False
def set_up_connection(self): def set_up_connection(self):
@@ -96,13 +95,9 @@ class AppointmentRequestSender(threading.Thread):
self.logger.info("message count in queue is {}".format(_message_count)) self.logger.info("message count in queue is {}".format(_message_count))
_received_object = body.decode("UTF-8") _received_object = body.decode("UTF-8")
self.logger.info(f" [x] Received {_received_object}") self.logger.info(f" [x] Received {_received_object}")
_port = random.randint(40001, 49999) # 同一个COOKIES保持用同一个IP
self.logger.info("generated port is {}".format(_port)) _proxy_to_use = self.proxy_manager.get_proxy_for_appointment_request()
_chosen_proxy = random.choice(self.proxy_to_use_list) print("proxy to use is {}".format(_proxy_to_use))
_proxy_to_use = {}
_proxy_to_use["http"] = _chosen_proxy["http"].format(_port)
_proxy_to_use["https"] = _chosen_proxy["https"].format(_port)
print(_proxy_to_use)
if "glrd" in _received_object: if "glrd" in _received_object:
_received_dict = json.loads(_received_object) _received_dict = json.loads(_received_object)
js_data = JsDataPojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'], hc=_received_dict['hc'], js_data = JsDataPojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'], hc=_received_dict['hc'],
@@ -112,15 +107,10 @@ class AppointmentRequestSender(threading.Thread):
plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'], plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'],
ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'],
rs_h=_received_dict['rs_h'], rs_h=_received_dict['rs_h'],
rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd']) rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], emd=_received_dict['emd'])
_received_cookies = _received_dict["cookiesStr"] _received_cookies = _received_dict["cookiesStr"]
sender = Sender(_received_cookies, cookiesPublisher=self.cookiesPublisher, received_dict=_received_dict,
proxy_to_use=_proxy_to_use, logger=self.logger)
# remove already sent contacts # remove already sent contacts
if self.just_send: self.contact_list = filter_contacts(self.contact_list, self.already_tried_contact_list)
self.contact_list = filter_contacts(self.contact_list, self.already_tried_contact_list)
else:
self.contact_list = filter_contacts(self.contact_list)
# remove already booked contacts # remove already booked contacts
random.shuffle(self.contact_list) random.shuffle(self.contact_list)
if len(self.contact_list) > 0 and is_open(): if len(self.contact_list) > 0 and is_open():
@@ -128,6 +118,11 @@ class AppointmentRequestSender(threading.Thread):
self.logger.info("contact number is {}".format(len(self.contact_list))) self.logger.info("contact number is {}".format(len(self.contact_list)))
# self.contact_list = filter_contacts(self.contact_list) # self.contact_list = filter_contacts(self.contact_list)
for con in self.contact_list: for con in self.contact_list:
# _proxy_to_use = self.proxy_manager.get_proxy_for_appointment_request()
# print(_proxy_to_use)
sender = Sender(_received_cookies, cookiesPublisher=self.cookiesPublisher,
received_dict=_received_dict,
proxy_to_use=_proxy_to_use, logger=self.logger)
self.logger.info(con.mail) self.logger.info(con.mail)
if self.valid_csrf is None: if self.valid_csrf is None:
csrf_result = captchaResultGetter.get_csrf( csrf_result = captchaResultGetter.get_csrf(
@@ -149,7 +144,11 @@ class AppointmentRequestSender(threading.Thread):
m_c_c = random.randint(3, 5) # click count m_c_c = random.randint(3, 5) # click count
m_m_c = random.randint(3, 5) # move count m_m_c = random.randint(3, 5) # move count
m_cm_r = m_c_c / m_m_c m_cm_r = m_c_c / m_m_c
m_ms_r = random.randint(-1, 1) m_ms_r = -1 # move scroll ratio
if m_s_c == 0:
m_ms_r = -1
else:
m_ms_r = m_m_c / m_s_c
js_le_data = JsDataLeTypePojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'], js_le_data = JsDataLeTypePojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'],
hc=_received_dict['hc'], hc=_received_dict['hc'],
@@ -165,7 +164,7 @@ class AppointmentRequestSender(threading.Thread):
rs_h=_received_dict['rs_h'], rs_h=_received_dict['rs_h'],
rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'],
m_s_c=m_s_c, m_m_c=m_m_c, m_c_c=m_c_c, m_s_c=m_s_c, m_m_c=m_m_c, m_c_c=m_c_c,
m_cm_r=m_cm_r, m_ms_r=m_ms_r) m_cm_r=m_cm_r, m_ms_r=m_ms_r, emd=_received_dict['emd'])
time.sleep(random.randint(1, 4)) time.sleep(random.randint(1, 4))
_new_le_cookies = captchaResultGetter.get_le_valid_cookie(proxy_to_use=_proxy_to_use, _new_le_cookies = captchaResultGetter.get_le_valid_cookie(proxy_to_use=_proxy_to_use,
js_le_type_data=js_le_data, js_le_type_data=js_le_data,
@@ -219,6 +218,7 @@ class AppointmentRequestSender(threading.Thread):
self.channel.start_consuming() self.channel.start_consuming()
def retrieve_invalidate_urls(self): def retrieve_invalidate_urls(self):
# 如果没有已读邮件,而且需要读邮件的联系人表不为空,就读取未读邮件
if not self.already_read_emails and len(self.list_to_retrieve_mails) > 0: if not self.already_read_emails and len(self.list_to_retrieve_mails) > 0:
self.logger.info("will retrieve validate urls") self.logger.info("will retrieve validate urls")
time.sleep(30) time.sleep(30)
@@ -227,16 +227,21 @@ class AppointmentRequestSender(threading.Thread):
for mail in _mail_list: for mail in _mail_list:
for _contact in self.list_to_retrieve_mails: for _contact in self.list_to_retrieve_mails:
if _contact.mail == mail.mail: if _contact.mail == mail.mail:
self.logger.info("will get mail from " + mail.mail)
_mail_list_filtered.append(mail) _mail_list_filtered.append(mail)
self.logger.info("will call find_links_to_validate_from_mail_list, size = " + str(len(_mail_list_filtered))) self.logger.info("will call find_links_to_validate_from_mail_list, size = " + str(len(_mail_list_filtered)))
find_links_to_validate_from_mail_list(_mail_list_filtered) find_links_to_validate_from_mail_list(_mail_list_filtered, self.logger)
self.already_read_emails = True self.already_read_emails = True
else: else:
self.logger.info("already read emails, is there any contacts to use") self.logger.info("already read emails, is there any contacts to use")
self.logger.info("reset already_tried_contact_list") self.logger.info("reset already_tried_contact_list")
# 重置已尝试的联系人
self.already_tried_contact_list = [] self.already_tried_contact_list = []
self.contact_list = filter_contacts(self.initial_contact_list, self.already_tried_contact_list) self.contact_list = filter_contacts(self.initial_contact_list, self.already_tried_contact_list)
self.logger.info("contact_list size is " + str(len(self.contact_list))) self.logger.info("contact_list size is " + str(len(self.contact_list)))
if len(self.contact_list) > 0: if len(self.contact_list) > 0:
self.logger.info("set already_read_emails to False") self.logger.info("set already_read_emails to False")
self.already_read_emails = False self.already_read_emails = False
else:
self.logger.info("already read emails, no contact to use -> stop")
self.channel.stop_consuming()
+2 -2
View File
@@ -103,7 +103,7 @@ class ParallelRequestSender(threading.Thread):
rs_h=_received_dict['rs_h'], rs_h=_received_dict['rs_h'],
rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'],
m_s_c=m_s_c, m_m_c=m_m_c, m_c_c=m_c_c, m_s_c=m_s_c, m_m_c=m_m_c, m_c_c=m_c_c,
m_cm_r=m_cm_r, m_ms_r=m_ms_r) m_cm_r=m_cm_r, m_ms_r=m_ms_r, emd=_received_dict['emd'])
time.sleep(random.randint(1, 4)) time.sleep(random.randint(1, 4))
_new_le_cookies = captchaResultGetter.get_le_valid_cookie(proxy_to_use=_proxy_to_use, _new_le_cookies = captchaResultGetter.get_le_valid_cookie(proxy_to_use=_proxy_to_use,
js_le_type_data=js_le_data, js_le_type_data=js_le_data,
@@ -149,7 +149,7 @@ class ParallelRequestSender(threading.Thread):
plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'], plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'],
ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'],
rs_h=_received_dict['rs_h'], rs_h=_received_dict['rs_h'],
rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd']) rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], emd=_received_dict['emd'])
def generate_proxy(self): def generate_proxy(self):
_port = random.randint(40001, 49999) _port = random.randint(40001, 49999)
+7 -7
View File
@@ -6,7 +6,8 @@ from threading import Thread
from db.mongo_manager import MONGO_STORE_MANAGER from db.mongo_manager import MONGO_STORE_MANAGER
from excel_reader import read_contacts from excel_reader import read_contacts
from models.contact_pojo import ContactPojo from models.contact_pojo import ContactPojo
from queue_message.CookiesPublisher import CookiesPublisher, SHARED_OBJECT, TEST_QUEUE from queue_message.CookiesPublisher import CookiesPublisher, SHARED_OBJECT, TEST_QUEUE, MORNING_DATA_CACHE_2, \
MORNING_DATA_CACHE
from queue_message.appointmentrequestsender import AppointmentRequestSender from queue_message.appointmentrequestsender import AppointmentRequestSender
from utiles import is_time_between from utiles import is_time_between
from utils.AppLogging import init_logger from utils.AppLogging import init_logger
@@ -62,8 +63,7 @@ def send_appointment_request(message_queue_name, _contact_list):
logger.info(_contact) logger.info(_contact)
_cookiesPublisher = CookiesPublisher(queue_name=message_queue_name) _cookiesPublisher = CookiesPublisher(queue_name=message_queue_name)
_cookiesPublisher.set_up_connection() _cookiesPublisher.set_up_connection()
receiver = AppointmentRequestSender(sub_contact_list=_contact_list, proxy_to_use_list=MOBILE_PROXY_LIST_FR, receiver = AppointmentRequestSender(sub_contact_list=_contact_list, queue_name=message_queue_name,
queue_name=message_queue_name, just_send=True,
cookiesPublisher=_cookiesPublisher, logger=logger) cookiesPublisher=_cookiesPublisher, logger=logger)
print("count is " + str(count)) print("count is " + str(count))
receiver.run() receiver.run()
@@ -71,17 +71,17 @@ def send_appointment_request(message_queue_name, _contact_list):
def start_send_requests(): def start_send_requests():
print("start send requests") print("start send requests")
contacts_file_path = '~/Desktop/contact_list_2024-04-16_2.xlsx' contacts_file_path = '~/Desktop/11_05_to_test.xlsx'
_contact_list = read_contacts(contacts_file_path) _contact_list = read_contacts(contacts_file_path)[:-1]
_contact_list_to_book = filter_contacts(_contact_list) _contact_list_to_book = filter_contacts(_contact_list)
_segment_number = 10 _segment_number = 5
logger.info("{} contacts to book".format(len(_contact_list_to_book))) logger.info("{} contacts to book".format(len(_contact_list_to_book)))
last_thread = None last_thread = None
for i in range(0, _segment_number): for i in range(0, _segment_number):
logger.info("segment is {}".format(i)) logger.info("segment is {}".format(i))
_step = int(len(_contact_list_to_book) / _segment_number) _step = int(len(_contact_list_to_book) / _segment_number)
_sublist = _contact_list_to_book[i * _step:_step * (i + 1)] _sublist = _contact_list_to_book[i * _step:_step * (i + 1)]
_thread1 = Thread(target=send_appointment_request, args=(SHARED_OBJECT, _sublist)) _thread1 = Thread(target=send_appointment_request, args=(MORNING_DATA_CACHE, _sublist))
last_thread = _thread1 last_thread = _thread1
_thread1.start() _thread1.start()
last_thread.join() last_thread.join()
+29 -16
View File
@@ -6,15 +6,13 @@ from threading import Thread
from db.mongo_manager import MONGO_STORE_MANAGER from db.mongo_manager import MONGO_STORE_MANAGER
from excel_reader import read_contacts from excel_reader import read_contacts
from models.contact_pojo import ContactPojo from models.contact_pojo import ContactPojo
from queue_message.CookiesPublisher import CookiesPublisher, SHARED_OBJECT, TEST_QUEUE, MORNING_DATA_CACHE from queue_message.CookiesPublisher import CookiesPublisher, SHARED_OBJECT, TEST_QUEUE, MORNING_DATA_CACHE, \
MORNING_DATA_CACHE_2
from queue_message.appointmentrequestsender import AppointmentRequestSender from queue_message.appointmentrequestsender import AppointmentRequestSender
from utiles import is_time_between from utiles import is_time_between
from utils.AppLogging import init_logger from utils.AppLogging import init_logger
from workers.proxies_constants import MOBILE_PROXY_LIST_FR from workers.proxies_constants import MOBILE_PROXY_LIST_FR
IPFIY = 'http://api.ipify.org'
NGROK_TEST = "https://bcc6-193-164-156-53.ngrok-free.app"
def is_already_sent(contact: ContactPojo) -> bool: def is_already_sent(contact: ContactPojo) -> bool:
already_sent_contacts = MONGO_STORE_MANAGER.get_all_successful_items_for_day() already_sent_contacts = MONGO_STORE_MANAGER.get_all_successful_items_for_day()
@@ -62,30 +60,45 @@ def send_appointment_request(message_queue_name, _contact_list):
logger.info(_contact) logger.info(_contact)
_cookiesPublisher = CookiesPublisher(queue_name=message_queue_name) _cookiesPublisher = CookiesPublisher(queue_name=message_queue_name)
_cookiesPublisher.set_up_connection() _cookiesPublisher.set_up_connection()
receiver = AppointmentRequestSender(sub_contact_list=_contact_list, proxy_to_use_list=MOBILE_PROXY_LIST_FR, receiver = AppointmentRequestSender(sub_contact_list=_contact_list,
queue_name=message_queue_name, just_send=True, queue_name=message_queue_name,
cookiesPublisher=_cookiesPublisher, logger=logger) cookiesPublisher=_cookiesPublisher, logger=logger)
print("count is " + str(count)) print("count is " + str(count))
receiver.run() receiver.run()
def start_send_requests(): def start_send_requests(thread_number, contact_list, data_queue_name=MORNING_DATA_CACHE):
print("start send requests") print("start send requests")
contacts_file_path = '~/Desktop/21_04_to_test.xlsx' _contact_list_to_book = filter_contacts(contact_list)
_contact_list = read_contacts(contacts_file_path) _segment_number = thread_number
_contact_list_to_book = filter_contacts(_contact_list)
_segment_number = 2
logger.info("{} contacts to book".format(len(_contact_list_to_book))) logger.info("{} contacts to book".format(len(_contact_list_to_book)))
last_thread = None # last_thread = None
thread_list = []
for i in range(0, _segment_number): for i in range(0, _segment_number):
logger.info("segment is {}".format(i)) logger.info("segment is {}".format(i))
_step = int(len(_contact_list_to_book) / _segment_number) _step = int(len(_contact_list_to_book) / _segment_number)
_sublist = _contact_list_to_book[i * _step:_step * (i + 1)] _sublist = _contact_list_to_book[i * _step:_step * (i + 1)]
_thread1 = Thread(target=send_appointment_request, args=(MORNING_DATA_CACHE, _sublist)) _thread1 = Thread(target=send_appointment_request, args=(data_queue_name, _sublist))
last_thread = _thread1 thread_list.append(_thread1)
_thread1.start() _thread1.start()
last_thread.join() for _thread in thread_list:
_thread.join()
def send_request_for_file_list(file_list: list[str], thread_number: int = 20, data_queue_name=MORNING_DATA_CACHE):
for _file_path in file_list:
logger.info("send request for file: " + _file_path)
_contact_list = read_contacts(_file_path)
start_send_requests(thread_number=thread_number, contact_list=_contact_list,
data_queue_name=data_queue_name)
if __name__ == '__main__': if __name__ == '__main__':
start_send_requests() # file_list = ['~/Desktop/contact_list_2024-05-23.xlsx',
# '~/Desktop/contact_list_2024-05-22.xlsx',
# '~/Desktop/contact_list_2024-05-21.xlsx',
# '~/Desktop/15_05_to_test.xlsx']
# file_list = ['~/Desktop/15_05_to_test.xlsx', '~/Desktop/16_05_to_test.xlsx']
file_list = ['~/Desktop/contact_list_all.xlsx']
send_request_for_file_list(file_list=file_list, thread_number=30,
data_queue_name=MORNING_DATA_CACHE)
+10 -3
View File
@@ -1,18 +1,25 @@
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from apscheduler.schedulers.blocking import BlockingScheduler from apscheduler.schedulers.blocking import BlockingScheduler
from request_sender_test import start_send_requests from queue_message.CookiesPublisher import MORNING_DATA_CACHE
from request_sender_test import send_request_for_file_list
def start_book_appointment(): def start_book_appointment():
start_send_requests() file_list = ['~/Desktop/contact_list_2024-05-27.xlsx',
'~/Desktop/contact_list_2024-05-25.xlsx',
'~/Desktop/contact_list_2024-05-24.xlsx',
'~/Desktop/contact_list_2024-05-23.xlsx',
'~/Desktop/contact_list_2024-05-22.xlsx']
send_request_for_file_list(file_list=file_list, thread_number=40,
data_queue_name=MORNING_DATA_CACHE)
def start_check_results_job(sched): def start_check_results_job(sched):
sched.add_job(start_book_appointment, 'cron', day_of_week='mon-sat', hour='10', sched.add_job(start_book_appointment, 'cron', day_of_week='mon-sat', hour='10',
minute='30', minute='30',
misfire_grace_time=10, misfire_grace_time=10,
second='0', timezone='Europe/Paris', max_instances=1, args=[]) second='20', timezone='Europe/Paris', max_instances=1, args=[])
def config_and_start_jobs(): def config_and_start_jobs():
+2
View File
@@ -0,0 +1,2 @@
source ./venv/bin/activate
python workers/link_validator_with_provided_list.py
+1 -1
View File
@@ -25,6 +25,6 @@ if __name__ == '__main__':
ua = "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36" ua = "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36"
jsData = JsDataPojo(glrd=glrd, hc=hc, ua=ua, br_oh=br_oh, br_ow=br_ow, br_h=br_h, br_w=br_w, rs_h=rs_h, rs_w=rs_w, jsData = JsDataPojo(glrd=glrd, hc=hc, ua=ua, br_oh=br_oh, br_ow=br_ow, br_h=br_h, br_w=br_w, rs_h=rs_h, rs_w=rs_w,
eva=eva, eva=eva,
rs_cd=rs_cd, plg=plg, plu=plu, ars_h=ars_h, ars_w=ars_w, vnd=vnd, glvd=glvd) rs_cd=rs_cd, plg=plg, plu=plu, ars_h=ars_h, ars_w=ars_w, vnd=vnd, glvd=glvd,emd="NA")
print(jsData) print(jsData)
+21 -6
View File
@@ -2,7 +2,7 @@ import threading
import pika import pika
from queue_message.CookiesPublisher import QUEUE_HOST, CookiesPublisher, MORNING_DATA_CACHE from queue_message.CookiesPublisher import QUEUE_HOST, CookiesPublisher, MORNING_DATA_CACHE, MORNING_DATA_CACHE_2
credentials = pika.PlainCredentials('appointment', 'ZyuhJZ2xEYWhElhpJjy7YEpZGZwNYJz2fHIu') credentials = pika.PlainCredentials('appointment', 'ZyuhJZ2xEYWhElhpJjy7YEpZGZwNYJz2fHIu')
@@ -24,6 +24,9 @@ class MessageTransporter(threading.Thread):
self.channel.basic_consume(queue=self.queue_to_listen, auto_ack=False, on_message_callback=self.on_message) self.channel.basic_consume(queue=self.queue_to_listen, auto_ack=False, on_message_callback=self.on_message)
self.channel.start_consuming() self.channel.start_consuming()
def message_count(self):
return self.channel.queue_declare(queue=self.queue_to_listen, durable=True).method.message_count
def on_message(self, ch, method, properties, body): def on_message(self, ch, method, properties, body):
print(f" [x] Received {body}") print(f" [x] Received {body}")
_received_object = body.decode("UTF-8") _received_object = body.decode("UTF-8")
@@ -31,11 +34,23 @@ class MessageTransporter(threading.Thread):
print("message count in queue is {}".format(_message_in_queue_count)) print("message count in queue is {}".format(_message_in_queue_count))
self.cookiesPublisher.publish_body(_received_object) self.cookiesPublisher.publish_body(_received_object)
ch.basic_ack(delivery_tag=method.delivery_tag) ch.basic_ack(delivery_tag=method.delivery_tag)
if self.message_count() == 0:
print("all messages are processed")
exit(0)
def migrate_message_to_queue(from_queue, to_queue="MORNING_DATA_CACHE_BAK"):
cookiesPublisher = CookiesPublisher(queue_name=to_queue)
cookiesPublisher.set_up_connection()
message_transporter = MessageTransporter(cookiesPublisher=cookiesPublisher, queue_to_listen=from_queue)
message_transporter.set_up_connection()
message_transporter.listen_to_queue()
if __name__ == '__main__': if __name__ == '__main__':
cookiesPublisher = CookiesPublisher(queue_name="MORNING_DATA_CACHE_BAK") migrate_message_to_queue(from_queue=MORNING_DATA_CACHE_2)
cookiesPublisher.set_up_connection() # cookiesPublisher = CookiesPublisher(queue_name="MORNING_DATA_CACHE_BAK")
message_transporter = MessageTransporter(cookiesPublisher=cookiesPublisher, queue_to_listen=MORNING_DATA_CACHE) # cookiesPublisher.set_up_connection()
message_transporter.set_up_connection() # message_transporter = MessageTransporter(cookiesPublisher=cookiesPublisher, queue_to_listen=MORNING_DATA_CACHE)
message_transporter.listen_to_queue() # message_transporter.set_up_connection()
# message_transporter.listen_to_queue()
+2 -2
View File
@@ -105,7 +105,7 @@ class CaptchaResultGetter:
return None return None
def get_ch_raw_data_from_js_data(self, js_data: JsDataPojo, old_valid_cookie) -> str: def get_ch_raw_data_from_js_data(self, js_data: JsDataPojo, old_valid_cookie) -> str:
_tag_version = "4.25.1" _tag_version = "4.29.0"
_raw_data = "jsData={}&eventCounters=%5B%5D&jsType=ch&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv={}".format( _raw_data = "jsData={}&eventCounters=%5B%5D&jsType=ch&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv={}".format(
js_data.to_url_encoded_json(), old_valid_cookie, _tag_version) js_data.to_url_encoded_json(), old_valid_cookie, _tag_version)
print("raw ch data is " + _raw_data) print("raw ch data is " + _raw_data)
@@ -172,7 +172,7 @@ class CaptchaResultGetter:
# _le_js_raw_data = self.get_le_raw_data_from_js_data(js_le_type_data=js_le_type_data, # _le_js_raw_data = self.get_le_raw_data_from_js_data(js_le_type_data=js_le_type_data,
# old_valid_cookie=old_valid_cookie) # old_valid_cookie=old_valid_cookie)
_cid = get_datadome_cookies(old_valid_cookie) _cid = get_datadome_cookies(old_valid_cookie)
_raw_data = "jsData={}&eventCounters=%7B%22mousemove%22%3A{}%2C%22click%22%3A{}%2C%22scroll%22%3A{}%2C%22touchstart%22%3A{}%2C%22touchend%22%3A{}%2C%22touchmove%22%3A{}%2C%22keydown%22%3A{}%2C%22keyup%22%3A{}%7D&jsType=le&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv=4.25.1".format( _raw_data = "jsData={}&eventCounters=%7B%22mousemove%22%3A{}%2C%22click%22%3A{}%2C%22scroll%22%3A{}%2C%22touchstart%22%3A{}%2C%22touchend%22%3A{}%2C%22touchmove%22%3A{}%2C%22keydown%22%3A{}%2C%22keyup%22%3A{}%7D&jsType=le&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv=4.29.0".format(
js_le_type_data.to_url_encoded_json(), mousemove_count, click_count, scroll_count, touch_count, touch_count, js_le_type_data.to_url_encoded_json(), mousemove_count, click_count, scroll_count, touch_count, touch_count,
touch_move, touch_move,
key_count, key_count,
@@ -0,0 +1,254 @@
import json
import logging
import random
import threading
import time
from datetime import datetime
from http.cookies import SimpleCookie
import pika
import requests
from db.mongo_manager import MONGO_STORE_MANAGER
from models.LinkPojo import LinkPojo
from models.result_pojo import RequestResult
from proxy_manager.proxy_manager import ProxyManager
from queue_message.CookiesPublisher import CookiesPublisher, REQUEST_DATA_QUEUE_TEST, TEST_QUEUE, SHARED_OBJECT, \
MORNING_DATA_CACHE_BAK
from queue_message.appointmentrequestsender import QUEUE_HOST, REQUEST_DATA_QUEUE, credentials
from utils.AppLogging import init_logger
from workers.proxies_constants import PROXY_LIST_FR
DOUBLE_MESSAGE = "Une demande de rendez-vous a déjà été enregistrée avec ces coordonnées"
INVALID = "Depuis plus de 130 ans,"
init_logger()
logger = logging.getLogger()
class LinkValidatorWithProvidedList(threading.Thread):
def __init__(self, cookiesPublisher: CookiesPublisher, link_list: list,
queue_to_listen=REQUEST_DATA_QUEUE,
ip_country="FR",
limit=40):
super().__init__()
self.link_to_validate_list = link_list
self.cookie = SimpleCookie()
self.cookiesPublisher = cookiesPublisher
self.queue_to_listen = queue_to_listen
self.ip_country = ip_country
self.filter_with_ip_country()
self.proxy_manager = ProxyManager(logger)
self.limit = limit
def set_up_connection(self):
self.connection = pika.BlockingConnection(
pika.ConnectionParameters(host=QUEUE_HOST, port=5672, credentials=credentials))
self.channel = self.connection.channel()
def listen_to_queue(self, callback):
self.channel.basic_qos(prefetch_count=1)
self.channel.basic_consume(queue=self.queue_to_listen, auto_ack=False, on_message_callback=callback)
self.channel.start_consuming()
def send_request(self, linkPojo: LinkPojo, _received_dict=None) -> RequestResult:
_ua = 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Mobile Safari/537.36'
if _received_dict is not None:
_ua = _received_dict['ua']
self.cookie.load(self.cookie_str)
headers = {
'User-Agent': _ua,
'Accept': '*/*',
'Accept-Encoding': 'gzip, deflate, br',
'Cache-Control': 'max-age=0',
'Referer': linkPojo.url,
'Cookie': self.cookie_str,
'Sec-Fetch-Mode': 'navigate',
'Host': 'rendezvousparis.hermes.com',
'Sec-Fetch-Site': 'same-origin',
'Sec-Fetch-Dest': 'document',
'Accept-Language': 'fr-FR,fr;q=0.6'}
print("received cookie is " + str(self.cookie_str))
print("send request for link: " + linkPojo.url)
try:
print("will send request with ua {}".format(_ua))
print("will send request with cookie {}".format(self.cookie_str))
response = requests.get(url=linkPojo.url, headers=headers, verify=False, proxies=self.proxy_to_use,
timeout=60)
print(response.status_code)
if response.status_code == 200:
_content = response.text
print(response.text)
if "Votre demande de rendez-vous Maroquinerie a bien été enregistrée" in _content:
print(response.url)
MONGO_STORE_MANAGER.link_validated_for_result(response.url, linkPojo,
segement_position=threading.currentThread().name)
# set new cookies
_cookies_to_set = response.headers['set-cookie']
self.cookie.load(_cookies_to_set)
new_cookies = {k: v.value for k, v in self.cookie.items()}
new_coolies_str = ""
for key in new_cookies:
new_coolies_str = new_coolies_str + key + "=" + new_cookies[key] + ";"
print("will publish to queue {}".format(new_coolies_str))
# upload the cookie to queue
if _received_dict is not None:
_received_dict['cookiesStr'] = new_coolies_str
print("body in json:{}".format(json.dumps(_received_dict)))
self.cookiesPublisher.publish_body(json.dumps(_received_dict))
else:
self.cookiesPublisher.publish_body(new_coolies_str)
self.cookie_str = new_coolies_str
return RequestResult.SUCCESS
elif INVALID in _content:
MONGO_STORE_MANAGER.link_validated_for_result(response.url, linkPojo, is_invalid=True)
# set new cookies
_cookies_to_set = response.headers['set-cookie']
self.cookie.load(_cookies_to_set)
new_cookies = {k: v.value for k, v in self.cookie.items()}
new_coolies_str = ""
for key in new_cookies:
new_coolies_str = new_coolies_str + key + "=" + new_cookies[key] + ";"
print("will publish to queue {}".format(new_coolies_str))
# upload the cookie to queue
self.cookiesPublisher.publish_body(new_coolies_str)
self.cookie_str = new_coolies_str
return RequestResult.SUCCESS
elif DOUBLE_MESSAGE in _content:
print(response.url)
MONGO_STORE_MANAGER.link_validated_for_result(response.url, linkPojo, is_duplicated=True)
# set new cookies
_cookies_to_set = response.headers['set-cookie']
self.cookie.load(_cookies_to_set)
new_cookies = {k: v.value for k, v in self.cookie.items()}
new_coolies_str = ""
for key in new_cookies:
new_coolies_str = new_coolies_str + key + "=" + new_cookies[key] + ";"
print("will publish to queue {}".format(new_coolies_str))
# upload the cookie to queue
self.cookiesPublisher.publish_body(new_coolies_str)
self.cookie_str = new_coolies_str
return RequestResult.SUCCESS
else:
return RequestResult.UNKNOWN
elif response.status_code == 502:
return RequestResult.BAD_GATEWAY
else:
return RequestResult.BLOCKED
except Exception as error:
print(error)
return RequestResult.PROXY_ERROR
def on_message(self, ch, method, properties, body):
print(f" [x] Received {body}")
_message_in_queue_count = self.cookiesPublisher.message_count()
print("message count in queue is {}".format(_message_in_queue_count))
_received_object = body.decode("UTF-8")
_received_dict = None
if "glrd" in _received_object:
_received_dict = json.loads(_received_object)
_received_cookies = _received_dict["cookiesStr"]
else:
_received_cookies = _received_object
self.cookie_str = _received_cookies
random.shuffle(self.link_to_validate_list)
if len(self.link_to_validate_list) > 0 and _message_in_queue_count >= self.limit:
print("{}:links number is {}".format(threading.currentThread().name, len(self.link_to_validate_list)))
can_continue = None
for link_to_validate in self.link_to_validate_list:
print(link_to_validate)
self.proxy_to_use = random.choice(
self.proxy_manager.get_link_validate_proxy(self.link_to_validate_list))
print("proxy to use is {}".format(self.proxy_to_use))
can_continue = self.send_request(link_to_validate, _received_dict)
# remove the tested link from link list
self.link_to_validate_list.remove(link_to_validate)
if can_continue == RequestResult.BLOCKED:
print("cannot continue, blocked, then skip")
break
else:
if can_continue == RequestResult.BAD_GATEWAY:
time.sleep(30)
break
time.sleep(random.randint(2, 5))
print("can continue, continue")
if can_continue == RequestResult.BAD_GATEWAY or can_continue == RequestResult.PROXY_ERROR or can_continue == RequestResult.SUCCESS:
print("will requeue the message")
ch.basic_reject(delivery_tag=method.delivery_tag, requeue=True)
else:
print("will ack")
ch.basic_ack(delivery_tag=method.delivery_tag)
else:
print("empty list, no need to ack")
time.sleep(5)
ch.basic_reject(delivery_tag=method.delivery_tag, requeue=True)
self.channel.stop_consuming()
def filter_with_ip_country(self):
_link_list_to_click = []
for _link in self.link_to_validate_list:
if _link.ip_country == self.ip_country:
_link_list_to_click.append(_link)
self.link_to_validate_list = _link_list_to_click
def validate_links(cookiesPublisher, queue_name: str, link_list: list):
receiver = LinkValidatorWithProvidedList(cookiesPublisher=cookiesPublisher, link_list=link_list,
queue_to_listen=queue_name, ip_country="FR", limit=0)
print("{} set_up_connection".format(threading.currentThread().name))
receiver.set_up_connection()
receiver.listen_to_queue(receiver.on_message)
# default_segment_number 并发数,决定速度
# divided = 4,越小,一次处理得越多
def validate_all_links():
print("will get all links")
all_link_list = MONGO_STORE_MANAGER.get_links_to_validate()
# get the first 50 links
if len(all_link_list) == 0:
return
divided = 3
default_segment_number = 20
_first_25_percent_links = all_link_list[0:(int(len(all_link_list) / divided))]
_queue_name = MORNING_DATA_CACHE_BAK
if len(all_link_list) > divided * default_segment_number:
_segment_number = default_segment_number
else:
_first_25_percent_links = all_link_list
if len(_first_25_percent_links) > divided:
_segment_number = int(len(_first_25_percent_links) / divided)
else:
_segment_number = 1
_thread_list = []
for i in range(0, _segment_number):
logger.info("{}:{} links to validate".format(threading.currentThread().name, len(_first_25_percent_links)))
logger.info("segment is {}".format(i))
_cookiesPublisher = CookiesPublisher(queue_name=_queue_name)
_cookiesPublisher.set_up_connection()
_step = int(len(_first_25_percent_links) / _segment_number)
_sublist = _first_25_percent_links[i * _step:_step * (i + 1)]
_thread1 = threading.Thread(target=validate_links, args=(_cookiesPublisher, MORNING_DATA_CACHE_BAK, _sublist))
_thread_list.append(_thread1)
_thread1.start()
for _thread in _thread_list:
_thread.join()
if __name__ == '__main__':
# generate test data
while True:
print("call validate_all_links()")
validate_all_links()
delay = random.randint(10, 30)
current_time = datetime.now()
current_hour = current_time.hour
print("Current hour ", current_time.hour)
print("Current minute ", current_time.minute)
if current_hour > 18 or current_hour < 7:
delay = 3600
print("wait for {} seconds".format(delay))
time.sleep(delay)
+7
View File
@@ -36,6 +36,13 @@ class Sender:
result = ReserveResultPojo(type=status, phone=contact.phone, message=status.value, url=url, result = ReserveResultPojo(type=status, phone=contact.phone, message=status.value, url=url,
firstName=contact.first_name, lastName=contact.last_name, email=contact.mail, firstName=contact.first_name, lastName=contact.last_name, email=contact.mail,
passport=contact.passport, ccid=contact.ccid) passport=contact.passport, ccid=contact.ccid)
if "oxylabs" in self.proxy_to_use["http"]:
if "mob" in self.proxy_to_use["http"]:
result.proxy = "oxylabs_mob"
else:
result.proxy = "oxylabs_res"
else:
result.proxy = "data_impulse"
result.id = id result.id = id
result.store_type = store_type result.store_type = store_type
result.created_at = time.strftime("%H:%M:%S", time.localtime()) result.created_at = time.strftime("%H:%M:%S", time.localtime())