当前为
// ==UserScript== // @name Flashscore Better Score // @namespace Flashscore // @version 0.3 // @include http://www.flashscore.com/* // @description:en Adds score evaluation, view TotalScore, AH1 at matchdetails. // @copyright 2016+, [email protected] // @grant none // ==/UserScript== function MyCompareScore(SRef, SCOMP, SOP, T1, T2) { var A; var B; var R; T1 = parseInt(T1); T2 = parseInt(T2); if (SRef == 'TotalScore') { A = T1 + T2; } else if (SRef == 'AH1') { A = T2 - T1; } else if (SRef == 'AH2') { A = T1 - T2; } else if (SRef == 'Team1Score') { A = T1; } else if (SRef == 'Team2Score') { A = T2; } B = parseFloat(SCOMP); if (SOP == 'GT') { return A > B; } else if (SOP == 'LT') { return A < B; } else if (SOP == 'GE') { return A >= B; } else if (SOP == 'LE') { return A <= B; } else if (SOP == 'EQ') { return A == B; } else if (SOP == 'NE') { return A != B; } return false; } function MyOperationText(SOP) { if (SOP == 'GT') { return '>'; } else if (SOP == 'LT') { return '<'; } else if (SOP == 'GE') { return '>='; } else if (SOP == 'LE') { return '<='; } else if (SOP == 'EQ') { return '=='; } else if (SOP == 'NE') { return '!='; } return null; } function MyFlashscore() { var SRef = '<select id="SRef"><option value="AH1">AH1</option><option value="AH2">AH2</option><option value="TotalScore">TotalScore</option><option value="Team1Score">Team1Score</option><option value="Team1Score">Team2Score</option></select> OP:<select ID="SOP"><option value="LT"><</option><option value="GT">></option><option value="LE">≤</option><option value="GE">≥</option><option value="EQ">≡</option><option value="NE">≠</option></select> COMP:<input type="number" id="SCOMP" value="0" step="0.5">'; //Get Saved if (localStorage.getItem('BetterScoreSel') === null) { LSSel = []; } else { LSSel = JSON.parse(localStorage['BetterScoreSel']); } //-------------------------------------------------------------------------------------------------------------- // match-summary //-------------------------------------------------------------------------------------------------------------- var uri; var re = /.*\/match\/(.*)\/#match-summary/; if ((uri = re.exec(window.location.href)) !== null) { //More Score Top if ($('.current-result > .r > .sum').length) { T1 = parseInt($('.current-result > .r > span:eq(0)').text()); T2 = parseInt($('.current-result > .r > span:eq(2)').text()); sum = T1 + T2; diff = T2 - T1; if (!isNaN(sum)) { $('.current-result > .r > .sum').text(sum + ' | AH1 ' + diff); } } else { if ($('.current-result > .r').length) { $('.current-result > .r').append('<div class="sum"></div>'); MyFlashscore(); } else { if ($('.current-result > .sum').length) { T1 = parseInt($('.current-result > span:eq(0)').text()); T2 = parseInt($('.current-result > span:eq(2)').text()); sum = T1 + T2; diff = T2 - T1; if (!isNaN(sum)) { $('.current-result > .sum').text(sum + ' | AH1 ' + diff); } } else { $('.current-result').append('<div class="sum"></div>'); MyFlashscore(); } } } //Basketball Quarters sum if ($('#parts> tbody > tr.odd:first > td').length == 7 && $('#parts> tbody > tr').length <= 3) { $('#parts> tbody').append('<tr class="odd"><td></td><td class="Sum"></td><td class="score 1Q"></td><td class="score 2Q"></td><td class="score 3Q"></td><td class="score 4Q"></td></tr>'); $sum = parseInt($('#parts> tbody > tr:eq(1) >td:eq(1)').text()) + parseInt($('#parts> tbody > tr:eq(2) >td:eq(1)').text()); $sum1Q = parseInt($('#parts> tbody > tr:eq(1) >td:eq(2)').text()) + parseInt($('#parts> tbody > tr:eq(2) >td:eq(2)').text()); $sum2Q = parseInt($('#parts> tbody > tr:eq(1) >td:eq(3)').text()) + parseInt($('#parts> tbody > tr:eq(2) >td:eq(3)').text()); $sum3Q = parseInt($('#parts> tbody > tr:eq(1) >td:eq(4)').text()) + parseInt($('#parts> tbody > tr:eq(2) >td:eq(4)').text()); $sum4Q = parseInt($('#parts> tbody > tr:eq(1) >td:eq(5)').text()) + parseInt($('#parts> tbody > tr:eq(2) >td:eq(5)').text()); if (!isNaN($sum)) { $('#parts> tbody > tr >td.Sum').text($sum); } if (!isNaN($sum1Q)) { $('#parts> tbody > tr >td.1Q').text($sum1Q); } if (!isNaN($sum2Q)) { $('#parts> tbody > tr >td.2Q').text($sum2Q); } if (!isNaN($sum3Q)) { $('#parts> tbody > tr >td.3Q').text($sum3Q); } if (!isNaN($sum4Q)) { $('#parts> tbody > tr >td.4Q').text($sum4Q); } } // Add comparison options if ($('th.header > div').length == 1) { $('th.header').append('<div> - Ref:' + SRef + '</div>'); } //Check have saved data var i; var m; for (i = 0; i < LSSel.length; i++) { if (LSSel[i]['ID'] == uri[1]) { $("#SRef").val( LSSel[i]['SRef'] ); $("#SCOMP").val( LSSel[i]['SCOMP'] ); $("#SOP").val( LSSel[i]['SOP'] ); break; } } // Check comparison options if ($("#SCOMP").val() && !isNaN(sum)) { var R = MyCompareScore($("#SRef option:selected").val(), $("#SCOMP").val(), $("#SOP option:selected").val(), T1, T2); if (R) { $('#flashscore_column').css("background-color", "#9f9"); } else { $('#flashscore_column').css("background-color", "#f99"); } // add title icons var link = document.createElement('link'); link.rel = 'shortcut icon'; if (R) { link.href = 'http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/ico/Ok.ico'; } else { link.href = 'http://files.softicons.com/download/toolbar-icons/max-mini-icons-by-ashung/ico/error.ico '; } document.getElementsByTagName('head')[0].appendChild(link); } } //-------------------------------------------------------------------------------------------------------------- // My-Games //-------------------------------------------------------------------------------------------------------------- if ($('li.ifmenu-custom.selected').length === 1) { //console.log('My-Games'); if ($('div.MySRef').length === 0) { $('.table-line-bottom:first').after('<div class="MySRef"><label>Ref:</label>' + SRef + '</div>'); } if ($('td.MyRefer').length === 0) { $skipnext = false; $('.table-main > table > tbody >tr:not([class="blank-line"]) ').each(function() { if ($skipnext) { $skipnext = false; return true; } var FO = null; var i; for (i = 0; i < LSSel.length; i++) { if ( $(this).attr('id').endsWith( LSSel[i]['ID'] ) ) { FO = LSSel[i]; break; } } //console.log(FO); if ($(this).parents('table').attr('class') == 'basketball') { if (!!FO) { $(this).append('<td rowspan="2" class="MyRefer" style="nowrap;width: 100px;" sref="' + FO['SRef'] + '" sop="' + FO['SOP'] + '" scomp="' + FO['SCOMP'] + '">' + FO['SRef'] + ' ' + MyOperationText(FO['SOP']) + ' ' + FO['SCOMP'] + '</td>'); } else { $(this).append('<td rowspan="2" class="MyRefer" style="nowrap;width: 100px;" >Choose your bet below the table and click here</td>'); } $skipnext = true; } else { if (!!FO) { $(this).append('<td class="MyRefer" style="nowrap;width: 100px;" sref="' + FO['SRef'] + '" sop="' + FO['SOP'] + '" scomp="' + FO['SCOMP'] + '">' + FO['SRef'] + ' ' + MyOperationText(FO['SOP']) + ' ' + FO['SCOMP'] + '</td>'); } else { $(this).append('<td class="MyRefer" style="nowrap;width: 100px;">Choose your bet below the table and click here</td>'); } } }); $('.table-main > table > thead >tr >td').each(function() { if (parseInt($(this).attr('colspan')) == 8) { $(this).attr('colspan', 9); } else if (parseInt($(this).attr('colspan')) == 11) { $(this).attr('colspan', 12); } }); //Kosmetik $('.table-main > table > tbody >tr.blank-line > td ').each(function() { $(this).attr('colspan', $(this).attr('colspan') + 1); }); $('.MyRefer').on('click', function(e) { e.stopPropagation(); //console.log($(this)); var SRef = $("#SRef option:selected").val(); var SOP = $("#SOP option:selected").val(); var SCOMP = $("#SCOMP").val(); var reb = /.+_.+_(.*)/; var m = reb.exec( $(this).parent().attr('id') ); var ID = m[1]; MakeSave( ID ); //Set Attr ad Displaytext $(this).attr('SRef', SRef); $(this).attr('SOP', SOP); $(this).attr('SCOMP', parseFloat(SCOMP)); $(this).text(SRef + ' ' + MyOperationText(SOP) + ' ' + SCOMP); }); $('.MyRefer').on('mouseover', function(e) { e.stopPropagation(); }); } $('td.MyRefer').each(function() { if ($(this).is('[SRef]')) { var T1, T2; var re = /(\d+).-.(\d+)/; if ((m = re.exec($($(this).parent()).find('.score').text())) !== null) { T1 = m[1]; T2 = m[2]; } else if ($($(this).parent()).find('.score-home').text() !== '') { T1 = $($(this).parent()).find('.score-home').text(); T2 = $($(this).parent()).next().find('.score-away').text(); } if (!isNaN(parseInt(T1))) { var R = MyCompareScore($(this).attr('SRef'), parseFloat($(this).attr('SCOMP')), $(this).attr('SOP'), T1, T2); //console.log($(this).attr('SRef'), $(this).attr('SCOMP'), $(this).attr('SOP'),R,T1,T2); if (R) { $(this).css("background-color", "#9f9"); } else { $(this).css("background-color", "#f99"); } } } }); } } function MakeSave(ID){ //Get Saved if (localStorage.getItem('BetterScoreSel') === null) { LSSel = []; } else { LSSel = JSON.parse(localStorage['BetterScoreSel']); } var SRef = $("#SRef option:selected").val(); var SOP = $("#SOP option:selected").val(); var SCOMP = $("#SCOMP").val(); var TS = new Date().getTime(); //Remove old timestamps (5 Days) for (var i = 0; i < LSSel.length; i++) { if ((LSSel[i]['TS'] + 432000000) <= TS) { LSSel.splice(i, 1); } } //Remove old values for (i = 0; i < LSSel.length; i++) { if (LSSel[i]['ID'] == ID) { LSSel.splice(i, 1); break; } } //Add new values and saved LSSel.push({ SRef: SRef, SOP: SOP, SCOMP: SCOMP, TS: TS, ID: ID }); localStorage.setItem('BetterScoreSel', JSON.stringify(LSSel)); } var sum = 0; var diff = 0; var T1 = 0; var T2 = 0; $('th.header').change(function() { var uri; var re = /.*\/match\/(.*)\/#match-summary/; if ((uri = re.exec(window.location.href)) !== null) { MakeSave(uri[1]); } MyFlashscore(); }); $(document).ready(function() { setInterval(function() { MyFlashscore(); }, 1000); });