diff --git a/app/about.html b/app/about.html
index 874deec6..63f25012 100644
--- a/app/about.html
+++ b/app/about.html
@@ -76,7 +76,7 @@ a,button{
-
バージョン
+
External version
Internal version
diff --git a/app/css/master.css b/app/css/master.css
index 9b193194..74e7b81c 100644
--- a/app/css/master.css
+++ b/app/css/master.css
@@ -389,6 +389,9 @@ blockquote:before, .quote:before {
font-size:16px;
padding:4px;
}
+#something-wrong{
+ width:100%; height:100%; position:absolute; display:flex; justify-content: center; align-items:center
+}
/*スクロールバー*/
::-webkit-scrollbar {
diff --git a/app/css/tl.css b/app/css/tl.css
index 04fbd169..42df4407 100644
--- a/app/css/tl.css
+++ b/app/css/tl.css
@@ -224,7 +224,10 @@ grid-area: toot;
cursor:text;
user-select: auto;
grid-area: additional;
- }
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
.area-actions {
padding:0;
@@ -334,6 +337,7 @@ p:not(:last-child){
.notice-box {
top: 0;
background-color:var(--notfbox);
+ filter: brightness(110%);
position: relative;
margin-right: 10px;
width:100%;
@@ -501,7 +505,26 @@ p:not(:last-child){
.votebtn:hover{
background-color:var(--color);
}
-
+.jump{
+ display: inline-block; animation: jump 0.75s linear infinite;
+}
+@keyframes jump {
+ 0% {
+ transform: translateY(0);
+}
+25% {
+ transform: translateY(-16px);
+}
+50% {
+ transform: translateY(0);
+}
+75% {
+ transform: translateY(-8px);
+}
+100% {
+ transform: translateY(0);
+}
+}
@keyframes fadeInDown {
from {
opacity: 0;
diff --git a/app/css/userdata.css b/app/css/userdata.css
index b6b82986..99219106 100644
--- a/app/css/userdata.css
+++ b/app/css/userdata.css
@@ -45,6 +45,7 @@
height:1.5rem; padding:0; background-color:#757575; text-align:center;
padding:5px;
margin-bottom:1px;
+ width:30%;
}
.his-field-content{
height:1.5rem; padding:0; padding-left:5px;
@@ -89,4 +90,11 @@
#his-des .mention{
color: #039be5;
cursor: pointer;
+}
+#his-float-blocked{
+ display:flex; justify-content: center; align-items:center;
+ font-size:2rem;
+ width: 90%;
+ height: 100%;
+ position: absolute;
}
\ No newline at end of file
diff --git a/app/js/lang/lang.en.js b/app/js/lang/lang.en.js
index 37320ed2..4bb2b0da 100644
--- a/app/js/lang/lang.en.js
+++ b/app/js/lang/lang.en.js
@@ -91,6 +91,7 @@ var lang={
"lang_list_users":"Users list",
"lang_list_nouser":"No users in this list.",
"lang_list_add":"Add to the list",
+ "lang_list_add_misskey":"(perhaps this user has been listed)",
"lang_list_remove":"Remove from the list",
//tl/notification.js
"lang_notf_new":" new notifications",
@@ -148,6 +149,7 @@ var lang={
"lang_showontl_notf":"Notification ",
"lang_showontl_domain":"Domain ",
"lang_showontl_listwarn":"Follow to add this user to lists.",
+ "lang_showontl_verified":"This website is verified by owner at ",
//parse
"lang_parse_mentioned":" replied to you",
"lang_parse_faved":" favourited your toot",
diff --git a/app/js/lang/lang.ja.js b/app/js/lang/lang.ja.js
index ba51e9ad..5930feef 100644
--- a/app/js/lang/lang.ja.js
+++ b/app/js/lang/lang.ja.js
@@ -91,6 +91,7 @@ var lang={
"lang_list_users":"ユーザー一覧",
"lang_list_nouser":"ユーザーはいません",
"lang_list_add":"リストに追加",
+ "lang_list_add_misskey":"(重複追加の可能性があります)",
"lang_list_remove":"リストから削除",
//tl/notification.js
"lang_notf_new":"件の新しい通知",
@@ -150,6 +151,7 @@ var lang={
"lang_showontl_notf":"通知",
"lang_showontl_domain":"ドメイン",
"lang_showontl_listwarn":"リストに追加するためにはフォローが必要です。",
+ "lang_showontl_verified":"このユーザーの所持するWebサイトであると証明されています。",
//parse
"lang_parse_mentioned":"が返信しました",
"lang_parse_faved":"がお気に入り登録しました",
diff --git a/app/js/login/instance.js b/app/js/login/instance.js
index f768144c..0f770ed8 100644
--- a/app/js/login/instance.js
+++ b/app/js/login/instance.js
@@ -8,17 +8,17 @@ var idata={
"kirishima.cloud_glitch":"enabled",
"kirishima.cloud_public":"パブリックタイムライン",
"minohdon.jp":"instance",
- "minohdon.jp_name":"箕面丼",
+ "minohdon.jp_name":"箕面どん",
"minohdon.jp_letters":"500",
"minohdon.jp_bbcode":"disabled",
"minohdon.jp_markdown":"disabled",
"minohdon.jp_glitch":"disabled",
"knzk.me":"instance",
- "knzk.me_name":"神崎丼",
+ "knzk.me_name":"Knzk",
"knzk.me_letters":"5000",
"knzk.me_bbcode":"disabled",
"knzk.me_markdown":"disabled",
- "knzk.me_glitch":"enabled",
+ "knzk.me_glitch":"disabled",
"mastodos.com":"instance",
"mastodos.com_name":"マストどす",
"mastodos.com_letters":"500",
@@ -32,7 +32,7 @@ var idata={
"dev.kirishima.cloud_markdown":"enabled",
"dev.kirishima.cloud_glitch":"enabled",
"mstdn.y-zu.org":"instance",
- "mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
+ "mstdn.y-zu.org_name":"Yづドン(Y-zuDon)",
"mstdn.y-zu.org_letters":"500",
"mstdn.y-zu.org_bbcode":"disabled",
"mstdn.y-zu.org_markdown":"enabled",
@@ -84,20 +84,14 @@ var idata={
"itabashi.0j0.jp_bbcode":"disabled",
"itabashi.0j0.jp_markdown":"disabled",
"itabashi.0j0.jp_glitch":"disabled",
- "theboss.tech":"instance",
- "theboss.tech_name":"theboss.tech",
- "theboss.tech_letters":"1000",
- "theboss.tech_bbcode":"disabled",
- "theboss.tech_markdown":"disabled",
- "theboss.tech_glitch":"disabled",
"dtp-mstdn.jp":"instance",
"dtp-mstdn.jp_name":"DTP鯖",
"dtp-mstdn.jp_letters":"500",
"dtp-mstdn.jp_bbcode":"disabled",
"dtp-mstdn.jp_markdown":"disabled",
"dtp-mstdn.jp_glitch":"disabled",
- "misskey.xyz":"instance",
- "misskey.xyz_name":"Misskey",
+ "misskey.xyz":"misskey",
+ "misskey.xyz_name":"misskey.xyz",
"misskey.xyz_letters":"1000",
"misskey.xyz_bbcode":"disabled",
"misskey.xyz_markdown":"enabled",
@@ -105,6 +99,28 @@ var idata={
"misskey.xyz_post":"Post",
"misskey.xyz_fav":" reacted your post.",
"misskey.xyz_bt":" reposted your post.",
+ "misskey.dev":"misskey",
+ "misskey.dev_name":"misskey.dev",
+ "misskey.dev_letters":"1024",
+ "misskey.dev_bbcode":"disabled",
+ "misskey.dev_markdown":"enabled",
+ "misskey.dev_public":"Global",
+ "misskey.dev_post":"Post",
+ "misskey.dev_fav":" reacted your post.",
+ "misskey.dev_bt":" reposted your post.",
+ "precure.ml":"instance",
+ "precure.ml_name":"キュアスタ!",
+ "precure.ml_letters":"1024",
+ "precure.ml_bbcode":"disabled",
+ "precure.ml_markdown":"disabled",
+ "precure.ml_post":"キュア!",
+ "precure.ml_glitch":"disabled",
+ "best-friends.chat":"instance",
+ "best-friends.chat_name":"Best Friends",
+ "best-friends.chat_letters":"500",
+ "best-friends.chat_bbcode":"disabled",
+ "best-friends.chat_markdown":"disabled",
+ "best-friends.chat_glitch":"disabled",
};
localStorage.setItem("instance", JSON.stringify(idata));
diff --git a/app/js/login/login.js b/app/js/login/login.js
index 30fbff5f..83cc982c 100644
--- a/app/js/login/login.js
+++ b/app/js/login/login.js
@@ -42,29 +42,24 @@ function ck() {
}
}
var multi = localStorage.getItem("multi");
- if (!multi) {
- var obj = [];
- var json = JSON.stringify(obj);
- localStorage.setItem("multi", json);
- } else {
+ if(!multi || multi=="[]"){
+ location.href="acct.html?mode=first&code=true"
+ }else{
var obj = JSON.parse(multi);
- }
Object.keys(obj).forEach(function(key) {
var acct=obj[key];
if(acct.domain){
refresh(key,true)
}
});
- console.log(obj);
- if (obj[0].domain) {
+if (obj[0].domain) {
$("#tl").show();
ticker();
multiSelector();
- } else {
- $("#tl").show();
- $("#post-box").hide();
+ verck(ver);
}
}
+}
ck();
//ログインポップアップ
function login(url) {
diff --git a/app/js/login/manager.js b/app/js/login/manager.js
index e9dd6776..884b50eb 100644
--- a/app/js/login/manager.js
+++ b/app/js/login/manager.js
@@ -2,6 +2,15 @@
//最初に読むやつ
function load() {
$("#acct-list").html("");
+ if(location.search){
+ var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
+ var mode=m[1];
+ var codex=m[2];
+ if(mode=="first" && codex=="true"){
+ $("body").addClass("first")
+ }else{
+ }
+ }
var prof = localStorage.getItem("prof");
$(".my-prof").attr("src", prof);
var name = localStorage.getItem("name");
@@ -57,14 +66,8 @@ function load() {
localStorage.setItem("acct", 0);
var acctN = 0;
}
- var electron = require("electron");
- var remote=electron.remote;
- var platform=remote.process.platform;
- if(localStorage.getItem("winstore")!="localinstall"){
- $("#linux").prop("checked", false);
- }else{
- $("#linux").prop("checked", true);
- }
+ //全部チェックアリでいいと思うの
+ $("#linux").prop("checked", true);
}
//最初に読む
@@ -262,6 +265,10 @@ function support() {
templete = '
' + idata[key + "_name"] + '(' + key + ')';
$("#support").append(templete);
+ }else if (instance == "misskey") {
+ templete = '
' + idata[key + "_name"] + '(' + key + ')';
+ $("#support").append(templete);
}
});
}
@@ -270,7 +277,7 @@ function support() {
function login(url) {
var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi);
- if($('#misskey:checked').val()=="on" || url=="misskey.xyz"){
+ if($('#misskey:checked').val()=="on"){
$("#misskey").prop("checked", true);
misskeyLogin(url);
return;
@@ -458,7 +465,9 @@ function code(code) {
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
-
+ if($("body").hasClass("first")){
+ location.href="index.html"
+ }
load();
return;
}
@@ -546,6 +555,9 @@ function getdata(domain, at) {
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
+ if($("body").hasClass("first")){
+ location.href="index.html"
+ }
load();
});
}
diff --git a/app/js/platform/end.js b/app/js/platform/end.js
index ac852838..9d18fe07 100644
--- a/app/js/platform/end.js
+++ b/app/js/platform/end.js
@@ -19,7 +19,7 @@
//メンションっぽかったら
var ats=[];
ats = url.match(
- /https:\/\/([-a-zA-Z0-9@.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
+ /https:\/\/([-a-zA-Z0-9.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#@]+)/
);
console.log(toot);
if(toot){
@@ -41,7 +41,8 @@
}else if(ats){
console.log(ats);
if(ats[2]){
- if(ats[1]!="quesdon.rinsuki.net"){
+ //Quesdon判定
+ if(!~ats[2].indexOf("@")){
udgEx(ats[2]+"@"+ats[1],"main");
return false
}else{
diff --git a/app/js/post/emoji.js b/app/js/post/emoji.js
index 19750457..5f571c46 100644
--- a/app/js/post/emoji.js
+++ b/app/js/post/emoji.js
@@ -4,11 +4,11 @@ $("#emoji-before").addClass("disabled");
$("#emoji-next").addClass("disabled");
//絵文字ボタンのトグル
-function emojiToggle() {
+function emojiToggle(reaction) {
var acct_id = $("#post-acct-sel").val();
var selin = $("#textarea").prop('selectionStart');
- if(!selin){
- selin=0;
+ if (!selin) {
+ selin = 0;
}
localStorage.setItem("cursor", selin);
@@ -18,10 +18,10 @@ function emojiToggle() {
$("#suggest").html("");
if (!localStorage.getItem("emoji_" + acct_id)) {
var html =
- '
';
+ '
';
$("#emoji-list").html(html);
} else {
- emojiList('home');
+ emojiList('home', reaction);
}
} else {
$("#poll").addClass("hide")
@@ -34,43 +34,97 @@ function emojiToggle() {
}
//絵文字リスト挿入
-function emojiGet(parse) {
+function emojiGet(parse, started) {
$('#emoji-list').html('Loading...');
var acct_id = $("#post-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id);
- var start = "https://" + domain + "/api/v1/custom_emojis";
- fetch(start, {
- method: 'GET',
- headers: {
- 'content-type': 'application/json'
- },
- }).then(function(response) {
- return response.json();
- }).catch(function(error) {
- todo(error);
- console.error(error);
- }).then(function(json) {
- if (parse == "true") {
- $('#emoji-list').html('Parsing...');
- //絵文字をマストドン公式と同順にソート
- json.sort(function(a, b) {
- if (a.shortcode < b.shortcode) return -1;
- if (a.shortcode > b.shortcode) return 1;
- return 0;
+ if (localStorage.getItem("mode_" + domain) != "misskey") {
+ var start = "https://" + domain + "/api/v1/custom_emojis";
+ fetch(start, {
+ method: 'GET',
+ headers: {
+ 'content-type': 'application/json'
+ },
+ }).then(function (response) {
+ return response.json();
+ }).catch(function (error) {
+ todo(error);
+ console.error(error);
+ }).then(function (json) {
+ if (parse == "true") {
+ $('#emoji-list').html('Parsing...');
+ //絵文字をマストドン公式と同順にソート
+ json.sort(function (a, b) {
+ if (a.shortcode < b.shortcode) return -1;
+ if (a.shortcode > b.shortcode) return 1;
+ return 0;
+ });
+ localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
+ } else {
+ localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
+ }
+ localStorage.setItem("emojiseek", 0);
+ if (!started) {
+ emojiList('home')
+ }
+ });
+ } else {
+ var start = "https://" + domain + "/api/meta";
+ fetch(start, {
+ method: 'POST',
+ headers: {
+ 'content-type': 'application/json'
+ },
+ }).then(function (response) {
+ return response.json();
+ }).catch(function (error) {
+ todo(error);
+ console.error(error);
+ }).then(function (json) {
+ if (json.enableEmojiReaction) {
+ localStorage.setItem("emojiReaction_" + acct_id, "true");
+ } else {
+ localStorage.setItem("emojiReaction_" + acct_id, "disabled");
+ }
+ var emojis = json.emojis;
+ var md = [];
+ Object.keys(emojis).forEach(function (key) {
+ var emoji = emojis[key];
+ md.push({
+ "shortcode": emoji.name,
+ "url": emoji.url
+ })
});
- localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
- } else {
- localStorage.setItem("emoji_" + acct_id, JSON.stringify(json));
- }
- localStorage.setItem("emojiseek", 0);
- emojiList('home')
- });
+ if (parse == "true") {
+ $('#emoji-list').html('Parsing...');
+ //絵文字をマストドン公式と同順にソート
+ md.sort(function (a, b) {
+ if (a.shortcode < b.shortcode) return -1;
+ if (a.shortcode > b.shortcode) return 1;
+ return 0;
+ });
+ localStorage.setItem("emoji_" + acct_id, JSON.stringify(md));
+ } else {
+ localStorage.setItem("emoji_" + acct_id, JSON.stringify(md));
+ }
+ localStorage.setItem("emojiseek", 0);
+ if (!started) {
+ emojiList('home')
+ }
+ });
+ }
}
//リストの描画
-function emojiList(target) {
+function emojiList(target, reaction) {
$("#now-emoji").text(lang.lang_emoji_custom);
var acct_id = $("#post-acct-sel").val();
+ if (reaction && localStorage.getItem("emojiReaction_" + acct_id) != "true") {
+ console.error("Disabled")
+ clear()
+ hide();
+ return false;
+ }
var start = localStorage.getItem("emojiseek");
if (target == "next") {
var start = start * 1 + 127;
@@ -103,8 +157,14 @@ function emojiList(target) {
for (i = start; i < start + 126; i++) {
var emoji = obj[i];
if (emoji) {
- html = html + '
![](' + emoji.url + ')
';
+ if (reaction) {
+ html = html + '
![](' + emoji.url + ')
';
+ } else {
+ html = html + '
![](' + emoji.url + ')
';
+ }
+
}
}
$("#emoji-list").html(html);
@@ -114,14 +174,19 @@ function emojiList(target) {
function emojiInsert(code, del) {
var now = $("#textarea").val();
var selin = localStorage.getItem("cursor");
+ if (localStorage.getItem("emoji-zero-width") == "yes") {
+ var brank = "";
+ } else {
+ var brank = " ";
+ }
console.log(selin);
var now = $("#textarea").val();
- if(selin>0){
- var before = now.substr(0, selin);
- var after = now.substr(selin, now.length);
- newt = before + " "+ code+" " + after;
- }else{
- newt = code+" ";
+ if (selin > 0) {
+ var before = now.substr(0, selin);
+ var after = now.substr(selin, now.length);
+ newt = before + brank + code + brank + after;
+ } else {
+ newt = code + brank;
}
if (!del) {
$("#textarea").val(newt);
@@ -129,20 +194,20 @@ function emojiInsert(code, del) {
} else {
var regExp = new RegExp(del, "g");
var now = now.replace(regExp, "");
- $("#textarea").val(now + " " + code);
+ $("#textarea").val(now + brank + code);
}
-
+
$("#textarea").focus();
var selin = $("#textarea").prop('selectionStart');
- if(!selin){
- selin=0;
+ if (!selin) {
+ selin = 0;
}
localStorage.setItem("cursor", selin);
}
//改行挿入
function brInsert(code) {
- if(!$('#post-box').hasClass("appear")){
- localStorage.setItem("nohide",true);
+ if (!$('#post-box').hasClass("appear")) {
+ localStorage.setItem("nohide", true);
show();
}
var now = $("#textarea").val();
diff --git a/app/js/post/misskeystatus.js b/app/js/post/misskeystatus.js
index 6724c2f6..84366e83 100644
--- a/app/js/post/misskeystatus.js
+++ b/app/js/post/misskeystatus.js
@@ -65,7 +65,7 @@ function reactiontoggle(id,acct_id,tlid){
var json = httpreq.response;
console.log(json);
if(json.reactionCounts){
- var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding"];
+ var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding","star"];
for(var i=0;i
'+lang.lang_list_show+'/'+lang.lang_list_users+'
';
- });
- $("#lists").html(lists);
- }else{
- $("#lists").html(lang.lang_list_nodata);
- }
- });
+ var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ if(localStorage.getItem("mode_" + domain)=="misskey"){
+ var start = "https://" + domain + "/api/users/lists/list"
+ fetch(start, {
+ method: 'POST',
+ body: JSON.stringify({
+ i:at
+ }),
+ }).then(function(response) {
+ return response.json();
+ }).catch(function(error) {
+ todo(error);
+ console.error(error);
+ }).then(function(json) {
+ if (json) {
+ var lists = "";
+ Object.keys(json).forEach(function(key) {
+ var list = json[key];
+ lists = lists + list.title+':'+lang.lang_list_show+'
';
+ });
+ $("#lists").html(lists);
+ }else{
+ $("#lists").html(lang.lang_list_nodata);
+ }
+ });
+ }else{
+ var start = "https://" + domain + "/api/v1/lists"
+ console.log(start)
+ fetch(start, {
+ method: 'GET',
+ headers: {
+ 'content-type': 'application/json',
+ 'Authorization': 'Bearer ' + at
+ },
+ }).then(function(response) {
+ return response.json();
+ }).catch(function(error) {
+ todo(error);
+ console.error(error);
+ }).then(function(json) {
+ if (json) {
+ var lists = "";
+ Object.keys(json).forEach(function(key) {
+ var list = json[key];
+ lists = lists + list.title+':'+lang.lang_list_show+'/'+lang.lang_list_users+'
';
+ });
+ $("#lists").html(lists);
+ }else{
+ $("#lists").html(lang.lang_list_nodata);
+ }
+ });
+ }
}
function makeNewList(){
var acct_id = $("#list-acct-sel").val();
var text=$("#list-add").val();
var domain = localStorage.getItem("domain_" + acct_id);
- var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ if(localStorage.getItem("mode_" + domain)!="misskey"){
var start = "https://" + domain + "/api/v1/lists"
console.log(start)
var httpreq = new XMLHttpRequest();
@@ -63,6 +91,25 @@ function makeNewList(){
$("#list-add").val("")
}
}
+}else{
+ var start = "https://" + domain + "/api/users/lists/create"
+ console.log(start)
+ var httpreq = new XMLHttpRequest();
+ httpreq.open('POST', start, true);
+ httpreq.setRequestHeader('Content-Type', 'application/json');
+ httpreq.responseType = "json";
+ httpreq.send(JSON.stringify({
+ i:at,
+ title: text
+ }));
+ httpreq.onreadystatechange = function() {
+ if (httpreq.readyState === 4) {
+ var json = httpreq.response;
+ list();
+ $("#list-add").val("")
+ }
+ }
+}
}
function listShow(id,title,acct_id){
localStorage.setItem("list_"+id+"_"+acct_id,title);
@@ -70,8 +117,8 @@ function listShow(id,title,acct_id){
}
function listUser(id,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
- var at = localStorage.getItem("acct_"+ acct_id + "_at");
- var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
+ var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
console.log(start)
fetch(start, {
method: 'GET',
@@ -99,7 +146,8 @@ function listUser(id,acct_id){
}
function hisList(user,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
- var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ if(localStorage.getItem("mode_" + domain)!="misskey"){
var start = "https://" + domain + "/api/v1/lists"
console.log(start)
fetch(start, {
@@ -118,7 +166,7 @@ function hisList(user,acct_id){
var lists = lang.lang_list_add+"
";
Object.keys(json).forEach(function(key) {
var list = json[key];
- lists = lists + ''+escapeHTML(list.title)+'
';
});
$("#his-lists-a").html(lists);
@@ -144,28 +192,66 @@ function hisList(user,acct_id){
var lists = lang.lang_list_remove+"
";
Object.keys(json).forEach(function(key) {
var list = json[key];
- lists = lists + ''+list.title+'
';
});
$("#his-lists-b").html(lists);
}else{
$("#his-lists-b").html(lang.lang_list_nodata);
}
- });
+ });
+}else{
+ var start = "https://" + domain + "/api/users/lists/list"
+ fetch(start, {
+ method: 'POST',
+ body: JSON.stringify({
+ i:at
+ }),
+ }).then(function(response) {
+ return response.json();
+ }).catch(function(error) {
+ todo(error);
+ console.error(error);
+ }).then(function(json) {
+ if (json) {
+ var lists = "";
+ Object.keys(json).forEach(function(key) {
+ var list = json[key];
+ lists = lists + list.title+':'+lang.lang_list_show+'/'+lang.lang_list_add+lang.lang_list_add_misskey+'
';
+ });
+ $("#his-lists-a").html(lists);
+ }else{
+ $("#his-lists-a").html(lang.lang_list_nodata);
+ }
+ });
+ $("#his-lists-b").html("");
+}
}
function listAdd(id,user,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
- var at = localStorage.getItem("acct_"+ acct_id + "_at");
- var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
+ var at = localStorage.getItem("acct_"+ acct_id + "_at");
+ if(localStorage.getItem("mode_" + domain)=="misskey"){
+ var start = "https://" + domain + "/api/users/lists/push"
+ var i={
+ i:at,
+ listId:id,
+ userId:user
+ }
+ }else{
+ var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
+ var i={
+ account_ids: [user]
+ }
+ }
console.log(start)
var httpreq = new XMLHttpRequest();
httpreq.open('POST', start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
httpreq.responseType = "json";
- httpreq.send(JSON.stringify({
- account_ids: [user]
- }));
+ httpreq.send(JSON.stringify(i));
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
@@ -176,16 +262,28 @@ function listAdd(id,user,acct_id){
function listRemove(id,user,acct_id){
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem("acct_"+ acct_id + "_at");
- var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
+ if(localStorage.getItem("mode_" + domain)=="misskey"){
+ var start = "https://" + domain + "/api/users/lists/push"
+ var method='POST'
+ var i={
+ i:at,
+ listId:id,
+ userId:user
+ }
+ }else{
+ var start = "https://" + domain + "/api/v1/lists/"+id+"/accounts"
+ var method='DELETE'
+ var i={
+ account_ids: [user]
+ }
+ }
console.log(start)
var httpreq = new XMLHttpRequest();
- httpreq.open('DELETE', start, true);
+ httpreq.open(method, start, true);
httpreq.setRequestHeader('Content-Type', 'application/json');
httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
httpreq.responseType = "json";
- httpreq.send(JSON.stringify({
- account_ids: [user]
- }));
+ httpreq.send(JSON.stringify(i));
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
var json = httpreq.response;
diff --git a/app/js/tl/misskeyparse.js b/app/js/tl/misskeyparse.js
index 485ab460..c8d6ca2d 100644
--- a/app/js/tl/misskeyparse.js
+++ b/app/js/tl/misskeyparse.js
@@ -160,6 +160,15 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
}else{
disname="";
}
+ //絵文字があれば
+ Object.keys(toot.user.emojis).forEach(function(key5) {
+ var emoji = toot.user.emojis[key5];
+ var shortcode = emoji.name;
+ var emoji_url = '
';
+ var regExp = new RegExp(":" + shortcode + ":", "g");
+ dis_name = dis_name.replace(regExp, emoji_url);
+ });
if (mix == "notf") {
if (gif == "yes") {
noticeavatar = toot.user.avatarUrl;
@@ -192,24 +201,25 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
"congrats":"🎉",
"amgry":"💢",
"confused":"😥",
- "pudding":"🍮"
+ "pudding":"🍮",
+ "star":"⭐"
}
var icon=reactions[toot.reaction];
- var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding"];
- for(var i=0;i';
+ }
+ }
+ }
+ }
+ }
}else{
var icon = 'info';
}
@@ -250,19 +260,19 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = {
- body: toot.account.display_name+"(" + toot.account.acct +")"+what+"\n\n"+$.strip_tagstemp(toot.status.content),
- icon: toot.account.avatar
+ body: toot.user.name+"(" + toot.user.username +")"+what+"\n\n"+$.strip_tagstemp(toot.note.text),
+ icon: toot.user.avatarUrl
};
if(os=="darwin"){
var n = new Notification('TheDesk:'+domain, options);
}else{
ipc.send('native-notf', [
'TheDesk:'+domain,
- toot.account.display_name+"(" + toot.account.acct +")"+what+"\n\n"+$.strip_tagstemp(toot.status.content),
- toot.account.avatar,
+ toot.user.name+"(" + toot.user.username +")"+what+"\n\n"+$.strip_tagstemp(toot.note.text),
+ toot.user.avatarUrl,
"toot",
acct_id,
- toot.status.id
+ toot.note.id
]);
}
}
@@ -395,7 +405,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var emojick = toot.emojis[0];
}else{
var emojick=false;
- }
+ }
//デフォ絵文字
if(content){
//MFM
@@ -403,17 +413,35 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
content=content.replace(/`(.+)`/gi, '$1
')
content=content.replace(/(http(s)?:\/\/[\x21-\x7e]+)/gi, '$1')
content=content.replace(/\(\(\((.+)\)\)\)/gi, '$1')
- content=content.replace(/(.+)<\/motion>/gi, '$1')
+ content=content.replace(/<motion>(.+)<\/motion>/gi, '$1')
content=content.replace(/\*\*\*([^*]+)\*\*\*/gi, '$1')
content=content.replace(/\*\*([^*]+)\*\*/gi, '$1')
content=content.replace(/^(.+)\s(検索|search)$/gmi, 'search
')
content=content.replace(/\[(.+)\]\($1');
-
+ content=content.replace(/<center>/gi, '')
+ content=content.replace(/<\/center>/gi, '
')
+ content=content.replace(/<flip>(.+)<\/flip>/gi, '$1')
+ content=content.replace(/<small>(.+)<\/small>/gi, '$1')
+ content=content.replace(/<i>(.+)<\/i>/gi, '$1')
+ content=content.replace(/<spin>(.+)<\/spin>/gi, '$1')
+ content=content.replace(/\*\*(.+)\*\*/gi, '$1')
+ content=content.replace(/<jump>(.+)<\/jump>/gi, '$1')
content=twemoji.parse(content);
}else{
content="";
}
-
+ //絵文字があれば
+ if (emojick) {
+ Object.keys(toot.emojis).forEach(function(key5) {
+ var emoji = toot.emojis[key5];
+ var shortcode = emoji.name;
+ var emoji_url = '
';
+ var regExp = new RegExp(":" + shortcode + ":", "g");
+ content = content.replace(regExp, emoji_url);
+ spoil = spoil.replace(regExp, emoji_url);
+ });
+ }
if(dis_name){
dis_name=twemoji.parse(dis_name);
}else{
@@ -606,8 +634,46 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
});
poll=''+poll+'
';
}
+ /*
+
+ */
+ if(localStorage.getItem("emojiReaction_" + acct_id)=="disabled"){
+ var freeReact="hide";
+ }else{
+ var freeReact="";
+ }
//Reactions
if(toot.reactionCounts){
+ var addReact="";
+ Object.keys(toot.reactionCounts).forEach(function(keye) {
+ var thisReact=toot.reactionCounts[keye];
+ if(keye=="like"){ var defaultEmoji=true;}
+ else if(keye=="love"){ var defaultEmoji=true; }
+ else if(keye=="laugh"){ var defaultEmoji=true; }
+ else if(keye=="hmm"){ var defaultEmoji=true; }
+ else if(keye=="surprise"){ var defaultEmoji=true; }
+ else if(keye=="congrats"){ var defaultEmoji=true; }
+ else if(keye=="angry"){ var defaultEmoji=true; }
+ else if(keye=="confused"){ var defaultEmoji=true; }
+ else if(keye=="pudding"){ var defaultEmoji=true; }
+ else{
+ var obj = JSON.parse(localStorage.getItem("emoji_" + acct_id));
+ if(obj){
+ var num = obj.length;
+ var ehtml="";
+ for (i = 0; i < num; i++) {
+ var emoji = obj[i];
+ if (":"+emoji.shortcode+":"==keye) {
+ if (emoji) {
+ addReact=addReact+ '
'+thisReact+
+ '';
+ }
+ }
+ }
+ }
+ }
+ });
if(toot.reactionCounts.like){
var like=toot.reactionCounts.like;
var likehide="";
@@ -676,7 +742,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
var like=0;var love=0;var laugh=0;var hmm=0;var surprise=0;var congrats=0;var angry=0;var confused=0;var pudding=0;
var likehide="hide";var lovehide="hide";var laughhide="hide";var hmmhide="hide";var suphide="hide";var conghide="hide";var anghide="hide";var confhide="hide";var pudhide="hide";
var fullhide="hide";
- }
+ }
+ if(!addReact && likehide=="hide"&& lovehide=="hide"&& laughhide=="hide"&& hmmhide=="hide"&& suphide=="hide"&& conghide=="hide"&& anghide=="hide"&& confhide=="hide"&& pudhide=="hide"){
+ var fullhide="hide";
+ }
if(toot.myReaction){
var reacted=toot.myReaction;
}else{
@@ -687,6 +756,11 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
content='This post has no content. It may be media-only, private or deleted.';
}
var trans="";
+ if(toot.user.emojis){
+ var actemojick = toot.user.emojis[0];
+ }else{
+ var actemojick=false;
+ }
templete = templete + '' +
@@ -711,8 +785,8 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
api_spoil + ' cw_text_' + toot.id + '">' + spoil + spoiler_show +
'' +
'' + viewer + '' +
- '
'+analyze+
- '' +
+ ''+addReact+
+ '
add_box '
+ +poll + mentions + tags + ' ' +
'' +
'
'+vis+'
'+
diff --git a/app/js/tl/notification.js b/app/js/tl/notification.js
index 0a95417e..40b7b86c 100644
--- a/app/js/tl/notification.js
+++ b/app/js/tl/notification.js
@@ -60,13 +60,13 @@ function notfColumn(acct_id, tlid, sys){
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = {
- body: ct+lang_notf_new[lang],
+ body: ct+lang.lang_notf_new,
icon: localStorage.getItem("prof_"+acct_id)
};
if(os=="darwin"){
var n = new Notification('TheDesk:'+domain, options);
}else{
- ipc.send('native-notf', ['TheDesk:'+domain,ct+lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
+ ipc.send('native-notf', ['TheDesk:'+domain,ct+lang.lang_notf_new,localStorage.getItem("prof_"+acct_id)]);
}
}
@@ -233,13 +233,13 @@ function notfCommon(acct_id, tlid, sys) {
var ipc = electron.ipcRenderer;
var os = electron.remote.process.platform;
var options = {
- body: ct+lang_notf_new[lang],
+ body: ct+lang.lang_notf_new[lang],
icon: localStorage.getItem("prof_"+acct_id)
};
if(os=="darwin"){
var n = new Notification('TheDesk:'+domain, options);
}else{
- ipc.send('native-notf', ['TheDesk:'+domain,ct+lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
+ ipc.send('native-notf', ['TheDesk:'+domain,ct+lang.lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
}
}
@@ -482,23 +482,12 @@ function notfCanceler(acct){
function allNotfRead(){
console.log(localStorage.getItem("notf-fav_2"));
var multi = localStorage.getItem("multi");
- if (!multi) {
- var obj = [{
- at: localStorage.getItem("acct_0_at"),
- name: localStorage.getItem("name_0"),
- domain: localStorage.getItem("domain_0"),
- user: localStorage.getItem("user_0"),
- prof: localStorage.getItem("prof_0"),
- id: localStorage.getItem("user-id_0")
- }];
- var json = JSON.stringify(obj);
- localStorage.setItem("multi", json);
- } else {
+ if (multi) {
var obj = JSON.parse(multi);
- }
Object.keys(obj).forEach(function(key) {
console.log(key);
notfCanceler(key)
});
}
+}
allNotfRead()
\ No newline at end of file
diff --git a/app/js/tl/parse.js b/app/js/tl/parse.js
index 1f0e1541..05e97ecd 100644
--- a/app/js/tl/parse.js
+++ b/app/js/tl/parse.js
@@ -33,6 +33,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var ltr = localStorage.getItem("letters");
var gif = localStorage.getItem("gif");
var imh = localStorage.getItem("img-height");
+ if(!imh){
+ imh=200;
+ }
if(imh=="full"){
imh="auto";
}else{
@@ -757,12 +760,12 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
'
' +
'