From 32eb83c5d6202ea2e8554ea4750576383f3d2ab1 Mon Sep 17 00:00:00 2001 From: PAN Lei Date: Wed, 13 Aug 2025 16:26:49 +0200 Subject: [PATCH] added jspl_encoder_wrapper.py --- captcha/jspl_encoder.js | 16 +++-- captcha/jspl_encoder_wrapper.py | 8 ++- models/jsdata_le_pojo.py | 73 ++++++++++++++++++++--- models/jsdata_pojo.py | 4 +- queue_message/appointmentrequestsender.py | 47 +++++++++------ workers/captcha_result_getter.py | 14 +++-- 6 files changed, 122 insertions(+), 40 deletions(-) diff --git a/captcha/jspl_encoder.js b/captcha/jspl_encoder.js index ce143a0..c36e2a7 100644 --- a/captcha/jspl_encoder.js +++ b/captcha/jspl_encoder.js @@ -247,16 +247,22 @@ function createJSPLGenerator(dateTimeStamp) { } // print process.argv -process.argv.forEach(function (val, index, array) { - console.log(index + ': ' + val); -}); +// process.argv.forEach(function (val, index, array) { +// console.log(index + ': ' + val); +// }); var fingerprint = undefined +var dateTimeStamp = undefined if (process.argv[2] != undefined) { fingerprint = JSON.parse(process.argv[2]) } +dateTimeStamp = JSON.parse(process.argv[3]) + // main +// if (dateTimeStamp == undefined) { +// dateTimeStamp = Math.floor(Date.now() / 1000) +// } // let dateTimeStamp = Math.floor(Date.now() / 1000) -let dateTimeStamp = 1754908260 +// let dateTimeStamp = 1754908260 // console.log(dateTimeStamp) // 使用示例 @@ -293,7 +299,7 @@ let jsplGenerator = createJSPLGenerator(dateTimeStamp); // "nm": false, // "geb": false, // "sqt": false, -// "pf": "MacIntel", +// "pf": "Linux armv81", // "hc": 8, // "br_oh": 745, // "br_ow": 393, diff --git a/captcha/jspl_encoder_wrapper.py b/captcha/jspl_encoder_wrapper.py index 508cebf..32a69fd 100644 --- a/captcha/jspl_encoder_wrapper.py +++ b/captcha/jspl_encoder_wrapper.py @@ -1,12 +1,14 @@ import json import os import subprocess +import time -def encrpte_to_jspl(fingerprint): +def encrpte_to_jspl(fingerprint_json): dir = os.path.dirname(__file__) # print(fingerprint_json) - p = subprocess.Popen(['node', dir + '/jspl_encoder.js', fingerprint_json], stdout=subprocess.PIPE) + _timestamp = int(time.time()) + p = subprocess.Popen(['node', dir + '/jspl_encoder.js', fingerprint_json, str(_timestamp)], stdout=subprocess.PIPE) encrypted_fingerprint = p.stdout.read() _result = encrypted_fingerprint.decode('utf-8') return _result @@ -44,7 +46,7 @@ if __name__ == '__main__': "nm": False, "geb": False, "sqt": False, - "pf": "MacIntel", + "pf": "Linux armv81", "hc": 8, "br_oh": 745, "br_ow": 393, diff --git a/models/jsdata_le_pojo.py b/models/jsdata_le_pojo.py index 7163d2b..26b8ed0 100644 --- a/models/jsdata_le_pojo.py +++ b/models/jsdata_le_pojo.py @@ -1,6 +1,8 @@ import json +import random import time +from captcha.jspl_encoder_wrapper import encrpte_to_jspl from models.jsdata_pojo import JsDataPojo @@ -21,9 +23,29 @@ from models.jsdata_pojo import 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, - vnd, pr, ts_mtp, dvm, m_s_c, m_m_c, m_c_c, m_cm_r, m_ms_r, emd: str): + vnd, pr, ts_mtp, dvm, m_s_c, m_m_c, m_c_c, m_cm_r, m_ms_r, emd: str, ccsB, + br_iw=513, br_ih=847, pf="Linux armv81", mob=True, + lgs=["fr-FR", "en-US", "zh-CN", "zh", "fr", "en"], + orf="debug", + bchk="3223aeb6721e0d0917e7928181193ac88dcd62fad5cadfbe7a2b2b473ecf58ee70f098dbdb1a1832e8dc6528387b0745971dbcd82384261e9a4e3f", + nt_tcp=0, nt_dns=0, nt_rd=0, nt_irt=-3.400000002235174, nt_rt=0, nt_tls=3.400000002235174, + nt_ttf=3.099999997764826, nt_swt=3.400000002235174, nt_csd=0, nt_nhp="", nt_rdc=0, nt_it="navigation", + nt_prs=0, nt_esc=-3.400000002235174, nt_ttrd=-2, nt_le=0, nt_dcle=0.10000000149011612, + nt_di=74.80000000074506, nt_dc=0, ccsT="""Error +at S (https://d.digital.hermes/tags.js:173:22) +at Un.C (https://d.digital.hermes/tags.js:1252:41 +at nrWrapper (https://www.hermes.com/fr/fr/category/femme/Sacs%20et%20pochettes%20pour%20Femme%20_%20Herme%CC%80s%20France.html:7:13468)""", + ccsH="1050544242", + ccsV=",993b46baf0942a343b7e6b02fa3f8eef64727f077d3b0055af56e6994dcaf046", muev=False, prso=True, + nhi=",64,true,Nexus 5,Android,6.0,138.0.7204.184,false", k_lyts=48, + k_lytk="kg20va`l§'w8mh.71pdfoqcn[zy365x/\,-4bt9siu=j;r]e", tzp="Europe/Paris", isf2=False): 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, emd=emd) + vnd, pr, ts_mtp, dvm, emd=emd, ccsB=ccsB, br_iw=br_iw, br_ih=br_ih, pf=pf, mob=mob, lgs=lgs, + orf=orf, bchk=bchk, nt_tcp=nt_tcp, nt_dns=nt_dns, nt_rd=nt_rd, nt_irt=nt_irt, nt_rt=nt_rt, + nt_tls=nt_tls, nt_ttf=nt_ttf, nt_swt=nt_swt, nt_csd=nt_csd, nt_nhp=nt_nhp, nt_rdc=nt_rdc, + nt_it=nt_it, nt_prs=nt_prs, nt_esc=nt_esc, nt_ttrd=nt_ttrd, nt_le=nt_le, nt_dcle=nt_dcle, + nt_di=nt_di, nt_dc=nt_dc, ccsT=ccsT, ccsH=ccsH, ccsV=ccsV, muev=muev, prso=prso, nhi=nhi, + k_lyts=k_lyts, k_lytk=k_lytk, tzp=tzp, isf2=isf2) self.jset = int(time.time()) # override from 4_34_2 self.emd = emd self.dcok = ".hermes.com" @@ -50,14 +72,32 @@ class JsDataLeTypePojo(JsDataPojo): self.m_c_c = m_c_c self.m_cm_r = m_cm_r self.m_ms_r = m_ms_r - self.cfpfe = "ZnVuY3Rpb24oKXt2YXIgbj10LGk9ZG9jdW1lbnRbJ1x4NzFceDc1XHg2NVx4NzJceDc5XHg1M1x4NjVceDZjXHg2NVx4NjNceDc0XHg2Zlx4NzInXShuKDQ2MSkpO2lmKGkpeyFmdW5jdGlvbiB0KCl7dHJ5e3ZhciBuPWlbJ1x4NzNceDY4XHg2MVx4NjRceDZmXHg3" # 4.40.0 - self.stcfp = "Ly9kLmRpZ2l0YWwuaGVybWVzL3RhZ3MuanM6Mjo4ODYzNSkKICAgIGF0IHQuZXhwb3J0cy5kZF9hZCAoaHR0cHM6Ly9kLmRpZ2l0YWwuaGVybWVzL3RhZ3MuanM6MjoxMDc3OTYpCiAgICBhdCBodHRwczovL2QuZGlnaXRhbC5oZXJtZXMvdGFncy5qczoyOjYzNzkw" # 4.40.0 + self.cfpfe = "KHIsbixvLGEpPT57aWYoZVtyXSllW3JdLnB1c2gobik7ZWxzZXt2YXIgcyxjO2lmKHZvaWQgMCE9PW8pZm9yKHZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKSxkPTA7ZDx1Lmxlbmd0aDtkKyspe3ZhciBsPXVbZF07aWYobC5nZXRB" # 5.1.5 + self.stcfp = "MjYxMzEpCmF0IGEgKGZpbGU6Ly8vVXNlcnMvbHBhbi9Eb2N1bWVudHMvd29ya3NwYWNlL3RhZ3NyZWNoZXJjaGUvNV8xXzUvU2FjcyUyMGV0JTIwcG9jaGV0dGVzJTIwcG91ciUyMEZlbW1lJTIwXyUyMEhlcm1lJUNDJTgwcyUyMEZyYW5jZS5odG1sOjc6Mjk4MjQp" # 5.1.5 -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":"Google Inc. (ARM)","glrd":"ANGLE (ARM, Mali-G57 MC2, OpenGL ES 3.2)","hc":8,"br_oh":745,"br_ow":393, +"br_h":745,"br_w":393,"rs_h":876,"rs_w":393,"rs_cd":24,"ars_h":876,"ars_w":393,"plg":0,"eva":33, +"vnd":"Google Inc.","plu":[],"ua":"Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.36","dvm":4,"acw":"probably", +"pr":2.75,"ts_mtp":5,"tz":-120,"emd":"k:ai,vi,ao", +"cookiesStr":"rskxRunCookie=0;datadome=GIfiRxEgyr5dwsnV0NoR9WPO3oA0CkMVLsqdvZLmuxHi81JFRbG7LaWKiAkSQRJTBkv3qBkGlCOC3uR00yZ9XSoCQFyE~1FcumXV8W_bgVPxfNzs6uQcZM8Ec61Q72UT;correlation_id=xlvzlpuwkh6syuqdfze05q7n41qle27qop4yjjvuifzapdo4npjlbi43uwbgle2m;ECOM_SESS=f2c2aihm0ocesmvx3dcs06ysh6;rCookie=0f3nn11uqq28ci5bqnveg5wme4bsr6e;lastRskxRun=1754748244881;x-xsrf-token=7ca984dc-6d35-4720-b77b-465392521d1b;__cf_bm=Szm2hZl9.PTO_DQF5DihrAOTq.dSmSrkKHsTqVenUxo-1754748237-1.0.1.1-gfLAB1wWYyHUb_scXGpXzAk6IkrkhvdNalhhsVhujY7xeFm02lwFKGUiTrBknONdwmvV3EKilTfiFORmJUDrjj3st4hoNdnrk0MT0SVed5w;OptanonConsent=isGpcEnabled=0&datestamp=Sat+Aug+09+2025+16%3A04%3A04+GMT%2B0200+(heure+d%E2%80%99%C3%A9t%C3%A9+d%E2%80%99Europe+centrale)&version=6.32.0&isIABGlobal=false&hosts=&landingPath=https%3A%2F%2Fwww.hermes.com%2Ffr%2Ffr%2Fproduct%2Fsac-p-tit-arcon-H085871CKAO%2F&groups=C0001%3A1%2CC0002%3A0%2CC0003%3A0%2CC0004%3A0;","model":"22041219PG", +"lgs":"[fr-FR,fr,en-US,en]", +"bchk":"3223aeb6721e0d0917e792818d193ac88dcd62fad5cad7bf7a2b2b473ecf58ee60f018dbdb1a5832e8dc6528387b0745971dbcd82387261e9a4e3f", +"nt_tcp":0,"nt_dns":0,"nt_rd":0,"nt_irt":-29.600000008940697,"nt_rt":1129,"nt_tls":6.700000002980232,"nt_ttf":1166.7000000029802,"nt_swt":22.900000005960464, +"nt_csd":411060,"nt_nhp":"h2","nt_rdc":0,"nt_it":"navigation","nt_prs":6.700000002980232,"nt_esc":0,"nt_ttrd":null,"nt_le":3.0999999940395355,"nt_dcle":141.79999999701977, +"nt_di":1415.2000000029802,"nt_dc":2862.6000000089407,"ccsB":"tags.js:1252:41 at nrWrapper (sac-p-tit-arcon-H085871CKAO.html:7:13468)", +"muev":false,"pro_t":false,"nhi":",,true,22041219PG,Android,14.0.0,128.0.6613.146,false","k_lyts":0,"k_lytk":"","serial":"fuljaueqguugf6pn"}""" if __name__ == '__main__': test_data_dict = json.loads(test_data_json) + m_s_c = random.randint(0, 3) + m_c_c = random.randint(3, 5) # click count + m_m_c = random.randint(3, 5) # move count + m_cm_r = m_c_c / m_m_c + 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 le_js_data = JsDataLeTypePojo(glrd=test_data_dict['glrd'], glvd=test_data_dict['glvd'], hc=test_data_dict['hc'], ua=test_data_dict['ua'], br_oh=test_data_dict['br_oh'], br_ow=test_data_dict['br_ow'], ars_h=test_data_dict['ars_h'], ars_w=test_data_dict['ars_w'], pr=test_data_dict['pr'], @@ -65,6 +105,23 @@ if __name__ == '__main__': 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'], - 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, emd=test_data_dict['emd']) + rs_w=test_data_dict['rs_w'], rs_cd=test_data_dict['rs_cd'], + 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, + emd=test_data_dict['emd'], + bchk=test_data_dict['bchk'], + ccsB=test_data_dict['ccsB'], + nt_tcp=test_data_dict['nt_tcp'], + nt_dns=test_data_dict['nt_dns'], + nt_rd=test_data_dict['nt_rd'], nt_irt=test_data_dict['nt_irt'], + nt_rt=test_data_dict['nt_rt'], + nt_tls=test_data_dict['nt_tls'], nt_ttf=test_data_dict['nt_ttf'], + nt_swt=test_data_dict['nt_swt'], + nt_csd=test_data_dict['nt_csd'], nt_nhp=test_data_dict['nt_nhp'], + nt_rdc=test_data_dict['nt_rdc'], + nt_it=test_data_dict['nt_it'], nt_prs=test_data_dict['nt_prs'], + nt_esc=test_data_dict['nt_esc'], + nt_ttrd=test_data_dict['nt_ttrd'], nt_le=test_data_dict['nt_le'], + nt_dcle=test_data_dict['nt_dcle'], nt_di=test_data_dict['nt_di'], + nt_dc=test_data_dict['nt_dc']) print(le_js_data.to_url_encoded_json()) + print(encrpte_to_jspl(le_js_data.to_url_encoded_json())) diff --git a/models/jsdata_pojo.py b/models/jsdata_pojo.py index 5939947..5327db7 100644 --- a/models/jsdata_pojo.py +++ b/models/jsdata_pojo.py @@ -153,7 +153,7 @@ class 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, vnd, pr, ts_mtp, dvm, emd, ccsB, - br_iw=513, br_ih=847, pf="MacIntel", mob=True, + br_iw=513, br_ih=847, pf="Linux armv81", mob=True, lgs=["fr-FR", "en-US", "zh-CN", "zh", "fr", "en"], orf="debug", bchk="3223aeb6721e0d0917e7928181193ac88dcd62fad5cadfbe7a2b2b473ecf58ee70f098dbdb1a1832e8dc6528387b0745971dbcd82384261e9a4e3f", @@ -423,7 +423,7 @@ if __name__ == '__main__': nt_csd=test_data_dict['nt_csd'], nt_nhp=test_data_dict['nt_nhp'], nt_rdc=test_data_dict['nt_rdc'], nt_it=test_data_dict['nt_it'], nt_prs=test_data_dict['nt_prs'], nt_esc=test_data_dict['nt_esc'], nt_ttrd=test_data_dict['nt_ttrd'], nt_le=test_data_dict['nt_le'], - nt_dcle=test_data_dict['nt_dcle'], nt_di=test_data_dict['nt_di'], nt_dc=test_data_dict['nt_dc'], ) + nt_dcle=test_data_dict['nt_dcle'], nt_di=test_data_dict['nt_di'], nt_dc=test_data_dict['nt_dc'] ) print(js.to_url_encoded_json()) # text_file = open("jsdata.txt", "w") # # write string to file diff --git a/queue_message/appointmentrequestsender.py b/queue_message/appointmentrequestsender.py index 9698a74..649cb24 100644 --- a/queue_message/appointmentrequestsender.py +++ b/queue_message/appointmentrequestsender.py @@ -131,9 +131,18 @@ class AppointmentRequestSender(threading.Thread): ars_h=_received_dict['ars_h'], ars_w=_received_dict['ars_w'], pr=_received_dict['pr'], plg=_received_dict['plg'], br_h=_received_dict['br_h'], br_w=_received_dict['br_w'], plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'], - ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], - rs_h=_received_dict['rs_h'], - rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], emd=_received_dict['emd']) + ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], rs_h=_received_dict['rs_h'], + rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], emd=_received_dict['emd'], + bchk=_received_dict['bchk'], + ccsB=_received_dict['ccsB'], + nt_tcp=_received_dict['nt_tcp'], + nt_dns=_received_dict['nt_dns'], + nt_rd=_received_dict['nt_rd'], nt_irt=_received_dict['nt_irt'], nt_rt=_received_dict['nt_rt'], + nt_tls=_received_dict['nt_tls'], nt_ttf=_received_dict['nt_ttf'], nt_swt=_received_dict['nt_swt'], + nt_csd=_received_dict['nt_csd'], nt_nhp=_received_dict['nt_nhp'], nt_rdc=_received_dict['nt_rdc'], + nt_it=_received_dict['nt_it'], nt_prs=_received_dict['nt_prs'], nt_esc=_received_dict['nt_esc'], + nt_ttrd=_received_dict['nt_ttrd'], nt_le=_received_dict['nt_le'], + nt_dcle=_received_dict['nt_dcle'], nt_di=_received_dict['nt_di'], nt_dc=_received_dict['nt_dc'] ) _received_cookies = _received_dict["cookiesStr"] # remove already sent contacts self.contact_list = filter_contacts(self.contact_list, self.already_tried_contact_list) @@ -178,21 +187,25 @@ class AppointmentRequestSender(threading.Thread): else: m_ms_r = m_m_c / m_s_c - js_le_data = JsDataLeTypePojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'], - hc=_received_dict['hc'], - ua=_received_dict['ua'], br_oh=_received_dict['br_oh'], - br_ow=_received_dict['br_ow'], - ars_h=_received_dict['ars_h'], ars_w=_received_dict['ars_w'], - pr=_received_dict['pr'], - plg=_received_dict['plg'], br_h=_received_dict['br_h'], - br_w=_received_dict['br_w'], - plu=_received_dict['plu'], vnd=_received_dict['vnd'], - dvm=_received_dict['dvm'], - ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], - rs_h=_received_dict['rs_h'], - rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], + js_le_data = JsDataLeTypePojo(glrd=_received_dict['glrd'], glvd=_received_dict['glvd'], hc=_received_dict['hc'], + ua=_received_dict['ua'], br_oh=_received_dict['br_oh'], br_ow=_received_dict['br_ow'], + ars_h=_received_dict['ars_h'], ars_w=_received_dict['ars_w'], pr=_received_dict['pr'], + plg=_received_dict['plg'], br_h=_received_dict['br_h'], br_w=_received_dict['br_w'], + plu=_received_dict['plu'], vnd=_received_dict['vnd'], dvm=_received_dict['dvm'], + ts_mtp=_received_dict['ts_mtp'], eva=_received_dict['eva'], rs_h=_received_dict['rs_h'], + rs_w=_received_dict['rs_w'], rs_cd=_received_dict['rs_cd'], emd=_received_dict['emd'], + bchk=_received_dict['bchk'], + ccsB=_received_dict['ccsB'], + nt_tcp=_received_dict['nt_tcp'], + nt_dns=_received_dict['nt_dns'], + nt_rd=_received_dict['nt_rd'], nt_irt=_received_dict['nt_irt'], nt_rt=_received_dict['nt_rt'], + nt_tls=_received_dict['nt_tls'], nt_ttf=_received_dict['nt_ttf'], nt_swt=_received_dict['nt_swt'], + nt_csd=_received_dict['nt_csd'], nt_nhp=_received_dict['nt_nhp'], nt_rdc=_received_dict['nt_rdc'], + nt_it=_received_dict['nt_it'], nt_prs=_received_dict['nt_prs'], nt_esc=_received_dict['nt_esc'], + nt_ttrd=_received_dict['nt_ttrd'], nt_le=_received_dict['nt_le'], + nt_dcle=_received_dict['nt_dcle'], nt_di=_received_dict['nt_di'], nt_dc=_received_dict['nt_dc'], 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, emd=_received_dict['emd']) + m_cm_r=m_cm_r, m_ms_r=m_ms_r) time.sleep(random.randint(1, 4)) _new_le_cookies = captchaResultGetter.get_le_valid_cookie(proxy_to_use=_proxy_to_use, js_le_type_data=js_le_data, diff --git a/workers/captcha_result_getter.py b/workers/captcha_result_getter.py index 6ce75b6..893d25a 100644 --- a/workers/captcha_result_getter.py +++ b/workers/captcha_result_getter.py @@ -4,6 +4,8 @@ import re from typing import Union # import requests from curl_cffi import requests + +from captcha.jspl_encoder_wrapper import encrpte_to_jspl from models.jsdata_le_pojo import JsDataLeTypePojo from models.jsdata_pojo import JsDataPojo from models.result_pojo import RequestResult @@ -104,9 +106,10 @@ class CaptchaResultGetter: return None def get_ch_raw_data_from_js_data(self, js_data: JsDataPojo, old_valid_cookie) -> str: - _tag_version = "4.35.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( - js_data.to_url_encoded_json(), old_valid_cookie, _tag_version) + _tag_version = "5.1.5" + _jspl = encrpte_to_jspl(js_data.to_url_encoded_json()) + _raw_data = "jspl={}&eventCounters=%5B%5D&jsType=ch&cid={}&ddk=789361B674144528D0B7EE76B35826&Referer=https%253A%252F%252Frendezvousparis.hermes.com%252Fclient%252Fregister&request=%252Fclient%252Fregister&responsePage=origin&ddv={}".format( + _jspl, old_valid_cookie, _tag_version) print("raw ch data is " + _raw_data) return _raw_data @@ -173,8 +176,9 @@ class CaptchaResultGetter: # _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) _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.35.0".format( - js_le_type_data.to_url_encoded_json(), mousemove_count, click_count, scroll_count, touch_count, touch_count, + _jspl = encrpte_to_jspl(js_le_type_data.to_url_encoded_json()) + _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=5.1.5".format( + _jspl, mousemove_count, click_count, scroll_count, touch_count, touch_count, touch_move, key_count, key_count, _cid)