-
Notifications
You must be signed in to change notification settings - Fork 0
/
episode.php
75 lines (66 loc) · 2.1 KB
/
episode.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
<?php
// NZTV
// Copyright (c) 2010 Blue Static
// Authored by Robert Sesek <rsesek@bluestatic.org>
//
// This program is free software: you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation, either version 3 of the License, or any later version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
// more details.
//
// You should have received a copy of the GNU General Public License along with
// this program. If not, see <http://www.gnu.org/licenses/>.
namespace nztv;
require_once PHALANX_ROOT . '/data/model.php';
class Episode extends \phalanx\data\Model
{
// phalanx\base\Struct
protected $fields = array(
'nzbid', /*int*/
'show_id', /*int*/
'title', /*string*/
'season', /*int*/
'episode', /*int*/
'timestamp', /*time_t*/
);
// phalanx\data\Model
protected $table = 'downloads';
protected $condition = 'nzbid = :nzbid';
protected $primary_key = array('nzbid');
protected /*Show*/ $show = NULL;
public /*Show*/ function show()
{
if (!$this->show) {
$this->show = new Show($this->show_id);
$this->show->FetchInto();
}
return $this->show;
}
public /*bool*/ function IsAlreadyDownloaded()
{
$ep = new Episode();
$ep->set_condition('show_id = :show_id AND season = :season AND episode = :episode');
$ep->show_id = $this->show()->show_id;
$ep->season = $this->season;
$ep->episode = $this->episode;
try {
$result = $ep->Fetch();
return ($result != NULL);
} catch (\phalanx\data\ModelException $e) {
return FALSE;
}
}
// Takes a stringified episode number (SSxEE) and returns the 2-Tuple of the
// integers. Returns NULL on error.
static public function SplitEpisodeNumber($string)
{
$split = explode('x', $string);
if (count($split) != 2)
return NULL;
return array(intval($split[0]), intval($split[1]));
}
}