您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Get reply notifications on the main forum page for any forum/group post that you enable.
// ==UserScript== // @name Spacehey Forum & Group Post Reply Notifications // @namespace http://tampermonkey.net/ // @version 1.1 // @description Get reply notifications on the main forum page for any forum/group post that you enable. // @author sudofry // @match https://forum.spacehey.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=spacehey.com // @grant none // @require https://code.jquery.com/jquery-3.7.0.min.js // @license MIT // ==/UserScript== (function() { 'use strict'; var $ = window.jQuery; var css = document.createElement('style'); css.innerHTML = ` #notification { background-color: #ffffff; color: #0000ff; font-weight: bold; padding-left: 10px; } #notification button { position: relative; top: 28px; left: -14px; float: right; padding-top: 4px; } #notification a:hover { cursor: pointer; } .message { color: #d2691e; } `; document.head.appendChild(css); var topics = []; var storedTopicId = ''; var storedReplyId = ''; var newestReplyId = ''; var title = ''; var groupName = ''; var list = ''; var checkTopicId = ''; var storedTopics = ''; var userId = ''; var postCreator = ''; var notificationBox = document.createElement('div'); notificationBox.id = 'notification'; $('nav').append(notificationBox); var showButton = document.createElement("button"); showButton.id = 'add'; if (window.location == 'https://forum.spacehey.com/') { $('#notification').html('<br><span class="message">There are no new notifications to display.</span><br>'); storedTopics = JSON.parse(localStorage.getItem('topics')); if (storedTopics != null) { for (var i = 0; i < storedTopics.length; i++) { storedTopicId = storedTopics[i].split('_')[0]; storedReplyId = storedTopics[i].split('_')[1]; check(storedTopicId, storedReplyId); } } $('#notification').on('click', 'a', function() { storedTopics = JSON.parse(localStorage.getItem('topics')); storedTopicId = $(this).attr('id').split('_')[0]; $.get('https://forum.spacehey.com/topic?id=' + storedTopicId + '&sort=new#replies', function(getLatestReply) { newestReplyId = $(getLatestReply).find('.reply-box').first().attr('id').split('reply')[1]; if (storedTopics != null) { topics = []; for (var i = 0; i < storedTopics.length; i++) { if (storedTopics[i].split('_')[0] != storedTopicId) { topics.push(storedTopics[i]); } } } topics.push(storedTopicId + '_' + newestReplyId); localStorage.setItem('topics', JSON.stringify(topics)); window.location.href = 'https://forum.spacehey.com/topic?id=' + storedTopicId + '&sort=new#replies'; }); }); } if (window.location.href.indexOf('https://forum.spacehey.com/topic?id=') > -1) { storedTopics = JSON.parse(localStorage.getItem('topics')); postCreator = $('.profile-pic a').first().attr('href'); postCreator = postCreator.split('=')[1]; $('#notification').append(showButton); $.get('https://forum.spacehey.com', function(getUserId) { userId = $(getUserId).find('.blog-preview a:last-child').attr('href'); userId = userId.split('=')[1]; if (userId == postCreator) { $('#notification').hide(); } }); checkTopicId = window.location.href.split('https://forum.spacehey.com/topic?id=')[1]; checkTopicId = checkTopicId.split('&')[0]; $('#notification').html('<button id="add">Enable Notifications</button>'); if (storedTopics != null) { for (var x = 0; x < storedTopics.length; x++) { storedTopicId = storedTopics[x].split('_')[0]; if (storedTopicId == checkTopicId) { $('#notification').html('<button id="remove">Disable Notifications</button>'); } } } $('#notification').on('click', 'button', function() { storedTopics = JSON.parse(localStorage.getItem('topics')); if ($('#notification').html() == '<button id="add">Enable Notifications</button>') { $.get('https://forum.spacehey.com/topic?id=' + checkTopicId + '&sort=new#replies', function(getLatestReply) { newestReplyId = $(getLatestReply).find('.reply-box').first().attr('id'); if (newestReplyId == undefined) { newestReplyId = 0; } else { newestReplyId = newestReplyId.split('reply')[1]; } if (storedTopics != null) { topics = []; for (var i = 0; i < storedTopics.length; i++) { topics.push(storedTopics[i]); } } topics.push(checkTopicId + '_' + newestReplyId); localStorage.setItem('topics', JSON.stringify(topics)); $('#notification').html('<button id="remove">Disable Notifications</button>'); }); } if ($('#notification').html() == '<button id="remove">Disable Notifications</button>') { $.get('https://forum.spacehey.com/topic?id=' + checkTopicId + '&sort=new#replies', function(getLatestReply) { newestReplyId = $(getLatestReply).find('.reply-box').first().attr('id'); if (newestReplyId == undefined) { newestReplyId = 0; } else { newestReplyId = newestReplyId.split('reply')[1]; } if (storedTopics != null) { topics = []; for (var i = 0; i < storedTopics.length; i++) { if (storedTopics[i].split('_')[0] != checkTopicId) { topics.push(storedTopics[i]); } } } localStorage.setItem('topics', JSON.stringify(topics)); location.reload(); }); } }); } function check(storedTopicId, storedReplyId) { $.get('https://forum.spacehey.com/topic?id=' + storedTopicId + '&sort=new#replies', function(getLatestReply) { newestReplyId = $(getLatestReply).find('.reply-box').first().attr('id').split('reply')[1]; title = $(getLatestReply).find('.title').first().text(); groupName = $(getLatestReply).find('.category a').text().split(' Group')[0]; if (newestReplyId > storedReplyId) { if ($('#notification').html() == '<br><span class="message">There are no new notifications to display.</span><br>') { $('#notification').html(''); } list = $('#notification').html(); $('#notification').html('<br /><a id="' + storedTopicId + '_' + newestReplyId + '">' + groupName + ' - ' + title + '</a><br />' + list); } }); } })();