편집 요약 없음 |
편집 요약 없음 |
||
2번째 줄: | 2번째 줄: | ||
importScript("사용자:다메즈마/watchlist.js"); | importScript("사용자:다메즈마/watchlist.js"); | ||
$(document).on("click", "a", function(e){ | $(document).on("click", "a", function(e){ | ||
if(!this.href.startsWith("/wiki/"))return; | |||
e.preventDefault(); | e.preventDefault(); | ||
}); | }); |
2018년 8월 27일 (월) 03:16 판
importScript("사용자:다메즈마/bookmark.js");
importScript("사용자:다메즈마/watchlist.js");
$(document).on("click", "a", function(e){
if(!this.href.startsWith("/wiki/"))return;
e.preventDefault();
});
function randomRange(n1, n2) {
return Math.round( Math.random() * 10000) % (n2 - n1) + n1;
}
var damezuma_hisyokan = null;
function Mascot2()
{
this.is_loaded = false;
this.is_show = false;
this.mascot_img_list = [];
this.message_queue = [];
this.now_balloon = null;
this.is_small = false;
this.imgSrc = "";
this.comments = [];
}
Mascot2.prototype.CloseMessage = function()
{
$(this.now_balloon).fadeOut(1000).delay(1000,function(){$(this).remove();});
this.now_balloon = null;
if(this.message_queue.length != 0)
{
this._show_balloon();
}
};
Mascot2.prototype.ShowMessageNow = function(msg)
{
this.message_queue.unshift(msg);
if(this.is_show == false)
{
this.Show();
}
else{
this.CloseMessage();
}
if(this.now_balloon == null && this.is_loaded == true)
{
this._show_balloon();
}
};
Mascot2.prototype._show_balloon = function()
{
this.now_balloon = document.createElement("div");
$(this.now_balloon).css("position","fixed");
$(this.now_balloon).css("display","none");
$(this.now_balloon).html(this.message_queue[0]);
$(this.now_balloon).css("background-color","#000");
$(this.now_balloon).css("color","#FFF");
$(this.now_balloon).css("max-width","225px");
$(this.now_balloon).css("padding","16px");
$(document.body).append(this.now_balloon);
$(this.now_balloon).css("bottom",$(this.mascot_img_html).height()/2 +16 - $(this.now_balloon).height()/2 + 32);
$(this.now_balloon).css("right",$(this.mascot_img_html).width() + 32);
$(this.now_balloon).css("border-radius",5);
$(this.now_balloon).fadeIn(1000);
this.message_queue.shift();
this.now_balloon.obj = this;
$(this.now_balloon).click
(
function()
{
var obj = this.obj;
$(obj.now_balloon).fadeOut(1000).delay(1000,function(){$(this).remove();});
obj.now_balloon = null;
if(obj.message_queue.length != 0)
{
obj._show_balloon();
}
}
);
};
Mascot2.prototype.ShowMessage = function(msg)
{
this.message_queue.push(msg);
if(this.is_show == false)
{
this.Show();
}
if(this.now_balloon == null && this.is_loaded == true)
{
this._show_balloon();
}
};
Mascot2.prototype.ToSmall = function()
{
$(this.mascot_img_html).css("width",96);
if(this.now_balloon != null)
{
$(this.now_balloon).css("bottom",$(this.mascot_img_html).height()/2 +16 - $(this.now_balloon).height()/2 + 32);
$(this.now_balloon).css("right",$(this.mascot_img_html).width() + 32);
}
$("#to-top-btn").css("width",$(this.mascot_img_html).width()/2);
$("#hisyokan-bookmark").css("width",$(this.mascot_img_html).width()/2);
this.is_small = true;
localStorage.setItem("custom_dmns_is_small",true);
};
Mascot2.prototype.ToBig = function()
{
$(this.mascot_img_html).css("width",256);
if(this.now_balloon != null)
{
$(this.now_balloon).css("bottom",$(this.mascot_img_html).height()/2 +16 - $(this.now_balloon).height()/2 + 32);
$(this.now_balloon).css("right",$(this.mascot_img_html).width() + 32);
}
$("#to-top-btn").css("width",$(this.mascot_img_html).width()/2);
$("#hisyokan-bookmark").css("width",$(this.mascot_img_html).width()/2);
this.is_small = false;
localStorage.setItem("custom_dmns_is_small",false);
}
Mascot2.prototype.Show = function()
{
if(this.is_show) return;
this.is_show = true;
var select = this.imgSrc;
var wrap_div = document.createElement("div");
this.mascot_img_html = document.createElement("img");
this.mascot_img_html.obj = this;
if(localStorage.getItem("custom_dmns_is_small") == "true")
{
this.ToSmall();
}
else
{
this.ToBig();
}
this.mascot_img_html.onload = function()
{
var obj = this.obj;
if(localStorage.getItem("custom_dmns_is_small") == "true")
{
obj.ToSmall();
}
else
{
obj.ToBig();
}
if(obj.message_queue.length != 0)
{
obj._show_balloon();
}
$(".top_s_btn").css("display","none");
$("#to-top-btn").css("width",$(this).width()/2);
$("#hisyokan-bookmark").css("width",$(this).width()/2);
obj.is_loaded = true;
};
$(this.mascot_img_html).click(
function()
{
if(this.obj.is_small == false)
{
this.obj.ToSmall();
}
else
{
this.obj.ToBig();
}
});
this.mascot_img_html.src = select.replace("bbs.","");
$(this.mascot_img_html).css("display","block");
$(wrap_div).css("position","fixed");
$(wrap_div).css("right","16px");
$(wrap_div).css("bottom","16px");
$(wrap_div).append(this.mascot_img_html);
$(wrap_div).append("<ul style='list-style:none;padding: 0px;margin:0px;display:inline;'><li style='float:left;'><a id='to-top-btn' href='#' style='text-align:center;display:inline-block;line-height:32px;width:100%;background-color:#000;color:#FFF;font-weight:bold;'>위로</a></li><li style='float:left;'> <a id='hisyokan-bookmark' href='#' style='text-align:center;display:inline-block;line-height:32px;width:100%;background-color:#000;color:#FFF;font-weight:bold;'>메뉴</a></li></ul>");
$(document.body).append(wrap_div);
document.getElementById("hisyokan-bookmark").obj = this;
$("#hisyokan-bookmark").click(
function()
{
var menu_list_h = document.createElement("ul");
$(menu_list_h).css("list-style","none");
$(menu_list_h).css("margin",0);
$(menu_list_h).css("padding",0);
var li = document.createElement("li");
var a_tag = document.createElement("a");
a_tag.href = "#";
a_tag.obj = this.obj;
$(a_tag).css("display","inline-block");
$(a_tag).css("line-height","16px");
$(a_tag).css("padding","2px");
$(a_tag).css("color","#FFF");
$(a_tag).html("이 페이지 등록");
$(a_tag).click(
function()
{
var link = document.location.href;
var name = document.title;
name = name.replace(" - 리브레 위키","");
var bookmark = new BookmarkStorage();
bookmark.AddBookmark(name,link);
this.obj.CloseMessage();
this.obj.ShowMessage("등록되었습니다");
return false;
}
);
$(li).html(a_tag);
$(menu_list_h).append(li);
li = document.createElement("li");
a_tag = document.createElement("a");
a_tag.href = "#";
a_tag.obj = this.obj;
$(a_tag).css("display","inline-block");
$(a_tag).css("line-height","16px");
$(a_tag).css("padding","2px");
$(a_tag).css("color","#FFF");
$(a_tag).html("북마크 리스트");
$(a_tag).click(function(){
var bookmark = new BookmarkStorage();
this.obj.ShowMessageNow(GetHtmlList(bookmark.GetList()));
return false;
});
$(li).html(a_tag);
$(menu_list_h).append(li);
li = document.createElement("li");
a_tag = document.createElement("a");
a_tag.href = "#";
a_tag.obj = this.obj;
$(a_tag).css("display","inline-block");
$(a_tag).css("line-height","16px");
$(a_tag).css("padding","2px");
$(a_tag).css("color","#FFF");
$(a_tag).html("쌓인 메시지 지우기");
$(a_tag).click(function(){
this.obj.message_queue = [];
return false;
});
$(li).html(a_tag);
$(menu_list_h).append(li);
this.obj.ShowMessageNow(menu_list_h);
return false;
}
);
var ttttt = this.comments["대사"].split("\n");
this.ShowMessage(ttttt[randomRange(0,ttttt.length - 1)])
};
var user_name = mw.config.get("wgUserName");
param = null;
if(location.host.startsWith("bbs"))
{
param = {
data:{
action:"parse",
format:"json",
prop:"text|modules",
page:"사용자:"+user_name+"/비서함",
pst:"",
origin: window.location.origin
},
method:"POST",
dataType:"json",
crossDomain: true,
'xhrFields': {
'withCredentials': true
}
};
}
else
{
param = {
data:{
action:"parse",
format:"json",
prop:"text|modules",
page:"사용자:"+user_name+"/비서함",
pst:""
},
method:"POST",
dataType:"json"
};
}
$.ajax("//librewiki.net/api.php",param).done(function(res){
ggg = {};
var temp = document.createElement("div");
temp.innerHTML = res.parse.text["*"];
var pres = temp.getElementsByTagName("pre");
var img = temp.getElementsByTagName("img");
for(var key in Object.keys(pres)){
pres[key].id =decodeURI(pres[key].id.replace(/\./gi,"%").replace(/_/gi," ")) ;
ggg[pres[key].id] = $(pres[key]).text();
}
damezuma_hisyokan = new Mascot2();
damezuma_hisyokan.imgSrc = img[0].src;
damezuma_hisyokan.comments = ggg;
damezuma_hisyokan.Show();
});