Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 3

Рекомендованные сообщения

или в пхп свойства == поля?

да

Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

недавно лазил по сайту на жумле

так там в шаблоны вставлены закодированные рекламные ссылки, которые появляются на странице в теге h2 а потом цсской съезжают за 9к пикселей

в друпале такого не встречалч

 

с каких пор это вошло в моду у жумлистов-шаблонистов?

 

шаблон вроде гк_еспорт


1319992710_flyingburningcat.gif

Поделиться сообщением


Ссылка на сообщение
(изменено)

чтобы разрядить обстановку и отвлечь вас от метания какашек, наверн)

Исяк как спасатель

то веселые картинки спасает, теперь вот тут :smile:


Изменено пользователем Hed-kun

0BdKg2e.png

Скрытый текст

 

Цитата

посоны

я джуса забанил

мне пиздос?

Цитата

xHjcvkA.gif

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

СРОЧНО!!! Паскаль

Написать программу, которая будет из двух слов новое слово (например, "пар" "ход" "воз" "тепло" "электро")

 

Написать программу, которая будет из двух слов новое слово (например, "пар" "ход" "воз" "тепло" "электро")


Изменено пользователем Fierce-_-

Поделиться сообщением


Ссылка на сообщение

function foo() {
   var words = ["пар" ,"ход" ,"воз", "тепло", "электро"];
   return words[ Math.floor(Math.random() * words.length) ] + words[ Math.floor(Math.random() * words.length) ];
}

 

 

>>> foo()

 

"электротепло"

 

>>> foo()

 

"теплоход"

 

>>> foo()

 

"парход"

 

>>> foo()

 

"возход"

 

>>> foo()

 

"возвоз"

 

>>> foo()

 

"парход"

 

>>> foo()

 

"электроэлектро"

Поделиться сообщением


Ссылка на сообщение

Написал программу, которая будет из двух слов новое слово (например, "пар" "ход" "воз" "тепло" "электро")

Поделиться сообщением


Ссылка на сообщение

function foo() {
   var words = ["пар" ,"ход" ,"воз", "тепло", "электро"];
   return words[ Math.floor(Math.random() * words.length) ] + words[ Math.floor(Math.random() * words.length) ];
}

 

 

>>> foo()

 

"электротепло"

 

>>> foo()

 

"теплоход"

 

>>> foo()

 

"парход"

 

>>> foo()

 

"возход"

 

>>> foo()

 

"возвоз"

 

>>> foo()

 

"парход"

 

>>> foo()

 

"электроэлектро"

Это паскаль? Нужен паскаль

Поделиться сообщением


Ссылка на сообщение

Пшел нахуй с паскалем из темы, уебок

Ну пожалуйста

Поделиться сообщением


Ссылка на сообщение

Ну пожалуйста, уходи

Тут рейтинг брат, реши, ты ласт хоуп. Помоги олдфагу неучу

Поделиться сообщением


Ссылка на сообщение

Не брат ты мне, паскалеблядь.

Ну прошу, 20 минут до конца, а я сижу на пд :D

Поделиться сообщением


Ссылка на сообщение

Не брат ты мне, паскалеблядь.

Ну прошу, 20 минут до конца, а я сижу на пд :D

О эти замечательные 20 минут твоей жизни.

За это время ты осознаешь свою никчемность, свою неспособность заставить выучить себя самые примитивные вещи. Успеешь осознать хуевость шараги в которой учишься, хуевость продоты, да и жизни в целом.

 

Так что не серчай.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Приятно наблюдать за развитием себя как кодера

 

 

код 7-8 месяцев назад


function getRSS(feedUrl) {
$("#rssContent").empty();

$.get('proxy.php?url=' + feedUrl, function(data) {
	$(data).find('item').each(function() {

		var title = $(this).find('title').text();
		var view = $(this).find('misc').attr('viewers');
		var url = $(this).find('link').text();
		url = url.substring(25);
		title = title.substring(27,0);
		var html;
		if(view > 3) {
		html  = '<table class="lin" border="0"><tr><td class="name"><a href=\'javascript:stream("'+url+'", "own3d", "'+title+'")\'><span class="sbg">'+title+'</span></a></td>';
		html += '<td class="view"><span class="sbg">'+view+' зрителей</span></td></tr></table>';
	}
		$('#rssContent').append($(html));
	});
});
}
function getRSSQ(feedUrlq) {
$("#rssContent").empty();

$.get('proxy.php?url=' + feedUrlq, function(data) {
	$(data).find('stream').each(function() {
		var title = $(this).find('channel title').text();
		var view = $(this).find('channel_count').text();
		var url = $(this).find('channel login').text();
		var html;
		title = title.substring(0,27);
		if(view > 3) {
		html  = '<table class="lin" border="0"><tr><td class="name"><a href=\'javascript:stream("'+url+'", "twitch", "'+title+'")\'><span class="sbg">'+title+'</span></a></td>';
		html += '<td class="view"><span class="sbg">'+view+' зрителей</span></td></tr></table>';
	}
		$('#rssContent2').append($(html));
	});
});
}

$(document).ready(function() {
getRSS("http://api.own3d.tv/live?game=dota%2B2");
getRSSQ("http://api.justin.tv/api/stream/list.xml?meta_game=Dota%2B2");
})
/*
function stream(x, y, z) {
if (y == 'twitch') {				
	$('#forstream').html('<br><object type="application/x-shockwave-flash" height="387" width="640" id="live_embed_player_flash" data="http://www.justin.tv/widgets/live_embed_player.swf?channel=' + x +'" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.justin.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="auto_play=false&channel=' + x + '&start_volume=25" /></object>');
	$('.main').addClass("hid");
}
else if(y == 'own3d') {
	$('#forstream').html('<br><object width="640" height="361" align="middle" type="application/x-shockwave-flash" id="Own3dPlayer" name="Own3dPlayer" data="http://static.ec.own3d.tv/player/Own3dPlayerV2_86.swf"><param name="quality" value="high"><param name="bgcolor" value="#000000"><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always"><param name="allowfullscreen" value="true"><param name="flashvars" value="config=livecfg/' + x + '?autoPlay=false"></object>');
	$('.main').addClass("hid");
}
}
*/


	 var ch = 0;
	   /* jQuery(document).ready(function(){

			jQuery('.main').load('all.php');

			jQuery('#upd1').click(function(){
				jQuery('.main').html('<h4>Twitch.tv</h4><center><img src="load.gif"></center><h4>Own3d.tv</h4><center><img src="load.gif"></center>').load('all.php');

			})
			$(".test").html("<?php //echo $_GET['hash']; ?>");

		});*/
		 function stream(x, y, z) {
		   if(ch == 0) {
				ch = 1;
			}
			$("#admin").html("");
		if (y == 'twitch') {

			 $('#forstream').html('<br><object type="application/x-shockwave-flash" height="387" width="640" id="live_embed_player_flash" data="http://www.justin.tv/widgets/live_embed_player.swf?channel=' + x +'" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.justin.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="auto_play=false&channel=' + x + '&start_volume=25" /></object>');
			$('.main').addClass("hid");
		 }
	   else if(y == 'own3d') {
			  $('#forstream').html('<br><object width="640" height="361" align="middle" type="application/x-shockwave-flash" id="Own3dPlayer" name="Own3dPlayer" data="http://static.ec.own3d.tv/player/Own3dPlayerV2_86.swf"><param name="quality" value="high"><param name="bgcolor" value="#000000"><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always"><param name="allowfullscreen" value="true"><param name="flashvars" value="config=livecfg/' + x + '?autoPlay=false"></object>');
			  $('.main').addClass("hid");
		  }
	if (ch == 1) {
		  $(".top a").removeClass("active");
		  $("#stream").removeClass("hid").html(z).addClass("active").attr("href", "javascript:streamtop('" + x + "', '" + y + "')");
		  $("#forgames").html("").addClass("hid");
		  $("#all").html("Все стримы");
		  ch = 2;
	  }  else if (ch == 2) {
		  $(".top a").removeClass("active");
				var hrfch = $("#stream").attr("href");
				var txtch = $("#stream").text();
		  $("#stream").addClass("active").html(z).attr("href", "javascript:streamtop(\"" + x + "', '" + y + "')");
		  $("#stream2").html(txtch).attr("href", hrfch).removeClass("hid");
		  $("#forgames").html("").addClass("hid");
		  $("#all").html("Все стримы");
		  ch = 3;
	  } else if (ch == 3) {
		  $(".top a").removeClass("active");
				var hrfch = $("#stream").attr("href");
				var txtch = $("#stream").text();
		  $("#stream2").html(txtch).attr("href", hrfch);
		  $("#stream").removeClass("hid").html(z).addClass("active").attr("href", "javascript:streamtop('" + x + "', '" + y + "')");
		  $("#forgames").html("").addClass("hid");
		  $("#all").html("Все стримы");
		  ch = 2;
	  }


	}
		 function goto(wat){
				if (wat == 'all') {
					 $('.main').removeClass("hid");
					 $(".top a").removeClass("active");
					 $("#all").addClass("active");
					 $("#forstream").html("");
					 $("#admin").html("");
					 $("#forgames").html("").addClass("hid");
					 $("#all").html("Обновить");

				 }
				 else if (wat == 'game') {
					 $('#forgames').removeClass("hid");
					 $("#forgames").load("/games.php");
					 $('.main').addClass("hid");
					 $("#admin").html("");
					 $(".top a").removeClass("active");
					 $("#game").addClass("active");
					 $("#forstream").html("");
					 $("#all").html("Все стримы");
				 }
				 else if (wat == 'admin') {
					 $("#admin").load("/admin.php");
					 $('.main').addClass("hid");
					 $(".top a").removeClass("active");
					 $("#forstream").html("");
					 $("#all").html("Все стримы");
				 }
		 }
		 function streamtop(q, w, r) {
		if (w == 'twitch') {				
			$('#forstream').html('<br><object type="application/x-shockwave-flash" height="387" width="640" id="live_embed_player_flash" data="http://www.justin.tv/widgets/live_embed_player.swf?channel=' + q +'" bgcolor="#000000"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.justin.tv/widgets/live_embed_player.swf" /><param name="flashvars" value="auto_play=false&channel=' + q + '&start_volume=25" /></object>');
			$('.main').addClass("hid");
		 }
	   else if(w == 'own3d') {
			  $('#forstream').html('<br><object width="640" height="361" align="middle" type="application/x-shockwave-flash" id="Own3dPlayer" name="Own3dPlayer" data="http://static.ec.own3d.tv/player/Own3dPlayerV2_86.swf"><param name="quality" value="high"><param name="bgcolor" value="#000000"><param name="wmode" value="opaque"><param name="allowscriptaccess" value="always"><param name="allowfullscreen" value="true"><param name="flashvars" value="config=livecfg/' + q + '?autoPlay=false"></object>');
			  $('.main').addClass("hid");
		  }
				$("#all").html("Все стримы");
			  $(".top a").removeClass("active");
			  $('a[href*="javascript:streamtop(\''+q+'\', \''+w+'\'"]').addClass("active");
			  $("#forgames").html("").addClass("hid")
			  $("#admin").html("");

	  }

 

 

 

 

код месяц назад

var VKApi = (function(){

return {
	comments : function(url, id) {
		VK.Widgets.Comments((id ? id : 'vk_comments'), {
			limit: 10,
			mini: 0
		}, url);
	},

	location : function(arr) {
		VK.callMethod("setLocation", arr ? ('/' + arr.join('/')) : "");
	},

	autosize : function() {
   	 if (typeof VK.callMethod != 'undefined') {
			VK.callMethod('resizeWindow', 740, document.body.offsetHeight + 10);
   	 }
   	 else setTimeout(function(){
			VKApi.autosize();
		}, 300);
	},
}
}());


var Template = (function(){
var _getTpl = function(_id) {
	return doT.template(document.getElementById(_id).innerHTML);
};

var _tplList = {},
	_list = ["tab_stream", "stream_twitch", "game_streams", "comments", "full_stream"];

for (var i = _list.length - 1; i >= 0; i--) {
	_tplList[_list[i]] = _getTpl("tpl_" + _list[i]);
};


return function(tpl, data) {
	data = data || {};

	if(!(tpl in _tplList)) {
		throw new Error('Template doesnt exist');
	};

	return {
		code : _tplList[tpl](data),

		appendTo : function(query) {
			var el = document.querySelector(query);
			el.innerHTML += this.code;
			return this;
		},

		insertTo : function(query) {
			var el = document.querySelector(query);
			el.innerHTML = this.code;
			return this;
		},

		prependTo : function(query) {
			var el = document.querySelector(query);
			el.innerHTML = this.code + el.innerHTML;
			return this;
		},
	}
};
})();


var Stream = (function(){

return function(el) {

	if(el.constructor == Array)
		var data = el;
	else
		var data = el.getAttribute('data-stream').split(',');

	Template('full_stream', {
		player	  : Template('stream_twitch', {login: data[0]}).code,
		comments : Template('comments', {login: data[0]}).code
	}).insertTo('#full_stream');

	TabStream(data);

	VKApi.comments(data[0]);
	VKApi.location([data[4], data[0]]);
}
})();


var Game = (function(){
var _ajax = function(url, callback) {
	var xhr = new XMLHttpRequest();

	xhr.open('GET', url, true);  
	xhr.onreadystatechange = function() {  
		if (xhr.readyState == 4) callback(JSON.parse(xhr.responseText || {}));
	}
	xhr.send(null);
}

var __deactivate = function () {
	var el = document.querySelector('#games_list .active');
	if(!!el) el.className = '';
}

var _activate = function (game) {
	__deactivate();
	document.querySelector('#games_list [data-game="'+game+'"]').className = 'active';
};

var _clearStream = function() {
	document.getElementById('full_stream').innerHTML = null;
}

return function(game) {
	if(game == 'yoba') {
		Stream([
			'yobachannel', 'Yoba Videogames', '14/88',
			'http://cs305606.userapi.com/g18596193/d_9bce2e6d.jpg', 'yoba'
		]);
		return;
	}
	_activate(game);
	_ajax('streams/'+game+'.json?r='+Math.random(), function(data) {
		var isset = false;

		if(typeof window._preload_ !== "undefined") {
			for(var i=0;i<data.length;i++) {
				if(data[i][0] === window._preload_) {
					data[i][4] = game;
					Stream(data[i]);
					isset = true;
				}
			}
			delete window._preload_;
		}
		if(!isset) Template('game_streams', {streams: data, game: game}).insertTo('#game_streams');
	});

	_clearStream();
	TabMenu('games_list');
	VKApi.location([game]);
}
})();


var TabStream = (function () {

var _tab = function(login) {
	var el = document.querySelector('#tabs_stream [data-login="' + login + '"]');
	return {
		exist : !!el,
		activate : function () {
			this.deactivateAll();
			if(this.exist) el.className = 'active';
		},
		deactivateAll : function () {
			var elActive = document.querySelector('#tabs_stream .active');
			if(!!elActive) elActive.className = '';
		},
	}
}

var _calculateWidth = function() {
	var allTabs = document.querySelectorAll('#tabs_stream > div');

	if(allTabs.length) {
		var el = document.getElementById('tabs_empty');
		if(!!el) el.parentNode.removeChild(el);

		document.getElementById('tabs_stream').style.width = 166 * allTabs.length + 'px';
	}
}

var _clearStreams = function() {
	document.getElementById('game_streams').innerHTML = null;
}

return function(data) {
	var tab = _tab(data[0]);

	if(tab.exist) {
		tab.activate();
	}
	else {
		tab.deactivateAll();
		Template('tab_stream', data).prependTo('#tabs_stream');
		_calculateWidth();
	}

	_clearStreams();
	TabMenu('overtabs');
}
})();



var TabMenu = (function(){

var _activateButton = function (button) {
	document.querySelector('#menu_buttons .active').className = '';
	document.querySelector('#menu_buttons [data-button="'+button+'"]').className = 'active';
}

var _activateTab = function (id) {
	document.querySelector('#menu_tabs > .active').className = '';
	document.getElementById(id).className = 'active';
};

return function (id) {
	_activateTab(id);
	_activateButton(id);
};

})();


(function(){
window.onload = function() {
	var preload = window.location.search.match(/\&hash\=(.*)\&?/);
	if(preload) {
		preload = decodeURIComponent(preload[1]).split('/');
		console.log(preload)
		if(preload.length == 3) {
			Game(preload[1]);
			window._preload_ = preload[2];
		}
		else if(preload.length == 2) {
			Game(preload[1]);
		}
		else Game('all');
	}
	else Game('all');

	setInterval(function(){
		VKApi.autosize();
	}, 300);
}
})();


 

 

 

 

код 4 месяца назад


var _ = {
   games : {             //TWITCH, OWN3D, FULL NAME
       all         : ['all', 'all', 'Самые популярные'],
       dota2         : ['Dota+2', 'dota2', 'DotA2'],
       lol           : ['League+of+Legends', 'League+of+Legends', 'League of Legends'],
       hon            : ['Heroes+of+Newerth','Heroes+of+Newerth','Heroes of Newerth'],
       starcraft2  : ['StarCraft+II:+Wings+of+Liberty', 'sc2', 'StarCraft II'],
       diablo3	 : ['Diablo+III', 'Diablo+3', 'Diablo III'],
       wow         : ['World+of+Warcraft:+Mists+of+Pandaria', 'wow', 'World of Warcraft'],
       minecraft    : ['Minecraft', 'minecraft', 'Minecraft'],
       csgo        : ['Counter-Strike:+Global+Offensive','csgo', 'Counter-Strike: GO'],
       pointblank    : ['Point+Blank','Point+Blank', 'Point Blank'],
       bf3         : ['Battlefield+3', 'battlefield+3', 'Battlefield 3'],
       cod_bo        : ['Call of Duty: Black Ops II', 'Call+of+Duty+4', 'Call of Duty: BO II'],
       wot            : ['World+of+Tanks','world+of+tanks','World of Tanks'],
       dota1         : [ null, 'dota', 'DotA (one)'],        
       guildwars2    : ['Guild+Wars+2', 'Guild+Wars+2', 'Guild Wars 2'],
       isaac        : ['The+Binding+of+Isaac', null, 'The Binding of Isaac'],
       tf2            : ['Team+Fortress+2', null, 'Team Fortress 2'],
       dayz	    : ['DayZ', 'DayZ', ' DayZ '],
       //fallout3    : ['Fallout+3', 'Fallout+3', 'Fallout 3'],
       fifa        : ['FIFA+12', 'FIFA+12', 'FIFA 12'],
       yoba        : [null, null, 'Yoba Videogames', 'yobavideogames'],
   },
   options : {            //otions for select
       autoplay     : ['Автовоспроизведение стримов'],
       comments     : ['Комментарии в стримах'],
       isclick        : ['Переключение панелей кликом <br>(иначе наведением курсора)']
   },
   sites : {            //sites
       own3d         : ['http://api.own3d.tv/rest/live/list.json', '?gamename='],
       twitch         : ['http://api.justin.tv/api/stream/list.json', '?meta_game=']
   },
   current : {
       game         : '',        //last loaded game
       stream         : '',        //last opened stream
       onload         : false,     //load game on start?
       height : (function() {
           return $('#main').height();
       })(),        
   },
   stream : {
       array     : [],        //array of streams [viewers, name]
       data     : {},        //obj - list of streams {name : [site, title, url, thumb, lang, desc, view]}
       history : {},        //history opened stream {name : [site, title, url, thumb, lang, desc, view, game]}
       loaded : {            //which game was loaded?
           twitch     : 0,
           own3d     : 0
       },        
   },                    //russin users in own3d
   rus : [345906,45971,61699,95006,5351,306912,21803,175128,106735,119020,29848,346,306546,100962],
}

var clear = function() { //clear _ for reload & load list streams
   _.stream.data = {};
   _.stream.array = [];
   _.stream.loaded.twitch = 0;
   _.stream.loaded.own3d = 0;
   $('#streamlist').empty();
}


/**
* view
* here some templates
**/

var view = {
   twitch : function (ch, auto) {
       return '<div class="tw-stream">'
             +'<object type="application/x-shockwave-flash" height="462" width="770" '
             +'data="http://www.justin.tv/widgets/live_embed_player.swf?channel=' + ch + '" bgcolor="#000000">'
             +'<param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" />'
             +'<param name="movie" value="http://www.justin.tv/widgets/live_embed_player.swf" />'
             +'<param value="opaque" name="wmode"><param name="bgcolor" value="#000000">'
             +'<param name="flashvars" value="auto_play=' + auto + '&channel=' + ch + '&start_volume=25" /></object></div>';
   },
   own3d : function (ch, auto) {
       return   '<div class="ow-stream">'
          	 +'<object width="770" height="434">'
                 +'<param name="movie" value="http://www.own3d.tv/livestream/' + ch + ';autoplay=' + auto + '" />'
            +'<param name="allowscriptaccess" value="always" />'
            +'<param name="allowfullscreen" value="true" />'
            +'<param name="bgcolor" value="#000000"><param name="wmode" value="opaque">'
                 +'<embed src="http://www.own3d.tv/livestream/' + ch + ';autoplay=' + auto + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="770" height="434" wmode="transparent">'
                 +'</embed></object></div>';
   },
   preview : function(d, t) {
       var o = 'onclick="Open.stream(\'' + d[2] + '\')"',
           id = (t =="tab") ? 'id="tab-'+d[2]+'"' : '',
           c = (t =="tab") ? 'onmousedown="tab.close(\''+d[2]+'\');return false;"' : '',
           cl = (t =="tab") ? '<b title="close stream" class="cls" '+c+'></b>' : '',
           code = '<div '+ id +' ' + o + '>' + cl +
                   '<div class="tl"><b>' + d[6] + '</b> ' + d[1] + '</div>' +
                   '<img src="' + d[3] + '">' +
                   '<i class="flag-' + d[4].toUpperCase() + '"></i></div>';
       return code;
   },
   comments : function(u) {    //code for commentaries
       var k = '$(\'#commstabs a\').removeClass(\'active\');$(this).addClass(\'active\')',
           stream = '<div id="commstabs"><a class="active" onclick="$(\'.sitecomms\').hide();$(\'.comments\').show();'+k+'">vk.com</a> | '
                   + '<a onclick="$(\'.sitecomms\').show().html(view.comms.' + u[0] + '(\'' + u[2] + '\'));'
                   + '$(\'.comments\').hide();' + k + '">' + u[0] + '.tv</a></div>'
                   + '<div class="comments"><div id="vk_comments"></div></div>'
                   + '<div class="sitecomms" style="display:none"></div>';
       return stream;
   },
   comms : {                     //code for commentaries some sites
       twitch : function (channel) {    
           return  '<iframe src="http://twitch.tv/chat/embed?channel=' + channel + '&popout_chat=true" width="770px" ' +
                   'height="320px" scrolling="no" frameborder="0"></iframe>';
       },
       own3d : function (channel) {
           return  '<iframe src="http://www.own3d.tv/chatpopout/live_' + channel + '" width="770px" ' +
                   'height="320px" scrolling="no" frameborder="0"></iframe>'
       }
   }
}


/**
* Cookie
* get -> return bool
* get + set -> set val for cookie (name = get)
**/

var Cookie = function(get, set) {
   if(set) {
       $.cookie(get, set, {expires: 300});
       return;
   }
   var val = $.cookie(get);
   if(val === null || val == 'true') {
       return true;
   } else if(val == 'false') {
       return false;
   } else {
       return val;
   }
}


/**
* api
* some vk.com methods
**/

var api = {
   comments : function(url, id) {
       VK.Widgets.Comments((id ? id : 'vk_comments'), {
           limit: 10,
           mini: 0,
           autoPublish: 0,
           attach: '*'
       }, url);
   },

   location : function(arr) {
       VK.callMethod("setLocation", '/' + arr.join('/'));
   },

   url : function(name) {
       name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
         var regexS = "[\\?&]"+name+"=([^]*)";
         var regex = new RegExp(regexS);
         var results = regex.exec(window.location.href);
         if(results == null) return null;
         return results[1];
   },

   autosize : function() {
  	 if (typeof VK.callMethod != 'undefined') {
           hn = $('#main').height();
           if(hn != _.current.height) {
               VK.callMethod('resizeWindow', 780, hn + 1);
               _.current.height = hn;
           }
  	 }
  	 else setTimeout(function(){
           api.autosize();
       }, 300);
   },

   share : function() {
       var a = _.stream.history[_.current.stream],
           img = {
               dota2 :     'photo154697087_283251183',
               lol :         'photo154697087_283251186',
               diablo3 :     'photo154697087_283251185',
               starcraft2: 'photo154697087_283251184',
               minecraft : 'photo154697087_283251241',
           };
       VK.api('wall.post',{
           owner_id: api.url('viewer_id'),
           message: 'Stream by '+a[1]+', прямо сейчас!\n'+a[5],
           attachment: img[a[7]] + ',' + 'http://vk.com/app2859789#/'+a[7]+'/'+a[0]+'/'+a[2],
       });
   },
}


/**
* parse
* for editing loaded data into other data :)
**/

var parse = {
   own3d : function(data) {
       _.stream.loaded.own3d = 1;
       rending.game();
   },

   twitch : function(data) {
       if(!data) {
           _.stream.loaded.twitch = 1;
           rending.game();
           return;
       }
       $.each(data,
           function(i, val) {
               var lang =     val.language || 'en';
               lang = lang.replace(/[a-z]+\-([a-z]+)/g, '$1')
               var title = val.channel.title || 'notitle'; //
               var desc =     val.title;
               var view =     val.channel_count;
               var url =     val.channel.login;
               var thumb = val.channel.screen_cap_url_large;
           _.stream.array.push([url, +view]);    
           _.stream.data[url] = ['twitch', title, url, thumb, lang, desc, view];
       });
       _.stream.loaded.twitch = 1;
       rending.game();
   },
}


/**
* rending
* for rending some data and templates into html
**/

var rending = {
   menu : (function() {
       var code = '',
           total = (function(){
               var k = 0;
               $.each(_.games,function(i,v){k++})
               return Math.ceil(k / 5); //5 - кол-во столбиков
           })(),
           i = 1;
       $.each(_.games, function(k, val) {
           var o = 'onmousedown="Open.game(\'' + k + '\')" ' +
                   'id="' + k + '"';
           if(i % total == 1) {
               code += i == 1 ? '<ul class="first"><div>' : '<ul><div>';
           }
           code += '<li ' + o + '>' + val[2] + '</li>';
           if(i++ % total == 0) {
               code += '</div></ul>';
           }
       })
       return code;
   })(),

   settings : (function() {
       var code = '';
       $.each(_.options, function(k, val) {
           var c = Cookie(k),
               o = 'onclick="settings(\'' + k + '\')"';
           code += '<div class="option" ' + o + ' id="'+k+'">'
           code += '<i class="chb ' + (c ? 'on' : '') + '" ></i>';
           code += val[0] + '</div>';
       });
       return code;
   })(),

   game : function() {
       if(_.stream.loaded.twitch && _.stream.loaded.own3d) {
           /*TIMER*/var t0 = new Date();
           var data = _.stream.data,
               arr =  _.stream.array,
               code = '';

           $.each(arr, function(i, v) {
               var d = data[v[0]];
               code += view.preview(d);
           })
           $('#streamlist').html(code);
           $('#loader').hide();
           $('#reload').show();
           if(_.current.onload) {
               Open.stream(_.current.onload);
               _.current.onload = false;
           }
           /*TIMER*/console.log(new Date() - t0 + ' rend game')
       }
   },

   stream : function(user) {
       var u = _.stream.history[user],
           code = view[u[0]](u[2], Cookie('autoplay').toString());
       if(Cookie('comments'))
           code += view.comments(u);
       return code;
   },

   tab : function(user) {
       var d = _.stream.history[user];
       return view.preview(d, 'tab');
   },

}


/**
* load
* for load some jsonp
**/

var load = {
   game : function(site, game) {
       var num = (site == 'twitch') ? 0 : 1; //num in games array
       if(_.games[game][num] == null) {
           _.stream.loaded[site] = 1;
           return;
       }
       if(site == 'own3d') {
           _.stream.loaded[site] = 1;
           return;
       }
       var url = (game != 'all') ? (_.sites[site].join('') + _.games[game][num] + '&limit=24') : _.sites[site][0]+ '?limit=24';
       $.ajax({
           type: 'GET',
           url : url,
           dataType : 'jsonp',

           success : function(data) {
               parse[site](data);
           },
           error : function(data) {
               load.game(site, game);
           }}
       );
   }
}


/**
* tab
* object with some methods for tabs
**/

var tab = {
   create : function(user) {
       var code = rending.tab(user);
       $('#tabslist').prepend(code);
       tab.check();
   },
   active : function(user) {
       tab.switch($('#alltabs'));
       $('#tabslist > div').removeClass('active');
       $('#tab-' + user).addClass('active');
   },
   switch : function(el) {
       var tab = $(el).data('tab');
       $('#topmenu > div').removeClass('active');
       $(el).addClass('active');
       $('#bottommenu > div').hide();
       $(tab).show();
   },
   scroll : function(h, total) {
       var left = $('#tabslist').css('left').replace(/([0-9\-]+)px/, '$1'),
           newlft = total + 25 || +left + h;
       $('#tabslist').animate({'left': newlft + 'px'}, 300, function(){
           tab.check();
       });
   },
   check : function(left) {
       var l = 0,
           left = +$('#tabslist').css('left').replace(/([0-9\-]+)px/, '$1');
       $.each(_.stream.history, function(){l++});
       if(left != 25) {
           $('#scleft').removeClass('locked');
       } else {
           $('#scleft').addClass('locked');
       }
       if(l >= 5) {
           if(left == (25 - (l - 4) * 182)) {
               $('#scright').addClass('locked');
           } else {
               $('#scright').removeClass('locked');
           }
       } else {
           $('#scright').addClass('locked');
       }
       $('#alltabs i').show().html(l);
   },
   close : function(user) {
       delete _.stream.history[user];
       if($('#tab-' + user).hasClass('active')) {
           $('#tab-' + user).remove();
           Open.game(_.current.game);
       } else {
           $('#tab-' + user).remove();
       }
       tab.check();
       return false;
   }
}


/**
* settings
* function witch change checkbox
**/

var settings = function(name) {
   var val = Cookie(name);
   if(val) {
       Cookie(name, 'false');
       $('#' + name + ' i').removeClass('on');
   } else {
       Cookie(name, 'true');
       $('#' + name + ' i').addClass('on');
   }
}


/**
* Open
* обработка some methods like open game or open stream
**/

var Open = {
   game : function(game) {
       clear();
       if(game) _.current.game = game;
       else game = _.current.game;
       $('#tabslist > div, #gamesmenu li').removeClass('active');
       $('#gamesmenu #' + game).addClass('active');
       $('#streamlist, #loader').show();
       $('#stream').hide().empty();
       $('#streamname, #reload').hide();
       $('#gamename').show().find('#gametitle').html(_.games[game][2])
       tab.switch($('#allgame'));
       if(game == 'yoba') {
           $('#loader').hide();
           _.current.onload = false;
           Open.stream('yobavideogames');
       } else {
           load.game('own3d', game);
           load.game('twitch', game);
       }
       api.location([game]);
   },

   stream : function(user) {
       if(!_.stream.history[user]) {
           if(user == 'yobavideogames') {
               _.stream.history.yobavideogames = ['twitch', 'Yoba Videogames', 'yobavideogames', 'http://cs305606.userapi.com/g18596193/d_9bce2e6d.jpg', 'ru', '', 'OVER 9000', 'yoba'];
           } else {
               _.stream.history[user] = _.stream.data[user];
               _.stream.history[user].push(_.current.game);
           }            
           tab.create(user);
       }
       _.current.stream = user;
       var code = rending.stream(user);
       $('#streamlist, #noopenstream, #gamename').hide();
       $('#stream').show().html(code);
       $('#streamname').show().find('#streamtitle').html(_.stream.history[user][1]);
       $('#gamesmenu li').removeClass('active');
       tab.active(user);
       if(Cookie('comments')) api.comments(user);
       api.location([_.stream.history[user][7],_.stream.history[user][0],user])
   }
}


$(function(){         //paste menu and other things when onload
   setInterval(function(){
       api.autosize();
   },300);
   $('#gamesmenu').html(rending.menu);
   $('#insert').html(rending.settings);    
})



/***************** Binds *****************/
$(function(){
   $('#topmenu > .tb').bind('mouseover', function () {
       if(!Cookie('isclick'))
           tab.switch(this);
   })
   $('#topmenu > .tb').bind('mousedown', function () {
       if(Cookie('isclick'))
           tab.switch(this);
   })
   $('#scleft').bind('click', function () {
       if(!$(this).hasClass('locked'))
           tab.scroll(182);
   })
   $('#scright').bind('click', function () {
       if(!$(this).hasClass('locked'))
           tab.scroll(-182);
   })
})

/***************** load game *****************/
$(function(){
   var hash = api.url('hash');
   if(hash != null) {
       var a = decodeURIComponent(hash).match(/\/(\w+)(\/(own3d|twitch)\/(\w+))?/);
       if(a == null || a[1] == null) {        //if not match
           Open.game('all');                 //all
           return;
       }
       if(a[3] == null || a[4] == null) {     //if match only game
           Open.game(a[1]);
           return;
       }                                     //if full math with some stream
       _.current.onload = a[4];            //make onload
       Open.game(a[1]);                     
       return;
   } else {
       Open.game('all');
   }
});

/***************** Save user *****************/

$(function(){
   VK.init(function() {
    var viewer_id =  api.url('viewer_id'),
        auth_key =   api.url('auth_key'),
        appi_set =      api.url('api_settings');
       if(appi_set !== null && appi_set != 0) {
           $.ajax({
               type : 'POST',
               url : '/users.php',
               data : {
                   "viewer_id": viewer_id,
              	 "auth_key": auth_key
               },
               success : function(data) {	    
              	 console.log(data == "true" ? "Юзер добавлен" : "Ошибка записи");
               },
               error : function(d) {
                   console.log('error: ' + d)
               }
           });
  	 } else {
           console.log('Пользователь запретил оповещения.');
  	 }
   });
})

 

 


Изменено пользователем SPYHunter

Поделиться сообщением


Ссылка на сообщение

Раньше лучше было же :hmm:

А жаваскрипт пиздец убогий язык конечно.

Поделиться сообщением


Ссылка на сообщение

Может и убогий, но писать на нем удовольствие.

 

 

Код не хуже. Код который написан месяц назад без жквери, что местами уменьшает его читаемость. НО В нем реализована инкапсуляция. Поэтому в глобальной зоне всего 6 функций и ни одной переменной. Нет ни куска html, все селекторы инкапсулированы. Код быстрый. Все шаблоны кешируются. собсно вот http://stream.rankedgaming.ru/new/ (приложение для контактика)

 

Код написанный позже комментировать смысла нет.

Поделиться сообщением


Ссылка на сообщение

Господи нахуй ты это все написал. Заведи друзей

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...