[ ] Streaming API. PHP |
//
var socket = new WebSocket("wss://streaming.vk.com/stream?key=" + window.key);
var close_connect = ge("close_connect");
/*
*
*/
socket.onmessage = function(event) {
var incomingMessage = event.data;
var loading = document.getElementById("loading_text");
var preview = document.getElementById("preview_text");
var serf = document.getElementById("serf");
loading.classList.add("none");
preview.classList.add("none");
serf.classList.remove("none");
parser(event.data); //
console.log(event.data);
};
socket.onclose = function(event) {
if (event.wasClean) {
console.warn(' ');
} else {
console.warn(' ');
}
console.info(': ' + event.code + ' : ' + event.reason);
var loading = ge("loading_text");
if (event.code == 1006) {
loading.innerHTML = " , .
- . .
- " + event.code;
} else {
loading.innerHTML = "- - ...
- " + event.code;
}
};
socket.onerror = function(error) {};
//close connect
close_connect.addEventListener("click", function() {
socket.close();
close_connect.innerHTML = " .";
ge("analiz_block").classList.remove("none");
}, false);
var parser = function(json) {
var response = JSON.parse(json);
console.log(response);
var code = response.code;
console.log(code);
if (code != 100) return;
var tpl_block = document.getElementById("tpl");
var tpl = tpl_block.innerHTML;
var main_tpl = tpl_block.innerHTML;
var content = document.getElementById("main").innerHTML;
var main = document.getElementById("main");
var time = response.event['creation_time'];
var date = new Date(time);
var type;
var cnt = ge("cnt");
var cnt_value = +cnt.innerHTML;
cnt.innerHTML = cnt_value + 1;
var creation_time = timestampToDate(response.event['creation_time'] * 1000);
if (response.event['event_type'] == "post") {
type = "";
count['post'] = ++count['post'];
} else if (response.event['event_type'] == "comment") {
type = "";
count['comment'] = ++count['comment'];
} else if (response.event['event_type'] == "share") {
type = "";
count['share'] = ++count['share'];
}
var photo_context;
if (response.event.attachments) {
//image
if (response.event.attachments[0].type == "photo") {
photo_context = '
';
} else {
photo_context = "";
}
} else {
photo_context = "";
}
tpl = tpl.split("{event_type}").join(type);
tpl = tpl.split("{text}").join(response.event['text']);
tpl = tpl.split("{url}").join(response.event['event_url']);
tpl = tpl.split("{date}").join(creation_time);
tpl = tpl.split("{photo}").join(photo_context);
tpl = tpl.split("{type}").join(response.event['event_type']);
tpl = tpl.split("{cnt}").join(cnt_value+1);
tpl = tpl.split("\"").join("'");
if (filter.top) main.innerHTML = tpl + "" + content;
else main.innerHTML = content + "" + tpl;
//post_id
if (response.event['event_type'] != "comment") {
var post_owner_id = response.event.event_id['post_owner_id'];
var post_id = response.event.event_id['post_id'];
var wall_id = post_owner_id + "_" + post_id;
array_post_id.push(wall_id);
}
//limit
if (cnt_value + 1 >= +filter.limit) {
socket.close();
close_connect.innerHTML = " .";
ge("analiz_block").classList.remove("none");
}
}
var analiz = {
start: function() {
//
if (count['post'] == 0 && count['comment'] == 0 && count['share'] == 0) {
alert(" . - .");
return;
}
var url = "/vk-competition/VKanaliz.php";
var loading = ge("loading_sp");
var button = ge("btn_analiz");
var analiz_stats = ge("analiz_stats");
loading.classList.remove("none");
button.classList.add("none");
ajax.post({
url: url,
data: "post_id=" + array_post_id.join(","),
callback: function(data) {
var resp = JSON.parse(data);
if (resp.error) {
alert(resp.error);
return;
} else {
var count_likes_all_ = resp.response.count_likes_all;
var count_share_all_ = resp.response.count_share_all;
var count_views_all_ = resp.response.count_views_all;
var analiz_posts = ge("analiz_post");
var analiz_share = ge("analiz_share");
var analiz_comments = ge("analiz_comments");
var analiz_likes = ge("analiz_likes");
var analiz_views = ge("analiz_views");
var analiz_reposts = ge("analiz_reposts");
var analiz_years = ge("analiz_years_");
var analiz_sex = ge("analiz_sex");
var percent_sex_m, percent_sex_w;
if (resp.response.percent_sex_w == "-")
percent_sex_w = 0;
else
percent_sex_w = resp.response.percent_sex_w;
if (resp.response.percent_sex_w == "-")
percent_sex_m = 0;
else
percent_sex_m = 100 - +percent_sex_w;
console.log("spam " + resp.response.spam + "%");
//insert data
analiz_posts.innerHTML = count['post'];
analiz_share.innerHTML = count['share'];
analiz_comments.innerHTML = count['comment'];
analiz_likes.innerHTML = count_likes_all_;
analiz_views.innerHTML = "H" + count_views_all_;
analiz_reposts.innerHTML = count_share_all_;
analiz_sex.innerHTML = percent_sex_w + "%, " + percent_sex_m + "%";
analiz_years.innerHTML = resp.response.middle_years;
//show stats
loading.classList.add("none");
analiz_stats.classList.remove("none");
}
}
});
}
}