笔点导航2

笔点导航列表渲染获取

// ==UserScript==
// @name         笔点导航2
// @namespace    http://tampermonkey.net/
// @version      V1.0.7
// @description  笔点导航列表渲染获取
// @author       You
// @match        https://www.bidianer.com/
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bidianer.com
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
	'use strict';

    var sortStatus = 0;

    // 从本地存储中检索数据
    var retrievedData = localStorage.getItem('guUrl2');
    console.log(retrievedData); // 输出 "value"

	var url="https://push2.eastmoney.com/api/qt/ulist.np/get?fltt=2&fields=f12,f13,f19,f14,f139,f148,f2,f4,f1,f125,f18,f3,f152,f5,f30,f31,f32,f6,f8,f7,f10,f22,f9,f112,f100,f88,f153,f62&secids=1.512690,1.588190,1.588300,1.588000,1.588200,1.588100,0.159949,0.159899,1.562930,0.159995,1.512480,0.159819,1.562950,0.159695,1.510300,1.512000,1.512070,1.516100,1.513220,1.512200,0.159915,1.513330,1.513130,1.515790,0.159752,0.159806,1.516820,1.588370,0.159928,0.159751,1.513380,1.588050,0.159692,0.159310,0.159852,1.516610,1.516730,1.588330,0.159723"


    if(retrievedData){
        url = retrievedData;
        console.log("22222",retrievedData)
    }

	function init() {
		var elements = document.getElementsByClassName("sidebar-right");


		// 获取第一个符合条件的元素
		var aaElement = elements[0];

		// 获取该元素下所有 class 为 "bb" 的元素
		var bbElements = aaElement.getElementsByClassName("sidebar-item");

		// 如果存在至少两个 class 为 "bb" 的元素
		if (bbElements.length >= 2) {
			// 获取第二个 class 为 "bb" 的元素
			var bbElement = bbElements[1]

			// 修改该元素的 HTML 内容
			// 创建要添加的 HTML 内容
			var htmlContent = '<div style="padding:10px"><div id="yourDivId2" style="height:250px;overflow-y: scroll;color:#767070"></div></div>'

			bbElement.innerHTML = htmlContent;
		}
	}
	var inde = 0;

    function addEvents(){
        // 获取需要添加点击事件的元素,可以使用 document.querySelector() 方法
        var elements = document.querySelectorAll('.topEnvent'); // 通过类名获取元素

        // 遍历所有匹配的元素,并为每个元素添加点击事件监听器
        elements.forEach(function(element) {
            element.addEventListener('click', function() {
                // 点击事件触发时执行的代码
                console.log('Element clicked!',element);
                 // 获取属性值并打印
                var attributeValue = element.getAttribute('data-value');
                url = url.replace("secids=","secids="+attributeValue+",");
                attributeValue = ","+attributeValue;
                url = url.replace(attributeValue,"");
                console.log(attributeValue,url);
                    // 将数据保存到本地存储
                localStorage.setItem('guUrl2', url);
                // 在这里可以添加你想要执行的操作
            });
        });

        // 获取需要添加点击事件的元素,可以使用 document.querySelector() 方法
        var elements1 = document.querySelectorAll('.cancelEnevent'); // 通过类名获取元素

        // 遍历所有匹配的元素,并为每个元素添加点击事件监听器
        elements1.forEach(function(element) {
            element.addEventListener('click', function() {
                // 点击事件触发时执行的代码
                console.log('Element clicked!',element);

                localStorage.removeItem('guUrl2');
            });
        });

        // 获取需要添加点击事件的元素,可以使用 document.querySelector() 方法
        var elements2 = document.querySelectorAll('.sortDesc'); // 通过类名获取元素

        // 遍历所有匹配的元素,并为每个元素添加点击事件监听器
        elements2.forEach(function(element) {
            element.addEventListener('click', function() {
                // 点击事件触发时执行的代码
                console.log('Element clicked!',element);
                sortStatus = 1
            });
        });

         // 获取需要添加点击事件的元素,可以使用 document.querySelector() 方法
        var elements3 = document.querySelectorAll('.sortAsc'); // 通过类名获取元素

        // 遍历所有匹配的元素,并为每个元素添加点击事件监听器
        elements3.forEach(function(element) {
            element.addEventListener('click', function() {
                // 点击事件触发时执行的代码
                console.log('Element clicked!',element);
                sortStatus = 2
            });
        });
    }

	function setHmtl(responseData) {
		// 获取所有 class 为 "sidebar-right" 的元素
		console.log("收到的数据:", responseData);
		inde = inde + 1;
		// 获取要添加 HTML 内容的目标 div 元素
		var targetDiv = document.getElementById("yourDivId2"); // 用你的实际的 div id 替换 "yourDivId"

		// 创建一个无序列表元素
		var ulElement = '<ul>'

		// 遍历 responseData 中的 list 元素,并将其转换为 HTML 列表项
        var dataList = responseData.data.diff;
        if(sortStatus == 1){
            dataList.sort((a, b) => b.f3 - a.f3);
        }
        if(sortStatus == 2){
            dataList.sort((a, b) => a.f3 - b.f3);
        }
		dataList.forEach(function(item) {
			ulElement += '<li>';
			// 创建列表项元素
			var liElement = document.createElement("li");
            var amount = item.f62;
            if (Math.abs(amount) >= 100000000) {
                amount = (amount / 100000000).toFixed(2) + "亿";
            } else {
                amount = (amount / 10000).toFixed(2) + "";
            }
			if (item.f3 >= 0) {
				// 设置列表项的文本内容
				ulElement += '<div class="container" style="display: flex;flex-wrap: wrap;color:#666;margin-bottom:5px">' +
					'<div class="box " style="flex:5;cursor: pointer;">'+ item.f14 +'</div>' +
'<div class="box " style="flex:2;cursor: pointer">'+ item.f2 +'</div>' +
'<div class="box " style="flex:2;cursor: pointer;font-weight:bold;" data-value="'+item.f13+'.'+item.f12+'" >'+ item.f3 +'</div>' +
					
					
                    '<div class="box" style="flex:2;cursor: pointer">'+ amount +'</div>' +
					'</div>'
				//ulElement += item.f14 + ":" + item.f100 + ":" + item.f2 + ":" + item.f3 + ":" + inde;
			} else {
				// 设置列表项的文本内容
				ulElement += '<div class="container" style="display: flex;flex-wrap: wrap;color:#0084ff;margin-bottom:5px">' +
					'<div class="box " style="flex:5;cursor: pointer;">'+ item.f14 +'</div>' +
'<div class="box " style="flex:2;cursor: pointer">'+ item.f2 +'</div>' +
'<div class="box " style="flex:2;cursor: pointer;font-weight:bold;" data-value="'+item.f13+'.'+item.f12+'" >'+ item.f3 +'</div>' +
					
					
                    '<div class="box" style="flex:2;cursor: pointer">'+ amount +'</div>' +
					'</div>'
			}

			// 将列表项添加到无序列表中
			ulElement += '</li>';
		});
		ulElement += '</ul>'
		// 将生成的无序列表添加到目标 div 中
		targetDiv.innerHTML = ulElement;

        // 点击事件
        //addEvents()
	}

	function sendGETRequest(url) {
		var xhr = new XMLHttpRequest();
		xhr.open("GET", url, true);
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {
				var responseData = JSON.parse(xhr.responseText); // 解析 JSON 格式的响应数据
				// 在这里对 responseData 进行处理

				setHmtl(responseData);
			}
		};
		xhr.send();
	}

    var interval = 2000; // 设置间隔时间,单位为毫秒(这里是每隔 5 秒发送一次请求)
	setInterval(function() {
		sendGETRequest(url); // 发送 GET 请求
	}, interval);
	setTimeout(function() {
		init();
		sendGETRequest(url); // 发送 GET 请求
	}, interval);

	// 创建样式字符串
	var customStyle = `
        /* 设置滚动条样式 */
        ::-webkit-scrollbar {
            width: 2px; /* 设置滚动条宽度 */
        }

        ::-webkit-scrollbar-thumb {
            background-color: #888; /* 设置滚动条滑块颜色 */
            border-radius: 2px; /* 设置滚动条滑块的圆角 */
        }

        ::-webkit-scrollbar-track {
            background-color: #e2e3e9; /* 设置滚动条轨道颜色 */
            border-radius: 5px; /* 设置滚动条轨道的圆角 */
        }
        .container .box{
           flex: 1;
        }
    `;

	// 创建 style 标签
	var styleElement = document.createElement("style");
	styleElement.textContent = customStyle;

	// 将 style 标签添加到 head 中
	document.head.appendChild(styleElement);
	// Your code here...
})();