2023-06-30, change version code
							parent
							
								
									94f937c000
								
							
						
					
					
						commit
						92af079920
					
				|  | @ -53,7 +53,7 @@ import webbrowser | |||
| import argparse | ||||
| import itertools | ||||
| 
 | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.29) ver3" | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.30)" | ||||
| 
 | ||||
| CONST_MAXBOT_CONFIG_FILE = "settings.json" | ||||
| CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt" | ||||
|  | @ -1247,7 +1247,7 @@ def guess_answer_list_from_hint(CONST_EXAMPLE_SYMBOL, CONST_INPUT_SYMBOL, captch | |||
|                             return_list[idx]=return_list[idx].replace(my_answer_delimitor,'') | ||||
|                 if show_debug_message: | ||||
|                     print("cleaned return_list:" , return_list) | ||||
|          | ||||
| 
 | ||||
|         if return_list is None: | ||||
|             return_list = [] | ||||
| 
 | ||||
|  | @ -2109,7 +2109,7 @@ def get_ticketmaster_target_area(config_dict, area_keyword_item, zone_info): | |||
|             row_text = "" | ||||
|             if row_is_enabled: | ||||
|                 try: | ||||
|                     row_text = zone_info[row]["groupName"]  | ||||
|                     row_text = zone_info[row]["groupName"] | ||||
|                     row_text += " " + zone_info[row]["description"] | ||||
|                     if "price" in zone_info[row]: | ||||
|                         row_text += " " + zone_info[row]["price"][0]["ticketPrice"] | ||||
|  | @ -2455,7 +2455,7 @@ def guess_tixcraft_question(driver, question_text): | |||
| 
 | ||||
|     if show_debug_message: | ||||
|         print("formated_html_text:", formated_html_text) | ||||
|      | ||||
| 
 | ||||
|     # start to guess answer | ||||
|     inferred_answer_string = None | ||||
| 
 | ||||
|  | @ -2503,7 +2503,7 @@ def fill_common_verify_form(driver, config_dict, inferred_answer_string, fail_li | |||
|         print("input textbox count:", form_input_count) | ||||
| 
 | ||||
|     is_do_press_next_button = False | ||||
|      | ||||
| 
 | ||||
|     form_input = None | ||||
|     if form_input_count > 0: | ||||
|         form_input = form_input_list[0] | ||||
|  | @ -2538,7 +2538,7 @@ def fill_common_verify_form(driver, config_dict, inferred_answer_string, fail_li | |||
|                             is_button_clicked = True | ||||
|                         if len(next_step_button_css) > 0: | ||||
|                             is_button_clicked = force_press_button(driver, By.CSS_SELECTOR, next_step_button_css) | ||||
|                      | ||||
| 
 | ||||
|                     if is_button_clicked: | ||||
|                         is_answer_sent = True | ||||
|                         fail_list.append(inferred_answer_string) | ||||
|  | @ -2748,32 +2748,40 @@ def tixcraft_get_ocr_answer(driver, ocr, ocr_captcha_image_source, Captcha_Brows | |||
| 
 | ||||
|         if ocr_captcha_image_source == CONST_OCR_CAPTCH_IMAGE_SOURCE_CANVAS: | ||||
|             image_id = 'TicketForm_verifyCode-image' | ||||
|             if 'indievox.com' in domain_name: | ||||
|                 #image_id = 'TicketForm_verifyCode-image' | ||||
|                 pass | ||||
|             image_element = None | ||||
|             try: | ||||
|                 form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                     var canvas = document.createElement('canvas'); | ||||
|                     var context = canvas.getContext('2d'); | ||||
|                     var img = document.getElementById('%s'); | ||||
|                     if(img!=null) { | ||||
|                     canvas.height = img.naturalHeight; | ||||
|                     canvas.width = img.naturalWidth; | ||||
|                     context.drawImage(img, 0, 0); | ||||
|                     callback = arguments[arguments.length - 1]; | ||||
|                     callback(canvas.toDataURL()); } | ||||
|                     """ % (image_id)) | ||||
|                 if not form_verifyCode_base64 is None: | ||||
|                     img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
| 
 | ||||
|                 if img_base64 is None: | ||||
|                     if not Captcha_Browser is None: | ||||
|                         print("canvas get image fail, use plan_b: NonBrowser") | ||||
|                         img_base64 = base64.b64decode(Captcha_Browser.Request_Captcha()) | ||||
|                 my_css_selector = "#" + image_id | ||||
|                 image_element = driver.find_elements(By.CSS_SELECTOR, my_css_selector) | ||||
|             except Exception as exc: | ||||
|                 if show_debug_message: | ||||
|                     print("canvas exception:", str(exc)) | ||||
|                 pass | ||||
| 
 | ||||
|             if not image_element is None: | ||||
|                 if 'indievox.com' in domain_name: | ||||
|                     #image_id = 'TicketForm_verifyCode-image' | ||||
|                     pass | ||||
|                 try: | ||||
|                     form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                         var canvas = document.createElement('canvas'); | ||||
|                         var context = canvas.getContext('2d'); | ||||
|                         var img = document.getElementById('%s'); | ||||
|                         if(img!=null) { | ||||
|                         canvas.height = img.naturalHeight; | ||||
|                         canvas.width = img.naturalWidth; | ||||
|                         context.drawImage(img, 0, 0); | ||||
|                         callback = arguments[arguments.length - 1]; | ||||
|                         callback(canvas.toDataURL()); } | ||||
|                         """ % (image_id)) | ||||
|                     if not form_verifyCode_base64 is None: | ||||
|                         img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
| 
 | ||||
|                     if img_base64 is None: | ||||
|                         if not Captcha_Browser is None: | ||||
|                             print("canvas get image fail, use plan_b: NonBrowser") | ||||
|                             img_base64 = base64.b64decode(Captcha_Browser.Request_Captcha()) | ||||
|                 except Exception as exc: | ||||
|                     if show_debug_message: | ||||
|                         print("canvas exception:", str(exc)) | ||||
|                     pass | ||||
|         if not img_base64 is None: | ||||
|             try: | ||||
|                 ocr_answer = ocr.classification(img_base64) | ||||
|  | @ -2986,7 +2994,7 @@ def get_tixcraft_ticket_select(driver, config_dict): | |||
|             form_select = None | ||||
|             pass | ||||
| 
 | ||||
|     return form_select  | ||||
|     return form_select | ||||
| 
 | ||||
| def tixcraft_ticket_main(driver, config_dict, ocr, Captcha_Browser, domain_name): | ||||
|     tixcraft_ticket_main_agree(driver, config_dict) | ||||
|  | @ -6792,7 +6800,7 @@ def ticketmaster_parse_zone_info(driver, config_dict): | |||
|                 pass | ||||
| 
 | ||||
|         if len(zone_string) > 0: | ||||
|             zone_info = {}         | ||||
|             zone_info = {} | ||||
|             try: | ||||
|                 zone_info = json.loads(zone_string) | ||||
|                 if show_debug_message: | ||||
|  | @ -7756,24 +7764,32 @@ def ibon_auto_ocr(driver, config_dict, ocr, away_from_keyboard_enable, previous_ | |||
|                 img_base64 = base64.b64decode(Captcha_Browser.Request_Captcha()) | ||||
|         if ocr_captcha_image_source == CONST_OCR_CAPTCH_IMAGE_SOURCE_CANVAS: | ||||
|             image_id = 'chk_pic' | ||||
|             image_element = None | ||||
|             try: | ||||
|                 form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                     var canvas = document.createElement('canvas'); | ||||
|                     var context = canvas.getContext('2d'); | ||||
|                     var img = document.getElementById('%s'); | ||||
|                     if(img!=null) { | ||||
|                     canvas.height = img.naturalHeight; | ||||
|                     canvas.width = img.naturalWidth; | ||||
|                     context.drawImage(img, 0, 0); | ||||
|                     callback = arguments[arguments.length - 1]; | ||||
|                     callback(canvas.toDataURL()); } | ||||
|                     """ % (image_id)) | ||||
|                 if not form_verifyCode_base64 is None: | ||||
|                     img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|                 my_css_selector = "#" + image_id | ||||
|                 image_element = driver.find_elements(By.CSS_SELECTOR, my_css_selector) | ||||
|             except Exception as exc: | ||||
|                 if show_debug_message: | ||||
|                     print("canvas exception:", str(exc)) | ||||
|                 pass | ||||
| 
 | ||||
|             if not image_element is None: | ||||
|                 try: | ||||
|                     form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                         var canvas = document.createElement('canvas'); | ||||
|                         var context = canvas.getContext('2d'); | ||||
|                         var img = document.getElementById('%s'); | ||||
|                         if(img!=null) { | ||||
|                         canvas.height = img.naturalHeight; | ||||
|                         canvas.width = img.naturalWidth; | ||||
|                         context.drawImage(img, 0, 0); | ||||
|                         callback = arguments[arguments.length - 1]; | ||||
|                         callback(canvas.toDataURL()); } | ||||
|                         """ % (image_id)) | ||||
|                     if not form_verifyCode_base64 is None: | ||||
|                         img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|                 except Exception as exc: | ||||
|                     if show_debug_message: | ||||
|                         print("canvas exception:", str(exc)) | ||||
|                     pass | ||||
|         if not img_base64 is None: | ||||
|             try: | ||||
|                 ocr_answer = ocr.classification(img_base64) | ||||
|  | @ -8341,7 +8357,7 @@ def hkticketing_date_password_input(driver, config_dict, fail_list): | |||
|         el_password_input = driver.find_element(By.CSS_SELECTOR, my_css_selector) | ||||
|     except Exception as exc: | ||||
|         pass | ||||
|      | ||||
| 
 | ||||
|     inputed_value = "" | ||||
|     if el_password_input is not None: | ||||
|         try: | ||||
|  | @ -8420,7 +8436,7 @@ def hkticketing_date_auto_select(driver, config_dict, fail_list): | |||
|         print("is_page_ready:", is_page_ready) | ||||
|         print("formated_area_list:", formated_area_list) | ||||
|         print("auto_reload_coming_soon_page_enable:", auto_reload_coming_soon_page_enable) | ||||
|      | ||||
| 
 | ||||
|     if auto_reload_coming_soon_page_enable: | ||||
|         # auto refresh for date list page. | ||||
|         is_need_refresh = True | ||||
|  | @ -8882,7 +8898,7 @@ def hkticketing_url_redirect(driver, url, config_dict): | |||
|         if redirect_url in url: | ||||
|             # for hkticketing. | ||||
|             entry_url = 'http://entry-hotshow.hkticketing.com/' | ||||
|              | ||||
| 
 | ||||
|             # for macau | ||||
|             # for ticketek.com | ||||
|             for target_site in redirect_to_home_list: | ||||
|  | @ -9748,24 +9764,32 @@ def kham_auto_ocr(driver, config_dict, ocr, away_from_keyboard_enable, previous_ | |||
|                 img_base64 = base64.b64decode(Captcha_Browser.Request_Captcha()) | ||||
|         if ocr_captcha_image_source == CONST_OCR_CAPTCH_IMAGE_SOURCE_CANVAS: | ||||
|             image_id = 'chk_pic' | ||||
|             image_element = None | ||||
|             try: | ||||
|                 form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                     var canvas = document.createElement('canvas'); | ||||
|                     var context = canvas.getContext('2d'); | ||||
|                     var img = document.getElementById('%s'); | ||||
|                     if(img!=null) { | ||||
|                     canvas.height = img.naturalHeight; | ||||
|                     canvas.width = img.naturalWidth; | ||||
|                     context.drawImage(img, 0, 0); | ||||
|                     callback = arguments[arguments.length - 1]; | ||||
|                     callback(canvas.toDataURL()); } | ||||
|                     """ % (image_id)) | ||||
|                 if not form_verifyCode_base64 is None: | ||||
|                     img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|                 my_css_selector = "#" + image_id | ||||
|                 image_element = driver.find_elements(By.CSS_SELECTOR, my_css_selector) | ||||
|             except Exception as exc: | ||||
|                 if show_debug_message: | ||||
|                     print("canvas exception:", str(exc)) | ||||
|                 pass | ||||
| 
 | ||||
|             if not image_element is None: | ||||
|                 try: | ||||
|                     form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                         var canvas = document.createElement('canvas'); | ||||
|                         var context = canvas.getContext('2d'); | ||||
|                         var img = document.getElementById('%s'); | ||||
|                         if(img!=null) { | ||||
|                         canvas.height = img.naturalHeight; | ||||
|                         canvas.width = img.naturalWidth; | ||||
|                         context.drawImage(img, 0, 0); | ||||
|                         callback = arguments[arguments.length - 1]; | ||||
|                         callback(canvas.toDataURL()); } | ||||
|                         """ % (image_id)) | ||||
|                     if not form_verifyCode_base64 is None: | ||||
|                         img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|                 except Exception as exc: | ||||
|                     if show_debug_message: | ||||
|                         print("canvas exception:", str(exc)) | ||||
|                     pass | ||||
|         if not img_base64 is None: | ||||
|             try: | ||||
|                 ocr_answer = ocr.classification(img_base64) | ||||
|  | @ -10221,7 +10245,7 @@ def ticketplus_assign_ticket_number(target_area, config_dict): | |||
|         show_debug_message = True | ||||
| 
 | ||||
|     is_price_assign_by_bot = False | ||||
|      | ||||
| 
 | ||||
|     ticket_number_div = None | ||||
|     try: | ||||
|         my_css_selector = 'div.count-button > div' | ||||
|  | @ -10526,7 +10550,7 @@ def ticketplus_order(driver, config_dict, ocr, Captcha_Browser): | |||
|             print("find next_step_button (style_2) fail") | ||||
|             #print(exc) | ||||
|             pass | ||||
|          | ||||
| 
 | ||||
|         # for style_1 | ||||
|         try: | ||||
|             my_css_selector = "div.order-footer > div.container > div.row > div > div.row > div > button.nextBtn" | ||||
|  | @ -10627,8 +10651,16 @@ def ticketplus_auto_ocr(driver, config_dict, ocr, previous_answer, Captcha_Brows | |||
|                 img_base64 = base64.b64decode(Captcha_Browser.Request_Captcha()) | ||||
|         if ocr_captcha_image_source == CONST_OCR_CAPTCH_IMAGE_SOURCE_CANVAS: | ||||
|             image_id = 'span.captcha-img' | ||||
|             image_element = None | ||||
|             try: | ||||
|                 form_verifyCode_base64 = driver.execute_async_script(""" | ||||
|                 my_css_selector = image_id | ||||
|                 image_element = driver.find_elements(By.CSS_SELECTOR, my_css_selector) | ||||
|             except Exception as exc: | ||||
|                 pass | ||||
| 
 | ||||
|             if not image_element is None: | ||||
|                 try: | ||||
|                     form_verifyCode_base64 = driver.execute_async_script(""" | ||||
| function svgToPng(svg, callback) { | ||||
|   const url = getSvgUrl(svg); | ||||
|   svgUrlToPng(url, (imgData) => { | ||||
|  | @ -10664,13 +10696,13 @@ svgToPng(svg, (imgData) => { | |||
|   callback = arguments[arguments.length - 1]; | ||||
|   callback(imgData); | ||||
| }); } | ||||
|                     """ % (image_id)) | ||||
|                 if not form_verifyCode_base64 is None: | ||||
|                     img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|             except Exception as exc: | ||||
|                 if show_debug_message: | ||||
|                     print("canvas exception:", str(exc)) | ||||
|                 pass | ||||
|                         """ % (image_id)) | ||||
|                     if not form_verifyCode_base64 is None: | ||||
|                         img_base64 = base64.b64decode(form_verifyCode_base64.split(',')[1]) | ||||
|                 except Exception as exc: | ||||
|                     if show_debug_message: | ||||
|                         print("canvas exception:", str(exc)) | ||||
|                     pass | ||||
|         if not img_base64 is None: | ||||
|             try: | ||||
|                 ocr_answer = ocr.classification(img_base64) | ||||
|  | @ -10922,7 +10954,7 @@ def ticketplus_account_auto_fill(driver, config_dict): | |||
|                                     el_pass.click() | ||||
|                                     el_pass.send_keys(Keys.ENTER) | ||||
|                                     is_password_sent = True | ||||
|                          | ||||
| 
 | ||||
|                         time.sleep(0.2) | ||||
|             except Exception as exc: | ||||
|                 pass | ||||
|  | @ -10938,7 +10970,7 @@ def ticketplus_main(driver, url, config_dict, ocr, Captcha_Browser): | |||
|                 if not Captcha_Browser is None: | ||||
|                     Captcha_Browser.Set_cookies(driver.get_cookies()) | ||||
|                     Captcha_Browser.Set_Domain(domain_name) | ||||
|              | ||||
| 
 | ||||
|             ticketplus_account_auto_fill(driver, config_dict) | ||||
|             break | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ import base64 | |||
| import threading | ||||
| import subprocess | ||||
| 
 | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.29)" | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.30)" | ||||
| 
 | ||||
| CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json" | ||||
| CONST_MAXBOT_CONFIG_FILE = "settings.json" | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ ssl._create_default_https_context = ssl._create_unverified_context | |||
| 
 | ||||
| import socket | ||||
| 
 | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.29) ver3" | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.30)" | ||||
| 
 | ||||
| CONST_MAXBOT_CONFIG_FILE = "settings.json" | ||||
| CONST_MAXBOT_LAST_URL_FILE = "MAXBOT_LAST_URL.txt" | ||||
|  | @ -495,9 +495,9 @@ def load_translate(): | |||
|     return translate | ||||
| 
 | ||||
| def get_ip_address(): | ||||
|     ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2]  | ||||
|         if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)),  | ||||
|         s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET,  | ||||
|     ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] | ||||
|         if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)), | ||||
|         s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, | ||||
|         socket.SOCK_DGRAM)]][0][1]]) if l][0][0] | ||||
|     return ip | ||||
| 
 | ||||
|  |  | |||
|  | @ -28,17 +28,17 @@ import asyncio | |||
| import tornado | ||||
| from tornado.web import Application | ||||
| 
 | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.29)" | ||||
|      | ||||
| CONST_APP_VERSION = "MaxBot (2023.6.30)" | ||||
| 
 | ||||
| CONST_MAXBOT_QUESTION_FILE = "MAXBOT_QUESTION.txt" | ||||
| 
 | ||||
| CONST_SERVER_PORT_DEFAULT = 8888 | ||||
| CONST_SERVER_PORT = CONST_SERVER_PORT_DEFAULT | ||||
| 
 | ||||
| def get_ip_address(): | ||||
|     ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2]  | ||||
|         if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)),  | ||||
|         s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET,  | ||||
|     ip = [l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] | ||||
|         if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 53)), | ||||
|         s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, | ||||
|         socket.SOCK_DGRAM)]][0][1]]) if l][0][0] | ||||
|     return ip | ||||
| 
 | ||||
|  | @ -220,7 +220,7 @@ def preview_question_text_file(): | |||
|         question_text = "" | ||||
|         with open(CONST_MAXBOT_QUESTION_FILE, "r") as text_file: | ||||
|             question_text = text_file.readline() | ||||
|          | ||||
| 
 | ||||
|         global txt_question | ||||
|         try: | ||||
|             displayed_question_text = txt_question.get("1.0",END).strip() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue