<?php 
 | 
class kurs implements module { 
 | 
    static $name2iso = array( 
 | 
        'dolar' => 'USD', 
 | 
        'dolara' => 'USD', 
 | 
        'euro' => 'EUR', 
 | 
        'rubel' => 'RUB', 
 | 
        'rubla' => 'RUB', 
 | 
        'GPB' => 'GBP', 
 | 
        'funt' => 'GBP', 
 | 
        'funta' => 'GBP', 
 | 
        'funt szterling' => 'GBP', 
 | 
        'funta szterlinga' => 'GBP', 
 | 
        'frank' => 'CHF', 
 | 
        'franka' => 'CHF', 
 | 
        'frank szwajcarski' => 'CHF', 
 | 
        'franka szwajcarskiego' => 'CHF', 
 | 
        'jen' => 'JPY', 
 | 
        'jena' => 'JPY', 
 | 
        'forint' => 'HUF', 
 | 
        'forinta' => 'HUF', 
 | 
        'hrywna' => 'UAH', 
 | 
        'hrywny' => 'UAH', 
 | 
        'hrywien' => 'UAH', 
 | 
        'kuna' => 'HRK', 
 | 
        'kuny' => 'HRK', 
 | 
        'kun' => 'HRK', 
 | 
        'lej' => 'RON', 
 | 
        'lei' => 'RON', 
 | 
        'lejow' => 'RON', 
 | 
        'lew' => 'BGN', 
 | 
        'lewy' => 'BGN', 
 | 
        'lewow' => 'BGN', 
 | 
        'peso' => 'MXN', 
 | 
        'rupia' => 'IDR', 
 | 
        'rupii' => 'IDR', 
 | 
        'SDR' => 'XDR', 
 | 
    ); 
 | 
     
 | 
    static function register_cmd() { 
 | 
        return array( 
 | 
            'kursy' => 'cmd_kurs', 
 | 
            'kurs' => 'cmd_kurs', 
 | 
            'k' => 'cmd_kurs', 
 | 
            'waluta' => 'cmd_kurs', 
 | 
            'waluty' => 'cmd_kurs', 
 | 
            'euro' => 'cmd_rewrite', 
 | 
            'dolar' => 'cmd_rewrite', 
 | 
            'dolara' => 'cmd_rewrite', 
 | 
        ); 
 | 
    } 
 | 
     
 | 
    static function help($cmd = NULL) { 
 | 
        if($cmd === NULL) { 
 | 
            GGapi::putRichText('kurs ', TRUE); 
 | 
            GGapi::putRichText('waluta', FALSE, TRUE); 
 | 
            GGapi::putRichText("\n".'   Kurs danej waluty wg. NBP'."\n\n"); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            GGapi::putRichText('kurs ', TRUE); 
 | 
            GGapi::putRichText('[waluta]', FALSE, TRUE); 
 | 
            GGapi::putRichText(' (aliasy: '); 
 | 
            GGapi::putRichText('kursy, k, waluta', TRUE); 
 | 
            GGapi::putRichText(')'."\n".'   Zwraca aktualne kursy (średnie, a także kupna i sprzedaży - jeśli są dostępne) waluty '); 
 | 
            GGapi::putRichText('[waluta]', FALSE, TRUE); 
 | 
            GGapi::putRichText('.'."\n".'   Argument powinien być kodem waluty zgodnym z ISO 4217 lub jedną z popularnych nazw (np. dolar, euro).'."\n\n".'   Tabela A jest aktualizowana codziennie po godzinie 12:00, tabela B w środy po 12:00, tabela C codziennie po 8:00'."\n\n"); 
 | 
            GGapi::putRichText('Przykłady', FALSE, FALSE, TRUE); 
 | 
            GGapi::putRichText("\n".'kurs USD'."\n".'kurs EUR'); 
 | 
        } 
 | 
    } 
 | 
     
 | 
    static function cmd_rewrite($nazwa, $argument) { 
 | 
        self::cmd_kurs('rewrite', self::$name2iso[$nazwa].' '.$argument); 
 | 
    } 
 | 
     
 | 
    static function cmd_kurs($nazwa, $argument) { 
 | 
        $argument = funcs::utfToAscii(trim($argument)); 
 | 
         
 | 
        if(isset(self::$name2iso[$argument])) { 
 | 
            $argument = self::$name2iso[$argument]; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            $argument = strtoupper($argument); 
 | 
        } 
 | 
         
 | 
        $waluty_A = unserialize(file_get_contents('./data/kurs/A_kursy.txt')); 
 | 
         
 | 
        if(empty($argument)) { 
 | 
            $waluty_C = unserialize(file_get_contents('./data/kurs/C_kursy.txt')); 
 | 
             
 | 
            $txt = 'Kursy średnie walut obcych z dnia '.$waluty_A['i_n_f_o']['data'].' (tabela NBP nr '.$waluty_A['i_n_f_o']['tabela'].') oraz kursy kupna i sprzedaży z dnia '.$waluty_C['i_n_f_o']['data'].' (tabela NBP nr '.$waluty_C['i_n_f_o']['tabela'].')'."\n"; 
 | 
            foreach($waluty_C as $kod => $dane) { 
 | 
                if($kod == 'i_n_f_o') continue; 
 | 
                $txt .= "\n".$dane['ilosc'].' '.$kod.' => '.$waluty_A[$kod]['kurs'].' PLN'; 
 | 
                $txt .= ' (kupno: '.$dane['kupno'].' PLN, sprzedaż: '.$dane['sprzedaz'].' PLN)'; 
 | 
            } 
 | 
             
 | 
            GGapi::putText($txt); 
 | 
            return TRUE; 
 | 
        } 
 | 
         
 | 
        if(isset($waluty_A[$argument])) { 
 | 
            $txt = 'Kursy średnie walut obcych z dnia '.$waluty_A['i_n_f_o']['data'].' (tabela NBP nr '.$waluty_A['i_n_f_o']['tabela'].')'; 
 | 
            $waluty_C = unserialize(file_get_contents('./data/kurs/C_kursy.txt')); 
 | 
            if(isset($waluty_C[$argument])) { 
 | 
                 $txt .= ' oraz kursy kupna i sprzedaży z dnia '.$waluty_C['i_n_f_o']['data'].' (tabela NBP nr '.$waluty_C['i_n_f_o']['tabela'].')'; 
 | 
            } 
 | 
             
 | 
            $txt .= "\n\n".$waluty_A[$argument]['ilosc'].' '.$argument.' => '.$waluty_A[$argument]['kurs'].' PLN'; 
 | 
            if(isset($waluty_C[$argument])) { 
 | 
                $txt .= ' (kupno: '.$waluty_C[$argument]['kupno'].' PLN, sprzedaż: '.$waluty_C[$argument]['sprzedaz'].' PLN)'; 
 | 
            } 
 | 
             
 | 
            GGapi::putText($txt); 
 | 
            return TRUE; 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            $waluty_B = unserialize(file_get_contents('./data/kurs/B_kursy.txt')); 
 | 
            if(!isset($waluty_B[$argument])) { 
 | 
                GGapi::putText('Nie znaleziono żądanej waluty. Sprawdź, czy kod waluty jest zgodny z ISO 4217.'."\n\n"); 
 | 
                GGapi::putRichText('Przykłady', FALSE, FALSE, TRUE); 
 | 
                GGapi::putRichText("\n".'kurs USD'."\n".'kurs EUR'); 
 | 
                 
 | 
                return FALSE; 
 | 
            } 
 | 
             
 | 
            GGapi::putText('Kursy średnie walut obcych z dnia '.$waluty_B['i_n_f_o']['data'].' (tabela NBP nr '.$waluty_B['i_n_f_o']['tabela'].')'."\n\n".$waluty_B[$argument]['ilosc'].' '.$argument.' => '.$waluty_B[$argument]['kurs'].' PLN'); 
 | 
             
 | 
            return TRUE; 
 | 
        } 
 | 
    } 
 | 
} 
 | 
?> 
 |