forked from Tviso/chrome-extension
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtmdb.js
More file actions
91 lines (79 loc) · 2.66 KB
/
tmdb.js
File metadata and controls
91 lines (79 loc) · 2.66 KB
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
/* global $ */
/* global document */
module.exports = function() {
/**
* Returns the type media type of the current page
* @return {string} SERIE | MOVIE |Â EPISODE
*/
var getMediaType = function() {
//Used to pass tests
if (typeof(document) !== 'undefined') {
if (document.location.href.match(/\/movie\//)) {
return 'MOVIE';
}
if (document.location.href.match(/\/tv\//)) {
return 'SERIE';
}
}
return false;
};
/**
* Returns basic information of the current media
* @param {string} mediaType : received from "getMediaType" function
* @return {object}
*
* media {
* mediaType {string mandatory}: MOVIE | SERIE | EPISODE,
* title: {string mandatory} If mediaType is EPISODE, you should return the title of the serie
* imdb: {string optional} imdb id if exists (example "tt2389182")
* year: {int optional}
* cast: {string optional} a list of comma separed actors (example: "Scarlett Johansson,Morgan Freeman")
* director: {string optional} a list of comma separed directors
*
* season: {int mandatory for EPISODE}: episode's season number
* episode: {int mandatory for EPISODE}: episode number
* }
*/
var getMediaInfo = function(mediaType) {
var media = {
mediaType: mediaType,
title: null,
imdb: null,
year: null,
cast: [],
directors: [],
episode: null,
season: null,
};
if (typeof($) !== 'undefined') {
// TITLE
media.title = $('h2#title span[itemprop=name]').text();
// YEAR
media.year = $('#year').text().replace(/\(|\)/g, '');
// DIRECTORS
$('span[itemprop=director]').each(function(k,v){
media.directors.push($(v).find('span[itemprop=name]').text());
});
}
return media;
};
/**
* The jQuery selectors of the page to interact with tviso
* @return {object} with the format:
* {
* 'jQuerySelector1': 'status1',
* 'jQuerySelector2': 'status2'
* }
* Status are: 'watched', 'following', 'pending' or 'no_status'
*/
var checkSelectors = {
false: false
};
return {
name: 'tmdb', //A string identifier of the webpage
url: 'themoviedb\.org', //A regexp to detect the page with the URL
getMediaInfo: getMediaInfo,
getMediaType: getMediaType,
checkSelectors: checkSelectors
};
};