-
Notifications
You must be signed in to change notification settings - Fork 5
/
barrage.phtml
105 lines (99 loc) · 3.31 KB
/
barrage.phtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<!DOCTYPE html>
<html>
<head>
<base href="https://meet.jothon.online/">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>彈幕 - </title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">
<style>
body {
background-color: green;
}
</style>
</head>
<body>
<script>
var trsl_disp = new Array(10);
trsl_disp.fill(0);
var url = new URL(window.location);
var pathArray = url.pathname.split('/');
var channel_id = pathArray[pathArray.length-1];
document.title = `彈幕 - ${channel_id}`;
var type = url.searchParams.get("type");
var api_url = '/message/getmessage?channel=' + encodeURIComponent(channel_id);
$(function(){
setInterval(function(){
$.get(api_url, function(ret){
if (ret.next_url) {
api_url = ret.next_url;
}
if (ret.messages) {
if(type == 1)
ret.messages.map(shoot2);
else
{
ret.messages.map(shoot);
}
}
}, 'json');
}, 1000);
});
var shoot = function(message){
var y = Math.floor(Math.random() * window.innerHeight);
var vpWidth = window.innerWidth;
var dom = $('<div></div>').text(`${message.user}: ${message.text}`);
dom.appendTo('body')
.css({
position:'fixed',
top: y,
fontSize: '1.5em',
fontFamily: '"Microsoft JhengHei", "微軟正黑體" sans-serif',
zIndex: 9999,
fontWeight: 600,
color: 'white',
textShadow: '-1px 0 black, 1px 0 black, 0 1px black, 0 -1px black',
opacity: 0.66
});
var domWidth = dom.width();
dom.css({left: vpWidth, width: domWidth})
.animate({left: -domWidth}, 8000 + Math.floor(8000 * Math.random()), 'linear', function(){
dom.remove();
});
};
var shoot2 = function(message){
var y=0;
while(1)
{
if(trsl_disp[y]==0 || y>=10)
{
trsl_disp[y] = 1;
break;
}
y++;
}
var vpWidth = window.innerWidth;
var dom = $('<div style="text-align: center; width: 100%;"><a style="background-color: rgba(0,0,0,0.8)"></a></div>');
$('a', dom).text(`${message.text}`);
var y_position = y*45 + 45;
dom.appendTo('body')
.css({
position:'absolute',
top: y_position,
fontSize: '1.5em',
fontFamily: '"Microsoft JhengHei", "微軟正黑體" sans-serif',
zIndex: 9999,
fontWeight: 600,
color: '#FFFF50',
opacity: 0.66
});
dom.delay(5000).animate({opacity: 0},0,'linear',function(){
dom.remove();
trsl_disp[y] = 0;
});
};
</script>
</body>
</html>