- // ==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('<div id="wypoke" class="clearfix" style="position: relative; z-index: 99; padding-left: 71px; margin-top: 15px;"><a href="#" class="submit button plusujwszystkie" style="float: right; line-height: 26px;">Plusuj wpisy</a></div>');
- $('#wypoke').prepend('<input type="text" name="odejmowanie" id="odejmowanie" class="input bgfff" style="width: 400px; height: 28px; padding: 0 5px;" placeholder="dystans/godziny/link do treningu np. 5,25-10-15 (bez spacji)" /><a class="button" href="#" id="odejmowaniedo" style="margin: 0 5px;">Oblicz wynik</a><button style="margin: 0; border: 0px solid transparent; outline: none !important;" id="odejmowanieFooter" class="onEnter'+footerActive+'"><i class="fa fa-quote-right"></i></button>');
- $('#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('<br \/>')[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');
- }