]> git.wh0rd.org Git - tt-rss.git/blob - vendor/andreskrey/Readability/Configuration.php
951740ed0876ba0574a6891e3835427e6f0189aa
[tt-rss.git] / vendor / andreskrey / Readability / Configuration.php
1 <?php
2
3 namespace andreskrey\Readability;
4
5 use Psr\Log\LoggerAwareTrait;
6 use Psr\Log\LoggerInterface;
7 use Psr\Log\NullLogger;
8
9 /**
10  * Class Configuration.
11  */
12 class Configuration
13 {
14     use LoggerAwareTrait;
15
16     /**
17      * @var int
18      */
19     protected $maxTopCandidates = 5;
20
21     /**
22      * @var int
23      */
24     protected $wordThreshold = 500;
25
26     /**
27      * @var bool
28      */
29     protected $articleByLine = false;
30
31     /**
32      * @var bool
33      */
34     protected $stripUnlikelyCandidates = true;
35
36     /**
37      * @var bool
38      */
39     protected $cleanConditionally = true;
40
41     /**
42      * @var bool
43      */
44     protected $weightClasses = true;
45
46     /**
47      * @var bool
48      */
49     protected $fixRelativeURLs = false;
50
51     /**
52      * @var bool
53      */
54     protected $substituteEntities = false;
55
56     /**
57      * @var bool
58      */
59     protected $normalizeEntities = false;
60
61     /**
62      * @var bool
63      */
64     protected $summonCthulhu = false;
65
66     /**
67      * @var string
68      */
69     protected $originalURL = 'http://fakehost';
70
71     /**
72      * Configuration constructor.
73      *
74      * @param array $params
75      */
76     public function __construct(array $params = [])
77     {
78         foreach ($params as $key => $value) {
79             $setter = sprintf('set%s', $key);
80             if (method_exists($this, $setter)) {
81                 call_user_func([$this, $setter], $value);
82             }
83         }
84     }
85
86     /**
87      * Returns an array-representation of configuration.
88      *
89      * @return array
90      */
91     public function toArray()
92     {
93         $out = [];
94         foreach ($this as $key => $value) {
95             $getter = sprintf('get%s', $key);
96             if (!is_object($value) && method_exists($this, $getter)) {
97                 $out[$key] = call_user_func([$this, $getter]);
98             }
99         }
100
101         return $out;
102     }
103
104     /**
105      * @return LoggerInterface
106      */
107     public function getLogger()
108     {
109         // If no logger has been set, just return a null logger
110         if ($this->logger === null) {
111             return new NullLogger();
112         } else {
113             return $this->logger;
114         }
115     }
116
117     /**
118      * @param LoggerInterface $logger
119      *
120      * @return Configuration
121      */
122     public function setLogger(LoggerInterface $logger)
123     {
124         $this->logger = $logger;
125
126         return $this;
127     }
128
129     /**
130      * @return int
131      */
132     public function getMaxTopCandidates()
133     {
134         return $this->maxTopCandidates;
135     }
136
137     /**
138      * @param int $maxTopCandidates
139      *
140      * @return $this
141      */
142     public function setMaxTopCandidates($maxTopCandidates)
143     {
144         $this->maxTopCandidates = $maxTopCandidates;
145
146         return $this;
147     }
148
149     /**
150      * @return int
151      */
152     public function getWordThreshold()
153     {
154         return $this->wordThreshold;
155     }
156
157     /**
158      * @param int $wordThreshold
159      *
160      * @return $this
161      */
162     public function setWordThreshold($wordThreshold)
163     {
164         $this->wordThreshold = $wordThreshold;
165
166         return $this;
167     }
168
169     /**
170      * @return bool
171      */
172     public function getArticleByLine()
173     {
174         return $this->articleByLine;
175     }
176
177     /**
178      * @param bool $articleByLine
179      *
180      * @return $this
181      */
182     public function setArticleByLine($articleByLine)
183     {
184         $this->articleByLine = $articleByLine;
185
186         return $this;
187     }
188
189     /**
190      * @return bool
191      */
192     public function getStripUnlikelyCandidates()
193     {
194         return $this->stripUnlikelyCandidates;
195     }
196
197     /**
198      * @param bool $stripUnlikelyCandidates
199      *
200      * @return $this
201      */
202     public function setStripUnlikelyCandidates($stripUnlikelyCandidates)
203     {
204         $this->stripUnlikelyCandidates = $stripUnlikelyCandidates;
205
206         return $this;
207     }
208
209     /**
210      * @return bool
211      */
212     public function getCleanConditionally()
213     {
214         return $this->cleanConditionally;
215     }
216
217     /**
218      * @param bool $cleanConditionally
219      *
220      * @return $this
221      */
222     public function setCleanConditionally($cleanConditionally)
223     {
224         $this->cleanConditionally = $cleanConditionally;
225
226         return $this;
227     }
228
229     /**
230      * @return bool
231      */
232     public function getWeightClasses()
233     {
234         return $this->weightClasses;
235     }
236
237     /**
238      * @param bool $weightClasses
239      *
240      * @return $this
241      */
242     public function setWeightClasses($weightClasses)
243     {
244         $this->weightClasses = $weightClasses;
245
246         return $this;
247     }
248
249     /**
250      * @return bool
251      */
252     public function getFixRelativeURLs()
253     {
254         return $this->fixRelativeURLs;
255     }
256
257     /**
258      * @param bool $fixRelativeURLs
259      *
260      * @return $this
261      */
262     public function setFixRelativeURLs($fixRelativeURLs)
263     {
264         $this->fixRelativeURLs = $fixRelativeURLs;
265
266         return $this;
267     }
268
269     /**
270      * @return bool
271      */
272     public function getSubstituteEntities()
273     {
274         return $this->substituteEntities;
275     }
276
277     /**
278      * @param bool $substituteEntities
279      *
280      * @return $this
281      */
282     public function setSubstituteEntities($substituteEntities)
283     {
284         $this->substituteEntities = $substituteEntities;
285
286         return $this;
287     }
288
289     /**
290      * @return bool
291      */
292     public function getNormalizeEntities()
293     {
294         return $this->normalizeEntities;
295     }
296
297     /**
298      * @param bool $normalizeEntities
299      *
300      * @return $this
301      */
302     public function setNormalizeEntities($normalizeEntities)
303     {
304         $this->normalizeEntities = $normalizeEntities;
305
306         return $this;
307     }
308
309     /**
310      * @return string
311      */
312     public function getOriginalURL()
313     {
314         return $this->originalURL;
315     }
316
317     /**
318      * @param string $originalURL
319      *
320      * @return $this
321      */
322     public function setOriginalURL($originalURL)
323     {
324         $this->originalURL = $originalURL;
325
326         return $this;
327     }
328
329     /**
330      * @return bool
331      */
332     public function getSummonCthulhu()
333     {
334         return $this->summonCthulhu;
335     }
336
337     /**
338      * @param bool $summonCthulhu
339      *
340      * @return $this
341      */
342     public function setSummonCthulhu($summonCthulhu)
343     {
344         $this->summonCthulhu = $summonCthulhu;
345
346         return $this;
347     }
348 }