TheDesk Airi (ver.8)
This commit is contained in:
parent
d6acb0bebc
commit
a84a1da29b
16
LATEST.md
16
LATEST.md
|
@ -1,19 +1,19 @@
|
||||||
## For Astarte(kirishima.cloud), My Primary Instance
|
## For Astarte(kirishima.cloud), My Primary Instance
|
||||||
|
|
||||||
TheDesk :thedesk: Airi (ver.7)
|
TheDesk :thedesk: Airi (ver.8)
|
||||||
・バグフィックス
|
・バグフィックス
|
||||||
・カスタム絵文字検索
|
・UI改善
|
||||||
・Pleroma暫定対応(投稿・表示のみ。)
|
・キーボードショートカット追加・変更
|
||||||
・個別インスタンスの対応
|
・他垢からふぁぼ・フォローなどが可能に
|
||||||
https://thedesk.top
|
https://thedesk.top
|
||||||
:github: https://github.com/cutls/TheDesk #Desk #DeskUpdate
|
:github: https://github.com/cutls/TheDesk #Desk #DeskUpdate
|
||||||
|
|
||||||
## For Vanilla Instances
|
## For Vanilla Instances
|
||||||
|
|
||||||
Windows/LinuxクライアントTheDesk Airi (ver.7)リリース
|
Windows/LinuxクライアントTheDesk Airi (ver.8)リリース
|
||||||
・バグフィックス
|
・バグフィックス
|
||||||
・カスタム絵文字検索
|
・UI改善
|
||||||
・Pleroma暫定対応(投稿・表示のみ。)
|
・キーボードショートカット追加・変更
|
||||||
・個別インスタンスの対応
|
・他垢からふぁぼ・フォローなどが可能に
|
||||||
TheDeskはマルチカラム,マルチアカウントはもちろんのこと,なにかとマストドンライフをシンプルに効率化するクライアントです。
|
TheDeskはマルチカラム,マルチアカウントはもちろんのこと,なにかとマストドンライフをシンプルに効率化するクライアントです。
|
||||||
https://thedesk.top
|
https://thedesk.top
|
|
@ -5,6 +5,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>503 Service Unavailable</h1>
|
<h1>503 Service Unavailable</h1>
|
||||||
TheDeskは2017年12月30日 23:59に終了したCroudiaというSNSのクライアントから始まりました。<br>
|
<u>4月1日</u>よりTheDeskはCroudiaクライアントとして生まれ変わりました。<br><br><br><br>
|
||||||
|
TheDeskは2017年12月30日 23:59に終了したCroudiaというSNSのクライアントから始まりました。(Since 2016-5 as CroudiaDeck)<br>
|
||||||
<a onclick="localStorage.setItem('sincere','true'); location.href='index.html';" style="cursor:pointer;">TheDeskに戻る</a>
|
<a onclick="localStorage.setItem('sincere','true'); location.href='index.html';" style="cursor:pointer;">TheDeskに戻る</a>
|
||||||
</body>
|
</body>
|
|
@ -27,7 +27,7 @@
|
||||||
<script type="text/javascript" src="./js/ui/jquery-ui.min.js"></script>
|
<script type="text/javascript" src="./js/ui/jquery-ui.min.js"></script>
|
||||||
<script>
|
<script>
|
||||||
//必ずアプデ時のremove instance消して!
|
//必ずアプデ時のremove instance消して!
|
||||||
var ver="Airi (ver.7)";
|
var ver="Airi (ver.8)";
|
||||||
//betaを入れるとバージョンチェックしない
|
//betaを入れるとバージョンチェックしない
|
||||||
//var ver="beta";
|
//var ver="beta";
|
||||||
var acct_id=0;
|
var acct_id=0;
|
||||||
|
@ -166,7 +166,7 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
<div class="small-menu">
|
<div class="small-menu">
|
||||||
<a href="setting.html" class="nex waves-effect">
|
<a href="setting.html" class="nex waves-effect">
|
||||||
<i class="material-icons nex" title="設定" data-trans-title="setting">settings</i>
|
<i class="material-icons nex" title="設定(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
|
||||||
<span class="side-label" data-trans="setting">設定</span>
|
<span class="side-label" data-trans="setting">設定</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -190,7 +190,7 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
<div class="small-menu">
|
<div class="small-menu">
|
||||||
<a href="acct.html" class="nex waves-effect">
|
<a href="acct.html" class="nex waves-effect">
|
||||||
<i class="material-icons" title="アカウントマネージャー" data-trans-title="manager">account_circle</i>
|
<i class="material-icons" title="アカウントマネージャー(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
|
||||||
<span class="side-label" data-trans="manager_short">管理</span>
|
<span class="side-label" data-trans="manager_short">管理</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -224,7 +224,7 @@ var tlid=0;
|
||||||
</span>
|
</span>
|
||||||
<br>
|
<br>
|
||||||
<a id="clear" class="setting nex waves-effect">
|
<a id="clear" class="setting nex waves-effect">
|
||||||
<i class="material-icons nex mize" title="トゥートボックスのクリア" data-trans-title="post_box_clear">clear</i>
|
<i class="material-icons nex mize" title="トゥートボックスのクリア(Ctrl+Shit+C)" data-trans-title="post_box_clear">clear</i>
|
||||||
</a>
|
</a>
|
||||||
<a onclick="zoomBox()" class="setting nex waves-effect">
|
<a onclick="zoomBox()" class="setting nex waves-effect">
|
||||||
<i class="material-icons nex mize" title="ボックスの拡大・縮小(E)" data-trans-title="post_box_zoom">zoom_out_map</i>
|
<i class="material-icons nex mize" title="ボックスの拡大・縮小(E)" data-trans-title="post_box_zoom">zoom_out_map</i>
|
||||||
|
@ -236,7 +236,7 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
<span id="radio-sta" class="radio"></span>
|
<span id="radio-sta" class="radio"></span>
|
||||||
<div id="radio-view" class="hide radio mize">
|
<div id="radio-view" class="hide radio mize">
|
||||||
<a onclick="nowplaying()" class="pointer"><i class="fa fa-spotify"></i>NowPlaying</a>
|
<a onclick="nowplaying()" class="pointer" title="Ctrl+Shift+N"><i class="fa fa-spotify"></i>NowPlaying</a>
|
||||||
<span class="cbadge pointer waves-effect" onclick="Rplay('https://listen.moe/stream','Listen.moe')" data-name="Listen.moe">Listen.moe</span>
|
<span class="cbadge pointer waves-effect" onclick="Rplay('https://listen.moe/stream','Listen.moe')" data-name="Listen.moe">Listen.moe</span>
|
||||||
<span class="cbadge pointer waves-effect" onclick="Rplay('http://itori.animenfo.com:443/;','AnimeNfo Radio')" data-name="AnimeNfo Radio">AnimeNfo Radio</span>
|
<span class="cbadge pointer waves-effect" onclick="Rplay('http://itori.animenfo.com:443/;','AnimeNfo Radio')" data-name="AnimeNfo Radio">AnimeNfo Radio</span>
|
||||||
<span class="cbadge pointer waves-effect" onclick="Rplay('http://hyades.shoutca.st:8043/stream','LoFi hip hop Radio')" data-name="LoFi hip hop Radio">LoFi hip hop Radio</span>
|
<span class="cbadge pointer waves-effect" onclick="Rplay('http://hyades.shoutca.st:8043/stream','LoFi hip hop Radio')" data-name="LoFi hip hop Radio">LoFi hip hop Radio</span>
|
||||||
|
@ -263,7 +263,7 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
<div class="mize" style="float:left;">
|
<div class="mize" style="float:left;">
|
||||||
<a onclick="profShow()" style="vertical-align:-1.5rem;">
|
<a onclick="profShow()" style="vertical-align:-1.5rem;">
|
||||||
<i class="material-icons nex pointer mize waves-effect" title="選択中のプロフィール表示" data-trans-title="post_box_prof">account_circle</i>
|
<i class="material-icons nex pointer mize waves-effect" title="選択中のプロフィール表示(Ctrl+Shift+P)" data-trans-title="post_box_prof">account_circle</i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<!--Markdown-->
|
<!--Markdown-->
|
||||||
|
@ -320,6 +320,7 @@ var tlid=0;
|
||||||
<span class="sml gray pointer more-show anti-markdown hide mize">
|
<span class="sml gray pointer more-show anti-markdown hide mize">
|
||||||
<a onclick="mdToggle()">Markdownエディタを表示</a>
|
<a onclick="mdToggle()">Markdownエディタを表示</a>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
<span id="suggest"></span>
|
<span id="suggest"></span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -483,6 +484,21 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
他のアカウントを使用(<i class="fa fa-retweet"></i>/<i class="fa fa-star"></i>の解除はできません)<br>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s4">
|
||||||
|
<select id="status-acct-sel" class="acct-sel"></select>
|
||||||
|
</div>
|
||||||
|
<div class="col s2">
|
||||||
|
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i class="fa fa-share left"></i>返信</button>
|
||||||
|
</div>
|
||||||
|
<div class="col s2">
|
||||||
|
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fa fa-retweet left"></i>ブースト</button>
|
||||||
|
</div>
|
||||||
|
<div class="col s3">
|
||||||
|
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fa fa-star left"></i>お気に入り登録</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div id="toot-tools">
|
<div id="toot-tools">
|
||||||
</div>
|
</div>
|
||||||
<div id="toot-after">
|
<div id="toot-after">
|
||||||
|
@ -526,31 +542,34 @@ var tlid=0;
|
||||||
<div class="col s12" id="my-data-nav">
|
<div class="col s12" id="my-data-nav">
|
||||||
<ul class="custom-tabs transparent">
|
<ul class="custom-tabs transparent">
|
||||||
<li class="custom-tab col my-data-width active-back">
|
<li class="custom-tab col my-data-width active-back">
|
||||||
<a go="#his-tl">Timeline</a>
|
<a go="#his-tl">タイムライン</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width">
|
<li class="custom-tab col my-data-width">
|
||||||
<a go="#his-follow-list">Follows</a>
|
<a go="#his-follow-list">フォロー</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width">
|
<li class="custom-tab col my-data-width">
|
||||||
<a go="#his-follower-list">Followers</a>
|
<a go="#his-follower-list">フォロワー</a>
|
||||||
|
</li>
|
||||||
|
<li class="custom-tab col my-data-width only-his-data">
|
||||||
|
<a go="#his-action">他アカウントで操作</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-fav-list">Favorites</a>
|
<a go="#his-fav-list">お気に入り登録</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-blocking-list">Blocking</a>
|
<a go="#his-blocking-list">ブロック</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-muting-list">Muting</a>
|
<a go="#his-muting-list">ミュート</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-domain-list">Domain Blocking</a>
|
<a go="#his-domain-list">ドメインブロック</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-prof-list">Edit Profile</a>
|
<a go="#his-prof-list">プロフィール編集</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="custom-tab col my-data-width only-my-data">
|
<li class="custom-tab col my-data-width only-my-data">
|
||||||
<a go="#his-request-list">Follow Request</a>
|
<a go="#his-request-list">フォローリクエスト</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -564,11 +583,16 @@ var tlid=0;
|
||||||
</div>
|
</div>
|
||||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="flw('--now','more')">もっと</button>
|
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="flw('--now','more')">もっと</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="his-follower-list" class="col s12 tab-content">
|
<div id="his-follower-list" class="col s12 tab-content">
|
||||||
<div id="his-follower-list-contents" class="cont-series">
|
<div id="his-follower-list-contents" class="cont-series">
|
||||||
</div>
|
</div>
|
||||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="fer('--now','more')">もっと</button>
|
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="fer('--now','more')">もっと</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="his-action" class="col s12 tab-content">
|
||||||
|
他のアカウントを使用してフォロー(解除はできません)<br>
|
||||||
|
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>で
|
||||||
|
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">フォロー</a>
|
||||||
|
</div>
|
||||||
<div id="his-fav-list" class="col s12 tab-content">
|
<div id="his-fav-list" class="col s12 tab-content">
|
||||||
<div id="his-fav-list-contents" class="cont-series">
|
<div id="his-fav-list-contents" class="cont-series">
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -42,6 +42,20 @@ $(function($) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Ctrl+Sift+C:全消し
|
||||||
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
|
if (e.keyCode === 67) {
|
||||||
|
clear();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Ctrl+Sift+N:NowPlaying
|
||||||
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
|
if (e.keyCode === 78) {
|
||||||
|
nowplaying()
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
//input/textareaにフォーカスなし時
|
//input/textareaにフォーカスなし時
|
||||||
if (!hasFocus && !hasFocus2) {
|
if (!hasFocus && !hasFocus2) {
|
||||||
//X:開閉
|
//X:開閉
|
||||||
|
@ -74,10 +88,24 @@ $(function($) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//Sift+C:全消し
|
//Ctrl+Sift+S:設定
|
||||||
if (event.shiftKey) {
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
if (e.keyCode === 67) {
|
if (e.keyCode === 83) {
|
||||||
clear();
|
location.href = "setting.html";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Ctrl+Sift+M:アカマネ
|
||||||
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
|
if (e.keyCode === 77) {
|
||||||
|
location.href = "acct.html";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Ctrl+Sift+P:プロフ
|
||||||
|
if (event.ctrlKey && event.shiftKey) {
|
||||||
|
if (e.keyCode === 80) {
|
||||||
|
profShow()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -377,9 +377,10 @@ function multi() {
|
||||||
'" class="left circle" ' + sel + '>' + acct.user + '@' + acct.domain +
|
'" class="left circle" ' + sel + '>' + acct.user + '@' + acct.domain +
|
||||||
'</option>';
|
'</option>';
|
||||||
$(".acct-sel").append(templete);
|
$(".acct-sel").append(templete);
|
||||||
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>');
|
|
||||||
$('select').material_select('update');
|
|
||||||
});
|
});
|
||||||
|
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>');
|
||||||
|
$('select').material_select('update');
|
||||||
}
|
}
|
||||||
|
|
||||||
//バージョンエンコ
|
//バージョンエンコ
|
||||||
|
|
|
@ -93,4 +93,4 @@ function nano(){
|
||||||
var electron = require("electron");
|
var electron = require("electron");
|
||||||
var ipc = electron.ipcRenderer;
|
var ipc = electron.ipcRenderer;
|
||||||
ipc.send('nano', "");
|
ipc.send('nano', "");
|
||||||
}
|
}
|
|
@ -16,9 +16,9 @@ function mdCheck(){
|
||||||
}
|
}
|
||||||
var domain = localStorage.getItem("domain_" + acct_id);
|
var domain = localStorage.getItem("domain_" + acct_id);
|
||||||
if(domain=="mstdn.y-zu.org"){
|
if(domain=="mstdn.y-zu.org"){
|
||||||
//$("#private-button").text("限定公開(Yづドン!)");
|
$("#private-button").text("限定公開(Yづドン!)");
|
||||||
}else{
|
}else{
|
||||||
//$("#private-button").text("非公開(Private)");
|
$("#private-button").text("非公開(Private)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//BOXのトグルボタン
|
//BOXのトグルボタン
|
||||||
|
|
|
@ -26,7 +26,7 @@ function post() {
|
||||||
var nsfw = "false";
|
var nsfw = "false";
|
||||||
}
|
}
|
||||||
var vis = $("#vis").text();
|
var vis = $("#vis").text();
|
||||||
if(vis!="public"){
|
if(vis!="inherit"){
|
||||||
toot.visibility=vis;
|
toot.visibility=vis;
|
||||||
}
|
}
|
||||||
if ($("#cw").hasClass("cw-avail")) {
|
if ($("#cw").hasClass("cw-avail")) {
|
||||||
|
|
|
@ -9,4 +9,11 @@ function re(id,at,acct_id,mode){
|
||||||
$('select').material_select();
|
$('select').material_select();
|
||||||
$("#textarea").attr("placeholder","返信モードです。クリアするときはShift+Cを押してください。");
|
$("#textarea").attr("placeholder","返信モードです。クリアするときはShift+Cを押してください。");
|
||||||
vis(mode);
|
vis(mode);
|
||||||
|
}
|
||||||
|
function reEx(id){
|
||||||
|
$('#tootmodal').modal('close');
|
||||||
|
var at=$("#tootmodal").attr("data-user");
|
||||||
|
var acct_id = $("#status-acct-sel").val();
|
||||||
|
var mode=$("#tootmodal .vis-data").attr("data-vis");
|
||||||
|
re(id,at,acct_id,mode);
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
//お気に入り登録やブースト等、フォローやブロック等
|
//お気に入り登録やブースト等、フォローやブロック等
|
||||||
//お気に入り登録
|
//お気に入り登録
|
||||||
function fav(id, acct_id) {
|
function fav(id, acct_id, remote) {
|
||||||
if ($("#pub_" + id).hasClass("faved")) {
|
if ($("#pub_" + id).hasClass("faved")) {
|
||||||
var flag = "unfavourite";
|
var flag = "unfavourite";
|
||||||
} else {
|
} else {
|
||||||
|
@ -23,6 +23,7 @@ function fav(id, acct_id) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}).then(function(json) {
|
}).then(function(json) {
|
||||||
console.log(json);
|
console.log(json);
|
||||||
|
if(!remote){
|
||||||
//APIのふぁぼカウントがおかしい
|
//APIのふぁぼカウントがおかしい
|
||||||
if ($("[toot-id=" + id + "] .fav_ct").text() == json.favourites_count){
|
if ($("[toot-id=" + id + "] .fav_ct").text() == json.favourites_count){
|
||||||
if(flag=="unfavourite"){
|
if(flag=="unfavourite"){
|
||||||
|
@ -46,11 +47,14 @@ function fav(id, acct_id) {
|
||||||
$("[toot-id=" + id +"]").addClass("faved");
|
$("[toot-id=" + id +"]").addClass("faved");
|
||||||
$(".fav_" + id).addClass("yellow-text");
|
$(".fav_" + id).addClass("yellow-text");
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
Materialize.toast("お気に入り登録しました。インスタンスが違うときは時間がかかる場合があります。", 1000);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//ブースト
|
//ブースト
|
||||||
function rt(id, acct_id) {
|
function rt(id, acct_id, remote) {
|
||||||
if ($("#pub_" + id).hasClass("rted")) {
|
if ($("#pub_" + id).hasClass("rted")) {
|
||||||
var flag = "unreblog";
|
var flag = "unreblog";
|
||||||
} else {
|
} else {
|
||||||
|
@ -73,6 +77,7 @@ function rt(id, acct_id) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}).then(function(json) {
|
}).then(function(json) {
|
||||||
console.log(json);
|
console.log(json);
|
||||||
|
if(!remote){
|
||||||
$("[toot-id=" + id + "] .fav_ct").text(json.favourites_count);
|
$("[toot-id=" + id + "] .fav_ct").text(json.favourites_count);
|
||||||
if (!json.reblog) {
|
if (!json.reblog) {
|
||||||
if(flag=="unreblog"){
|
if(flag=="unreblog"){
|
||||||
|
@ -92,21 +97,28 @@ function rt(id, acct_id) {
|
||||||
$("[toot-id=" + id +"]").addClass("rted");
|
$("[toot-id=" + id +"]").addClass("rted");
|
||||||
$(".rt_" + id).addClass("teal-text");
|
$(".rt_" + id).addClass("teal-text");
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
Materialize.toast("ブーストしました。インスタンスが違うときは時間がかかる場合があります。", 1000);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//フォロー
|
//フォロー
|
||||||
function follow(acct_id) {
|
function follow(acct_id,remote) {
|
||||||
if (!acct_id) {
|
if (!acct_id && acct_id!="selector") {
|
||||||
var acct_id = $('#his-data').attr("use-acct");
|
var acct_id = $('#his-data').attr("use-acct");
|
||||||
|
}else if (acct_id=="selector") {
|
||||||
|
var acct_id = $("#user-acct-sel").val();
|
||||||
}
|
}
|
||||||
var id = $("#his-data").attr("user-id");
|
if (!remote && $("#his-data").hasClass("following")) {
|
||||||
var remote = $("#his-data").attr("remote");
|
|
||||||
if ($("#his-data").hasClass("following")) {
|
|
||||||
var flag = "unfollow";
|
var flag = "unfollow";
|
||||||
} else {
|
} else {
|
||||||
var flag = "follow";
|
var flag = "follow";
|
||||||
}
|
}
|
||||||
|
var id = $("#his-data").attr("user-id");
|
||||||
|
if(!remote){
|
||||||
|
var remote = $("#his-data").attr("remote");
|
||||||
|
}
|
||||||
var domain = localStorage.getItem("domain_" + acct_id);
|
var domain = localStorage.getItem("domain_" + acct_id);
|
||||||
var at = localStorage.getItem(domain + "_at");
|
var at = localStorage.getItem(domain + "_at");
|
||||||
if(remote=="true" && flag=="follow"){
|
if(remote=="true" && flag=="follow"){
|
||||||
|
@ -352,4 +364,35 @@ function empUser(){
|
||||||
function tootUriCopy(url){
|
function tootUriCopy(url){
|
||||||
execCopy(url);
|
execCopy(url);
|
||||||
Materialize.toast("トゥートURLをコピーしました", 1500);
|
Materialize.toast("トゥートURLをコピーしました", 1500);
|
||||||
|
}
|
||||||
|
|
||||||
|
//他のアカウントで…
|
||||||
|
function staEx(mode){
|
||||||
|
var url=$("#tootmodal").attr("data-url");
|
||||||
|
var acct_id = $("#status-acct-sel").val();
|
||||||
|
var domain = localStorage.getItem("domain_" + acct_id);
|
||||||
|
var at = localStorage.getItem(domain + "_at");
|
||||||
|
var start = "https://" + domain + "/api/v1/search?resolve=true&q="+url
|
||||||
|
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) {
|
||||||
|
var id=json.statuses[0].id;
|
||||||
|
if(mode=="rt"){
|
||||||
|
rt(id, acct_id, 'remote')
|
||||||
|
}else if(mode=="fav"){
|
||||||
|
fav(id, acct_id, 'remote')
|
||||||
|
}else if(mode=="reply"){
|
||||||
|
reEx(id)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
|
@ -3,28 +3,6 @@ function details(id, acct_id, tlid) {
|
||||||
$(".toot-reset").html("データなし");
|
$(".toot-reset").html("データなし");
|
||||||
var html = $("#timeline_"+tlid+" #pub_" + id).html();
|
var html = $("#timeline_"+tlid+" #pub_" + id).html();
|
||||||
$("#toot-this").html(html);
|
$("#toot-this").html(html);
|
||||||
if(!$("#timeline_"+tlid+" #pub_" + id).length){
|
|
||||||
console.log("API Using");
|
|
||||||
var domain = localStorage.getItem("domain_" + acct_id);
|
|
||||||
var at = localStorage.getItem(domain + "_at");
|
|
||||||
var start = "https://" + domain + "/api/v1/statuses/" + id;
|
|
||||||
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) {
|
|
||||||
var html = parse([json]);
|
|
||||||
$("#toot-this").html(html);
|
|
||||||
jQuery("time.timeago").timeago();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
$('#tootmodal').modal('open');
|
$('#tootmodal').modal('open');
|
||||||
var domain = localStorage.getItem("domain_" + acct_id);
|
var domain = localStorage.getItem("domain_" + acct_id);
|
||||||
var at = localStorage.getItem(domain + "_at");
|
var at = localStorage.getItem(domain + "_at");
|
||||||
|
@ -41,10 +19,20 @@ function details(id, acct_id, tlid) {
|
||||||
todo(error);
|
todo(error);
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}).then(function(json) {
|
}).then(function(json) {
|
||||||
|
if(!$("#timeline_"+tlid+" #pub_" + id).length){
|
||||||
|
var html = parse([json]);
|
||||||
|
$("#toot-this").html(html);
|
||||||
|
jQuery("time.timeago").timeago();
|
||||||
|
}
|
||||||
$("#toot-this .fav_ct").text(json.favourites_count);
|
$("#toot-this .fav_ct").text(json.favourites_count);
|
||||||
$("#toot-this .rt_ct").text(json.reblogs_count);
|
$("#toot-this .rt_ct").text(json.reblogs_count);
|
||||||
$("#tootmodal").attr("data-url",json.url);
|
$("#tootmodal").attr("data-url",json.url);
|
||||||
$("#tootmodal").attr("data-id",json.id);
|
$("#tootmodal").attr("data-id",json.id);
|
||||||
|
if(json.account.acct==json.account.username){
|
||||||
|
$("#tootmodal").attr("data-user",json.account.acct+"@"+domain);
|
||||||
|
}else{
|
||||||
|
$("#tootmodal").attr("data-user",json.account.acct);
|
||||||
|
}
|
||||||
if (json.in_reply_to_id) {
|
if (json.in_reply_to_id) {
|
||||||
replyTL(json.in_reply_to_id, acct_id);
|
replyTL(json.in_reply_to_id, acct_id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -306,19 +306,19 @@ function parse(obj, mix, acct_id, tlid, popup) {
|
||||||
var visen = toot.visibility;
|
var visen = toot.visibility;
|
||||||
if (visen == "public") {
|
if (visen == "public") {
|
||||||
var vis =
|
var vis =
|
||||||
'<i class="text-darken-3 material-icons gray sml" title="公開">public</i>';
|
'<i class="text-darken-3 material-icons gray sml vis-data" title="公開" data-vis="public">public</i>';
|
||||||
var can_rt = "";
|
var can_rt = "";
|
||||||
} else if (visen == "unlisted") {
|
} else if (visen == "unlisted") {
|
||||||
var vis =
|
var vis =
|
||||||
'<i class="text-darken-3 material-icons blue-text" title="未収載">lock_open</i>';
|
'<i class="text-darken-3 material-icons blue-text vis-data" title="未収載" data-vis="unlisted">lock_open</i>';
|
||||||
var can_rt = "";
|
var can_rt = "";
|
||||||
} else if (visen == "plivate") {
|
} else if (visen == "plivate") {
|
||||||
var vis =
|
var vis =
|
||||||
'<i class="text-darken-3 material-icons orange-text" title="非公開">lock</i>';
|
'<i class="text-darken-3 material-icons orange-text vis-data" title="非公開" data-vis="private">lock</i>';
|
||||||
var can_rt = "hide";
|
var can_rt = "hide";
|
||||||
} else if (visen == "direct") {
|
} else if (visen == "direct") {
|
||||||
var vis =
|
var vis =
|
||||||
'<i class="text-darken-3 material-icons red-text" title="ダイレクト">mail</i>';
|
'<i class="text-darken-3 material-icons red-text vis-data" title="ダイレクト" data-vis="direct">mail</i>';
|
||||||
var can_rt = "hide";
|
var can_rt = "hide";
|
||||||
}
|
}
|
||||||
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
|
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
//タグ表示
|
||||||
|
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=="tag"){
|
||||||
|
tl('tag',decodeURI(codex),0,'add');
|
||||||
|
}
|
||||||
|
}
|
||||||
//よく使うタグ
|
//よく使うタグ
|
||||||
function tagShow(tag){
|
function tagShow(tag){
|
||||||
$("[data-tag="+tag+"]").toggleClass("hide");
|
$("[data-tag="+tag+"]").toggleClass("hide");
|
||||||
|
|
|
@ -87,7 +87,7 @@
|
||||||
')" class="setting nex" title="このアカウントの'+unique_notf+'"><i class="material-icons waves-effect nex notf-icon_' +
|
')" class="setting nex" title="このアカウントの'+unique_notf+'"><i class="material-icons waves-effect nex notf-icon_' +
|
||||||
acct.domain + '">notifications</i></a></div>'+
|
acct.domain + '">notifications</i></a></div>'+
|
||||||
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
'<div class="area-a2"><a onclick="removeColumn(' + key +
|
||||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">remove_circle</i></a></div>'+
|
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div>'+
|
||||||
'<div class="area-a3"><a onclick="mediaToggle(' + key +
|
'<div class="area-a3"><a onclick="mediaToggle(' + key +
|
||||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="メディアフィルター">perm_media</i><span id="sta-media-' +
|
')" class="setting nex"><i class="material-icons waves-effect nex" title="メディアフィルター">perm_media</i><span id="sta-media-' +
|
||||||
key + '">On</span></div>'+
|
key + '">On</span></div>'+
|
||||||
|
@ -157,6 +157,7 @@
|
||||||
var json = JSON.stringify(obj);
|
var json = JSON.stringify(obj);
|
||||||
localStorage.setItem("column", json);
|
localStorage.setItem("column", json);
|
||||||
parseColumn();
|
parseColumn();
|
||||||
|
sortload()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,7 +190,7 @@ function load() {
|
||||||
|
|
||||||
var size = localStorage.getItem("size");
|
var size = localStorage.getItem("size");
|
||||||
if (!size) {
|
if (!size) {
|
||||||
var size = "15";
|
var size = "13";
|
||||||
}
|
}
|
||||||
$("#size").val(size);
|
$("#size").val(size);
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,8 @@ function sortload(){
|
||||||
if(localStorage.getItem("card_" + key)=="true"){
|
if(localStorage.getItem("card_" + key)=="true"){
|
||||||
flag="true"
|
flag="true"
|
||||||
}
|
}
|
||||||
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'">'+localStorage.getItem("domain_" + acct.domain)+" "+cap(acct.type, acct.data)+' TL</li>';
|
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'">'+localStorage.getItem("domain_" + acct.type)+localStorage.getItem("domain_" + acct.domain)+" "+cap(acct.type, acct.data)+' TL <a onclick="removeColumn(' + key +
|
||||||
|
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></li>';
|
||||||
$("#sort").append(html);
|
$("#sort").append(html);
|
||||||
});
|
});
|
||||||
drag();
|
drag();
|
||||||
|
|
|
@ -6,9 +6,30 @@ if(location.search){
|
||||||
var mode=m[1];
|
var mode=m[1];
|
||||||
var codex=m[2];
|
var codex=m[2];
|
||||||
if(mode=="user"){
|
if(mode=="user"){
|
||||||
udg(codex,0);
|
udgEx(codex,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function udgEx(user,acct_id){
|
||||||
|
var domain = localStorage.getItem("domain_" + acct_id);
|
||||||
|
var at = localStorage.getItem(domain + "_at");
|
||||||
|
var start = "https://" + domain + "/api/v1/search?resolve=true&q="+user
|
||||||
|
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) {
|
||||||
|
var id=json.accounts[0].id;
|
||||||
|
udg(id,0);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
function udg(user, acct_id) {
|
function udg(user, acct_id) {
|
||||||
reset();
|
reset();
|
||||||
if (!user) {
|
if (!user) {
|
||||||
|
@ -90,9 +111,11 @@ function udg(user, acct_id) {
|
||||||
$("#his-domain-btn").hide();
|
$("#his-domain-btn").hide();
|
||||||
$("#his-emp-btn").hide();
|
$("#his-emp-btn").hide();
|
||||||
$(".only-my-data").show();
|
$(".only-my-data").show();
|
||||||
|
$(".only-his-data").hide();
|
||||||
} else {
|
} else {
|
||||||
relations(user, acct_id);
|
relations(user, acct_id);
|
||||||
$(".only-my-data").hide();
|
$(".only-my-data").hide();
|
||||||
|
$(".only-his-data").show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
todc();
|
todc();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "TheDesk",
|
"name": "TheDesk",
|
||||||
"version": "13.7.0",
|
"version": "13.8.0",
|
||||||
"description": "TheDesk on Mastodonはシンプルと多機能を両立したデスクトップ向けクライアントです",
|
"description": "TheDesk on Mastodonはシンプルと多機能を両立したデスクトップ向けクライアントです",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -5,10 +5,7 @@
|
||||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||||
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
|
||||||
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
<link href="./css/master.css" type="text/css" rel="stylesheet">
|
||||||
<link href="./css/auth.css" type="text/css" rel="stylesheet">
|
|
||||||
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
|
||||||
<link href='./css/tl.css' rel='stylesheet' type='text/css'>
|
|
||||||
<link href='./css/userdata.css' rel='stylesheet' type='text/css'>
|
|
||||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
</head>
|
</head>
|
||||||
|
@ -16,9 +13,6 @@
|
||||||
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
<script type="text/javascript" src="./js/common/jquery.js"></script>
|
||||||
<script type="text/javascript" src="./js/platform/first.js"></script>
|
<script type="text/javascript" src="./js/platform/first.js"></script>
|
||||||
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
<script type="text/javascript" src="./js/common/materialize.js"></script>
|
||||||
<script type="text/javascript" src="./js/ui/tips.js"></script>
|
|
||||||
<script type="text/javascript" src="./js/common/time.js"></script>
|
|
||||||
<script type="text/javascript" src="./js/common/modal.js"></script>
|
|
||||||
<h4>設定</h4>
|
<h4>設定</h4>
|
||||||
<ul class="collapsible" data-collapsible="accordion">
|
<ul class="collapsible" data-collapsible="accordion">
|
||||||
<li>
|
<li>
|
||||||
|
@ -204,7 +198,15 @@
|
||||||
</li>
|
</li>
|
||||||
<li>E:投稿パネルの幅を切り替え
|
<li>E:投稿パネルの幅を切り替え
|
||||||
</li>
|
</li>
|
||||||
<li>Shift+C:入力内容を消す
|
<li>Ctrl+Shift+C:入力内容を消す
|
||||||
|
</li>
|
||||||
|
<li>Ctrl+Shift+S:設定
|
||||||
|
</li>
|
||||||
|
<li>Ctrl+Shift+M:アカウントマネージャー
|
||||||
|
</li>
|
||||||
|
<li>Ctrl+Shift+N:NowPlaying(Spotify)
|
||||||
|
</li>
|
||||||
|
<li>Ctrl+Shift+P:現在選択中のプロフィール
|
||||||
</li>
|
</li>
|
||||||
<li>←/→:イメージビューワー起動時に画像切り替え
|
<li>←/→:イメージビューワー起動時に画像切り替え
|
||||||
</li>
|
</li>
|
||||||
|
@ -227,7 +229,7 @@
|
||||||
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Enty)</a>
|
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>支援(Enty)</a>
|
||||||
<a href="https://trello.com/b/FZtwd1xx" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i class="material-icons left">list</i>Trello(今後のToDo)</a>
|
<a href="https://trello.com/b/FZtwd1xx" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i class="material-icons left">list</i>Trello(今後のToDo)</a>
|
||||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||||
<a href="index.html?mode=user&code=12336" class="btn waves-effect blue lighten-2" style="width:100%; max-width:500px;"><img src="./img/desk_full.svg" class="left" width="25" style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" class="btn waves-effect blue lighten-2" style="width:100%; max-width:500px;"><img src="./img/desk_full.svg" class="left" width="25" style="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
||||||
<br>
|
<br>
|
||||||
寿司を投げる<br>
|
寿司を投げる<br>
|
||||||
<a href="https://osushi.love/Cutls_P" target="_blank">Osushi.love</a>(スマートフォンから)<br>
|
<a href="https://osushi.love/Cutls_P" target="_blank">Osushi.love</a>(スマートフォンから)<br>
|
||||||
|
@ -235,9 +237,11 @@
|
||||||
<span style="font-family:Open Sans;">Copyright © TheDesk on Mastodon 2018 & Cutls.com 2015 All Rights Reserved.
|
<span style="font-family:Open Sans;">Copyright © TheDesk on Mastodon 2018 & Cutls.com 2015 All Rights Reserved.
|
||||||
<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE.md">TheDesk LICENSE (Latest Ver.)</a>
|
<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE.md">TheDesk LICENSE (Latest Ver.)</a>
|
||||||
<br>Developer: Cutls P(
|
<br>Developer: Cutls P(
|
||||||
<a href="index.html?mode=user&code=12336">@Cutls@kirishima.cloud</a>)
|
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
|
||||||
<br>
|
<br>
|
||||||
</span>
|
</span><br>
|
||||||
|
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>を応援しています。<br>
|
||||||
|
<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</a><br>
|
||||||
<script type="text/javascript" src="./js/common/about.js"></script>
|
<script type="text/javascript" src="./js/common/about.js"></script>
|
||||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
<script type="text/javascript" src="./js/platform/end.js"></script>
|
||||||
<script type="text/javascript" src="./js/login/logout.js"></script>
|
<script type="text/javascript" src="./js/login/logout.js"></script>
|
||||||
|
|
2
ver.json
2
ver.json
|
@ -1 +1 @@
|
||||||
{"warn":"これはGCPにアップして下さい!!","warn2":"これはGCPにアップして下さい!!","warn3":"これはGCPにアップして下さい!!","desk":"Airi (ver.7)","date":"2018-03-20","detail":"内部V:13.7.0|バグフィックス,Pleroma暫定対応,カスタム絵文字検索など"}
|
{"warn":"これはGCPにアップして下さい!!","warn2":"これはGCPにアップして下さい!!","warn3":"これはGCPにアップして下さい!!","desk":"Airi (ver.8)","date":"2018-03-20","detail":"内部V:13.8.0|バグフィックス,UI改善,キーボードショートカット追加・変更,他垢からふぁぼ・フォローなど"}
|
Loading…
Reference in New Issue
Block a user