Function repeter 2 fois
Jessy_lg27 Messages postés 13 Statut Membre -
bonjour,
// This will use the demo backend if you open index.html locally via file://, otherwise your server will be used
let backendUrl = location.protocol === 'file:' ? "https://tiktok-chat-reader.zerody.one/" : undefined;
let connection = new TikTokIOConnection(backendUrl);
// Counter
let viewerCount = 0;
let likeCount = 0;
let diamondsCount = 0;
let pv = 10;
// These settings are defined by obs.html
if (!window.settings) window.settings = {};
$(document).ready(() => {
$('#connectButton').click(connect);
$('#uniqueIdInput').on('keyup', function (e) {
if (e.key === 'Enter') {
connect();
}
});
if (window.settings.username) connect();
})
function connect() {
let uniqueId = window.settings.username || $('#uniqueIdInput').val();
if (uniqueId !== '') {
$('#stateText').text('Connecting...');
connection.connect(uniqueId, {
enableExtendedGiftInfo: true
}).then(state => {
$('#stateText').text(`Connected to roomId ${state.roomId}`);
// reset stats
viewerCount = 0;
likeCount = 0;
diamondsCount = 0;
updateRoomStats();
}).catch(errorMessage => {
$('#stateText').text(errorMessage);
// schedule next try if obs username set
if (window.settings.username) {
setTimeout(() => {
connect(window.settings.username);
}, 30000);
}
})
} else {
alert('no username entered');
}
}
function test(data){
if (data.giftName == 'Rose'){
pv--;
console.log(pv)
$('#pv').html(`${pv} PV`)
$('#bar').val(pv)
// document.getElementById('animal').style.marginTop = "2%";
// setTimeout(() => {
// document.getElementById('animal').style.marginTop = "1%";
// var audio = new Audio('pig.wav');
//audio.play();
// }, 50);
}else if (data.giftName == 'TikTok'){
pv--;
$('#pv').html(`${pv} PV`)
$('#bar').val(pv)
// document.getElementById('animal').style.marginTop = "2%";
// setTimeout(() => {
// document.getElementById('animal').style.marginTop = "1%";
// var audio = new Audio('pig.wav');
// audio.play();
// }, 50);
}
}
// Prevent Cross site scripting (XSS)
function sanitize(text) {
return text.replace(/</g, '<')
}
function updateRoomStats() {
$('#roomStats').html(`Viewers: <b>${viewerCount.toLocaleString()}</b> Likes: <b>${likeCount.toLocaleString()}</b> Earned Diamonds: <b>${diamondsCount.toLocaleString()}</b>`)
}
function generateUsernameLink(data) {
return `<a class="usernamelink" href="https://www.tiktok.com/@${data.uniqueId}" target="_blank">${data.uniqueId}</a>`;
}
function isPendingStreak(data) {
return data.giftType === 1 && !data.repeatEnd;
}
// viewer stats
connection.on('roomUser', (msg) => {
if (typeof msg.viewerCount === 'number') {
viewerCount = msg.viewerCount;
updateRoomStats();
}
})
// like stats
connection.on('like', (msg) => {
if (typeof msg.totalLikeCount === 'number') {
likeCount = msg.totalLikeCount;
updateRoomStats();
}
if (window.settings.showLikes === "0") return;
if (typeof msg.likeCount === 'number') {
}
})
// Member join
let joinMsgDelay = 0;
connection.on('member', (msg) => {
if (window.settings.showJoins === "0") return;
let addDelay = 250;
if (joinMsgDelay > 500) addDelay = 100;
if (joinMsgDelay > 1000) addDelay = 0;
joinMsgDelay += addDelay;
setTimeout(() => {
joinMsgDelay -= addDelay;
}, joinMsgDelay);
})
// New chat comment received
connection.on('chat', (msg) => {
if (window.settings.showChats === "0") return;
})
// New gift received
connection.on('gift', (data) => {
if (!isPendingStreak(data) && data.diamondCount > 0) {
diamondsCount += (data.diamondCount * data.repeatCount);
updateRoomStats();
test(data);
}
if (window.settings.showGifts === "0") return;
})
// share, follow
connection.on('social', (data) => {
if (window.settings.showFollows === "0") return;
let color = data.displayType.includes('follow') ? '#ff005e' : '#2fb816';
})
connection.on('streamEnd', () => {
$('#stateText').text('Stream ended.');
// schedule next try if obs username set
if (window.settings.username) {
setTimeout(() => {
connect(window.settings.username);
}, 30000);
}
})
**je veux que la "function" test ce répete un fois**
en utilisent cette api c'est la premiere foix que je rencotre ce bug
**j'obtiens j'obtiens la "function" en double **
la variable pv donc pv--; = a -2 aulieux de -1
Windows / Chrome 107.0.0.0
2 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
pourquoi ne pas l'appeler deux fois?
-
Bonjour,
Commence par remplacer la ligne de code :
$('#connectButton').click(connect);par
$('#connectButton').click(function(){ connect(); });Puis vide bien le cache de ton navigateur avant de reessayer.
Si le souci persiste, rajoute des console.log dans ton code pour savoir quel code est exécuté exactement...
-
As tu mis un console.log dans la fonction
connection.on('gift' pour voir si elle n'est déclenchée qu'une seule fois ?Puis un autre dans le IF de cette fonction ?
La soustraction se fait deux fois nous dis tu .. les deux en même temps ou une au chargement de la page .. puis une autre ensuite suite à une action de ta part ?
-