mirror of https://github.com/dnomd343/tgbot
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.7 KiB
52 lines
1.7 KiB
<?php
|
|
|
|
class punycodeEntry { // Punycode编码转换入口
|
|
private function checkErr($punycode) { // 处理Punycode库错误警告
|
|
if ($punycode->errFlag) {
|
|
return array(
|
|
'status' => 'error',
|
|
'message' => $punycode->errMsg
|
|
);
|
|
} else {
|
|
return array(
|
|
'status' => 'ok'
|
|
);
|
|
}
|
|
}
|
|
|
|
private function encode($str) { // Punycode编码
|
|
$punycode = new Punycode;
|
|
$response['data'] = $punycode->encode($str);
|
|
return $this->checkErr($punycode) + $response;
|
|
}
|
|
|
|
private function decode($str) { // Punycode解码
|
|
$punycode = new Punycode;
|
|
$response['data'] = $punycode->decode($str);
|
|
return $this->checkErr($punycode) + $response;
|
|
}
|
|
|
|
public function query($rawParam) { // Punycode转换查询入口
|
|
$encode = $this->encode($rawParam);
|
|
$decode = $this->decode($rawParam);
|
|
if ($decode['data'] === strtolower($rawParam)) { // 输入为明文
|
|
$msg = '`' . $encode['data'] . '`' . PHP_EOL;
|
|
if ($encode['status'] !== 'ok') {
|
|
$errMsg = $encode['message'];
|
|
}
|
|
} else { // 输入为编码
|
|
$msg = '`' . $decode['data'] . '`' . PHP_EOL;
|
|
if ($decode['status'] !== 'ok') {
|
|
$errMsg = $decode['message'];
|
|
}
|
|
}
|
|
if (isset($errMsg)) { // 存在警告
|
|
if (substr($rawParam, 0, 1) !== '.' && substr($rawParam, -1) !== '.') { // 首尾不为.时发送警告内容
|
|
$msg .= '*Warning:* ' . $errMsg;
|
|
}
|
|
}
|
|
tgApi::sendMarkdown($msg);
|
|
}
|
|
}
|
|
|
|
?>
|