tixcraft_bot/webdriver/Maxbotplus_1.0.0/js/ibon_detail.js

165 lines
5.2 KiB
JavaScript

const storage = chrome.storage.local;
var settings = null;
function ibon_detail_ajax_done(game_info)
{
let date_keyword_array = [];
if(settings) {
if(settings.date_auto_select.date_keyword.length > 0) {
date_keyword_array = JSON.parse('[' + settings.date_auto_select.date_keyword +']');
}
}
let reload=false;
let target_href = "";
//console.log(game_info.Item);
if(game_info.Item.GIHtmls.length) {
// one of game able to buy.
let one_can_buy = false;
for (let i = 0; i < game_info.Item.GIHtmls.length; i++) {
let rs = game_info.Item.GIHtmls[i];
if(game_info.Item.GIHtmls.length==1) {
// single row.
if(rs.Href==null) {
reload=true;
} else {
if(rs.CanBuy==false) {
reload=true;
} else {
one_can_buy = true;
target_href = rs.Href;
}
}
if(reload) {
break;
}
} else {
// multi rows.
if(settings) {
let is_match_row = false;
if(date_keyword_array.length) {
for (let j = 0; j < date_keyword_array.length; j++) {
// TOOD: multi item matched, need sort.
// target_area = get_target_area_with_order(settings, matched_block);
if(rs.ShowSaleDate.indexOf(date_keyword_array[j])>-1) {
is_match_row = true;
}
if(rs.GameInfoName.indexOf(date_keyword_array[j])>-1) {
is_match_row = true;
}
if(is_match_row) {
break;
}
}
} else {
// empty keyword.
is_match_row = true;
}
if(is_match_row) {
if(rs.Href!=null) {
if(rs.CanBuy!=false) {
one_can_buy = true;
target_href = rs.Href;
break;
}
}
}
}
}
}
if(!reload) {
if(one_can_buy == false) reload=true;
}
}
console.log("reload:"+reload);
console.log("target_href:"+target_href);
if(reload) {
let auto_reload_page_interval = 0.0;
if(settings) {
auto_reload_page_interval = settings.advanced.auto_reload_page_interval;
}
const rootElement = document.documentElement;
rootElement.remove();
if(auto_reload_page_interval == 0) {
//console.log('Start to reload now.');
location.reload();
} else {
console.log('We are going to reload after few seconeds.');
setTimeout(function () {
location.reload();
}, auto_reload_page_interval * 1000);
}
}
else {
// goto target event.
//console.log(target_href);
if(target_href.length > 0) {
location.href= "https://ticket.ibon.com.tw/" + target_href;
}
}
}
function ibon_event_status_check()
{
const currentUrl = window.location.href;
const event_code = currentUrl.split('/')[5];
//console.log(currentUrl);
//console.log(event_code);
if(event_code){
let api_url = "https://ticketapi.ibon.com.tw/api/ActivityInfo/GetGameInfoList";
dataJSON = {
id: parseInt(event_code, 10),
hasDeadline: true,
SystemBrowseType: 0
}
$.ajax({
url: api_url,
data: JSON.stringify(dataJSON),
type: "POST",
dataType: "json",
xhrFields: {
withCredentials: true
},
headers: {
"x-xsrf-token": getCookie("XSRF-TOKEN")
},
contentType: "application/json",
success: function(returnData){
ibon_detail_ajax_done(returnData);
//console.log(returnData);
},
error: function(xhr, ajaxOptions, thrownError){
//console.log(xhr.status);
//console.log(thrownError);
}
});
}
}
storage.get('settings', function (items)
{
if (items.settings)
{
settings = items.settings;
}
});
storage.get('status', function (items)
{
if (items.status && items.status=='ON')
{
console.log("start to ibon detail.");
//console.log(document.cookie);
//console.log(getCookie("XSRF-TOKEN"));
ibon_event_status_check();
} else {
console.log('no status found');
}
});