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