This repository has been archived by the owner on Mar 14, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
shelfGenerator.php
101 lines (81 loc) · 2.25 KB
/
shelfGenerator.php
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
<?php
include 'posterFetcher.php';
function object_to_array($data)
{
if (is_array($data) || is_object($data))
{
$result = array();
foreach ($data as $key => $value)
{
$result[$key] = object_to_array($value);
}
return $result;
}
return $data;
}
function getMoviesAsArray($endpoint) {
include 'config.php';
$movies = json_decode(file_get_contents($baseUrl . $endpoint));
$movies = object_to_array($movies);
return $movies;
}
function generateMovieElements($movies, $markAsDone = false, $addToWanted = false) {
include 'config.php';
$elements = '';
foreach ($movies as $movie) {
if ($markAsDone) {
$elements .= '<lockup markAsDone="' . $movie['_id'] . '">';
}
elseif ($addToWanted) {
$elements .= '<lockup addToWanted="'.$movie['identifiers']['imdb'].'">';
}
else {
$elements .= '<lockup>';
}
$poster = getPoster($movie);
$elements .= '
<img src="' . htmlentities($poster) . '" width="300" height="452"/>
<title>' . htmlentities($movie['info']['original_title']) . '</title>
</lockup>';
}
return $elements;
}
function insertIntoShelf($title, $moviesTemplate) {
return '
<shelf>
<header>
<title>' . $title . '</title>
</header>
<section>
' . $moviesTemplate . '
</section>
</shelf>
';
}
function generateMovieShelf($title, $movies, $markAsDone = false, $addToWanted = false) {
if ( ! count($movies)) return '';
$moviesTemplate = generateMovieElements($movies, $markAsDone, $addToWanted);
$shelfTemplate = insertIntoShelf($title, $moviesTemplate);
return $shelfTemplate;
}
function generateShelves($shelves) {
$template = '';
foreach ($shelves as $shelf) {
$movies = getMoviesAsArray($shelf['endpoint']);
$template .= generateMovieShelf(
$shelf['title'],
$movies['movies'],
$shelf['markAsDone'],
$shelf['addToWanted']
);
}
return $template;
}
function generateChartShelves() {
$chartShelves = [];
$charts = getMoviesAsArray('/charts.view');
$chartShelves[] = generateMovieShelf('Blu Ray Releases', $charts['charts'][0]['list'], false, true);
$chartShelves[] = generateMovieShelf('Box Office', $charts['charts'][2]['list'], false, true);
$chartShelves[] = generateMovieShelf('Top Rentals', $charts['charts'][1]['list'], false, true);
return implode('', $chartShelves);
}