// ==UserScript==
// @name Autodarts_Caller
// @namespace http://tampermonkey.net/
// @version 1.4.3
// @description Another Autodarts-Caller
// @author benebelter
// @match https://play.autodarts.io/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=autodarts.io
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js
// @license MIT
// @grant GM.getValue
// @grant GM.setValue
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
//////////////// CONFIG ////////////////////
var triplesound = 0; // 0=off / 1=simple beep on / 2=Löwen-sound (Soft-tip) on => triple_sound if hitting a triple
var boosound = 0; // 0=off / 1=on => crowd-boo if hitting a miss
var server = 'http://autodarts.x10.mx/'; // Server
var caller = ''; // caller: "russ_bray", "google" (select language in next line)
var language = 'en';
//////////////// CONFIG ////////////////////
function soundGo(file, audio){
if (audio === 1){
console.log('Sound-file: '+ file);
const audio = new Audio(file);
audio.play();}
}
function getDarts(){
var runde = $('.css-1tw9fat').text().substring(1).split("/");
var numItems = $('.css-1chp9v4').length ;
var dartsgesamt = (runde[0]*3-3)+numItems;
return "<span style='font-size:0.5em;'>"+dartsgesamt+" Darts</span>" ;
}
$(document).ready(function(){
var t1 = 0; var t2 = 0; var t3 = 0;
var m1 = 0; var m2 = 0; var m3 = 0;
var dotmp3 = '.mp3';
var called = 0 ;
var gameshot_status = 0;
var busted = 0;
var audio = 1;
var firstgameoncall = 0;
setInterval(function() {
//$('a[href*="/boards"]').attr("target","_blank");
// If class exist (Header) -> init
if($(".css-gmuwbf").length ) {
// // // // // // // // // // read last settings // // // // // // // //
(async () => {
triplesound = await GM.getValue('triplesound');
caller = await GM.getValue('caller');
boosound = await GM.getValue('boosound');
})();
if (typeof triplesound == 'undefined')
{ triplesound = '0';}
if (typeof caller == 'undefined')
{ caller = 'x';}
if (typeof boosound == 'undefined')
{ boosound = '0';}
// // // // // // // // // // // // // // // // // //
var x = $(".css-1tq00ko").text();
var x0 = $(".css-1tq00ko:eq(0)").text(); // Scrore-Feld
var x1 = $(".css-1tq00ko:eq(1)").text(); // 1. Dart
var x2 = $(".css-1tq00ko:eq(2)").text(); // 2. Dart
var x3 = $(".css-1tq00ko:eq(3)").text(); // 3. Dart
var gameshot1 = $(".css-x3m75h").eq(0).text(); // Spieler 1
var gameshot2 = $(".css-x3m75h").eq(1).text(); // Spieler 2
var gameshot3 = $(".css-x3m75h").eq(2).text(); // Spieler 3
var gameshot4 = $(".css-x3m75h").eq(3).text(); // Spieler 4
var gameshot5 = $(".css-x3m75h").eq(4).text(); // Spieler 5
var gameshot6 = $(".css-x3m75h").eq(5).text(); // Spieler 6
// console.log('P1: '+gameshot1 + '- P2: '+ gameshot2);
//// Bust-Ausgabe ////
if (x0 == 'BUST' && busted == 0) {
soundGo(server+caller+"0"+dotmp3, audio);
busted = 1;
}
//// Gameshot-Ausgabe ////
// Gameshot aktivieren
$("button:contains('Undo'),button:contains('Next Leg'),button:contains('Finish'),button:contains('Start')").on( "click", function() {
gameshot_status = 0;
})
/// Gameshot ///
if ( gameshot_status != 1 && caller != 'x' && (gameshot1 == "0" || gameshot2 == "0" || gameshot3 == "0"|| gameshot4 == "0"|| gameshot5 == "0"|| gameshot6 == "0") ){
gameshot_status = 1;
if( $("button:contains('Finish')").length ){
soundGo(server+caller+"/gameshot and the match"+dotmp3, audio);
soundGo(server+"/chase_the_sun/chase_the_sun.mp3", audio);
}
else {
soundGo(server+caller+"/gameshot"+dotmp3, audio);
}
if (gameshot1 == "0") {
$(".css-x3m75h").eq(0).html(getDarts()); }
if (gameshot2 == "0") {
$(".css-x3m75h").eq(1).html(getDarts()); }
if (gameshot3 == "0") {
$(".css-x3m75h").eq(2).html(getDarts()); }
if (gameshot4 == "0") {
$(".css-x3m75h").eq(3).html(getDarts()); }
if (gameshot5 == "0") {
$(".css-x3m75h").eq(4).html(getDarts()); }
if (gameshot6 == "0") {
$(".css-x3m75h").eq(5).html(getDarts()); }
}
//// END Gameshot ////
///////////////////////////////////////////////// TRIPLE CALLER ///////////////////////////
if(triplesound == 1){
// Triple 1st dart
if (x1.includes("T") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo( "https://autodarts.x10.mx/russ_bray/triple_beep.mp3", audio);
}
// Triple 2st dart
else if(x2.includes("T") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo( "https://autodarts.x10.mx/russ_bray/triple_beep.mp3", audio);
}
// Triple 3rd dart
else if(x3.includes("T") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo( "https://autodarts.x10.mx/russ_bray/triple_beep.mp3", audio);
}
}
///////////////////////////////////////////////// END TRIPLE CALLER ///////////////////////////
///////////////////////////////////////////////// TRIPLE CALLER E-Dart Löwen///////////////////////////
if(triplesound == 2) {
// Triple 20 1st dart
if ( x1.includes("T20") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple20_old.wav", audio);
}
// Triple 19 1st dart
else if ( x1.includes("T19") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple19_old.wav", audio);
}
// Triple 18 1st dart
else if ( x1.includes("T18") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple18_old.wav", audio);
}
// Triple 17 1st dart
if ( x1.includes("T17") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple17_old.wav", audio);
}
// Bullseye 1st dart
if ( x1.includes("BULL") && t1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t1 = 1;
soundGo("https://autodarts.x10.mx/triple/bullseye.mp3", audio);
}
/// 2. Dart
// Triple 20 1st dart
if ( x2.includes("T20") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple20_old.wav", audio);
}
// Triple 19 1st dart
else if ( x2.includes("T19") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple19_old.wav", audio);
}
// Triple 18 1st dart
else if ( x2.includes("T18") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple18_old.wav", audio);
}
// Triple 17 1st dart
if ( x2.includes("T17") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple17_old.wav", audio);
}
// Bullseye 2nd dart
if ( x2.includes("BULL") && t2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t2 = 1;
soundGo("https://autodarts.x10.mx/triple/bullseye.mp3", audio);
}
/// 3. Dart
// Triple 20 1st dart
if ( x3.includes("T20") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple20_old.wav", audio);
}
// Triple 19 1st dart
else if ( x3.includes("T19") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple19_old.wav", audio);
}
// Triple 18 1st dart
else if ( x3.includes("T18") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple18_old.wav", audio);
}
// Triple 17 1st dart
else if ( x3.includes("T17") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/SoundHwTriple17_old.wav", audio);
}
// Bullseye 3rd dart
if ( x3.includes("BULL") && t3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0){
t3 = 1;
soundGo("https://autodarts.x10.mx/triple/bullseye.mp3", audio);
}
}
///////////////////////////////////////////////// Miss CALLER ///////////////////////////
if(boosound == 1){
// miss 1st dart
if ( x1.includes("M") && m1 === 0 && $(".css-1tq00ko:eq(1)").closest('div').attr('class') == 'css-rzdgh7' && called == 0)
{ m1 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/miss_1st_dart.mp3", audio);
}
// miss 2st dart
else if ( x2.includes("M") && m2 === 0 && $(".css-1tq00ko:eq(2)").closest('div').attr('class') == 'css-rzdgh7' && called == 0)
{ m2 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/miss_2nd_dart.mp3", audio);
}
// miss 3rd dart
else if ( x3.includes("M") && m3 === 0 && $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0)
{ m3 = 1;
soundGo("https://autodarts.x10.mx/russ_bray/miss_3rd_dart.mp3", audio);
}
}
// Caller reset
if( (x1 == '' || $(".css-1tq00ko:eq(3)").closest('div').attr('class') != 'css-rzdgh7') && called == 1) {
called = 0; busted = 0;
}
// Korrektur nach Klick auf Ok -> Score auslesen und Caller erneut aktivieren (called=0)
$("button:contains('Ok')").on( "click", function() {
called = 0; // caller für letzte Aufnahme aktivieren
x0 = $(".css-1tq00ko:eq(0)").text(); // Score auslesen
});
// Caller if 3rd Dart has score and called = 0
if( $(".css-1tq00ko:eq(3)").closest('div').attr('class') == 'css-rzdgh7' && called == 0 && caller != 'x') {
called = 1;
soundGo(server+caller+'/'+x0+dotmp3, audio); // Wert in Audio-Funktion übergeben
// console.log('Caller Ausgabe!');
// console.log('Language: '+language);
// console.log('Caller: '+ caller);
t1 = 0; t2 = 0; t3 = 0;
m1 = 0; m2 = 0; m3 = 0;
}
// Sound-Option-Selects einfügen wenn noch nicht existiert
if($("#caller").length == 0) {
$(".css-a6m3v9").append('<select id="caller" name="caller" class="css-1xbroe7" style="padding:5px 5px 5px 5px;"><option selected disabled style="background-color: #353d47">Caller</option><option value="x" style="background-color: #353d47">OFF</option><option value="1_male_eng" style="background-color: #353d47">Male eng</option><option value="google_eng" style="background-color: #353d47">Female eng</option><option value="google_fr" style="background-color: #353d47">Female fr</option><option value="google_de" style="background-color: #353d47">Female de</option><option value="russ_bray" style="background-color: #353d47">Russ B</option><option value="georgeno" style="background-color: #353d47">George N</option><option value="shorty" style="background-color: #353d47">Shorty eng</option><option value="haulpinks" style="background-color: #353d47">Caller Paul eng</option><option value="bayrisch" style="background-color: #353d47">Bavarian male</option></select>');
$(document).on('change', '#caller', function(){
caller = $("#caller").find(":selected").val();
console.log('Neuer Caller gewählt: '+caller);
// Speichern
(async () => {
await GM.setValue('caller', caller);
})();
if(caller == 'russ_bray') {
server = 'http://autodarts.x10.mx/';
caller = 'russ_bray';
dotmp3 = '.mp3';
$("#caller option[value='russ_bray']").prop('selected', true);
console.log('rb aktiv');
}
if(caller == 'georgeno') {
server = 'http://autodarts.x10.mx/';
caller = 'georgeno';
dotmp3 = '.mp3';
$("#caller option[value='georgeno']").prop('selected', true);
console.log('georgeno aktiv');
}
else if(caller == 'shorty') {
server = 'http://autodarts.x10.mx/';
caller = 'shorty';
dotmp3 = '.mp3';
$("#caller option[value='shorty']").prop('selected', true);
console.log('shorty aktiv');
}
else if(caller == 'haulpinks') {
server = 'http://autodarts.x10.mx/';
caller = 'haulpinks';
dotmp3 = '.mp3';
$("#caller option[value='haulpinks']").prop('selected', true);
console.log('haulpinks aktiv');
}
else if(caller == 'bayrisch') {
server = 'http://autodarts.x10.mx/';
caller = 'bayrisch';
dotmp3 = '.mp3';
$("#caller option[value='bayrisch']").prop('selected', true);
console.log('bayrisch aktiv');
}
else if(caller == '1_male_eng') {
server = 'http://autodarts.x10.mx/';
caller = '1_male_eng';
dotmp3 = '.mp3';
$("#caller option[value='1_male_eng']").prop('selected', true);
console.log('1_male_eng aktiv');
}
else if(caller == 'google_eng') {
dotmp3 = '';
language = 'en';
// server = 'http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl='+language+'&q=';
server = 'https://autodarts.de.cool/mp3_helper.php?language='+language+'&text=';
caller = '';
$("#caller option[value='google_eng']").prop('selected', true);
console.log('eng aktiv');
}
else if(caller == 'google_de') {
dotmp3 = '';
language = 'de';
//server = 'https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl='+language+'&q=';
server = 'https://autodarts.de.cool/mp3_helper.php?language='+language+'&text=';
$("#caller option[value='google_de']").prop('selected', true);
caller = '';
}
else if(caller == 'google_fr') {
dotmp3 = '';
language = 'fr';
server = 'https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&tl='+language+'&q=';
server = 'https://autodarts.de.cool/mp3_helper.php?language='+language+'&text=';
caller = '';
$("#caller option[value='google_fr']").prop('selected', true);
}
})
////// Triple-Select
$(".css-a6m3v9").append('<select id="triplesound" name="triplesound" class="css-1xbroe7" style="padding:5px;"><option selected disabled style="background-color: #353d47">Triple-Sound</option><option value="0" style="background-color: #353d47">OFF</option><option value="1" style="background-color: #353d47">Beep on</option><option value="2" style="background-color: #353d47">Löwen (Softtip)</option></select>');
$(document).on('change', '#triplesound', function(){
triplesound = $("#triplesound").find(":selected").val();
(async () => {
await GM.setValue('triplesound', triplesound);
})();
})
// Boo-Select
$(".css-a6m3v9").append('<select id="boosound" name="boosound" class="css-1xbroe7" style="padding:5px;"><option selected disabled style="background-color: #353d47">Boo-Sound</option><option value="1" style="background-color: #353d47">ON</option><option value="0" style="background-color: #353d47">OFF</option></select>');
$(document).on('change', '#boosound', function(){
boosound = $("#boosound").find(":selected").val();
// Speichern
(async () => {
await GM.setValue('boosound', boosound);
})();
})
//Standard-Caller nach Start initialisieren:
$('#caller').val(caller).change();
} // end add dropdowns
}
},200);
});
})();