1<?php
2
3use dokuwiki\Extension\Plugin;
4use dokuwiki\Logger;
5
6class helper_plugin_validator extends Plugin
7{
8    public function getMethods()
9    {
10        $result = [];
11        $result[] = [
12            'name' => 'getTurnstile',
13            'desc' => 'returns the curl handle for turnstile verification',
14            'params' => [
15                'url'   => 'string',
16                'data'  => 'array'
17            ],
18            'return' => ['curl' => 'CurlHandle'],
19        ];
20        $result[] = [
21            'name' => 'getCaptcha',
22            'desc' => 'returns the curl handle for captcha verification',
23            'params' => [
24                'url'   => 'string',
25                'data'  => 'array'
26            ],
27            'return' => ['curl' => 'CurlHandle'],
28        ];
29
30        return $result;
31    }
32
33    public function getTurnstile($url, $data): CurlHandle
34    {
35        $curl = curl_init();
36
37        curl_setopt_array($curl, [
38            CURLOPT_URL            => $url,
39            CURLOPT_RETURNTRANSFER => true,
40            CURLOPT_POST           => true,
41            CURLOPT_POSTFIELDS     => $data,
42            CURLOPT_CONNECTTIMEOUT => 5,
43            CURLOPT_TIMEOUT        => 10,
44            CURLOPT_SSL_VERIFYPEER => true,
45        ]);
46
47        return $curl;
48    }
49
50    public function getCaptcha($url, $data): CurlHandle
51    {
52        $curl = curl_init();
53
54        curl_setopt_array($curl, [
55            CURLOPT_URL => $url,
56            CURLOPT_POST => true,
57            CURLOPT_POSTFIELDS => http_build_query($data),
58            CURLOPT_RETURNTRANSFER => true,
59            CURLOPT_SSL_VERIFYPEER => true,
60            CURLOPT_TIMEOUT => 5,
61            CURLOPT_CONNECTTIMEOUT => 10,
62        ]);
63
64        return $curl;
65    }
66}