Merge pull request #1771 from iptv-org/add-worldfishingnetwork.com

Add guide from worldfishingnetwork.com
This commit is contained in:
Aleksandr Statciuk 2023-01-24 04:26:15 +03:00 committed by GitHub
commit 44b39af82a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 3234 additions and 0 deletions

View file

@ -0,0 +1,17 @@
name: worldfishingnetwork.com
on:
schedule:
- cron: '0 3 * * *'
workflow_dispatch:
workflow_run:
workflows: [_trigger]
types:
- completed
jobs:
load:
uses: ./.github/workflows/_load.yml
with:
site: ${{github.workflow}}
secrets:
APP_ID: ${{ secrets.APP_ID }}
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,896 @@
<!doctype html>
<html class="no-js" lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#">
<head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="apple-touch-icon" sizes="57x57" href="/network/img/wfn/icons/apple-icon-57x57.png"/>
<link rel="apple-touch-icon" sizes="60x60" href="/network/img/wfn/icons/apple-icon-60x60.png"/>
<link rel="apple-touch-icon" sizes="72x72" href="/network/img/wfn/icons/apple-icon-72x72.png"/>
<link rel="apple-touch-icon" sizes="76x76" href="/network/img/wfn/icons/apple-icon-76x76.png"/>
<link rel="apple-touch-icon" sizes="114x114" href="/network/img/wfn/icons/apple-icon-114x114.png"/>
<link rel="apple-touch-icon" sizes="120x120" href="/network/img/wfn/icons/apple-icon-120x120.png"/>
<link rel="apple-touch-icon" sizes="144x144" href="/network/img/wfn/icons/apple-icon-144x144.png"/>
<link rel="apple-touch-icon" sizes="152x152" href="/network/img/wfn/icons/apple-icon-152x152.png"/>
<link rel="apple-touch-icon" sizes="180x180" href="/network/img/wfn/icons/apple-icon-180x180.png"/>
<link rel="icon" type="image/png" sizes="192x192" href="/network/img/wfn/icons/android-icon-192x192.png"/>
<link rel="icon" type="image/png" sizes="32x32" href="/network/img/wfn/icons/favicon-32x32.png"/>
<link rel="icon" type="image/png" sizes="96x96" href="/network/img/wfn/icons/favicon-96x96.png"/>
<link rel="icon" type="image/png" sizes="16x16" href="/network/img/wfn/icons/favicon-16x16.png"/>
<meta name="msapplication-TileColor" content="#ffffff" />
<meta name="msapplication-TileImage" content="/network/img/wfn/icons/ms-icon-144x144.png"/>
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,600,700" rel="stylesheet" />
<link rel="stylesheet" href="/network/css/base-wfn.css?v=3.4"/>
<!-- BEGIN METATAGS.ASCS -->
<meta property="fb:pages" content="" />
<title>WFN - Schedule - World Fishing Network</title>
<meta name="keywords" content="WFN - Schedule">
<meta name="description" content="Schedule" />
<meta property="og:description" content="Schedule" />
<meta property="og:locale" content="en_US" />
<meta property="og:site_name" content="World Fishing Network" />
<meta property="og:type" content="website" />
<meta property="og:title" content="WFN - Schedule - World Fishing Network" />
<meta name="subscribepage" content="/website-top-right">
<meta property="og:image" content="https://www.worldfishingnetwork.com/network/img/wfn/icons/og.png" />
<meta property="og:url" content="https://www.worldfishingnetwork.com/schedule/77420?day=azx" />
<meta name="websiteID" content="1262" />
<meta property="op:markup_version" content="v1.0">
<link rel='shortlink' href='https://www.worldfishingnetwork.com/schedule/77420?day=azx' />
<link rel='canonical' href='https://www.worldfishingnetwork.com/schedule/77420?day=azx' />
<!--** ABSOLUTE URL: www.worldfishingnetwork.com/schedule.aspx?listing-id=77420&day=azx -->
<!-- Cludo meta tags -->
<meta property="cludo:site" content="World Fishing Network"/>
<meta property="cludo:url" content="www.worldfishingnetwork.com"/>
<meta property="cludo:title" content="WFN - Schedule"/>
<meta property="cludo:description" content="Schedule" />
<meta property="cludo:show_date" content="false" />
<!-- END Cludo meta tags -->
<!-- structured data -->
<!-- video structured data -->
<!-- END METATAGS.ASCS -->
<!-- google tag mag, google optimize -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2JQ5HPT0XK"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
if ( window.location !== window.parent.location ) {
gtag('config', 'G-2JQ5HPT0XK', {
send_page_view: false
});
} else {
gtag('config', 'G-2JQ5HPT0XK');
}
</script>
<!-- end google tag mag, google optimize -->
<!-- topJavascript -->
<!-- <script type="text/javascript">
var addthis_share = {
url: "www.worldfishingnetwork.com/default.aspx",
title: "World Fishing Network - World Fishing Network WFN",
media: "www.worldfishingnetwork.com"
}
</script> -->
<script type="text/javascript" src="//nexus.ensighten.com/choozle/10203/Bootstrap.js"></script>
<script type="text/javascript">
var adEventsDisabled = false;
</script>
<script type="text/javascript" src="//www.worldfishingnetwork.com/network/js/ads.js?v=1.0"></script>
<!-- Moat Scripts for YI -->
<link rel="preload" href="https://z.moatads.com/osgheader898097631376/moatheader.js" as="script">
<link rel="preconnect" href="https://mb.moatads.com">
<script async src="https://z.moatads.com/osgheader898097631376/moatheader.js"></script>
<!-- end topJavascript -->
<!-- AdTagDisplay ID = 0 AdPosition = Headerscript-->
<script>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
(function() {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
var node = document.getElementsByTagName('script')[0];
node.parentNode.insertBefore(gads, node);
})();
</script><!-- BEGIN: AdControl Network vAug22 Schedule -->
<script>
function biddr360Error() {
console.log('biddr360 failed to load, removing disableInitialLoad');
window.biddr = { error: true}}
</script><script src="//biddr.brealtime.com/15367548-1331.js"
type="text/javascript" onerror="biddr360Error()">
</script><script>
var dfp_sitePage='/4930/worldfishingnetwork';
var camp_value='schedule';
var sect_value='';
var show_value='';
var article_id='';
var gptAdSlots = [];
var sizeMappings = [];
var refreshTime = 40; // In seconds
googletag.cmd.push(function() {
sizeMappings['adpos_top'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 250], [970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[0] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_top')
.defineSizeMapping(sizeMappings['adpos_top'])
.setTargeting('pos',['top,atf,rb'])
.setTargeting('moat','adpos_top')
.addService(googletag.pubads());
sizeMappings['adpos_rightA'] = googletag.sizeMapping()
.addSize([1024, 200], [[300, 250], [3,1]]) //Desktop
.addSize([768, 200], [300, 250]) //Tablet
.addSize([500, 0], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[1] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_rightA')
.defineSizeMapping(sizeMappings['adpos_rightA'])
.setTargeting('pos',['rightA,atf,rb'])
.setTargeting('moat','adpos_rightA')
.addService(googletag.pubads());
sizeMappings['adpos_rightB'] = googletag.sizeMapping()
.addSize([1024, 200], [[300, 600], [3,2]]) //Desktop
.addSize([768, 200], [300, 250]) //Tablet
.addSize([500, 0], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[2] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_rightB')
.defineSizeMapping(sizeMappings['adpos_rightB'])
.setTargeting('pos',['rightB'])
.setTargeting('moat','adpos_rightB')
.addService(googletag.pubads());
sizeMappings['adpos_bottomA'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 250], [970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([500, 0], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[3] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_bottomA')
.defineSizeMapping(sizeMappings['adpos_bottomA'])
.setTargeting('pos',['bottomA,bottomA,btf'])
.setTargeting('moat','adpos_bottomA')
.addService(googletag.pubads());
sizeMappings['adpos_bottomB'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 250], [970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([500, 0], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[4] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_bottomB')
.defineSizeMapping(sizeMappings['adpos_bottomB'])
.setTargeting('pos',['bottomB,bottomB,btf'])
.setTargeting('moat','adpos_bottomB')
.addService(googletag.pubads());
sizeMappings['adpos_bottom'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([0, 0], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[26] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_bottom')
.defineSizeMapping(sizeMappings['adpos_bottom'])
.setTargeting('pos',['bottom,bottom,btf'])
.setTargeting('moat','adpos_bottom')
.addService(googletag.pubads());
sizeMappings['adpos_bottomfixed'] = googletag.sizeMapping()
.addSize([728, 90], [9,7]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([0, 0], [320, 50]) //Mobile
.build();
gptAdSlots[29] = googletag.defineSlot(dfp_sitePage, [320, 50], 'adpos_bottomfixed')
.defineSizeMapping(sizeMappings['adpos_bottomfixed'])
.setTargeting('pos',['bottom,bottomfixed,btf'])
.setTargeting('moat','adpos_bottomfixed')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_1'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[7] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_1')
.defineSizeMapping(sizeMappings['adpos_schedule_1'])
.setTargeting('pos',['schedule_1'])
.setTargeting('moat','adpos_schedule_1')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_2'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[8] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_2')
.defineSizeMapping(sizeMappings['adpos_schedule_2'])
.setTargeting('pos',['schedule_2'])
.setTargeting('moat','adpos_schedule_2')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_3'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[9] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_3')
.defineSizeMapping(sizeMappings['adpos_schedule_3'])
.setTargeting('pos',['schedule_3'])
.setTargeting('moat','adpos_schedule_3')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_4'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[10] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_4')
.defineSizeMapping(sizeMappings['adpos_schedule_4'])
.setTargeting('pos',['schedule_4'])
.setTargeting('moat','adpos_schedule_4')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_5'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[11] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_5')
.defineSizeMapping(sizeMappings['adpos_schedule_5'])
.setTargeting('pos',['schedule_5'])
.setTargeting('moat','adpos_schedule_5')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_6'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[12] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_6')
.defineSizeMapping(sizeMappings['adpos_schedule_6'])
.setTargeting('pos',['schedule_6'])
.setTargeting('moat','adpos_schedule_6')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_7'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[13] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_7')
.defineSizeMapping(sizeMappings['adpos_schedule_7'])
.setTargeting('pos',['schedule_7'])
.setTargeting('moat','adpos_schedule_7')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_8'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[14] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_8')
.defineSizeMapping(sizeMappings['adpos_schedule_8'])
.setTargeting('pos',['schedule_8'])
.setTargeting('moat','adpos_schedule_8')
.addService(googletag.pubads());
sizeMappings['adpos_schedule_9'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[15] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_schedule_9')
.defineSizeMapping(sizeMappings['adpos_schedule_9'])
.setTargeting('pos',['schedule_9'])
.setTargeting('moat','adpos_schedule_9')
.addService(googletag.pubads());
sizeMappings['adpos_mid'] = googletag.sizeMapping()
.addSize([1024, 200], [[970, 250], [970, 90], [728, 90], [9,7]]) //Desktop
.addSize([768, 200], [728, 90]) //Tablet
.addSize([320, 100], [[320, 100], [320, 50]]) //Mobile
.build();
gptAdSlots[16] = googletag.defineSlot(dfp_sitePage, [320, 100], 'adpos_mid')
.defineSizeMapping(sizeMappings['adpos_mid'])
.setTargeting('pos',['mid'])
.setTargeting('moat','adpos_mid')
.addService(googletag.pubads());
googletag.defineOutOfPageSlot(dfp_sitePage,'interstitial')
.addService(googletag.pubads());
googletag.pubads().setTargeting('sect', [sect_value]).setTargeting('camp', [camp_value]).setTargeting('show', [show_value]);
googletag.pubads().enableLazyLoad({
fetchMarginPercent: 200, // Fetch slots within 5 viewports.
renderMarginPercent: 100, // Render slots within 2 viewports.
mobileScaling: 1.5 // Multiply the above values on mobile.
});
//googletag.pubads().setTargeting("ksg", Krux.segments);////
/////googletag.pubads().setTargeting("kuid", Krux.user);///
googletag.pubads().enableAsyncRendering();
googletag.pubads().enableSingleRequest();
window.biddr.error ? null : googletag.pubads().disableInitialLoad();
googletag.enableServices();
});
</script><!-- END: AdControl -->
<!--VideoPlayerTop-->
<script type="text/javascript" src="/akamai/2.116.4/amp.premier/amp.premier.min.js"></script>
<style>
.akamai-branding.akamai-overlay { display: none !important; }
.full-video:not(.full-video-small) {
bottom: auto !important;
}
.video .video-container {
padding-bottom: 56.25%;
position: relative;
}
.video-container #akamai-media-player {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
}
button.amp-share.amp-icon.amp-control { visibility: hidden; }
/* Move ima ad overlay static banner above the amp player control bar*/
/*.akamai-android .amp-ad-overlaymode .amp-ad-container {
height:85%
}*/
/*.akamai-android .amp-idle.amp-ad-overlaymode .amp-ad-container {
z-index: -1;
}*/
/* Control bar does not show up during ad banner*/
.akamai-android .amp-ad-overlaymode .amp-ad-container {
max-height: 80px;
bottom: 0;
}
.akamai-iphone .amp-ad-overlaymode .amp-ad-container {
max-height: 80px;
bottom: 0;
}
.akamai-ipad .amp-ad-overlaymode .amp-ad-container {
max-height: 80px;
bottom: 0;
}
/*Control bar is not resizing properly*/
@media (max-width: 640px) {
.amp-ui { font: normal normal normal 13px / 1 Arial !important; }
}
/*iOS Mobile - amp player shows masks and rounded corners*/
button.amp-control { border-radius: unset !important; }
/*move the mute button and AD timer*/
.amp-ad-component.amp-ad-time { padding-right: 4em; }
.amp-unmute.amp-component.amp-icon.amp-button.amp-bg.amp-hover { margin-top: 2em; }
/*Video to popout when not in view*/
.full-video-small {
position: fixed !important;
bottom: 20px;
right: 20px;
width: 320px;
max-width: 65vw;
height: 180px;
padding-bottom: 0;
z-index: 999;
}
.close { display: none; }
.pinned-title { display: none; }
.full-video-small .close {
position: relative;
top: -2rem;
display: inline-block;
float: right;
width: 1.5rem;
line-height: 1.5rem;
text-align: center;
cursor: pointer;
border-radius: 0.25rem;
background-color: lightgray;
}
.full-video-small .pinned-title {
position: relative;
top: -2rem;
display: inline-block;
line-height: 1.5rem;
text-align: center;
color: #666;
background-color: transparent;
}
/*removes the time stamp during ads*/
.amp-ad-break .amp-time-display { display:none; }
</style>
<!-- ./VideoPlayerTop -->
<link type="text/css" rel="stylesheet" href="/css/custom_slates/custom_slate_default.css?v=8_3_1" />
<script>
if (googletag == null) {
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
var sizeMappings;
console.log('No ad tags exist!');
}
</script>
<!-- START SEARCH: Cludo -->
<link href="https://customer.cludo.com/css/templates/v1.1/essentials/cludo-search.min.css" type="text/css" rel="stylesheet" />
<!--[if lte IE 9]>
<script src="https://api-us1.cludo.com/scripts/xdomain.js" slave="https://api-us1.cludo.com/proxy.html" type="text/javascript"></script>
<![endif]-->
<!-- END SEARCH -->
</head>
<body >
<form method="post" action="./77420?day=azx" id="ctl01">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Lzu2H1B11ctSf9rT5GB7gjTTBmUoJYo5t8b/Y//n5T+RD3/KomZ4vcvCq7u5xibukjCo4szx2EqVeBAs3yE2YvTZRqaYGkMAz9jS3CoDW4KPLHJtFLXjrWqvXrRlMipOhXw7PaVTheN5e9CTdS7AjXMn7jArwAClwygk4GUKWssphMGbRUEzlkamvdd2gjWeEyq2ZreqI+aQtTaLDFim6Q==" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="8E87A3C4" />
</div>
<a href="#content" class="sr-only sr-only-focusable" aria-label="Skip Navigation">Skip to main content</a>
<a name="top"></a>
<!-- BEGIN: MainNavigation.ASCX -->
<div id="MainNav_MainNavigationControl_networkMainNavPanel">
<header class="masthead" role="banner">
<div class="utility">
<div class="wrapper">
<!-- BEGIN: SocialMenuControl.ASCX -->
<div class="social-links">
<ul>
<li>
<a href="https://www.facebook.com/WFN"
target="_blank" >
<span class="icon-facebook" aria-hidden="true"></span>
<span class="sr-only">Facebook</span>
</a>
</li>
<li>
<a href="https://twitter.com/wfn"
target="_blank" >
<span class="icon-twitter" aria-hidden="true"></span>
<span class="sr-only">Twitter</span>
</a>
</li>
<li>
<a href="https://www.youtube.com/user/wfnvideos"
target="_blank" >
<span class="icon-youtube-play" aria-hidden="true"></span>
<span class="sr-only">YouTube</span>
</a>
</li>
<li>
<a href="https://www.pinterest.com/wfntv/"
target="_blank" >
<span class="icon-pinterest-circled" aria-hidden="true"></span>
<span class="sr-only">Pinterest</span>
</a>
</li>
<li>
<a href="https://www.instagram.com/worldfishingnetwork/"
target="_blank" >
<span class="icon-instagram" aria-hidden="true"></span>
<span class="sr-only">Instagram</span>
</a>
</li>
</ul>
</div><!-- .social-links -->
<!-- END: SocialMenuControl.ASCX -->
</div>
<!-- .wrapper -->
</div>
<!-- .utility -->
<div class="main-nav">
<div class="wrapper">
<div class="row">
<div class="col-xs-12 col-sm-3 col-md-2 col-lg-2">
<a href="#" class="toggle-menu" aria-label="Toggle Mobile Menu"><span class="icon-menu" aria-hidden="true"></span></a>
<div class="logo" aria-label="Site Logo">
<a href="/default.aspx">
<img src="/network/img/wfn/logo.png" title="World Fishing Network" /></a>
</div>
</div>
<!-- col-xs-12 col-sm-3 col-md-2 col-lg-2 -->
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6" role="navigation" aria-label="Main Menu">
<nav class="main drop-down-menu">
<ul class="navigation">
<!-- menu id: 77045 --><li role="none" class=""><a href="/showlisting/77184" role="menuitem" target="_self" >Shows<span class='icon-arrow-down'></span></a><!-- menu id = 77073 --><ul><li role="none"><a href="/showlisting/77184" role="menuitem" target="_self" class="">All</a><!-- menu id = 77076 --><li role="none"><a href="/showlisting/77193" role="menuitem" target="_self" class="">Current Shows</a><!-- menu id = 77077 --><li role="none"><a href="/personalities/94675" role="menuitem" target="_self" class="">Personalities</a><!-- menu id = 77108 --><li role="none"><a href="/content/show-feedback/240733" role="menuitem" target="_self" class="">Show Feedback</a><!-- menu id = 77080 --></ul></li><li role="none" class=""><a href="/schedule/77420" role="menuitem" target="_self" >Schedule<span class='icon-arrow-down'></span></a><!-- menu id = 77074 --><ul><li role="none"><a href="/schedule/77420" role="menuitem" target="_self" class="">Full Schedule</a><!-- menu id = 77419 --><li role="none"><a href="/listing/81895" role="menuitem" target="_self" class="">Program Blocks</a><!-- menu id = 77418 --></ul></li><li role="none" class=""><a href="/showlisting/77205" role="menuitem" target="_self" >Watch<span class='icon-arrow-down'></span></a><!-- menu id = 77075 --><ul><li role="none"><a href="/showlisting/77205" role="menuitem" target="_self" class="">Watch By Show</a><!-- menu id = 77091 --><li role="none"><a href="/videosbygenre/77204" role="menuitem" target="_self" class="">Watch By Genre</a><!-- menu id = 77092 --></ul></li>
</ul>
</nav>
<!-- .main drop-down-menu -->
</div>
<div class="col-xs-12 col-sm-3 col-md-4 col-lg-4 has-search" id="cludo_search_form" role="Search">
<div class="row">
<div class="col-xs-11 col-sm-9 col-md-10 col-lg-10">
<label class="sr-only" for="search_field">What are you looking for?</label>
<input placeholder="" name="search" id="search_field" type="search" /></div>
<div class="col-xs-1 col-sm-3 col-md-2 col-lg-2">
<button class="btn-clear"><span class="icon-search" aria-hidden="true"><span class="sr-only">Search</span></span></button>
</div>
</div>
<!-- .row -->
</div>
<!-- .col-xs-12 col-sm-3 col-md-4 col-lg-4 has-search -->
</div>
<!-- .row -->
</div>
<!-- .wrapper -->
</div>
<!-- .main-nav-->
</header>
</div>
<!-- END: MainNavigation.ASCX -->
<!-- AdTagDisplay ID = 0 AdPosition = adpos_top-->
<section class="ad-wrapper bkg-clear center">
<div class="advertisement-label has-ad">Advertisement</div>
<div id="adpos_top">
<script>googletag.cmd.push(function() {googletag.display('adpos_top');});</script> </div>
</section>
<a name="content" id="content"></a>
<section class="has-days">
<div class="wrapper">
<ul class="alpha-nav">
</ul>
</div>
</section>
<section class="wrapper has-show-times">
</section>
<!-- AdTagDisplay ID = 0 AdPosition = adpos_bottomA-->
<section class="ad-wrapper full-width">
<div class="advertisement-label has-ad">Advertisement</div>
<div id="adpos_bottomA">
<script>
googletag.cmd.push(function() {googletag.display('adpos_bottomA');});
</script></div>
</section>
<!-- BEGIN: Footer.ASCX -->
<div id="FooterNav_FooterNavigation_networkFooterPanel">
<footer>
<div class="wrapper">
<div class="row provider-search">
<div class="col-xs-6 col-sm-5 provider-label">
<span>GET WORLD FISHING NETWORK NOW</span>
</div>
<div class="col-xs-4 col-sm-2">
<label class="sr-only" for="postal-code">Zip Code</label>
<span><input id="postal-code" name="postal-code" maxlength="5" placeholder="Enter Zip Code" aria-label="Search for Provider" onkeyup="captureEnter(); return false;"></span>
</div>
<div class="col-xs-2 col-sm">
<span><button class="inline load-more" aria-label="Submit Search" onclick="chfinder(); return false;">GO</button></span>
</div>
</div><!--.row provider-search -->
<div class="row footer-nav">
<div class="col-xs-12 col-sm-3 col-md-3 col-lg-3 quick-links">
<p><a href="/" class="logo"><img src="/network/img/wfn/logo-footer.svg" title="World Fishing Network" /></a></p>
<div class="promoted-links">
<ul role="navigation" aria-label="Main Footer Navigation">
<li><a href='/showlisting/77184' title='SHOWS' target='_self'>SHOWS</a></li><li><a href='/schedule/77420' title='SCHEDULE' target='_self'>SCHEDULE</a></li><li><a href='/showlisting/77205' title='WATCH' target='_self'>WATCH</a></li>
</ul>
</div>
<!-- BEGIN: SocialMenuControl.ASCX -->
<div class="social-links">
<ul>
<li>
<a href="https://www.facebook.com/WFN"
target="_blank" >
<span class="icon-facebook" aria-hidden="true"></span>
<span class="sr-only">Facebook</span>
</a>
</li>
<li>
<a href="https://twitter.com/wfn"
target="_blank" >
<span class="icon-twitter" aria-hidden="true"></span>
<span class="sr-only">Twitter</span>
</a>
</li>
<li>
<a href="https://www.youtube.com/user/wfnvideos"
target="_blank" >
<span class="icon-youtube-play" aria-hidden="true"></span>
<span class="sr-only">YouTube</span>
</a>
</li>
<li>
<a href="https://www.pinterest.com/wfntv/"
target="_blank" >
<span class="icon-pinterest-circled" aria-hidden="true"></span>
<span class="sr-only">Pinterest</span>
</a>
</li>
<li>
<a href="https://www.instagram.com/worldfishingnetwork/"
target="_blank" >
<span class="icon-instagram" aria-hidden="true"></span>
<span class="sr-only">Instagram</span>
</a>
</li>
</ul>
</div><!-- .social-links -->
<!-- END: SocialMenuControl.ASCX -->
</div><!-- .col-xs-12 col-sm-3 col-md-3 col-lg-3 quick-links -->
<div class="col-xs-12 col-sm-9 col-md-9 col-lg-9">
<div class="row">
<div class="col-xs-12 col-sm-8 col-md-8 col-lg-8 col footer-links">
<h5>Links</h5>
<div class="two-col">
<ul role="navigation" aria-label="Links">
<li><a href='/content/about/137623' class='' target='_self'>ABOUT</a></li><li><a href='http://www.outdoorsg.com/advertise/' class='' target='_blank'>ADVERTISE</a></li><li><a href='/content/contact-us/83381' class='' target='_self'>CONTACT</a></li><li><a href='http://www.outdoorsg.com/press/' class='' target='_blank'>PRESS</a></li><li><a href='/content/show-feedback/240733' class='' target='_self'>SHOW FEEDBACK</a></li><li><a href='http://www.outdoorsg.com/brands/' class='' target='_blank'>MEDIA KIT</a></li><li><a href='/personalities/94675' class='' target='_self'>PERSONALITIES</a></li><li><a href='//content.osgnetworks.tv/worldfishingnetwork/content/files/world-fishing-network-show-submission-9-2018.pdf' class='' target='_blank'>NEW SHOW SUBMISSION</a></li><li><a href='/network/newsletter/wfn/wfn-signup18.html' class='newsletter-signup' target='_self'>NEWSLETTER SIGNUP</a></li><li><a href='http://affiliates.outdoorsg.com/' class='' target='_blank'>CABLE AFFILIATES</a></li><li><a href='/content/faq/81939' class='' target='_self'>FAQ</a></li><li><a href='//www.outdoorsg.com/about/careers/' class='' target='_blank'>CAREERS</a></li><li><a href='/content/technical-information/357698' class='' target='_self'>TECHNICAL INFORMATION</a></li><li><a href='/content/ada-statement/388133' class='' target='_self'>ADA STATEMENT</a></li>
</ul>
</div>
</div>
<div class="col-xs-12 col-sm-4 col-md-4 col-lg-4 col footer-links">
<h5>Our Networks</h5>
<ul role="navigation" aria-label="Our Networks">
<li><a href='http://www.outdoorchannel.com/' class='' target='_blank'>OUTDOOR CHANNEL</a></li><li><a href='http://www.thesportsmanchannel.com/' class='' target='_blank'>SPORTSMAN CHANNEL</a></li><li><a href='http://www.worldfishingnetwork.com/' class='' target='_blank'>WORLD FISHING NETWORK</a></li><li><a href='https://app.myoutdoortv.com/' class='' target='_blank'>MYOUTDOORTV</a></li><li><a href='http://www.majorleaguefishing.com/' class='' target='_blank'>MAJOR LEAGUE FISHING</a></li><li><a href='http://www.downrange.tv/blog/' class='' target='_blank'>DOWN RANGE TV</a></li><li><a href='http://www.cascity.com/' class='' target='_blank'> CAS CITY</a></li>
</ul>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 footer-links privacy-links">
<ul role="navigation" aria-label="Privacy">
<li><a href='/terms/99076' class='' target='_self'>TERMS OF USE</a></li><li><a href='/content/privacy-policy/99070' class='' target='_self'>PRIVACY POLICY</a></li><li><a href='/cookie/99073' class='' target='_self'>COOKIE POLICY</a></li><li><a href='/privacy/99070#californiaprivacy' class='' target='_self'>YOUR CALIFORNIA PRIVACY POLICY</a></li><li><a href='/content/ada-statement/388133' class='' target='_self'>ADA STATEMENT</a></li><li><a href='/content/affiliate/458822' class='' target='_blank'>AFFILIATE ADVERTISING POLICY</a></li><li><a href='/content/privacy-california-delete-my-info/378739' class='' target=''>DO NOT SELL MY PERSONAL INFORMATION</a></li>
</ul>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 footer-links copyright" aria-label="Copyright">
&copy;2023 Outdoor Sportsman Group. All Rights Reserved.
</div>
</div>
</div>
</div><!-- .row footer-nav -->
</div><!-- .wrapper -->
<a href="#top" aria-label="To Top" style="display: none;"><span class="icon-up-open" aria-hidden="true"></span><span class="sr-only">To Top of Page</span></a>
</footer>
</div>
<script typeof="text/javascript">
function chfinder() {
window.location.replace('/channelfinder/' + document.getElementById('postal-code').value);
}
function captureEnter() {
if (window.event.keyCode == 13) {
window.location.replace('/channelfinder/' + document.getElementById('postal-code').value);
return false;
}
else {
return true;
}
}
</script>
<!-- END: Footer.ASCX -->
<div id="dfpid" data-id-name="/4930/OSGMagazines/"></div><!-- used for ads -->
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
<script>
(function (i, s, o, g, r, a, m)
{
i['GoogleAnalyticsObject'] = r; i[r] = i[r] ||
function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o), m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-930626-1', 'auto');
ga('send', 'pageview');
</script>
<script src="/js/vendor/modernizr-3.5.0.min.js"></script>
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.11.2.min.js"><\/script>')</script>
<script src="/network/js/plugins.js?v=7_5_4"></script>
<script src="/network/js/main.js?v=7_5_4"></script>
<!-- footer javascript goes here -->
<script src="//privacy.outdoorsg.com/js/privacy.js"></script>
<!-- video player home to pop out put 1 pixel size wrapper to not show video
HACK for pages that don't already have a video player control on them -->
<div id="videowrapper" style="width:1px; height:1px;">
<div class="video-container">
<div class="full-video">
<span onclick="closeModal('.full-video')" class="close">&times;</span>
<div id="akamai-media-player"></div>
</div>
</div>
</div>
<!-- VideoPlayerJSControl -->
<!-- ./VideoPlayerJSControl -->
</form>
<div id="consent" class="consent-popup" aria-label="Privacy Policy Consent" data-cookie-link="/cookie/247032" data-privacy-link="/privacy/247031" data-style="custom" style="display: none;"></div>
<!-- www.Cludo.com search start JS -->
<!--[if lte IE 9]>
<script src="https://api.cludo.com/scripts/xdomain.js" slave="https://api.cludo.com/proxy.html"></script>
<![endif]-->
<!-- www.Cludo.com search end JS -->
<!-- www.Cludo.com Search body init script start -->
<!-- searchUrl: "/assets/10000367/10000809/index.html", -->
<script type="text/javascript" src="//customer.cludo.com/scripts/bundles/search-script.min.js"></script>
<script type="text/javascript" src="//customer.cludo.com/assets/10000367/10000809/cludo-search.min.js"></script>
<script>
var CludoSearch;
(function () {
var cludoSettings = {
customerId: 10000367,
engineId: 10000541,
searchUrl: '/search-results.aspx',
//searchInputs: ["cludo_search_form", "cludo_search_form_nav"],
searchInputs: ['cludo_search_form'],
type: 'inline',
template: 'StandardInlineImages',
searchApiUrl: 'https://api-us1.cludo.com/api/v3',
initSearchBoxText: "",
allowSearchWithoutSearchword: true,
language: 'en',
searchInputs: ['cludo_search_form'],
type: 'inline',
template: 'StandardInlineImages',
searchApiUrl: 'https://api-us1.cludo.com/api/v3',
hideSearchFilters: true,
loading: "<img src='//customer.cludo.com/img/loading.gif' title='Loading' class='loading' role='progressbar' /><div class='loading-more-text'>Loading results. Please wait ...</div>",
customCallbackAfterSearch: function () {
AppCludo.init();
}
};
CludoSearch= new Cludo(cludoSettings);
var valueBoost = [{
"FieldName": "DomainName",
"Boosts":[
{
"Values": ["https://www.worldfishingnetwork.com/"],
"Boost": 1000
}
]
}];
CludoSearch.params.valueBoost = valueBoost;
//CludoSearch.translateProvider.translations["en"]["load_more"] = "See more <span class='icon-refresh'></span>";
// added for ADA
CludoSearch.translateProvider.translations["en"]["your_search_on"] = "<h2>Your search for '<b>{{value}}</b>' ";
CludoSearch.translateProvider.translations["en"]["total_results"] = "returned <b>{{value}}</b> results</h2>";
CludoSearch.init();
})();
</script>
</body>
</html>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="worldfishingnetwork.com">
<channels>
<channel lang="en" xmltv_id="WorldFishingNetwork.us" site_id="#">World Fishing Network</channel>
</channels>
</site>

View file

@ -0,0 +1,79 @@
const cheerio = require('cheerio')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const timezone = require('dayjs/plugin/timezone')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(timezone)
dayjs.extend(customParseFormat)
module.exports = {
site: 'worldfishingnetwork.com',
days: 2,
url({ date }) {
return `https://www.worldfishingnetwork.com/schedule/77420?day=${date.format('ddd')}`
},
parser({ content, date }) {
const programs = []
const items = parseItems(content, date)
items.forEach(item => {
let $item = cheerio.load(item)
const prev = programs[programs.length - 1]
let start = parseStart($item, date)
if (prev) {
if (start.isBefore(prev.start)) {
start = start.add(1, 'd')
date = date.add(1, 'd')
}
prev.stop = start
}
const stop = start.add(30, 'm')
programs.push({
title: parseTitle($item),
sub_title: parseSubTitle($item),
description: parseDescription($item),
icon: parseIcon($item),
start,
stop
})
})
return programs
}
}
function parseTitle($item) {
return $item('.show-title > h3').text().trim()
}
function parseSubTitle($item) {
return $item('.show-title').clone().children().remove().end().text().trim()
}
function parseDescription($item) {
return $item('.show-title > p').text().trim()
}
function parseIcon($item) {
const url = $item('.show-img > img').attr('src')
return url ? `https:${url}` : null
}
function parseStart($item, date) {
const time = $item('.show-time > h2').clone().children().remove().end().text().trim()
const period = $item('.show-time > h2 > span > strong').text().trim()
return dayjs.tz(
`${date.format('YYYY-MM-DD')} ${time} ${period}`,
'YYYY-MM-DD HH:mm A',
'America/New_York'
)
}
function parseItems(content, channel, date) {
const $ = cheerio.load(content)
return $('.show-item').toArray()
}

View file

@ -0,0 +1,59 @@
// npx epg-grabber --config=sites/worldfishingnetwork.com/worldfishingnetwork.com.config.js --channels=sites/worldfishingnetwork.com/worldfishingnetwork.com.channels.xml --output=guide.xml --days=2
const { parser, url } = require('./worldfishingnetwork.com.config.js')
const fs = require('fs')
const path = require('path')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const date = dayjs.utc('2023-01-24', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '#',
xmltv_id: 'WorldFishingNetwork.us'
}
it('can generate valid url', () => {
expect(url({ date })).toBe('https://www.worldfishingnetwork.com/schedule/77420?day=Tue')
})
it('can parse response', () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'), 'utf8')
let results = parser({ content, date })
results = results.map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results[0]).toMatchObject({
start: '2023-01-24T05:00:00.000Z',
stop: '2023-01-24T07:00:00.000Z',
title: `Major League Fishing`,
sub_title: 'Challenge Cup Sudden Death Round 2',
description:
'Nine anglers race to a target weight on Lake Wylie in the Lucas Oil Challenge Cup, presented by B&W Trailer Hitches, Rock Hill, South Carolina. Only four will move on to the Championship Round.',
icon: 'https://content.osgnetworks.tv/shows/major-league-fishing-thumbnail.jpg'
})
expect(results[41]).toMatchObject({
start: '2023-01-25T04:30:00.000Z',
stop: '2023-01-25T05:00:00.000Z',
title: `Fishing 411`,
sub_title: 'Flint Wilderness Walleye',
description:
'Mark Romanack and Bryan Darland fish walleye on Klotz Lake in the famed Flint Wilderness of Ontario',
icon: 'https://content.osgnetworks.tv/shows/fishin-411-thumbnail.jpg'
})
})
it('can handle empty guide', () => {
const results = parser({
date,
content: fs.readFileSync(path.resolve(__dirname, '__data__/no_content.html'), 'utf8')
})
expect(results).toMatchObject([])
})