TheDesk Mio (15.7.0)

This commit is contained in:
cutls 2018-06-17 23:26:45 +09:00
parent a8e0133edb
commit f42f6e2572
21 changed files with 426 additions and 267 deletions

View File

@ -1,23 +1,29 @@
## For Astarte(kirishima.cloud), My Primary Instance ## For Astarte(kirishima.cloud), My Primary Instance
TheDesk :thedesk: Mio (ver.6) TheDesk :thedesk: Mio (ver.7)
・ウィンドウの最大化を記憶するように ・公開範囲情報の記録がインスタンスごとに(これにより一度記録がリセットされます。)
・v2.4.0/1対応(bot表示/v2-search/rc時のトレンドタグ) ・インスタンスのユーザー設定に従った公開範囲指定(アカウント設定より情報更新をしてください。)
・NanoウィンドウのUI改善 ・インスタンスカラーを設定できるように(アカウント設定から)
・キーボードショートカット追加(Ctrl+Shift+1/2/3で特定文字を入力) ・スクリーンショット(魚拓)機能の高速化
・Spotifyのアートワーク投稿を任意に ・Integrated TLのバグ修正
・さまざまなバグを修正 ・キーボードショートカットのバグ修正
・コピペのバグ改善(ただし、ワンクリックコピーで複数の絵文字があるトゥートをコピーするとバグが発生します)
・CWのバグ改善
・[b]DTP鯖(dtp-mstdn.jp)( #dtp )とtheboss.tech( #theboss_tech )をサポート[/b]タグ付きトゥート時、デフォルトタグがないとき確認ダイアログが表示されます。
ほか ほか
https://thedesk.top https://thedesk.top
:github: https://github.com/cutls/TheDesk #Desk #DeskUpdate :github: https://github.com/cutls/TheDesk #Desk #DeskUpdate
## For Other Instances ## For Other Instances
PCクライアントTheDesk Mio (ver.3) PCクライアントTheDesk Mio (ver.7)
・ウィンドウの最大化を記憶するように ・公開範囲情報の記録がインスタンスごとに(これにより一度記録がリセットされます。)
・v2.4.0/1対応(bot表示/v2-search/rc時のトレンドタグ) ・インスタンスのユーザー設定に従った公開範囲指定(アカウント設定より情報更新をしてください。)
・NanoウィンドウのUI改善 ・インスタンスカラーを設定できるように(アカウント設定から)
・キーボードショートカット追加(Ctrl+Shift+1/2/3で特定文字を入力) ・スクリーンショット(魚拓)機能の高速化
・Spotifyのアートワーク投稿を任意に ・Integrated TLのバグ修正
・さまざまなバグを修正 ・キーボードショートカットのバグ修正
・コピペのバグ改善(ただし、ワンクリックコピーで複数の絵文字があるトゥートをコピーするとバグが発生します)
・CWのバグ改善
・DTP鯖(dtp-mstdn.jp)( #dtp )とtheboss.tech( #theboss_tech )をサポート。タグ付きトゥート時、デフォルトタグがないとき確認ダイアログが表示されます。
https://thedesk.top https://thedesk.top

View File

@ -15,6 +15,9 @@
body,html{overflow-y: scroll;} body,html{overflow-y: scroll;}
#acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start} #acct-list{display:flex; flex-wrap:wrap; color:white; align-items: flex-start}
.lts{font-size:150%} .lts{font-size:150%}
.colorsel{ display:flex; }
.card .colorsel div:not(.exc){width:20px;height:20px;}
.card .colorsel div.exc{width:40px;height:20px;}
</style> </style>
<meta charset="utf-8"> <meta charset="utf-8">
</head> </head>
@ -68,6 +71,6 @@ body,html{overflow-y: scroll;}
マストドンバージョン:<span id="ins-ver"></span><br> マストドンバージョン:<span id="ins-ver"></span><br>
<script type="text/javascript" src="./js/ui/theme.js"></script> <script type="text/javascript" src="./js/ui/theme.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/manager.js"></script>
<script type="text/javascript" src="./js/login/instance.js"></script> <script type="text/javascript" src="./js/login/instance.js"></script>
<script type="text/javascript" src="./js/login/manager.js"></script>
<script type="text/javascript" src="./js/tl/date.js"></script> <script type="text/javascript" src="./js/tl/date.js"></script>

View File

@ -254,7 +254,7 @@ blockquote:before, .quote:before {
/*スクロールバー*/ /*スクロールバー*/
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 5px; width: 5px;
height: 5px; height: 10px;
background: rgba(0, 0, 0, 0.05); background: rgba(0, 0, 0, 0.05);
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {

View File

@ -24,7 +24,7 @@
<script type="text/javascript" src="./js/common/modal.js"></script> <script type="text/javascript" src="./js/common/modal.js"></script>
<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>
var ver="Mio (15.6.0)"; var ver="Mio (15.7.0)";
//betaを入れるとバージョンチェックしない //betaを入れるとバージョンチェックしない
//var ver="beta"; //var ver="beta";
var acct_id=0; var acct_id=0;
@ -236,7 +236,7 @@ var tlid=0;
</span> </span>
<!--Markdown--> <!--Markdown-->
<div class="row" style="margin-bottom:0"> <div class="row" style="margin-bottom:0">
<div class="markdown mize"> <div class="markdown mize hide">
<div class="col s12"> <div class="col s12">
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i> <i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i> <i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
@ -687,38 +687,20 @@ var tlid=0;
<h3>TheDesk</h3> <h3>TheDesk</h3>
<a href="https://thedesk.top" target="_blank">HP</a><br> <a href="https://thedesk.top" target="_blank">HP</a><br>
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br><br> <a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br><br>
<div id="release-Mio_15-6-0" style="display:none"> <div id="release-Mio_15-7-0" style="display:none">
<h5>Release Note Mio (ver.6)</h5> <h5>Release Note Mio (15.7.0)</h5>
<ul> <ul>
<li>ウィンドウの最大化を記憶するように</li> <li>公開範囲情報の記録がインスタンスごとに(これにより一度記録がリセットされます。)</li>
<li>v2.4.0/1対応(bot表示/v2-search/rc時のトレンドタグ)</li> <li>インスタンスのユーザー設定に従った公開範囲指定(アカウント設定より情報更新をしてください。)</li>
<li>NanoウィンドウのUI改善</li> <li>インスタンスカラーを設定できるように(アカウント設定から)</li>
<li>キーボードショートカット追加(Ctrl+Shift+1/2/3で特定文字を入力)</li> <li>スクリーンショット(魚拓)機能の高速化</li>
<li>Spotifyのアートワーク投稿を任意に</li> <li>Integrated TLのバグ修正</li>
<li>さまざまなバグを修正</li> <li>キーボードショートカットのバグ修正</li>
以下ver.5の新機能<br> <li>コピペのバグ改善(ただし、ワンクリックコピーで複数の絵文字があるトゥートをコピーするとバグが発生します)</li>
<li>絵文字がいい感じに(Twemoji採用)</li> <li>CWのバグ改善</li>
<li>打てる絵文字が拡充</li> <li><b>DTP鯖(dtp-mstdn.jp)とtheboss.techをサポート</b>タグ付きトゥート時、デフォルトタグがないとき確認ダイアログが表示されます。</li>
<li>iTunesなうぷれのタグ追加</li>
<li>ダウンローダーに関する不具合を修正</li>
</ul>
以下ver.4の新機能<br>
<ul>
<li>セキュリティアップデート</li>
<li>UI変更</li>
<li>macOSで通知が表示されるように</li>
</ul>
以下はver.3の新機能<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> </ul>
</div> </div>
<br><br> <br><br>
TheDeskはオープンソース・ソフトウェアです。<br> TheDeskはオープンソース・ソフトウェアです。<br>
@ -766,6 +748,7 @@ var tlid=0;
<script type="text/javascript" src="./js/tl/list.js"></script> <script type="text/javascript" src="./js/tl/list.js"></script>
<script type="text/javascript" src="./js/ui/post-box.js"></script> <script type="text/javascript" src="./js/ui/post-box.js"></script>
<script type="text/javascript" src="./js/ui/layout.js"></script> <script type="text/javascript" src="./js/ui/layout.js"></script>
<script type="text/javascript" src="./js/login/instance.js"></script>
<script type="text/javascript" src="./js/login/login.js"></script> <script type="text/javascript" src="./js/login/login.js"></script>
<script type="text/javascript" src="./js/ui/img.js"></script> <script type="text/javascript" src="./js/ui/img.js"></script>
<script type="text/javascript" src="./js/ui/theme.js"></script> <script type="text/javascript" src="./js/ui/theme.js"></script>

View File

@ -145,7 +145,7 @@ $(function($) {
if (event.ctrlKey && event.shiftKey) { if (event.ctrlKey && event.shiftKey) {
if (e.keyCode >= 49 && e.keyCode <= 51) { if (e.keyCode >= 49 && e.keyCode <= 51) {
var no=e.keyCode-48; var no=e.keyCode-48;
if(localStorage.getItem("oks-"+no)){$("#textarea").val(localStorage.getItem("oks-"+no))} if(localStorage.getItem("oks-"+no)){$("#textarea").val($("#textarea").val()+localStorage.getItem("oks-"+no))}
return false; return false;
} }
} }

View File

@ -1,51 +1,77 @@
//入力時にハッシュタグと@をサジェスト //インスタンスリスト
var timer = null; var idata={
"kirishima.cloud":"instance",
"kirishima.cloud_name":"アスタルテ",
"kirishima.cloud_letters":"6229",
"kirishima.cloud_bbcode":"enabled",
"kirishima.cloud_markdown":"enabled",
"minohdon.jp":"instance",
"minohdon.jp_name":"箕面丼",
"minohdon.jp_letters":"500",
"minohdon.jp_bbcode":"disabled",
"minohdon.jp_markdown":"disabled",
"knzk.me":"instance",
"knzk.me_name":"神崎丼",
"knzk.me_letters":"5000",
"knzk.me_bbcode":"disabled",
"knzk.me_markdown":"disabled",
"mastodos.com":"instance",
"mastodos.com_name":"マストどす",
"mastodos.com_letters":"500",
"mastodos.com_bbcode":"disabled",
"mastodos.com_markdown":"disabled",
"dev.kirishima.cloud":"hidden",
"dev.kirishima.cloud_name":"アスタルテ(Dev)",
"dev.kirishima.cloud_letters":"6229",
"dev.kirishima.cloud_bbcode":"enabled",
"dev.kirishima.cloud_markdown":"enabled",
"mstdn.y-zu.org":"instance",
"mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
"mstdn.y-zu.org_letters":"500",
"mstdn.y-zu.org_bbcode":"disabled",
"mstdn.y-zu.org_markdown":"disabled",
"imastodon.net":"instance",
"imastodon.net_name":"im@stodon",
"imastodon.net_letters":"500",
"imastodon.net_bbcode":"disabled",
"imastodon.net_markdown":"disabled",
"imastodon.net_home":"オフィス",
"imastodon.net_local":"楽屋",
"imastodon.net_notification":"ホワイトボード",
"imastodon.net_public":"ライブステージ",
"mstdn.osaka":"instance",
"mstdn.osaka_name":"大阪丼",
"mstdn.osaka_letters":"500",
"mstdn.osaka_bbcode":"disabled",
"mstdn.osaka_markdown":"disabled",
"mstdn.osaka_home":"ウチ",
"mstdn.osaka_local":"近所",
"mstdn.osaka_notification":"あめちゃん",
"mstdn.osaka_public":"新世界",
"mstdn.kemono-friends.info":"instance",
"mstdn.kemono-friends.info_name":"ますとどんちほー",
"mstdn.kemono-friends.info_letters":"1024",
"mstdn.kemono-friends.info_bbcode":"disabled",
"mstdn.kemono-friends.info_markdown":"disabled",
"mstdn.kemono-friends.info_home":"なわばり",
"mstdn.kemono-friends.info_local":"ますとどんちほー",
"mstdn.kemono-friends.info_notification":"ねえねえ!",
"mstdn.kemono-friends.info_public":"ジャパリパーク",
"itabashi.0j0.jp":"instance",
"itabashi.0j0.jp_name":"板橋丼",
"itabashi.0j0.jp_letters":"1024",
"itabashi.0j0.jp_bbcode":"disabled",
"itabashi.0j0.jp_markdown":"disabled",
"theboss.tech":"instance",
"theboss.tech_name":"theboss.tech",
"theboss.tech_letters":"1000",
"theboss.tech_bbcode":"disabled",
"theboss.tech_markdown":"disabled",
"dtp-mstdn.jp":"instance",
"dtp-mstdn.jp_name":"DTP鯖",
"dtp-mstdn.jp_letters":"500",
"dtp-mstdn.jp_bbcode":"disabled",
"dtp-mstdn.jp_markdown":"disabled"
};
var input = document.getElementById("url"); localStorage.setItem("instance", JSON.stringify(idata));
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

@ -5,71 +5,6 @@
localStorage.removeItem("kirishima") localStorage.removeItem("kirishima")
localStorage.removeItem("imas") localStorage.removeItem("imas")
localStorage.removeItem("image"); localStorage.removeItem("image");
var idata={
"kirishima.cloud":"instance",
"kirishima.cloud_name":"アスタルテ",
"kirishima.cloud_letters":"6229",
"kirishima.cloud_bbcode":"enabled",
"kirishima.cloud_markdown":"enabled",
"minohdon.jp":"instance",
"minohdon.jp_name":"箕面丼",
"minohdon.jp_letters":"500",
"minohdon.jp_bbcode":"disabled",
"minohdon.jp_markdown":"disabled",
"knzk.me":"instance",
"knzk.me_name":"神崎丼",
"knzk.me_letters":"5000",
"knzk.me_bbcode":"disabled",
"knzk.me_markdown":"disabled",
"mastodos.com":"instance",
"mastodos.com_name":"マストどす",
"mastodos.com_letters":"500",
"mastodos.com_bbcode":"disabled",
"mastodos.com_markdown":"disabled",
"dev.kirishima.cloud":"hidden",
"dev.kirishima.cloud_name":"アスタルテ(Dev)",
"dev.kirishima.cloud_letters":"6229",
"dev.kirishima.cloud_bbcode":"enabled",
"dev.kirishima.cloud_markdown":"enabled",
"mstdn.y-zu.org":"instance",
"mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
"mstdn.y-zu.org_letters":"500",
"mstdn.y-zu.org_bbcode":"disabled",
"mstdn.y-zu.org_markdown":"disabled",
"imastodon.net":"instance",
"imastodon.net_name":"im@stodon",
"imastodon.net_letters":"500",
"imastodon.net_bbcode":"disabled",
"imastodon.net_markdown":"disabled",
"imastodon.net_home":"オフィス",
"imastodon.net_local":"楽屋",
"imastodon.net_notification":"ホワイトボード",
"imastodon.net_public":"ライブステージ",
"mstdn.osaka":"instance",
"mstdn.osaka_name":"大阪丼",
"mstdn.osaka_letters":"500",
"mstdn.osaka_bbcode":"disabled",
"mstdn.osaka_markdown":"disabled",
"mstdn.osaka_home":"ウチ",
"mstdn.osaka_local":"近所",
"mstdn.osaka_notification":"あめちゃん",
"mstdn.osaka_public":"新世界",
"mstdn.kemono-friends.info":"instance",
"mstdn.kemono-friends.info_name":"ますとどんちほー",
"mstdn.kemono-friends.info_letters":"1024",
"mstdn.kemono-friends.info_bbcode":"disabled",
"mstdn.kemono-friends.info_markdown":"disabled",
"mstdn.kemono-friends.info_home":"なわばり",
"mstdn.kemono-friends.info_local":"ますとどんちほー",
"mstdn.kemono-friends.info_notification":"ねえねえ!",
"mstdn.kemono-friends.info_public":"ジャパリパーク",
"itabashi.0j0.jp":"instance",
"itabashi.0j0.jp_name":"板橋丼",
"itabashi.0j0.jp_letters":"1024",
"itabashi.0j0.jp_bbcode":"disabled",
"itabashi.0j0.jp_markdown":"disabled",
};
localStorage.setItem("instance", JSON.stringify(idata));
function ck() { function ck() {
var main = localStorage.getItem("main"); var main = localStorage.getItem("main");
@ -236,7 +171,9 @@ function getdata() {
name: json["display_name"], name: json["display_name"],
domain: domain, domain: domain,
user: json["acct"], user: json["acct"],
prof: avatar prof: avatar,
id: json["id"],
vis: json["source"]["privacy"]
}]; }];
var json = JSON.stringify(obj); var json = JSON.stringify(obj);
console.log(obj); console.log(obj);
@ -285,7 +222,8 @@ function getdataAdv(domain, at) {
domain: domain, domain: domain,
user: json["acct"], user: json["acct"],
prof: avatar, prof: avatar,
id: json["id"] id: json["id"],
vis: json["source"]["privacy"]
}; };
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi); var obj = JSON.parse(multi);
@ -408,6 +346,12 @@ function multi() {
} }
$("#acct-sel-prof").attr("src",profimg); $("#acct-sel-prof").attr("src",profimg);
$("#toot-post-btn").text("トゥート("+domain+")"); $("#toot-post-btn").text("トゥート("+domain+")");
if(acct.background && acct.background!="def" && acct.text && acct.text!="def"){
$("#toot-post-btn").removeClass("indigo");
$("#toot-post-btn").css("background-color","#"+acct.background);
$("#toot-post-btn").css("color",acct.text);
}else{
}
if(domain=="kirishima.cloud"){ if(domain=="kirishima.cloud"){
$("#faicon-btn").show(); $("#faicon-btn").show();
}else{ }else{

View File

@ -30,7 +30,12 @@ function load() {
Object.keys(obj).forEach(function(key) { Object.keys(obj).forEach(function(key) {
var acct = obj[key]; var acct = obj[key];
var list = key * 1 + 1; var list = key * 1 + 1;
templete = '<div id="acct_' + key + '" class="card"><div class="card-content white-text"><span class="lts">' + list + if(acct.background!="def" && acct.text!="def"){
var style='style="background-color:#'+acct.background+'; color:'+acct.text+';"'
}else{
var style=""
}
templete = '<div id="acct_' + key + '" class="card" '+style+'><div class="card-content "><span class="lts">' + list +
'.</span><img src="' + acct.prof + '" width="40" height="40"><span class="card-title">' + '.</span><img src="' + acct.prof + '" width="40" height="40"><span class="card-title">' +
acct.name + '</span>' + escapeHTML(acct.user) + '@' + acct.domain + acct.name + '</span>' + escapeHTML(acct.user) + '@' + acct.domain +
'</div><div class="card-action"><a class="waves-effect disTar pointer white-text" onclick="data(\'' + '</div><div class="card-action"><a class="waves-effect disTar pointer white-text" onclick="data(\'' +
@ -39,8 +44,9 @@ function load() {
key + key +
')"><i class="material-icons">refresh</i>情報更新</a><a class="waves-effect disTar pointer red-text" onclick="multiDel(' + ')"><i class="material-icons">refresh</i>情報更新</a><a class="waves-effect disTar pointer red-text" onclick="multiDel(' +
key + key +
')"><i class="material-icons">delete</i>削除</a></div></div>'; ')"><i class="material-icons">delete</i>削除</a><br>アカウントカラーの選択<div id="colorsel_'+key+'" class="colorsel"></div></div></div>';
$("#acct-list").append(templete); $("#acct-list").append(templete);
colorpicker(key)
}); });
multisel(); multisel();
var acctN = localStorage.getItem("acct"); var acctN = localStorage.getItem("acct");
@ -120,13 +126,11 @@ function multiDel(target) {
//サポートインスタンス //サポートインスタンス
function support() { function support() {
var json=JSON.parse(localStorage.getItem("instance")); Object.keys(idata).forEach(function(key) {
console.log(json); var instance = idata[key];
Object.keys(json).forEach(function(key) {
var instance = json[key];
if (instance == "instance") { if (instance == "instance") {
templete = '<a onclick="login(\'' + key + templete = '<a onclick="login(\'' + key +
'\')" class="collection-item pointer transparent">' + json[key + "_name"] + '(' + key + ')</a>'; '\')" class="collection-item pointer transparent">' + idata[key + "_name"] + '(' + key + ')</a>';
$("#support").append(templete); $("#support").append(templete);
} }
}); });
@ -268,7 +272,8 @@ function getdata(domain, at) {
domain: domain, domain: domain,
user: json["acct"], user: json["acct"],
prof: avatar, prof: avatar,
id: json["id"] id: json["id"],
vis: json["source"]["privacy"]
}; };
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi); var obj = JSON.parse(multi);
@ -322,7 +327,8 @@ function refresh(target) {
domain: obj[target].domain, domain: obj[target].domain,
user: json["acct"], user: json["acct"],
prof: avatar, prof: avatar,
id: json["id"] id: json["id"],
vis: json["source"]["privacy"]
}; };
localStorage.setItem("name_" + target, json["display_name"]); localStorage.setItem("name_" + target, json["display_name"]);
localStorage.setItem("user_" + target, json["acct"]); localStorage.setItem("user_" + target, json["acct"]);
@ -386,3 +392,104 @@ function mainacct(){
localStorage.setItem("main", acct_id); localStorage.setItem("main", acct_id);
Materialize.toast("メインアカウントを設定しました。", 3000); Materialize.toast("メインアカウントを設定しました。", 3000);
} }
function colorpicker(key){
temp=
'<div onclick="coloradd('+key+',\'def\',\'def\')" class="pointer exc">なし</div>'+
'<div onclick="coloradd('+key+',\'f44336\',\'white\')" class="red white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'e91e63\',\'white\')" class="pink white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'9c27b0\',\'white\')" class="purple white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'673ab7\',\'white\')" class="deep-purple white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'3f51b5\',\'white\')" class="indigo white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'2196f3\',\'white\')" class="blue white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'03a9f4\',\'black\')" class="light-blue black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'00bcd4\',\'black\')" class="cyan black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'009688\',\'white\')" class="teal white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'4caf50\',\'black\')" class="green black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'8bc34a\',\'black\')" class="light-green black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'cddc39\',\'black\')" class="lime black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'ffeb3b\',\'black\')" class="yellow black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'ffc107\',\'black\')" class="amber black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'ff9800\',\'black\')" class="orange black-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'ff5722\',\'white\')" class="deep-orange white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'795548\',\'white\')" class="brown white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'9e9e9e\',\'white\')" class="grey white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'607d8b\',\'white\')" class="blue-grey white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'000000\',\'white\')" class="black white-text pointer"></div>'+
'<div onclick="coloradd('+key+',\'ffffff\',\'black\')" class="white black-text pointer"></div>';
$("#colorsel_"+key).html(temp);
}
function coloradd(key,bg,txt){
var col = localStorage.getItem("multi");
var o = JSON.parse(col);
var obj=o[key];
obj.background=bg;
obj.text=txt;
o[key]=obj;
var json = JSON.stringify(o);
localStorage.setItem("multi", json);
if(txt=="def"){
$("#acct_"+key).attr("style","")
}else{
$("#acct_"+key).css('background-color','#'+bg);
if(txt=="black"){
var bghex="000000";
var ichex="9e9e9e"
}else if(txt=="white"){
var bghex="ffffff";
var ichex="eeeeee"
}
$("#acct_"+key+" .nex").css('color','#'+ichex);
$("#acct_"+key).css('color','#'+bghex);
}
}
//入力時にハッシュタグと@をサジェスト
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

@ -49,8 +49,3 @@ function shot(){
}) })
}) })
} }
$(window).load(function(){
setTimeout(function(){
shot();
},2000);
});

View File

@ -9,8 +9,7 @@ function mdCheck(){
$(".markdown").addClass("hide"); $(".markdown").addClass("hide");
$(".anti-markdown").addClass("hide"); $(".anti-markdown").addClass("hide");
}else{ }else{
$(".markdown").removeClass("hide"); $(".anti-markdown").removeClass("hide");
$(".anti-markdown").addClass("hide");
} }
if($(".markdown").hasClass("hide")){ if($(".markdown").hasClass("hide")){
localStorage.setItem("md","hide"); localStorage.setItem("md","hide");
@ -38,6 +37,21 @@ function mdCheck(){
}else{ }else{
$("#textarea").attr("data-length", 500) $("#textarea").attr("data-length", 500)
} }
var multi = localStorage.getItem("multi");
if (multi) {
var obj = JSON.parse(multi);
if(obj[acct_id].background && obj[acct_id].background!="def" && obj[acct_id].text && obj[acct_id].text!="def"){
$("#toot-post-btn").removeClass("indigo");
$("#toot-post-btn").css("background-color","#"+obj[acct_id].background);
$("#toot-post-btn").css("color",obj[acct_id].text);
}else{
$("#toot-post-btn").css("background-color","");
$("#toot-post-btn").css("color","");
$("#toot-post-btn").addClass("indigo");
}
}
loadVis();
} }
//BOXのトグルボタン //BOXのトグルボタン
function mdToggle(){ function mdToggle(){

View File

@ -6,10 +6,28 @@ function post() {
} }
var str = $("#textarea").val(); var str = $("#textarea").val();
var acct_id = $("#post-acct-sel").val(); var acct_id = $("#post-acct-sel").val();
$("#toot-post-btn").prop("disabled", true);
localStorage.setItem("last-use", acct_id); localStorage.setItem("last-use", acct_id);
todo("Posting");
var domain = localStorage.getItem("domain_" + acct_id); var domain = localStorage.getItem("domain_" + acct_id);
if(domain=="theboss.tech"){
if(~str.indexOf("#")){
if(str.indexOf("#theboss_tech")=="-1"){
if(!confirm("デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。")){
return false;
}
}
}
}
if(domain=="dtp-mstdn.jp"){
if(~str.indexOf("#")){
if(str.indexOf("#dtp")=="-1"){
if(!confirm("デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。")){
return false;
}
}
}
}
$("#toot-post-btn").prop("disabled", true);
todo("Posting");
var at = localStorage.getItem(domain + "_at"); var at = localStorage.getItem(domain + "_at");
var start = "https://" + domain + "/api/v1/statuses"; var start = "https://" + domain + "/api/v1/statuses";
var reply = $("#reply").val(); var reply = $("#reply").val();
@ -80,16 +98,7 @@ function clear() {
$("#cw").removeClass("cw-avail"); $("#cw").removeClass("cw-avail");
$("#rec").text("いいえ"); $("#rec").text("いいえ");
$("#mec").text("なし"); $("#mec").text("なし");
var vist = localStorage.getItem("vis"); loadVis();
if (!vist) {
vis("public");
} else {
if (vist == "memory") {
localStorage.setItem("vis-memory", $("#vis").text());
} else {
vis(vist);
}
}
$("#nsfw").removeClass("yellow-text"); $("#nsfw").removeClass("yellow-text");
$("#nsfw").html("visibility_off"); $("#nsfw").html("visibility_off");
$("#nsfw").removeClass("nsfw-avail"); $("#nsfw").removeClass("nsfw-avail");

View File

@ -37,16 +37,28 @@ function vis(set){
} }
var vis=localStorage.getItem("vis"); var vis=localStorage.getItem("vis");
if(vis=="memory"){ if(vis=="memory"){
localStorage.setItem("vis-memory",set); var acct_id = $("#post-acct-sel").val();
localStorage.setItem("vis-memory-"+acct_id,set);
} }
} }
function loadVis(){ function loadVis(){
var vist = localStorage.getItem("vis"); var vist = localStorage.getItem("vis");
console.log(vist);
if (!vist) { if (!vist) {
vis("public"); vis("public");
} else { } else {
if (vist == "memory") { if (vist == "memory") {
var memory = localStorage.getItem("vis-memory"); var acct_id = $("#post-acct-sel").val();
var memory = localStorage.getItem("vis-memory-"+acct_id);
if (!memory) {
memory = "public";
}
vis(memory);
} else if(vist == "server") {
var acct_id = $("#post-acct-sel").val();
var multi = localStorage.getItem("multi");
var obj = JSON.parse(multi);
var memory = obj[acct_id]["vis"];
if (!memory) { if (!memory) {
memory = "public"; memory = "public";
} }
@ -58,7 +70,7 @@ function loadVis(){
} }
loadVis(); loadVis();
//コンテンワーニング //コンテンワーニング
function cw(){ function cw(){
if($("#cw").hasClass("cw-avail")){ if($("#cw").hasClass("cw-avail")){
$("#cw-text").val(); $("#cw-text").val();
@ -75,8 +87,23 @@ function cw(){
} }
} }
} }
//TLでコンテンワーニングを表示トグル //TLでコンテンワーニングを表示トグル
function cw_show(id){ function cw_show(id){
$(".cw_hide_"+id).toggleClass("cw"); $(".cw_hide_"+id).toggleClass("cw");
$(".cw-long-"+id).toggleClass("hide"); $(".cw-long-"+id).toggleClass("hide");
} }
$(function() {
$('#cw-text').on('change', function(event) {
var acct_id = $("#post-acct-sel").val();
var domain = localStorage.getItem("domain_" + acct_id);
var cwlen=$('#cw-text').val().length;
if(idata[domain+"_letters"]){
$("#textarea").attr("data-length", idata[domain+"_letters"]-cwlen)
}else{
$("#textarea").attr("data-length", 500-cwlen)
}
});
});

View File

@ -210,10 +210,12 @@ function cbCopy(mode){
//本文のコピー //本文のコピー
function staCopy(id){ function staCopy(id){
var html=$("[toot-id="+id+"] .toot").html(); var html=$("[toot-id="+id+"] .toot").html();
html = html.match(/^<p>(.+)<\/p>$/)[1]; html = html.replace(/^<p>(.+)<\/p>$/,"$1");
html = html.replace(/<br\s?\/?>/, "\n"); html = html.replace(/<br\s?\/?>/, "\n");
html = html.replace(/<p>/, "\n"); html = html.replace(/<p>/, "\n");
html = html.replace(/<\/p>/, "\n"); html = html.replace(/<\/p>/, "\n");
console.log(html);
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
html=$.strip_tags(html); html=$.strip_tags(html);
if(execCopy(html)){ if(execCopy(html)){
Materialize.toast("トゥート本文をコピーしました", 1500); Materialize.toast("トゥート本文をコピーしました", 1500);
@ -222,14 +224,49 @@ function staCopy(id){
} }
//魚拓 //魚拓
function shot(){ function shot(){
var id=$("#tootmodal").attr("data-id"); var title=$("#tootmodal").attr("data-id");
var w=$("#toot-this").width(); var off = $('#toot-this').offset();
var h=$("#toot-this").height()+150; var w=$("#toot-this").width()+50;
var text=$("#toot-this").html(); var h=$("#toot-this").height()+50;
localStorage.setItem("sc-text",text)
var electron = require("electron"); var electron = require("electron");
const fs = require("fs");
const os = require('os')
const shell = electron.shell;
const path = require('path')
var ipc = electron.ipcRenderer; var ipc = electron.ipcRenderer;
ipc.send('screen', [w,h,id]); let options = {
types: ['screen'],
thumbnailSize: {
width: window.parent.screen.width,
height: window.parent.screen.height
}
}
const desktopCapturer = electron.desktopCapturer;
desktopCapturer.getSources(options, function(error, sources) {
if (error) return console.log(error)
sources.forEach(function(source) {
if (source.name === 'Screen 1' || source.name === 'TheDesk') {
var durl=source.thumbnail.toDataURL();
var b64 = durl.match(
/data:image\/png;base64,(.+)/
);
const screenshotPath = path.join(os.tmpdir(), 'screenshot.png');
const savePath = path.join(os.tmpdir(), 'screenshot.png');
var ipc = electron.ipcRenderer;
ipc.send('shot', ['file://' + screenshotPath,w,h,b64[1],title,off.top+50,off.left]);
if($("#toot-this .img-parsed").length>0){
for(i=0;i<$("#toot-this .img-parsed").length;i++){
var url=$("#toot-this .img-parsed").eq(i).attr("data-url");
ipc.send('shot-img-dl', [url,title+"_img"+i+".png"]);
}
}
return;
const message = `Saved screenshot to: ${screenshotPath}`
//screenshotMsg.textContent = message
}
})
})
} }
//翻訳 //翻訳
function trans(tar){ function trans(tar){

View File

@ -36,7 +36,7 @@ function mixtl(acct_id, tlid, type) {
var homearr=[]; var homearr=[];
var timeline = jsonL.concat(jsonH); var timeline = jsonL.concat(jsonH);
timeline.sort(function(a,b){ timeline.sort(function(a,b){
if(date(a.created_at,"unix")>date(b.created_at,"unix")) return -1; if(date(a.created_at,"unix")>=date(b.created_at,"unix")) return -1;
if(date(a.created_at,"unix")<date(b.created_at,"unix")) return 1; if(date(a.created_at,"unix")<date(b.created_at,"unix")) return 1;
return 0; return 0;
}); });
@ -85,15 +85,15 @@ function mixre(acct_id, tlid, TLtype) {
websocketHome[wshid] = new WebSocket(startHome); websocketHome[wshid] = new WebSocket(startHome);
websocketLocal[wslid] = new WebSocket(startLocal); websocketLocal[wslid] = new WebSocket(startLocal);
websocketHome[wshid].onopen = function(mess) { websocketHome[wshid].onopen = function(mess) {
console.log("Connect Streaming API(Home)"); console.log("Connect Streaming API(Integrated:Home)");
$("#notice_icon_" + tlid).removeClass("red-text"); $("#notice_icon_" + tlid).removeClass("red-text");
} }
websocketLocal[wslid].onopen = function(mess) { websocketLocal[wslid].onopen = function(mess) {
console.log("Connect Streaming API(Local)"); console.log("Connect Streaming API(Integrated:Local)");
$("#notice_icon_" + tlid).removeClass("red-text"); $("#notice_icon_" + tlid).removeClass("red-text");
} }
websocketLocal[wslid].onmessage = function(mess) { websocketLocal[wslid].onmessage = function(mess) {
console.log("Receive Streaming API:"); console.log("Receive Streaming API:(Integrated:Local)");
var obj = JSON.parse(JSON.parse(mess.data).payload); var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj); console.log(obj);
@ -103,12 +103,14 @@ function mixre(acct_id, tlid, TLtype) {
$("[toot-id=" + JSON.parse(mess.data).payload + "]").remove(); $("[toot-id=" + JSON.parse(mess.data).payload + "]").remove();
} else if (type == "update") { } else if (type == "update") {
var templete = parse([obj], '', acct_id, tlid); var templete = parse([obj], '', acct_id, tlid);
if (!$("[toot-id="+obj.id+"]").length) { if (!$("#timeline_"+tlid+" [toot-id="+obj.id+"]").length) {
var pool = localStorage.getItem("pool_" + tlid); var pool = localStorage.getItem("pool_" + tlid);
if (pool) { if (pool && templete) {
pool = templete + pool; pool = templete + pool;
} else { } else if (templete) {
pool = templete pool = templete
}else{
pool="";
} }
localStorage.setItem("pool_" + tlid, pool); localStorage.setItem("pool_" + tlid, pool);
scrollck(); scrollck();
@ -118,7 +120,7 @@ function mixre(acct_id, tlid, TLtype) {
}} }}
} }
websocketHome[wshid].onmessage = function(mess) { websocketHome[wshid].onmessage = function(mess) {
console.log("Receive Streaming API:(Home)"); console.log("Receive Streaming API:(Integrated:Home)");
var obj = JSON.parse(JSON.parse(mess.data).payload); var obj = JSON.parse(JSON.parse(mess.data).payload);
console.log(obj); console.log(obj);
@ -136,12 +138,14 @@ function mixre(acct_id, tlid, TLtype) {
var templete=""; var templete="";
} }
} }
if (!$("[toot-id="+obj.id+"]").length) { if (!$("#timeline_"+tlid+" [toot-id="+obj.id+"]").length) {
var pool = localStorage.getItem("pool_" + tlid); var pool = localStorage.getItem("pool_" + tlid);
if (pool) { if (pool && templete) {
pool = templete + pool; pool = templete + pool;
} else { } else if (templete) {
pool = templete pool = templete
}else{
pool="";
} }
localStorage.setItem("pool_" + tlid, pool); localStorage.setItem("pool_" + tlid, pool);
scrollck(); scrollck();

View File

@ -135,7 +135,7 @@ function parse(obj, mix, acct_id, tlid, popup) {
var emoji = toot.account.emojis[key5]; var emoji = toot.account.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'">'; '" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
dis_name = dis_name.replace(regExp, emoji_url); dis_name = dis_name.replace(regExp, emoji_url);
@ -208,7 +208,7 @@ function parse(obj, mix, acct_id, tlid, popup) {
var emoji = toot.account.emojis[key5]; var emoji = toot.account.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'">'; '" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
dis_name = dis_name.replace(regExp, emoji_url); dis_name = dis_name.replace(regExp, emoji_url);
}); });
@ -239,7 +239,7 @@ function parse(obj, mix, acct_id, tlid, popup) {
var emoji = toot.account.emojis[key5]; var emoji = toot.account.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'">'; '" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
dis_name = dis_name.replace(regExp, emoji_url); dis_name = dis_name.replace(regExp, emoji_url);
}); });
@ -345,7 +345,7 @@ function parse(obj, mix, acct_id, tlid, popup) {
var emoji = toot.emojis[key5]; var emoji = toot.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'">'; '" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
content = content.replace(regExp, emoji_url); content = content.replace(regExp, emoji_url);
spoil = spoil.replace(regExp, emoji_url); spoil = spoil.replace(regExp, emoji_url);
@ -623,7 +623,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
var emoji = toot.emojis[key5]; var emoji = toot.emojis[key5];
var shortcode = emoji.shortcode; var shortcode = emoji.shortcode;
var emoji_url = '<img src="' + emoji.url + var emoji_url = '<img src="' + emoji.url +
'" class="emoji-img" data-emoji="'+shortcode+'">'; '" class="emoji-img" data-emoji="'+shortcode+'" alt=" :'+shortcode+': ">';
var regExp = new RegExp(":" + shortcode + ":", "g"); var regExp = new RegExp(":" + shortcode + ":", "g");
dis_name = dis_name.replace(regExp, emoji_url); dis_name = dis_name.replace(regExp, emoji_url);
}); });

View File

@ -44,6 +44,7 @@ function parseColumn() {
ckdb(key); ckdb(key);
}); });
} }
var acctlist=obj;
var xed=localStorage.getItem("xed"); var xed=localStorage.getItem("xed");
if(xed){ if(xed){
xpand(); xpand();
@ -88,12 +89,15 @@ function parseColumn() {
var txhex="ffffff"; var txhex="ffffff";
var ichex="eeeeee" var ichex="eeeeee"
} }
insert=' style="background-color:#'+acct.background+'; color: #'+txhex+'" '; insert='background-color:#'+acct.background+'; color: #'+txhex+'; ';
icnsert=' style="color: #'+ichex+'" '; icnsert=' style="color: #'+ichex+'" ';
} }
} }
if(acctlist[acct.domain].background!="def"){
insert=insert+" border-bottom:medium solid #"+acctlist[acct.domain].background;
}
var html = '<div class="box" id="timeline_box_' + key + '_box" tlid="' + key + var html = '<div class="box" id="timeline_box_' + key + '_box" tlid="' + key +
'" data-acct="'+acct.domain+'"><div class="notice-box z-depth-2" id="menu_'+key+'"'+insert+'>'+ '" data-acct="'+acct.domain+'"><div class="notice-box z-depth-2" id="menu_'+key+'" style="'+insert+'">'+
'<div class="area-notice"><i class="material-icons waves-effect red-text" id="notice_icon_' + key + '"'+notf_attr+' style="font-size:40px; padding-top:25%;" onclick="goTop(' + key + ')" title="一番上へ。アイコンが赤のときはストリーミングに接続できていません。F5等で再読込をお試し下さい。"></i></div>'+ '<div class="area-notice"><i class="material-icons waves-effect red-text" id="notice_icon_' + key + '"'+notf_attr+' style="font-size:40px; padding-top:25%;" onclick="goTop(' + key + ')" title="一番上へ。アイコンが赤のときはストリーミングに接続できていません。F5等で再読込をお試し下さい。"></i></div>'+
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>'+ '<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>'+
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key + '<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
@ -249,7 +253,8 @@ function coloradd(key,bg,txt){
var json = JSON.stringify(o); var json = JSON.stringify(o);
localStorage.setItem("column", json); localStorage.setItem("column", json);
if(txt=="def"){ if(txt=="def"){
$("#menu_"+key).attr("style","") $("#menu_"+key).css("background-color","");
$("#menu_"+key).css("color","");
}else{ }else{
$("#menu_"+key).css('background-color','#'+bg); $("#menu_"+key).css('background-color','#'+bg);
if(txt=="black"){ if(txt=="black"){

View File

@ -193,23 +193,9 @@ ipc.on('update', function(e, x, y) {
return false; return false;
} }
}) })
ipc.on('screen', function(e, args) {
var window = new BrowserWindow({
width: args[0],
height: args[1],
"transparent": false, // ウィンドウの背景を透過
"frame": false, // 枠の無いウィンドウ
"resizable": true
});
window.loadURL('file://' + __dirname + '/screenshot.html?id='+args[2]);
window.setAlwaysOnTop(true);
window.setPosition(0, 0);
return "true"
})
//Web魚拓 //Web魚拓
ipc.on('shot', function(e, args) { ipc.on('shot', function(e, args) {
console.log(args[0]); console.log("link:"+args[0]+" width:"+args[1]+" height:"+args[2]+" title:"+args[4]+" top:"+args[5]+" left:"+args[6]);
var platform=process.platform; var platform=process.platform;
var bit=process.arch; var bit=process.arch;
if(platform=="win32"){ if(platform=="win32"){
@ -221,17 +207,21 @@ ipc.on('shot', function(e, args) {
} }
Jimp.read(Buffer.from( args[3],'base64'), function (err, lenna) { Jimp.read(Buffer.from( args[3],'base64'), function (err, lenna) {
if (err) throw err; if (err) throw err;
lenna.crop( 0, 0, args[1], args[2] ).write(dir); lenna.crop( args[6], args[5], args[1], args[2] ).write(dir);
}); });
shell.showItemInFolder(folder); shell.showItemInFolder(folder);
}) })
ipc.on('shot-img-dl', (e, args) => { ipc.on('shot-img-dl', (e, args) => {
Jimp.read(args[0], function (err, lenna) { Jimp.read(args[0], function (err, lenna) {
if (err) throw err; if (err) throw err;
if(process.platform=="win32"){
var folder=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\";
}else if(process.platform=="linux" || process.platform=="darwin" ){
var folder=app.getPath('home')+"/Pictures/TheDesk/Screenshots/";
}
lenna.write(folder+args[1]); lenna.write(folder+args[1]);
}); });
})
});
//アプデDL //アプデDL
ipc.on('download-btn', (e, args) => { ipc.on('download-btn', (e, args) => {
var platform=process.platform; var platform=process.platform;

View File

@ -76,21 +76,28 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.<br> SOFTWARE.<br>
<h5>EmojiOne</h5> <h5>Twitter Emoji (Twemoji)</h5>
<i class="fa fa-github"></i><a href="https://github.com/emojione/emojione" target="_blank">emojione/emojione</a><br> <i class="fa fa-github"></i><a href="https://github.com/twitter/twemoji" target="_blank">twitter/twemoji</a><br>
<h6>EmojiOne Artwork</h6> Copyright (c) 2018 Twitter, Inc and other contributors<br>
<ul> <br>
<li>Applies to all PNG files found in the emojione-assets repo as well as any adaptations made.</li> Permission is hereby granted, free of charge, to any person obtaining a copy
<li>Free license: <a href="https://www.emojione.com/developers/free-license" target="_blank">emojione.com/developers/free-license</a></li> of this software and associated documentation files (the "Software"), to deal
<li>Premium license: <a href="https://www.emojione.com/developers/premium-license" target="_blank">emojione.com/developers/premium-license</a></li> in the Software without restriction, including without limitation the rights
</ul> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
<h6>EmojiOne Non-Artwork</h6> copies of the Software, and to permit persons to whom the Software is
<ul> furnished to do so, subject to the following conditions:<br>
<li>Applies to the Javascript, JSON, PHP, CSS, HTML files, and everything else not covered under the artwork license above, found in both the emojione and emojione-assets repos.</li> <br>
<li>License: MIT</li> The above copyright notice and this permission notice shall be included in
<li>Complete Legal Terms: <a href="http://opensource.org/licenses/MIT" target="_blank">http://opensource.org/licenses/MIT</a></li> all copies or substantial portions of the Software.<br>
</ul> <br>
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE. <br>
<br>
<h5>Font Awesome</h5> <h5>Font Awesome</h5>
<i class="fa fa-github"></i><a href="https://github.com/FortAwesome/Font-Awesome" target="_blank">FortAwesome/Font-Awesome</a><br> <i class="fa fa-github"></i><a href="https://github.com/FortAwesome/Font-Awesome" target="_blank">FortAwesome/Font-Awesome</a><br>
Font Awesome Free License<br> Font Awesome Free License<br>

View File

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

View File

@ -150,7 +150,9 @@
<input class="with-gap" onchange="settings()" name="vis" type="radio" id="direct" value="direct" /> <input class="with-gap" onchange="settings()" name="vis" type="radio" id="direct" value="direct" />
<label for="direct">ダイレクト(Direct)</label> <label for="direct">ダイレクト(Direct)</label>
<input class="with-gap" onchange="settings()" name="vis" type="radio" id="memory" value="memory" /> <input class="with-gap" onchange="settings()" name="vis" type="radio" id="memory" value="memory" />
<label for="memory">前回の投稿設定を記憶する</label> <label for="memory">前回の投稿設定を記憶する(インスタンスごとに記憶されます)</label>
<input class="with-gap" onchange="settings()" name="vis" type="radio" id="server" value="server" />
<label for="server">マストドンアカウント設定の既定値</label>
<br> <br>
<h5>デフォルトでのボックスの挙動(起動時・トゥート後)</h5> <h5>デフォルトでのボックスの挙動(起動時・トゥート後)</h5>
<input class="with-gap" onchange="settings()" name="box" type="radio" id="b_yes" value="yes" /> <input class="with-gap" onchange="settings()" name="box" type="radio" id="b_yes" value="yes" />
@ -287,7 +289,7 @@
<button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i class="material-icons left">info</i>このソフトについて</button> <button class="btn waves-effect indigo" onclick="about()" style="width:100%; max-width:500px;"><i class="material-icons left">info</i>このソフトについて</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i class="material-icons left">web</i>公式HP</a> <a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i class="material-icons left">web</i>公式HP</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://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://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i class="material-icons left">list</i>ヘルプ/Docs(制作中)</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=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> <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>
<a class="btn waves-effect red lighten-2" href="https://osushi.love/Cutls_P" target="_blank" style="width:100%; max-width:500px;"><img src="./img/sushi.svg" class="left" width="25" style="padding-top:5px;">寿司を投げる</a> <a class="btn waves-effect red lighten-2" href="https://osushi.love/Cutls_P" target="_blank" style="width:100%; max-width:500px;"><img src="./img/sushi.svg" class="left" width="25" style="padding-top:5px;">寿司を投げる</a>
@ -299,7 +301,7 @@
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>) <a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
<br> <br>
</span><br> </span><br>
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>を応援しています。<br> TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>ログイン機能提供等の形で応援しています。<br>
タグタイムラインを開く:<a href="index.html?mode=tag&code=被災地支援のためのマストドン研究会">#被災地支援のためのマストドン研究会</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>

View File

@ -1 +1 @@
{"warn":"これはGCPにアップして下さい","warn2":"これはGCPにアップして下さい","warn3":"これはGCPにアップして下さい","desk":"Mio (15.6.0)","date":"2018-06-12","detail":"機能たくさん。アプデ後のアプリ内リリースノートなどで。"} {"warn":"これはGCPにアップして下さい","warn2":"これはGCPにアップして下さい","warn3":"これはGCPにアップして下さい","desk":"Mio (15.7.0)","date":"2018-06-17","detail":"機能たくさん。バグ修正多数。アプデ後のアプリ内リリースノートなどで。"}