TheDesk Akane (16.0.0) -phase 2
This commit is contained in:
parent
7f64bd6d2a
commit
5a920d63fd
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -5,3 +5,4 @@ TheDesk-*
|
|||
app/.DS_Store
|
||||
.DS_Store
|
||||
enq.md
|
||||
app/.tkn
|
||||
|
|
|
@ -25,6 +25,10 @@ body,html{overflow-y: scroll;}
|
|||
<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/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="./js/lang/lang.js"></script>
|
||||
<script>
|
||||
var lang="en";
|
||||
</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>
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
flex-direction:row;
|
||||
overflow-x:scroll;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
width:100vw;
|
||||
|
||||
}
|
||||
|
|
|
@ -54,13 +54,24 @@
|
|||
margin-right:15px;
|
||||
border-radius:5px;
|
||||
}
|
||||
#spot-box{
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
#spot-img{
|
||||
margin-right:2px;
|
||||
}
|
||||
#spot-art{
|
||||
margin-right:2px;
|
||||
margin-left:2px;
|
||||
}
|
||||
.btnsgroup .grouptitle{
|
||||
font-family:Open Sans;
|
||||
font-size:15px;
|
||||
}
|
||||
@media screen and (max-width: 1344px) {
|
||||
.btnsgroup .grouptitle{ display: none; }
|
||||
#tips{ display: none; }
|
||||
#tips,#tips-menu{ display: none; }
|
||||
}
|
||||
iframe {
|
||||
max-width:100%;
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
<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/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="./js/lang/lang.js"></script>
|
||||
<script type="text/javascript" src="./js/lang/parse.lang.js"></script>
|
||||
<script type="text/javascript" src="./js/common/time.js"></script>
|
||||
<script type="text/javascript" src="./js/common/version.js"></script>
|
||||
<script type="text/javascript" src="./js/common/keyshortcut.js"></script>
|
||||
|
@ -27,6 +29,7 @@
|
|||
var ver="Akane (16.0.0) beta";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//var ver="beta";
|
||||
var lang="en";
|
||||
var acct_id=0;
|
||||
var tlid=0;
|
||||
verck(ver);
|
||||
|
@ -735,6 +738,9 @@ var tlid=0;
|
|||
<a onclick="tips('trend')" class="nex waves-effect imasonly" style="display:none;">
|
||||
<i class="material-icons nex" title="アイマストドントレンド" data-trans-title="trendtip">whatshot</i>
|
||||
</a>
|
||||
<a onclick="tips('spotify')" class="nex waves-effect">
|
||||
<i class="fa fa-spotify nex" title="Spotify" data-trans-title="spotifytips"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tips" class="hide">
|
||||
|
|
|
@ -47,7 +47,7 @@ function verck(ver) {
|
|||
var newest=mess.desk;
|
||||
}
|
||||
if (newest == ver) {
|
||||
todo("お使いのバージョン" + mess.desk + "は最新です。");
|
||||
todo(lang_version_usever[lang].replace("{{ver}}" ,mess.desk));
|
||||
//betaならアプデチェックしない
|
||||
} else if (ver.indexOf("beta")==-1) {
|
||||
localStorage.removeItem("instance")
|
||||
|
@ -56,7 +56,7 @@ function verck(ver) {
|
|||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('update', "true");
|
||||
}else{
|
||||
todo("アップデートはスキップされました。");
|
||||
todo(lang_version_skipver[lang]);
|
||||
}
|
||||
}else{
|
||||
var ipc = electron.ipcRenderer;
|
||||
|
|
|
@ -9,16 +9,32 @@ var defaultemoji={
|
|||
place:place,
|
||||
symbol:symbol
|
||||
};
|
||||
var defaultemojiname={
|
||||
activity:"活動",
|
||||
flag:"国旗",
|
||||
food:"食べ物",
|
||||
nature:"自然",
|
||||
object:"もの",
|
||||
people:"ひと",
|
||||
place:"場所",
|
||||
symbol:"記号"
|
||||
};
|
||||
if(lang=="ja"){
|
||||
var defaultemojiname={
|
||||
activity:"活動",
|
||||
flag:"国旗",
|
||||
food:"食べ物",
|
||||
nature:"自然",
|
||||
object:"もの",
|
||||
people:"ひと",
|
||||
place:"場所",
|
||||
symbol:"記号"
|
||||
};
|
||||
var lang_defaultemojis_text="{{cat}}の絵文字";
|
||||
}else if(lang=="en"){
|
||||
var defaultemojiname={
|
||||
activity:"Activities",
|
||||
flag:"Flags",
|
||||
food:"Foods",
|
||||
nature:"Nature",
|
||||
object:"Tools",
|
||||
people:"People",
|
||||
place:"Places",
|
||||
symbol:"Symbols"
|
||||
};
|
||||
var lang_defaultemojis_text="Emojis of {{cat}}";
|
||||
}
|
||||
|
||||
function defaultEmoji(target){
|
||||
var json=defaultemoji[target];
|
||||
var emojis="";
|
||||
|
@ -27,7 +43,7 @@ function defaultEmoji(target){
|
|||
emojis = emojis + '<a onclick="defEmoji(\''+emoji["shortcode"]+'\')" class="pointer"><span style="width: 20px; height: 20px; display: inline-block; background-image: url(\'./img/sheet.png\'); background-size: 4900%; background-position: '+emoji["css"]+';"></span></a>';
|
||||
});
|
||||
$("#emoji-list").html(emojis);
|
||||
$("#now-emoji").text(defaultemojiname[target]+"の絵文字");
|
||||
$("#now-emoji").text(lang_defaultemojis_text.replace("{{cat}}" ,defaultemojiname[target]));
|
||||
$(".emoji-control").addClass("hide");
|
||||
}
|
||||
function customEmoji(){
|
||||
|
|
237
app/js/lang/lang.js
Normal file
237
app/js/lang/lang.js
Normal file
|
@ -0,0 +1,237 @@
|
|||
//commonError
|
||||
var lang_toot={
|
||||
"ja":"トゥート",
|
||||
"en":"Toot"
|
||||
}
|
||||
var lang_there={
|
||||
"ja":"あり",
|
||||
"en":"Yes"
|
||||
}
|
||||
var lang_nothing={
|
||||
"ja":"なし",
|
||||
"en":"None"
|
||||
}
|
||||
var lang_yesno={
|
||||
"ja":"はい",
|
||||
"en":"Yes"
|
||||
}
|
||||
var lang_no={
|
||||
"ja":"いいえ",
|
||||
"en":"No"
|
||||
}
|
||||
var lang_progress={
|
||||
"ja":"処理中",
|
||||
"en":"Wait..."
|
||||
}
|
||||
var lang_edit={
|
||||
"ja":"編集",
|
||||
"en":"Edit"
|
||||
}
|
||||
var lang_del={
|
||||
"ja":"削除",
|
||||
"en":"Delete"
|
||||
}
|
||||
var lang_add={
|
||||
"ja":"追加",
|
||||
"en":"Add"
|
||||
}
|
||||
var lang_fatalerroroccured={
|
||||
"ja":"エラーが発生しました。しばらく待ってから再起動してください。",
|
||||
"en":"Some errors are occured, please restart TheDesk."
|
||||
}
|
||||
//common/version.js
|
||||
var lang_version_usever={
|
||||
"ja":"お使いのバージョン{{ver}}は最新です。",
|
||||
"en":"No update is found({{ver}})"
|
||||
}
|
||||
var lang_version_skipver={
|
||||
"ja":"アップデートはスキップされました。",
|
||||
"en":"Update was ignored."
|
||||
}
|
||||
//login
|
||||
//login/login.js
|
||||
var lang_login_noauth={
|
||||
"ja":"認証せずに見る",
|
||||
"en":"Show TL of unlogined accounts"
|
||||
}
|
||||
//login/manager.js
|
||||
var lang_manager_info={
|
||||
"ja":"インスタンス情報",
|
||||
"en":"About this instance"
|
||||
}
|
||||
var lang_manager_refresh={
|
||||
"ja":"情報更新",
|
||||
"en":"Refresh"
|
||||
}
|
||||
var lang_manager_delete={
|
||||
"ja":"削除",
|
||||
"en":"Logout"
|
||||
}
|
||||
var lang_manager_color={
|
||||
"ja":"アカウントカラーを選択",
|
||||
"en":"Account Color"
|
||||
}
|
||||
var lang_manager_confirm={
|
||||
"ja":"を削除します。",
|
||||
"en":"is about to logout. Continue?"
|
||||
}
|
||||
var lang_manager_mainAcct={
|
||||
"ja":"メインアカウントを設定しました。",
|
||||
"en":"Done:choose main account"
|
||||
}
|
||||
//post/emoji.js
|
||||
var lang_emoji_get={
|
||||
"ja":"絵文字リストを取得",
|
||||
"en":"Get emojis"
|
||||
}
|
||||
var lang_emoji_custom={
|
||||
"ja":"カスタム絵文字",
|
||||
"en":"Custom emojis"
|
||||
}
|
||||
//post/img.js
|
||||
var lang_postimg_previewdis={
|
||||
"ja":"プレビューできません。",
|
||||
"en":"cannot preview"
|
||||
}
|
||||
var lang_postimg_aftupload={
|
||||
"ja":"アップロード後はアカウントを切り替えられません。",
|
||||
"en":"You cannot change accounts after uploading."
|
||||
}
|
||||
//post/post.js
|
||||
var lang_post_tagTL={
|
||||
"ja":"デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。",
|
||||
"en":"This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?"
|
||||
}
|
||||
//post/status.js
|
||||
var lang_status_favWarn={
|
||||
"ja":"お気に入り登録しました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"en":"It will take a miunte to favourite a remote toot."
|
||||
}
|
||||
var lang_status_btWarn={
|
||||
"ja":"ブーストしました。インスタンスが違うときは時間がかかる場合があります。",
|
||||
"en":"It will take a miunte to boost a remote toot."
|
||||
}
|
||||
var lang_status_follow={
|
||||
"ja":"フォロー",
|
||||
"en":"Follow"
|
||||
}
|
||||
var lang_status_unfollow={
|
||||
"ja":"フォロー解除",
|
||||
"en":"Unfollow"
|
||||
}
|
||||
var lang_status_block={
|
||||
"ja":"ブロック",
|
||||
"en":"Block"
|
||||
}
|
||||
var lang_status_unblock={
|
||||
"ja":"ブロック解除",
|
||||
"en":"Unblock"
|
||||
}
|
||||
var lang_status_mute={
|
||||
"ja":"ミュート",
|
||||
"en":"Mute"
|
||||
}
|
||||
var lang_status_unmute={
|
||||
"ja":"ミュート解除",
|
||||
"en":"Unmute"
|
||||
}
|
||||
var lang_status_redraft={
|
||||
"ja":"削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。",
|
||||
"en":"Continue to delete & redraft? You lose statuses of this toot. This fanction may contain some bugs. Images of this toot will be deleted on older than Mastodon 2.4.1."
|
||||
}
|
||||
var lang_status_emphas={
|
||||
"ja":"を強調します。リロードしてください。",
|
||||
"en":"'s toots are emphasized. Please reload after this action."
|
||||
}
|
||||
var lang_status_unemphas={
|
||||
"ja":"を強調解除します。リロードしてください。",
|
||||
"en":"'s toots are not emphasized. Please reload after this action."
|
||||
}
|
||||
//post/use-txtbox.js
|
||||
var lang_usetxtbox_reply={
|
||||
"ja":"返信モードです。クリアするときはCtrl+Shift+Cを押してください。",
|
||||
"en":"Reply Mode. Ctrl+Shift+C to clear."
|
||||
}
|
||||
//tl/card.js
|
||||
var lang_cards_check={
|
||||
"ja":"チェック",
|
||||
"en":" check"
|
||||
}
|
||||
var lang_cards_pip={
|
||||
"ja":"ながら観モード",
|
||||
"en":"PiP mode"
|
||||
}
|
||||
//tl/details.js
|
||||
var lang_details_nodata={
|
||||
"ja":"データなし",
|
||||
"en":"No data"
|
||||
}
|
||||
var lang_details_filtered={
|
||||
"ja":"フィルターされました。",
|
||||
"en":"Filtered toot"
|
||||
}
|
||||
var lang_details_embed={
|
||||
"ja":"埋め込みHTMLがコピーされました。",
|
||||
"en":"Embed HTML is cliped."
|
||||
}
|
||||
var lang_details_url={
|
||||
"ja":"トゥートURLがコピーされました。",
|
||||
"en":"URL of this toot is cliped."
|
||||
}
|
||||
var lang_details_txt={
|
||||
"ja":"トゥート本文がコピーされました。",
|
||||
"en":"Content of this toot is cliped."
|
||||
}
|
||||
//tl/filter.js
|
||||
var lang_filter_nodata={
|
||||
"ja":"フィルターはありません",
|
||||
"en":"No data"
|
||||
}
|
||||
var lang_filter_errordegree={
|
||||
"ja":"適応範囲を最低一つ以上チェックしてください。",
|
||||
"en":"Please check a context"
|
||||
}
|
||||
//tl/list.js
|
||||
var lang_list_nodata={
|
||||
"ja":"リストはありません",
|
||||
"en":"No data"
|
||||
}
|
||||
var lang_list_show={
|
||||
"ja":"表示",
|
||||
"en":"Show"
|
||||
}
|
||||
var lang_list_users={
|
||||
"ja":"ユーザー一覧",
|
||||
"en":"Users list"
|
||||
}
|
||||
var lang_list_nouser={
|
||||
"ja":"ユーザーはいません",
|
||||
"en":"No users in this list."
|
||||
}
|
||||
var lang_list_add={
|
||||
"ja":"リストに追加",
|
||||
"en":"Add to the list"
|
||||
}
|
||||
var lang_list_remove={
|
||||
"ja":"リストから削除",
|
||||
"en":"Remove from the list"
|
||||
}
|
||||
//js/notification.js
|
||||
var lang_notf_new={
|
||||
"ja":"件の新しい通知",
|
||||
"en":" new notifications"
|
||||
}
|
||||
//js/speech.js
|
||||
var lang_speech_refresh={
|
||||
"ja":"音声読み上げ設定を更新しました。",
|
||||
"en":"Refresh setting of TTS"
|
||||
}
|
||||
//js/src.js
|
||||
var lang_src_ts={
|
||||
"ja":"時系列",
|
||||
"en":"chronological order"
|
||||
}
|
||||
var lang_src_people={
|
||||
"ja":"人がトゥート",
|
||||
"en":" people toot"
|
||||
}
|
140
app/js/lang/parse.lang.js
Normal file
140
app/js/lang/parse.lang.js
Normal file
|
@ -0,0 +1,140 @@
|
|||
var lang_parse_mentioned={
|
||||
"ja":"が返信しました",
|
||||
"en":" replied to you"
|
||||
}
|
||||
var lang_parse_faved={
|
||||
"ja":"がお気に入り登録しました",
|
||||
"en":" favourited your toot"
|
||||
}
|
||||
var lang_parse_bted={
|
||||
"ja":"がブーストしました",
|
||||
"en":" boosted your toot"
|
||||
}
|
||||
var lang_parse_btedsimple={
|
||||
"ja":"がブースト",
|
||||
"en":" boosted"
|
||||
}
|
||||
var lang_parse_notftime={
|
||||
"ja":"通知された時間",
|
||||
"en":"Actioned at"
|
||||
}
|
||||
var lang_parse_cwshow={
|
||||
"ja":"見る",
|
||||
"en":"Show"
|
||||
}
|
||||
var lang_parse_fulltext={
|
||||
"ja":"以下全文",
|
||||
"en":"Full size text:"
|
||||
}
|
||||
var lang_parse_autofold={
|
||||
"ja":"自動折り畳み",
|
||||
"en":"Auto folded"
|
||||
}
|
||||
var lang_parse_more={
|
||||
"ja":"続き...",
|
||||
"en":"More"
|
||||
}
|
||||
var lang_parse_url={
|
||||
"ja":"URL解析",
|
||||
"en":"URL Analyzer"
|
||||
}
|
||||
var lang_parse_tagTL={
|
||||
"ja":"{{tag}}のタイムライン",
|
||||
"en":"Timeline of {{tag}}"
|
||||
}
|
||||
var lang_parse_tagtoot={
|
||||
"ja":"{{tag}}でトゥート",
|
||||
"en":"Toot with {{tag}}"
|
||||
}
|
||||
var lang_parse_tagpin={
|
||||
"ja":"{{tag}}をよく使うタグへ",
|
||||
"en":"Pin {{tag}}"
|
||||
}
|
||||
var lang_parse_public={
|
||||
"ja":"公開",
|
||||
"en":"Public"
|
||||
}
|
||||
var lang_parse_unlisted={
|
||||
"ja":"未収載",
|
||||
"en":"Unlisted"
|
||||
}
|
||||
var lang_parse_private={
|
||||
"ja":"非公開",
|
||||
"en":"Private"
|
||||
}
|
||||
var lang_parse_direct={
|
||||
"ja":"ダイレクト",
|
||||
"en":"Direct"
|
||||
}
|
||||
var lang_parse_clickcopy={
|
||||
"ja":"クリックして本文をコピー",
|
||||
"en":"Click to copy text of this toot"
|
||||
}
|
||||
var lang_parse_clickcopyurl={
|
||||
"ja":"クリックしてトゥートURLをコピー",
|
||||
"en":"Click to copy URL of this toot"
|
||||
}
|
||||
var lang_parse_trans={
|
||||
"ja":"このトゥートを日本語に翻訳",
|
||||
"en":"Translate to Japanese"
|
||||
}
|
||||
var lang_parse_replyto={
|
||||
"ja":"このトゥートに返信",
|
||||
"en":"Reply to this toot"
|
||||
}
|
||||
var lang_parse_bt={
|
||||
"ja":"このトゥートをブースト",
|
||||
"en":"Boost this toot"
|
||||
}
|
||||
var lang_parse_fav={
|
||||
"ja":"このトゥートをお気に入り登録",
|
||||
"en":"Favourite this toot"
|
||||
}
|
||||
var lang_parse_quote={
|
||||
"ja":"このトゥートを引用",
|
||||
"en":"Quote this toot"
|
||||
}
|
||||
var lang_parse_del={
|
||||
"ja":"このトゥートを削除",
|
||||
"en":"Delete this toot"
|
||||
}
|
||||
var lang_parse_pin={
|
||||
"ja":"このトゥートをピン留め",
|
||||
"en":"Pin this toot"
|
||||
}
|
||||
var lang_parse_det={
|
||||
"ja":"詳細(メインアカウント経由)",
|
||||
"en":"Details via your main account."
|
||||
}
|
||||
var lang_parse_redraft={
|
||||
"ja":"このトゥートを削除して再編集",
|
||||
"en":"Delete & re-draft"
|
||||
}
|
||||
var lang_parse_followed={
|
||||
"ja":"フォローされました。",
|
||||
"en":"Followed you"
|
||||
}
|
||||
var lang_parse_clientop={
|
||||
"ja":"クライアント処理",
|
||||
"en":"Operation of this client"
|
||||
}
|
||||
var lang_parse_clienttxt={
|
||||
"ja":"に対する処理を選択してください。",
|
||||
"en":" will be"
|
||||
}
|
||||
var lang_parse_clientno={
|
||||
"ja":"何もしない",
|
||||
"en":"done nothing"
|
||||
}
|
||||
var lang_parse_clientemp={
|
||||
"ja":"強調表示/解除",
|
||||
"en":"emphasized(/not emphasized)"
|
||||
}
|
||||
var lang_parse_clientmute={
|
||||
"ja":"ミュート",
|
||||
"en":"muted"
|
||||
}
|
||||
var lang_parse_mute={
|
||||
"ja":"ミュートします。設定から解除できます。",
|
||||
"en":" will be muted. You can remove on a setting."
|
||||
}
|
|
@ -172,7 +172,7 @@ function getdata() {
|
|||
console.log(json);
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast("エラーが発生しました。しばらく待ってから再起動してください。Error:" + json.error,
|
||||
Materialize.toast(lang_fatalerroroccured[lang]+"Error:" + json.error,
|
||||
5000);
|
||||
return;
|
||||
}
|
||||
|
@ -222,7 +222,7 @@ function getdataAdv(domain, at) {
|
|||
console.log(json);
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast("エラーが発生しました。しばらく待ってから再起動してください。Error:" + json.error,
|
||||
Materialize.toast(lang_fatalerroroccured[lang]+"Error:" + json.error,
|
||||
5000);
|
||||
return;
|
||||
}
|
||||
|
@ -348,7 +348,7 @@ function multiSelector() {
|
|||
console.log(obj.length)
|
||||
if(obj.length<1){
|
||||
$("#src-acct-sel").html('<option value="tootsearch">Tootsearch</option>');
|
||||
$("#add-acct-sel").html('<option value="noauth">認証せずに見る</option>');
|
||||
$("#add-acct-sel").html('<option value="noauth">'+lang_login_noauth[lang]+'</option>');
|
||||
}else{
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var acct = obj[key];
|
||||
|
@ -368,7 +368,7 @@ function multiSelector() {
|
|||
profimg="./img/missing.svg";
|
||||
}
|
||||
$("#acct-sel-prof").attr("src",profimg);
|
||||
$("#toot-post-btn").text("トゥート("+domain+")");
|
||||
$("#toot-post-btn").text(lang_toot[lang]+"("+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);
|
||||
|
@ -395,7 +395,7 @@ function multiSelector() {
|
|||
|
||||
});
|
||||
$("#src-acct-sel").append('<option value="tootsearch">Tootsearch</option>');
|
||||
$("#add-acct-sel").append('<option value="noauth">認証せずに見る</option>');
|
||||
$("#add-acct-sel").append('<option value="noauth">'+lang_login_noauth[lang]+'</option>');
|
||||
}
|
||||
$('select').material_select('update');
|
||||
}
|
||||
|
|
|
@ -40,11 +40,11 @@ function load() {
|
|||
acct.name + '</span>' + escapeHTML(acct.user) + '@' + acct.domain +
|
||||
'</div><div class="card-action"><a class="waves-effect disTar pointer white-text" onclick="data(\'' +
|
||||
acct.domain +
|
||||
'\')"><i class="material-icons">info</i>インスタンス情報</a><a class="waves-effect disTar pointer white-text" onclick="refresh(' +
|
||||
'\')"><i class="material-icons">info</i>'+lang_manager_info[lang]+'</a><a class="waves-effect disTar pointer white-text" onclick="refresh(' +
|
||||
key +
|
||||
')"><i class="material-icons">refresh</i>情報更新</a><a class="waves-effect disTar pointer red-text" onclick="multiDel(' +
|
||||
')"><i class="material-icons">refresh</i>'+lang_manager_refresh[lang]+'</a><a class="waves-effect disTar pointer red-text" onclick="multiDel(' +
|
||||
key +
|
||||
')"><i class="material-icons">delete</i>削除</a><br>アカウントカラーの選択<div id="colorsel_'+key+'" class="colorsel"></div></div></div>';
|
||||
')"><i class="material-icons">delete</i>'+lang_manager_delete[lang]+'</a><br>'+lang_manager_color[lang]+'<div id="colorsel_'+key+'" class="colorsel"></div></div></div>';
|
||||
$("#acct-list").append(templete);
|
||||
colorpicker(key)
|
||||
});
|
||||
|
@ -61,7 +61,11 @@ function load() {
|
|||
|
||||
}else{
|
||||
$("#linux").prop("checked", true);
|
||||
}
|
||||
}
|
||||
ipc.send('mkc', "");
|
||||
ipc.on('mkcr', function (event, arg) {
|
||||
localStorage.setItem("mkc",arg)
|
||||
})
|
||||
|
||||
}
|
||||
//最初に読む
|
||||
|
@ -114,7 +118,7 @@ function multiDel(target) {
|
|||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
//削除確認ダイアログ
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + "を削除します")) {
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] +lang_manager_confirm[lang])) {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var nk=key-1;
|
||||
//公開範囲(差分のみ)
|
||||
|
@ -178,7 +182,7 @@ function multiDel(target) {
|
|||
function multiDel2(target) {
|
||||
var multi = localStorage.getItem("multi");
|
||||
var obj = JSON.parse(multi);
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] + "を削除します")) {
|
||||
if (confirm(obj[target]["user"] + "@" + obj[target]["domain"] +lang_manager_confirm[lang])) {
|
||||
obj.splice(target, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("multi", json);
|
||||
|
@ -301,7 +305,7 @@ function misskeyLogin() {
|
|||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
httpreq.responseType = 'json';
|
||||
httpreq.send(JSON.stringify({
|
||||
appSecret: "D8Zoa1CFA12SeeJpAZDMc2VyAqtjqXZV"
|
||||
appSecret: localStorage.getItem("mkc")
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState == 4) {
|
||||
|
@ -399,7 +403,7 @@ function getdata(domain, at) {
|
|||
console.log(json);
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast("エラーが発生しました。しばらく待ってから再起動してください。Error:" + json.error,
|
||||
Materialize.toast(lang_fatalerroroccured[lang]+"Error:" + json.error,
|
||||
5000);
|
||||
return;
|
||||
}
|
||||
|
@ -459,7 +463,7 @@ function refresh(target) {
|
|||
console.log(json);
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast("エラーが発生しました。しばらく待ってから再起動してください。Error:" + json.error,
|
||||
Materialize.toast(lang_fatalerroroccured[lang]+"Error:" + json.error,
|
||||
5000);
|
||||
return;
|
||||
}
|
||||
|
@ -506,7 +510,7 @@ function multisel() {
|
|||
console.log(obj.length)
|
||||
if(obj.length<1){
|
||||
$("#src-acct-sel").html('<option value="tootsearch">Tootsearch</option>');
|
||||
$("#add-acct-sel").html('<option value="noauth">認証せずに見る</option>');
|
||||
$("#add-acct-sel").html('<option value="noauth">'+lang_login_noauth[lang]+'</option>');
|
||||
}else{
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var acct = obj[key];
|
||||
|
@ -536,7 +540,7 @@ function multisel() {
|
|||
function mainacct(){
|
||||
var acct_id = $("#main-acct-sel").val();
|
||||
localStorage.setItem("main", acct_id);
|
||||
Materialize.toast("メインアカウントを設定しました。", 3000);
|
||||
Materialize.toast(lang_manager_mainAcct[lang], 3000);
|
||||
}
|
||||
function colorpicker(key){
|
||||
temp=
|
||||
|
@ -620,7 +624,7 @@ input.addEventListener("focus", function() {
|
|||
console.log(json);
|
||||
if (!json.error) {
|
||||
|
||||
var urls = "もしかして:";
|
||||
var urls = "Suggest:";
|
||||
Object.keys(json.instances).forEach(function(key) {
|
||||
var url = json.instances[key];
|
||||
urls = urls + ' <a onclick="login(\'' + url.name +
|
||||
|
|
|
@ -155,7 +155,7 @@ function progshow(e) {
|
|||
if(percent<1){
|
||||
$("#imgup").text(Math.floor(percent*100)+"%");
|
||||
}else{
|
||||
$("#imgup").text("処理中");
|
||||
$("#imgup").text(lang_progress[lang]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ function mdCheck(){
|
|||
var acct_id = $("#post-acct-sel").val();
|
||||
var profimg=localStorage.getItem("prof_"+acct_id);
|
||||
$("#acct-sel-prof").attr("src",profimg);
|
||||
$("#toot-post-btn").text("トゥート("+localStorage.getItem("domain_"+acct_id)+")");
|
||||
$("#toot-post-btn").text(lang_toot[lang]+"("+localStorage.getItem("domain_"+acct_id)+")");
|
||||
if(!localStorage.getItem("bb_"+acct_id) && !localStorage.getItem("md_"+acct_id)){
|
||||
$(".markdown").addClass("hide");
|
||||
$(".anti-markdown").addClass("hide");
|
||||
|
|
|
@ -15,7 +15,7 @@ function emoji() {
|
|||
$("#emoji").removeClass("hide")
|
||||
if (!localStorage.getItem("emoji_" + acct_id)) {
|
||||
var html =
|
||||
'<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="emojiGet(\'true\');">絵文字リスト取得</button>';
|
||||
'<button class="btn waves-effect green" style="width:100%; padding:0; margin-top:0;" onclick="emojiGet(\'true\');">'+lang_emoji_get[lang]+'</button>';
|
||||
$("#emoji-list").html(html);
|
||||
} else {
|
||||
emojiList('home');
|
||||
|
@ -63,7 +63,7 @@ function emojiGet(parse) {
|
|||
|
||||
//リストの描画
|
||||
function emojiList(target) {
|
||||
$("#now-emoji").text("カスタム絵文字");
|
||||
$("#now-emoji").text(lang_emoji_custom[lang]);
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var start = localStorage.getItem("emojiseek");
|
||||
if (target == "next") {
|
||||
|
|
|
@ -43,7 +43,7 @@ function pimg(files) {
|
|||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('bmp-image', [files[i].path,i]);
|
||||
todo("変換中...");
|
||||
todo(lang_progress[lang]);
|
||||
|
||||
}else{
|
||||
handleFileUpload(files[i], obj,i);
|
||||
|
@ -117,7 +117,7 @@ function media(b64, type, no) {
|
|||
var html = '<img src="' + json.preview_url + '" style="width:50px; max-height:100px;">';
|
||||
$('#preview').append(html);
|
||||
} else {
|
||||
$('#preview').append("プレビューできません");
|
||||
$('#preview').append(lang_postimg_previewdis[lang]);
|
||||
}
|
||||
if (!img) {
|
||||
var img = "no-act";
|
||||
|
@ -135,8 +135,8 @@ function media(b64, type, no) {
|
|||
todc();
|
||||
$("#toot-post-btn").prop("disabled", false);
|
||||
$('select').material_select();
|
||||
$("#mec").text("あり");
|
||||
Materialize.toast("ファイルアップロード後はアカウントを切り替えられません。", 1000);
|
||||
$("#mec").text(lang_there[lang]);
|
||||
Materialize.toast(lang_postimg_aftupload[lang], 1000);
|
||||
$("#imgup").text("");
|
||||
$("#imgsel").show();
|
||||
localStorage.removeItem("image");
|
||||
|
|
|
@ -11,7 +11,7 @@ function post() {
|
|||
if(domain=="theboss.tech"){
|
||||
if(~str.indexOf("#")){
|
||||
if(str.indexOf("#theboss_tech")=="-1"){
|
||||
if(!confirm("デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。")){
|
||||
if(!confirm(lang_post_tagTL[lang])){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ function post() {
|
|||
if(domain=="dtp-mstdn.jp"){
|
||||
if(~str.indexOf("#")){
|
||||
if(str.indexOf("#dtp")=="-1"){
|
||||
if(!confirm("デフォルトタグが挿入されていません。このまま投稿するとローカルには表示されません。")){
|
||||
if(!confirm(lang_post_tagTL[lang])){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ function clear() {
|
|||
if(localStorage.getItem("stable")){
|
||||
$("#textarea").val(localStorage.getItem("stable"));
|
||||
}
|
||||
$("#textarea").attr("placeholder", "");
|
||||
$("#textarea").attr("placeholder", lang_toot[lang]);
|
||||
$("#reply").val("");
|
||||
$("#media").val("");
|
||||
var cwt = localStorage.getItem("cw-text");
|
||||
|
@ -102,13 +102,13 @@ function clear() {
|
|||
}
|
||||
$("#cw").removeClass("yellow-text");
|
||||
$("#cw").removeClass("cw-avail");
|
||||
$("#rec").text("いいえ");
|
||||
$("#mec").text("なし");
|
||||
$("#rec").text(lang_no[lang]);
|
||||
$("#mec").text(lang_nothing[lang]);
|
||||
loadVis();
|
||||
$("#nsfw").removeClass("yellow-text");
|
||||
$("#nsfw").html("visibility_off");
|
||||
$("#nsfw").removeClass("nsfw-avail");
|
||||
$("#nsc").text("なし");
|
||||
$("#nsc").text(lang_nothing[lang]);
|
||||
$("#drag").css("background-color", "#e0e0e0");
|
||||
$("#preview").html("");
|
||||
$("#toot-post-btn").prop("disabled", false);
|
||||
|
|
|
@ -43,7 +43,7 @@ function fav(id, acct_id, remote) {
|
|||
$(".fav_" + id).addClass("yellow-text");
|
||||
}
|
||||
}else{
|
||||
Materialize.toast("お気に入り登録しました。インスタンスが違うときは時間がかかる場合があります。", 1000);
|
||||
Materialize.toast(lang_status_favWarn[lang], 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ function rt(id, acct_id, remote) {
|
|||
$(".rt_" + id).addClass("teal-text");
|
||||
}
|
||||
} else {
|
||||
Materialize.toast("ブーストしました。インスタンスが違うときは時間がかかる場合があります。", 1000);
|
||||
Materialize.toast(lang_status_btWarn[lang], 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -135,10 +135,10 @@ function follow(acct_id,remote) {
|
|||
console.log(json);
|
||||
if ($("#his-data").hasClass("following")) {
|
||||
$("#his-data").removeClass("following");
|
||||
$("#his-follow-btn").text("フォロー");
|
||||
$("#his-follow-btn").text(lang_status_follow[lang]);
|
||||
} else {
|
||||
$("#his-data").addClass("following");
|
||||
$("#his-follow-btn").text("フォロー解除");
|
||||
$("#his-follow-btn").text(lang_status_unfollow[lang]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -168,10 +168,10 @@ function block(acct_id) {
|
|||
if (httpreq.readyState == 4) {
|
||||
if ($("#his-data").hasClass("blocking")) {
|
||||
$("#his-data").removeClass("blocking");
|
||||
$("#his-block-btn").text("ブロック");
|
||||
$("#his-block-btn").text(lang_status_block[lang]);
|
||||
} else {
|
||||
$("#his-data").addClass("blocking");
|
||||
$("#his-block-btn").text("ブロック解除");
|
||||
$("#his-block-btn").text(lang_status_unblock[lang]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,10 +201,10 @@ function mute(acct_id) {
|
|||
if (httpreq.readyState == 4) {
|
||||
if ($("#his-data").hasClass("muting")) {
|
||||
$("#his-data").removeClass("muting");
|
||||
$("#his-mute-btn").text("ミュート");
|
||||
$("#his-mute-btn").text(lang_status_mute[lang]);
|
||||
} else {
|
||||
$("#his-data").addClass("muting");
|
||||
$("#his-mute-btn").text("ミュート解除");
|
||||
$("#his-mute-btn").text(lang_status_unmute[lang]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -228,7 +228,7 @@ function del(id, acct_id) {
|
|||
}
|
||||
//redraft
|
||||
function redraft(id, acct_id){
|
||||
if(confirm("削除して再編集しますか?そのトゥートの全てのデータがリセットされます。この機能はベータ版です。画像は~v2.4.1で破棄されます。")){
|
||||
if(confirm(lang_status_redraft[lang])){
|
||||
show();
|
||||
del(id, acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
|
@ -251,6 +251,8 @@ function redraft(id, acct_id){
|
|||
html = html.replace(/<\/p>/, "\n");
|
||||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html=$.strip_tags(html);
|
||||
localStorage.setItem("nohide",true);
|
||||
show();
|
||||
$("#textarea").val(html);
|
||||
}
|
||||
}
|
||||
|
@ -341,7 +343,7 @@ function empUser(){
|
|||
if(!obj){
|
||||
var obj=[];
|
||||
obj.push(id);
|
||||
Materialize.toast(id+"を強調します。設定を適用するにはF5を押して下さい。", 4000);
|
||||
Materialize.toast(id+lang_status_emphas[lang], 4000);
|
||||
}else{
|
||||
var can;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
|
@ -351,7 +353,7 @@ function empUser(){
|
|||
}else{
|
||||
can=true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(id+"の強調を解除しました。設定を適用するにはF5を押して下さい。", 4000);
|
||||
Materialize.toast(id+lang_status_unemphas[lang], 4000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ function re(id,at,acct_id,mode){
|
|||
$("#post-acct-sel").val(acct_id);
|
||||
$("#post-acct-sel").prop("disabled", true);
|
||||
$('select').material_select();
|
||||
$("#textarea").attr("placeholder","返信モードです。クリアするときはCtrl+Shift+Cを押してください。");
|
||||
$("#textarea").attr("placeholder",lang_usetxtbox_reply[lang]);
|
||||
$("#textarea").focus();
|
||||
vis(mode);
|
||||
}
|
||||
|
|
|
@ -70,11 +70,11 @@ function additional(acct_id, tlid) {
|
|||
}
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URLチェック:<br>Title:" + json.title + "<br>" +
|
||||
"<span class=\"gray\">URL"+lang_cards_check[lang]+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
}
|
||||
if (json.html) {
|
||||
$("[toot-id=" + id + "] .additional").html(json.html+'<i class="material-icons" onclick="pip('+id+')">picture_in_picture_alt</i>');
|
||||
$("[toot-id=" + id + "] .additional").html(json.html+'<i class="material-icons" onclick="pip('+id+')" title="'+lang_cards_pip[lang]+'">picture_in_picture_alt</i>');
|
||||
}
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
|
@ -172,11 +172,11 @@ function additionalIndv(tlid, acct_id, id) {
|
|||
}else{
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URLチェック:<br>Title:" + json.title + "<br>" +
|
||||
"<span class=\"gray\">URL"+lang_cards_check[lang]+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
}
|
||||
if (json.html) {
|
||||
$("[toot-id=" + id + "] .additional").html(json.html+'<i class="material-icons sml pointer" onclick="pip(\''+id+'\')" title="ながら観モード">picture_in_picture_alt</i>');
|
||||
$("[toot-id=" + id + "] .additional").html(json.html+'<i class="material-icons sml pointer" onclick="pip(\''+id+'\')" title="'+lang_cards_pip[lang]+'">picture_in_picture_alt</i>');
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
//トゥートの詳細
|
||||
function details(id, acct_id, tlid) {
|
||||
$(".toot-reset").html("データなし");
|
||||
$(".toot-reset").html(lang_details_nodata[lang]);
|
||||
var html = $("#timeline_"+tlid+" #pub_" + id).html();
|
||||
$("#toot-this").html(html);
|
||||
$('#tootmodal').modal('open');
|
||||
|
@ -78,7 +78,7 @@ function replyTL(id, acct_id) {
|
|||
console.log(mute);
|
||||
var templete = parse([json], '', acct_id,"","",mute);
|
||||
$("#toot-reply").prepend(templete);
|
||||
$("#toot-reply .hide").html("フィルターされました。");
|
||||
$("#toot-reply .hide").html(lang_details_filtered[lang]);
|
||||
$("#toot-reply .by_filter").css("display","block");
|
||||
$("#toot-reply .by_filter").removeClass("hide");
|
||||
jQuery("time.timeago").timeago();
|
||||
|
@ -112,7 +112,7 @@ function context(id, acct_id) {
|
|||
}
|
||||
var templete = parse(json.descendants, '', acct_id,"","",mute);
|
||||
$("#toot-after").html(templete);
|
||||
$("#toot-after .hide").html("フィルターされました。");
|
||||
$("#toot-after .hide").html(lang_details_filtered[lang]);
|
||||
$("#toot-after .by_filter").css("display","block");
|
||||
$("#toot-after .by_filter").removeClass("hide");
|
||||
jQuery("time.timeago").timeago();
|
||||
|
@ -215,10 +215,10 @@ function cbCopy(mode){
|
|||
if(mode=="emb"){
|
||||
var emb='<iframe src="'+url+'/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400"></iframe><script src="https://'+domain+'/embed.js" async="async"></script>';
|
||||
execCopy(emb)
|
||||
Materialize.toast("埋め込みHTMLをコピーしました", 1500);
|
||||
Materialize.toast(lang_details_embed[lang], 1500);
|
||||
}else{
|
||||
if(execCopy(url)){
|
||||
Materialize.toast("トゥートURLをコピーしました", 1500);
|
||||
Materialize.toast(lang_details_url[lang], 1500);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -234,7 +234,7 @@ function staCopy(id){
|
|||
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, "$1");
|
||||
html=$.strip_tags(html);
|
||||
if(execCopy(html)){
|
||||
Materialize.toast("トゥート本文をコピーしました", 1500);
|
||||
Materialize.toast(lang_details_txt[lang], 1500);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -97,15 +97,15 @@ function filter(){
|
|||
var filterword = json[key];
|
||||
var context = filterword.context.join(',');
|
||||
filters = filters + filterword.phrase+'<span class="sml">(for '+context+')</span>:<a onclick="filterEdit(\'' + filterword.id + '\',\'' + acct_id +
|
||||
'\')" class="pointer">編集</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
|
||||
')" class="pointer">削除</a><br> ';
|
||||
'\')" class="pointer">'+lang_edit[lang]+'</a>/<a onclick="filterDel(' + filterword.id + ',' + acct_id +
|
||||
')" class="pointer">'+lang_del[lang]+'</a><br> ';
|
||||
});
|
||||
if(filters==""){
|
||||
filters="フィルターはありません<br>";
|
||||
filters=lang_filter_nodata[lang]+"<br>";
|
||||
}
|
||||
$("#filtered-words").html(filters);
|
||||
}else{
|
||||
$("#filtered-words").html("フィルターはありません");
|
||||
$("#filtered-words").html(lang_filter_nodata[lang]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ function makeNewFilter(){
|
|||
}
|
||||
console.log(cont);
|
||||
if(!cont.length){
|
||||
$("#filtered-words").html('Error:適応範囲を最低一つ以上チェックしてください。');
|
||||
$("#filtered-words").html('Error:'+lang_filter_errordegree[lang]);
|
||||
}
|
||||
var exc=$("#except_filter:checked").val();
|
||||
var who=$("#wholeword_filter:checked").val();
|
||||
|
@ -169,7 +169,7 @@ function makeNewFilter(){
|
|||
$("#days_filter").val("0");
|
||||
$("#hours_filter").val("0");
|
||||
$("#mins_filter").val("0");
|
||||
$("#add-filter-btn").text("追加");
|
||||
$("#add-filter-btn").text(lang_add[lang]);
|
||||
$("#filter-edit-id").val("")
|
||||
}
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ function filterEdit(id,acct_id){
|
|||
$("#days_filter").val("0");
|
||||
$("#hours_filter").val("0");
|
||||
$("#mins_filter").val("0");
|
||||
$("#add-filter-btn").text("編集");
|
||||
$("#add-filter-btn").text(lang_edit[lang]);
|
||||
$("#filter-edit-id").val(id);
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
|
|
|
@ -36,12 +36,12 @@ function list(){
|
|||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title+':<a onclick="listShow(' + list.id + ',\'' + list.title + '\',\'' + acct_id +
|
||||
'\')" class="pointer">表示</a>/<a onclick="listUser(' + list.id + ',' + acct_id +
|
||||
')" class="pointer">ユーザー一覧</a><br> ';
|
||||
'\')" class="pointer">'+lang_list_show[lang]+'</a>/<a onclick="listUser(' + list.id + ',' + acct_id +
|
||||
')" class="pointer">'+lang_list_users[lang]+'</a><br> ';
|
||||
});
|
||||
$("#lists").html(lists);
|
||||
}else{
|
||||
$("#lists").html("リストはありません");
|
||||
$("#lists").html(lang_list_nodata[lang]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -93,11 +93,11 @@ function listUser(id,acct_id){
|
|||
var lists = "";
|
||||
var templete = userparse(json,'',acct_id);
|
||||
if(!json[0]){
|
||||
templete="ユーザーはいません";
|
||||
templete=lang_list_nouser[lang];
|
||||
}
|
||||
$("#lists-user").html(templete);
|
||||
}else{
|
||||
$("#lists-user").html("ユーザーはいません");
|
||||
$("#lists-user").html(lang_list_nouser[lang]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -119,7 +119,7 @@ function hisList(user,acct_id){
|
|||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var lists = "リストに追加<br>";
|
||||
var lists = lang_list_add[lang]+"<br>";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listAdd(' + list.id + ',\'' + user + '\',\'' + acct_id +
|
||||
|
@ -127,7 +127,7 @@ function hisList(user,acct_id){
|
|||
});
|
||||
$("#his-lists-a").html(lists);
|
||||
}else{
|
||||
$("#his-lists-a").html('リストはありません');
|
||||
$("#his-lists-a").html(lang_list_nodata[lang]);
|
||||
}
|
||||
});
|
||||
var start = "https://" + domain + "/api/v1/accounts/"+user+"/lists"
|
||||
|
@ -145,7 +145,7 @@ function hisList(user,acct_id){
|
|||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if (json) {
|
||||
var lists = "リストから削除<br>";
|
||||
var lists = lang_list_remove[lang]+"<br>";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listRemove(' + list.id + ',\'' + user + '\',\'' + acct_id +
|
||||
|
@ -153,7 +153,7 @@ function hisList(user,acct_id){
|
|||
});
|
||||
$("#his-lists-b").html(lists);
|
||||
}else{
|
||||
$("#his-lists-b").html('リストはありません');
|
||||
$("#his-lists-b").html(lang_list_nodata[lang]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -38,13 +38,13 @@ function notf(acct_id, tlid, sys) {
|
|||
var ipc = electron.ipcRenderer;
|
||||
var os = electron.remote.process.platform;
|
||||
var options = {
|
||||
body: ct+"件の新しい通知",
|
||||
body: ct+lang_notf_new[lang],
|
||||
icon: localStorage.getItem("prof_"+acct_id)
|
||||
};
|
||||
if(os=="darwin"){
|
||||
var n = new Notification('TheDesk:'+domain, options);
|
||||
}else{
|
||||
ipc.send('native-notf', ['TheDesk:'+domain,ct+"件の新しい通知",localStorage.getItem("prof_"+acct_id)]);
|
||||
ipc.send('native-notf', ['TheDesk:'+domain,ct+lang_notf_new[lang],localStorage.getItem("prof_"+acct_id)]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -152,10 +152,10 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
}
|
||||
if (mix == "notf") {
|
||||
if (toot.type == "mention") {
|
||||
var what = "が返信しました";
|
||||
var what = lang_parse_mentioned[lang];
|
||||
var icon = "fa-share teal-text";
|
||||
} else if (toot.type == "reblog") {
|
||||
var what = "がブーストしました";
|
||||
var what = lang_parse_bted[lang];
|
||||
var icon = "fa-retweet light-blue-text";
|
||||
if(localStorage.getItem("domain_" + acct_id)=="imastodon.net" && !locale){
|
||||
what = ":「わかるわ」";
|
||||
|
@ -163,7 +163,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
what = "がしばきました";
|
||||
}
|
||||
} else if (toot.type == "favourite") {
|
||||
var what = "がお気に入り登録しました";
|
||||
var what = lang_parse_faved[lang];
|
||||
var icon = "fa-star yellow-text";
|
||||
if(localStorage.getItem("domain_" + acct_id)=="imastodon.net" && !locale){
|
||||
what = "の頭にティンときたようです";
|
||||
|
@ -172,7 +172,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
}
|
||||
}
|
||||
var noticetext = '<span class="cbadge cbadge-hover"title="' + date(toot.created_at,
|
||||
'absolute') + '(通知された時間)"><i class="fa fa-clock-o"></i>' + date(toot.created_at,
|
||||
'absolute') + '('+lang_parse_notftime[lang]+')"><i class="fa fa-clock-o"></i>' + date(toot.created_at,
|
||||
datetype) +
|
||||
'</span><i class="big-text fa '+icon+'"></i><a onclick="udg(\'' + toot.account.id +
|
||||
'\',\'' + acct_id + '\')" class="pointer grey-text">' + dis_name +
|
||||
|
@ -193,7 +193,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if(popup>0){
|
||||
Materialize.toast("["+domain+"より]"+escapeHTML(toot.account.display_name)+what, popup * 1000);
|
||||
Materialize.toast("["+domain+"]"+escapeHTML(toot.account.display_name)+what, popup * 1000);
|
||||
}
|
||||
if(native=="yes"){
|
||||
var electron = require("electron");
|
||||
|
@ -235,7 +235,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
}else{
|
||||
var if_notf="";
|
||||
if (toot.reblog) {
|
||||
var rebtxt = "がブースト";
|
||||
var rebtxt = lang_parse_btedsimple[lang];
|
||||
var rticon = "fa-retweet light-blue-text";
|
||||
if(localStorage.getItem("domain_" + acct_id)=="imastodon.net" && !locale){
|
||||
rebtxt = ":「わかるわ」";
|
||||
|
@ -324,19 +324,19 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">見る</a><br>';
|
||||
'\')" class="nex parsed">'+lang_parse_cwshow[lang]+'</a><br>';
|
||||
} else {
|
||||
var ct1 = toot.content.split('</p>').length + toot.content.split('<br />').length -2;
|
||||
var ct2 = toot.content.split('</p>').length + toot.content.split('<br>').length -2;
|
||||
if(ct1>ct2){ var ct= ct1; }else{ var ct= ct2; }
|
||||
if ((sent < ct && $.mb_strlen($.strip_tags(toot.content)) > 5) || ($.strip_tags(toot.content).length > ltr && $.mb_strlen($.strip_tags(toot.content)) > 5)) {
|
||||
var content = '<span class="gray">以下全文</span><br>' + toot.content
|
||||
var content = '<span class="gray">'+lang_parse_fulltext[lang]+'</span><br>' + toot.content
|
||||
var spoil = '<span class="cw-long-' + toot.id + '">' + $.mb_substr($.strip_tags(
|
||||
toot.content), 0, 100) +
|
||||
'</span><span class="gray">自動折りたたみ</span>';
|
||||
'</span><span class="gray">'+lang_parse_autofold[lang]+'</span>';
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var spoiler_show = '<a href="#" onclick="cw_show(\'' + toot.id +
|
||||
'\')" class="nex parsed">続き…</a><br>';
|
||||
'\')" class="nex parsed">'+lang_parse_more[lang]+'</a><br>';
|
||||
} else {
|
||||
var content = toot.content;
|
||||
var spoil = escapeHTML(toot.spoiler_text);
|
||||
|
@ -349,7 +349,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
);
|
||||
if (urls) {
|
||||
var analyze = '<a onclick="additionalIndv(\'' + tlid + '\',' + acct_id +
|
||||
',\'' + id + '\')" class="add-show pointer">URL解析</a><br>';
|
||||
',\'' + id + '\')" class="add-show pointer">'+lang_parse_url[lang]+'</a><br>';
|
||||
} else {
|
||||
var analyze = '';
|
||||
}
|
||||
|
@ -434,8 +434,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
Object.keys(toot.tags).forEach(function(key4) {
|
||||
var tag = toot.tags[key4];
|
||||
tags = tags + '<span class="hide" data-tag="' + tag.name + '">#' + tag.name + ':<a onclick="tl(\'tag\',\'' + tag.name + '\',' + acct_id +
|
||||
',\'add\')" class="pointer" title="#' + tag.name + 'のタイムライン">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="#' + tag.name + 'でトゥート">Toot</a> '+
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="#' + tag.name + 'をよく使うタグへ">Pin</a></span> ';
|
||||
',\'add\')" class="pointer" title="' +lang_parse_tagTL[lang].replace("{{tag}}" ,'#'+tag.name)+ '">TL</a> <a onclick="brInsert(\'#' + tag.name + '\')" class="pointer" title="' + lang_parse_tagtoot[lang].replace("{{tag}}" ,'#'+tag.name) + '">Toot</a> '+
|
||||
'<a onclick="tagPin(\'' + tag.name + '\')" class="pointer" title="' +lang_parse_tagpin[lang].replace("{{tag}}" ,'#'+tag.name)+ '">Pin</a></span> ';
|
||||
});
|
||||
tags = '<div style="float:right">' + tags + '</div>';
|
||||
}
|
||||
|
@ -444,19 +444,19 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
var visen = toot.visibility;
|
||||
if (visen == "public") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="公開(クリックして本文コピー)" data-vis="public" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">public</i>';
|
||||
'<i class="text-darken-3 material-icons gray sml vis-data pointer" title="'+lang_parse_public[lang]+'('+lang_parse_clickcopy[lang]+')" data-vis="public" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">public</i>';
|
||||
var can_rt = "";
|
||||
} else if (visen == "unlisted") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="未収載(クリックして本文コピー)" data-vis="unlisted" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">lock_open</i>';
|
||||
'<i class="text-darken-3 material-icons blue-text vis-data pointer" title="'+lang_parse_unlisted[lang]+'('+lang_parse_clickcopy[lang]+')" data-vis="unlisted" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">lock_open</i>';
|
||||
var can_rt = "";
|
||||
} else if (visen == "private") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="非公開(クリックして本文コピー)" data-vis="private" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">lock</i>';
|
||||
'<i class="text-darken-3 material-icons orange-text vis-data pointer" title="'+lang_parse_private[lang]+'('+lang_parse_clickcopy[lang]+')" data-vis="private" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">lock</i>';
|
||||
var can_rt = "hide";
|
||||
} else if (visen == "direct") {
|
||||
var vis =
|
||||
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="ダイレクト(クリックして本文コピー)" data-vis="direct" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">mail</i>';
|
||||
'<i class="text-darken-3 material-icons red-text vis-data pointer" title="'+lang_parse_direct[lang]+'('+lang_parse_clickcopy[lang]+')" data-vis="direct" onclick="staCopy(\''+id+'\')" style="font-size:1rem;">mail</i>';
|
||||
var can_rt = "hide";
|
||||
}
|
||||
if (toot.account.acct == localStorage.getItem("user_" + acct_id)) {
|
||||
|
@ -523,7 +523,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
}
|
||||
//日本語じゃない
|
||||
if(toot.language!="ja"){
|
||||
var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを日本語に翻訳"><i class="material-icons">g_translate</i></a></div>';
|
||||
var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_trans[lang]+'"><i class="material-icons">g_translate</i></a></div>';
|
||||
}else{
|
||||
var trans="";
|
||||
}
|
||||
|
@ -544,7 +544,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
toot.account.acct + locked + '</span></div>' +
|
||||
'<div class="flex-time"><span class="cbadge cbadge-hover pointer waves-effect" onclick="tootUriCopy(\'' +
|
||||
toot.url + '\');" title="' + date(toot.created_at, 'absolute') +
|
||||
'(クリックでトゥートURLをコピー)"><i class="fa fa-clock-o"></i>' +
|
||||
'('+lang_parse_clickcopyurl[lang]+')"><i class="fa fa-clock-o"></i>' +
|
||||
date(toot.created_at, datetype) + '</span>' +
|
||||
'</div></div>' +
|
||||
'<div class="area-toot"><span class="toot ' + spoiler + '">' + content +
|
||||
|
@ -558,33 +558,33 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
|||
'<div class="area-vis"></div>'+
|
||||
'<div class="area-actions '+mouseover+'">' +
|
||||
'<div class="action">'+vis+'</div>'+
|
||||
'<div class="action '+antinoauth+'"><a onclick="detEx(\''+toot.url+'\',\'main\')" class="waves-effect waves-dark details" style="padding:0">詳細(メインアカウント経由)</a></div>' +
|
||||
'<div class="action '+antinoauth+'"><a onclick="detEx(\''+toot.url+'\',\'main\')" class="waves-effect waves-dark details" style="padding:0">'+lang_parse_det[lang]+'</a></div>' +
|
||||
'<div class="action '+disp["re"]+' '+noauth+'"><a onclick="re(\'' + toot.id +
|
||||
'\',\'' + toot.account.acct + '\',' +
|
||||
acct_id + ',\''+visen+
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートに返信"><i class="fa fa-share"></i></a></div>' +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_replyto[lang]+'"><i class="fa fa-share"></i></a></div>' +
|
||||
'<div class="action '+can_rt+' '+disp["rt"]+' '+noauth+'"><a onclick="rt(\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートをブースト"><i class="text-darken-3 fa fa-retweet ' +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_bt[lang]+'"><i class="text-darken-3 fa fa-retweet ' +
|
||||
if_rt + ' rt_' + toot.id + '"></i><span class="rt_ct">' + toot.reblogs_count +
|
||||
'</span></a></div>' +
|
||||
'<div class="action '+can_rt+' '+disp["qt"]+' '+noauth+'"><a onclick="qt(\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + toot.account.acct +'\',\''+toot.url+
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを引用"><i class="text-darken-3 fa fa-quote-right"></i></a></div>' +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_quote[lang]+'"><i class="text-darken-3 fa fa-quote-right"></i></a></div>' +
|
||||
'<div class="action '+disp["fav"]+' '+noauth+'"><a onclick="fav(\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートをお気に入り登録"><i class="fa text-darken-3 fa-star' +
|
||||
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_fav[lang]+'"><i class="fa text-darken-3 fa-star' +
|
||||
if_fav + ' fav_' + toot.id + '"></i><span class="fav_ct">' + toot.favourites_count +
|
||||
'</a></span></div>' +
|
||||
'<div class="' + if_mine + ' action '+disp["del"]+' '+noauth+'"><a onclick="del(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを削除"><i class="fa fa-trash-o"></i></a></div>' +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_del[lang]+'"><i class="fa fa-trash-o"></i></a></div>' +
|
||||
'<div class="' + if_mine + ' action pin '+disp["pin"]+' '+noauth+'"><a onclick="pin(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートをピン留め"><i class="fa fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>'
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_pin[lang]+'"><i class="fa fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>'
|
||||
+'<div class="' + if_mine + ' action '+disp["red"]+' '+noauth+'"><a onclick="redraft(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを削除して再投稿"><i class="material-icons">redo</i></a></div>'+trans+
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_redraft[lang]+'"><i class="material-icons">redo</i></a></div>'+trans+
|
||||
'<span class="cbadge viabadge waves-effect '+viashow+' '+mine_via+'" onclick="client(\''+$.strip_tags(via)+'\')" title="via ' + $.strip_tags(via) + '">via ' +
|
||||
via +
|
||||
'</span>'+
|
||||
|
@ -623,7 +623,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
|||
} else {
|
||||
var auth = "";
|
||||
}
|
||||
var ftxt="フォローされました";
|
||||
var ftxt=lang_parse_followed[lang];
|
||||
if(localStorage.getItem("domain_" + acct_id)=="imastodon.net" && !locale){
|
||||
ftxt = "名刺をいただきました";
|
||||
}else if(localStorage.getItem("domain_" + acct_id)=="mstdn.osaka" && !locale){
|
||||
|
@ -631,7 +631,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
|||
}
|
||||
if(popup > 0 || popup==-1){
|
||||
var notftext='<span class="cbadge"title="' + date(toot.created_at,
|
||||
'absolute') + '(通知された時間)"><i class="fa fa-clock-o"></i>' + date(toot.created_at,
|
||||
'absolute') + '('+lang_parse_notftime[lang]+')"><i class="fa fa-clock-o"></i>' + date(toot.created_at,
|
||||
datetype) +
|
||||
'</span>'+ftxt+'。<br>';
|
||||
}else{
|
||||
|
@ -663,23 +663,23 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
|||
}
|
||||
dis_name=twemoji.parse(dis_name);
|
||||
templete = templete +
|
||||
'<div class="" style="padding-top:5px;" user-id="' + toot.id + '">' +
|
||||
'<div class="cvo" style="padding-top:5px;" user-id="' + toot.id + '"><div class="area-notice">' +
|
||||
notftext +
|
||||
'<div style="padding:0; margin:0; width:400px; max-width:100%; display:flex; align-items:flex-end;">' +
|
||||
'<div style="flex-basis:40px;"><a onclick="udg(\'' + toot.id + '\',' +
|
||||
'</div><div class="area-icon"><a onclick="udg(\'' + toot.id + '\',' +
|
||||
acct_id + ');" user="' + toot.acct + '" class="udg">' +
|
||||
'<img src="' + toot.avatar + '" width="40" class="prof-img" user="' + toot
|
||||
.acct + '"></a></div>' +
|
||||
'<div style="flex-grow:3; overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"><big>' +
|
||||
dis_name + '</big></div>' +
|
||||
'<div class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
|
||||
toot.acct + locked + '</div>' +
|
||||
'</div>' + auth +
|
||||
'<div style="justify-content:space-around"> <div class="cbadge" style="width:100px;">Follows:' +
|
||||
'<div class="area-display_name"><div class="flex-name"><span class="user">' +
|
||||
dis_name + '</span>' +
|
||||
'<span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
|
||||
toot.acct + locked + auth +'</span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div style="justify-content:space-around" class="area-toot"> <div class="cbadge" style="width:100px;">Follows:' +
|
||||
toot.following_count +
|
||||
'</div><div class="cbadge" style="width:100px;">Followers:' + toot.followers_count +
|
||||
'</div>' +
|
||||
'<div class="divider"></div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
|
||||
|
@ -696,9 +696,9 @@ function client(name) {
|
|||
var dialog=remote.dialog;
|
||||
const options = {
|
||||
type: 'info',
|
||||
title: 'クライアント処理',
|
||||
message: name+"に対する処理を選択してください。",
|
||||
buttons: ['何もしない','強調表示/解除', 'ミュート']
|
||||
title: lang_parse_clientop[lang],
|
||||
message: name+lang_parse_clienttxt[lang],
|
||||
buttons: [lang_parse_clientno[lang],lang_parse_clienemp[lang], lang_parse_clientmute[lang]]
|
||||
}
|
||||
dialog.showMessageBox(options, function(arg) {
|
||||
if(arg==1){
|
||||
|
@ -707,7 +707,7 @@ function client(name) {
|
|||
if(!obj){
|
||||
var obj=[];
|
||||
obj.push(name);
|
||||
Materialize.toast(name+"を強調表示します。", 2000);
|
||||
Materialize.toast(name+lang_status_emphas[lang], 2000);
|
||||
}else{
|
||||
var can;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
|
@ -717,12 +717,12 @@ function client(name) {
|
|||
}else{
|
||||
can=true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(name+"の強調表示を解除しました。", 2000);
|
||||
Materialize.toast(name+lang_status_unemphas[lang], 2000);
|
||||
}
|
||||
});
|
||||
if(!can){
|
||||
obj.push(name);
|
||||
Materialize.toast(name+"を強調表示します。", 2000);
|
||||
Materialize.toast(name+lang_status_emphas[lang], 2000);
|
||||
}else{
|
||||
|
||||
}
|
||||
|
@ -738,7 +738,7 @@ function client(name) {
|
|||
obj.push(name);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_mute", json);
|
||||
Materialize.toast(name+"をミュートします。設定から削除できます。", 2000);
|
||||
Materialize.toast(name+lang_parse_mute[lang], 2000);
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -86,7 +86,7 @@ function voiceSettings(){
|
|||
localStorage.setItem("voice_speed", $("#voicespeed").val()/10);
|
||||
localStorage.setItem("voice_pitch", $("#voicepitch").val()/50);
|
||||
localStorage.setItem("voice_vol", $("#voicevol").val()/100);
|
||||
Materialize.toast("音声読み上げ設定を更新しました。", 3000);
|
||||
Materialize.toast(lang_speech_refresh[lang], 3000);
|
||||
}
|
||||
function voiceSettingLoad(){
|
||||
var speed=localStorage.getItem("voice_speed");
|
||||
|
|
|
@ -101,9 +101,9 @@ function tootsearch(q){
|
|||
}
|
||||
});
|
||||
if(!templete){
|
||||
templete="データはありません。";
|
||||
templete=lang_details_nodata[lang];
|
||||
}
|
||||
$("#src-contents").html("Tootsearch(時系列)<br>" + templete);
|
||||
$("#src-contents").html("Tootsearch("+lang_src_ts[lang]+")<br>" + templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
@ -147,7 +147,7 @@ function trend(){
|
|||
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 <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+"人がトゥート";
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang_src_people[lang];
|
||||
|
||||
$("#src-contents").append(tags);
|
||||
});
|
||||
|
@ -169,12 +169,12 @@ function graphDraw(tag){
|
|||
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 <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+"人がトゥート";
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang_src_people[lang];
|
||||
}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 <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+"人がトゥート";
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang_src_people[lang];
|
||||
}
|
||||
|
||||
return tags;
|
||||
|
|
|
@ -362,6 +362,10 @@ function cap(type, data, acct_id) {
|
|||
var response= "Glance TL"
|
||||
} else if (type == "dm") {
|
||||
var response= "DM"
|
||||
} else if (type == "mix") {
|
||||
var response= "Integrated"
|
||||
} else if (type == "plus") {
|
||||
var response= "Local+"
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
|
|
@ -213,6 +213,8 @@ function addselCk(){
|
|||
}
|
||||
//カラム削除
|
||||
function removeColumn(tlid) {
|
||||
$("#sort-box").addClass("hide");
|
||||
$("#sort-box").removeClass("show");
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
//聞く
|
||||
|
|
|
@ -40,6 +40,8 @@ function goTop(id){
|
|||
$("#timeline_box_"+id+"_box .tl-box").animate({scrollTop:0});
|
||||
}
|
||||
function goColumn(key){
|
||||
$("#sort-box").addClass("hide");
|
||||
$("#sort-box").removeClass("show");
|
||||
if($('[tlid='+key+']').length){
|
||||
console.log($('[tlid='+key+']').offset().left);
|
||||
$("#timeline-container").animate({scrollLeft:$("#timeline-container").scrollLeft()+$('[tlid='+key+']').offset().left});
|
||||
|
|
|
@ -26,7 +26,7 @@ function sortload(){
|
|||
}
|
||||
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><a onclick="goColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムへ">forward</i></a> <a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a><br>'+localStorage.getItem("user_" + acct.domain)+"@"+localStorage.getItem("domain_" + acct.domain)+" "+cap(acct.type, acct.data)+'</li>';
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a><br>'+localStorage.getItem("user_" + acct.domain)+"@"+localStorage.getItem("domain_" + acct.domain)+" "+cap(acct.type, acct.data,acct.domain)+'</li>';
|
||||
$("#sort").append(html);
|
||||
});
|
||||
drag();
|
||||
|
@ -48,6 +48,8 @@ function Scap(type, data) {
|
|||
return "Notification"
|
||||
} else if (type == "mix") {
|
||||
return "Integrated"
|
||||
}else{
|
||||
console.log(type);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ function tips(mode){
|
|||
var ipc = electron.ipcRenderer;
|
||||
ipc.send('endmem', "");
|
||||
clearInterval(clockint);
|
||||
clearInterval(spotStart);
|
||||
if(mode=="ver"){
|
||||
tipsToggle()
|
||||
$("#tips-text").html('<img src="./img/desk.png" width="20"><span style="font-size:20px">TheDesk</span> '+localStorage.getItem("ver"))
|
||||
|
@ -27,6 +28,11 @@ function tips(mode){
|
|||
tipsToggle()
|
||||
localStorage.setItem("tips","trend")
|
||||
trendTagonTip()
|
||||
}else if(mode=="spotify"){
|
||||
tipsToggle()
|
||||
localStorage.setItem("tips","spotify")
|
||||
var json=nowplaying("spotifytips")
|
||||
spotifytips(json)
|
||||
}
|
||||
}
|
||||
//メモリ
|
||||
|
@ -74,6 +80,78 @@ function trendTagonTip(){
|
|||
});
|
||||
|
||||
}
|
||||
//Spotify
|
||||
function spotifytips(){
|
||||
var start = "https://thedesk.top/now-playing?at="+localStorage.getItem("spotify")+"&rt="+localStorage.getItem("spotify-refresh");
|
||||
var at = localStorage.getItem("spotify");
|
||||
if(at){
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
var ms=json.progress_ms;
|
||||
var last=1000-ms%1000;
|
||||
var item=json.item;
|
||||
var img=item.album.images[0].url;
|
||||
var artisttxt="";
|
||||
for(i=0;i<item.artists.length;i++){
|
||||
if(i>0){
|
||||
artisttxt=artisttxt+","+item.artists[i].name;
|
||||
}else{
|
||||
artisttxt=item.artists[0].name;
|
||||
}
|
||||
}
|
||||
sleep(last);
|
||||
var tms=item.duration_ms;
|
||||
var per=ms/item.duration_ms*100;
|
||||
ms=ms/1000;
|
||||
tms=tms/1000;
|
||||
var s=Math.round(ms)%60;
|
||||
if(s<10){
|
||||
s="0"+s;
|
||||
}
|
||||
var m=(Math.round(ms)-Math.round(ms)%60)/60;
|
||||
var ts=Math.round(tms)%60;
|
||||
if(ts<10){
|
||||
ts="0"+ts;
|
||||
}
|
||||
var tm=(Math.round(tms)-Math.round(tms)%60)/60;
|
||||
$("#tips-text").html('<div id="spot-box"><i class="material-icons pointer" onclick="spotifytips()" style="font-size:12px">refresh</i><img src="'+img+'" width="20" id="spot-img">'+item.name+'<span class="gray sml" id="spot-art">'+artisttxt+'</span><span id="spot-m">'+m+'</span>:<span id="spot-s">'+s+'</span>/'+tm+":"+ts+'</span></div><div class="progress grey"><div class="determinate spotify-prog grey lighten-2" style="width: '+per+'%" data-s="'+Math.round(ms)+'" data-total="'+item.duration_ms+'"></div></div>');
|
||||
spotint=setInterval(spotStart, 1000);
|
||||
});
|
||||
}else{
|
||||
alert("アカウント連携設定をして下さい。");
|
||||
}
|
||||
}
|
||||
function spotStart(){
|
||||
var total=$(".spotify-prog").attr("data-total");
|
||||
var s=$(".spotify-prog").attr("data-s");
|
||||
var news=s*1+1;
|
||||
var per=news*100000/total;
|
||||
var ns=news%60;
|
||||
var nm=(news-ns)/60;
|
||||
if(ns<10){
|
||||
ns="0"+ns;
|
||||
}
|
||||
if(per>=100){
|
||||
clearInterval(spotStart);
|
||||
spotifytips()
|
||||
}else{
|
||||
$("#spot-m").text(nm);
|
||||
$("#spot-s").text(ns);
|
||||
}
|
||||
$(".spotify-prog").attr("data-s",news);
|
||||
$(".spotify-prog").css("width",per+"%");
|
||||
}
|
||||
|
||||
|
||||
function trendTagonTipInterval(){
|
||||
setTimeout(trendTagonTip, 6000000);
|
||||
|
|
129
app/language/index.en.json
Normal file
129
app/language/index.en.json
Normal file
|
@ -0,0 +1,129 @@
|
|||
{
|
||||
"draghere":"Drag here to upload",
|
||||
"close":"Close",
|
||||
"showSelectProf":"Show profile of the selecting account",
|
||||
"toot":"Toot",
|
||||
"nsfwDes":"Mark media as sensitive",
|
||||
"cwDes":"Hide text behind warning",
|
||||
"selfile":"Attach..",
|
||||
"adobephoto":"Adobe Photo Editor",
|
||||
"insertEmoji":"Emojis",
|
||||
"NowPlayingDes":"NowPlaying[Click to insert info of Spotify(account link is required.)/control+click to insert that of iTunes(macOS)]",
|
||||
"clearToot":"Clear toot box",
|
||||
"replyMode":"Reply",
|
||||
"no":"No",
|
||||
"yes":"Yes",
|
||||
"temp":"Attaching files",
|
||||
"nothing":"None",
|
||||
"vis":"Adjust status privacy",
|
||||
"cwtext":"Warning text",
|
||||
"selectVis":"Adjust status privacy",
|
||||
"publicJP":"",
|
||||
"unlistedJP":"",
|
||||
"privateJP":"",
|
||||
"directJP":"",
|
||||
"emojiWarn":"",
|
||||
"refreshEmoji":"Refresh emojis list",
|
||||
"closeThisBox":"Close this box",
|
||||
"showThisEmoji":" are shown.",
|
||||
"customEmoji":"Custom emojis",
|
||||
"peopleEmoji":"Emojis of people",
|
||||
"natureEmoji":"Emojis of nature",
|
||||
"foodEmoji":"Emojis of foods",
|
||||
"activityEmoji":"Emojis of activities",
|
||||
"placeEmoji":"Emojis of places",
|
||||
"thingsEmoji":"Emojis of tools",
|
||||
"symbolEmoji":"Emojis of symbols",
|
||||
"flagsEmoji":"Emojis of flags",
|
||||
"contextBefore":"Context before this toot",
|
||||
"thisToot":"This toot",
|
||||
"contextAfter":"Context after this toot",
|
||||
"beforeLTL":"Local TL before this toot",
|
||||
"beforeUTL":"User TL before this toot",
|
||||
"favedPeople":"People who favourited it",
|
||||
"btedPeople":"People who boosted it",
|
||||
"useOtherAcct1":"Use other account",
|
||||
"useOtherAcct2":":unfav and unBT are disabled.",
|
||||
"reply":"Reply",
|
||||
"bt":"Boost",
|
||||
"favRegist":"Favourite",
|
||||
"openBrowser":"Open in browser",
|
||||
"screenshot":"Take a screenshot",
|
||||
"copyURL":"Copy URL of this toot",
|
||||
"embed":"Embed",
|
||||
"toots":"Toots",
|
||||
"follow":"Follow",
|
||||
"follower":"Follower",
|
||||
"timeline":"Timeline",
|
||||
"operateOtherAcct":"Cross-account",
|
||||
"list":"List",
|
||||
"blocks":"Blocks",
|
||||
"mutes":"Mutes",
|
||||
"domainBlock":"Domain block",
|
||||
"editProf":"Edit profile",
|
||||
"followReq":"Follow requests",
|
||||
"likeHimOrHer":"Resembling",
|
||||
"frc":"Suggest",
|
||||
"more":"More",
|
||||
"revoverJP":"",
|
||||
"revoverJPde":"",
|
||||
"or":"or",
|
||||
"openProf":"Show profile",
|
||||
"warnListRegist":"Follow to add this user to lists.",
|
||||
"blockDomain":"Add blocking domain",
|
||||
"name":"Display name",
|
||||
"note":"Note",
|
||||
"editProfImg":"Change avataor",
|
||||
"editHeader":"Change header image",
|
||||
"likeUserDes":"Get people resembling this user.",
|
||||
"get":"Get",
|
||||
"historyBack":"Back",
|
||||
"empUser":"Emphasize this user",
|
||||
"TheDeskDes":"TheDesk is open-source software. We need your friendly support!",
|
||||
"EntySupport":"Support on Enty",
|
||||
"AWLSupport":"Amazon Wish List",
|
||||
"SendAmazonGift1":"Give me Amazon Gift Card:",
|
||||
"SendAmazonGift2":"",
|
||||
"sendSushi":": give me sushi",
|
||||
"local":"Local",
|
||||
"localMedia":"Local(Media)",
|
||||
"home":"Home",
|
||||
"fed":"Federated",
|
||||
"fedMedia":"Federated(Media)",
|
||||
"dm":"Direct Message",
|
||||
"integratedTLDes":"Integrated(Local and Home)",
|
||||
"localPlusDes":"Integrated(Local and replies and BT on Home)",
|
||||
"notf":"Notifications",
|
||||
"showThisTL":"Show this TL:",
|
||||
"add":"Add",
|
||||
"search":"Search",
|
||||
"sortSet":"Sort",
|
||||
"selectAcct":"Select an account",
|
||||
"listLocale":"List",
|
||||
"degree":"Filter contexts",
|
||||
"conver":"Conversations",
|
||||
"option":"Options",
|
||||
"matchWord":"Whole word",
|
||||
"warnMatchWord":"Nice for Latin language",
|
||||
"except":"Drop instead of hide",
|
||||
"exceptWorn":"Filtered toots will disappear irreversibly, even if filter is later removed",
|
||||
"avalableBefore":"Expire after",
|
||||
"warnAvBefore":"Unset or \"0\" means \"Never\"",
|
||||
"warnAvBefore2":"This value may contain some error",
|
||||
"days":"days",
|
||||
"hours":"hours",
|
||||
"mins":"minutes",
|
||||
"warnOnIntegratedTL":"Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.",
|
||||
"helloTheDesk":"<h3>Welcome to TheDesk</h3><a href=\"acct.html\">Add an account</a> or click <i class=\"material-icons\">add</i> to add a column.",
|
||||
"addColumn":"Add a column",
|
||||
"sortColumns":"Sort",
|
||||
"acctMan":"Account Manager",
|
||||
"filter":"Filter",
|
||||
"setting":"Settings",
|
||||
"f5":"Super Reload",
|
||||
"nanoDes":"The smallest Mastodon,",
|
||||
"verTips":"Version",
|
||||
"clockTips":"Clock",
|
||||
"ramTips":"RAM status",
|
||||
"changeTips":"Change Tips"
|
||||
}
|
130
app/language/index.ja.json
Normal file
130
app/language/index.ja.json
Normal file
|
@ -0,0 +1,130 @@
|
|||
{
|
||||
"draghere":"ここにドラッグして添付(ドラッグと同時にアップロードされます)",
|
||||
"close":"Close",
|
||||
"showSelectProf":"選択したアカウントのプロフィールを表示",
|
||||
"closethisbox":"このボックスを閉じる",
|
||||
"toot":"トゥート",
|
||||
"nsfwDes":"画像に制限を付与",
|
||||
"cwDes":"コンテンツワーニング(トゥートを表示する前にメッセージで隠す)",
|
||||
"selfile":"ファイルを選択",
|
||||
"adobephoto":"Adobeフォトエディタ",
|
||||
"insertEmoji":"絵文字を挿入",
|
||||
"NowPlayingDes":"NowPlaying[クリックでSpotify(アカウント連携が必要です)/control+クリックでiTunes(macOSが必要です)]",
|
||||
"clearToot":"トゥートボックスのクリア",
|
||||
"replyMode":"返信モード",
|
||||
"no":"いいえ",
|
||||
"yes":"はい",
|
||||
"temp":"添付ファイル",
|
||||
"nothing":"なし",
|
||||
"vis":"公開範囲",
|
||||
"cwtext":"警告文",
|
||||
"selectVis":"公開範囲指定",
|
||||
"publicJP":"公開",
|
||||
"unlistedJP":"未収載",
|
||||
"privateJP":"非公開",
|
||||
"directJP":"ダイレクト",
|
||||
"emojiWarn":"インスタンスによって実装が異なります。",
|
||||
"refreshEmoji":"絵文字更新",
|
||||
"closeThisBox":"このボックスを閉じる",
|
||||
"showThisEmoji":"一覧を表示中",
|
||||
"customEmoji":"カスタム絵文字",
|
||||
"peopleEmoji":"ひと",
|
||||
"natureEmoji":"自然",
|
||||
"foodEmoji":"食べ物",
|
||||
"activityEmoji":"活動",
|
||||
"placeEmoji":"場所",
|
||||
"thingsEmoji":"もの",
|
||||
"symbolEmoji":"記号",
|
||||
"flagsEmoji":"国旗",
|
||||
"contextBefore":"これより前の会話",
|
||||
"thisToot":"対象のトゥート",
|
||||
"contextAfter":"これより後の会話",
|
||||
"beforeLTL":"これより前のLocal TL(エアリプソース確認)",
|
||||
"beforeUTL":"これより前のユーザーTL(BTソース確認)",
|
||||
"favedPeople":"このトゥートをお気に入りに登録した人",
|
||||
"btedPeople":"このトゥートをブーストした人",
|
||||
"useOtherAcct1":"他のアカウントを使用",
|
||||
"useOtherAcct2":"の解除はできません",
|
||||
"reply":"返信",
|
||||
"bt":"ブースト",
|
||||
"favRegist":"お気に入り登録",
|
||||
"openBrowser":"ブラウザで開く",
|
||||
"screenshot":"スクリーンショット",
|
||||
"copyURL":"URLをコピー",
|
||||
"embed":"埋め込む",
|
||||
"toots":"トゥート",
|
||||
"follow":"フォロー",
|
||||
"follower":"フォロワー",
|
||||
"timeline":"タイムライン",
|
||||
"operateOtherAcct":"他のアカウントで操作",
|
||||
"list":"リスト",
|
||||
"blocks":"ブロック",
|
||||
"mutes":"ミュート",
|
||||
"domainBlock":"ドメインブロック",
|
||||
"editProf":"プロフィール編集",
|
||||
"followReq":"フォローリクエスト",
|
||||
"likeHimOrHer":"似てる",
|
||||
"frc":"おすすめ",
|
||||
"more":"もっと",
|
||||
"revoverJP":"する",
|
||||
"revoverJPde":"で",
|
||||
"or":"または",
|
||||
"openProf":"プロフィールを表示",
|
||||
"warnListRegist":"リストに追加するためにはフォローが必要です。",
|
||||
"blockDomain":"ブロックするドメイン",
|
||||
"name":"名前",
|
||||
"note":"自己紹介",
|
||||
"editProfImg":"アバターを変更",
|
||||
"editHeader":"ヘッダーを変更",
|
||||
"likeUserDes":"似ているユーザーを取得できます。",
|
||||
"get":"取得",
|
||||
"historyBack":"一つ前のユーザーデータ",
|
||||
"empUser":"ユーザー強調",
|
||||
"TheDeskDes":"TheDeskはオープンソース・ソフトウェアです。<br>皆様のあたたかいご支援のもとで製作されています。",
|
||||
"EntySupport":"Entyで支援",
|
||||
"AWLSupport":"Amazonほしいものリスト",
|
||||
"SendAmazonGift1":"",
|
||||
"SendAmazonGift2":"にAmazonギフトカードを送る",
|
||||
"sendSushi":"で寿司を贈る",
|
||||
"local":"ローカル",
|
||||
"localMedia":"ローカル(メディア)",
|
||||
"home":"ホーム",
|
||||
"fed":"連合",
|
||||
"fedMedia":"連合(メディア)",
|
||||
"dm":"ダイレクトメッセージ",
|
||||
"integratedTLDes":"統合(ローカルとホーム)",
|
||||
"localPlusDes":"統合(ローカルとブースト・リプライ)",
|
||||
"notf":"通知",
|
||||
"showThisTL":"表示するタイムライン",
|
||||
"add":"追加",
|
||||
"search":"検索",
|
||||
"sortSet":"並べ替え設定",
|
||||
"selectAcct":"アカウントを選択",
|
||||
"listLocale":"一覧",
|
||||
"degree":"適応範囲",
|
||||
"conver":"会話",
|
||||
"option":"オプション",
|
||||
"matchWord":"単語マッチ",
|
||||
"warnMatchWord":"非ラテン系の文字列では「単語マッチ」は推奨されません。",
|
||||
"except":"除外",
|
||||
"exceptWorn":"「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。",
|
||||
"avalableBefore":"有効期限(あと)",
|
||||
"warnAvBefore":"未指定(または0分)で「無制限」になります。",
|
||||
"warnAvBefore2":"仕様上数値の正確性を保証できません。",
|
||||
"days":"日",
|
||||
"hours":"時間",
|
||||
"mins":"分",
|
||||
"warnOnIntegratedTL":"Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。",
|
||||
"helloTheDesk":"<h3>Welcome to TheDesk</h3><a href=\"acct.html\">アカウントを追加</a>するか下の<i class=\"material-icons\">add</i>ボタンよりカラムを追加してください。",
|
||||
"addColumn":"カラム追加",
|
||||
"sortColumns":"カラム一覧/並べ替え",
|
||||
"acctMan":"アカウントマネージャー",
|
||||
"filter":"フィルター",
|
||||
"setting":"設定",
|
||||
"f5":"スーパーリロード",
|
||||
"nanoDes":"最小のマストドン。",
|
||||
"verTips":"バージョン",
|
||||
"clockTips":"時計",
|
||||
"ramTips":"システムメモリ容量",
|
||||
"changeTips":"Tips変更"
|
||||
}
|
|
@ -509,5 +509,9 @@ function mems(){
|
|||
var mem=os.totalmem()-os.freemem();
|
||||
mainWindow.webContents.send('memory', [mem,os.cpus()[0].model,os.totalmem()]);
|
||||
}
|
||||
ipc.on('mkc', (e, arg) => {
|
||||
var mkc = fs.readFileSync(__dirname + '/.tkn', 'utf8');
|
||||
mainWindow.webContents.send('mkcr', mkc);
|
||||
});
|
||||
|
||||
app.setAsDefaultProtocolClient('thedesk')
|
|
@ -76,7 +76,7 @@ textarea {
|
|||
<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>
|
||||
</select><button onclick="tl()">Show</button><button onclick="window.close()">x</button><br>
|
||||
<div id="timeline_nano">
|
||||
|
||||
</div>
|
||||
|
@ -84,7 +84,7 @@ textarea {
|
|||
<textarea id="textarea" style="width:80%; background-color:transparent"></textarea>
|
||||
<input type="hidden" id="reply">
|
||||
<input type="hidden" id="media">
|
||||
<button class="btn" onclick="post()">投稿</button>
|
||||
<button class="btn" onclick="post()">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>
|
||||
|
|
640
app/new.html
640
app/new.html
|
@ -18,13 +18,15 @@
|
|||
<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/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="./js/lang/lang.js"></script>
|
||||
<script type="text/javascript" src="./js/lang/parse.lang.js"></script>
|
||||
<script type="text/javascript" src="./js/common/time.js"></script>
|
||||
<script type="text/javascript" src="./js/common/version.js"></script>
|
||||
<script type="text/javascript" src="./js/common/keyshortcut.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>
|
||||
var ver="Mio (15.10.0)";
|
||||
var ver="Akane (16.0.0) beta";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//var ver="beta";
|
||||
var acct_id=0;
|
||||
|
@ -36,247 +38,26 @@ var tlid=0;
|
|||
<!--TL-->
|
||||
<!--ドラッグハンドラ-->
|
||||
<div id="drag">
|
||||
<div id="drag-content" data-trans="drag_here">ここにドラッグして添付(ドラッグと同時にアップロードされます)
|
||||
<div id="drag-content" data-trans="drag_here">{{draghere}}
|
||||
<br>
|
||||
<button class="btn waves-effect" onclick="closedrop()" data-trans="close">閉じる</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--カラム追加-->
|
||||
<div id="add-box" class="hide z-depth-4 notf-box">
|
||||
<div class="input-field"><span data-trans="your_acct">アカウント選択</span>
|
||||
<br>
|
||||
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<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>
|
||||
<option value="notf" data-trans="notification">通知</option>
|
||||
</select>
|
||||
<label data-trans="show_tl">表示するタイムライン</label>
|
||||
</div>
|
||||
<div id="noauth" class="hide">表示するタイムライン
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
|
||||
<i class="material-icons left">add</i>追加
|
||||
</button>
|
||||
<br>
|
||||
<br>
|
||||
<button class="btn waves-effect orange " style="width:calc( 100% - 10px);" onclick="addToggle()" data-trans-i="close">
|
||||
<i class="material-icons left">close</i>閉じる
|
||||
</button>
|
||||
</div>
|
||||
<!--検索-->
|
||||
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
|
||||
<div class="input-field">
|
||||
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
|
||||
</div><div class="input-field">
|
||||
<i class="material-icons prefix">search</i>
|
||||
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
|
||||
<label for="src" data-trans="src">検索</label>
|
||||
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
|
||||
<i class="material-icons left">search</i>検索
|
||||
</button>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
</div>
|
||||
<div id="search">
|
||||
<div id="src-contents">
|
||||
</div>
|
||||
<button class="btn waves-effect orange " style="width:calc( 100% - 10px);" onclick="srcToggle()">
|
||||
<i class="material-icons left" data-trans-i="close">close</i>閉じる
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--並べ替え-->
|
||||
<div id="sort-box" class="hide notf-box z-depth-4">
|
||||
<ul id="sort"></ul>
|
||||
<button onclick="sort()" class="btn waves-effect light-blue nex" style="width:100%; max-width:200px;" data-trans-i="sort">
|
||||
<i class="material-icons left">sort</i>並べ替え設定
|
||||
</button>
|
||||
<button class="btn waves-effect orange " style="width:calc( 100% - 10px);" onclick="sortToggle()" data-trans-i="close">
|
||||
<i class="material-icons left">close</i>閉じる
|
||||
</button>
|
||||
</div>
|
||||
<!--リスト-->
|
||||
<div id="list-box" class="hide notf-box z-depth-4">
|
||||
<div class="input-field" style="width:calc( 100% - 100px);float:left">
|
||||
<select id="list-acct-sel" class="acct-sel"></select>
|
||||
<label>アカウント選択</label>
|
||||
</div>
|
||||
<div style="float:left; padding-top:8px; padding-bottom:28px;">
|
||||
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
|
||||
一覧
|
||||
</button>
|
||||
</div>
|
||||
<br><br>
|
||||
<div id="lists"></div>
|
||||
<div id="lists-user"></div>
|
||||
<input type="text" style="width:150px" id="list-add" placeholder="タイトル">
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">新規作成</button>
|
||||
</div>
|
||||
<!--フィルター-->
|
||||
<div id="filter-box" class="hide notf-box z-depth-4">
|
||||
<div class="input-field" style="width:calc( 100% - 100px);float:left">
|
||||
<select id="filter-acct-sel" class="acct-sel"></select>
|
||||
<label>アカウント選択</label>
|
||||
</div>
|
||||
<div style="float:left; padding-top:8px; padding-bottom:28px;">
|
||||
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
|
||||
一覧
|
||||
</button>
|
||||
</div>
|
||||
<div id="filtered-words"></div>
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="フィルターワード"><br>
|
||||
適用範囲<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">ホーム</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">ローカル</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">通知</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">会話</label><br>
|
||||
オプション<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">単語マッチ</label><br>
|
||||
<span class="sml">非ラテン系の文字列では「単語マッチ」は推奨されません。</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">除外</label><br>
|
||||
<span class="sml">「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。</span><br>
|
||||
有効期限(あと)<span class="sml">未指定(または0分)で「無制限」になります。<b>仕様上数値の正確性を保証できません。</b></span><br><br>
|
||||
<input type="text" style="width:50px" id="days_filter" placeholder="d" value="0">日
|
||||
<input type="text" style="width:50px" id="hours_filter" placeholder="h" value="0">時間
|
||||
<input type="text" style="width:50px" id="mins_filter" placeholder="m" value="0">分
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">追加</button><br>
|
||||
<span class="sml">Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。</span>
|
||||
</div>
|
||||
<div id="main">
|
||||
<!--TLのTL-->
|
||||
<div id="timeline-container">
|
||||
まずは右のアカウントボタンからアカウントを追加してください。<br>
|
||||
右のカラム追加ボタンで認証せずにローカルタイムラインを見ることもできます。
|
||||
</div>
|
||||
<!--サイドバー-->
|
||||
<div id="sidebar">
|
||||
<div id="sidebar-top">
|
||||
<div class="side-dead"></div>
|
||||
<div class="big-menu" id="add-tgl">
|
||||
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add">
|
||||
<i class="material-icons nex big-icon" title="カラム追加" data-trans-title="column_add">add</i>
|
||||
</a>
|
||||
<br>
|
||||
<span class="side-label" data-trans="column_add">カラム追加</span>
|
||||
</div>
|
||||
<div class="big-menu">
|
||||
<a href="acct.html" class="nex waves-effect">
|
||||
<i class="material-icons nex big-icon" title="アカウントマネージャー(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
|
||||
</a>
|
||||
<br>
|
||||
<span class="side-label" data-trans="manager_short">アカウント</span>
|
||||
</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>
|
||||
</a>
|
||||
<br>
|
||||
<span class="side-label" data-trans="sort">カラム一覧</span>
|
||||
</div>
|
||||
<div class="side-dead">
|
||||
</div>
|
||||
<div class="small-menu" id="src-tgl">
|
||||
<a onclick="srcToggle()" class="nex waves-effect">
|
||||
<i class="material-icons" title="検索" data-trans-title="src">search</i>
|
||||
<span class="side-label" data-trans="src">検索</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu">
|
||||
<a href="setting.html" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="設定(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
|
||||
<span class="side-label" data-trans="setting">設定</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu" id="list-tgl">
|
||||
<a onclick="listToggle()" class="nex waves-effect">
|
||||
<i class="material-icons" title="リスト" data-trans-title="list">view_headline</i>
|
||||
<span class="side-label" data-trans="list">リスト</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu" id="filter-tgl">
|
||||
<a onclick="filterToggle()" class="nex waves-effect">
|
||||
<i class="material-icons" title="フィルター" data-trans-title="filter">filter_list</i>
|
||||
<span class="side-label" data-trans="filter">Filter</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu">
|
||||
<a href="index.html" class="nex mize waves-effect">
|
||||
<i class="material-icons nex" title="スーパーリロード(F5/⌘+R)" data-trans-title="reload">refresh</i>
|
||||
<span class="side-label" data-trans="reload">再読込</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu">
|
||||
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
|
||||
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
|
||||
<span class="side-label">暇ラン</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="small-menu">
|
||||
<a onclick="nano()" class="nex waves-effect">
|
||||
<i class="material-icons" title="最小のマストドン。TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
|
||||
<span class="side-label" data-trans="nano">Nano</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="side-dead">
|
||||
</div>
|
||||
<div class="small-menu">
|
||||
<a onclick="xpand()" class="nex waves-effect">
|
||||
<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 id="sidebar-btm">
|
||||
<!--最小化-->
|
||||
<div id="menu-btn" class="big-menu" onclick="show()" style="display:none;">
|
||||
<a class="waves-effect">
|
||||
<i class="material-icons big-icon">mode_edit</i>
|
||||
<br>
|
||||
<span class="side-label" data-trans="post">投稿</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect" onclick="closedrop()" data-trans="close">{{close}}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-box" class="z-depth-3">
|
||||
<!--トゥートボックス-->
|
||||
|
||||
<div class="row" style="margin-bottom:0;">
|
||||
</span>
|
||||
<div class="" style="float:left;">
|
||||
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer mize">
|
||||
<img src="./img/missing.svg" id="acct-sel-prof" title="選択中のプロフィール表示(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
|
||||
<img src="./img/missing.svg" id="acct-sel-prof" title="{{showSelectProf}}(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px)">
|
||||
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
|
||||
</div>
|
||||
<span class="cancel">
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="このボックスを閉じる(X)" data-trans-title="post_box_close">cancel</i>
|
||||
<i class="material-icons waves-effect mini-btn" onclick="mini()" title="このボックスを最小化" data-trans-title="post_box_mini">expand_more</i>
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="{{closeThisBox}}(X)" data-trans-title="post_box_close">cancel</i>
|
||||
</span>
|
||||
<!--Markdown-->
|
||||
<div class="row" style="margin-bottom:0">
|
||||
|
@ -325,7 +106,7 @@ var tlid=0;
|
|||
<div class="input-field col s12" id="toot-field" style="margin-top: 10px;">
|
||||
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;" data-length="500"></textarea>
|
||||
<label for="textarea" data-trans="toot">トゥート</label>
|
||||
<label for="textarea" data-trans="toot">{{toot}}</label>
|
||||
<br>
|
||||
<span class="sml gray pointer markdown mize" id="preview-btn">
|
||||
<a onclick="preview()">Preview</a>
|
||||
|
@ -336,44 +117,44 @@ var tlid=0;
|
|||
<span id="suggest"></span>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与" onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="{{nsfwDes}}" onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="コンテンツワーニング(トゥートを表示する前にメッセージで隠す)">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray" onclick="fileselect()" title="ファイルを選択">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="adobe()" title="Adobeフォトエディタ">format_shapes</i>
|
||||
<i class="waves-effect gray material-icons" onclick="emoji()" title="絵文字を挿入">tag_faces</i>
|
||||
<a class="pointer waves-effect gray" id="npbtn" title="NowPlaying[クリックでSpotify(アカウント連携が必要です)/control+クリックでiTunes(macOSが必要です)]"><i class="material-icons" style="font-size:24px;">music_note</i></a>
|
||||
<i class="material-icons nex gray waves-effect" title="トゥートボックスのクリア(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="{{cwDes}}">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray" onclick="fileselect()" title="{{selfile}}">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="adobe()" title="{{adobephoto}}">format_shapes</i>
|
||||
<i class="waves-effect gray material-icons" onclick="emoji()" title="{{insertEmoji}}">tag_faces</i>
|
||||
<a class="pointer waves-effect gray" id="npbtn" title="{{NowPlayingDes}}"><i class="material-icons" style="font-size:24px;">music_note</i></a>
|
||||
<i class="material-icons nex gray waves-effect" title="{{clearToot}}(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-bottom:5px; padding:0;">
|
||||
<div id="taglist"></div>
|
||||
<span id="preview" class="mize"></span>
|
||||
<span class=" sml mize"><span data-trans="reply">返信モード</span>:
|
||||
<span id="rec">いいえ</span>/<span data-trans="file">添付</span>:
|
||||
<span id="mec">なし</span>/<span data-trans="vis">公開範囲</span>:
|
||||
<span class=" sml mize"><span data-trans="reply">{{replyMode}}</span>:
|
||||
<span id="rec">{{no}}</span>/<span data-trans="file">{{temp}}</span>:
|
||||
<span id="mec">{{nothing}}</span>/<span data-trans="vis">{{vis}}</span>:
|
||||
<span id="vis">public</span>
|
||||
</span>
|
||||
<br>
|
||||
<input type="text" id="cw-text" placeholder="警告文" class="mize">
|
||||
<input type="text" id="cw-text" placeholder="{{cwtext}}" class="mize">
|
||||
</div>
|
||||
</div>
|
||||
<!-- 公開範囲 Dropdown Structure -->
|
||||
<ul id='dropdown1' class='dropdown-content'>
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">公開範囲指定</li>
|
||||
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">{{selectVis}}</li>
|
||||
<li>
|
||||
<a onclick="vis('public')">公開(Public)</a>
|
||||
<a onclick="vis('public')">{{publicJP}}(Public)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="vis('unlisted')">未収載(Unlisted)</a>
|
||||
<a onclick="vis('unlisted')">{{unlistedJP}}(Unlisted)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="vis('private')" id="private-button">非公開(Private)</a>
|
||||
<a onclick="vis('private')" id="private-button">{{privateJP}}(Private)</a>
|
||||
</li>
|
||||
<li id="limited-button" class="hide">
|
||||
<a onclick="vis('limited')">限定公開(Limited)</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="vis('direct')" class="disabled direct">ダイレクト(Direct)</a>
|
||||
<a onclick="vis('direct')" class="disabled direct">{{directJP}}(Direct)</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--hidden area-->
|
||||
|
@ -382,17 +163,17 @@ var tlid=0;
|
|||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize" style="width:calc(100% - 10px); padding:0; margin-top:10px;" onclick="post()" id="toot-post-btn">トゥート</button>
|
||||
<button class="btn waves-effect indigo unmize" style="width:calc(100% - 10px); padding:0; margin-top:10px;" onclick="post()" id="toot-post-btn">{{toot}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--絵文字ピッカー-->
|
||||
<div id="emoji" class="hide shared z-depth-4">
|
||||
<span class="gray sml">インスタンスによって実装が異なります。
|
||||
<a onclick="emojiGet('true')" class="pointer">絵文字更新</a>
|
||||
<i class="material-icons waves-effect" onclick="emoji()" title="このボックスを閉じる" data-trans-title="post_box_close">cancel</i>
|
||||
<span class="gray sml">{{emojiWarn}}
|
||||
<a onclick="emojiGet('true')" class="pointer">{{refreshEmoji}}</a>
|
||||
<i class="material-icons waves-effect" onclick="emoji()" title="{{closeThisBox}}" data-trans-title="post_box_close">cancel</i>
|
||||
<br>
|
||||
</span>
|
||||
<input type="text" id="emoji-suggest" placeholder="カスタム絵文字検索">
|
||||
<input type="text" id="emoji-suggest" placeholder="{{customEmoji}} {{search}}">
|
||||
<div id="emoji-list" class="" style="">
|
||||
</div>
|
||||
<div class="emoji-control center">
|
||||
|
@ -406,33 +187,33 @@ var tlid=0;
|
|||
</button>
|
||||
</div>
|
||||
<div id="default-emoji">
|
||||
<span id="now-emoji"></span>一覧を表示中<br><span class="gray sml">一部デフォルト絵文字は入力・描画できません。(国旗系など)</span>
|
||||
<span id="now-emoji"></span>{{showThisEmoji}}<br><span class="gray sml">{{emojiInsertWarn}}</span>
|
||||
<br>
|
||||
<a onclick="customEmoji()" class="pointer waves-effect" title="カスタム絵文字">
|
||||
<a onclick="customEmoji()" class="pointer waves-effect" title="{{customEmoji}}">
|
||||
<i class="material-icons">add</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('people')" class="pointer waves-effect" title="ひと">
|
||||
<a onclick="defaultEmoji('people')" class="pointer waves-effect" title="{{peopleEmoji}}">
|
||||
<i class="material-icons">people</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('nature')" class="pointer waves-effect" title="自然">
|
||||
<a onclick="defaultEmoji('nature')" class="pointer waves-effect" title="{{natureEmoji}}">
|
||||
<i class="material-icons">local_florist</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('food')" class="pointer waves-effect" title="食べ物">
|
||||
<a onclick="defaultEmoji('food')" class="pointer waves-effect" title="{{foodEmoji}}">
|
||||
<i class="material-icons">restaurant</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('activity')" class="pointer waves-effect" title="活動">
|
||||
<a onclick="defaultEmoji('activity')" class="pointer waves-effect" title="{{activityEmoji}}">
|
||||
<i class="material-icons">directions_run</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('place')" class="pointer waves-effect" title="場所">
|
||||
<a onclick="defaultEmoji('place')" class="pointer waves-effect" title="{{placeEmoji}}">
|
||||
<i class="material-icons">directions_car</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('object')" class="pointer waves-effect" title="もの">
|
||||
<a onclick="defaultEmoji('object')" class="pointer waves-effect" title="{{thingsEmoji}}">
|
||||
<i class="material-icons">attach_file</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('symbol')" class="pointer waves-effect" title="記号">
|
||||
<a onclick="defaultEmoji('symbol')" class="pointer waves-effect" title="{{symbolEmoji}}">
|
||||
<i class="material-icons">gesture</i>
|
||||
</a>
|
||||
<a onclick="defaultEmoji('flag')" class="pointer waves-effect" title="国旗">
|
||||
<a onclick="defaultEmoji('flag')" class="pointer waves-effect" title="{{flagsEmoji}}">
|
||||
<i class="material-icons">flag</i>
|
||||
</a>
|
||||
<a onclick="faicon()" class="pointer waves-effect" title="faicon" id="faicon-btn">
|
||||
|
@ -446,67 +227,67 @@ var tlid=0;
|
|||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">arrow_upward</i>これより前の会話
|
||||
<i class="material-icons">arrow_upward</i>{{contextBefore}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-reply">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header" id="activator">
|
||||
<i class="material-icons">more_horiz</i>対象のトゥート
|
||||
<i class="material-icons">more_horiz</i>{{thisToot}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-this">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">arrow_downward</i>これよりあとの会話
|
||||
<i class="material-icons">arrow_downward</i>{{contextAfter}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-after">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>これより前のLocal TL(エアリプソース確認)
|
||||
<i class="material-icons">people_outline</i>{{beforeLTL}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-before">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">person_outline</i>これより前のユーザーTL(BTソース確認)
|
||||
<i class="material-icons">person_outline</i>{{beforeUTL}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="user-before">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">star</i>このトゥートをお気に入りに登録した人
|
||||
<i class="material-icons">star</i>{{favedPeople}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-fav">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="text-darken-3 fa fa-retweet"></i>このトゥートをブーストした人
|
||||
<i class="text-darken-3 fa fa-retweet"></i>{{btedPeople}}
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="toot-rt">
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
他のアカウントを使用(<i class="fa fa-retweet"></i>/<i class="fa fa-star"></i>の解除はできません)<br>
|
||||
{{useOtherAcct1}}(<i class="fa fa-retweet"></i>/<i class="fa fa-star"></i>{{useOtherAcct2}})<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>
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i class="fa fa-share left"></i>{{reply}}</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>
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fa fa-retweet left"></i>{{bt}}</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>
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fa fa-star left"></i>{{favRegist}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="toot-tools">
|
||||
|
@ -515,11 +296,11 @@ var tlid=0;
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="brws()">ブラウザで開く</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="shot()">スクリーンショット</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy()">URLをコピー</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy('emb')">埋め込む</a>
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="brws()">{{openBrowser}}</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="shot()">{{screenshot}}</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy()">{{copyURL}}</a>
|
||||
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy('emb')">{{embed}}</a>
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">{{useOtherAcct}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal Structure Userdata -->
|
||||
|
@ -534,12 +315,12 @@ var tlid=0;
|
|||
<span class="gray" id="his-relation"></span>
|
||||
<br>
|
||||
<span class="cbadge">
|
||||
<span id="his-sta"></span>トゥート
|
||||
<span id="his-sta"></span>{{toots}}
|
||||
</span>
|
||||
<span class="cbadge">フォロー:
|
||||
<span class="cbadge">{{follow}}:
|
||||
<span id="his-follow"></span>
|
||||
</span>
|
||||
<span class="cbadge">フォロワー:
|
||||
<span class="cbadge">{{follower}}:
|
||||
<span id="his-follower"></span>
|
||||
</span>
|
||||
<span class="cbadge" style="max-width:150px; width:150px; ">Since:
|
||||
|
@ -553,111 +334,111 @@ var tlid=0;
|
|||
<div class="col s12" id="my-data-nav">
|
||||
<ul class="custom-tabs transparent">
|
||||
<li class="custom-tab col my-data-width active-back column-first">
|
||||
<a go="#his-tl">タイムライン</a>
|
||||
<a go="#his-tl">{{timeline}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<a go="#his-follow-list">フォロー</a>
|
||||
<a go="#his-follow-list">{{follow}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width">
|
||||
<a go="#his-follower-list">フォロワー</a>
|
||||
<a go="#his-follower-list">{{follower}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<a go="#his-action">他アカウントで操作</a>
|
||||
<a go="#his-action">{{operateOtherAcct}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<a go="#his-list">リスト</a>
|
||||
<a go="#his-list">{{list}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-fav-list">お気に入り登録</a>
|
||||
<a go="#his-fav-list">{{favRegist}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-blocking-list">ブロック</a>
|
||||
<a go="#his-blocking-list">{{blocks}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-muting-list">ミュート</a>
|
||||
<a go="#his-muting-list">{{mutes}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list">ドメインブロック</a>
|
||||
<a go="#his-domain-list">{{domainBlock}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list">プロフィール編集</a>
|
||||
<a go="#his-prof-list">{{editProf}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-request-list">フォローリクエスト</a>
|
||||
<a go="#his-request-list">{{followReq}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-his-data">
|
||||
<a go="#his-matching-list">似てる</a>
|
||||
<a go="#his-matching-list">{{likeHimOrHer}}</a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-follow-recom-list">おすすめ</a>
|
||||
<a go="#his-follow-recom-list">{{frc}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="his-tl" class="col s12 tab-content">
|
||||
<div id="his-tl-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="utl('--now','more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="utl('--now','more')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-follow-list" class="col s12 tab-content">
|
||||
<div id="his-follow-list-contents" class="cont-series">
|
||||
</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')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-follower-list" class="col s12 tab-content">
|
||||
<div id="his-follower-list-contents" class="cont-series">
|
||||
</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')">{{more}}</button>
|
||||
</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><br>
|
||||
または<br>
|
||||
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">プロフを開く</a><br>
|
||||
{{useOtherAcct1}}{{revoverJP}}{{follow}}({{warnUseOtherAcct}})<br>
|
||||
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>{{revoverJPde}}
|
||||
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">{{follow}}</a><br>
|
||||
{{or}}<br>
|
||||
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">{{openProf}}</a><br>
|
||||
</div>
|
||||
<div id="his-list" class="col s12 tab-content">
|
||||
<div id="his-lists-a">リストに追加するためにはフォローが必要です。</div>
|
||||
<div id="his-lists-a">{{warnListRegist}}</div>
|
||||
|
||||
<div id="his-lists-b"></div>
|
||||
</div>
|
||||
<div id="his-fav-list" class="col s12 tab-content">
|
||||
<div id="his-fav-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">もっと</button>
|
||||
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-blocking-list" class="col s12 tab-content">
|
||||
<div id="his-blocking-list-contents"class="cont-series" >
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-muting-list" class="col s12 tab-content">
|
||||
<div id="his-muting-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-domain-list" class="col s12 tab-content">
|
||||
<div id="his-domain-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showDom('more')">もっと</button>ブロックするドメイン
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showDom('more')">{{more}}</button>{{blockDomain}}
|
||||
<br>
|
||||
<input type="text" placeholder="example.com" id="domainblock">
|
||||
<button class="btn waves-effect" onclick="addDomainblock()">ブロック</button>
|
||||
<button class="btn waves-effect" onclick="addDomainblock()">{{block}}</button>
|
||||
<br>
|
||||
</div>
|
||||
<div id="his-prof-list" class="col s12 tab-content">名前
|
||||
<div id="his-prof-list" class="col s12 tab-content">{{name}}
|
||||
<br>
|
||||
<input type="text" placeholder="名前" id="his-name-val" style="max-width:250px;">
|
||||
<br>自己紹介
|
||||
<input type="text" placeholder="{{name}}" id="his-name-val" style="max-width:250px;">
|
||||
<br>{{note}}
|
||||
<br>
|
||||
<div class="input-field col s12">
|
||||
<textarea placeholder="自己紹介" id="his-des-val" class="materialize-textarea"></textarea>
|
||||
<label for="his-des-val">自己紹介</label>
|
||||
<textarea placeholder="{{note}}" id="his-des-val" class="materialize-textarea"></textarea>
|
||||
<label for="his-des-val">{{note}}</label>
|
||||
</div>
|
||||
<br>プロフィール画像変更:
|
||||
<br>{{editProfImg}}:
|
||||
<span id="prof-change">
|
||||
<input type="file" onchange="imgChange(this,'avatar')">
|
||||
</span>
|
||||
<br>ヘッダー画像変更:
|
||||
<br>{{editHeader}}:
|
||||
<span id="header-change">
|
||||
<input type="file" onchange="imgChange(this,'header')">
|
||||
</span>
|
||||
|
@ -665,15 +446,15 @@ var tlid=0;
|
|||
<div id="his-request-list" class="col s12 tab-content">
|
||||
<div id="his-request-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">{{more}}</button>
|
||||
</div>
|
||||
<div id="his-matching-list" class="col s12 tab-content">
|
||||
似ているユーザーを取得できます。<br>
|
||||
{{likeUserDes}}<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>
|
||||
<button class="btn waves-effect " onclick="showMat()">{{get}}</button>
|
||||
</div>
|
||||
<div id="his-follow-recom-list" class="col s12 tab-content">
|
||||
<div id="his-follow-recom-contents" class="cont-series">
|
||||
|
@ -683,12 +464,12 @@ var tlid=0;
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">一つ前のユーザーデータ</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn" onclick="follow()">フォロー</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn" onclick="mute()">ミュート</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn" onclick="block()">ブロック</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-emp-btn" onclick="empUser()">ユーザー強調</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">{{historyBack}}</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn" onclick="follow()">{{follow}}</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn" onclick="mute()">{{mute}}</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn" onclick="block()">{{block}}</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-emp-btn" onclick="empUser()">{{empUser}}</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">{{close}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal Structure Image-->
|
||||
|
@ -711,7 +492,7 @@ var tlid=0;
|
|||
<button class="btn waves-effect purple" onclick="dlImg()">
|
||||
<i class="material-icons">file_download</i>
|
||||
</button>
|
||||
<button class="btn waves-effect brown" onclick="detFromImg()">当該トゥート</button>
|
||||
<button class="btn waves-effect brown" onclick="detFromImg()">{{thisToot}}</button>
|
||||
<button class="btn waves-effect orange" onclick="imgCont('prev')" id="image-prev">
|
||||
<i class="material-icons">keyboard_arrow_left</i>
|
||||
</button>
|
||||
|
@ -729,7 +510,7 @@ var tlid=0;
|
|||
<video src="" id="video" style="max-width:100%; max-height:100%;" controls >
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">{{close}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Modal Structure Release Note-->
|
||||
|
@ -751,15 +532,14 @@ var tlid=0;
|
|||
|
||||
</div>
|
||||
<br><br>
|
||||
TheDeskはオープンソース・ソフトウェアです。<br>
|
||||
皆様のあたたかいご支援のもとで製作されています。<br>
|
||||
<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>
|
||||
{{TheDeskDes}}<br>
|
||||
<a href="https://enty.jp/Cutls" target="_blank">{{EntySupport}}</a><br>
|
||||
<a href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">{{AWLSupport}}</a><br>
|
||||
{{SendAmazonGift1}}<a href="mailto:mstdn@thedesk.top" target="_blank">mstdn@thedesk.top</a>{{SendAmazonGift2}}<br>
|
||||
<a href="https://osushi.love/Cutls_P" target="_blank">Osushi.love</a>{{sendSushi}}<br>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
|
||||
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">{{close}}</a>
|
||||
</div>
|
||||
</div>
|
||||
<!--PiP-->
|
||||
|
@ -769,7 +549,204 @@ var tlid=0;
|
|||
<i class="material-icons pointer" onclick="endPip()">close</i>
|
||||
<div id="pip-content">
|
||||
</div>
|
||||
</div>
|
||||
<!--カラム追加-->
|
||||
<div id="add-box" class="hide z-depth-4 notf-box">
|
||||
<div class="input-field"><span data-trans="your_acct">{{selectAcct}}</span>
|
||||
<br>
|
||||
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
|
||||
<label></label>
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<div id="auth">
|
||||
<select id="type-sel" style="color:black">
|
||||
<option value="local" data-trans="local">{{local}}</option>
|
||||
<option value="local-media" data-trans="local-media">{{localMedia}}</option>
|
||||
<option value="home" data-trans="home">{{home}}</option>
|
||||
<option value="pub" data-trans="public">{{fed}}</option>
|
||||
<option value="pub-media" data-trans="public-media">{{fedMedia}}</option>
|
||||
<option value="dm" data-trans="dm">{{dm}}</option>
|
||||
<option value="mix" data-trans="integrated">{{integratedTLDes}}</option>
|
||||
<option value="plus" data-trans="plus">{{localPlusDes}}</option>
|
||||
<option value="notf" data-trans="notification">{{notf}}</option>
|
||||
</select>
|
||||
<label data-trans="show_tl">{{showThisTL}}</label>
|
||||
</div>
|
||||
<div id="noauth" class="hide">{{showThisTL}}
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
|
||||
<i class="material-icons left">add</i>{{add}}
|
||||
</button>
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
<!--検索-->
|
||||
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
|
||||
<div class="input-field">
|
||||
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
|
||||
</div><div class="input-field">
|
||||
<i class="material-icons prefix">search</i>
|
||||
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
|
||||
<label for="src" data-trans="src">{{search}}</label>
|
||||
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
|
||||
<i class="material-icons left">search</i>{{search}}
|
||||
</button>
|
||||
<br>
|
||||
<br>
|
||||
</div>
|
||||
<div id="search">
|
||||
<div id="src-contents">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--並べ替え-->
|
||||
<div id="sort-box" class="hide">
|
||||
<ul id="sort"></ul>
|
||||
<div>
|
||||
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
|
||||
<i class="material-icons left">sort</i>{{sortSet}}
|
||||
</button>
|
||||
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
|
||||
<i class="material-icons left">close</i>{{close}}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<!--リスト-->
|
||||
<div id="list-box" class="hide notf-box z-depth-4">
|
||||
<div class="input-field" style="width:calc( 100% - 100px);float:left">
|
||||
<select id="list-acct-sel" class="acct-sel"></select>
|
||||
<label>{{selectAcct}}</label>
|
||||
</div>
|
||||
<div style="float:left; padding-top:8px; padding-bottom:28px;">
|
||||
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
|
||||
{{listLocale}}
|
||||
</button>
|
||||
</div>
|
||||
<br><br>
|
||||
<div id="lists"></div>
|
||||
<div id="lists-user"></div>
|
||||
<input type="text" style="width:150px" id="list-add" placeholder="タイトル">
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">{{makeNew}}</button>
|
||||
</div>
|
||||
<!--フィルター-->
|
||||
<div id="filter-box" class="hide notf-box z-depth-4">
|
||||
<div class="input-field" style="width:calc( 100% - 100px);float:left">
|
||||
<select id="filter-acct-sel" class="acct-sel"></select>
|
||||
<label>{{selectAcct}}</label>
|
||||
</div>
|
||||
<div style="float:left; padding-top:8px; padding-bottom:28px;">
|
||||
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
|
||||
{{listLocale}}
|
||||
</button>
|
||||
</div>
|
||||
<div id="filtered-words"></div>
|
||||
<input type="hidden" id="filter-edit-id">
|
||||
<input type="text" style="width:150px" id="filter-add-word" placeholder="{{filterWord}}"><br>
|
||||
{{degree}}<br>
|
||||
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
|
||||
<label for="home_filter">{{home}}</label>
|
||||
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
|
||||
<label for="local_filter">{{local}}</label>
|
||||
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
|
||||
<label for="notf_filter">{{notf}}</label>
|
||||
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
|
||||
<label for="conv_filter">{{conver}}</label><br>
|
||||
{{option}}<br>
|
||||
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
|
||||
<label for="wholeword_filter">{{matchWord}}</label><br>
|
||||
<span class="sml">{{warnMatchWord}}</span><br>
|
||||
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
|
||||
<label for="except_filter">{{except}}</label><br>
|
||||
<span class="sml">{{exceptWorn}}</span><br>
|
||||
{{avalableBefore}}<span class="sml">{{warnAvBefore}}<b>{{warnAvBefore2}}</b></span><br><br>
|
||||
<input type="text" style="width:50px" id="days_filter" placeholder="d" value="0">{{days}}
|
||||
<input type="text" style="width:50px" id="hours_filter" placeholder="h" value="0">{{hours}}
|
||||
<input type="text" style="width:50px" id="mins_filter" placeholder="m" value="0">{{mins}}
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">{{add}}</button><br>
|
||||
<span class="sml">{{warnOnIntegratedTL}}</span>
|
||||
</div>
|
||||
<div id="main">
|
||||
<!--TLのTL-->
|
||||
<div id="timeline-container">
|
||||
{{helloTheDesk}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--bottom-->
|
||||
<div id="bottom">
|
||||
<div class="leftside">
|
||||
<div id="dambox">
|
||||
<input type="text" id="posttgl" placeholder="{{toot}}" style="height:2rem">
|
||||
</div>
|
||||
<div class="leftside" id="group">
|
||||
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
|
||||
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
|
||||
<i class="material-icons nex" title="{{addColumn}}" data-trans-title="column_add">add</i>
|
||||
</a>
|
||||
<a onclick="sortToggle()" class="nex waves-effect">
|
||||
<i class="material-icons nex big-icon" title="{{sortColumns}}" data-trans-title="sort">sort</i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
|
||||
<a href="acct.html" class="nex waves-effect">
|
||||
<i class="material-icons nex big-icon" title="{{acctMan}}(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
|
||||
</a>
|
||||
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
|
||||
<i class="material-icons" title="{{search}}" data-trans-title="src">search</i>
|
||||
</a>
|
||||
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="{{list}}" data-trans-title="list">view_headline</i>
|
||||
</a>
|
||||
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
|
||||
<i class="material-icons" title="{{filter}}" data-trans-title="filter">filter_list</i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="btnsgroup"><span class="grouptitle">Preferances:</span>
|
||||
<a href="setting.html" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="{{setting}}(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
|
||||
</a>
|
||||
<a href="index.html" class="nex mize waves-effect">
|
||||
<i class="material-icons nex" title="{{f5}}(F5/⌘+R)" data-trans-title="reload">refresh</i>
|
||||
</a>
|
||||
<a onclick="nano()" class="nex waves-effect">
|
||||
<i class="material-icons" title="{{nanoDes}}TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
|
||||
</a>
|
||||
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
|
||||
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div id="tips-menu">
|
||||
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
|
||||
<a onclick="tips('ver')" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="{{verTips}}" data-trans-title="ver">info</i>
|
||||
</a>
|
||||
<a onclick="tips('clock')" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="{{clockTips}}" data-trans-title="clock">access_time</i>
|
||||
</a>
|
||||
<a onclick="tips('memory')" class="nex waves-effect">
|
||||
<i class="material-icons nex" title="{{ramTips}}" data-trans-title="memory">memory</i>
|
||||
</a>
|
||||
<a onclick="tips('trend')" class="nex waves-effect imasonly" style="display:none;">
|
||||
<i class="material-icons nex" title="アイマストドントレンド" data-trans-title="trendtip">whatshot</i>
|
||||
</a>
|
||||
<a onclick="tips('spotify')" class="nex waves-effect">
|
||||
<i class="fa fa-spotify nex" title="Spotify" data-trans-title="spotifytips"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tips" class="hide">
|
||||
<a onclick="tipsToggle()" class="nex waves-effect" style="float:left">
|
||||
<i class="material-icons nex" title="{{changeTips}}" data-trans-title="tips">bubble_chart</i>
|
||||
</a>
|
||||
<div id="tips-text" style="float:left; width:300px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--左下メッセージ-->
|
||||
<div id="message">
|
||||
</div>
|
||||
|
@ -814,7 +791,4 @@ var tlid=0;
|
|||
<script type="text/javascript" src="./js/userdata/prof-edit.js"></script>
|
||||
<script type="text/javascript" src="./js/emoji/emojipack.js"></script>
|
||||
<script type="text/javascript" src="./js/emoji/default-emoji.js"></script>
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
|
@ -298,6 +298,7 @@
|
|||
<li>N:投稿パネルを開く</li>
|
||||
<li>X:投稿パネルを開閉</li>
|
||||
<li>Ctrl+Enter:投稿</li>
|
||||
<li>Ctrl+E:全ての通知を既読にする</li>
|
||||
<li>Esc:投稿パネルを消す</li>
|
||||
<li>F5:スーパーリロード</li>
|
||||
<li>E:投稿パネルの幅を切り替え</li>
|
||||
|
|
Loading…
Reference in New Issue
Block a user