Jacek Kowalski
2012-08-12 9dae9f90d578b5433df4664c6d1d6406074ca08f
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
<?php
include('./data/tv/xmltv_parse.php');
 
class tv extends xmltv_parse implements module {
    static function register_cmd() {
        return array(
            't' => 'cmd_tv',
            'tv' => 'cmd_tv',
            'program' => 'cmd_tv',
            'tvp' => 'cmd_tv',
            'tvp1' => 'cmd_tv',
            'tvp2' => 'cmd_tv',
            'tvn' => 'cmd_tv',
            'axn' => 'cmd_tv',
            'polsat' => 'cmd_tv',
            'polsta' => 'cmd_tv',
            'l' => 'cmd_list',
            'list' => 'cmd_list',
            'lita' => 'cmd_list',
            'lista' => 'cmd_list',
        );
    }
    
    static function parse_date(&$txt) {
        $known = array(
            'teraz' => 'now',
            'dzis' => 'today',
            'dzisiaj' => 'today',
            'jutro' => 'tomorrow',
            'pojutrze' => 'tomorrow +1 day',
            'po jutrze' => 'tommorow +1 day',
            'poniedzialek' => 'Monday',
            'wtorek' => 'Tuesday',
            'sroda' => 'Wednesday',
            'czwartek' => 'Thursday',
            'piatek' => 'Friday',
            'sobota' => 'Saturday',
            'niedziela' => 'Sunday',
        );
        for($i=0; $i<3; $i++) {
            $known[date('d.m', strtotime('+'.$i.' day'))] = 'today +'.$i.' day';
            $known[date('j.m', strtotime('+'.$i.' day'))] = 'today +'.$i.' day';
        }
        foreach($known as $test => $time) {
            if(substr($txt, -strlen($test))==$test) {
                $txt = trim(substr($txt, 0, -strlen($test)));
                return strtotime($time);
            }
            elseif(substr($txt, 0, strlen($test))==$test) {
                $txt = trim(substr($txt, strlen($test)));
                return strtotime($time);
            }
        }
        
        return time();
    }
    
    static function help($cmd=NULL) {
        if($cmd === NULL) {
            GGapi::putRichText('tv ', TRUE);
            GGapi::putRichText('kanał [kiedy]', FALSE, TRUE);
            GGapi::putRichText("\n".'   Program telewizyjny dla stacji ');
            GGapi::putRichText('kanał'."\n", FALSE, TRUE);
            GGapi::putRichText('lista ', TRUE);
            GGapi::putRichText("\n".'   Lista dostępnych stacji telewizyjnych'."\n\n");
        }
        elseif(substr($cmd, 0, 1) == 'l') {
            GGapi::putRichText('lista ', TRUE);
            GGapi::putRichText("\n".'   Podaje listę dostępnych w komendzie ');
            GGapi::putRichText('tv', TRUE);
            GGapi::putRichText(' stacji telewizyjnych'."\n\n");
        }
        else
        {
            GGapi::putRichText('tv ', TRUE);
            GGapi::putRichText('kanał [kiedy]', FALSE, TRUE);
            GGapi::putRichText(' (alias: ');
            GGapi::putRichText('program', TRUE);
            GGapi::putRichText(')'."\n".'   Podaje program  dla stacji ');
            GGapi::putRichText('kanał', FALSE, TRUE);
            GGapi::putRichText(' na ');
            GGapi::putRichText('[kiedy]'."\n\n", FALSE, TRUE);
            GGapi::putRichText('Przykład', FALSE, FALSE, TRUE);
            GGapi::putRichText("\n".'tv TVP 1'."\n".'tv TVP 1 sobota');
        }
    }
    
    static function cmd_list($name, $args) {
        self::$aliases = './data/tv/aliases';
        
        GGapi::putRichText('Dostępne stacje telewizyjne:', TRUE);
        GGapi::putRichText("\n".implode("\n", self::channels()));
    }
    
    static function cmd_tv($name, $args) {
        self::$file = './data/tv/xmltv-utf.xml';
        self::$aliases = './data/tv/aliases';
        
        $time = self::parse_date($args);
        
        if(empty($args)) {
            $args = $name;
        }
        
        $tv = self::aliases($args);
        
        if(!$tv) {
            GGapi::putText('Nieznana stacja telewizyjna. Spróbuj:'."\n".'tv TVP 1'."\n".'tv Discovery'."\n\n".'lub wpisz ');
            GGapi::putRichText('lista', TRUE);
            GGapi::putRichText(' by uzyskać listę dostępnych stacji telewizyjnych');
            return;
        }
        
        GGapi::putRichText('Program stacji '.$tv."\n", TRUE, FALSE, TRUE);
        self::schedule($tv, $time);
    }
}
?>