TheDesk Mio (15.6.0)

This commit is contained in:
cutls
2018-06-12 00:44:28 +09:00
parent f4ec593e26
commit cc95b26cdb
75 changed files with 779 additions and 3871 deletions

View File

@@ -163,7 +163,9 @@ blockquote:before, .quote:before {
.big-text{
font-size:1.2rem;
}
#releasenote li{
list-style-type: disc
}
@media only screen and (min-width: 993px){
#toast-container {
top:auto;

View File

@@ -24,6 +24,7 @@
flex-wrap:wrap;
align-content:flex-start;
overflow-y:scroll;
overflow-x:hidden;
}
#sidebar-btm{
height:9em;

View File

@@ -28,7 +28,7 @@
height: calc(100% - 240px)
}
.my-data-width {
width: 11.11%;
width: 10%;
}
.active-back{
background-color: #e6ee9c;

BIN
app/img/sticker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -24,8 +24,7 @@
<script type="text/javascript" src="./js/common/modal.js"></script>
<script type="text/javascript" src="./js/ui/jquery-ui.min.js"></script>
<script>
//必ずアプデ時のremove instance消して
var ver="Mio (ver.5)";
var ver="Mio (15.6.0)";
//betaを入れるとバージョンチェックしない
//var ver="beta";
var acct_id=0;
@@ -53,8 +52,10 @@ var tlid=0;
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">ローカル</option>
<option value="local-media" data-trans="local-media">ローカル(メディア)</option>
<option value="home" data-trans="home">ホーム</option>
<option value="pub" data-trans="public">連合</option>
<option value="pub-media" data-trans="public-media">連合(メディア)</option>
<option value="dm" data-trans="dm">ダイレクトメッセージ</option>
<option value="mix" data-trans="integrated">統合(ローカルとホーム)</option>
<option value="plus" data-trans="plus">統合(ローカルとブースト・リプライ)</option>
@@ -84,7 +85,7 @@ var tlid=0;
<br><span data-trans="src_acct_sel">検索に使用するアカウントを選択</span>
<br>
<div class="input-field">
<select id="src-acct-sel" class="acct-sel"></select>
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
<label></label>
</div>
<label for="src" data-trans="src">検索</label>
@@ -151,7 +152,7 @@ var tlid=0;
</div>
<div class="big-menu" id="sort-tgl">
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="カラム一覧" data-trans-title="sort">sort</i>
<i class="material-icons nex big-icon" title="カラム一覧/並べ替え" data-trans-title="sort">sort</i>
</a>
<br>
<span class="side-label" data-trans="sort">カラム一覧</span>
@@ -201,7 +202,7 @@ var tlid=0;
<i class="material-icons" title="サイドバーの開閉" data-trans-title="sidebar_xpand" id="x-btn">keyboard_arrow_right</i>
<span class="side-label" data-trans="sidebar_xpand_short">たたむ</span>
</a>
</div>
</div>
</div>
<div id="sidebar-btm">
<!--最小化-->
@@ -483,7 +484,7 @@ var tlid=0;
<div id="his-data-show">
<img src="./img/loading.svg" id="his-prof" style="">
<div class="his-float">
<span id="his-name" style="font-size:1.5rem">Loading...</span>
<span id="his-name" style="font-size:1.5rem">Loading...</span><span class="gray" id="his-bot"></span>
<br>@
<span id="his-acct"></span>
<span class="gray" id="his-relation"></span>
@@ -507,7 +508,7 @@ var tlid=0;
<div class="row">
<div class="col s12" id="my-data-nav">
<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 column-first">
<a go="#his-tl">タイムライン</a>
</li>
<li class="custom-tab col my-data-width">
@@ -540,6 +541,9 @@ var tlid=0;
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list">フォローリクエスト</a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-matching-list">似てる</a>
</li>
</ul>
</div>
<div id="his-tl" class="col s12 tab-content">
@@ -565,7 +569,7 @@ var tlid=0;
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">プロフを開く</a><br>
</div>
<div id="his-list" class="col s12 tab-content">
<div id="his-lists-a"></div>
<div id="his-lists-a">リストに追加するためにはフォローが必要です。</div>
<div id="his-lists-b"></div>
</div>
@@ -595,15 +599,13 @@ var tlid=0;
</div>
<div id="his-prof-list" class="col s12 tab-content">名前
<br>
<input type="text" placeholder="名前" id="his-name-val" width="max-width:150px;">
<input type="text" placeholder="名前" id="his-name-val" style="max-width:250px;">
<br>自己紹介
<br>
<div class="input-field col s12">
<textarea placeholder="自己紹介" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">自己紹介</label>
</div>
<button onclick="profedit()" class="btn waves-effect indigo">適用</button>
<br>
<br>プロフィール画像変更:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
@@ -618,6 +620,14 @@ var tlid=0;
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">もっと</button>
</div>
<div id="his-matching-list" class="col s12 tab-content">
似ているユーザーを取得できます。<br>
Powered by <a href="https://vinayaka.distsn.org/" target="_blank">Mastodon User Matching</a><br>
<div id="his-matching-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " onclick="showMat()">取得</button>
</div>
</div>
</div>
</div>
@@ -677,31 +687,48 @@ var tlid=0;
<h3>TheDesk</h3>
<a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br><br>
<div id="release-Mio_ver-5" style="display:none">
<h5>Release Note Mio (ver.5)</h5>
・絵文字がいい感じに(Twemoji採用)<br>
・打てる絵文字が拡充<br>
・iTunesなうぷれのタグ追加<br>
・ダウンローダーに関する不具合を修正<br>
<div id="release-Mio_15-6-0" style="display:none">
<h5>Release Note Mio (ver.6)</h5>
<ul>
<li>ウィンドウの最大化を記憶するように</li>
<li>v2.4.0/1対応(bot表示/v2-search/rc時のトレンドタグ)</li>
<li>NanoウィンドウのUI改善</li>
<li>キーボードショートカット追加(Ctrl+Shift+1/2/3で特定文字を入力)</li>
<li>Spotifyのアートワーク投稿を任意に</li>
<li>さまざまなバグを修正</li>
以下ver.5の新機能<br>
<li>絵文字がいい感じに(Twemoji採用)</li>
<li>打てる絵文字が拡充</li>
<li>iTunesなうぷれのタグ追加</li>
<li>ダウンローダーに関する不具合を修正</li>
</ul>
以下ver.4の新機能<br>
・セキュリティアップデート<br>
・UI変更<br>
・macOSで通知が表示されるように<br>
<ul>
<li>セキュリティアップデート</li>
<li>UI変更</li>
<li>macOSで通知が表示されるように</li>
</ul>
以下はver.3の新機能<br>
macOS版正式リリース<br>
Spotifyなうぷれ改修(アートワーク投稿)<br>
iTunesなうぷれ機能(macOS必須/Thanks to rinsuki)<br>
メインアカウント機能(起動時や投稿後のアカウントを指定)<br>
エアリプソース確認が投稿者のアカウントのLTLに<br>
未認証TLのトゥートをメインアカウントで詳細表示できるように<br>
Nano機能がウィンドウ位置を記憶するように<br>
DMタイムライン<br>
(imastodon.net)トレンドタグ表示機能<br>
<ul><li>macOS版正式リリース</li>
<li>Spotifyなうぷれ改修(アートワーク投稿)</li>
<li>iTunesなうぷれ機能(macOS必須/Thanks to rinsuki)</li>
<li>メインアカウント機能(起動時や投稿後のアカウントを指定)</li>
<li>エアリプソース確認が投稿者のアカウントのLTLに</li>
<li>未認証TLのトゥートをメインアカウントで詳細表示できるように</li>
<li>Nano機能がウィンドウ位置を記憶するように</li>
<li>DMタイムライン</li>
<li>(imastodon.net)トレンドタグ表示機能</li>
</ul>
</div>
<br><br>
TheDeskはオープンソース・ソフトウェアです。<br>
皆様のあたたかい支援のもとで製作されています。<br>
<h5>TheDesk自己主張ステッカー(5cm四方・透明)</h5>
<img src="./img/sticker.png" width="100">
<a href="https://cutls.booth.pm" target="_blank">購入</a><br>
<h5>その他</h5>
<a href="https://enty.jp/Cutls" target="_blank">Entyで支援</a><br>
<a href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">Amazonほしいものリスト</a><br>
<a href="mailto:mstdn@thedesk.top" target="_blank">mstdn@thedesk.top</a>にAmazonギフトカードを送る<br>
<a href="https://osushi.love/Cutls_P" target="_blank">Osushi.love</a>で寿司を贈る<br>
</div>

View File

@@ -141,6 +141,14 @@ $(function($) {
tagsel('s');
return false;
}
//C+S+(No):ワンクリ
if (event.ctrlKey && event.shiftKey) {
if (e.keyCode >= 49 && e.keyCode <= 51) {
var no=e.keyCode-48;
if(localStorage.getItem("oks-"+no)){$("#textarea").val(localStorage.getItem("oks-"+no))}
return false;
}
}
}
}
//イメージビューワー切り替え

View File

@@ -7,10 +7,12 @@ function verck(ver) {
$('#releasenote').modal('open');
verp=ver.replace( '(', '');
verp=verp.replace( '.', '-');
verp=verp.replace( '.', '-');
verp=verp.replace( '[', '-');
verp=verp.replace( ']', '');
verp=verp.replace( ')', '');
verp=verp.replace( ' ', '_');
console.log(verp);
$("#release-"+verp).show();
});
}

View File

@@ -21,8 +21,16 @@
ats = url.match(
/https:\/\/([-a-zA-Z0-9@.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/
);
console.log(ats);
console.log(toot);
if(toot){
ques = url.match(/https:\/\/quesdon\.rinsuki\.net\//);
console.log(ques);
if(ques){
if(ques[1]){
console.log("quesdon");
toot=[];
}
}
if(toot[1]){
var acct_id=$a.parent().attr("data-acct");
if(!acct_id){
@@ -39,7 +47,17 @@
}
}else if(ats){
if(ats[2]){
return false;
if(ats[1]!="quesdon.rinsuki.net"){
return false
}else{
const {
shell
} = require('electron');
shell.openExternal(url);
}
}
}else{
//hrefがhttp/httpsならブラウザで

View File

@@ -122,12 +122,13 @@ function follow(acct_id,remote) {
var start = "https://" + domain + "/api/v1/accounts/" + id + "/" + flag;
var ent={}
}
console.log(ent);
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();
httpreq.send(JSON.stringify(ent));
httpreq.onreadystatechange = function() {
if (httpreq.readyState == 4) {
var json = httpreq.response;

View File

@@ -3,6 +3,9 @@
function srcToggle() {
$("#src-box").toggleClass("hide");
$("#src-box").toggleClass("show");
if($("#src-box").hasClass("show")){
trend();
}
$("#src-box").css("top",$('#src-tgl').offset().top-$("#src-box").height()/2+"px");
$("#src-box").css("left",$('#src-tgl').offset().left-410+"px");
$('ul.tabs').tabs('select_tab', 'src-sta');
@@ -10,7 +13,8 @@ function srcToggle() {
}
//検索取得
function src() {
function src(mode) {
$("#src-contents").html("");
var q = $("#src").val();
var acct_id = $("#src-acct-sel").val();
if(acct_id=="tootsearch"){
@@ -23,7 +27,11 @@ function src() {
if (user == "--now") {
var user = $('#his-data').attr("user-id");
}
var start = "https://" + domain + "/api/v1/search?q=" + q
if(!mode){
var start = "https://" + domain + "/api/v2/search?q=" + q
}else{
var start = "https://" + domain + "/api/v1/search?q=" + q
}
console.log(start)
fetch(start, {
method: 'GET',
@@ -34,9 +42,25 @@ function src() {
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
src("v1")
return false;
}).then(function(json) {
console.log(json);
//ハッシュタグ
if (json.hashtags[0]) {
var tags = "";
Object.keys(json.hashtags).forEach(function(key4) {
var tag = json.hashtags[key4];
if(mode){
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag + '</a><br> ';
}else{
tags=tags+graphDraw(tag);
}
});
$("#src-contents").append("Tags<br>" + tags);
}
//トゥート
if (json.statuses[0]) {
var templete = parse(json.statuses,'',acct_id);
@@ -47,16 +71,6 @@ function src() {
var templete = userparse(json.accounts,'',acct_id);
$("#src-contents").append("Accounts<br>" + templete);
}
//ハッシュタグ
if (json.hashtags[0]) {
var tags = "";
Object.keys(json.hashtags).forEach(function(key4) {
var tag = json.hashtags[key4];
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag + '</a><br> ';
});
$("#src-contents").append("Tags<br>" + tags);
}
jQuery("time.timeago").timeago();
});
}
@@ -81,7 +95,7 @@ function tootsearch(q){
var toot = json[key5]["_source"];
console.log(toot);
if(toot && toot.account){
templete = templete+parse([toot],'');
templete = templete+parse([toot],'noauth');
}
});
if(!templete){
@@ -90,4 +104,81 @@ function tootsearch(q){
$("#src-contents").html("Tootsearch(時系列)<br>" + templete);
jQuery("time.timeago").timeago();
});
}
}
function trend(){
$("#src-contents").html("");
var acct_id = $("#src-acct-sel").val();
if(acct_id=="tootsearch"){
return false;
}
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem(domain + "_at");
if (user == "--now") {
var user = $('#his-data').attr("user-id");
}
var start = "https://" + domain + "/api/v1/trends"
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) {
var tags = "";
Object.keys(json).forEach(function(keye) {
var tag = json[keye];
var his=tag.history;
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
var six=50-(his[6].uses/max*50);
var five=50-(his[5].uses/max*50);
var four=50-(his[4].uses/max*50);
var three=50-(his[3].uses/max*50);
var two=50-(his[2].uses/max*50);
var one=50-(his[1].uses/max*50);
var zero=50-(his[0].uses/max*50);
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+"人がトゥート";
$("#src-contents").append(tags);
});
});
}
function graphDraw(tag){
var tags="";
var his=tag.history;
console.log(his);
var max=Math.max.apply(null, [his[0].uses,his[1].uses,his[2].uses,his[3].uses,his[4].uses,his[5].uses,his[6].uses]);
var six=50-(his[6].uses/max*50);
var five=50-(his[5].uses/max*50);
var four=50-(his[4].uses/max*50);
var three=50-(his[3].uses/max*50);
var two=50-(his[2].uses/max*50);
var one=50-(his[1].uses/max*50);
var zero=50-(his[0].uses/max*50);
if(max==0){
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+"人がトゥート";
}else{
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
'<g><path d="M0,'+six+' L10,'+five+' 20,'+four+' 30,'+three+' 40,'+two+' 50,'+one+' 60,'+zero+'" style="stroke: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots&nbsp;<a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
'\',\'add\')" class="pointer">#' + tag.name + '</a>&nbsp;'+his[0].accounts+"人がトゥート";
}
return tags;
}
/*
<svg version="1.1" viewbox="0 0 50 300" width="100%" height="50">
<path d="M0,0 L10,0 20,10 20,50" fill="#3F51B5"></path>
</svg>
*/

View File

@@ -66,7 +66,7 @@ function favTag(){
}
}
function trendTag(){
$("#trendtag").html("");
$(".trendtag").remove();
var domain="imastodon.net"
var at = localStorage.getItem(domain + "_at");
var start = "https://" + domain + "/api/v1/trend_tags"
@@ -89,7 +89,7 @@ function trendTag(){
Object.keys(json).forEach(function(tag) {
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span> ';
});
$("#taglist").append('<span id="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</span>');
$("#taglist").append('<span class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</span>');
trendintervalset()
}else{
$("#taglist").html("");
@@ -101,7 +101,6 @@ function trendTag(){
function trendintervalset(){
setTimeout(trendTag, 6000000);
}
function tagTL(a,b,c,d){
var acct_id = $("#post-acct-sel").val();

View File

@@ -113,9 +113,15 @@ function reload(type, cc, acct_id, tlid, data) {
} else if (type == "pub") {
var start = "wss://" + domain +
"/api/v1/streaming/?stream=public&access_token=" + at;
} else if (type == "pub-media") {
var start = "wss://" + domain +
"/api/v1/streaming/?stream=public:media&access_token=" + at;
} else if (type == "local") {
var start = "wss://" + domain +
"/api/v1/streaming/?stream=public:local&access_token=" + at;
} else if (type == "local-media") {
var start = "wss://" + domain +
"/api/v1/streaming/?stream=public:local:media&only_media=true&access_token=" + at;
} else if (type == "tag") {
if(type=="tag"){
var tag = localStorage.getItem("tag-range");
@@ -305,12 +311,24 @@ function cap(type, data, acct_id) {
}else{
var response="Local TL";
}
} else if (type == "local-media") {
if(localStorage.getItem("local_" + acct_id) && !locale){
var response=localStorage.getItem("local_" + acct_id)+"(メディア)";
}else{
var response="Local TL(Media)";
}
} else if (type == "pub") {
if(localStorage.getItem("public_" + acct_id) && !locale){
var response=localStorage.getItem("public_" + acct_id);
}else{
var response="Federated TL";
}
} else if (type == "pub-media") {
if(localStorage.getItem("public_" + acct_id) && !locale){
var response=localStorage.getItem("public_" + acct_id)+"(メディア)";
}else{
var response="Federated TL(Media)";
}
} else if (type == "tag") {
var response= "#" + data
} else if (type == "list") {
@@ -336,8 +354,12 @@ function com(type, data) {
return "home?"
} else if (type == "local" || type == "noauth") {
return "public?local=true&"
} else if (type == "local-media") {
return "public?local=true&only_media=true&"
} else if (type == "pub") {
return "public?"
} else if (type == "pub-media") {
return "public?only_media=true&"
} else if (type == "tag") {
return "tag/" + data + "?"
}else if (type == "list") {
@@ -351,9 +373,9 @@ function com(type, data) {
function icon(type) {
if (type == "home") {
return "home"
} else if (type == "local" || type == "noauth") {
} else if (type == "local" || type == "noauth" || type == "local-media") {
return "people_outline"
} else if (type == "pub") {
} else if (type == "pub" || type == "pub-media") {
return "language"
} else if (type == "tag") {
return "search"

View File

@@ -54,8 +54,8 @@ function xpand() {
$("#x-btn").text("keyboard_arrow_right");
localStorage.removeItem("xed");
} else {
$("#sidebar").css('width', '24px');
$("#sidebar").css('min-width', '24px');
$("#sidebar").css('width', '29px');
$("#sidebar").css('min-width', '29px');
$("#post-box").css('right', '27px');
$("#sidebar").addClass("xed");
$("#sidebar .big-menu i").removeClass('big-icon');

View File

@@ -293,6 +293,7 @@ climute();
wordmute();
wordemp();
checkSpotify();
oksload();
function climute(){
//クライアントミュート
var cli = localStorage.getItem("client_mute");
@@ -364,4 +365,14 @@ function notftest(){
ipc.send('native-notf', ['TheDesk通知テスト','通知テスト(画像はあなたのアカウントのアイコンです)',localStorage.getItem('prof_0')]);
}
}
function oks(no){
var txt=$("#oks-"+no).val();
localStorage.setItem("oks-"+no, txt);
Materialize.toast("キーボードショートカットを更新しました。", 3000);
}
function oksload(){
if(localStorage.getItem("oks-1")){$("#oks-1").val(localStorage.getItem("oks-1"))}
if(localStorage.getItem("oks-2")){$("#oks-2").val(localStorage.getItem("oks-2"))}
if(localStorage.getItem("oks-3")){$("#oks-3").val(localStorage.getItem("oks-3"))}
}

View File

@@ -46,6 +46,22 @@ function checkSpotify(){
var content="#NowPlaying {song} / {album} / {artist}\n{url} #SpotifyWithTheDesk";
}
$("#np-temp").val(content);
var flag=localStorage.getItem("artwork");
if(flag){
$("#awk_yes").prop("checked", true);
}else{
$("#awk_no").prop("checked", true);
}
}
function spotifyFlagSave(){
var awk = $("[name=awk]:checked").val();
if(awk=="yes"){
localStorage.setItem("artwork","yes");
Materialize.toast("アルバムアートワークを添付します。", 3000);
}else{
localStorage.removeItem("artwork");
Materialize.toast("アルバムアートワークを添付しません。", 3000);
}
}
function nowplaying(mode){
if(mode=="spotify"){
@@ -68,7 +84,10 @@ function nowplaying(mode){
var img=item.album.images[0].url;
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('bmp-image', [img,0]);
var flag=localStorage.getItem("artwork");
if(flag){
ipc.send('bmp-image', [img,0]);
}
var content=localStorage.getItem("np-temp");
if(!content || content==""){
var content="#NowPlaying {song} / {album} / {artist}\n{url}";

View File

@@ -370,3 +370,45 @@ function showDom(more, acct_id) {
});
}
//ユーザーマッチングリスト
function showMat() {
$("#his-matching-list-contents").html("30秒から数分かかります");
var full=$("#his-acct").attr("fullname");
var acct_id=$("#his-data").attr("use-acct");
full=full.split("@");
var start = "https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-api.cgi?"+full[1]+"+" + full[0];
console.log(start);
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json'
},
//body: JSON.stringify({})
}).then(function(response) {
return response.json();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(json) {
console.log(json);
var templete="";
Object.keys(json).forEach(function(key) {
var user = json[key];
templete = templete +
'<div class="" style="padding-top:5px;">' +
'<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' +
'<div style="flex-basis:40px;"><a onclick="udgEx(\'' + user.user + '\',' +
acct_id + ');" user="' + user.user + '" class="udg">' +
'<img src="' + user.avatar + '" width="40" class="prof-img" user="' + user.user + '"></a></div>' +
'<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' +
escapeHTML(user.screen_name) + '</big></div>' +
'<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
user.user + '@'+user.host+'</div>' +
'</div>' +
'<div class="divider"></div>' +
'</div>' +
'</div>';
});
$("#his-matching-list-contents").html(templete);
});
}

View File

@@ -15,7 +15,7 @@ function profedit() {
httpreq.responseType = 'json';
httpreq.send(JSON.stringify({
display_name: name,
note: des
note: des,
}));
httpreq.onreadystatechange = function() {
if (httpreq.readyState == 4) {

View File

@@ -63,6 +63,7 @@ function udg(user, acct_id) {
todo(error);
console.error(error);
}).then(function(json) {
console.log(json);
//一つ前のユーザーデータ
if (!localStorage.getItem("history")){
$("#his-history-btn").prop("disabled",true);
@@ -134,6 +135,9 @@ function udg(user, acct_id) {
}else{
$("#his-des").html(json.note);
}
if(json.bot){
$("#his-bot").html("botアカウント");
}
$('#his-data').css('background-size', 'cover');
localStorage.setItem("history" , user);
//自分の時
@@ -144,6 +148,10 @@ function udg(user, acct_id) {
showDom('', acct_id);
showReq('', acct_id);
$("#his-name-val").val(json.display_name);
$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value));
$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value));
$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value));
$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value));
var des = json.note;
des = des.replace(/<br \/>/g, "\n")
des = $.strip_tags(des);
@@ -158,7 +166,6 @@ function udg(user, acct_id) {
$(".only-his-data").hide();
} else {
relations(user, acct_id);
hisList(user,acct_id);
$(".only-my-data").hide();
$(".only-his-data").show();
}
@@ -203,6 +210,7 @@ function relations(user, acct_id) {
//自分がフォローしている
$("#his-data").addClass("following");
$("#his-follow-btn").text("フォロー解除");
hisList(user,acct_id);
}else{
$("#his-follow-btn").text("フォロー");
}
@@ -248,6 +256,8 @@ function hisclose() {
function reset(){
$(".tab-content:eq(0)").show();
$(".tab-content:gt(0)").hide();
$(".active-back").removeClass("active-back");
$(".column-first").addClass("active-back");
$("#his-name").text("Loading");
$("#his-acct").text("");
$("#his-prof").attr("src", "./img/loading.svg");
@@ -263,6 +273,7 @@ function reset(){
$("#his-data").removeClass("blocking");
$("#his-data").removeClass("mutingNotf");
$("#his-data").removeClass("blockingDom");
$("#his-bot").html("");
$("#his-follow-btn").show();
$("#his-block-btn").show();
$("#his-mute-btn").show();
@@ -277,6 +288,14 @@ function reset(){
$("#his-relation").text("");
$(".cont-series").html("");
$("#domainblock").val("");
$("#his-lists-a").html('リストに追加するためにはフォローが必要です。');
$("#his-lists-b").html('');
$("#his-name-val").val("");
$("#his-des-val").val("");
$("#his-f1-name").val(""); $("#his-f1-val").val("");
$("#his-f2-name").val(""); $("#his-f2-val").val("");
$("#his-f3-name").val(""); $("#his-f3-val").val("");
$("#his-f4-name").val(""); $("#his-f4-val").val("");
}
$('#my-data-nav .custom-tab').on('click',function(){
var target=$(this).find("a").attr("go");

View File

@@ -12,16 +12,6 @@ const Menu=electron.Menu
var updatewin=null;
// アプリケーションをコントロールするモジュール
const app = electron.app;
var platform=process.platform;
var bit=process.arch;
if(platform=="win32"){
const WindowsToaster = require('node-notifier').WindowsToaster;
var notifier = new WindowsToaster({
withFallback: false, // Fallback to Growl or Balloons?
customPath: void 0 // Relative path if you want to use your fork of toast.exe
});
}
// ウィンドウを作成するモジュール
const BrowserWindow = electron.BrowserWindow;
const {
@@ -31,6 +21,7 @@ const join = require('path').join;
// メインウィンドウはGCされないようにグローバル宣言
let mainWindow;
var info_path = join(app.getPath("userData"), "window-size.json");
var max_info_path = join(app.getPath("userData"), "max-window-size.json");
var tmp_img = join(app.getPath("userData"), "tmp.png");
var window_size;
try {
@@ -41,6 +32,17 @@ try {
height: 750
}; // デフォルトバリュー
}
var max_window_size;
try {
max_window_size = JSON.parse(fs.readFileSync(max_info_path, 'utf8'));
} catch (e) {
max_window_size = {
width: "string",
height: "string",
x: "string",
y: "string"
}; // デフォルトバリュー
}
// 全てのウィンドウが閉じたら終了
app.on('window-all-closed', function() {
@@ -55,9 +57,9 @@ function createWindow() {
var platform=process.platform;
var bit=process.arch;
if(platform=="linux"){
var arg={width:window_size.width,height:window_size.height,icon: __dirname + '/thedesk.ico'}
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,icon: __dirname + '/thedesk.ico'}
}else{
var arg=window_size
var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
}
mainWindow = new BrowserWindow(arg);
electron.session.defaultSession.clearCache(() => {})
@@ -79,12 +81,31 @@ function createWindow() {
}else{
mainWindow.loadURL('file://' + __dirname + '/index.html');
}
if(!window_size.x && !window_size.y){
mainWindow.center();
}
if(window_size.max){
mainWindow.maximize();
}
// ウィンドウが閉じられたらアプリも終了
mainWindow.on('closed', function() {
mainWindow = null;
});
mainWindow.on('close', function() {
fs.writeFileSync(info_path, JSON.stringify(mainWindow.getBounds()));
if(
max_window_size.width==mainWindow.getBounds().width &&
max_window_size.height==mainWindow.getBounds().height &&
max_window_size.x==mainWindow.getBounds().x &&
max_window_size.y==mainWindow.getBounds().y
){
var size={width:mainWindow.getBounds().width,height:mainWindow.getBounds().height,x:mainWindow.getBounds().x,y:mainWindow.getBounds().y,max:true}
}else{
var size={width:mainWindow.getBounds().width,height:mainWindow.getBounds().height,x:mainWindow.getBounds().x,y:mainWindow.getBounds().y}
}
fs.writeFileSync(info_path, JSON.stringify(size));
});
mainWindow.on('maximize', function() {
fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()));
});
// Create the Application's main menu
var template = [{
@@ -128,9 +149,12 @@ var onError = function(err,response){
var ipc = electron.ipcMain;
ipc.on('native-notf', function(e, args) {
var platform=process.platform;
var bit=process.arch;
if(platform=="win32"){
const notifier = require('node-notifier');
// String
Jimp.read(args[2], function (err, lenna) {
if(!err && lenna){
lenna.write(tmp_img);
@@ -139,9 +163,12 @@ ipc.on('native-notf', function(e, args) {
var tmp_imge="";
}
notifier.notify({
body: args[1],
appName: "top.thedesk.thedesk",
message: args[1],
title: args[0],
icon : tmp_imge,
sound: false,
wait: false
});
});

View File

@@ -6,13 +6,27 @@
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<title>TheDesk Nano</title>
<style>
body {
background-color: rgba(0, 0, 0, 0.1);
html{
-webkit-app-region: drag !important;
cursor: move !important;
width:100vw;
height:100vh;
overflow:hidden;
}
body {
background-color: rgba(0, 0, 0, 0.1);
font-size:11px;
}
#timeline_nano{
overflow-y:scroll;
overflow-x:hidden;
-webkit-app-region: no-drag;
max-height:100px;
}
.user{font-size:12px;}
select {
-webkit-app-region: no-drag;
}
#draghandle{
-webkit-app-region: drag;
cursor: move;
}
button {
-webkit-app-region: no-drag;
}
@@ -56,21 +70,21 @@ textarea {
<body>
<script type="text/javascript" src="./js/common/jquery.js"></script>
<script type="text/javascript" src="./js/platform/first.js"></script>
<div id="draghandle">+ここを持って移動+</div>
<span id="timeline_nano">
<select id="type-sel">
<option value="local">Local</option>
<option value="home">Home</option>
</select>
<button onclick="tl()">表示</button>
</span><br><button onclick="window.close()">終了</button><br>
<textarea id="textarea" style="width:100%; background-color:transparent"></textarea>
<select id="post-acct-sel" style="max-width:150px">
</select>
<select id="type-sel" style="max-width:60px">
<option value="local">Local</option>
<option value="home">Home</option>
</select><button onclick="tl()">表示</button><button onclick="window.close()">x</button><br>
<div id="timeline_nano">
</div>
<br>
<textarea id="textarea" style="width:80%; background-color:transparent"></textarea>
<input type="hidden" id="reply">
<input type="hidden" id="media">
<select id="post-acct-sel">
</select>
<button class="btn" onclick="post()">投稿</button>
<button class="btn" onclick="post()">投稿</button>
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>
<script type="text/javascript" src="./js/post/post.js"></script>
<script type="text/javascript" src="./js/post/reply.js"></script>
<script type="text/javascript" src="./js/tl/parse.js"></script>

16
app/node_modules/.bin/semver generated vendored
View File

@@ -1 +1,15 @@
../semver/bin/semver
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../semver/bin/semver" "$@"
ret=$?
else
node "$basedir/../semver/bin/semver" "$@"
ret=$?
fi
exit $ret

16
app/node_modules/.bin/which generated vendored
View File

@@ -1 +1,15 @@
../which/bin/which
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../which/bin/which" "$@"
ret=$?
else
node "$basedir/../which/bin/which" "$@"
ret=$?
fi
exit $ret

23
app/node_modules/growly/package.json generated vendored
View File

@@ -1,32 +1,27 @@
{
"_args": [
[
"growly@1.3.0",
"/Users/aa/TheDesk/app"
]
],
"_from": "growly@1.3.0",
"_from": "growly@^1.3.0",
"_id": "growly@1.3.0",
"_inBundle": false,
"_integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"_location": "/growly",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "growly@1.3.0",
"raw": "growly@^1.3.0",
"name": "growly",
"escapedName": "growly",
"rawSpec": "1.3.0",
"rawSpec": "^1.3.0",
"saveSpec": null,
"fetchSpec": "1.3.0"
"fetchSpec": "^1.3.0"
},
"_requiredBy": [
"/node-notifier"
],
"_resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
"_spec": "1.3.0",
"_where": "/Users/aa/TheDesk/app",
"_shasum": "f10748cbe76af964b7c96c93c6bcc28af120c081",
"_spec": "growly@^1.3.0",
"_where": "C:\\Users\\ryuki\\TheDesk\\app\\node_modules\\node-notifier",
"author": {
"name": "Ibrahim Al-Rajhi",
"email": "abrahamalrajhi@gmail.com",
@@ -35,6 +30,8 @@
"bugs": {
"url": "http://github.com/theabraham/growly/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Simple zero-dependency Growl notifications using GNTP.",
"directories": {
"example": "example",

23
app/node_modules/isexe/package.json generated vendored
View File

@@ -1,32 +1,27 @@
{
"_args": [
[
"isexe@2.0.0",
"/Users/aa/TheDesk/app"
]
],
"_from": "isexe@2.0.0",
"_from": "isexe@^2.0.0",
"_id": "isexe@2.0.0",
"_inBundle": false,
"_integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
"_location": "/isexe",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "isexe@2.0.0",
"raw": "isexe@^2.0.0",
"name": "isexe",
"escapedName": "isexe",
"rawSpec": "2.0.0",
"rawSpec": "^2.0.0",
"saveSpec": null,
"fetchSpec": "2.0.0"
"fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/which"
],
"_resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"_spec": "2.0.0",
"_where": "/Users/aa/TheDesk/app",
"_shasum": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
"_spec": "isexe@^2.0.0",
"_where": "C:\\Users\\ryuki\\TheDesk\\app\\node_modules\\which",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -35,6 +30,8 @@
"bugs": {
"url": "https://github.com/isaacs/isexe/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "Minimal module to check if a file is executable.",
"devDependencies": {
"mkdirp": "^0.5.1",

View File

@@ -1,44 +1,41 @@
{
"_args": [
[
"node-notifier@5.2.1",
"/Users/aa/TheDesk/app"
]
],
"_from": "node-notifier@5.2.1",
"_from": "node-notifier@^5.2.1",
"_id": "node-notifier@5.2.1",
"_inBundle": false,
"_integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==",
"_location": "/node-notifier",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "node-notifier@5.2.1",
"raw": "node-notifier@^5.2.1",
"name": "node-notifier",
"escapedName": "node-notifier",
"rawSpec": "5.2.1",
"rawSpec": "^5.2.1",
"saveSpec": null,
"fetchSpec": "5.2.1"
"fetchSpec": "^5.2.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz",
"_spec": "5.2.1",
"_where": "/Users/aa/TheDesk/app",
"_shasum": "fa313dd08f5517db0e2502e5758d664ac69f9dea",
"_spec": "node-notifier@^5.2.1",
"_where": "C:\\Users\\ryuki\\TheDesk\\app",
"author": {
"name": "Mikael Brevik"
},
"bugs": {
"url": "https://github.com/mikaelbr/node-notifier/issues"
},
"bundleDependencies": false,
"dependencies": {
"growly": "^1.3.0",
"semver": "^5.4.1",
"shellwords": "^0.1.1",
"which": "^1.3.0"
},
"deprecated": false,
"description": "A Node.js module for sending notifications on native Mac, Windows (post and pre 8) and Linux (or Growl as fallback)",
"devDependencies": {
"eslint": "^4.15.0",

23
app/node_modules/semver/package.json generated vendored
View File

@@ -1,38 +1,35 @@
{
"_args": [
[
"semver@5.5.0",
"/Users/aa/TheDesk/app"
]
],
"_from": "semver@5.5.0",
"_from": "semver@^5.4.1",
"_id": "semver@5.5.0",
"_inBundle": false,
"_integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
"_location": "/semver",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "semver@5.5.0",
"raw": "semver@^5.4.1",
"name": "semver",
"escapedName": "semver",
"rawSpec": "5.5.0",
"rawSpec": "^5.4.1",
"saveSpec": null,
"fetchSpec": "5.5.0"
"fetchSpec": "^5.4.1"
},
"_requiredBy": [
"/node-notifier"
],
"_resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
"_spec": "5.5.0",
"_where": "/Users/aa/TheDesk/app",
"_shasum": "dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab",
"_spec": "semver@^5.4.1",
"_where": "C:\\Users\\ryuki\\TheDesk\\app\\node_modules\\node-notifier",
"bin": {
"semver": "./bin/semver"
},
"bugs": {
"url": "https://github.com/npm/node-semver/issues"
},
"bundleDependencies": false,
"deprecated": false,
"description": "The semantic version parser used by npm.",
"devDependencies": {
"tap": "^10.7.0"

View File

@@ -1,32 +1,27 @@
{
"_args": [
[
"shellwords@0.1.1",
"/Users/aa/TheDesk/app"
]
],
"_from": "shellwords@0.1.1",
"_from": "shellwords@^0.1.1",
"_id": "shellwords@0.1.1",
"_inBundle": false,
"_integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==",
"_location": "/shellwords",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "shellwords@0.1.1",
"raw": "shellwords@^0.1.1",
"name": "shellwords",
"escapedName": "shellwords",
"rawSpec": "0.1.1",
"rawSpec": "^0.1.1",
"saveSpec": null,
"fetchSpec": "0.1.1"
"fetchSpec": "^0.1.1"
},
"_requiredBy": [
"/node-notifier"
],
"_resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
"_spec": "0.1.1",
"_where": "/Users/aa/TheDesk/app",
"_shasum": "d6b9181c1a48d397324c84871efbcfc73fc0654b",
"_spec": "shellwords@^0.1.1",
"_where": "C:\\Users\\ryuki\\TheDesk\\app\\node_modules\\node-notifier",
"author": {
"name": "Jimmy Cuadra",
"email": "jimmy@jimmycuadra.com",
@@ -35,7 +30,9 @@
"bugs": {
"url": "https://github.com/jimmycuadra/shellwords/issues"
},
"bundleDependencies": false,
"dependencies": {},
"deprecated": false,
"description": "Manipulate strings according to the word parsing rules of the UNIX Bourne shell.",
"devDependencies": {
"jasmine-node": "~1.0.26",

View File

@@ -1,6 +1,11 @@
# Changes
## 1.3.1
* update deps
* update travis
## v1.3.0
* Add nothrow option to which.sync

35
app/node_modules/which/package.json generated vendored
View File

@@ -1,32 +1,27 @@
{
"_args": [
[
"which@1.3.0",
"/Users/aa/TheDesk/app"
]
],
"_from": "which@1.3.0",
"_id": "which@1.3.0",
"_from": "which@^1.3.0",
"_id": "which@1.3.1",
"_inBundle": false,
"_integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"_integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"_location": "/which",
"_phantomChildren": {},
"_requested": {
"type": "version",
"type": "range",
"registry": true,
"raw": "which@1.3.0",
"raw": "which@^1.3.0",
"name": "which",
"escapedName": "which",
"rawSpec": "1.3.0",
"rawSpec": "^1.3.0",
"saveSpec": null,
"fetchSpec": "1.3.0"
"fetchSpec": "^1.3.0"
},
"_requiredBy": [
"/node-notifier"
],
"_resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"_spec": "1.3.0",
"_where": "/Users/aa/TheDesk/app",
"_resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"_shasum": "a45043d54f5805316da8d62f9f50918d3da70b0a",
"_spec": "which@^1.3.0",
"_where": "C:\\Users\\ryuki\\TheDesk\\app\\node_modules\\node-notifier",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -38,14 +33,16 @@
"bugs": {
"url": "https://github.com/isaacs/node-which/issues"
},
"bundleDependencies": false,
"dependencies": {
"isexe": "^2.0.0"
},
"deprecated": false,
"description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
"devDependencies": {
"mkdirp": "^0.5.0",
"rimraf": "^2.3.3",
"tap": "^10.7.0"
"rimraf": "^2.6.2",
"tap": "^12.0.1"
},
"files": [
"which.js",
@@ -64,5 +61,5 @@
"postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
"test": "tap test/*.js --cov"
},
"version": "1.3.0"
"version": "1.3.1"
}

10
app/package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "TheDesk",
"version": "15.4.0",
"version": "15.5.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -456,7 +456,7 @@
"growly": "1.3.0",
"semver": "5.5.0",
"shellwords": "0.1.1",
"which": "1.3.0"
"which": "1.3.1"
}
},
"oauth-sign": {
@@ -711,9 +711,9 @@
}
},
"which": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
"integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==",
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"requires": {
"isexe": "2.0.0"
}

View File

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

View File

@@ -35,7 +35,8 @@
<input type="text" style="width:50px" id="popup">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">設定</button>
<br>
<h5>ネイティブ通知設定</h5><a onclick="notftest()" class="pointer">通知テスト</a>
<h5>ネイティブ通知設定</h5>
Windows 10の最新バージョンでは通知が表示されません。これは既知のバグですが解決が難しいため保留しています。<br><a onclick="notftest()" class="pointer">通知テスト</a>
<br>
<input class="with-gap" onchange="settings()" name="notf" type="radio" id="ntf_yes" value="yes" />
<label for="ntf_yes">はい</label>
@@ -189,6 +190,22 @@
<br>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">keyboard</i>キーボードショートカットの設定
</div>
<div class="collapsible-body">
<h5>簡単文字入力</h5>
絵文字やタグ、&gt;BTなどを登録しておくとすぐに入力できます。<br>
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">設定</button><br><br>
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">bookmark</i>ミュート・強調の設定
@@ -229,6 +246,12 @@
テンプレート:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL<br>
iTunes NowPlayingでも{url}以外のテンプレートに従ってトゥートされます。また、作曲家{composer}/サンプルレート{hz}が有効です。<br>
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">設定</button>
<h5>Spotifyでアルバムアートワークを添付する</h5>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" value="yes" />
<label for="awk_yes">はい</label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_no" value="no" />
<label for="awk_no">いいえ</label>
<br>
</div>
</li>
</ul>