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解析