<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>资讯推送Web端</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
    <!-- 引入 Layui 的 CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui-src/dist/css/layui.css">
    <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 10px; /* 减少边距 */
        }
        h1 {
            color: #333;
            font-size: 1.5em; /* 适当减小标题字体 */
        }
        #markdown-content {
            white-space: pre-wrap;
            font-size: 0.9em; /* 减小内容字体 */
        }
        /* 返回顶部按钮样式 */
        #back-to-top {
            display: none;
            position: fixed;
            bottom: 10px; /* 调整位置 */
            right: 10px; /* 调整位置 */
            z-index: 99;
            font-size: 16px; /* 减小字体 */
            border: none;
            outline: none;
            background-color: #555;
            color: white;
            cursor: pointer;
            padding: 10px; /* 减小内边距 */
            border-radius: 4px;
        }
        #back-to-top:hover {
            background-color: #777;
        }
        #markdown-content a {
            color: blue;
            text-decoration: none; /* 可选:去掉下划线 */
        }
        #markdown-content a:hover {
            text-decoration: underline; /* 可选:鼠标悬停时显示下划线 */
        }
    
        /* 移动端样式调整 */
        @media only screen and (max-width: 600px) {
            body {
                margin: 5px;
            }
            h1 {
                font-size: 1.2em;
            }
            #markdown-content {
                font-size: 0.8em;
            }
            #back-to-top {
                font-size: 14px;
                padding: 8px;
            }
            #markdown-content a {
                color: blue;
                text-decoration: none; /* 可选:去掉下划线 */
            }
            #markdown-content a:hover {
                text-decoration: underline; /* 可选:鼠标悬停时显示下划线 */
            }

            /* 按钮样式调整 */
            #button-container {
                flex-direction: column; /* 换行显示按钮 */
                align-items: center; /* 按钮居中对齐 */
            }
            #button-container .layui-btn {
                margin: 5px 0; /* 增加按钮间距 */
                width: 90%; /* 调整按钮宽度 */
                max-width: 300px; /* 设置最大宽度 */
            }
        }
    </style>
</head>
<body>
    <div class="layui-container">
        <center><h1 class="layui-title" id="page-title">历史推送读取</h1><br>
        <!-- 折叠面板 -->
        <div class="layui-collapse" lay-filter="test">
            <div class="layui-colla-item">
                <h2 class="layui-colla-title">选择监控源新闻类型</h2>
                <div class="layui-colla-content">
                    <div id="button-container" class="layui-btn-group">
                        <button id="sec-news-btn" class="layui-btn">安全新闻</button>
                        <button id="tech-passage-btn" class="layui-btn">技术文章</button>
                        <button id="baidu-news-btn" class="layui-btn">百度新闻</button>
                        <button id="github-news-btn" class="layui-btn">GitHub新闻</button>
                        <button id="wx-news-btn" class="layui-btn">微信新闻</button>
                    </div>
                </div>
            </div>
        </div>
        <h4>为保证网页运作性能,默认仅读取前20条记录,若您有需求可自行更改app.py</h4></center>
        <div id="markdown-content" class="layui-card-body"></div>
    </div>

    <!-- 返回顶部按钮 -->
    <button id="back-to-top" title="Go to top">Top</button>

    <!-- 引入 Layui 的 JS -->
    <script src="https://cdn.jsdelivr.net/npm/layui-src/dist/layui.js"></script>
    <script>
        layui.use(['layer', 'element'], function(){
            var layer = layui.layer;
            var element = layui.element;

            var buttonMap = {
                'sec-news-btn': '/get-sec-news',
                'tech-passage-btn': '/get-tech-passage',
                'baidu-news-btn': '/get-baidu-news',
                'github-news-btn': '/get-github-news',
                'wx-news-btn': '/get-wx-news'
            };

            var titleMap = {
                '/get-sec-news': '安全新闻',
                '/get-tech-passage': '技术文章',
                '/get-baidu-news': '百度新闻',
                '/get-github-news': 'GitHub监控',
                '/get-wx-news': '微信文章监控'
            };

            function updateTitle(url) {
                document.getElementById('page-title').innerText = titleMap[url] || '历史推送读取';
            }

            function fetchContent(url, buttonId) {
                // Disable all buttons
                Object.keys(buttonMap).forEach(key => {
                    document.getElementById(key).disabled = false;
                });
                // Enable the clicked button
                document.getElementById(buttonId).disabled = true;

                updateTitle(url);

                fetch(url)
                    .then(response => response.json())
                    .then(data => {
                        if (data.content) {
                            const htmlContent = marked.parse(data.content);
                            document.getElementById('markdown-content').innerHTML = htmlContent;
                            // 添加这一行代码
                            addTargetBlankToLinks();
                        } else {
                            document.getElementById('markdown-content').innerHTML = '<p>加载历史推送文件时出错!(推送历史记录为空)</p>';
                        }
                    })
                    .catch(error => {
                        console.error('获取源文件失败:', error);
                        document.getElementById('markdown-content').innerHTML = '<p>无法加载历史推送文件!</p>';
                        layer.msg('加载资源失败', {icon: 5});
                    });
            }

            // Add event listeners to buttons
            Object.keys(buttonMap).forEach(key => {
                document.getElementById(key).addEventListener('click', function() {
                    fetchContent(buttonMap[key], key);
                    // Check if the device is mobile
                    if (isMobileDevice()) {
                        // Collapse the panel
                        element.collapse('hide', 'test', 0);
                    }
                });
            });

            // Initial fetch on page load
            var initialButtonId = 'sec-news-btn'; // Default button
            fetchContent(buttonMap[initialButtonId], initialButtonId);
        });

        // 显示或隐藏返回顶部按钮
        window.onscroll = function() {
            scrollFunction();
        };

        function scrollFunction() {
            if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
                document.getElementById("back-to-top").style.display = "block";
            } else {
                document.getElementById("back-to-top").style.display = "none";
            }
        }

        // 返回顶部按钮点击事件
        document.getElementById("back-to-top").addEventListener("click", function() {
            document.body.scrollTop = 0;
            document.documentElement.scrollTop = 0;
        });

        // 检测是否为移动设备
        function isMobileDevice() {
            return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
        }

        function addTargetBlankToLinks() {
            var links = document.querySelectorAll('#markdown-content a');
            links.forEach(function(link) {
                link.setAttribute('target', '_blank');
            });
        }

        // 在页面加载完成后调用该函数
        window.onload = function() {
            addTargetBlankToLinks();
        };
    </script>
</body>
</html>