@ -4,6 +4,7 @@ var url_loc = (typeof browser === 'object') ? 'firefox' : 'chrome';
var useragent _options = [ '' , 'googlebot' , 'bingbot' , 'facebookbot' ] ;
var referer _options = [ '' , 'facebook' , 'google' , 'twitter' ] ;
var random _ip _options = [ '' , 'all' , 'eu' ] ;
var add _ext _link _type _options = [ '' , 'archive.is' , '12ft.io' , 'google_search_tool' ]
function capitalize ( str ) {
return ( typeof str === 'string' ) ? str . charAt ( 0 ) . toUpperCase ( ) + str . slice ( 1 ) : '' ;
@ -211,20 +212,22 @@ function edit_options() {
var edit _site = sites _custom [ title ] ;
document . querySelector ( 'input[data-key="title"]' ) . value = title ;
document . querySelector ( 'input[data-key="domain"]' ) . value = edit _site . domain ;
document . querySelector ( 'select[data-key="useragent"]' ) . selectedIndex = ( edit _site . googlebot > 0 ) ? 1 : useragent _options . indexOf ( edit _site . useragent ) ;
document . querySelector ( 'input[data-key="allow_cookies"]' ) . checked = ( edit _site . allow _cookies > 0 ) ;
document . querySelector ( 'input[data-key="remove_cookies"]' ) . checked = ( edit _site . remove _cookies > 0 ) ;
document . querySelector ( 'select[data-key="useragent"]' ) . selectedIndex = ( edit _site . googlebot > 0 ) ? 1 : useragent _options . indexOf ( edit _site . useragent ) ;
document . querySelector ( 'select[data-key="referer"]' ) . selectedIndex = referer _options . indexOf ( edit _site . referer ) ;
document . querySelector ( 'select[data-key="random_ip"]' ) . selectedIndex = random _ip _options . indexOf ( edit _site . random _ip ) ;
document . querySelector ( 'input[data-key="block_js"]' ) . checked = ( edit _site . block _js > 0 || edit _site . block _javascript > 0 ) ;
document . querySelector ( 'input[data-key="block_js_ext"]' ) . checked = ( edit _site . block _js _ext > 0 || edit _site . block _javascript _ext > 0 ) ;
document . querySelector ( 'input[data-key="block_js_inline"]' ) . value = edit _site . block _js _inline ? edit _site . block _js _inline : '' ;
document . querySelector ( 'input[data-key="block_regex"]' ) . value = edit _site . block _regex ? edit _site . block _regex : '' ;
document . querySelector ( 'textarea[data-key="cs_code"]' ) . value = edit _site . cs _code ? edit _site . cs _code : '' ;
document . querySelector ( 'input[data-key="amp_unhide"]' ) . checked = ( edit _site . amp _unhide > 0 ) ;
document . querySelector ( 'input[data-key="amp_redirect"]' ) . value = edit _site . amp _redirect ? edit _site . amp _redirect : '' ;
document . querySelector ( 'input[data-key="ld_json"]' ) . value = edit _site . ld _json ? edit _site . ld _json : '' ;
document . querySelector ( 'input[data-key="ld_google_webcache"]' ) . value = edit _site . ld _google _webcache ? edit _site . ld _google _webcache : '' ;
document . querySelector ( 'select[data-key="referer"]' ) . selectedIndex = referer _options . indexOf ( edit _site . referer ) ;
document . querySelector ( 'select[data-key="random_ip"]' ) . selectedIndex = random _ip _options . indexOf ( edit _site . random _ip ) ;
document . querySelector ( 'input[data-key="add_ext_link"]' ) . value = edit _site . add _ext _link ? edit _site . add _ext _link : '' ;
document . querySelector ( 'select[data-key="add_ext_link_type"]' ) . selectedIndex = add _ext _link _type _options . indexOf ( edit _site . add _ext _link _type ) ;
document . querySelector ( 'textarea[data-key="cs_code"]' ) . value = edit _site . cs _code ? edit _site . cs _code : '' ;
} ) ;
}
@ -283,6 +286,9 @@ function renderOptions() {
'domain' : 0 ,
'allow_cookies' : 1 ,
'remove_cookies' : 1 ,
'useragent' : 0 ,
'referer' : 0 ,
'random_ip' : 0 ,
'block_js (domain)' : 1 ,
'block_js_ext' : 1 ,
'block_js_inline' : 0 ,
@ -291,59 +297,59 @@ function renderOptions() {
'amp_redirect' : 0 ,
'ld_json' : 0 ,
'ld_google_webcache' : 0 ,
'add_ext_link' : 0 ,
'add_ext_link_type' : 0 ,
'cs_code' : 0 ,
} ;
var add _options = {
useragent : useragent _options ,
referer : referer _options ,
random _ip : random _ip _options ,
add _ext _link _type : add _ext _link _type _options
} ;
for ( var key in add _checkboxes ) {
labelEl = document . createElement ( 'label' ) ;
if ( ! [ 'cs_code' ] . includes ( key ) ) {
inputEl = document . createElement ( 'input' ) ;
inputEl . size = 25 ;
} else {
inputEl = document . createElement ( 'textarea' ) ;
inputEl . rows = 5 ;
inputEl . cols = 25 ;
}
inputEl . dataset . key = key . split ( ' (' ) [ 0 ] ;
labelEl . appendChild ( inputEl ) ;
if ( add _checkboxes [ key ] ) {
inputEl = document . createElement ( 'input' ) ;
inputEl . type = 'checkbox' ;
inputEl . dataset . value = 1 ;
} else {
let placeholders = {
title : 'Example' ,
domain : 'example.com' ,
block _js _inline : '\\.example\\.com\\/article\\/' ,
block _regex : '\\.example\\.com\\/js\\/' ,
amp _redirect : 'div.paywall' ,
ld _json : 'div.paywall|div.article' ,
ld _google _webcache : 'div.paywall|div.article' ,
cs _code : 'for dev: check GitLab examples' ,
} ;
if ( placeholders [ key ] )
inputEl . placeholder = placeholders [ key ] ;
if ( add _options [ key ] ) {
inputEl = document . createElement ( 'select' ) ;
for ( let elem of add _options [ key ] ) {
let option = document . createElement ( "option" ) ;
option . value = elem ;
option . text = elem ;
inputEl . appendChild ( option ) ;
}
} else {
if ( ! [ 'cs_code' ] . includes ( key ) ) {
inputEl = document . createElement ( 'input' ) ;
inputEl . size = 25 ;
} else {
inputEl = document . createElement ( 'textarea' ) ;
inputEl . rows = 5 ;
inputEl . cols = 25 ;
}
let placeholders = {
title : 'Example' ,
domain : 'example.com' ,
block _js _inline : '\\.example\\.com\\/article\\/' ,
block _regex : '\\.example\\.com\\/js\\/' ,
amp _redirect : 'div.paywall' ,
ld _json : 'div.paywall|div.article' ,
ld _google _webcache : 'div.paywall|div.article' ,
add _ext _link : 'div.paywall|div.article' ,
cs _code : 'for dev: check GitLab examples' ,
} ;
if ( placeholders [ key ] )
inputEl . placeholder = placeholders [ key ] ;
}
}
labelEl . appendChild ( document . createTextNode ( ' ' + key ) ) ;
add _sitesEl . appendChild ( labelEl ) ;
}
var add _options = {
useragent : useragent _options ,
referer : referer _options ,
random _ip : random _ip _options
} ;
for ( let key in add _options ) {
labelEl = document . createElement ( 'label' ) ;
labelEl . appendChild ( document . createTextNode ( key + ' ' ) ) ;
inputEl = document . createElement ( 'select' ) ;
labelEl . style = 'margin: 2px 0px;' ;
inputEl . dataset . key = key . split ( ' (' ) [ 0 ] ;
labelEl . appendChild ( inputEl ) ;
for ( let elem of add _options [ key ] ) {
let option = document . createElement ( "option" ) ;
option . value = elem ;
option . text = elem ;
inputEl . appendChild ( option ) ;
}
labelEl . appendChild ( document . createTextNode ( ' ' + key ) ) ;
add _sitesEl . appendChild ( labelEl ) ;
}
@ -363,20 +369,21 @@ function renderOptions() {
let isDefaultSite = defaultSites _domains . includes ( domain ) ;
optionEl . text = isDefaultSite ? '*' : '' ;
optionEl . text += key + ': ' + domain +
( sites _custom [ key ] [ 'googlebot' ] > 0 ? ' | googlebot' : '' ) +
( sites _custom [ key ] [ 'allow_cookies' ] > 0 ? ' | allow_cookies' : '' ) +
( sites _custom [ key ] [ 'remove_cookies' ] > 0 ? ' | remove_cookies' : '' ) +
( sites _custom [ key ] [ 'useragent' ] ? ' | useragent: ' + sites _custom [ key ] [ 'useragent' ] : '' ) +
( sites _custom [ key ] [ 'googlebot' ] > 0 ? ' | googlebot' : '' ) +
( sites _custom [ key ] [ 'referer' ] ? ' | referer: ' + sites _custom [ key ] [ 'referer' ] : '' ) +
( sites _custom [ key ] [ 'random_ip' ] ? ' | random_ip: ' + sites _custom [ key ] [ 'random_ip' ] : '' ) +
( ( sites _custom [ key ] [ 'block_js' ] > 0 || sites _custom [ key ] [ 'block_javascript' ] > 0 ) ? ' | block_js' : '' ) +
( ( sites _custom [ key ] [ 'block_js_ext' ] > 0 || sites _custom [ key ] [ 'block_javascript_ext' ] > 0 ) ? ' | block_js_ext' : '' ) +
( sites _custom [ key ] [ 'block_js_inline' ] ? ' | block_js_inline' : '' ) +
( sites _custom [ key ] [ 'block_regex' ] ? ' | block_regex' : '' ) +
( sites _custom [ key ] [ 'useragent' ] ? ' | useragent: ' + sites _custom [ key ] [ 'useragent' ] : '' ) +
( sites _custom [ key ] [ 'referer' ] ? ' | referer: ' + sites _custom [ key ] [ 'referer' ] : '' ) +
( sites _custom [ key ] [ 'random_ip' ] ? ' | random_ip: ' + sites _custom [ key ] [ 'random_ip' ] : '' ) +
( sites _custom [ key ] [ 'amp_unhide' ] > 0 ? ' | amp_unhide' : '' ) +
( sites _custom [ key ] [ 'amp_redirect' ] ? ' | amp_redirect' : '' ) +
( sites _custom [ key ] [ 'ld_json' ] ? ' | ld_json' : '' ) +
( sites _custom [ key ] [ 'ld_google_webcache' ] ? ' | ld_google_webcache' : '' ) +
( sites _custom [ key ] [ 'add_ext_link' ] && sites _custom [ key ] [ 'add_ext_link_type' ] ? ' | add_ext_link' : '' ) +
( sites _custom [ key ] [ 'cs_code' ] ? ' | cs_code' : '' ) ;
optionEl . value = key ;
selectEl . add ( optionEl ) ;