View difference between Paste ID: EL9xpwVZ and qZw7EXXh
SHOW: | | - or go back to the newest paste.
1
/*
2
* Football Ultimate Cup Keyboards (FUCK)
3-
* v 0.10
3+
* v 0.11
4
* Конфиг:
5
* В оп-посте с начала любой строки писать:
6
* %teamName1|teamName2;optionName1;optionName2
7
*
8
* Особенности:
9
* - золотой гол считается за один, даже если это квадрипл, ибо нехуй
10
* - кликайте по табло, чтобы менять его положение
11
* - поддержка архивача
12
* - тайм 200 постов
13
* - золотой гол отключён по умолчанию
14
*/
15
$(function(){
16-
	,	config = config_lines.length === 0 ? undefined : config_lines[0].substr(1)
16+
17-
	,	config_team_names = config
17+
18
	var $ = window.jQuery
19
	,	platform = location.hostname === 'arhivach.org' ? 'arhivach' : '2ch'
20
	,	config_lines = (platform === 'arhivach' ? $('.post').eq(0).find('.post_comment_body') : $('.oppost-wrapper .post-message')).html().split('<br>').filter(function(a){ return a.substr(0, 1) === '%' })
21
	,	config = config_lines.length === 0 ? undefined : config_lines[0].substr(1).split(';')
22
	,	config_team_names = config[0]
23
	,	config_goldgoal = config.indexOf('goldgoal') !== -1
24
	,	team_names = undefined === config ? [ '#1', '#2' ] : config_team_names.split('|').map(function(a){ return a.trim() })
25
26
	if(undefined === config){
27
		return false
28
	}
29
30
	$('body')
31
	.append(
32
		$('<style>')
33
		.html('.fuck-message{color:green;}.fuck-scoreboard{box-sizing:border-box;position:fixed;width:270px;height:130px;border:1px solid #ccc;padding:10px 5px;background-color:#ddd;text-align:center;}.fuck-scoreboard[data-pos="0"]{bottom:0px;left:0px;}.fuck-scoreboard[data-pos="1"]{top:0px;left:0px;}.fuck-scoreboard[data-pos="2"]{top:0px;right:0px;}.fuck-scoreboard-one{float:left;width:125px;height:100%;}.fuck-scoreboard-one-score{height:90px;font-size:45px;font-weight:bold;line-height:90px;}.fuck-scoreboard-one-team{height:20px;color:#888;font-size:14px;line-height:20px;}')
34
	)
35
	.append(
36
		$('<div>')
37
		.addClass('fuck-scoreboard')
38
		.attr('data-pos', '0')
39
		.on('click', function(){
40
			$(this).attr('data-pos', (parseInt( $(this).attr('data-pos') ) + 1) % 3)
41
		})
42
		.append(
43
			$('<div>')
44
			.addClass('fuck-scoreboard-one')
45
			.append(
46
				$('<div>')
47
				.addClass('fuck-scoreboard-one-score')
48
				.html('0')
49
			)
50
			.append(
51
				$('<div>')
52
				.addClass('fuck-scoreboard-one-team')
53
				.html(team_names[0])
54
			)
55
		)
56
		.append(
57
			$('<div>')
58
			.addClass('fuck-scoreboard-one')
59
			.append(
60
				$('<div>')
61
				.addClass('fuck-scoreboard-one-score')
62
				.html('0')
63
			)
64
			.append(
65
				$('<div>')
66
				.addClass('fuck-scoreboard-one-team')
67
				.html(team_names[1])
68
			)
69
		)
70
	)
71
72
	window.fuck_updater = setInterval(function(){
73
		var score = [ 0, 0 ]
74
		,	penalty = false
75
		,	ended = false
76
77
		;(platform === 'arhivach' ? $('.post') : $('.oppost-wrapper, .post-wrapper')).each(function(n, el){
78
			n++
79
			el = $(el)
80-
			} else if(!ended && n > 450 && score[0] === score[1]){
80+
81
			var time_now = false
82
			if(n <= 200){
83
				time_now = 1
84
			} else if(n > 250 && n <= 450){
85
				time_now = 2
86
			} else if(config_goldgoal && !ended && n > 450 && score[0] === score[1]){
87
				// до золотого гола
88
				time_now = 3
89
			}
90
91
			var post_num = el.attr('id').replace(/[^0-9]/g, '')
92
			,	el_post_message = el.find(platform === 'arhivach' ? '.post_comment_body' : '.post-message')
93
			,	last_digit = parseInt( post_num.substr(-1) )
94
			,	is_double = post_num.substr(-1, 1) === post_num.substr(-2, 1)
95
			,	is_triple = is_double && ( post_num.substr(-1, 1) === post_num.substr(-3, 1) )
96
			,	is_quad = is_triple && ( post_num.substr(-1, 1) === post_num.substr(-4, 1) )
97
			,	team_now = (last_digit + (time_now === 1 ? 0 : 1)) % 2
98
99
			if(platform === '2ch'){
100
				el.find('.postbtn-reply-href').html(post_num)
101
			}
102
103
			el_post_message.find('span.fuck-message').remove()
104
			if(el.find('.post-email').attr('href') === 'mailto:sage'){
105
				el_post_message
106
				.html( el_post_message.html().substr(0, 140) )
107
				.append('<br><br><em>Я очень хочу забить гол!</em>')
108
109
				el.find('.post-email').replaceWith( el.find('.post-email').html() )
110
			}
111
112
			if(false !== time_now){
113
				// игра идёт
114
				if(true === penalty){
115
					// забит пенальти
116
					score[team_now]++
117
					el_post_message.append(
118
						$('<span>')
119
						.addClass('fuck-message')
120
						.append('<br><br>')
121
						.append('Гол! Пенальти забивает команда ' + team_names[team_now] + '. Счёт ' + team_names[0] + ' <strong>' + score[0] + ':' + score[1] + '</strong> ' + team_names[1] + '.')
122
					)
123
124
					penalty = false
125
					if(n > 450){ ended = true }
126
				} else if(is_triple && !is_quad){
127
					// назначен пенальти
128
					penalty = true
129
					el_post_message.append(
130
						$('<span>')
131
						.addClass('fuck-message')
132
						.append('<br><br>')
133
						.append('Назначается пенальти!')
134
					)
135
				} else if(is_double || is_quad){
136
					// гол немедленно
137
					score[team_now] += is_quad && time_now !== 3 ? 2 : 1
138
					el_post_message.append(
139
						$('<span>')
140
						.addClass('fuck-message')
141
						.append('<br><br>')
142
						.append((time_now === 3 ? 'Золотой гол' : (is_quad ? 'Два гола' : 'Гол')) + ' забивает команда ' + team_names[team_now] + '! Счёт ' + team_names[0] + ' <strong>' + score[0] + ':' + score[1] + '</strong> ' + team_names[1] + '.')
143
					)
144
					if(n > 450){ ended = true }
145
				}
146
			}
147
148
			if(el_post_message.text().replace(/[^0-9a-zа-я\ ]/gi, '').match(/спасибо скрипткун/i)){
149
				el_post_message.append(
150
					$('<span>')
151
					.addClass('fuck-message')
152
					.css('font-style', 'italic')
153
					.append('<br><br>Скрипт-кун благословил этот пост.')
154
				)
155
			}
156
		})
157
158
		$('.fuck-scoreboard-one').each(function(n, el){
159
			$(el).find('.fuck-scoreboard-one-score').html(score[n])
160
		})
161
162
	}, 1000)
163
})