1 <?php
2 
3 namespace dokuwiki\plugin\aichat;
4 
5 use dokuwiki\Extension\CLIPlugin;
6 use splitbrain\phpcli\Options;
7 
8 abstract class AbstractCLI extends CLIPlugin
9 {
10     /** @var \helper_plugin_aichat */
11     protected $helper;
12 
13     /** @inheritdoc */
14     public function __construct($autocatch = true)
15     {
16         parent::__construct($autocatch);
17         $this->helper = plugin_load('helper', 'aichat');
18         $this->helper->setLogger($this);
19         $this->loadConfig();
20         ini_set('memory_limit', -1);
21     }
22 
23     /** @inheritdoc */
24     protected function setup(Options $options)
25     {
26         $options->useCompactHelp();
27 
28         $options->registerOption(
29             'lang',
30             'When set to a language code, it overrides the the lang and preferUIlanguage settings and asks the ' .
31             'bot to always use this language instead. ' .
32             'When set to "auto" the bot is asked to detect the language of the input falling back to the wiki lang.',
33             '',
34             'lang'
35         );
36     }
37 
38     /** @inheritDoc */
39     protected function main(Options $options)
40     {
41         if ($this->loglevel['debug']['enabled']) {
42             $this->helper->factory->setDebug(true);
43         }
44 
45         $lc = $options->getOpt('lang');
46         if ($lc === 'auto') {
47             $this->helper->updateConfig(['preferUIlanguage' => 0]);
48         } elseif ($lc) {
49             $this->helper->updateConfig(['preferUIlanguage' => 1]);
50             global $conf;
51             $conf['lang'] = $lc;
52         }
53     }
54 }
55