2024-01-18, update for kktix verification
parent
d79bd8dfa3
commit
04d2d8c171
|
@ -41,7 +41,7 @@ try:
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
CONST_APP_VERSION = "MaxBot (2024.01.17)"
|
CONST_APP_VERSION = "MaxBot (2024.01.18)"
|
||||||
|
|
||||||
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
@ -4583,13 +4583,27 @@ def get_kktix_control_label_text(driver):
|
||||||
|
|
||||||
captcha_inner_div = None
|
captcha_inner_div = None
|
||||||
try:
|
try:
|
||||||
captcha_inner_div = driver.find_element(By.CSS_SELECTOR, 'div.ticket-unit > div.code-input > div.control-group > label.control-label')
|
captcha_inner_div = driver.find_element(By.CSS_SELECTOR, 'div > div.code-input > div.control-group > label.control-label')
|
||||||
if not captcha_inner_div is None:
|
if not captcha_inner_div is None:
|
||||||
question_text = remove_html_tags(captcha_inner_div.get_attribute('innerHTML'))
|
question_text = remove_html_tags(captcha_inner_div.get_attribute('innerHTML'))
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
return question_text
|
return question_text
|
||||||
|
|
||||||
|
def set_kktix_control_label_text(driver, config_dict):
|
||||||
|
fail_list = []
|
||||||
|
answer_list = get_answer_list_from_user_guess_string(config_dict)
|
||||||
|
inferred_answer_string = ""
|
||||||
|
for answer_item in answer_list:
|
||||||
|
if not answer_item in fail_list:
|
||||||
|
inferred_answer_string = answer_item
|
||||||
|
break
|
||||||
|
input_text_css = 'div > div.code-input > div.control-group > div.controls > label > input[type="text"]'
|
||||||
|
next_step_button_css = '#registrationsNewApp div.form-actions button.btn-primary'
|
||||||
|
submit_by_enter = False
|
||||||
|
check_input_interval = 0.2
|
||||||
|
is_answer_sent, fail_list = fill_common_verify_form(driver, config_dict, inferred_answer_string, fail_list, input_text_css, next_step_button_css, submit_by_enter, check_input_interval)
|
||||||
|
|
||||||
def get_kktix_question_text(driver):
|
def get_kktix_question_text(driver):
|
||||||
question_text = ""
|
question_text = ""
|
||||||
|
|
||||||
|
@ -4720,6 +4734,10 @@ def kktix_reg_new_main(driver, config_dict, fail_list, captcha_sound_played, is_
|
||||||
print("control_text:", control_text)
|
print("control_text:", control_text)
|
||||||
if len(control_text) == 0:
|
if len(control_text) == 0:
|
||||||
click_ret = kktix_press_next_button(driver)
|
click_ret = kktix_press_next_button(driver)
|
||||||
|
else:
|
||||||
|
#set_kktix_control_label_text(driver, config_dict)
|
||||||
|
# input by maxbox plus extension.
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
if is_need_refresh:
|
if is_need_refresh:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -22,7 +22,7 @@ import sys
|
||||||
import threading
|
import threading
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
|
||||||
CONST_APP_VERSION = "MaxBot (2024.01.17)"
|
CONST_APP_VERSION = "MaxBot (2024.01.18)"
|
||||||
|
|
||||||
CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json"
|
CONST_MAXBOT_LAUNCHER_FILE = "config_launcher.json"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
|
|
@ -40,7 +40,7 @@ try:
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
CONST_APP_VERSION = "MaxBot (2024.01.17)"
|
CONST_APP_VERSION = "MaxBot (2024.01.18)"
|
||||||
|
|
||||||
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
CONST_MAXBOT_ANSWER_ONLINE_FILE = "MAXBOT_ONLINE_ANSWER.txt"
|
||||||
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
CONST_MAXBOT_CONFIG_FILE = "settings.json"
|
||||||
|
|
|
@ -1,7 +1,40 @@
|
||||||
var myInterval = null;
|
var myInterval = null;
|
||||||
//console.log("assign appear");
|
//console.log("assign appear");
|
||||||
|
|
||||||
function kktix_area_keyword(settings, register_info)
|
function kktix_verification_conditions(settings)
|
||||||
|
{
|
||||||
|
let is_text_sent = false;
|
||||||
|
let user_guess_string_array = [];
|
||||||
|
if(settings) {
|
||||||
|
if(settings.advanced.user_guess_string.length > 0) {
|
||||||
|
if(settings.advanced.user_guess_string!='""') {
|
||||||
|
user_guess_string_array = JSON.parse('[' + settings.advanced.user_guess_string +']');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let target_row=null;
|
||||||
|
let all_row = $("div.control-group > div.controls > label > input[type='text']");
|
||||||
|
if (all_row.length > 0 && user_guess_string_array.length > 0)
|
||||||
|
{
|
||||||
|
//console.log("input count:" + all_row.length);
|
||||||
|
let travel_index=0;
|
||||||
|
all_row.each(function ()
|
||||||
|
{
|
||||||
|
let current_index = all_row.index(this);
|
||||||
|
//console.log("current_index:" + current_index);
|
||||||
|
if(current_index+1 <= user_guess_string_array.length) {
|
||||||
|
//console.log("input data:" + user_guess_string_array[current_index]);
|
||||||
|
$(this).val(user_guess_string_array[current_index]);
|
||||||
|
is_text_sent = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return is_text_sent;
|
||||||
|
}
|
||||||
|
|
||||||
|
function kktix_area_keyword(settings, base_info, register_info)
|
||||||
{
|
{
|
||||||
let area_keyword_array = [];
|
let area_keyword_array = [];
|
||||||
if(settings) {
|
if(settings) {
|
||||||
|
@ -50,6 +83,7 @@ function kktix_area_keyword(settings, register_info)
|
||||||
});
|
});
|
||||||
|
|
||||||
let seat_inventory_key=link_id.split("_")[1];
|
let seat_inventory_key=link_id.split("_")[1];
|
||||||
|
//console.log("seat_inventory_key:"+seat_inventory_key);
|
||||||
let seat_inventory_number=register_info.inventory.seatInventory[seat_inventory_key];
|
let seat_inventory_number=register_info.inventory.seatInventory[seat_inventory_key];
|
||||||
let ticket_number = settings.ticket_number;
|
let ticket_number = settings.ticket_number;
|
||||||
if(seat_inventory_number<ticket_number) {
|
if(seat_inventory_number<ticket_number) {
|
||||||
|
@ -58,6 +92,7 @@ function kktix_area_keyword(settings, register_info)
|
||||||
|
|
||||||
if(ticket_number>0) {
|
if(ticket_number>0) {
|
||||||
/*
|
/*
|
||||||
|
// trigger events by jQuery.
|
||||||
let target_input = target_area.find("input");
|
let target_input = target_area.find("input");
|
||||||
target_input.click();
|
target_input.click();
|
||||||
target_input.prop("value", ticket_number);
|
target_input.prop("value", ticket_number);
|
||||||
|
@ -69,15 +104,53 @@ function kktix_area_keyword(settings, register_info)
|
||||||
up.key=""+ticket_number;
|
up.key=""+ticket_number;
|
||||||
target_input.trigger(up);
|
target_input.trigger(up);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
//console.log(base_info);
|
||||||
|
let is_verification_conditions_popup = false;
|
||||||
|
if(base_info && base_info.eventData.hasOwnProperty("order_qualifications")) {
|
||||||
|
//console.log(base_info.eventData.order_qualifications.length);
|
||||||
|
for (let i = 0; i < base_info.eventData.order_qualifications.length; i++) {
|
||||||
|
let rs = base_info.eventData.order_qualifications[i];
|
||||||
|
//console.log(rs);
|
||||||
|
for(let j=0; j < rs.conditions.length; j++) {
|
||||||
|
let rs_j = JSON.parse(rs.conditions[j]);
|
||||||
|
//console.log(rs_j);
|
||||||
|
if(rs_j.hasOwnProperty("ticket_ids")) {
|
||||||
|
//console.log(rs_j.ticket_ids.length);
|
||||||
|
for(let k=0; k < rs_j.ticket_ids.length; k++) {
|
||||||
|
let rs_k = rs_j.ticket_ids[k]
|
||||||
|
//console.log(rs_k);
|
||||||
|
if(""+rs_k==seat_inventory_key) {
|
||||||
|
is_verification_conditions_popup = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let add_button = target_area.find('button[ng-click="quantityBtnClick(1)"]');
|
let add_button = target_area.find('button[ng-click="quantityBtnClick(1)"]');
|
||||||
for(let i=0; i<ticket_number; i++) {
|
for(let i=0; i<ticket_number; i++) {
|
||||||
add_button.click();
|
add_button.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let auto_click_next_btn = true;
|
||||||
|
|
||||||
|
if(is_verification_conditions_popup) {
|
||||||
|
auto_click_next_btn = false;
|
||||||
|
let is_text_sent = kktix_verification_conditions(settings);
|
||||||
|
if(is_text_sent) {
|
||||||
|
auto_click_next_btn = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(auto_click_next_btn) {
|
||||||
let $next_btn = $('div.register-new-next-button-area > button');
|
let $next_btn = $('div.register-new-next-button-area > button');
|
||||||
$next_btn.click();
|
$next_btn.click();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log("not target_area found.")
|
console.log("not target_area found.")
|
||||||
}
|
}
|
||||||
|
@ -86,10 +159,11 @@ function kktix_area_keyword(settings, register_info)
|
||||||
function begin()
|
function begin()
|
||||||
{
|
{
|
||||||
let settings = JSON.parse($("#settings").html());
|
let settings = JSON.parse($("#settings").html());
|
||||||
|
let base_info = JSON.parse($("#base_info").html());
|
||||||
let register_info = JSON.parse($("#register_info").html());
|
let register_info = JSON.parse($("#register_info").html());
|
||||||
//console.log(settings);
|
//console.log(settings);
|
||||||
//console.log(register_info);
|
//console.log(register_info);
|
||||||
kktix_area_keyword(settings, register_info);
|
kktix_area_keyword(settings, base_info, register_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
function dom_ready()
|
function dom_ready()
|
||||||
|
@ -101,7 +175,7 @@ function dom_ready()
|
||||||
if(myInterval) clearInterval(myInterval);
|
if(myInterval) clearInterval(myInterval);
|
||||||
begin();
|
begin();
|
||||||
}
|
}
|
||||||
console.log("dom_ready:"+ret);
|
//console.log("dom_ready:"+ret);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ function kktix_clean_exclude(settings, register_info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function clean_sold_out_row(register_info)
|
function clean_sold_out_row(register_info, base_info)
|
||||||
{
|
{
|
||||||
//console.log("clean_sold_out_row");
|
//console.log("clean_sold_out_row");
|
||||||
|
|
||||||
|
@ -61,13 +61,25 @@ function clean_sold_out_row(register_info)
|
||||||
$("body").append(settings_div);
|
$("body").append(settings_div);
|
||||||
let register_info_div="<div style='display:none' id='register_info'>" + JSON.stringify(register_info) + "</div>";
|
let register_info_div="<div style='display:none' id='register_info'>" + JSON.stringify(register_info) + "</div>";
|
||||||
$("body").append(register_info_div);
|
$("body").append(register_info_div);
|
||||||
|
let base_info_div="<div style='display:none' id='base_info'>" + JSON.stringify(base_info) + "</div>";
|
||||||
|
$("body").append(base_info_div);
|
||||||
kktix_clean_exclude(settings, register_info);
|
kktix_clean_exclude(settings, register_info);
|
||||||
//kktix_area_keyword(settings, register_info);
|
//kktix_area_keyword(settings, register_info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function kktix_ajax_done(register_info)
|
function kktix_ajax_return_base_info(base_info, register_info)
|
||||||
|
{
|
||||||
|
//console.log(base_info.eventData.order_qualifications);
|
||||||
|
$(function() {
|
||||||
|
myInterval = setInterval(() => {
|
||||||
|
clean_sold_out_row(register_info, base_info);
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function kktix_ajax_return_register_info(register_info)
|
||||||
{
|
{
|
||||||
let reload=false;
|
let reload=false;
|
||||||
console.log(register_info.inventory.registerStatus);
|
console.log(register_info.inventory.registerStatus);
|
||||||
|
@ -92,15 +104,35 @@ function kktix_ajax_done(register_info)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$(function() {
|
kktix_event_base_info(register_info);
|
||||||
myInterval = setInterval(() => {
|
}
|
||||||
clean_sold_out_row(register_info);
|
}
|
||||||
}, 200);
|
|
||||||
|
function kktix_event_base_info(register_info)
|
||||||
|
{
|
||||||
|
const currentUrl = window.location.href;
|
||||||
|
const event_code = currentUrl.split('/')[4];
|
||||||
|
//console.log(currentUrl);
|
||||||
|
//console.log(event_code);
|
||||||
|
if(event_code){
|
||||||
|
let api_url = "https://kktix.com/g/events/"+ event_code +"/base_info";
|
||||||
|
$.get( api_url, function() {
|
||||||
|
//alert( "success" );
|
||||||
|
})
|
||||||
|
.done(function(data) {
|
||||||
|
//alert( "second success" );
|
||||||
|
kktix_ajax_return_base_info(data, register_info);
|
||||||
|
})
|
||||||
|
.fail(function() {
|
||||||
|
//alert( "error" );
|
||||||
|
})
|
||||||
|
.always(function() {
|
||||||
|
//alert( "finished" );
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function kktix_event_status_check()
|
function kktix_event_register_info()
|
||||||
{
|
{
|
||||||
const currentUrl = window.location.href;
|
const currentUrl = window.location.href;
|
||||||
const event_code = currentUrl.split('/')[4];
|
const event_code = currentUrl.split('/')[4];
|
||||||
|
@ -113,7 +145,7 @@ function kktix_event_status_check()
|
||||||
})
|
})
|
||||||
.done(function(data) {
|
.done(function(data) {
|
||||||
//alert( "second success" );
|
//alert( "second success" );
|
||||||
kktix_ajax_done(data);
|
kktix_ajax_return_register_info(data);
|
||||||
})
|
})
|
||||||
.fail(function() {
|
.fail(function() {
|
||||||
//alert( "error" );
|
//alert( "error" );
|
||||||
|
@ -136,7 +168,7 @@ storage.get('status', function (items)
|
||||||
{
|
{
|
||||||
if (items.status && items.status=='ON')
|
if (items.status && items.status=='ON')
|
||||||
{
|
{
|
||||||
kktix_event_status_check();
|
kktix_event_register_info();
|
||||||
} else {
|
} else {
|
||||||
console.log('no status found');
|
console.log('no status found');
|
||||||
}
|
}
|
||||||
|
|
|
@ -391,5 +391,5 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"version": "1.0.9"
|
"version": "1.0.10"
|
||||||
}
|
}
|
Loading…
Reference in New Issue