163 lines
5.1 KiB
JavaScript
163 lines
5.1 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;
|
|
}
|
|
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');
|
|
}
|
|
});
|