Completed
Push — master ( 6ce4c2...731c36 )
by Aitor Riba
01:46
created

MymemoryTrans::main()   C

Complexity

Conditions 7
Paths 7

Size

Total Lines 42
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 6.7272
c 0
b 0
f 0
cc 7
eloc 22
nc 7
nop 0
1
<?php
2
3
namespace Aitor24\Laralang\Builder;
4
5
class MymemoryTrans extends Translation
6
{
7
    /**
8
      * Get translation from mymemory API.
9
      */
10
     public function main()
11
     {
12
         $host = 'api.mymemory.translated.net';
13
14
         // Check if host is online.
15
         if ($this->checkHost($host)) {
16
17
             // Host online
18
             $urlString = urlencode($this->string);
19
             $urldata = file_get_contents("http://$host/get?q=$urlString&langpair=$this->from|$this->to");
20
             $data = json_decode($urldata, true);
21
22
             if ($data['responseStatus'] != 200) {
23
                 if ($this->debug == true) {
24
                     if ($data['responseStatus'] == 403) {
25
                         $details = ($data['responseDetails']);
26
                     } else {
27
                         $details = $data['responseDetails'];
28
                     }
29
                     $this->translation = "<font style='color:red;'>Error ".$data->responseStatus.': '.$details.'</font>';
30
                 }
31
32
                 return;
33
             }
34
35
             foreach ($data['matches']  as $match) {
36
                 if ($match['last-updated-by'] == '24aitor') {
37
38
                     $this->translation = $match['translation'];
39
                     $this->checkSave();
40
41
                     return;
42
                 }
43
             }
44
45
             $this->translation = $data['responseData']['translatedText'];
46
             $this->checkSave();
47
48
             return;
49
50
         }
51
     }
52
}
53