사용자:다메즈마/common.js

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
function randomRange(n1, n2) {
  return Math.floor( (Math.random() * (n2 - n1)) + n1 );
}
function Mascot()
{
	var libra = 
	{
		img:"/images/3/3d/리브레_위키_마스코트.png",
		comment:"한번만 더 '노브라'라고 하면 차단할테니 각오하세요" 
	};
	var libra2 = libra;
	libra2.img = "/images/8/8b/리브라_대반달.png";
	var libra3 =
	{
		img:"/images/d/d3/백팩커리브라.png",
		comment:"자 얼릉 문서수정하러 가자고"
	};
	var libren =
	{
		img:"/images/b/be/리브렌_100.png",
		comment:"나 팩맨아니라고!"
	};
	var itsurea_moe =
	{
		img:"/images/a/a3/150610.png",
		comment:"ㄹㅍㄷ ㄴㅁ는 자살하시길 왜 안 자살요?"
	};
	var itsurea_moe2 = itsurea_moe;
	itsurea_moe2.comment = "아 시발 죽창 존나 아프네 내가 야비군 좋아서 갔다 온건줄 아나";
	var mascot_list = 
	[
	libra,
	libra2,
	libra3,
	libren,
	itsurea_moe,
	itsurea_moe2
	];
	var select = mascot_list[randomRange(0,mascot_list.length)];
	var comment = select.comment;
 
	var wrap_div = document.createElement("div");
	this.mascot_img_html = document.createElement("img");
	this.balloon = document.createElement("div");
	$(this.balloon).css("display","none");
	$(this.balloon).css("position","fixed");
	this.mascot_img_html.balloon = this.balloon;
	this.mascot_img_html.onload = function()
	{
		$(this.balloon).css("display","");
		$(this.balloon).html(comment);
		$(this.balloon).css("background-color","#000");
		$(this.balloon).css("color","#FFF");
		$(this.balloon).css("max-width","225px");
		$(this.balloon).css("padding","16px");
		$(this.balloon).css("bottom",$(this).height()/2 +16 - $(this.balloon).height()/2 + 32);
		$(this.balloon).css("right",$(this).width() + 32);
		$(this.balloon).css("border-radius",5);

		var balloon = this.balloon;
		
	}
	this.mascot_img_html.src = select.img;
 
	$(wrap_div).css("position","fixed");
	$(wrap_div).css("right","16px");
	$(wrap_div).css("bottom","16px");
	$(wrap_div).append(this.mascot_img_html);
	
	$(this.mascot_img_html).css("height",256);
	$(wrap_div).append("<a href='#' style='text-align:center;display:inline-block;line-height:32px;width:100%;background-color:#000;color:#FFF;font-weight:bold;'>위로</a>");
	
	$(document.body).append(wrap_div);
	$(document.body).append(this.balloon);
	this.mascot_img_html.is_small = false;
	$(this.mascot_img_html).click(function()
	{
		if(this.is_small == false)
		{
			$(this).css("height",128);
		}
		else
		{
			$(this).css("height",256);
		}
		this.is_small = !this.is_small;
		$(mascot.mascot_img_html.parentElement).css("width",$(mascot.mascot_img_html).width())
	});
	$(this.balloon).click(function(){
		$(this).fadeOut();
	});
	$(".top_s_btn")[0].css("display","none");
	
}
Mascot.prototype.ShowMessage = function(msg)
{
	$(this.balloon).css("background-color","#000");
	$(this.balloon).css("color","#FFF");
	$(this.balloon).css("max-width","225px");
	$(this.balloon).css("padding","16px");
	$(this.balloon).css("bottom",$(this.mascot_img_html).height()/2 +32 - $(this.balloon).height()/2);
	$(this.balloon).css("right",$(this.mascot_img_html).width() + 32);
	$(this.balloon).css("border-radius",5);
	$(this.balloon).html(msg);
	$(this.balloon).fadeIn();
};
Mascot.prototype.Hide = function()
{
	$(this.balloon).fadeOut();
};

var mascot = new Mascot();
var temp = function(){
	var param = 
	{
		"action":"query",
		"meta":"notifications",
		"notlimit":10,
		"format":"json"
	};
	$.ajax("/api.php",
	{
		data:param,
		dataType:"json"
	})
	.done(function(res)
	{
		var list_o = res.query.notifications.list;
		var list = [];
		for(var key in list_o)
		{
			list.push(list_o[key]);
		}
		var unread_message = [];
		for(var i = 0 ; i < list.length ; i++)
		{
			if(list[i].read == null && list[i].type != "page-linked")
			{
				
				unread_message.push(list[i]);
			}
		}
		if(unread_message.length != 0)
		{
			mascot.ShowMessage("<a href='/wiki/"+ encodeURIComponent(unread_message[unread_message.length - 1].title.full)  + "'>알림이 도착했어요</a>");
		}
		else
		{
			
		}
	});
};
temp();
setInterval(temp,1000 * 20);