diff --git a/LICENSE.md b/LICENSE.md index 41cfd2b6..25a8e25a 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,10 +1,14 @@ -# TheDesk LICENSE v1 +# TheDesk LICENSE v2 (C)TheDesk on Mastodon 2018 all rights reserved. Website:[https://desk.cutls.com](https://desk.cutls.com) 以下のライセンスに基づき当ソフトウェアを公開します。 - 以下の条件の範囲内で再頒布を認めます。 - - 必ず上記コピーライトを改変無く含めること。(必ず年度が2018であること) - - 改変しない場合、必ずソフトウェアのタイトルが"TheDesk"であり、ウィンドウのタイトルに"TheDesk"が常に表示されている状態にすること。 - - 改変する場合、必ずソフトウェアのタイトルの末尾が"Powered by TheDesk"であり、ウィンドウのタイトルに"TheDesk"が常に表示されている状態にすること。また、ユーザーの見えるところにTheDesk [使用バージョン名]を表示すること。 + - 必ず上記コピーライトと本ライセンス条項を改変無く含めること。(必ず年度が2018であること。他言語翻訳を付与する場合も原文を表記。) + - 変更を含め全てのコードを公開すること。商用利用やライセンスの変更は認めない。 + - プラットフォームはElectronやCordova、またはそれに準ずるものであること。Webアプリケーションとしての配布は認めない。 + - 改変しない場合(他のプラットフォームに移植等)、必ずソフトウェアのタイトルが"TheDesk"であり、アイコンを変更せず、またウィンドウのタイトルに"TheDesk"が常に表示されている状態にすること。 + - 改変する場合、必ずソフトウェアのタイトルの末尾が"Powered by TheDesk"であり、ユーザーの見えるところにTheDesk [使用バージョン名]を表示すること。 + - ロゴはTheDeskを想起させるものであること。ソフトの改変を行う場合はアイコンを必ず変更すること。 - このソフトの使用、再頒布に伴う一切の責任をTheDeskは負いません。 +- [https://desk.cutls.com](https://desk.cutls.com)で公式に頒布されるソフトのみ[kirishima.cloud](https://desk.cutls.com)(アスタルテ)公認クライアントです。 \ No newline at end of file diff --git a/README.md b/README.md index 100af7e7..af900157 100644 --- a/README.md +++ b/README.md @@ -5,13 +5,13 @@ Download:[TheDesk](https://desk.cutls.com) ## License -[TheDesk LICENSE v1](https://github.com/cutls/TheDesk/blob/master/LICENSE.md) +[TheDesk LICENSE v2](https://github.com/cutls/TheDesk/blob/master/LICENSE.md) ## Component/構成 app:Raw files(you can download to modify or check) -app:そのままのファイル +app:そのままのファイル。ダウンロード→テスト用 ## Language/言語 diff --git a/app/acct.html b/app/acct.html index 487fa81f..80f92993 100644 --- a/app/acct.html +++ b/app/acct.html @@ -34,6 +34,7 @@ アカウントを追加
+

Supports
@@ -56,5 +57,6 @@ マストドンアップデート:
+ \ No newline at end of file diff --git a/app/index.html b/app/index.html index abe21b52..502a39c8 100644 --- a/app/index.html +++ b/app/index.html @@ -23,7 +23,7 @@ + diff --git a/app/js/common/keyshortcut.js b/app/js/common/keyshortcut.js index af6350b4..0a97f796 100644 --- a/app/js/common/keyshortcut.js +++ b/app/js/common/keyshortcut.js @@ -22,11 +22,19 @@ $(function($) { hide(); return false; } - //Esc:消す + //F5リロード if (e.keyCode === 116) { location.href = "index.html"; return false; } + //Ctrl+R:ランキング + if (event.ctrlKey) { + if (e.keyCode === 82) { + if(localStorage.getItem("kirishima")){ + window.open("https://desk.cutls.com/labo.php"); + } + } + } //input/textareaにフォーカスなし時 if (!hasFocus && !hasFocus2) { //X:開閉 diff --git a/app/js/login/instance.js b/app/js/login/instance.js new file mode 100644 index 00000000..80da1248 --- /dev/null +++ b/app/js/login/instance.js @@ -0,0 +1,49 @@ +//入力時にハッシュタグと@をサジェスト +var timer = null; + +var input = document.getElementById("url"); + +var prev_val = input.value; +var oldSuggest; +var suggest; +input.addEventListener("focus", function() { + $("#ins-suggest").html(""); + window.clearInterval(timer); + timer = window.setInterval(function() { + var new_val = input.value; + if (prev_val != new_val) { + if(new_val.length > 3){ + var start = "https://instances.social/api/1.0/instances/search?q=" + new_val; + fetch(start, { + method: 'GET', + headers: { + 'content-type': 'application/json', + 'Authorization': 'Bearer tC8F6xWGWBUwGScyNevYlx62iO6fdQ4oIK0ad68Oo7ZKB8GQdGpjW9TKxBnIh8grAhvd5rw3iyP9JPamoDpeLQdz62EToPJUW99hDx8rfuJfGdjQuimZPTbIOx0woA5M' + }, + }).then(function(response) { + return response.json(); + }).catch(function(error) { + todo(error); + console.error(error); + }).then(function(json) { + console.log(json); + if (!json.error) { + + var urls="もしかして:"; + Object.keys(json.instances).forEach(function(key) { + var url = json.instances[key]; + urls = urls + ' ' + url.name + ' '; + }); + $("#ins-suggest").html(urls); + } + }); + } + oldSuggest = suggest; + prev_value = new_val; + } + }, 1000); +}, false); + +input.addEventListener("blur", function() { + window.clearInterval(timer); +}, false); diff --git a/app/js/login/login.js b/app/js/login/login.js index 6589e119..bb29712e 100644 --- a/app/js/login/login.js +++ b/app/js/login/login.js @@ -1,10 +1,12 @@ /*ログイン処理・認証までのJS*/ //最初に読むやつ +//アスタルテ判定初期化 +localStorage.removeItem("kirishima") function ck() { var domain = localStorage.getItem("domain_0"); var at = localStorage.getItem(domain + "_at"); if (at) { - ckdb(); + ckdb(0); $("#tl").show(); parseColumn(); multi(); @@ -138,8 +140,12 @@ function getdata() { } //TheDesk独自のマストドンDBでMarkdownやBBCodeの対応、文字数制限をチェック -function ckdb() { +function ckdb(acct_id) { var domain = localStorage.getItem("domain_" + acct_id); + if(domain=="kirishima.cloud"){ + localStorage.setItem("kirishima", "true"); + $("#ranking-btn").show(); + } var at = localStorage.getItem(domain + "_at"); var bbcode = domain + "_bbcode"; var letters = domain + "_letters"; @@ -159,12 +165,14 @@ function ckdb() { console.log(json[letters]); if (json[bbcode]) { if (json[bbcode] == "enabled") { - + localStorage.setItem("bb_" + acct_id, "true"); } else { + localStorage.removeItem("bb_" + acct_id); $("[data-activates='bbcode']").addClass("disabled"); $("[data-activates='bbcode']").prop("disabled", true); } } else { + localStorage.removeItem("bb_" + acct_id); $("[data-activates='bbcode']").addClass("disabled"); $("[data-activates='bbcode']").addClass("disabled", true); } @@ -172,7 +180,10 @@ function ckdb() { $("#textarea").attr("data-length", json[letters]); } else {} if (json[domain + "_markdown"] == "enabled") { + localStorage.setItem("md_" + acct_id, "true"); $(".markdown").show(); + }else{ + localStorage.removeItem("bb_" + acct_id); } }); diff --git a/app/js/post/bb-md.js b/app/js/post/bb-md.js index 9500bdbd..1e42e4c8 100644 --- a/app/js/post/bb-md.js +++ b/app/js/post/bb-md.js @@ -1,4 +1,20 @@ //BBCodeとMarkdownの入力・パーサー +//アカウント変えた時にBBとかMDとか +function mdCheck(){ + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("bb_"+acct_id) && !localStorage.getItem("md_"+acct_id)){ + $(".markdown").addClass("hide"); + $(".anti-markdown").addClass("hide"); + }else{ + $(".markdown").removeClass("hide"); + $(".anti-markdown").addClass("hide"); + } + if($(".markdown").hasClass("hide")){ + localStorage.setItem("md","hide"); + }else{ + localStorage.removeItem("md"); + } +} //BOXのトグルボタン function mdToggle(){ $(".markdown").toggleClass("hide"); @@ -17,6 +33,10 @@ if(localStorage.getItem("md")=="hide"){ } //タグを選んだ時に(BB版) function tagsel(tag){ + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("bb_"+acct_id)){ + return false; + } if(tag=="large" || tag=="size" || tag=="color" || tag=="colorhex"){ var sub=$("#"+tag).val(); var sub = sub.replace( /#/g , "" ) ; @@ -52,6 +72,10 @@ function nl2br(str) { } //テキストボックスで選択したやつをタグで囲む(BB版) function surroundHTML(tagS,tagE) { + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("bb_"+acct_id)){ + return false; + } var target = document.getElementById("textarea"); var pos = getAreaRange(target); @@ -75,6 +99,10 @@ function surroundHTML(tagS,tagE) { $("#textarea").focus(); } function surroundMD(tagS,tagE,ck,br) { + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("md_"+acct_id)){ + return false; + } var target = document.getElementById("textarea"); var pos = getAreaRange(target); @@ -113,6 +141,10 @@ function getAreaRange(obj) { //Markdownのリンク挿入 function markdownLink(){ + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("md_"+acct_id)){ + return false; + } var linkIns="["+$("#linkt").val()+"]"+"("+$("#link2").val()+")"; if(linkIns!="[]()"){ $("#textarea").val($("#textarea").val()+linkIns); @@ -123,6 +155,10 @@ function markdownLink(){ } //Markdownのimg挿入 function markdownImage(){ + var acct_id = $("#post-acct-sel").val(); + if(!localStorage.getItem("md_"+acct_id)){ + return false; + } var imgIns="!["+$("#image").val()+"]"+"("+$("#image2").val()+")"; if(imgIns!="![]()"){ $("#textarea").val($("#textarea").val()+imgIns); diff --git a/app/js/post/emoji.js b/app/js/post/emoji.js index dc7a73f0..b5243ae1 100644 --- a/app/js/post/emoji.js +++ b/app/js/post/emoji.js @@ -107,7 +107,7 @@ function emojiInsert(code, del) { emoji(); } else { var regExp = new RegExp(del, "g"); - var now = now.replace(now, ""); + var now = now.replace(regExp, ""); $("#textarea").val(now + " " + code); } $("#textarea").focus(); diff --git a/app/js/post/suggest.js b/app/js/post/suggest.js index 06f3aa1d..9207efb4 100644 --- a/app/js/post/suggest.js +++ b/app/js/post/suggest.js @@ -19,6 +19,7 @@ input.addEventListener("focus", function() { } else if (acct[1]) { var q = acct[1]; } else { + $("#suggest").html(""); return; } var domain = localStorage.getItem("domain_" + acct_id); diff --git a/app/js/tl/parse.js b/app/js/tl/parse.js index b17ebc2e..91c2a785 100644 --- a/app/js/tl/parse.js +++ b/app/js/tl/parse.js @@ -181,7 +181,7 @@ function parse(obj, mix, acct_id) { ',\''+id+'\')" class="add-show pointer">URL解析
' + date(toot.created_at, datetype) + '' + 'via ' + via + - 'どこから投稿したか' + mentions + tags + + '' + mentions + tags + '
' + '