-
Notifications
You must be signed in to change notification settings - Fork 4
/
filmin.js
136 lines (110 loc) · 4.19 KB
/
filmin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
module.exports = function() {
var getMediaType = function() {
//Used to pass tests
if (typeof(document) !== 'undefined') {
if (document.location.href.match(/\/pelicula\//)) {
return 'MOVIE';
}
if (document.location.href.match(/\/temporada-\d\d?\d?\/episodio-\d\d?\d?/)) {
return 'EPISODE';
}
if (document.location.href.match(/\/serie\//)) {
return 'SERIE';
}
}
return false;
};
var getMediaInfo = function(mediaType) {
var media = {
mediaType: mediaType,
title: null,
imdb: null,
year: null,
cast: [],
directors: [],
episode: null,
season: null,
};
//Used to pass tests
if (typeof($) !== 'undefined') {
if (mediaType === 'MOVIE') {
//Title
media.title = $('h1.strR').text();
//Imdb code
if ($('.main_imdb').attr('href').length > 0 && $('.main_imdb').attr('href').match(/.*(tt\d\d\d\d\d\d\d)/)) {
media.imdb = $('.main_imdb').attr('href').match(/.*(tt\d\d\d\d\d\d\d)/);
media.imdb = media.imdb[1];
}
//Year
media.year = parseInt($('.main_tech_data_info .ellipsis:nth-child(3)').closest('span').first().text());
//Cast
if ($('.main_title_awards').length > 0) {
$('.main_title_awards').each(function(k,v){
if($(v).text() === 'Actores') {
$(v).next().find('a').each(function(k2,v2) {
media.cast.push($(v2).text());
});
}
});
}
//Directors
if ($('h2.director a').length > 0) {
$('h2.director a').each(function(k, v) {
media.directors.push($(v).text());
});
}
} else if (mediaType === 'SERIE') {
//Title
media.title = $('#serieHeaderMain h1').text();
//Cast
if ($('#actorsInfo a').length > 0) {
$('#actorsInfo a').each(function(k,v){
media.cast.push($(v).text());
});
}
//Director
if ($('.main_tech_data_large span a').length > 0) {
$('.main_tech_data_large span a').each(function(k,v){
media.cast.push($(v).text());
});
}
} else if (mediaType === 'EPISODE') {
var title = $('#episodeImageInfo .title').text();
// Season
media.season = parseInt($('#episodeImageInfo .season').text().match(/\d+/)[0]);
// Get last part (episode N)
var splitted = title.split('(');
//Title
media.title = splitted[0].trim();
//Episode
media.episode = parseInt(splitted[splitted.length-1].match(/\d+/)[0]);
}
}
return media;
};
var checkSelectors = function() {
return {
//Movie
'.add_like:not(".option-added")': 'pending', //WTF?
'.add_like.option-added': 'no_status',
'.add_fav:not(".option-added")': 'watched',
'.add_fav.option-added': 'no_status',
'#pay': 'watched',
// Episode
'.payMethod': 'watched',
'#episodePromoCode': 'watched',
//Serie
'#addToFavourites': 'following',
// Its a pending for episodes (not supported)
//'#addToWannaSeeIt': 'pending',
//'#episodePromoCode a, .payMethod.payCard': 'watched'
};
};
return {
name: 'filmin',
url: 'www\.filmin\.es',
getMediaInfo: getMediaInfo,
getMediaType: getMediaType,
checkSelectors: checkSelectors
};
};