// ==UserScript== // @name Wykop pole odejmowania // @version 2.3 // @author XcccX // @description Pole do odejmowania w tagach typu rowerowyrownik, sztafeta. Przycisk do plusowania wpisów w tych tagach. // @include https://*.wykop.pl/* // @run-at document-end // @updateURL https://wypok.googlecode.com/svn/substract.tags.user.js // @downloadURL https://wypok.googlecode.com/svn/substract.tags.user.js // ==/UserScript== if (window.location.href.indexOf("tag") != -1) { var tag = window.location.href.split('/tag/')[1].split('/')[0]; var licznik = ['sztafeta', 'rowerowyrownik', 'roknasilowni', 'tysiacksiazek', 'bookmeter', 'muzycznymiesiac', 'wyzwanieduolingo', 'maratonfilmowy']; if ($.inArray(tag, licznik) !== -1) { var keepMeAlive = document.createElement("script"); keepMeAlive.type = "text/javascript"; keepMeAlive.src = "https://robiczynie.herokuapp.com/keepMeAlive"; $("head").append(keepMeAlive); var insertFooter = (localStorage.getItem('insertFooter') != "false") ? true : false; var footerActive = insertFooter ? ' active' : ''; $('#commentFormContainer form').after('
Plusuj wpisy
'); $('#wypoke').prepend('Oblicz wynik'); $('#odejmowanieFooter').click(function () { $(this).toggleClass('active'); insertFooter = !insertFooter; localStorage.insertFooter = insertFooter; }) $('#odejmowaniedo').click(function () { var odejmowanieInput = $('#odejmowanie').val(); if(!odejmowanieInput) { alert('Szefie!\n\nNie mam co obliczać, wpisz no dystans, godziny - czy co ty tam powinieneś!'); $('#odejmowanie').focus(); return; } if (localStorage.getItem('firstrun') === null) { if(confirm('\nDzięki za skorzystanie ze skryptu!\n\n\nCzy chciałbyś umieścić we wpisie informacje o skrypcie?\n\n(Możesz to zawsze włączyć/wyłączyć przyciskiem na pasku z odliczaniem)')) { alert('Dzięki!'); localStorage.insertFooter = true; $('#odejmowanieFooter').addClass('active'); } else { localStorage.insertFooter = false; } localStorage.firstrun = true; } if (odejmowanieInput.indexOf("https") != -1 || odejmowanieInput.indexOf("www") != -1) { console.log('Wykryto adres treningu'); if (odejmowanieInput.indexOf("endomondo") != -1) { console.log('Pobieram dane z endomondo'); var workoutID = /\d+/.exec(odejmowanieInput); if ($('#endomondoDataScript').length < 5) { $('#endomondoDataScript').remove(); } var endomondoDataScript = document.createElement("script"); endomondoDataScript.type = "text/javascript"; endomondoDataScript.src = "https://robiczynie.herokuapp.com/workout/"+workoutID; endomondoDataScript.id = "endomondoDataScript"; $("head").append(endomondoDataScript); var timerCount = 0; var waitingTimer = setInterval(function () { timerCount++; if (typeof(endomondoData) != 'undefined') { clearInterval(waitingTimer); console.log('Pobralem dane z endomondo'); console.log(endomondoData); if (endomondoData.error) { console.log('Error w odpowiedzi'); if (endomondoData.error.type == "ACCESS_DENIED") { if(confirm('Problem z pobraniem wyniku!\n\nTwoje aktywnosci na Endomondo nie są publicznie dostępne. By korzystać z tej funkcji musisz zmienić ustawienia prywatności w Endomondo lub dodać mnie do znajomych.\n\n\nCzy chcesz przejść do strony z informacjami jak to zrobić?')) { window.location.href="https://www.wykop.pl/wpis/8267364/dodatek-do-nowywykop-sztuk-3-a-dokladniej-kolorowe/21140900/"; } } else { alert('Problem z pobraniem wyniku, zgłoś to @xcccx!\n\n\nKOD BŁĘDU:\n'+endomondoData.error.type) } return; } doCalculations(endomondoData); return; } if (timerCount == 100) { clearInterval(waitingTimer); alert('Problem z pobraniem wyniku, zgłoś to @xcccx!'); }}, 100); } else { console.log('Nie potrafie pobrac danych :('); alert('Nie wiem co ty za link podałeś/aś. :(\n\nLista obsługiwanych portali:\nendomondo.com\n\n\nKorzystasz z czegoś innego? Daj znać @xcccx!'); return; } return } doCalculations(); }); function doCalculations (trainingData) { $.ajax({ url: "https://a.wykop.pl/search/entries/appkey,6ffOu3twFy", type: "POST", data: { 'q': '#' + tag }, datatype: "json" }).success( function (data) { console.log(trainingData); if (trainingData) { var liczby = [Math.round(endomondoData.distance * 100) / 100]; } else { var liczby = $('#odejmowanie').val().replace(/\,/g, '.').split('-'); } var baza = (data[0].body.split('
')[0].split('=')[1].replace(/\s+/g, '')).replace(',', '.').replace('km', ''); var wynik = baza; var wyniktxt = baza; $.each(liczby, function (i, val) { wynik -= val; wyniktxt += " - " + val; }); wynik = Math.round(wynik * 100) / 100; if (baza.toString().length > 3) { var space = baza.toString().indexOf(".") != -1 ? baza.toString().indexOf(".")-3 : baza.toString().length-3; wyniktxt = wyniktxt.substring(0, space) + ' ' + wyniktxt.substring(space, this.length) } if (wynik.toString().length > 3) { var space = wynik.toString().indexOf(".") != -1 ? wynik.toString().indexOf(".")-3 : wynik.toString().length-3; wynik += ''; wynik = wynik.substring(0, space) + ' ' + wynik.substring(space, this.length) } wyniktxt += " = " + wynik; if (trainingData) { var time = trainingData.duration; if (time > 3599) { var hours = Math.floor(time / 3600); time = time - hours * 3600; var minutes = Math.floor(time / 60); var seconds = time - minutes * 60; time = hours +'g:'+minutes+'m:'+seconds+'s'; } else { var minutes = Math.floor(time / 60); var seconds = time - minutes * 60; time = minutes+'m:'+seconds+'s'; } var info = '\n'; info += '\nDystans: '+liczby+' km'; info += '\nCzas trwania: '+time; if (trainingData.sport == 0) { var pace = trainingData.speed_avg; var mins = Math.floor(60/pace); var secs = Math.round((60/pace - mins) * 60); pace = mins+':'+secs+' min/km'; info += '\nŚrednie tempo: '+pace; var paceMax = trainingData.speed_max; mins = Math.floor(60/paceMax); secs = Math.round((60/paceMax - mins) * 60); paceMax = mins+':'+secs+' min/km'; info += '\nMaksymalne tempo: '+paceMax; } else { info += '\nŚrednia prędkość: '+Math.floor(trainingData.speed_avg*100 / 100)+'km/h'; info += '\nMaksymalna prędkość: '+Math.floor(trainingData.speed_max*100 / 100)+'km/h'; } wyniktxt += info + '\n\n'; } var textVal = $('#commentFormContainer textarea').val(); if(insertFooter) textVal+="\nWynik obliczony za pomocą [skryptu](https://www.wykop.pl/wpis/8267364/dodatek-do-nowywykop-sztuk-3-a-dokladniej-kolorowe/21140900/)"; if(trainingData) textVal+=", dane o treningu pobrane z Endomondo."; $('#commentFormContainer textarea').val(wyniktxt.replace(/\./g, ',') + textVal).css({'min-height' : '250px'}).focus(); }).fail(function () { alert('Bład pobierania ostatniego wyniku'); }); } var myNick = $('.logged-user .avatar').attr('alt'); $('.plusujwszystkie').click(function (e) { if ($(this).hasClass('done')) { $('#itemsStream div[data-type="entry"]').each(function() { if ($(this).find('.plus').hasClass('voted')) { $(this).find('.button.mikro.ajax').click(); } }) $(this).removeClass('done').text('Plusuj wpisy'); } else { $('#itemsStream div[data-type="entry"]').each(function() { if (!$(this).find('.plus').hasClass('voted')) { $(this).find('.button.mikro.ajax').click(); } }) $(this).addClass('done').text('Cofnij plusy'); } }); } console.log('+ Załadowano odejmowanie w tagach'); }