Files
shortlink/webroot/js/fps.js
T
2024-03-17 11:39:27 +07:00

159 lines
4.6 KiB
JavaScript

function app_get_url(url)
{
var l = document.createElement('a');
l.href = url;
return l;
}
function app_get_host_name(url)
{
var domain;
if (typeof url === 'undefined' || url === null || url === '' ||
url.match(/^\#/)) {
return '';
}
url = app_get_url(url);
if (url.href.search(/^http[s]?:\/\//) !== -1) {
domain = url.href.split('/')[2];
} else {
return '';
}
domain = domain.split(':')[0];
return domain.toLowerCase();
}
function app_base64_encode(str)
{
return btoa(encodeURIComponent(str).replace(
/%([0-9A-F]{2})/g,
function toSolidBytes(match, p1) {
return String.fromCharCode('0x' + p1);
}
));
}
function app_get_wildcard_domains(domains)
{
var wildcard_domains = [];
for (i = 0; i < domains.length; i++) {
if (domains[i].match(/^\*\./)) {
wildcard_domains.push(domains[i].replace(/^\*\./, ''));
}
}
return wildcard_domains;
}
function app_match_wildcard_domain(domains, domain)
{
var wildcard_domains = app_get_wildcard_domains(domains);
for (i = 0; i < wildcard_domains.length; i++) {
if (domain.substr(wildcard_domains[i].length * -1) ===
wildcard_domains[i]) {
return true;
}
}
return false;
}
function app_domain_exist(domains, hostname)
{
if (domains.indexOf(hostname) > -1) {
return true;
}
return app_match_wildcard_domain(domains, hostname);
}
document.addEventListener('DOMContentLoaded', function(event) {
if (typeof app_url === 'undefined') {
if (typeof adlinkfly_url !== 'undefined') {
app_url = adlinkfly_url;
} else {
return;
}
}
if (typeof app_api_token === 'undefined') {
if (typeof adlinkfly_api_token !== 'undefined') {
app_api_token = adlinkfly_api_token;
} else {
return;
}
}
if (typeof app_advert === 'undefined') {
if (typeof adlinkfly_advert !== 'undefined') {
app_advert = adlinkfly_advert;
} else {
app_advert = 1;
}
}
var advert_type = 1;
if (app_advert === 2) {
advert_type = 2;
}
if (app_advert === 0) {
advert_type = 0;
}
if (typeof app_domains === 'undefined') {
if (typeof adlinkfly_domains !== 'undefined') {
app_domains = adlinkfly_domains;
}
}
var anchors = document.getElementsByTagName('a');
if (typeof app_domains !== 'undefined') {
for (var i = 0; i < anchors.length; i++) {
var hostname = app_get_host_name(anchors[i].getAttribute('href'));
if (hostname.length > 0 &&
app_domain_exist(app_domains, hostname)) {
anchors[i].href = app_url + 'full?api=' + encodeURIComponent(
app_api_token
) + '&url=' + app_base64_encode(anchors[i].href) + '&type=' +
encodeURIComponent(advert_type);
} else {
if (anchors[i].protocol === 'magnet:') {
anchors[i].href = app_url + 'full?api=' +
encodeURIComponent(
app_api_token
) + '&url=' + app_base64_encode(anchors[i].href) +
'&type=' +
encodeURIComponent(advert_type);
}
}
}
return;
}
if (typeof app_exclude_domains === 'undefined') {
if (typeof adlinkfly_exclude_domains !== 'undefined') {
app_exclude_domains = adlinkfly_exclude_domains;
}
}
if (typeof app_exclude_domains !== 'undefined') {
for (var i = 0; i < anchors.length; i++) {
var hostname = app_get_host_name(anchors[i].getAttribute('href'));
if (hostname.length > 0 &&
app_domain_exist(app_exclude_domains, hostname) ===
false) {
anchors[i].href = app_url + 'full?api=' + encodeURIComponent(
app_api_token
) + '&url=' + app_base64_encode(anchors[i].href) + '&type=' +
encodeURIComponent(advert_type);
} else {
if (anchors[i].protocol === 'magnet:') {
anchors[i].href = app_url + 'full?api=' +
encodeURIComponent(
app_api_token
) + '&url=' + app_base64_encode(anchors[i].href) +
'&type=' +
encodeURIComponent(advert_type);
}
}
}
return;
}
});