<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit;

if(!empty($_GET['feedback'])) {
    require_once __DIR__ . '/feedback.php';
    exit;
}
?>
<?php $this->need('header.php'); ?>

<?php



// 示例调用
$token = 'dataset-Emh5R5hCGorTuqG0dkQe7tMf';  // 传入实际的 toke
$datasets = 'c08ae7fa-c4e7-4fae-8138-2097ff19e1a6';  // 传入实际的 datasets ID
$keyword =  '';//'how to cute';  // 传入实际的查询关键字
$PathInfo = Typecho_Widget::widget('Widget_Options')->request->getPathInfo();;



// 检查请求路径是否以 '/search' 开头
if (strpos($PathInfo, '/search') === 0)
{

    $pathAfterSearch = substr($PathInfo, strlen('/search')); // 获取 '/search' 后面的部分
    if (preg_match('/^\/([^\/]+)/', $pathAfterSearch, $matches)) {
        $keyword = $matches[1];  // 获取 keyword
    }
}


if(!empty($_GET['category'])) {
    $category_id = $_GET['category'] * 1;
}
?>


<div class="uk-section uk-section-muted">
  <div class="uk-container" >
       <?php if($this->is('category')): ?>
       <?php

$childrens =
$this->widget('Widget_Metas_Category_List')->getAllChildren(General::getCategoryId($this->getArchiveSlug()));?>
<?php if($childrens):?>
       <div class="uk-margin-small">

    <button class="uk-button uk-button-primary uk-button" type="button">戳我查看子分类 <span uk-icon="more"></span></button>
<div uk-dropdown>
    <ul class="uk-nav uk-dropdown-nav">
     <?php for ($i=0; $i <count($childrens) ; $i++) { $thisChild =
$this->widget('Widget_Metas_Category_List')->getCategory($childrens[$i]);
?> <li><a href="<?php echo $thisChild["permalink"] ?>"><?php echo
$thisChild["name"] ?></a></li> <?php }  ?>
    </ul>
</div>
</div>

<?php endif;?>
<?php endif;?>


<div class="uk-background-muted uk-padding uk-panel uk-padding-remove-top uk-padding-remove-bottom uk-margin-remove-bottom uk-margin-remove-bottom-top" style="text-align:center;">

     <?php

     if(empty($category_id))
     {
         $category_id=General::getCategoryId($this->getArchiveSlug());
     }

     switch ($category_id) {
         case 3:
             $datasets = '4b8ced28-d8eb-4b13-9dea-2eba799d3e79';
             break;
         case 5:
             $datasets = '910fcc90-d370-44b1-9bd5-33248c277526';
             break;
         case 6:
             $datasets = '4d48eda8-6cd9-449d-b3c6-7a19d2f9aafc';
             break;
     }


     if($category_id)
     {
        $category_info= General::getCategoryInfo($category_id);

       }

     ?>

    <h2 style="word-break:break-all">
        <?php

        if(!empty($category_info))

        {
            echo $category_info['name']." FAQ ";
        }

        ?>



    </h2>
    <p style="word-break:break-all">

        <?php

        if (strpos($PathInfo, 'search')) {

            echo "\"{$keyword}\" search results ";
        }
        ?>

    </p>
</div>
      <!-- 查看分类下的 END-->

      <script>
          function toggleAnswer(index) {
              var answerDiv = document.getElementById('answer-' + index);
              var feedbackDiv = document.getElementById('feedback-' + index);
              var icon = document.getElementById('icon-' + index);

              if (answerDiv.style.display === 'none') {
           
                  answerDiv.style.display = 'block';
                  feedbackDiv.style.display = 'block';


                  //icon.innerHTML = '▲'; // 展开时显示向上箭头
                  
                  // 找到当前答案中的视频并自动播放
                  var video = answerDiv.querySelector('video');
                  if (video) {
                      video.play();
                  }
              } else {
                  answerDiv.style.display = 'none';
                  feedbackDiv.style.display = 'none';
                  //icon.innerHTML = '▼'; // 收起时显示向下箭头
                  
                  // 如果答案被隐藏，暂停视频播放
                  var video = answerDiv.querySelector('video');
                  if (video) {
                      video.pause();
                  }
              }
          }

          <?php if (strpos($PathInfo, '/search') === 0):?>
          // 默认展开第一个问题的答案
          window.onload = function() {
              toggleAnswer(1); // 默认展开第一个问题
          };
          <?php endif;?>
      </script>

      <!-- 添加 CSS 样式 -->
      <style>
          .question {
              cursor: pointer; /* 鼠标悬停时显示手型光标 */
              color: #333; /* 深色字体 */

              margin-bottom: 10px; /* 问题与答案之间的间距 */
          }

          /*.question:hover {*/
          /*    text-decoration: underline; !* 鼠标悬停时添加下划线 *!*/
          /*}*/

          .toggle-icon {
              margin-left: 10px; /* 图标与问题之间的间距 */

              color: #666; /* 图标颜色 */
          }

          .answer {
              /*font-size: 16px; !* 答案字体大小 *!*/
              color: #555; /* 答案字体颜色 */
              margin-top: 10px; /* 答案与问题之间的间距 */
              padding-left: 20px; /* 答案缩进 */

          }

          .feedback-btn {
          border: 1px solid #ddd; background: #f8f8f8; border-radius: 4px; padding: 5px 15px; margin-right: 10px; cursor: pointer; height: 32px; line-height: 1; display: inline-flex; align-items: center;
          }
          
          /* 在手机设备上将卡片padding设为0 */
          @media (max-width: 768px) {
              .uk-card-category.uk-card-body {
                  padding: 0;
              }
              
              .question h4 {
                  padding: 15px;
                  margin: 0;
              }
              
              .answer {
                  padding: 15px;
              }
          }
      </style>
    <div class="uk-margin-medium-top">

        <?php

$search=false;
        // 获取Typecho请求对象


// 检查请求路径是否以 '/search' 开头
if (!empty($keyword)&&(strpos($PathInfo, '/search') === 0))
    // 设置CURL请求参数
    {

        // 记录搜索日志
        logSearch($keyword, $category_id ?? 0, $datasets);


        // 提取 '/search' 后面的部分
        $pathAfterSearch = substr($PathInfo, strlen('/search')); // 获取 '/search' 后面的部分

        // 使用正则表达式提取 '/search' 后面到下一个 '/' 之间的部分作为 keyword
        if (preg_match('/^\/([^\/]+)/', $pathAfterSearch, $matches)) {
            $keyword = $matches[1];  // 获取 keyword

            // 设置为 true，表示这是一个搜索请求
            $search = true;

            // 输出提取的关键字
           // echo "Keyword: $keyword\n";

            // 调用函数
            $data = retrieveDatasetData($token, $datasets, $keyword);

            // 你可以在这里继续处理 $data 或返回结果
        } else {
            // 如果无法提取 keyword，给出提示
           // echo "No keyword found in the path.\n";
        }


        $index = 0;
        foreach ($data['records'] as $record) {
            $index++;
            $content = $record['segment']['content'];


            // 提取开头的数字
            preg_match('/^\[(\d+)\]/', $content, $matches);
            $postId = $matches[1] ?? null;


            $postContent=null;
            // 从数据库获取完整内容


            $postContent = $postId ? getPost($postId) : null;


            // 移除开头的数字部分
            $contentWithoutNumber = preg_replace('/^\[\d+\]\s*/', '', $content);

//            // 按空格分割内容（保留所有符号）
//            $parts = preg_split('/\s+/', $contentWithoutNumber);
//
//            // 截取处理
//            $truncatedContent = '';
//            $charCount = 0;
//            $maxLength = 300;
//
//            foreach ($parts as $part) {
//                $partLength = strlen($part);
//                $spaceLength = $truncatedContent ? 1 : 0; // 空格长度
//
//                if ($charCount + $partLength + $spaceLength <= $maxLength) {
//                    $truncatedContent .= ($spaceLength ? ' ' : '') . $part;
//                    $charCount += $partLength + $spaceLength;
//                } else {
//                    // 处理最后追加的省略号
//                    $available = $maxLength - $charCount;
//                    if ($available >= 3) { // 剩余空间足够加...
//                        $truncatedContent .= ' ' . substr($part, 0, $available - 3) . '...';
//                    } elseif ($available > 0) {
//                        $truncatedContent .= substr($part, 0, $available);
//                    }
//                    break;
//                }
//            }
//
//            // 处理刚好满长度的情况
//            if ($charCount >= $maxLength && !str_ends_with($truncatedContent, '...')) {
//                $truncatedContent = substr($truncatedContent, 0, $maxLength - 3) . '...';
//            }

            // 将全角问号（？）和句号（。）替换为半角问号（?）和句号（.）
            $contentWithoutNumber = str_replace(['？', '。'], ['?', '.'], $contentWithoutNumber);

            // 按第一个问号（?）或句号（.）分割问题和答案
            if (preg_match('/^([^?.]+[?.])/', $contentWithoutNumber, $matches)) {
                $question = trim($matches[0]); // 问题部分（包括问号或句号）
                $answer = trim(substr($contentWithoutNumber, strlen($matches[0]))); // 答案部分
            } else {
                // 如果没有问号或句号，则整个内容作为问题
                $question = trim($contentWithoutNumber);
                $answer = ''; // 答案部分为空
            }

            // 检查答案中是否包含.mp4结尾的链接
            if (!empty($answer) && preg_match('/(https:\/\/mietublcom\.oss[^\s]+\.mp4)/', $answer, $mp4matches)) {
                $mp4url = $mp4matches[1]; // 提取MP4链接
                // 将MP4链接替换为视频播放器

                if($index==1)
                {
                    $videoPlayer = '<div class="adress"><video src="' . $mp4url . "\" title=\"{$question}\" controls=\"controls\" width=\"100%\" autoplay muted></video> </div>";
                }
                else
                {
                    $videoPlayer = '<div class="adress"><video src="' . $mp4url . "\" title=\"{$question}\" controls=\"controls\" width=\"100%\"></video> </div>";
                }

                // 将原来的MP4链接替换为视频播放器
                $answer = str_replace($mp4url, $videoPlayer, $answer);
            }
            
            // 检查答案中是否包含.jpg、.jpeg、.png、.gif等图片链接
            if (!empty($answer)) {
                // 匹配图片链接，包括osscdn.mietubl.com和mietublcom.oss两种域名
                if (preg_match_all('/(https:\/\/(?:osscdn\.mietubl\.com|mietublcom\.oss)[^\s]+\.(?:jpg|jpeg|png|gif|webp))/i', $answer, $imgMatches)) {
                    foreach ($imgMatches[1] as $imgUrl) {
                        // 将图片链接替换为img标签
                        $imgTag = '<div class="adress"><img src="' . $imgUrl . '" alt="' . $question . '" style="max-width:100%; height:auto;"></div>';
                        $answer = str_replace($imgUrl, $imgTag, $answer);
                    }
                }
            }
            
            // 将普通链接转换为可点击的链接（排除已经处理过的图片和视频链接）
            if (!empty($answer)) {
                // 匹配普通链接，排除已经在HTML标签中的链接
                $pattern = '/(?<!["\'=])(?<!src=)(?<!href=)(https?:\/\/(?!(?:osscdn\.mietubl\.com|mietublcom\.oss)[^\s]+\.(?:jpg|jpeg|png|gif|webp|mp4))[^\s"\'<>]+)/i';
                if (preg_match_all($pattern, $answer, $urlMatches)) {
                    foreach ($urlMatches[1] as $url) {
                        // 防止处理已经在a标签中的链接
                        if (strpos($answer, '<a') === false || strpos($answer, $url) < strpos($answer, '<a') || strpos($answer, $url) > strpos($answer, '</a>')) {
                            $linkTag = '<a href="' . $url . '" target="_blank" rel="noopener noreferrer">' . $url . '</a>';
                            $answer = str_replace($url, $linkTag, $answer);
                        }
                    }
                }
            }





        ?>

            <div class="uk-card uk-card-category uk-card-default uk-card-hover uk-card-body uk-inline uk-border-rounded uk-width-1-1">
                <div class="question" onclick="toggleAnswer(<?= $index ?>)">
                    <h4><?= "$index. $question" ?> </h4>


                </div>
                <div id="answer-<?= $index ?>" class="answer" style="display: none;white-space: pre-line;">
                    <?= $answer ?>
                </div>
                <!-- 添加反馈按钮 -->
                <div  id="feedback-<?= $index ?>" class="feedback-container " style="display: none; margin-top: 30px; padding: 0 15px 15px 15px; text-align: center">
                    <div class="feedback-question" style="font-size: 14px; color: #666; margin-bottom: 5px;">Was this article helpful to you?</div>
                    <div class="feedback-buttons">
                        <button class="feedback-btn  feedback-btn-<?= $index ?> helpful-btn" onclick="recordFeedback(<?= $index ?>, '<?= htmlspecialchars(addslashes($question), ENT_QUOTES, 'UTF-8') ?>', 1)"  title="YES">
                            <i class="ri-thumb-up-line"></i>
                        </button>
                        <button class="feedback-btn feedback-btn-<?= $index ?> not-helpful-btn" onclick="recordFeedback(<?= $index ?>, '<?= htmlspecialchars(addslashes($question), ENT_QUOTES, 'UTF-8') ?>', 0)"  title="NO">
                            <i class="ri-thumb-down-line"></i>
                        </button>
                        <button onclick="window.open('https://wa.me/8617000161888?text=Hello!', '_blank')" class="feedback-btn" title="No result ? Talk to us online." >
                            <i class="ri-whatsapp-line"></i>
                            Talk to us online
                        </button>
                    </div>
                    <div id="feedback-result-<?= $index ?>" class="feedback-result" style="display: none; color: #666; margin-top: 5px;"></div>
                </div>

            </div>


        <?php
        }

    $this->need('footer.php');

    exit();

    }
    else
    {



        // 提取 '/search' 后面的部分
        $keyword =  $category_info['name'];
        //$keyword = trim(str_replace('MTB-CUT', '', $keyword));


        // 使用正则表达式提取 '/search' 后面到下一个 '/' 之间的部分作为 keyword
        if ($keyword) {

            // 设置为 true，表示这是一个搜索请求
            $search = true;

            // 输出提取的关键字
            // echo "Keyword: $keyword\n";

            // 调用函数
            $data = retrieveDatasetData($token, $datasets, $keyword);

            // 你可以在这里继续处理 $data 或返回结果
        } else {
            // 如果无法提取 keyword，给出提示
            // echo "No keyword found in the path.\n";
        }


        $index = 0;
        foreach ($data['records'] as $record) {
            $index++;
            $content = $record['segment']['content'];


            // 提取开头的数字
            preg_match('/^\[(\d+)\]/', $content, $matches);
            $postId = $matches[1] ?? null;


            $postContent=null;
            // 从数据库获取完整内容


            $postContent = $postId ? getPost($postId) : null;


            // 移除开头的数字部分
            $contentWithoutNumber = preg_replace('/^\[\d+\]\s*/', '', $content);

//            // 按空格分割内容（保留所有符号）
//            $parts = preg_split('/\s+/', $contentWithoutNumber);
//
//            // 截取处理
//            $truncatedContent = '';
//            $charCount = 0;
//            $maxLength = 300;
//
//            foreach ($parts as $part) {
//                $partLength = strlen($part);
//                $spaceLength = $truncatedContent ? 1 : 0; // 空格长度
//
//                if ($charCount + $partLength + $spaceLength <= $maxLength) {
//                    $truncatedContent .= ($spaceLength ? ' ' : '') . $part;
//                    $charCount += $partLength + $spaceLength;
//                } else {
//                    // 处理最后追加的省略号
//                    $available = $maxLength - $charCount;
//                    if ($available >= 3) { // 剩余空间足够加...
//                        $truncatedContent .= ' ' . substr($part, 0, $available - 3) . '...';
//                    } elseif ($available > 0) {
//                        $truncatedContent .= substr($part, 0, $available);
//                    }
//                    break;
//                }
//            }
//
//            // 处理刚好满长度的情况
//            if ($charCount >= $maxLength && !str_ends_with($truncatedContent, '...')) {
//                $truncatedContent = substr($truncatedContent, 0, $maxLength - 3) . '...';
//            }

            // 将全角问号（？）和句号（。）替换为半角问号（?）和句号（.）
            $contentWithoutNumber = str_replace(['？', '。'], ['?', '.'], $contentWithoutNumber);

            // 按第一个问号（?）或句号（.）分割问题和答案
            if (preg_match('/^([^?.]+[?.])/', $contentWithoutNumber, $matches)) {
                $question = trim($matches[0]); // 问题部分（包括问号或句号）
                $answer = trim(substr($contentWithoutNumber, strlen($matches[0]))); // 答案部分
            } else {
                // 如果没有问号或句号，则整个内容作为问题
                $question = trim($contentWithoutNumber);
                $answer = ''; // 答案部分为空
            }

            // 检查答案中是否包含.mp4结尾的链接
            if (!empty($answer) && preg_match('/(https:\/\/mietublcom\.oss[^\s]+\.mp4)/', $answer, $mp4matches)) {
                $mp4url = $mp4matches[1]; // 提取MP4链接
                // 将MP4链接替换为视频播放器

                if($index==1)
                {
                    $videoPlayer = '<div class="adress"><video src="' . $mp4url . "\" title=\"{$question}\" controls=\"controls\" width=\"100%\" autoplay muted></video> </div>";
                }
                else
                {
                    $videoPlayer = '<div class="adress"><video src="' . $mp4url . "\" title=\"{$question}\" controls=\"controls\" width=\"100%\"></video> </div>";
                }

                // 将原来的MP4链接替换为视频播放器
                $answer = str_replace($mp4url, $videoPlayer, $answer);
            }
            
            // 检查答案中是否包含.jpg、.jpeg、.png、.gif等图片链接
            if (!empty($answer)) {
                // 匹配图片链接，包括osscdn.mietubl.com和mietublcom.oss两种域名
                if (preg_match_all('/(https:\/\/(?:osscdn\.mietubl\.com|mietublcom\.oss)[^\s]+\.(?:jpg|jpeg|png|gif|webp))/i', $answer, $imgMatches)) {
                    foreach ($imgMatches[1] as $imgUrl) {
                        // 将图片链接替换为img标签
                        $imgTag = '<div class="adress"><img src="' . $imgUrl . '" alt="' . $question . '" style="max-width:100%; height:auto;"></div>';
                        $answer = str_replace($imgUrl, $imgTag, $answer);
                    }
                }
            }
            
            // 将普通链接转换为可点击的链接（排除已经处理过的图片和视频链接）
            if (!empty($answer)) {
                // 匹配普通链接，排除已经在HTML标签中的链接
                $pattern = '/(?<!["\'=])(?<!src=)(?<!href=)(https?:\/\/(?!(?:osscdn\.mietubl\.com|mietublcom\.oss)[^\s]+\.(?:jpg|jpeg|png|gif|webp|mp4))[^\s"\'<>]+)/i';
                if (preg_match_all($pattern, $answer, $urlMatches)) {
                    foreach ($urlMatches[1] as $url) {
                        // 防止处理已经在a标签中的链接
                        if (strpos($answer, '<a') === false || strpos($answer, $url) < strpos($answer, '<a') || strpos($answer, $url) > strpos($answer, '</a>')) {
                            $linkTag = '<a href="' . $url . '" target="_blank" rel="noopener noreferrer">' . $url . '</a>';
                            $answer = str_replace($url, $linkTag, $answer);
                        }
                    }
                }
            }

            //暂进屏蔽POSTCONTENT
            // if($postContent)
            // {

            //     $answer=$postContent['text'];

            // }





            ?>

            <div class="uk-card uk-card-category uk-card-default uk-card-hover uk-card-body uk-inline uk-border-rounded uk-width-1-1">
                <div class="question" onclick="toggleAnswer(<?= $index ?>)">
                    <h4><?= "$index. $question" ?> </h4>


                </div>
                <div id="answer-<?= $index ?>" class="answer" style="display: none;white-space: pre-line;">
                    <?= $answer ?>
                </div>
                <!-- 添加反馈按钮 -->
                <div  id="feedback-<?= $index ?>" class="feedback-container " style="display: none; margin-top: 30px; padding: 0 15px 15px 15px; text-align: center">
                    <div class="feedback-question" style="font-size: 14px; color: #666; margin-bottom: 5px;">Was this article helpful to you?</div>
                    <div class="feedback-buttons">
                        <button class="feedback-btn  feedback-btn-<?= $index ?> helpful-btn" onclick="recordFeedback(<?= $index ?>, '<?= htmlspecialchars(addslashes($question), ENT_QUOTES, 'UTF-8') ?>', 1)"  title="YES">
                            <i class="ri-thumb-up-line"></i>
                        </button>
                        <button class="feedback-btn feedback-btn-<?= $index ?> not-helpful-btn" onclick="recordFeedback(<?= $index ?>, '<?= htmlspecialchars(addslashes($question), ENT_QUOTES, 'UTF-8') ?>', 0)"  title="NO">
                            <i class="ri-thumb-down-line"></i>
                        </button>
                        <button onclick="window.open('https://wa.me/8617000161888?text=Hello!', '_blank')" class="feedback-btn" title="No result ?  Talk to us online." >
                            <i class="ri-whatsapp-line"></i>
                            Talk to us online
                        </button>
                    </div>
                    <div id="feedback-result-<?= $index ?>" class="feedback-result" style="display: none; color: #666; margin-top: 5px;"></div>
                </div>

            </div>


            <?php
        }

        $this->need('footer.php');

        exit();


    }
    ?>




    </div>

 
 
  </div>
</div>




<?php $this->need('footer.php'); ?>
