Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Final Display Original Post on First page. That's all.
- // @namespace bubo-bubo/gmscripts
- // @description ASC - Display Original Post on First page not on every page
- // @grant unsafeWindow
- // @run-at document-end
- // @include https://discussions.apple.com/*
- // @include https://discussionsjapan.apple.com/*
- // @include https://discussionskorea.apple.com/*
- // @include https://discussionschinese.apple.com/*
- // @include https://communities.apple.com/*
- // @version 1.0
- // ==/UserScript==
- // Based on Hiroto's efforts. Moded by rccharles.
- var $ = unsafeWindow.jQuery;
- var watchdog1, watchdog2;
- var watch_interval = 250; // [ms]
- var re_thread_or_message = new RegExp('^https://[^/]+/(thread|message)/');
- var _debug = 0;
- console.log ("--> " + getDateTime() + ": Only on first page initializing: starting ... ");
- // modify thread content view behaviour (in post-load phase)
- window.onload = function() {
- // register event listeners
- window.addEventListener('unload', function(e) {
- if (_debug) console.log('Only on first page unload is observed');
- stop_watchdog_op(watchdog1);
- stop_watchdog_op(watchdog2);
- window.removeEventListener('_locationchange_op',
- _locationchange_op_handler,
- true);
- window.removeEventListener(e.type, arguments.callee, true);
- }, true);
- window.addEventListener('_locationchange_op', _locationchange_op_handler, true);
- function _locationchange_op_handler(e) {
- if (_debug) console.log('Only on first page _locationchange is observed');
- var href = window.location.href;
- if ( href.match(re_thread_or_message) ) {
- setTimeout(hide_solved_p2_op, 100);
- }
- }
- // _locationchange watch dog
- var prev_href = '';
- watchdog1 = setInterval( function() {
- // watch for location to change
- var curr_href = window.location.href;
- if (curr_href != prev_href) {
- if (_debug) console.log('Only on first page _locationchange_op is issued');
- window.dispatchEvent(new Event('_locationchange_op'));
- prev_href = curr_href;
- }
- }, watch_interval);
- };
- // Show or hide targetted element
- function hide_solved_p2_op() {
- var u = window.location.href;
- var re = /[?&]start=([0-9]+)/;
- var m = re.exec(u);
- var p = m ? m[1] : 0;
- if (_debug) console.log('Only on first page current start post numebr = ' + p);
- // Definite hack.
- // Original Poster info
- var div = $('.js-original-header.apple-overflow-hidden');
- if (!div) { return; }
- if (_debug) console.log('Only on first page found. decide ');
- p > 0 ? div.hide() : div.show();
- // Original post
- div = $('.j-original-message');
- if (!div) { return; }
- if (_debug) console.log('Only on first page decide#3 ');
- p > 0 ? div.hide() : div.show();
- }
- function stop_watchdog_op(dog) {
- clearInterval(dog);
- // console.log('Only on first page watchdog is inactive : ' + dog);
- }
- function getDateTime () {
- var currentDate = new Date(),
- day = currentDate.getDate(),
- month = currentDate.getMonth() + 1,
- year = currentDate.getFullYear();
- var currentTime = new Date(),
- hours = currentTime.getHours(),
- minutes = currentTime.getMinutes();
- if (minutes < 10) {
- minutes = "0" + minutes;
- }
- var suffix = "AM";
- if (hours >= 12) {
- suffix = "PM";
- hours = hours - 12;
- }
- if (hours == 0) {
- hours = 12;
- }
- return ( month + "/" + day + "/" + year + " " + hours + ":" + minutes + " " + suffix);
- } // end of functin getDateTime
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement