404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.137.180.196: ~ $
<?php
include "gregorian_jalali.php";
class DateConverter extends Intent {
    public $hasOtherIntents = true;
    private $intentId = 6;
    function init(){
        $this->name = "dateCnv";
        // preg_match('/(\d+((.|,)\d+)?)\S*\s*toman.*/', $input_line, $output_array);
        $this->patterns[] = new Pattern("today","/امروز/i");
        $this->patterns[] = new Pattern("today","/heute/i");
        $this->patterns[] = new Pattern("now","/jetzt/i");
        $this->patterns[] = new Pattern("tomorrow","/فردا/i");
        $this->patterns[] = new Pattern("yesterday","/gestern/i");
        $this->patterns[] = new Pattern("vorgestern","/vorgestern/i");
        $this->patterns[] = new Pattern("vorgestern","/پریروز/i");
        $this->patterns[] = new Pattern("yesterday","/دیروز/i");
        $this->patterns[] = new Pattern("tomorrow","/morgen/i");
        $this->patterns[] = new Pattern("overmorrow","/übermorgen/i");
        $this->patterns[] = new Pattern("overmorrow","/پس فردا/i");
        $this->patterns[] = new Pattern("nextWeek","/هفته بعد/i");
        $this->patterns[] = new Pattern("nextWeek","/nächste woche/i");
        $this->patterns[] = new Pattern("customNextDays","/(\d+) tage (nach|später)/i");
        $this->patterns[] = new Pattern("customPrevDays","/(\d+) tage (vor|früher)/i");
        $this->patterns[] = new Pattern("customNextDays","/((\d+)|[۰-۹]+) روز (بعد|دیگه)/i");
        $this->patterns[] = new Pattern("customPrevDays","/([۰-۹]+) روز (قبل|پیش)/i");
        $this->patterns[] = new Pattern("customPrevDays","/(\d+) روز (قبل|پیش)/i");
        $this->patterns[] = new Pattern("customPrevHours","/((\d+)|[۰-۹]+) ساعت (قبل|پیش)/i");
        $this->patterns[] = new Pattern("customNextHours","/((\d+)|[۰-۹]+) ساعت (بعد|دیگه)/i");
        $this->patterns[] = new Pattern("customPrevHours","/((\d+)|[۰-۹]+) stunde (vor|früher)/i");
        $this->patterns[] = new Pattern("customNextHours","/((\d+)|[۰-۹]+) stunde (nach|später)/i");
        // $this->patterns[] = new Pattern("euroToman","/(\d+((.|,)\d+)?)\S*\s*euro.*/i");
        // $this->patterns[] = new Pattern("euroToman","/(\d+((.|,)\d+)?)\S*\s*eur.*/i");
        // $this->patterns[] = new Pattern("euroToman","/([۰-۹]+((.|,)[۰-۹]+)?)\S*\s*یورو.*/i");
        // $this->patterns[] = new Pattern("euroToman","/([۰-۹]+((.|,)[۰-۹]+)?)\S*\s*یور.*/i");
        // $this->patterns[] = new Pattern("euroToman","/(\d+((.|,)\d+)?)\S*\s*€.*/i");
        // $this->patterns[] = new Pattern("euroToman","/([۰-۹]+((.|,)[۰-۹]+)?)\S*\s*€.*/i");
        // $this->patterns[] = new Pattern("euroToman","/(\d+((.|,)\d+)?)\S*\s*yoro.*/i");
    }
    
    function getIntentID(){
        return 6;
    }
    function act(){
        if($this->getIS()->getTG()->getDB()->getNumberOfActivityWithIntentId($this->getIS()->getTG()->chat_id, $this->intentId)>4){
            $this->getIS()->getTG()->getPatreonService()->sendJoinRequest();
        }
        if(!empty($this->data["entities"][0]['value'])){
            $date = $this->data["entities"][0]['value'];
            $date = $this->convertPersianNumbersToEnglish($date);
            $date = $this->getCustomNextPrevDays($date);
        } else {
            $date = $this->getConvertedText();
        }
        $dt = new DateTime($date);
        $dt->setTimezone(new DateTimeZone("Europe/Berlin"));
        $dateTimeInGermany = $dt->format('Y/m/d H:i:s');
        $germanyDateTimeParts = explode(" ", $dateTimeInGermany); 
        

        $dt->setTimezone(new DateTimeZone("Asia/Tehran"));
        $dateInIran = $dt->format('Y/m/d H:i:s');
        $dateTimeParts = explode(" ",$dateInIran);
        $dateParts = explode("/", $dateTimeParts[0]);
        $converter = gregorian_to_jalali($dateParts[0],$dateParts[1],$dateParts[2], $date);
        $dateInPersian = $this->convertEnglishNumbersToPersian($converter);
        $timeInPersian =  $this->convertEnglishNumbersToPersian($dateTimeParts[1]);
        // create a $dt object with the America/Denver timezone
 

        $text = $this->generateMessage($germanyDateTimeParts[0], $dateInPersian, $germanyDateTimeParts[1], $timeInPersian);
        $this->getIS()->getTG()->sendMessage($text,$this->getIS()->getTG()->chat_id);
    }
    function generateMessage($date, $converterPersian,  $time,  $timeInPersian){
        $unixTimestamp = strtotime($date);
        $dayOfWeek = date("l", $unixTimestamp);
        $persianDayOfWeek = $this->convertEnglishDayToPersian($dayOfWeek);
        $germanDayOfWeek = $this->convertEnglishDayToGerman($dayOfWeek);

        $text = 
            $germanDayOfWeek." ".$date." ".
            " ".$time.PHP_EOL.
            " ".$persianDayOfWeek." ".$converterPersian.
            " ".$timeInPersian;
        $text .= PHP_EOL;
        $text .= $this->getIS()->getTG()->botUsername."😊";
        return $text;

    }
    function convertEnglishDayToGerman($input)
    {
        $english = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Sunday', 'Saturday'];
        $german = [ 'Montag' ,  'Dienstag' ,  'Mitwoch' ,  'Donnerstag' ,  'Freitag' ,  'Samstag' , 'Sonntag' ];
        return str_replace($english, $german, $input);
    }
    function convertEnglishDayToPersian($input)
    {
        $english = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Sunday', 'Saturday'];
        $persian = [ 'دوشنبه' ,  'سه شنبه' ,  'چهارشنبه' ,  'پنج شنبه' ,  'جمعه' ,  'شنبه' , 'یکشنبه' ];
        return str_replace($english, $persian, $input);
    }
    function convertPersianNumbersToEnglish($input)
    {
        $persian = ['۰', '۱', '۲', '۳', '۴', '٤', '۵', '٥', '٦', '۶', '۷', '۸', '۹'];
        $english = [ 0 ,  1 ,  2 ,  3 ,  4 ,  4 ,  5 ,  5 ,  6 ,  6 ,  7 ,  8 ,  9 ];
        return str_replace($persian, $english, $input);
    }
    function convertEnglishNumbersToPersian($input)
    {
        $persian = ['۰', '۱', '۲', '۳', '۴', '٤', '۵', '٥', '٦', '۶', '۷', '۸', '۹'];
        $english = [ 0 ,  1 ,  2 ,  3 ,  4 ,  4 ,  5 ,  5 ,  6 ,  6 ,  7 ,  8 ,  9 ];
        return str_replace($english,$persian, $input);
    }
    function getCustomNextPrevDays($days){
        switch($this->usedPattern->name){
            case "customPrevDays":
                $result = date("Y/m/d H:i:s", strtotime("-".$days."day"));
                break;
            case "customNextDays":
                $result = date("Y/m/d H:i:s", strtotime("+".$days."day"));
                break;
            case "customNextHours":
                $result = date("Y/m/d H:i:s", strtotime("+".$days."hours"));
                break;
            case "customPrevHours":
                $result = date("Y/m/d H:i:s", strtotime("-".$days."hours"));
                break;
        }
        return $result;
    }
    
    function getConvertedText(){
        $result = "";
        switch($this->getUsedPattern()->name){
            case "today":
                $result = date("Y/m/d H:i:s");
            break;
            case "now":
                $result = date("Y/m/d H:i:s");
            break;
            case "tomorrow":
                $result = date("Y/m/d H:i:s", strtotime('+1day'));
            break;
            case "nextWeek":
                $result = date("Y/m/d H:i:s", strtotime('+1 week'));
            break;
            case "overmorrow":
                $result = date("Y/m/d H:i:s", strtotime('+2day'));
            break;
            case "vorgestern":
                $dayBeforeYesterday = strtotime("-2 day");
                $result = date("Y/m/d H:i:s", $dayBeforeYesterday);
            break;
            case "yesterday":
                $yesterday          = strtotime("-1 day");
                $result = date("Y/m/d H:i:s", $yesterday);
            break;
        }
        return $result;
    }
}

Filemanager

Name Type Size Permission Actions
DateConverter.intent.class.php File 7.75 KB 0755
gregorian_jalali.php File 3.64 KB 0755