Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Opera UserJS - Countdown script for forumwarz.
- // This will place the countdown timer into the title
- // Author: TT
- // v1.2.0
- //set these variables for the "options"
- var useShort=true; //set to false if you prefer long string as title
- var useExShort=false; //only uses biggest value (e.g. days only when at least one remains). trumps useShort.
- var spacer=""; //default is a "nothing" for the spacer. use " " for a space
- var useZeros=false; //show 0 days/hours/minutes as "0" instead of excluding them
- var trackIncit=true;
- var trackDomination=true;
- var trackAuctions=true;
- var trackVisits=true; // track time until visits reload (also deliveries) on /character/me
- var trackItemBuildr=true;
- var trackForumBuildr=true;
- // !!! DO NOT EDIT BELOW THIS UNLESS YOU KNOW WHAT YOU ARE DOING !!!
- //var orgTitle = document.title;
- var URL = document.location.href;
- var isDom = URL.indexOf('forumwarz.com/domination') != -1;
- var isIncit = URL.indexOf('forumwarz.com/incit') != -1;
- var isAuc = URL.indexOf('forumwarz.com/auctions') != -1;
- var isCharMe = URL.indexOf('forumwarz.com/characters/me') != -1;
- var isIB = URL.indexOf('forumwarz.com/item_buildr') != -1;
- var isFB = URL.indexOf('forumwarz.com/forum_buildr') != -1;
- window.opera.addEventListener(
- 'afterscript', //we definitely want scripts loaded first
- function (e) { //only enter main if we are on a proper page and the countdown script loaded
- if( e.element.getAttribute('src').indexOf('countdown.js') != -1 && (
- (isDom && trackDomination) ||
- (isIncit && trackIncit) ||
- (isAuc && trackAuctions) ||
- (isCharMe && trackVisits) ||
- (isIB && trackItemBuildr) ||
- (isFB && trackForumBuildr)
- )){
- setTimeout("checkForCountdown()", 1000); //give it 1 second for safety
- }
- },
- false
- );
- function checkForCountdown(){ //TODO add end of timer check here or maybe main()
- if(document.getElementById("countdown") != null)
- main(); //countdown element is not empty. enter main
- else
- setTimeout("checkForCountdown()", 1000); //else loop
- }
- //our main function that calls itself (loop)
- function main() {
- var fCD = document.getElementById("countdown").firstChild.nodeValue; //full countdown
- var offset = 0; //default no offset (auctions)
- if(isDom || isIncit || isIB) offset = 3; //offset fix for domination, INCIT, and Item_Buildr
- if(fCD.indexOf('until the next round begins') != -1 || isFB)
- offset = 5; //extra offset fix for "end of round" for INCIT and for Forum_Buildr
- if(isCharMe) offset = 6; // character/me offset fix
- var newTitle; //start out new title variable
- var sArray = fCD.split(" "); //split countdown text by spaces
- if(useExShort){
- newTitle = sArray[0] + sArray[1].substr(0,1); //grb first char (number) only
- } else if(useShort && !useZeros){
- switch(sArray.size()-offset){
- case 3: //seconds
- newTitle = sArray[0] + "s";break;
- case 6: //minutes+seconds
- newTitle = sArray[0] + "m" + spacer + sArray[3] + "s";break;
- case 8: //hours+minutes+seconds
- newTitle = sArray[0] + "h" + spacer + sArray[2] + "m" + spacer + sArray[5] + "s";break;
- case 10: //days+hours+minutes+seconds
- newTitle = sArray[0] + "d" + spacer + sArray[2] + "h" + spacer + sArray[4] + "m" + spacer + sArray[7] + "s";break;
- default:
- newTitle = fCD;
- }
- } else if(useShort && useZeros) {
- switch(sArray.size()-offset){
- case 3: //seconds
- newTitle = "0d" + spacer + "0h" + spacer + "0m" + spacer + sArray[0] + "s";break;
- case 6: //minutes+seconds
- newTitle = "0d" + spacer + "0h" + spacer + sArray[0] + "m" + spacer + sArray[3] + "s";break;
- case 8: //hours+minutes+seconds
- newTitle = "0d" + spacer + sArray[0] + "h" + spacer + sArray[2] + "m" + spacer + sArray[5] + "s";break;
- case 10: //days+hours+minutes+seconds
- newTitle = sArray[0] + "d" + spacer + sArray[2] + "h" + spacer + sArray[4] + "m" + spacer + sArray[7] + "s";break;
- default:
- newTitle = fCD;
- }
- } else if(!useShort && useZeros) {
- switch(sArray.size()-offset){
- case 3: //seconds
- newTitle = "0 days 0 hours 0 minutes and " + fCD;break;
- case 6: //minutes+seconds
- newTitle = "0 days 0 hours " + fCD;break;
- case 8: //hours+minutes+seconds
- newTitle = "0 days " + fCD;break;
- default: //case 10 (days,hrs,mins,secs) is same as default so let's just default =P
- newTitle = fCD;
- }
- } else {
- newTitle=fCD; //no match. use full countdown string
- }
- if(isIncit && trackIncit){ //INCIT specific code
- var submissions = document.getElementById('submissions_received');
- if(submissions!=undefined){ //for when it's not loaded yet
- submissions = submissions.text.substr(0,1); //first char (number)
- if(submissions > 0)
- newTitle += spacer + submissions + "sub"; //append number + "sub" to new title
- }
- var links = document.getElementsByTagName('a'); //grab all links
- var ass = "0"; //initialize "ass"
- for(i=40;i<60;i++){ //should be the 47th link, but we will search this range if links change
- if (links[i].text.indexOf("Assholes Online") != -1){ //find "Assholes Online" link text
- ass = links[i].text.substr(0,1); //grab first char (number)
- newTitle += spacer + ass + "ass"; //append number + "ass" to new title
- break; //exit loop. we only need one match. I got two for some reason...
- }
- }
- }
- document.title=newTitle; //finally, set the new title
- setTimeout("main()", 1000); //loop main with delay
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement