TheDesk Miho (ver.8)

This commit is contained in:
cutls 2018-02-09 01:43:11 +09:00
parent 228fe4138a
commit 1d9a59e06f
13 changed files with 130 additions and 15 deletions

View File

@ -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)(アスタルテ)公認クライアントです。

View File

@ -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/言語

View File

@ -34,6 +34,7 @@
アカウントを追加<br>
<div id="add">
<input type="text" id="url" style="width:70%" placeholder="mstdn.jp">
<div id="ins-suggest"></div>
<button class="btn waves-effect" onclick="instance()">Login</button><br>
<span style="font-family:Open Sans;">Supports</span>
<div id="support"></div>
@ -56,5 +57,6 @@
マストドンアップデート:<span id="ins-sys"></span><br>
<script type="text/javascript" src="./js/login/manager.js"></script>
<script type="text/javascript" src="./js/login/instance.js"></script>
<script type="text/javascript" src="./js/tl/date.js"></script>
<script type="text/javascript" src="./js/platform/end.js"></script>

View File

@ -23,7 +23,7 @@
<script type="text/javascript" src="./js/common/keyshortcut.js"></script>
<script type="text/javascript" src="./js/common/modal.js"></script>
<script>
var ver="Miho (ver.7)";
var ver="Miho (ver.8)";
//betaを入れるとバージョンチェックしない
//var ver="beta";
var acct_id=0;
@ -34,6 +34,7 @@ var tlid=0;
<!--最初にログインする-->
ログインしたいインスタンスのアドレス<br>
<input type="text" id="url" style="width:70%" placeholder="mstdn.jp">
<div id="ins-suggest"></div>
<button class="btn waves-effect" onclick="instance()">Login</button><br>
<span style="font-family:Open Sans;">Supports</span>
@ -110,10 +111,11 @@ var tlid=0;
<a href="setting.html" class="setting nex"><i class="material-icons nex" title="設定">settings</i></a>
<a href="acct.html"><i class="material-icons nex" title="アカウント管理">account_circle</i></a>
<a href="index.html" class="setting nex"><i class="material-icons nex" title="スーパーリロード">refresh</i></a>
<a onclick="window.open('https://desk.cutls.com/labo.php');" class="setting nex" target="_blank" id="ranking-btn" style="display:none;"><i class="material-icons nex" title="アスタルテランキング">timeline</i></a>
<div class="row" style="margin-bottom:0;">
<span class="sml"><span class="gray">画面内どこでもドラッグ・アンド・ドロップできます。</span><br></span>アカウント選択</span><br>
<div class="input-field">
<select id="post-acct-sel" class="acct-sel">
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()">
</select>
</div>
@ -362,6 +364,7 @@ var tlid=0;
<script type="text/javascript" src="./js/tl/src.js"></script>
<script type="text/javascript" src="./js/ui/layout.js"></script>
<script type="text/javascript" src="./js/login/login.js"></script>
<script type="text/javascript" src="./js/login/instance.js"></script>
<script type="text/javascript" src="./js/ui/post-box.js"></script>
<script type="text/javascript" src="./js/ui/img.js"></script>
<script type="text/javascript" src="./js/ui/theme.js"></script>

View File

@ -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:開閉

49
app/js/login/instance.js Normal file
View File

@ -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 + ' <a onclick="login(\'' + url.name + '\')" class="pointer">' + url.name + '</a> ';
});
$("#ins-suggest").html(urls);
}
});
}
oldSuggest = suggest;
prev_value = new_val;
}
}, 1000);
}, false);
input.addEventListener("blur", function() {
window.clearInterval(timer);
}, false);

View File

@ -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);
}
});

View File

@ -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);

View File

@ -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();

View File

@ -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);

View File

@ -181,7 +181,7 @@ function parse(obj, mix, acct_id) {
',\''+id+'\')" class="add-show pointer">URL解析</a></div><span class="cbadge"><i class="fa fa-clock-o"></i>' +
date(toot.created_at, datetype) + '</span>' +
'<span class="cbadge">via ' + via +
'<help class="white-text">どこから投稿したか</help></span>' + mentions + tags +
'</span>' + mentions + tags +
'<div style="padding:0; margin:0; top:-20px; display:flex; justify-content:space-around; width:500px; max-width:100%; ">' +
'<div><a onclick="re(\'' + toot.id + '\',\'' + toot.account.acct + '\',' +
acct_id +

View File

@ -35,6 +35,7 @@
localStorage.setItem("prof_" + key, acct.prof);
localStorage.setItem("domain_" + key, acct.domain);
localStorage.setItem(acct.domain + "_at", acct.at);
ckdb(key);
});
}
var col = localStorage.getItem("column");

View File

@ -1,6 +1,6 @@
{
"name": "TheDesk",
"version": "11.7.0",
"version": "11.8.0",
"description": "TheDesk on Mastodonはシンプルと多機能を両立したデスクトップ向けクライアントです",
"main": "main.js",
"scripts": {