11'use strict' ;
2- var Rollbar = require ( '../rollbar.js' ) ;
2+ const Rollbar = require ( '../rollbar.js' ) ;
33
4- var Item = require ( './item.js' ) ;
4+ const Item = require ( './item.js' ) ;
55
66function ItemParser ( ) { }
77
@@ -10,48 +10,30 @@ ItemParser.isEpisodeOrMovie = function () {
1010} ;
1111
1212ItemParser . isReady = function checkPage ( ) {
13- var type = document . querySelector ( "meta[name=type]" ) ;
14- if ( ! type ) {
15- return document . querySelector ( "a.tv-series-episodes__episode-link--active" ) !== null ;
16- }
17- return true ;
13+ return document . querySelector ( "a.tv-series-episode-list-item--active" ) !== null || document . querySelector ( "h1.tv-program-header__title" ) !== null ;
1814} ;
1915
2016ItemParser . parse = function parse ( callback ) {
21- var item ;
22- var type ;
23- var mainTitle ;
24- var typeElement = document . querySelector ( "meta[name=type]" ) ;
25- if ( typeElement ) {
26- switch ( typeElement . getAttribute ( "content" ) ) {
27- //Old format
28- case 'program' :
29- type = "movie" ;
30- mainTitle = document . querySelector ( "meta[name=title]" ) . getAttribute ( "content" ) ;
31- item = new Item ( { title : mainTitle , type : type } ) ;
32- break ;
33- case 'episode' :
34- type = "show" ;
35- mainTitle = document . querySelector ( "meta[name=title]" ) . getAttribute ( "content" ) ;
36- Rollbar . info ( "Seems to not be a season based series" , mainTitle ) ;
37- return ;
38- default :
39- Rollbar . error ( "Unknown series/movie type" , typeElement . getAttribute ( "content" ) ) ;
40- return ;
41- }
42- } else {
43- //new format as of july 2018 "/serie/narvestad-tar-ferie/sesong/1/episode/6"
17+ let item ;
18+ let type ;
19+ let mainTitle ;
20+ const movieTitleElement = document . querySelector ( ".tv-program-header__title" ) ;
21+ const seriesTitleElement = document . querySelector ( ".tv-series-hero__title" ) ;
22+ if ( movieTitleElement ) {
23+ type = "movie" ;
24+ const movieTitle = movieTitleElement . textContent
25+ item = new Item ( { title : movieTitle , type : type } ) ;
26+ } else if ( seriesTitleElement ) {
4427 type = "show" ;
45- mainTitle = document . querySelector ( ".tv-series-hero__title" ) . textContent ;
46- var uri = document . querySelector ( "a.tv-series-episodes__episode-link --active" ) . getAttribute ( "href" ) ;
28+ mainTitle = seriesTitleElement . textContent ;
29+ const uri = document . querySelector ( "a.tv-series-episode-list-item --active" ) . getAttribute ( "href" ) ;
4730 if ( ! uri . split ( '/' ) [ 3 ] || uri . split ( '/' ) [ 3 ] !== 'sesong' ) {
4831 Rollbar . error ( "Unexpected URL-format" , uri ) ;
4932 return ;
5033 }
51- var nrkSeriesId = uri . split ( "/" ) [ 2 ] ;
52- var season = uri . split ( "/" ) [ 4 ] ;
53- var number = uri . split ( "/" ) [ 6 ] ;
54- // var epTitle = document.querySelector('a[itemprop="name"]').innerHTML;
34+ const nrkSeriesId = uri . split ( "/" ) [ 2 ] ;
35+ const season = uri . split ( "/" ) [ 4 ] ;
36+ const number = uri . split ( "/" ) [ 6 ] ;
5537
5638 item = new Item ( {
5739 title : mainTitle ,
@@ -60,6 +42,8 @@ ItemParser.parse = function parse(callback) {
6042 type : type ,
6143 nrkId : nrkSeriesId
6244 } ) ;
45+ } else {
46+ Rollbar . error ( "Unknown series/movie type" , typeElement . getAttribute ( "content" ) ) ;
6347 }
6448 callback . call ( this , item ) ;
6549} ;
@@ -70,7 +54,7 @@ ItemParser.start = function start(callback) {
7054 callback . call ( this , null ) ;
7155 return ;
7256 }
73- var readyTimeout ;
57+ let readyTimeout ;
7458
7559 if ( ItemParser . isReady ( ) ) {
7660 ItemParser . parse ( callback ) ;
0 commit comments