Help perform advanced GitHub searches with dynamic parameters.
当前为
// ==UserScript==
// @name GitHub 简易搜索
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Help perform advanced GitHub searches with dynamic parameters.
// @author Hill
// @match *://github.com/search*
// @grant none
// @license MIT // 这里添加许可证声明
// ==/UserScript==
(function() {
'use strict';
// 创建一个简单的表单来输入搜索参数
const formHTML = `
<div id="searchForm" style="position: fixed; top: 20px; right: 20px; background-color: white; padding: 10px; border: 1px solid #ccc; z-index: 1000; display: block;">
<div>
<label>Search Query:</label>
<input type="text" id="searchQuery" style="width: 200px;">
</div>
<div>
<label>Stars (>N):</label>
<input type="number" id="searchStars" placeholder="Enter number" style="width: 100px;">
</div>
<div>
<label>Language:</label>
<input type="text" id="searchLanguage" style="width: 100px;">
</div>
<button type="button" id="searchButton">Search on GitHub</button>
</div>
`;
// 插入表单到页面
const formContainer = document.createElement('div');
formContainer.innerHTML = formHTML;
document.body.appendChild(formContainer);
// 定义一个函数来处理回车键事件
function handleEnterPress(event) {
if (event.keyCode === 13) { // 检查是否是回车键(键码 13)
event.preventDefault(); // 防止默认行为
document.getElementById('searchButton').click(); // 触发搜索按钮的点击事件
}
}
// 添加事件监听器到每个输入框
document.getElementById('searchQuery').addEventListener('keypress', handleEnterPress);
document.getElementById('searchStars').addEventListener('keypress', handleEnterPress);
document.getElementById('searchLanguage').addEventListener('keypress', handleEnterPress);
let timeout = null;
// 监听滚动事件
window.addEventListener('scroll', function() {
// 当用户滚动时隐藏表单
document.getElementById('searchForm').style.display = 'none';
// 如果之前设置了定时器,则清除
clearTimeout(timeout);
// 设置定时器,滚动停止500毫秒后显示表单
timeout = setTimeout(function() {
document.getElementById('searchForm').style.display = 'block';
}, 500);
});
// 处理搜索按钮点击事件
document.getElementById('searchButton').addEventListener('click', function() {
const query = document.getElementById('searchQuery').value;
let stars = document.getElementById('searchStars').value;
const language = document.getElementById('searchLanguage').value;
// 格式化星标搜索参数
if (stars) {
stars = `>${stars}`; // 构建大于指定星标的搜索条件
}
// 构建搜索URL
let searchURL = 'https://github.com/search?q=';
if (query) {
searchURL += encodeURIComponent(query);
}
if (stars) {
searchURL += '+stars:' + encodeURIComponent(stars);
}
if (language) {
searchURL += '+language:' + encodeURIComponent(language);
}
// 在新标签页中打开搜索结果
window.open(searchURL, '_blank');
});
})();