您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds features for HF Writers team.
当前为
- // ==UserScript==
- // @name HF Writers Features
- // @namespace xerotic
- // @description Adds features for HF Writers team.
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
- // @include *hackforums.net*
- // @grant GM_info
- // @grant GM_addStyle
- // @grant GM_setValue
- // @grant GM_getValue
- // @run-at document-start
- // @version 0.1
- // ==/UserScript==
- // Separator between groups: <|||>
- // Separator between pieces: >|||<
- // File (xerotic): https://dl.dropboxusercontent.com/s/teqtv03344ze5sv/format.txt
- // File (Sir): https://dl.dropboxusercontent.com/u/46622032/hfuss.txt
- String.prototype.contains = function (arg) {
- return (this.indexOf(arg) >= 0) ? true : false;
- }
- a_array = new Array();
- viewed_array = {};
- private_count = 0
- private_html = '';
- private_temp = '';
- announce_html = '';
- function TimezoneDetect(){
- var dtDate = new Date('1/1/' + (new Date()).getUTCFullYear());
- var intOffset = 10000; //set initial offset high so it is adjusted on the first attempt
- var intMonth;
- var intHoursUtc;
- var intHours;
- var intDaysMultiplyBy;
- //go through each month to find the lowest offset to account for DST
- for (intMonth=0;intMonth < 12;intMonth++){
- //go to the next month
- dtDate.setUTCMonth(dtDate.getUTCMonth() + 1);
- //To ignore daylight saving time look for the lowest offset.
- //Since, during DST, the clock moves forward, it'll be a bigger number.
- if (intOffset > (dtDate.getTimezoneOffset() * (-1))){
- intOffset = (dtDate.getTimezoneOffset() * (-1));
- }
- }
- return intOffset;
- }
- $.ajax({
- url: "https://dl.dropboxusercontent.com/u/46622032/hfuss.txt",
- }).done(function(data) {
- var announcements = data.split('<|||>');
- $.each(announcements, function(index, value) {
- viewed_array[value.split('>|||<')[0]] = GM_getValue('id' + value.split('>|||<')[0], 0);
- if(parseInt(value.split('>|||<')[1]) == 1 && viewed_array[value.split('>|||<')[0]] == 0 && !pageTitle.contains('search.php?action=results&writerid=' + value.split('>|||<')[0])) {
- // if() {
- // GM_setValue('id' + writer_id, 1);
- // }
- private_count = private_count + 1;
- }
- a_array.push(value.split('>|||<'));
- });
- if(private_count == 1) {
- private_html = '<div class="pm_alert writers_alert" id="writer_notice"><div><strong>You have one unread Writers message</strong> titled <a href="search.php?action=results&writerid=';
- } else if(private_count > 1) {
- private_html = '<div class="pm_alert writers_alert" id="writer_notice"><div><strong>You have ' + private_count + ' unread Writers messages.</strong> Click <a href="search.php?action=results&writerid=0" style="font-weight: bold;">Here</a> to view them.';
- }
- var installed = GM_getValue('script_installed', 0);
- $.each(a_array, function(index, value) {
- if(!installed) {
- GM_setValue('id' + value[0], 1);
- }
- if(parseInt(value[1]) == 1 && private_count == 1 && viewed_array[value[0]] == 0 && !pageTitle.contains('search.php?action=results&writerid=' + value[0])) {
- private_temp = value[0] + '" style="font-weight: bold;">' + value[3] + '</a>';
- } else if(parseInt(value[1]) == 2) {
- announce_html = announce_html + '<div class="pm_alert writers_announcement" id="writer_announce"><div style="margin-top:5px;padding-bottom:5px;">' + value[4] + '</div></div>';
- }
- });
- if(!installed) {
- GM_setValue('script_installed', 1);
- }
- if(private_html.length > 10) {
- private_html = private_html + private_temp + '</div></div>';
- }
- });
- pageTitle = location.href;
- if(location.href.contains("search.php?action=results&writerid=")) {
- writer_id = parseInt(pageTitle.split('writerid=')[1]);
- }
- /* This is ran after AJAX is ready */
- function ajaxFinished() {
- if($("#content").length > 0) {
- if ($("#pm_notice").length > 0){
- var new_div = $('<div>' + private_html + announce_html + '</div>').hide();
- $("#pm_notice").after(new_div);
- new_div.slideDown(200);
- } else {
- var new_div = $('<div>' + private_html + announce_html + '</div>').hide();
- $('#content').prepend(new_div);
- new_div.slideDown(200);
- }
- // 6-23-2014, 1:39 AM
- if(pageTitle.contains("search.php?action=results&writerid=")) {
- if(writer_id == 0) {
- if(a_array.length > 1) {
- $('.thead').attr('colspan', '3').parent().next().remove();
- var $page_area = $('.thead').parent();
- var content_html = '';
- $.each(a_array.reverse(), function(index, value) {
- // var the_time = new Date((parseInt(new String(Date.now()).substring(0,10)) + TimezoneDetect() * 10) * 1000);
- var the_time = new Date((parseInt(value[2]) + TimezoneDetect() * 10) * 1000);
- if(the_time.getHours() > 12) {
- var time_hours = the_time.getHours() - 11;
- var am_or_pm = 'PM';
- } else {
- var time_hours = the_time.getHours() + 1;
- var am_or_pm = 'AM';
- }
- if(the_time.getMinutes() < 10) {
- var time_minutes = '0' + the_time.getMinutes();
- } else {
- var time_minutes = the_time.getMinutes();
- }
- var formatted_time = (the_time.getMonth() + 1) + '-' + the_time.getDate() + '-' + the_time.getFullYear();
- if(parseInt(value[1]) == 1) {
- if(GM_getValue('id' + viewed_array[value[0]]) == 1) {
- var read_or_not = '<td align="center" class="trow1" width="1%"><img src="http://x.hackforums.net/images/modern_bl/old_pm.gif" alt="Old Message" title="Old Message"></td><td align="center" class="trow1" width="12%"><span class="smalltext">' + formatted_time + '</span></td>';
- var strong = '<a href="search.php?action=results&writerid=' + value[0] + '">' + value[3] + '</a>';
- } else {
- var read_or_not = '<td align="center" class="trow1" width="1%"><img src="http://x.hackforums.net/images/modern_bl/new_pm.gif" alt="New Message" title="New Message"></td><td align="center" class="trow1" width="12%"><span class="smalltext">' + formatted_time + '</span></td>';
- var strong = '<strong><a href="search.php?action=results&writerid=' + value[0] + '">' + value[3] + '</a></strong>';
- }
- content_html = content_html + '<tr>' + read_or_not + '<td class="trow1">' + strong + '</td></tr>';
- } else if(parseInt(value[1]) == 2) {
- var read_or_not = '<td align="center" class="trow1" width="1%"><img src="http://x.hackforums.net/images/modern_bl/old_pm.gif" alt="Announcement" title="Announcement"></td><td align="center" class="trow1" width="12%"><span class="smalltext">' + formatted_time + '</span></td>';
- content_html = content_html + '<tr>' + read_or_not + '<td class="trow1"><a href="search.php?action=results&writerid=' + value[0] + '">' + value[3] + '</a></td></tr>';
- }
- });
- $page_area.after(content_html);
- } else {
- var $page_area = $('.thead').first().parent().next().children().first();
- $page_area.html('No news Writer\'s messages');
- }
- // var $page_area = $('.thead').first().parent().next().children().first();
- // $page_area.html(new String(Date.now()).substring(0,10));
- } else if(writer_id > 0) {
- $.each(a_array, function(index, value) {
- if(writer_id == value[0]) {
- GM_setValue('id' + writer_id, 1);
- $('.thead').parent().next().remove();
- var $page_area = $('.thead').html('<strong>' + value[3] + '</strong>').parent();
- var the_time = new Date((parseInt(value[2]) + TimezoneDetect() * 10) * 1000);
- if(the_time.getHours() > 12) {
- var time_hours = the_time.getHours() - 11;
- var am_or_pm = 'PM';
- } else {
- var time_hours = the_time.getHours() + 1;
- var am_or_pm = 'AM';
- }
- if(the_time.getMinutes() < 10) {
- var time_minutes = '0' + the_time.getMinutes();
- } else {
- var time_minutes = the_time.getMinutes();
- }
- var formatted_time = (the_time.getMonth() + 1) + '-' + the_time.getDate() + '-' + the_time.getFullYear();
- $page_area.after('<tr><td class="tcat">' + formatted_time + '</td></tr><tr><td class="trow1">' + value[4] + '</td></tr>');
- }
- });
- }
- }
- } else {
- $(document).on('DOMContentLoaded', ajaxFinished);
- }
- }
- function mainContentLoaded() {
- $('#panel').append(' | <a href="search.php?action=results&writerid=0">Writer\'s Messages</a>');
- }
- GM_addStyle(".writers_alert { border-top:1px solid gold !important; border-bottom:1px solid gold !important; }");
- GM_addStyle(".writers_announcement { border-top:1px solid gold !important; border-bottom:1px solid gold !important; min-height:30px !important; }");
- $(document).on('DOMContentLoaded', mainContentLoaded);
- $(document).bind('ajaxComplete', function(){
- ajaxFinished();
- });