@@ -8,54 +8,54 @@ |
||
| 8 | 8 | |
| 9 | 9 | class MediaProvider extends BaseProvider |
| 10 | 10 | { |
| 11 | - protected $mediaManager; |
|
| 12 | - |
|
| 13 | - public function __construct(MediaManager $mediaManager) |
|
| 14 | - { |
|
| 15 | - $this->mediaManager = $mediaManager; |
|
| 16 | - } |
|
| 17 | - |
|
| 18 | - public function randomMedia ($width = null, $height = null, $type = "color") |
|
| 19 | - { |
|
| 20 | - $file = $this->downloadMedia($this->generateUrl($width, $height, $type)); |
|
| 21 | - $media = $this->mediaManager->upload($file); |
|
| 22 | - return $media; |
|
| 23 | - } |
|
| 24 | - |
|
| 25 | - protected function generateUrl ($width = null, $height = null, $type = "color") |
|
| 26 | - { |
|
| 27 | - $url = "http://loremflickr.com/"; |
|
| 28 | - |
|
| 29 | - if ($type !== 'color') { |
|
| 30 | - $url .= 'g/'; |
|
| 31 | - } |
|
| 32 | - |
|
| 33 | - if($width === null && $height !== null) { |
|
| 34 | - $width = round($height * 4 / 3); |
|
| 35 | - } elseif ($width !== null && $height === null) { |
|
| 36 | - $height = round($width * 3 / 4); |
|
| 37 | - } else { |
|
| 38 | - $width = rand(800, 1600); |
|
| 39 | - $height = round($width * 3 / 4); |
|
| 40 | - } |
|
| 41 | - |
|
| 42 | - $url .= $width.'/'.$height; |
|
| 43 | - |
|
| 44 | - $category = ['abstract', 'city', 'nature', 'moutains']; |
|
| 45 | - $url .= '/'.$category[array_rand($category, 1)].'/'; |
|
| 46 | - return $url; |
|
| 47 | - } |
|
| 48 | - |
|
| 49 | - protected function downloadMedia($url) |
|
| 50 | - { |
|
| 51 | - $filepath = sys_get_temp_dir().'/tmp.jpg'; |
|
| 52 | - $ch = curl_init($url); |
|
| 53 | - $fp = fopen($filepath,'wb'); |
|
| 54 | - curl_setopt($ch, CURLOPT_FILE, $fp); |
|
| 55 | - curl_setopt($ch, CURLOPT_HEADER, 0); |
|
| 56 | - curl_exec($ch); |
|
| 57 | - curl_close($ch); |
|
| 58 | - fclose($fp); |
|
| 59 | - return new File($filepath, 'random'); |
|
| 60 | - } |
|
| 11 | + protected $mediaManager; |
|
| 12 | + |
|
| 13 | + public function __construct(MediaManager $mediaManager) |
|
| 14 | + { |
|
| 15 | + $this->mediaManager = $mediaManager; |
|
| 16 | + } |
|
| 17 | + |
|
| 18 | + public function randomMedia ($width = null, $height = null, $type = "color") |
|
| 19 | + { |
|
| 20 | + $file = $this->downloadMedia($this->generateUrl($width, $height, $type)); |
|
| 21 | + $media = $this->mediaManager->upload($file); |
|
| 22 | + return $media; |
|
| 23 | + } |
|
| 24 | + |
|
| 25 | + protected function generateUrl ($width = null, $height = null, $type = "color") |
|
| 26 | + { |
|
| 27 | + $url = "http://loremflickr.com/"; |
|
| 28 | + |
|
| 29 | + if ($type !== 'color') { |
|
| 30 | + $url .= 'g/'; |
|
| 31 | + } |
|
| 32 | + |
|
| 33 | + if($width === null && $height !== null) { |
|
| 34 | + $width = round($height * 4 / 3); |
|
| 35 | + } elseif ($width !== null && $height === null) { |
|
| 36 | + $height = round($width * 3 / 4); |
|
| 37 | + } else { |
|
| 38 | + $width = rand(800, 1600); |
|
| 39 | + $height = round($width * 3 / 4); |
|
| 40 | + } |
|
| 41 | + |
|
| 42 | + $url .= $width.'/'.$height; |
|
| 43 | + |
|
| 44 | + $category = ['abstract', 'city', 'nature', 'moutains']; |
|
| 45 | + $url .= '/'.$category[array_rand($category, 1)].'/'; |
|
| 46 | + return $url; |
|
| 47 | + } |
|
| 48 | + |
|
| 49 | + protected function downloadMedia($url) |
|
| 50 | + { |
|
| 51 | + $filepath = sys_get_temp_dir().'/tmp.jpg'; |
|
| 52 | + $ch = curl_init($url); |
|
| 53 | + $fp = fopen($filepath,'wb'); |
|
| 54 | + curl_setopt($ch, CURLOPT_FILE, $fp); |
|
| 55 | + curl_setopt($ch, CURLOPT_HEADER, 0); |
|
| 56 | + curl_exec($ch); |
|
| 57 | + curl_close($ch); |
|
| 58 | + fclose($fp); |
|
| 59 | + return new File($filepath, 'random'); |
|
| 60 | + } |
|
| 61 | 61 | } |