SearchUserModel   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 111
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 24
c 2
b 1
f 0
dl 0
loc 111
rs 10
wmc 9

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 1
A getLastOnline() 0 3 1
A __call() 0 7 2
A getImage() 0 3 1
A getName() 0 3 1
A getAllInfo() 0 18 3
1
<?php
2
3
namespace MalScraper\Model\Search;
4
5
use MalScraper\Helper\Helper;
6
use MalScraper\Model\MainModel;
7
8
/**
9
 * SearchUserModel class.
10
 */
11
class SearchUserModel extends MainModel
12
{
13
    /**
14
     * Search query.
15
     *
16
     * @var string
17
     */
18
    protected $_query;
19
20
    /**
21
     * Page number.
22
     *
23
     * @var int|string
24
     */
25
    private $_page;
26
27
    /**
28
     * Default constructor.
29
     *
30
     * @param string     $query
31
     * @param int|string $page
32
     * @param string     $parserArea
33
     *
34
     * @return void
35
     */
36
    public function __construct($query, $page, $parserArea = '#content')
37
    {
38
        $this->_query = $query;
39
        $this->_page = 24 * ($page - 1);
40
        $this->_url = $this->_myAnimeListUrl.'/users.php?q='.$query.'&show='.$this->_page;
41
        $this->_parserArea = $parserArea;
42
43
        parent::errorCheck($this);
44
    }
45
46
    /**
47
     * Default call.
48
     *
49
     * @param string $method
50
     * @param array  $arguments
51
     *
52
     * @return array|string|int
53
     */
54
    public function __call($method, $arguments)
55
    {
56
        if ($this->_error) {
57
            return $this->_error;
58
        }
59
60
        return call_user_func_array([$this, $method], $arguments);
61
    }
62
63
    /**
64
     * Get name.
65
     *
66
     * @param \simplehtmldom_1_5\simple_html_dom $user
67
     *
68
     * @return string
69
     */
70
    private function getName($user)
71
    {
72
        return $user->find('a', 0)->plaintext;
73
    }
74
75
    /**
76
     * Get image.
77
     *
78
     * @param \simplehtmldom_1_5\simple_html_dom $user
79
     *
80
     * @return string
81
     */
82
    private function getImage($user)
83
    {
84
        return Helper::imageUrlCleaner($user->find('img', 0)->src);
85
    }
86
87
    /**
88
     * Get last online.
89
     *
90
     * @param \simplehtmldom_1_5\simple_html_dom $user
91
     *
92
     * @return string
93
     */
94
    private function getLastOnline($user)
95
    {
96
        return $user->find('small', 0)->plaintext;
97
    }
98
99
    /**
100
     * Get result list.
101
     *
102
     * @return array
103
     */
104
    private function getAllInfo()
105
    {
106
        $data = [];
107
        foreach ($this->_parser->find('.borderClass') as $user) {
108
            if ($user->align != 'center') {
109
                continue;
110
            }
111
112
            $temp_user = [];
113
114
            $temp_user['name'] = $this->getName($user);
115
            $temp_user['image'] = $this->getImage($user);
116
            $temp_user['last_online'] = $this->getLastOnline($user);
117
118
            $data[] = $temp_user;
119
        }
120
121
        return $data;
122
    }
123
}
124