86 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
class DameJidlo extends VirtualDeviceManager
 | 
						|
{
 | 
						|
    private $virtual_device_name = "Dáme Jídlo";
 | 
						|
    private $device_type = "virtual-device";
 | 
						|
    private $subdevice_type = "dame-jidlo";
 | 
						|
 | 
						|
    public function deliveryTime($token)
 | 
						|
    {        
 | 
						|
        // Generated by curl-to-PHP: http://incarnate.github.io/curl-to-php/
 | 
						|
        $ch = curl_init();
 | 
						|
 | 
						|
        curl_setopt($ch, CURLOPT_URL, 'https://cz.fd-api.com/api/v5/tracking/active-orders?time_variation=Variation2');
 | 
						|
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 | 
						|
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
 | 
						|
 | 
						|
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate');
 | 
						|
 | 
						|
        $headers = array();
 | 
						|
        $headers[] = 'Authority: cz.fd-api.com';
 | 
						|
        $headers[] = 'Sec-Ch-Ua: \"Chromium\";v=\"88\", \"Google Chrome\";v=\"88\", \";Not A Brand\";v=\"99\"';
 | 
						|
        $headers[] = 'Accept: application/json, text/plain, */*';
 | 
						|
        $headers[] = 'Authorization: Bearer ' . $token;
 | 
						|
        $headers[] = 'X-Pd-Language-Id: 2';
 | 
						|
        $headers[] = 'Sec-Ch-Ua-Mobile: ?0';
 | 
						|
        $headers[] = 'X-Fp-Api-Key: volo';
 | 
						|
        $headers[] = 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36';
 | 
						|
        $headers[] = 'Origin: https://www.damejidlo.cz';
 | 
						|
        $headers[] = 'Sec-Fetch-Site: cross-site';
 | 
						|
        $headers[] = 'Sec-Fetch-Mode: cors';
 | 
						|
        $headers[] = 'Sec-Fetch-Dest: empty';
 | 
						|
        $headers[] = 'Referer: https://www.damejidlo.cz/';
 | 
						|
        $headers[] = 'Accept-Language: en-US,en;q=0.9,cs-CZ;q=0.8,cs;q=0.7';
 | 
						|
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 | 
						|
 | 
						|
        $result = curl_exec($ch);
 | 
						|
        if (curl_errno($ch)) {
 | 
						|
            echo 'Error:' . curl_error($ch);
 | 
						|
        }
 | 
						|
        curl_close($ch);
 | 
						|
 | 
						|
        return  (isset(json_decode($result, true)['data']['active_orders'][0]['delivery']['time']['eta']) ? json_decode($result, true)['data']['active_orders'][0]['delivery']['time']['eta'] : 0);
 | 
						|
    }
 | 
						|
 | 
						|
    function make()
 | 
						|
    {
 | 
						|
        //Register the settings
 | 
						|
        $settingMng = new SettingsManager();
 | 
						|
		if (!($settingField = $settingMng->getByName("damejidlo_token","damejidlo"))) {
 | 
						|
			$settingMng->create("damejidlo_token", "", "damejidlo");
 | 
						|
		} else {
 | 
						|
			$bearer = $settingField['value'];
 | 
						|
        }
 | 
						|
 | 
						|
        try {
 | 
						|
            if (DeviceManager::registeret($this->virtual_device_name)) {
 | 
						|
                $deviceId = DeviceManager::getDeviceByToken($this->virtual_device_name)['device_id'];
 | 
						|
                if (!$subDevice = SubDeviceManager::getSubDeviceByMaster($deviceId, $this->subdevice_type)) {
 | 
						|
                    SubDeviceManager::create($deviceId, $this->subdevice_type, '');
 | 
						|
                    sleep(1);
 | 
						|
                    $subDevice = SubDeviceManager::getSubDeviceByMaster($deviceId, strtolower($this->subdevice_type));
 | 
						|
                }
 | 
						|
 | 
						|
                //if (!$this->fetchEnabled($deviceId,$subDevice['subdevice_id'])) die();
 | 
						|
 | 
						|
                RecordManager::create($deviceId, $this->subdevice_type, $this->deliveryTime($bearer), 'plugin');
 | 
						|
            } else {
 | 
						|
                DeviceManager::create($this->virtual_device_name, $this->virtual_device_name, 'senzore-virtual');
 | 
						|
                DeviceManager::approved($this->virtual_device_name);
 | 
						|
            }
 | 
						|
            return 'sucessful';
 | 
						|
        } catch (Exception $e) {
 | 
						|
            return 'exception: ' . $e->getMessage();
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    function translate($value){
 | 
						|
		if ($value == 0) {
 | 
						|
            return " Delivered";
 | 
						|
        } else if ($value <= 1) {
 | 
						|
            return "less " . $value;
 | 
						|
        }
 | 
						|
		return '';
 | 
						|
	}
 | 
						|
}
 |