diff --git a/chrome_tixcraft.py b/chrome_tixcraft.py index 9461a45..7f043bf 100644 --- a/chrome_tixcraft.py +++ b/chrome_tixcraft.py @@ -54,6 +54,7 @@ ssl._create_default_https_context = ssl._create_unverified_context CONST_APP_VERSION = u"MaxBot (2023.02.09)" CONST_HOMEPAGE_DEFAULT = "https://tixcraft.com" +URL_GOOGLE_OAUTH = 'https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=407408718192.apps.googleusercontent.com&scope=email&access_type=offline&flowName=GeneralOAuthFlow' CONST_FROM_TOP_TO_BOTTOM = u"from top to bottom" CONST_FROM_BOTTOM_TO_TOP = u"from bottom to top" @@ -463,6 +464,9 @@ def get_driver_by_config(config_dict, driver_type): print("create web driver object fail @_@;") else: try: + if config_dict["advanced"]["open_google_oauth_url"]: + driver.execute_script("window.open('%s','_blank');" % (URL_GOOGLE_OAUTH)); + print("goto url:", homepage) if homepage=="https://tixcraft.com": homepage="https://tixcraft.com/user/changeLanguage/lang/zh_tw" @@ -471,7 +475,7 @@ def get_driver_by_config(config_dict, driver_type): print('oh no not again, WebDriverException') print('WebDriverException:', exce2) except Exception as exce1: - print('get URL Exception:', exec1) + print('get URL Exception:', exce1) pass return driver diff --git a/settings.json b/settings.json index 9f6deaa..357cc44 100644 --- a/settings.json +++ b/settings.json @@ -1 +1 @@ -{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "pass_1_seat_remaining": true, "auto_check_agree": true, "ocr_captcha": {"enable": true, "force_submit": false, "image_source": "canvas"}, "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true, "area_mode": "from top to bottom", "area_keyword_1": "", "area_keyword_1_and": "", "area_keyword_2": "", "area_keyword_2_and": "", "auto_guess_options": true, "user_guess_string": ""}, "tixcraft": {"date_auto_select": {"enable": true, "date_keyword": "", "mode": "from top to bottom"}, "area_auto_select": {"enable": true, "area_keyword_1": "", "area_keyword_2": "", "area_keyword_3": "", "area_keyword_4": "", "mode": "from top to bottom"}, "pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true, "presale_code": ""}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "facebook_account": "", "kktix_account": "", "cityline_account": "", "urbtix_account": "", "adblock_plus_enable": false}, "debug": false} \ No newline at end of file +{"homepage": "https://tixcraft.com", "browser": "chrome", "language": "\u7e41\u9ad4\u4e2d\u6587", "ticket_number": 2, "pass_1_seat_remaining": true, "auto_check_agree": true, "ocr_captcha": {"enable": true, "force_submit": false, "image_source": "canvas"}, "kktix": {"auto_press_next_step_button": true, "auto_fill_ticket_number": true, "area_mode": "from top to bottom", "area_keyword_1": "", "area_keyword_1_and": "", "area_keyword_2": "", "area_keyword_2_and": "", "auto_guess_options": true, "user_guess_string": ""}, "tixcraft": {"date_auto_select": {"enable": true, "date_keyword": "", "mode": "from top to bottom"}, "area_auto_select": {"enable": true, "area_keyword_1": "", "area_keyword_2": "", "area_keyword_3": "", "area_keyword_4": "", "mode": "from top to bottom"}, "pass_date_is_sold_out": true, "auto_reload_coming_soon_page": true, "presale_code": ""}, "advanced": {"play_captcha_sound": {"enable": true, "filename": "ding-dong.wav"}, "facebook_account": "", "kktix_account": "", "cityline_account": "", "urbtix_account": "", "adblock_plus_enable": false, "open_google_oauth_url": false}, "debug": false} \ No newline at end of file diff --git a/settings.py b/settings.py index 297e6b6..e431aa9 100644 --- a/settings.py +++ b/settings.py @@ -46,7 +46,6 @@ URL_FB = 'https://www.facebook.com/maxbot.ticket' URL_CHROME_DRIVER = 'https://chromedriver.chromium.org/' URL_FIREFOX_DRIVER = 'https://github.com/mozilla/geckodriver/releases' URL_EDGE_DRIVER = 'https://developer.microsoft.com/zh-tw/microsoft-edge/tools/webdriver/' -URL_GOOGLE_OAUTH = 'https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=407408718192.apps.googleusercontent.com&scope=email&access_type=offline&flowName=GeneralOAuthFlow' def load_translate(): translate = {} @@ -105,6 +104,7 @@ def load_translate(): en_us["adblock_plus_enable"] = 'Adblock Plus Extension' en_us["adblock_plus_memo"] = 'Default adblock is disable' en_us["adblock_plus_settings"] = "Adblock Advanced Filter" + en_us["open_google_oauth_url"] = "Open Google OAuth URL" en_us["maxbot_slogan"] = 'MaxBot is a FREE and open source bot program. Wish you good luck.' en_us["donate"] = 'Donate' @@ -166,6 +166,7 @@ def load_translate(): zh_tw["adblock_plus_enable"] = 'Adblock 瀏覽器擴充功能' zh_tw["adblock_plus_memo"] = 'Adblock 功能預設關閉' zh_tw["adblock_plus_settings"] = "Adblock 進階過濾規則" + zh_tw["open_google_oauth_url"] = "開啟 Google OAuth 網站" zh_tw["maxbot_slogan"] = 'MaxBot是一個免費、開放原始碼的搶票機器人。\n祝您搶票成功。' zh_tw["donate"] = '打賞' @@ -228,6 +229,7 @@ def load_translate(): zh_cn["adblock_plus_enable"] = 'Adblock 浏览器扩充功能' zh_cn["adblock_plus_memo"] = 'Adblock 功能预设关闭' zh_cn["adblock_plus_settings"] = "Adblock 进阶过滤规则" + zh_cn["open_google_oauth_url"] = "开启 Google OAuth 网站" zh_cn["maxbot_slogan"] = 'MaxBot 是一个免费的开源机器人程序。\n祝您抢票成功。' zh_cn["donate"] = '打赏' @@ -286,10 +288,11 @@ def load_translate(): ja_jp["play_captcha_sound"] = 'キャプチャ時に音を鳴らす' ja_jp["captcha_sound_filename"] = 'サウンドファイル名' - ja_jp["adblock_plus_enable"] = 'Adblock 拡張機能' ja_jp["adblock_plus_memo"] = 'Adblock デフォルトは無効です' ja_jp["adblock_plus_settings"] = "Adblock 高度なフィルター" + ja_jp["open_google_oauth_url"] = "Google OAuth URL を開く" + ja_jp["maxbot_slogan"] = 'MaxBot は無料のオープン ソース ボット プログラムです。チケットの成功をお祈りします。' ja_jp["donate"] = '寄付' ja_jp["help"] = '利用方法' @@ -365,6 +368,7 @@ def get_default_config(): config_dict["advanced"]["cityline_account"] = "" config_dict["advanced"]["urbtix_account"] = "" config_dict["advanced"]["adblock_plus_enable"] = False + config_dict["advanced"]["open_google_oauth_url"] = False config_dict['debug']=False @@ -451,6 +455,7 @@ def btn_save_act(language_code, slience_mode=False): global chk_state_adblock_plus global chk_state_ocr_captcha global chk_state_ocr_captcha_force_submit + global chk_state_google_oauth global combo_ocr_captcha_image_source is_all_data_correct = True @@ -528,6 +533,7 @@ def btn_save_act(language_code, slience_mode=False): config_dict["advanced"]["cityline_account"] = txt_cityline_account.get().strip() config_dict["advanced"]["urbtix_account"] = txt_urbtix_account.get().strip() config_dict["advanced"]["adblock_plus_enable"] = bool(chk_state_adblock_plus.get()) + config_dict["advanced"]["open_google_oauth_url"] = bool(chk_state_google_oauth.get()) config_dict["ocr_captcha"] = {} config_dict["ocr_captcha"]["enable"] = bool(chk_state_ocr_captcha.get()) @@ -636,9 +642,6 @@ def btn_help_clicked(): def btn_copy_clicked(): pyperclip.copy(CONST_ADBLOCK_PLUS_ADVANCED_FILTER_DEFAULT) -def btn_copy_oauth_url_clicked(): - pyperclip.copy(URL_GOOGLE_OAUTH) - def callbackTicketNumberOnChange(event): showHidePass1SeatRemaining() @@ -714,6 +717,7 @@ def applyNewLanguage(): global chk_adblock_plus global chk_ocr_captcha global chk_ocr_captcha_force_submit + global chk_google_oauth global tabControl @@ -725,6 +729,7 @@ def applyNewLanguage(): global lbl_adblock_plus global lbl_adblock_plus_memo global lbl_adblock_plus_settings + global lbl_google_oauth lbl_homepage.config(text=translate[language_code]["homepage"]) lbl_browser.config(text=translate[language_code]["browser"]) @@ -758,6 +763,7 @@ def applyNewLanguage(): lbl_ocr_captcha.config(text=translate[language_code]["ocr_captcha"]) lbl_ocr_captcha_force_submit.config(text=translate[language_code]["ocr_captcha_force_submit"]) lbl_ocr_captcha_image_source.config(text=translate[language_code]["ocr_captcha_image_source"]) + lbl_google_oauth.config(text=translate[language_code]["open_google_oauth_url"]) chk_pass_1_seat_remaining.config(text=translate[language_code]["enable"]) chk_auto_check_agree.config(text=translate[language_code]["enable"]) @@ -772,6 +778,7 @@ def applyNewLanguage(): chk_adblock_plus.config(text=translate[language_code]["enable"]) chk_ocr_captcha.config(text=translate[language_code]["enable"]) chk_ocr_captcha_force_submit.config(text=translate[language_code]["enable"]) + chk_google_oauth.config(text=translate[language_code]["enable"]) tabControl.tab(0, text=translate[language_code]["preference"]) tabControl.tab(1, text=translate[language_code]["advanced"]) @@ -1724,18 +1731,17 @@ def AdvancedTab(root, config_dict, language_code, UI_PADDING_X): group_row_count +=1 global lbl_google_oauth - lbl_google_oauth = Label(frame_group_header, text='Google OAuth URL') + lbl_google_oauth = Label(frame_group_header, text=translate[language_code]['open_google_oauth_url']) lbl_google_oauth.grid(column=0, row=group_row_count, sticky = E) - global txt_google_oauth - txt_google_oauth_value = StringVar(frame_group_header, value=URL_GOOGLE_OAUTH) - txt_google_oauth = Entry(frame_group_header, width=20, textvariable = txt_google_oauth_value) - txt_google_oauth.grid(column=1, row=group_row_count, sticky = W) + global chk_state_google_oauth + chk_state_google_oauth = BooleanVar() + chk_state_google_oauth.set(config_dict["advanced"]["open_google_oauth_url"]) + + global chk_google_oauth + chk_google_oauth = Checkbutton(frame_group_header, text=translate[language_code]['enable'], variable=chk_state_google_oauth) + chk_google_oauth.grid(column=1, row=group_row_count, sticky = W) - lbl_icon_oauth_copy = Label(frame_group_header, image=icon_copy_img, cursor="hand2") - lbl_icon_oauth_copy.image = icon_copy_img - lbl_icon_oauth_copy.grid(column=2, row=group_row_count, sticky = W+N) - lbl_icon_oauth_copy.bind("", lambda e: btn_copy_oauth_url_clicked()) frame_group_header.grid(column=0, row=row_count, padx=UI_PADDING_X)