To fix many bygs

This commit is contained in:
cutls
2018-08-21 03:26:14 +09:00
parent 5dbafe5dc7
commit 406f65b17f
19 changed files with 1092 additions and 128 deletions

View File

@@ -29,9 +29,11 @@ function additional(acct_id, tlid) {
var card = localStorage.getItem("card_" + tlid);
var text = $(this).attr('href');
if(text){
var urls = text.match(
/https?:\/\/([-a-zA-Z0-9@.]+)\/media\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
);
if(text.indexOf("twimg.com")=== -1){
var urls = text.match(
/https?:\/\/([-a-zA-Z0-9@.]+)\/media\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
);
}
}else{
var urls =[]
}
@@ -297,6 +299,7 @@ function mov(id,tlid,type){
}
if(mouseover=="hide"){
$(tlide+" [toot-id="+id+"] .area-actions").toggleClass("hide")
$(tlide+" [toot-id="+id+"] .area-side").toggleClass("hide")
}
}
@@ -313,6 +316,7 @@ function resetmv(type){
}
if(mouseover=="hide"){
$(".area-actions").addClass("hide");
$(".area-side").addClass("hide");
}
}

View File

@@ -77,7 +77,7 @@ function mixtl(acct_id, tlid, type,delc,voice) {
//Streamingに接続
function mixre(acct_id, tlid, TLtype, mute,delc,voice) {
function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
var startHome = "wss://" + domain +
@@ -146,6 +146,11 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice) {
console.log(obj);
var type = JSON.parse(mess.data).event;
if (type == "delete") {
if(del>10){
reconnector(tlid,type,acct_id,data)
}else{
localStorage.setItem("delete",del*1+1)
}
if(delc=="true"){
$("[toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
$("[toot-id=" + JSON.parse(mess.data).payload + "]").addClass("by_delcatch");
@@ -154,6 +159,7 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice) {
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
}
} else if (type == "update") {
localStorage.removeItem("delete");
if(TLtype=="integrated"){
var templete = parse([obj], '', acct_id, tlid);
}else if(TLtype=="plus"){
@@ -187,10 +193,42 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice) {
}
websocketLocal[wslid].onerror = function(error) {
console.error('WebSocket Error ' + error);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error);
}else{
reconnector(tlid,TLtype,acct_id,"","error");
}
};
websocketLocal[wslid].onclose = function() {
console.error('WebSocketLocal Closing by error:' + tlid);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');
}else{
reconnector(tlid,TLtype,acct_id,"","error");
}
};
websocketHome[wshid].onerror = function(error) {
console.error('WebSocket Error ' + error);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error);
}else{
reconnector(tlid,TLtype,acct_id,"","error");
}
};
websocketHome[wshid].onclose = function() {
console.error('WebSocketHome Closing by error:' + tlid);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');
}else{
reconnector(tlid,TLtype,acct_id,"","error");
}
};
}
//ある程度のスクロールで発火

View File

@@ -157,7 +157,18 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
});
}
var noticeavatar="";
if (mix == "notf") {
if (gif == "yes") {
noticeavatar = toot.account.avatar;
} else {
noticeavatar = toot.account.avatar_static;
}
noticeavatar='<a onclick="udg(\'' + toot.account.id +
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
'<img src="' + noticeavatar +
'" width="20" class="notf-icon prof-img" user="' + toot.account.acct +
'"></a>';
if (toot.type == "mention") {
var what = lang_parse_mentioned[lang];
var icon = "fa-share teal-text";
@@ -249,6 +260,16 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
}else{
var if_notf="";
if (toot.reblog) {
if (gif == "yes") {
noticeavatar = toot.account.avatar;
} else {
noticeavatar = toot.account.avatar_static;
}
noticeavatar='<a onclick="udg(\'' + toot.account.id +
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
'<img src="' + noticeavatar +
'" width="20" class="notf-icon prof-img" user="' + toot.account.acct +
'"></a>';
var rebtxt = lang_parse_btedsimple[lang];
var rticon = "fa-retweet light-blue-text";
if(localStorage.getItem("domain_" + acct_id)=="imastodon.net" && !locale){
@@ -387,7 +408,24 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
spoil = spoil.replace(regExp, emoji_url);
});
}
//ニコフレ絵文字
if(toot.profile_emojis){
var nicoemojick = toot.profile_emojis[0];
}else{
var nicoemojick=false;
}
//絵文字があれば
if (nicoemojick) {
Object.keys(toot.profile_emojis).forEach(function(keynico) {
var emoji = toot.profile_emojis[keynico];
var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g");
content = content.replace(regExp, emoji_url);
spoil = spoil.replace(regExp, emoji_url);
});
}
//デフォ絵文字
content=twemoji.parse(content);
if(dis_name){
@@ -551,7 +589,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
'\',' + acct_id + ');" user="' + toot.account.acct + '" class="udg">' +
'<img src="' + avatar +
'" width="40" class="prof-img" user="' + toot.account.acct +
'"></a></div>' +
'"></a>'+noticeavatar+'</div>' +
'<div class="area-display_name"><div class="flex-name"><span class="user">' +
dis_name +
'</span><span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis; cursor:text;"> @' +

View File

@@ -1,5 +1,5 @@
//TL取得
function tl(type, data, acct_id, tlid, delc, voice) {
function tl(type, data, acct_id, tlid, delc, voice, mode) {
scrollevent();
localStorage.removeItem("morelock");
localStorage.removeItem("pool");
@@ -140,7 +140,7 @@ function tl(type, data, acct_id, tlid, delc, voice) {
}
//Streaming接続
function reload(type, cc, acct_id, tlid, data, mute, delc, voice) {
function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
if (!type) {
var type = localStorage.getItem("now");
}
@@ -247,6 +247,12 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice) {
}else{
var typeA = JSON.parse(mess.data).event;
if (typeA == "delete") {
var del=localStorage.getItem("delete");
if(del>10){
reconnector(tlid,type,acct_id,data)
}else{
localStorage.setItem("delete",del*1+1)
}
var obj = JSON.parse(mess.data).payload;
if(delc=="true"){
$("#timeline_"+tlid+" [toot-id=" + JSON.parse(mess.data).payload + "]").addClass("emphasized");
@@ -257,6 +263,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice) {
}
} else if (typeA == "update") {
localStorage.removeItem("delete");
var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj);
if($("#timeline_" + tlid +" [toot-id=" + obj.id + "]").length < 1){
@@ -264,16 +271,18 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice) {
say(obj.content)
}
var templete = parse([obj], type, acct_id, tlid,"",mute);
var pool = localStorage.getItem("pool_" + tlid);
if (pool) {
pool = templete + pool;
} else {
pool = templete
if ($("timeline_box_"+tlid+"_box .tl-box").scrollTop() == 0) {
$("#timeline_" + tlid).prepend(templete);
}else{
var pool = localStorage.getItem("pool_" + tlid);
if (pool) {
pool = templete + pool;
} else {
pool = templete
}
localStorage.setItem("pool_" + tlid, pool);
}
localStorage.setItem("pool_" + tlid, pool);
scrollck();
additional(acct_id, tlid);
jQuery("time.timeago").timeago();
}else{
@@ -290,7 +299,23 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice) {
}
websocket[wsid].onerror = function(error) {
console.error('WebSocket Error ' + error);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Error ' + error);
}else{
reconnector(tlid,type,acct_id,data,"error");
}
};
websocket[wsid].onclose = function() {
console.error('WebSocket Closing by error:' + tlid);
if(mode=="error"){
$("#notice_icon_" + tlid).addClass("red-text");
todo('WebSocket Closed');
}else{
reconnector(tlid,type,acct_id,data,"error");
}
};
}
//一定のスクロールで発火
@@ -571,58 +596,11 @@ function strAlive(){
if(col){
var obj = JSON.parse(col);
Object.keys(obj).forEach(function(key) {
var type=obj[key].type;
var lastunix=localStorage.getItem("lastunix_"+ key);
if(obj[key].type=="pub" || obj[key].type=="pub-media"){
//連合[連合数100超 or not]
if(localStorage.getItem("connects_" + obj[key].domain)>100){
var should=30;
}else{
var should=120;
}
}else if(obj[key].type=="local" || obj[key].type=="local-media"){
//連合[週間トゥ数10000超 or not]
if(localStorage.getItem("statuses_" + obj[key].domain)>10000){
var should=10;
}else if(localStorage.getItem("statuses_" + obj[key].domain)>1000){
var should=120;
}else{
var should=600;
}
}else{
if(type=="local" || type=="local-media" || type=="mix" || type=="plus"){
//ローカル[週間トゥ数10000超 or not]
if(localStorage.getItem("statuses_" + obj[key].domain)>10000){
var should=10;
}else if(localStorage.getItem("statuses_" + obj[key].domain)>1000){
var should=120;
}else{
var should=600;
}
}
if(type=="home" || type=="mix"){
//ホーム[フォロー数]
var flw=localStorage.getItem("follow_" + obj[key].domain)
if(flw>1000){
var should=10;
}else if(flw>500){
var should=20;
}else if(flw>100){
var should=30;
}else if(flw>50){
var should=45;
}else{
var should=60;
}
}
}
if (obj[key].data) {
var data = obj[key].data;
} else {
var data = "";
}
if(unix*1>lastunix*1+should*1 && should){
reconnector(tlid,type,obj[key].domain,data);
if($("#notice_icon_" + key).hasClass("red-text")){
var type=obj[key].type;
var acct_id=obj[key].domain;
var data=obj[key].data;
reconnector(key,type,acct_id,data,"error");
}
});
}
@@ -631,8 +609,8 @@ function strAlive(){
function strAliveInt(){
setTimeout(strAlive, 10000);
}
function reconnector(tlid,type,acct_id,data){
console.log("Reconnector")
function reconnector(tlid,type,acct_id,data,mode){
console.log("Reconnector:"+mode)
if(type=="mix" || type=="plus"){
if(localStorage.getItem("voice_" + tlid)){
var voice=true;
@@ -648,7 +626,7 @@ function reconnector(tlid,type,acct_id,data){
websocketHome[wssh].close();
var wssh=localStorage.getItem("wssL_" + tlid);
websocketLocal[wssl].close();
mixre(acct_id, tlid, type, mute,"",voice);
mixre(acct_id, tlid, type, mute,"",voice,mode);
}else if(type=="notf"){
}else{
var wss=localStorage.getItem("wss_" + tlid);
@@ -663,7 +641,7 @@ function reconnector(tlid,type,acct_id,data){
}else{
var mute=[];
}
reload(type, '', acct_id, tlid, data, mute, "",voice);
reload(type, '', acct_id, tlid, data, mute, "",voice,mode);
}
Materialize.toast(lang_tl_reconnect[lang], 2000);
}