Compare commits
29 Commits
v20.0.3
...
use-strict
Author | SHA1 | Date | |
---|---|---|---|
|
957ef30fc0 | ||
|
bae73521e9 | ||
|
2583c3b80a | ||
|
b35ecbf79c | ||
|
2b6cf60868 | ||
|
ce72432039 | ||
|
b3689fe297 | ||
|
4a6e8c733f | ||
|
de2ac24382 | ||
|
e7aa01c547 | ||
|
72b060e7ae | ||
|
2a99a79d37 | ||
|
d1e6fac1b0 | ||
|
63802c98a3 | ||
|
3bd8520e7c | ||
|
662c15da93 | ||
|
dd0fd325b8 | ||
|
b772b03ef2 | ||
|
eda554eb8f | ||
|
2936bd1e5a | ||
|
df2f86f577 | ||
|
b9d1899cf2 | ||
|
b01497e391 | ||
|
af38681293 | ||
|
022565e176 | ||
|
00863d6917 | ||
|
e345b3a479 | ||
|
fe32723ad5 | ||
|
b9d562d8f0 |
22
LATEST.md
22
LATEST.md
@@ -1,22 +0,0 @@
|
||||
## For Astarte(kirishima.cloud), My Primary Instance
|
||||
|
||||
TheDesk :thedesk: Akane (16.1.0)
|
||||
・不具合修正(マウスオーバー,クリックに関する)
|
||||
・2.5.0に対する対応(リプ数やendorseなど)
|
||||
・軽量化を図った
|
||||
・一つのカラムをTwitter(TweetDeck)にできる機能
|
||||
・画像の保存先を変えられるように
|
||||
・インスタンス情報の拡充
|
||||
・デザイン変更
|
||||
・トゥートバーを左端に持ってこれるように
|
||||
・Windowsのネイティブ通知が復活
|
||||
|
||||
ほか
|
||||
https://thedesk.top
|
||||
:github: https://github.com/cutls/TheDesk #Desk #DeskUpdate
|
||||
|
||||
## For Other Instances
|
||||
|
||||
TheDesk :thedesk: Akane (16.0.1)
|
||||
|
||||
https://thedesk.top
|
@@ -1,8 +0,0 @@
|
||||
# プライバシーポリシー
|
||||
|
||||
* TheDeskは「開発者からのお知らせ」配信のためにサーバー(thedesk.top)に常時アクセスしています。
|
||||
* 上記の接続によるユーザーの情報提供はありません。(IPアドレス等を含む)
|
||||
* thedesk.topのページにおいては、Googleアナリティクスによる解析を採用しています。
|
||||
* 配信についてAmazon Web Service CloudFrontを使用しています。CloudFrontにはアクセス解析機能がありますが、これの使用につきましては同プライバシーポリシーに則ります。
|
||||
* 接続するインスタンスのプライバシーポリシーはAPIを通じた全てのアクションに対して有効ですので、TheDeskについてもそれらに則ります。
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//このソフトについて
|
||||
function about() {
|
||||
postMessage(["sendSinmpleIpc", "about"], "*")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
var digitCharacters = [
|
||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||||
|
1
app/js/common/hammer.min.js
vendored
1
app/js/common/hammer.min.js
vendored
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*! Hammer.JS - v2.0.8 - 2016-04-23
|
||||
* http://hammerjs.github.io/
|
||||
*
|
||||
|
@@ -1,191 +1,192 @@
|
||||
selectedColumn = 0
|
||||
selectedToot = 0
|
||||
$(function ($) {
|
||||
'use strict'
|
||||
var selectedColumn = 0
|
||||
var selectedToot = 0
|
||||
$(function($) {
|
||||
//キーボードショートカット
|
||||
$(window).keydown(function (e) {
|
||||
var hasFocus = $('input').is(':focus');
|
||||
var hasFocus2 = $('textarea').is(':focus');
|
||||
if (document.getElementById("webview")) {
|
||||
if ($("#webviewsel:checked").val()) {
|
||||
var wv = false;
|
||||
$(window).keydown(function(e) {
|
||||
var hasFocus = $('input').is(':focus')
|
||||
var hasFocus2 = $('textarea').is(':focus')
|
||||
if (document.getElementById('webview')) {
|
||||
if ($('#webviewsel:checked').val()) {
|
||||
var wv = false
|
||||
} else {
|
||||
var wv = true;
|
||||
var wv = true
|
||||
}
|
||||
} else {
|
||||
var wv = true;
|
||||
var wv = true
|
||||
}
|
||||
//Enter
|
||||
if (e.keyCode === 13) {
|
||||
if($("#src").is(':focus')){
|
||||
if ($('#src').is(':focus')) {
|
||||
src()
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
if($("#list-add").is(':focus')){
|
||||
if ($('#list-add').is(':focus')) {
|
||||
makeNewList()
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Shift+Enter:Lgen
|
||||
if (event.metaKey || event.ctrlKey && wv) {
|
||||
if (event.metaKey || (event.ctrlKey && wv)) {
|
||||
if (event.shiftKey) {
|
||||
if (e.keyCode === 13) {
|
||||
post('local');
|
||||
return false;
|
||||
post('local')
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
//Ctrl+Enter:投稿
|
||||
if (event.metaKey || event.ctrlKey && wv) {
|
||||
if (event.metaKey || (event.ctrlKey && wv)) {
|
||||
if (e.keyCode === 13) {
|
||||
post();
|
||||
return false;
|
||||
post()
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Alt+Enter:セカンダリー
|
||||
if (event.metaKey || event.altKey && wv) {
|
||||
if (event.metaKey || (event.altKey && wv)) {
|
||||
if (e.keyCode === 13) {
|
||||
sec();
|
||||
return false;
|
||||
sec()
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Esc:消す
|
||||
if (e.keyCode === 27 && wv) {
|
||||
hide();
|
||||
return false;
|
||||
hide()
|
||||
return false
|
||||
}
|
||||
//F5リロード
|
||||
if (e.keyCode === 116 && wv) {
|
||||
location.href = "index.html";
|
||||
return false;
|
||||
location.href = 'index.html'
|
||||
return false
|
||||
}
|
||||
//Ctrl+Sift+C:全消し
|
||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey && wv) {
|
||||
if (e.keyCode === 67) {
|
||||
clear();
|
||||
return false;
|
||||
clear()
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+N:NowPlaying
|
||||
if (((event.metaKey || event.ctrlKey) && event.shiftKey) && wv) {
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey && wv) {
|
||||
if (e.keyCode === 78) {
|
||||
show();
|
||||
show()
|
||||
nowplaying()
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
}
|
||||
//input/textareaにフォーカスなし時
|
||||
if ((!hasFocus && !hasFocus2) && wv) {
|
||||
if (!hasFocus && !hasFocus2 && wv) {
|
||||
if (!wv) {
|
||||
return true;
|
||||
return true
|
||||
}
|
||||
//Ctrl+V:いつもの
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (e.keyCode === 86) {
|
||||
show();
|
||||
show()
|
||||
}
|
||||
}
|
||||
//X:開閉
|
||||
if (e.keyCode === 88) {
|
||||
if (!$("#post-box").hasClass("appear")) {
|
||||
show();
|
||||
$('textarea').focus();
|
||||
if (!$('#post-box').hasClass('appear')) {
|
||||
show()
|
||||
$('textarea').focus()
|
||||
} else {
|
||||
hide();
|
||||
hide()
|
||||
}
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
//N:新トゥート
|
||||
if (e.keyCode === 78) {
|
||||
if (!$("#post-box").hasClass("appear")) {
|
||||
show();
|
||||
if (!$('#post-box').hasClass('appear')) {
|
||||
show()
|
||||
}
|
||||
$('textarea').focus();
|
||||
return false;
|
||||
$('textarea').focus()
|
||||
return false
|
||||
}
|
||||
//Ctrl+E:全ての通知未読を既読にする
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (e.keyCode === 69) {
|
||||
allNotfRead();
|
||||
return false;
|
||||
allNotfRead()
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Space:読み込み
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (e.keyCode === 32) {
|
||||
parseColumn();
|
||||
return false;
|
||||
parseColumn()
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+S:設定
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode === 83) {
|
||||
location.href = "setting.html";
|
||||
return false;
|
||||
location.href = 'setting.html'
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+M:アカマネ
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode === 77) {
|
||||
location.href = "acct.html";
|
||||
return false;
|
||||
location.href = 'acct.html'
|
||||
return false
|
||||
}
|
||||
}
|
||||
//Ctrl+Sift+P:プロフ
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode === 80) {
|
||||
profShow()
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
}
|
||||
//数字:TL
|
||||
if (event.metaKey || event.ctrlKey) {
|
||||
if (e.keyCode >= 49 && e.keyCode <= 57) {
|
||||
var kz = e.keyCode - 49;
|
||||
goColumn(kz);
|
||||
return false;
|
||||
var kz = e.keyCode - 49
|
||||
goColumn(kz)
|
||||
return false
|
||||
}
|
||||
}
|
||||
//矢印:選択
|
||||
if (e.code == "ArrowLeft") {
|
||||
if (e.code == 'ArrowLeft') {
|
||||
//left
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('prev');
|
||||
return false;
|
||||
if ($('#imagemodal').hasClass('open')) {
|
||||
imgCont('prev')
|
||||
return false
|
||||
}
|
||||
if (selectedColumn > 0) {
|
||||
selectedColumn--
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowUp") {
|
||||
return false
|
||||
} else if (e.code == 'ArrowUp') {
|
||||
//up
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
return false;
|
||||
if ($('#imagemodal').hasClass('open')) {
|
||||
return false
|
||||
}
|
||||
if (selectedToot > 0) {
|
||||
selectedToot--
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowRight") {
|
||||
return false
|
||||
} else if (e.code == 'ArrowRight') {
|
||||
//right
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
imgCont('next');
|
||||
return false;
|
||||
if ($('#imagemodal').hasClass('open')) {
|
||||
imgCont('next')
|
||||
return false
|
||||
}
|
||||
if (selectedColumn < $(".tl-box").length - 1) {
|
||||
if (selectedColumn < $('.tl-box').length - 1) {
|
||||
selectedColumn++
|
||||
}
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
} else if (e.code == "ArrowDown") {
|
||||
return false
|
||||
} else if (e.code == 'ArrowDown') {
|
||||
//down
|
||||
if ($("#imagemodal").hasClass("open")) {
|
||||
return false;
|
||||
if ($('#imagemodal').hasClass('open')) {
|
||||
return false
|
||||
}
|
||||
selectedToot++
|
||||
tootSelector(selectedColumn, selectedToot)
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
//Ctrl+U:0,0選択
|
||||
if (event.ctrlKey || event.metaKey) {
|
||||
@@ -193,29 +194,29 @@ $(function ($) {
|
||||
selectedToot = 0
|
||||
selectedColumn = 0
|
||||
tootSelector(0, 0)
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
}
|
||||
//選択時
|
||||
if (e.keyCode == 70) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
||||
var id = $('.selectedToot').attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||
fav(id, acct_id, false)
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
if (e.keyCode == 66) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
||||
var id = $('.selectedToot').attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||
rt(id, acct_id, false)
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
if (e.keyCode == 82) {
|
||||
var id = $(".selectedToot").attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr("data-acct")
|
||||
var ats_cm = $('.selectedToot .rep-btn').attr("data-men")
|
||||
var mode = $('.selectedToot .rep-btn').attr("data-visen")
|
||||
var id = $('.selectedToot').attr('unique-id')
|
||||
var acct_id = $('#timeline_' + selectedColumn).attr('data-acct')
|
||||
var ats_cm = $('.selectedToot .rep-btn').attr('data-men')
|
||||
var mode = $('.selectedToot .rep-btn').attr('data-visen')
|
||||
re(id, ats_cm, acct_id, mode)
|
||||
return false;
|
||||
return false
|
||||
}
|
||||
}
|
||||
//textareaフォーカス時
|
||||
@@ -224,23 +225,27 @@ $(function ($) {
|
||||
//C+S+(No):ワンクリ
|
||||
if ((event.metaKey || event.ctrlKey) && event.shiftKey) {
|
||||
if (e.keyCode >= 49 && e.keyCode <= 51) {
|
||||
var no = e.keyCode - 48;
|
||||
if (localStorage.getItem("oks-" + no)) { $("#textarea").val($("#textarea").val() + localStorage.getItem("oks-" + no)) }
|
||||
return false;
|
||||
var no = e.keyCode - 48
|
||||
if (localStorage.getItem('oks-' + no)) {
|
||||
$('#textarea').val($('#textarea').val() + localStorage.getItem('oks-' + no))
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
//クリアボタン
|
||||
$("#clear").click(function () {
|
||||
clear();
|
||||
});
|
||||
});
|
||||
$('#clear').click(function() {
|
||||
clear()
|
||||
})
|
||||
})
|
||||
//選択する
|
||||
function tootSelector(column, toot) {
|
||||
$('.cvo').removeClass("selectedToot")
|
||||
$('#timeline_' + column + ' .cvo').eq(toot).addClass("selectedToot")
|
||||
$('.cvo').removeClass('selectedToot')
|
||||
$('#timeline_' + column + ' .cvo')
|
||||
.eq(toot)
|
||||
.addClass('selectedToot')
|
||||
var scr = $('.tl-box[tlid=' + column + ']').scrollTop()
|
||||
var elem = $('.selectedToot').offset().top
|
||||
var top = elem - $('.tl-box').height() + scr
|
||||
@@ -255,4 +260,4 @@ function tootSelector(column, toot) {
|
||||
$('.tl-box[tlid=' + column + ']').animate({ scrollTop: to })
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//モーダル・ドロップダウンの各種設定
|
||||
$(document).ready(function () {
|
||||
// the "href" attribute of the modal trigger must specify the modal ID that wants to be triggered
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
var sha256 = function sha256(ascii) {
|
||||
function rightRotate(value, amount) {
|
||||
return (value >>> amount) | (value << (32 - amount));
|
||||
|
@@ -1,346 +1,373 @@
|
||||
'use strict'
|
||||
//バージョンチェッカー
|
||||
function verck(ver, jp) {
|
||||
console.log("%c Welcome😊", "color: red;font-size:200%;");
|
||||
var date = new Date();
|
||||
var show = false;
|
||||
if (localStorage.getItem("ver") != ver && localStorage.getItem("winstore")) {
|
||||
console.log('%c Welcome😊', 'color: red;font-size:200%;')
|
||||
var date = new Date()
|
||||
var show = false
|
||||
if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) {
|
||||
//ちょっと削除とリンク解析の都合上アレ(s)
|
||||
//対象外のアプデ:storageが20の最初まで"Usamin (18.6.5)"
|
||||
if (!localStorage.getItem("usamin_18_6_5_flag")) {
|
||||
localStorage.setItem("usamin_18_6_5_flag", true);
|
||||
var multi = localStorage.getItem("column");
|
||||
var obj = JSON.parse(multi);
|
||||
if (!localStorage.getItem('usamin_18_6_5_flag')) {
|
||||
localStorage.setItem('usamin_18_6_5_flag', true)
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
for (var i = 0; i < obj.length; i++) {
|
||||
localStorage.removeItem("card_" + i);
|
||||
localStorage.removeItem('card_' + i)
|
||||
}
|
||||
}
|
||||
//ちょっと削除とリンク解析の都合上アレ(e)
|
||||
show = true;
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
show = true
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
if (localStorage.getItem("winstore")) {
|
||||
$("#releasenote").modal("open");
|
||||
if (localStorage.getItem('winstore')) {
|
||||
$('#releasenote').modal('open')
|
||||
}
|
||||
verp = ver.replace("(", "");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace("[", "-");
|
||||
verp = verp.replace("]", "");
|
||||
verp = verp.replace(")", "");
|
||||
verp = verp.replace(" ", "_");
|
||||
console.log("%c " + verp, "color: red;font-size:200%;");
|
||||
if (lang.language == "ja") {
|
||||
$("#release-" + verp).show();
|
||||
var verp = ver.replace('(', '')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('[', '-')
|
||||
verp = verp.replace(']', '')
|
||||
verp = verp.replace(')', '')
|
||||
verp = verp.replace(' ', '_')
|
||||
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||
if (lang.language == 'ja') {
|
||||
$('#release-' + verp).show()
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
$('#release-en').show()
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
localStorage.setItem("ver", ver);
|
||||
localStorage.setItem('ver', ver)
|
||||
if (!show) {
|
||||
console.log(show);
|
||||
if (date.getMonth() + 1 >= localStorage.getItem("showSupportMe") || !localStorage.getItem("showSupportMe")) {
|
||||
console.log(show)
|
||||
if (
|
||||
date.getMonth() + 1 >= localStorage.getItem('showSupportMe') ||
|
||||
!localStorage.getItem('showSupportMe')
|
||||
) {
|
||||
if (date.getMonth() == 11) {
|
||||
var nextmonth = 1;
|
||||
var nextmonth = 1
|
||||
} else {
|
||||
var nextmonth = date.getMonth() + 2;
|
||||
var nextmonth = date.getMonth() + 2
|
||||
}
|
||||
if (lang.language != "ja") {
|
||||
$("#support-btm-ja").addClass("hide");
|
||||
$("#support-btm-en").removeClass("hide");
|
||||
if (lang.language != 'ja') {
|
||||
$('#support-btm-ja').addClass('hide')
|
||||
$('#support-btm-en').removeClass('hide')
|
||||
}
|
||||
localStorage.setItem("showSupportMe", nextmonth);
|
||||
$("#support-btm").removeClass("hide");
|
||||
$("#support-btm").animate(
|
||||
localStorage.setItem('showSupportMe', nextmonth)
|
||||
$('#support-btm').removeClass('hide')
|
||||
$('#support-btm').animate(
|
||||
{
|
||||
bottom: "0"
|
||||
bottom: '0'
|
||||
},
|
||||
{
|
||||
duration: 300
|
||||
}
|
||||
);
|
||||
)
|
||||
}
|
||||
}
|
||||
var platform = localStorage.getItem("platform");
|
||||
console.log("Your platform:" + platform);
|
||||
if (!localStorage.getItem("winstore")) {
|
||||
$("#start").css("display", "flex");
|
||||
var platform = localStorage.getItem('platform')
|
||||
console.log('Your platform:' + platform)
|
||||
if (!localStorage.getItem('winstore')) {
|
||||
$('#start').css('display', 'flex')
|
||||
}
|
||||
if (localStorage.getItem("winstore") == "brewcask" || localStorage.getItem("winstore") == "snapcraft" || localStorage.getItem("winstore") == "winstore") {
|
||||
var winstore = true;
|
||||
if (
|
||||
localStorage.getItem('winstore') == 'brewcask' ||
|
||||
localStorage.getItem('winstore') == 'snapcraft' ||
|
||||
localStorage.getItem('winstore') == 'winstore'
|
||||
) {
|
||||
var winstore = true
|
||||
} else {
|
||||
var winstore = false;
|
||||
var winstore = false
|
||||
}
|
||||
var l = 5;
|
||||
var l = 5
|
||||
// 生成する文字列に含める文字セット
|
||||
var c = "abcdefghijklmnopqrstuvwxyz0123456789";
|
||||
var cl = c.length;
|
||||
var r = "";
|
||||
var c = 'abcdefghijklmnopqrstuvwxyz0123456789'
|
||||
var cl = c.length
|
||||
var r = ''
|
||||
for (var i = 0; i < l; i++) {
|
||||
r += c[Math.floor(Math.random() * cl)];
|
||||
r += c[Math.floor(Math.random() * cl)]
|
||||
}
|
||||
var start = "https://thedesk.top/ver.json";
|
||||
var start = 'https://thedesk.top/ver.json'
|
||||
fetch(start, {
|
||||
method: "GET"
|
||||
method: 'GET'
|
||||
})
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);setLog(start, "JSON", error);
|
||||
setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(mess) {
|
||||
console.table(mess);
|
||||
console.table(mess)
|
||||
if (mess) {
|
||||
//askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限
|
||||
if (jp && mess.jp_ua && !localStorage.getItem("askjp_jp_ua")) {
|
||||
localStorage.setItem("askjp_jp_ua", true);
|
||||
$("#askjp_jp_ua").removeClass("hide");
|
||||
if (jp && mess.jp_ua && !localStorage.getItem('askjp_jp_ua')) {
|
||||
localStorage.setItem('askjp_jp_ua', true)
|
||||
$('#askjp_jp_ua').removeClass('hide')
|
||||
}
|
||||
var platform = localStorage.getItem("platform");
|
||||
if (platform == "darwin") {
|
||||
var newest = mess.desk_mac;
|
||||
var platform = localStorage.getItem('platform')
|
||||
if (platform == 'darwin') {
|
||||
var newest = mess.desk_mac
|
||||
} else {
|
||||
var newest = mess.desk;
|
||||
var newest = mess.desk
|
||||
}
|
||||
if (newest == ver) {
|
||||
todo(lang.lang_version_usever.replace("{{ver}}", mess.desk));
|
||||
todo(lang.lang_version_usever.replace('{{ver}}', mess.desk))
|
||||
//betaかWinstoreならアプデチェックしない
|
||||
} else if (ver.indexOf("beta") != -1 || winstore) {
|
||||
} else if (ver.indexOf('beta') != -1 || winstore) {
|
||||
} else {
|
||||
localStorage.removeItem("instance");
|
||||
if (localStorage.getItem("new-ver-skip")) {
|
||||
if (localStorage.getItem("next-ver") != newest) {
|
||||
postMessage(["sendSinmpleIpc", "update"], "*");
|
||||
localStorage.removeItem('instance')
|
||||
if (localStorage.getItem('new-ver-skip')) {
|
||||
if (localStorage.getItem('next-ver') != newest) {
|
||||
postMessage(['sendSinmpleIpc', 'update'], '*')
|
||||
} else {
|
||||
console.warn(lang.lang_version_skipver);
|
||||
todo(lang.lang_version_skipver);
|
||||
console.warn(lang.lang_version_skipver)
|
||||
todo(lang.lang_version_skipver)
|
||||
}
|
||||
} else {
|
||||
postMessage(["sendSinmpleIpc", "update"], "*");
|
||||
postMessage(['sendSinmpleIpc', 'update'], '*')
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (!localStorage.getItem("last-notice-id")) {
|
||||
localStorage.setItem("last-notice-id", 0);
|
||||
})
|
||||
if (!localStorage.getItem('last-notice-id')) {
|
||||
localStorage.setItem('last-notice-id', 0)
|
||||
}
|
||||
var start = "https://thedesk.top/notice?since_id=" + localStorage.getItem("last-notice-id");
|
||||
var start = 'https://thedesk.top/notice?since_id=' + localStorage.getItem('last-notice-id')
|
||||
fetch(start, {
|
||||
method: "GET"
|
||||
method: 'GET'
|
||||
})
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text);
|
||||
});
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json();
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error);setLog(start, "JSON", error);
|
||||
console.error(error);
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(mess) {
|
||||
if (mess.length < 1) {
|
||||
return false;
|
||||
return false
|
||||
} else {
|
||||
var last = localStorage.getItem("last-notice-id");
|
||||
localStorage.setItem("last-notice-id", mess[0].ID);
|
||||
var last = localStorage.getItem('last-notice-id')
|
||||
localStorage.setItem('last-notice-id', mess[0].ID)
|
||||
for (i = 0; i < mess.length; i++) {
|
||||
var obj = mess[i];
|
||||
var obj = mess[i]
|
||||
if (obj.ID * 1 <= last) {
|
||||
break;
|
||||
break
|
||||
} else {
|
||||
if (obj.type == "textv2") {
|
||||
if (obj.type == 'textv2') {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + "','main')\">Show</button>";
|
||||
var show = true
|
||||
if (obj.toot != '') {
|
||||
var toot =
|
||||
'<button class="btn-flat toast-action" onclick="detEx(\'' +
|
||||
obj.toot +
|
||||
"','main')\">Show</button>"
|
||||
} else {
|
||||
var toot = "";
|
||||
var toot = ''
|
||||
}
|
||||
if (obj.ver != "") {
|
||||
if (obj.ver != '') {
|
||||
if (obj.ver == ver) {
|
||||
show = true;
|
||||
show = true
|
||||
} else {
|
||||
show = false;
|
||||
show = false
|
||||
}
|
||||
}
|
||||
if (obj.domain != "") {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (obj.domain != '') {
|
||||
var multi = localStorage.getItem('multi')
|
||||
if (multi) {
|
||||
show = false;
|
||||
var accts = JSON.parse(multi);
|
||||
show = false
|
||||
var accts = JSON.parse(multi)
|
||||
Object.keys(accts).forEach(function(key) {
|
||||
var acct = accts[key];
|
||||
var acct = accts[key]
|
||||
if (acct.domain == obj.domain) {
|
||||
show = true;
|
||||
show = true
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 });
|
||||
M.toast({
|
||||
html:
|
||||
escapeHTML(obj.text) +
|
||||
toot +
|
||||
'<span class="sml grey-text">(スライドして消去)</span>',
|
||||
displayLength: 86400
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
var infostreaming = false;
|
||||
var infostreaming = false
|
||||
function infowebsocket() {
|
||||
infows = new WebSocket("wss://thedesk.top/ws/");
|
||||
var infows = new WebSocket('wss://thedesk.top/ws/')
|
||||
infows.onopen = function(mess) {
|
||||
console.log([tlid, ":Connect Streaming Info:", mess]);
|
||||
infostreaming = true;
|
||||
};
|
||||
console.log([tlid, ':Connect Streaming Info:', mess])
|
||||
infostreaming = true
|
||||
}
|
||||
infows.onmessage = function(mess) {
|
||||
console.log([tlid, ":Receive Streaming:", JSON.parse(mess.data)]);
|
||||
var obj = JSON.parse(mess.data);
|
||||
if (obj.type != "counter") {
|
||||
if (obj.type == "textv2") {
|
||||
console.log([tlid, ':Receive Streaming:', JSON.parse(mess.data)])
|
||||
var obj = JSON.parse(mess.data)
|
||||
if (obj.type != 'counter') {
|
||||
if (obj.type == 'textv2') {
|
||||
if (~obj.languages.indexOf(lang.language)) {
|
||||
localStorage.setItem("last-notice-id", obj.id);
|
||||
var show = true;
|
||||
if (obj.toot != "") {
|
||||
var toot = '<button class="btn-flat toast-action" onclick="detEx(\'' + obj.toot + "','main')\">Show</button>";
|
||||
localStorage.setItem('last-notice-id', obj.id)
|
||||
var show = true
|
||||
if (obj.toot != '') {
|
||||
var toot =
|
||||
'<button class="btn-flat toast-action" onclick="detEx(\'' +
|
||||
obj.toot +
|
||||
"','main')\">Show</button>"
|
||||
} else {
|
||||
var toot = "";
|
||||
var toot = ''
|
||||
}
|
||||
if (obj.ver != "") {
|
||||
if (obj.ver != '') {
|
||||
if (obj.ver == ver) {
|
||||
show = true;
|
||||
show = true
|
||||
} else {
|
||||
show = false;
|
||||
show = false
|
||||
}
|
||||
}
|
||||
if (obj.domain != "") {
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (obj.domain != '') {
|
||||
var multi = localStorage.getItem('multi')
|
||||
if (multi) {
|
||||
show = false;
|
||||
var accts = JSON.parse(multi);
|
||||
show = false
|
||||
var accts = JSON.parse(multi)
|
||||
Object.keys(accts).forEach(function(key) {
|
||||
var acct = accts[key];
|
||||
var acct = accts[key]
|
||||
if (acct.domain == obj.domain) {
|
||||
show = true;
|
||||
show = true
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
}
|
||||
if (show) {
|
||||
console.log(obj.text);
|
||||
console.log(escapeHTML(obj.text));
|
||||
M.toast({ html: escapeHTML(obj.text) + toot + '<span class="sml grey-text">(スライドして消去)</span>', displayLength: 86400 });
|
||||
console.log(obj.text)
|
||||
console.log(escapeHTML(obj.text))
|
||||
M.toast({
|
||||
html:
|
||||
escapeHTML(obj.text) +
|
||||
toot +
|
||||
'<span class="sml grey-text">(スライドして消去)</span>',
|
||||
displayLength: 86400
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$("#persons").text(obj.text);
|
||||
$('#persons').text(obj.text)
|
||||
}
|
||||
};
|
||||
}
|
||||
infows.onerror = function(error) {
|
||||
infostreaming = false;
|
||||
console.error("Error closing:info");
|
||||
console.error(error);
|
||||
return false;
|
||||
};
|
||||
infostreaming = false
|
||||
console.error('Error closing:info')
|
||||
console.error(error)
|
||||
return false
|
||||
}
|
||||
infows.onclose = function() {
|
||||
infostreaming = false;
|
||||
console.error("Closing:info");
|
||||
};
|
||||
infostreaming = false
|
||||
console.error('Closing:info')
|
||||
}
|
||||
}
|
||||
setInterval(function() {
|
||||
if (!infostreaming) {
|
||||
console.log("try to connect to base-streaming");
|
||||
infowebsocket();
|
||||
console.log('try to connect to base-streaming')
|
||||
infowebsocket()
|
||||
}
|
||||
}, 10000);
|
||||
}, 10000)
|
||||
function openRN() {
|
||||
$("#releasenote").modal("open");
|
||||
if (lang.language == "ja") {
|
||||
verp = ver.replace("(", "");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace("[", "-");
|
||||
verp = verp.replace("]", "");
|
||||
verp = verp.replace(")", "");
|
||||
verp = verp.replace(" ", "_");
|
||||
$("#release-" + verp).show();
|
||||
$('#releasenote').modal('open')
|
||||
if (lang.language == 'ja') {
|
||||
verp = ver.replace('(', '')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('[', '-')
|
||||
verp = verp.replace(']', '')
|
||||
verp = verp.replace(')', '')
|
||||
verp = verp.replace(' ', '_')
|
||||
$('#release-' + verp).show()
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
$('#release-en').show()
|
||||
}
|
||||
}
|
||||
function closeSupport() {
|
||||
$("#support-btm").animate(
|
||||
$('#support-btm').animate(
|
||||
{
|
||||
bottom: "-300px"
|
||||
bottom: '-300px'
|
||||
},
|
||||
{
|
||||
duration: 300,
|
||||
complete: function() {
|
||||
$("#support-btm").addClass("hide");
|
||||
$('#support-btm').addClass('hide')
|
||||
}
|
||||
}
|
||||
);
|
||||
)
|
||||
}
|
||||
function storeDialog(platform, ver) {
|
||||
if (platform == "win32") {
|
||||
var mes = lang.lang_version_platform;
|
||||
} else if (platform == "linux") {
|
||||
var mes = lang.lang_version_platform_linux;
|
||||
} else if (platform == "darwin") {
|
||||
var mes = lang.lang_version_platform_mac;
|
||||
if (platform == 'win32') {
|
||||
var mes = lang.lang_version_platform
|
||||
} else if (platform == 'linux') {
|
||||
var mes = lang.lang_version_platform_linux
|
||||
} else if (platform == 'darwin') {
|
||||
var mes = lang.lang_version_platform_mac
|
||||
}
|
||||
Swal.fire({
|
||||
title: "Select your platform",
|
||||
title: 'Select your platform',
|
||||
text: mes,
|
||||
type: "info",
|
||||
type: 'info',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#3085d6",
|
||||
cancelButtonColor: "#3085d6",
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#3085d6',
|
||||
confirmButtonText: lang.lang_no,
|
||||
cancelButtonText: lang.lang_yesno
|
||||
}).then(result => {
|
||||
//逆にしてる
|
||||
if (!result.value) {
|
||||
localStorage.setItem("winstore", "winstore");
|
||||
localStorage.setItem('winstore', 'winstore')
|
||||
} else {
|
||||
localStorage.setItem("winstore", "localinstall");
|
||||
localStorage.setItem('winstore', 'localinstall')
|
||||
}
|
||||
localStorage.setItem("ver", ver);
|
||||
show = true;
|
||||
console.log("%c Thank you for your update🎉", "color: red;font-size:200%;");
|
||||
localStorage.setItem('ver', ver)
|
||||
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
|
||||
$(document).ready(function() {
|
||||
$("#releasenote").modal("open");
|
||||
verp = ver.replace("(", "");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace(".", "-");
|
||||
verp = verp.replace("[", "-");
|
||||
verp = verp.replace("]", "");
|
||||
verp = verp.replace(")", "");
|
||||
verp = verp.replace(" ", "_");
|
||||
console.log("%c " + verp, "color: red;font-size:200%;");
|
||||
if (lang.language == "ja") {
|
||||
$("#release-" + verp).show();
|
||||
$('#releasenote').modal('open')
|
||||
var verp = ver.replace('(', '')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('.', '-')
|
||||
verp = verp.replace('[', '-')
|
||||
verp = verp.replace(']', '')
|
||||
verp = verp.replace(')', '')
|
||||
verp = verp.replace(' ', '_')
|
||||
console.log('%c ' + verp, 'color: red;font-size:200%;')
|
||||
if (lang.language == 'ja') {
|
||||
$('#release-' + verp).show()
|
||||
} else {
|
||||
$("#release-en").show();
|
||||
$('#release-en').show()
|
||||
}
|
||||
});
|
||||
});
|
||||
})
|
||||
})
|
||||
}
|
||||
function closeStart() {
|
||||
$("#start").css("display", "none");
|
||||
var platform = localStorage.getItem("platform");
|
||||
var ver = localStorage.getItem("ver");
|
||||
storeDialog(platform, ver);
|
||||
$('#start').css('display', 'none')
|
||||
var platform = localStorage.getItem('platform')
|
||||
var ver = localStorage.getItem('ver')
|
||||
storeDialog(platform, ver)
|
||||
}
|
||||
|
@@ -1,84 +1,97 @@
|
||||
var defaultemojiList = ["activity", "flag", "food", "nature", "object", "people", "place", "symbol"];
|
||||
'use strict'
|
||||
var defaultemojiList = ['activity', 'flag', 'food', 'nature', 'object', 'people', 'place', 'symbol']
|
||||
var defaultemoji = {
|
||||
activity: activity,
|
||||
flag: flag,
|
||||
food: food,
|
||||
nature: nature,
|
||||
object: object,
|
||||
people: people,
|
||||
place: place,
|
||||
symbol: symbol
|
||||
};
|
||||
if (lang == "ja") {
|
||||
var defaultemojiname = {
|
||||
activity: "活動",
|
||||
flag: "国旗",
|
||||
food: "食べ物",
|
||||
nature: "自然",
|
||||
object: "もの",
|
||||
people: "ひと",
|
||||
place: "場所",
|
||||
symbol: "記号"
|
||||
};
|
||||
activity: activity,
|
||||
flag: flag,
|
||||
food: food,
|
||||
nature: nature,
|
||||
object: object,
|
||||
people: people,
|
||||
place: place,
|
||||
symbol: symbol
|
||||
}
|
||||
if (lang == 'ja') {
|
||||
var defaultemojiname = {
|
||||
activity: '活動',
|
||||
flag: '国旗',
|
||||
food: '食べ物',
|
||||
nature: '自然',
|
||||
object: 'もの',
|
||||
people: 'ひと',
|
||||
place: '場所',
|
||||
symbol: '記号'
|
||||
}
|
||||
} else {
|
||||
var defaultemojiname = {
|
||||
activity: "Activities",
|
||||
flag: "Flags",
|
||||
food: "Foods",
|
||||
nature: "Nature",
|
||||
object: "Tools",
|
||||
people: "People",
|
||||
place: "Places",
|
||||
symbol: "Symbols"
|
||||
};
|
||||
var defaultemojiname = {
|
||||
activity: 'Activities',
|
||||
flag: 'Flags',
|
||||
food: 'Foods',
|
||||
nature: 'Nature',
|
||||
object: 'Tools',
|
||||
people: 'People',
|
||||
place: 'Places',
|
||||
symbol: 'Symbols'
|
||||
}
|
||||
}
|
||||
|
||||
function defaultEmoji(target) {
|
||||
var json = defaultemoji[target];
|
||||
var emojis = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var emoji = json[key];
|
||||
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(lang.lang_defaultemojis_text.replace("{{cat}}", defaultemojiname[target]));
|
||||
$(".emoji-control").addClass("hide");
|
||||
var json = defaultemoji[target]
|
||||
var emojis = ''
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var emoji = json[key]
|
||||
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(lang.lang_defaultemojis_text.replace('{{cat}}', defaultemojiname[target]))
|
||||
$('.emoji-control').addClass('hide')
|
||||
}
|
||||
function customEmoji() {
|
||||
$("#emoji-suggest").val("");
|
||||
$(".emoji-control").removeClass("hide");
|
||||
emojiList('home')
|
||||
$('#emoji-suggest').val('')
|
||||
$('.emoji-control').removeClass('hide')
|
||||
emojiList('home')
|
||||
}
|
||||
function defEmoji(target) {
|
||||
var selin = $("#textarea").prop('selectionStart');
|
||||
if (!selin) {
|
||||
selin = 0;
|
||||
}
|
||||
var emojiraw = newpack.filter(function (item, index) {
|
||||
if (item.short_name == target) return true;
|
||||
});
|
||||
var hex = emojiraw[0].unified.split("-");
|
||||
if (hex.length === 2) {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1]);
|
||||
} else {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0]);
|
||||
}
|
||||
var now = $("#textarea").val();
|
||||
var before = now.substr(0, selin);
|
||||
var after = now.substr(selin, now.length);
|
||||
newt = before + emoji + after;
|
||||
$("#textarea").val(newt);
|
||||
$("#textarea").focus();
|
||||
var selin = $('#textarea').prop('selectionStart')
|
||||
if (!selin) {
|
||||
selin = 0
|
||||
}
|
||||
var emojiraw = newpack.filter(function(item, index) {
|
||||
if (item.short_name == target) return true
|
||||
})
|
||||
var hex = emojiraw[0].unified.split('-')
|
||||
if (hex.length === 2) {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0]) + twemoji.convert.fromCodePoint(hex[1])
|
||||
} else {
|
||||
emoji = twemoji.convert.fromCodePoint(hex[0])
|
||||
}
|
||||
var now = $('#textarea').val()
|
||||
var before = now.substr(0, selin)
|
||||
var after = now.substr(selin, now.length)
|
||||
var newt = before + emoji + after
|
||||
$('#textarea').val(newt)
|
||||
$('#textarea').focus()
|
||||
}
|
||||
function faicon() {
|
||||
var json = faicons;
|
||||
var emojis = "";
|
||||
Object.keys(json).forEach(function (key) {
|
||||
var emoji = json[key];
|
||||
var eje = emoji.replace(/fa-/g, "");
|
||||
emojis = emojis + '<a onclick="emojiInsert(\'[faicon]' + eje + '[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' + emoji + '"></i></a>';
|
||||
});
|
||||
$("#emoji-list").html(emojis);
|
||||
$("#now-emoji").text("faicon");
|
||||
$(".emoji-control").addClass("hide");
|
||||
}
|
||||
var json = faicons
|
||||
var emojis = ''
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var emoji = json[key]
|
||||
var eje = emoji.replace(/fa-/g, '')
|
||||
emojis =
|
||||
emojis +
|
||||
'<a onclick="emojiInsert(\'[faicon]' +
|
||||
eje +
|
||||
'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' +
|
||||
emoji +
|
||||
'"></i></a>'
|
||||
})
|
||||
$('#emoji-list').html(emojis)
|
||||
$('#now-emoji').text('faicon')
|
||||
$('.emoji-control').addClass('hide')
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
var activity=[
|
||||
{shortcode:"soccer",css:"4.16667% 10.4167%"},
|
||||
{shortcode:"basketball",css:"16.6667% 56.25%"},
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//インスタンスリスト
|
||||
var idata = {
|
||||
"kirishima.cloud": "instance",
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*ログイン処理・認証までのJS*/
|
||||
//最初に読むやつ
|
||||
//アスタルテ判定初期化
|
||||
@@ -379,9 +380,7 @@ function ckdb(acct_id) {
|
||||
localStorage.setItem('imas', 'true')
|
||||
$('.imasonly').show()
|
||||
}
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
var bbcode = domain + '_bbcode'
|
||||
var letters = domain + '_letters'
|
||||
var quoteMarker = domain + '_quote'
|
||||
if (localStorage.getItem('instance')) {
|
||||
var json = JSON.parse(localStorage.getItem('instance'))
|
||||
@@ -579,10 +578,10 @@ function multiSelector(parseC) {
|
||||
//バージョンエンコ
|
||||
function enc(ver) {
|
||||
var ver = ver.replace(/\s/g, '')
|
||||
var ver = ver.replace(/\(/g, '-')
|
||||
var ver = ver.replace(/\)/g, '')
|
||||
var ver = ver.replace(/\[/g, '_')
|
||||
var ver = ver.replace(/\]/g, '')
|
||||
ver = ver.replace(/\(/g, '-')
|
||||
ver = ver.replace(/\)/g, '')
|
||||
ver = ver.replace(/\[/g, '_')
|
||||
ver = ver.replace(/\]/g, '')
|
||||
return ver
|
||||
}
|
||||
//インスタンスティッカー
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ログアウトします
|
||||
function logout() {
|
||||
localStorage.removeItem("acct_" + acct_id + "_at");
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//アカウントマネージャ
|
||||
//最初に読むやつ
|
||||
function load() {
|
||||
@@ -61,7 +62,7 @@ function load() {
|
||||
<i class="material-icons">refresh</i>${lang.lang_manager_refresh}
|
||||
</a>
|
||||
<a class="waves-effect disTar pointer red-text" onclick="multiDel('${key}')">
|
||||
<i class="material-icons">delete</i>${lang.lang_manager_delete}"
|
||||
<i class="material-icons">delete</i>${lang.lang_manager_delete}
|
||||
</a><br />${lang.lang_manager_color}
|
||||
<div id="colorsel_${key}" class="colorsel"></div>
|
||||
</div>
|
||||
@@ -316,14 +317,8 @@ function support() {
|
||||
Object.keys(idata).forEach(function(key) {
|
||||
var instance = idata[key]
|
||||
if (instance == 'instance') {
|
||||
templete =
|
||||
'<a onclick="login(\'' +
|
||||
key +
|
||||
'\')" class="collection-item pointer transparent">' +
|
||||
idata[key + '_name'] +
|
||||
'(' +
|
||||
key +
|
||||
')</a>'
|
||||
var templete =
|
||||
`<a onclick="login('${key}')" class="collection-item pointer transparent">${idata[key + '_name']}(${key})</a>`
|
||||
$('#support').append(templete)
|
||||
}
|
||||
})
|
||||
@@ -331,8 +326,6 @@ function support() {
|
||||
|
||||
//URL指定してポップアップ
|
||||
function login(url) {
|
||||
var multi = localStorage.getItem('multi')
|
||||
var obj = JSON.parse(multi)
|
||||
if ($('#misskey:checked').val() == 'on') {
|
||||
$('#misskey').prop('checked', true)
|
||||
misskeyLogin(url)
|
||||
@@ -938,7 +931,6 @@ function multisel() {
|
||||
} else {
|
||||
var obj = JSON.parse(multi)
|
||||
}
|
||||
var templete
|
||||
var last = localStorage.getItem('main')
|
||||
var sel
|
||||
if (obj.length < 1) {
|
||||
@@ -947,21 +939,18 @@ function multisel() {
|
||||
} else {
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var acct = obj[key]
|
||||
var list = key * 1 + 1
|
||||
if (key == last) {
|
||||
sel = 'selected'
|
||||
mainb = '(' + lang.lang_manager_def + ')'
|
||||
var domain = localStorage.getItem('domain_' + key)
|
||||
var mainb = '(' + lang.lang_manager_def + ')'
|
||||
var profimg = localStorage.getItem('prof_' + key)
|
||||
var domain = localStorage.getItem('domain_' + key)
|
||||
if (!profimg) {
|
||||
profimg = '../../img/missing.svg'
|
||||
}
|
||||
} else {
|
||||
sel = ''
|
||||
mainb = ''
|
||||
var mainb = ''
|
||||
}
|
||||
template = `
|
||||
var template = `
|
||||
<option value="${key}" data-icon="${acct.prof}" class="left circle" ${sel}>
|
||||
${acct.user}@${acct.domain}${mainb}
|
||||
</option>
|
||||
@@ -977,7 +966,7 @@ function mainacct() {
|
||||
M.toast({ html: lang.lang_manager_mainAcct, displayLength: 3000 })
|
||||
}
|
||||
function colorpicker(key) {
|
||||
temp = `<div onclick="coloradd('${key}','def','def')" class="pointer exc">${lang.lang_manager_none}</div>
|
||||
var temp = `<div onclick="coloradd('${key}','def','def')" class="pointer exc">${lang.lang_manager_none}</div>
|
||||
<div onclick="coloradd('${key}','f44336','white')" class="red white-text pointer"></div>
|
||||
<div onclick="coloradd('${key}','e91e63','white')" class="pink white-text pointer"></div>
|
||||
<div onclick="coloradd('${key}','9c27b0','white')" class="purple white-text pointer"></div>
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//プラットフォーム別 最後に読むやつ
|
||||
//リンクを外部で開くか内部で出すか
|
||||
$(document).on('click', 'a', e => {
|
||||
@@ -10,7 +11,7 @@ $(document).on('click', 'a', e => {
|
||||
if (url) {
|
||||
urls = url.match(/https?:\/\/(.+)/)
|
||||
//トゥートのURLぽかったら
|
||||
toot = url.match(/https:\/\/([^+_]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/)
|
||||
var toot = url.match(/https:\/\/([^+_]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/)
|
||||
if (!toot) {
|
||||
//Pleroma対策
|
||||
toot = url.match(/https:\/\/([^+_]+)\/users\/([a-zA-Z0-9_]+)\/statuses\/([0-9]+)/)
|
||||
@@ -103,7 +104,7 @@ function playSound() {
|
||||
if (soundFile) {
|
||||
soundFile.stop()
|
||||
}
|
||||
context = new AudioContext()
|
||||
var context = new AudioContext()
|
||||
context.createBufferSource().start(0)
|
||||
context.decodeAudioData(request.response, function(buf) {
|
||||
//console.log("Playing:" , source)
|
||||
@@ -123,11 +124,6 @@ function playSound() {
|
||||
volumeControl.gain.value = vol
|
||||
source.start(0)
|
||||
soundFile = source
|
||||
|
||||
function newFunction() {
|
||||
var source
|
||||
return source
|
||||
}
|
||||
}
|
||||
function nano() {
|
||||
postMessage(['nano', null], '*')
|
||||
|
@@ -1 +1,2 @@
|
||||
'use strict'
|
||||
//jQuery読む
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
document.title = 'TheDesk'
|
||||
$.strip_tags = function(str, allowed) {
|
||||
if (!str) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//TL取得
|
||||
var websocket
|
||||
function tl(data) {
|
||||
|
@@ -1,9 +1,10 @@
|
||||
'use strict'
|
||||
var electron = require('electron')
|
||||
const shell = electron.shell
|
||||
var ipc = electron.ipcRenderer
|
||||
onmessage = function(e) {
|
||||
if (e.data[0] == 'openUrl') {
|
||||
urls = e.data[1].match(/https?:\/\/(.+)/)
|
||||
var urls = e.data[1].match(/https?:\/\/(.+)/)
|
||||
if (urls) {
|
||||
shell.openExternal(e.data[1])
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
||||
;(function(root) {
|
||||
/** Detect free variables */
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//BBCodeとMarkdownの入力・パーサー
|
||||
//アカウント変えた時にBBとかMDとか
|
||||
function mdCheck() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//絵文字ピッカー
|
||||
//最初に読み込む
|
||||
$('#emoji-before').addClass('disabled')
|
||||
@@ -284,32 +285,39 @@ function emojiList(target, reaction) {
|
||||
|
||||
//絵文字など様々なものをテキストボックスに挿入
|
||||
function emojiInsert(code, del) {
|
||||
var now = $('#textarea').val()
|
||||
var selin = $('#textarea').prop('selectionStart')
|
||||
if (localStorage.getItem('emoji-zero-width') == 'yes') {
|
||||
var blank = ''
|
||||
var blankBefore = ''
|
||||
var blankAfter = ''
|
||||
} else {
|
||||
var blank = ' '
|
||||
var blankBefore = ' '
|
||||
var blankAfter = ' '
|
||||
}
|
||||
var before = now.substr(0, selin)
|
||||
if (before.slice(-1) != ' ') {
|
||||
before = before + blank
|
||||
}
|
||||
var after = now.substr(selin, now.length)
|
||||
if (after.slice(-1) != ' ') {
|
||||
after = blank + after
|
||||
}
|
||||
newt = before + code + after
|
||||
if (!del) {
|
||||
$('#textarea').val(newt)
|
||||
//emoji();
|
||||
var textarea = document.querySelector('#textarea')
|
||||
var sentence = textarea.value
|
||||
var len = sentence.length
|
||||
var pos = textarea.selectionStart
|
||||
if (del) {
|
||||
var delLen = del.length
|
||||
} else {
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, '\\$&'), 'g')
|
||||
var now = now.replace(regExp, '')
|
||||
$('#textarea').val(now + blank + code)
|
||||
var delLen = 0
|
||||
}
|
||||
|
||||
$('#textarea').focus()
|
||||
var before = sentence.substr(0, pos - delLen)
|
||||
var last = before.substr(-1, 1)
|
||||
if (last == ' ') blankBefore = ''
|
||||
var after = sentence.substr(pos, len)
|
||||
var start = after.substr(0, 1)
|
||||
if (start == ' ') blankAfter = ''
|
||||
if (len == 0) {
|
||||
var word = code
|
||||
} else if (len == pos) {
|
||||
var word = blankBefore + code
|
||||
} else if (pos == 0) {
|
||||
var word = code + blankAfter
|
||||
} else {
|
||||
var word = blankBefore + code + blankAfter
|
||||
}
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
}
|
||||
//改行挿入
|
||||
function brInsert(code) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ドラッグ・アンド・ドロップからアップロードまで。uiのimg.jsとは異なります。
|
||||
var obj = $('body')
|
||||
var system
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//Renpost
|
||||
function renote(id, acct_id, remote) {
|
||||
if ($('#pub_' + id).hasClass('rted')) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*投稿系*/
|
||||
//投稿
|
||||
function sec() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*保護系*/
|
||||
//画像保護
|
||||
function nsfw() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//お気に入り登録やブースト等、フォローやブロック等
|
||||
//お気に入り登録
|
||||
function fav(id, acct_id, remote) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//入力時にハッシュタグと@をサジェスト
|
||||
var timer = null
|
||||
|
||||
@@ -97,7 +98,9 @@ input.addEventListener(
|
||||
his[4].uses * 1 +
|
||||
his[5].uses * 1 +
|
||||
his[6].uses * 1
|
||||
tagHTML = `<br><a onclick="tagInsert('#${escapeHTML(tag.name)}','#${escapeHTML(tag.name)}')" class="pointer">#${escapeHTML(tag.name)}</a> ${uses}toot(s)`
|
||||
tagHTML = `<br><a onclick="tagInsert('#${escapeHTML(
|
||||
tag.name
|
||||
)}','#${q}')" class="pointer">#${escapeHTML(tag.name)}</a> ${uses}toot(s)`
|
||||
|
||||
var item = {
|
||||
uses: uses,
|
||||
@@ -144,7 +147,9 @@ input.addEventListener(
|
||||
if (acct.acct != q) {
|
||||
//Instance Actorって…
|
||||
if (acct.username.indexOf('.') < 0) {
|
||||
accts = accts + `<a onclick="tagInsert('@${acct.acct}','@${q}')" class="pointer">@${acct.acct}</a><br>`
|
||||
accts =
|
||||
accts +
|
||||
`<a onclick="tagInsert('@${acct.acct}','@${q}')" class="pointer">@${acct.acct}</a><br>`
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -194,23 +199,34 @@ input.addEventListener(
|
||||
false
|
||||
)
|
||||
function tagInsert(code, del) {
|
||||
var now = $('#textarea').val()
|
||||
var selin = $('#textarea').prop('selectionStart')
|
||||
if (!del) {
|
||||
var blankBefore = ' '
|
||||
var blankAfter = ' '
|
||||
var textarea = document.querySelector('#textarea')
|
||||
var sentence = textarea.value
|
||||
var len = sentence.length
|
||||
var pos = textarea.selectionStart
|
||||
if (del) {
|
||||
var delLen = del.length
|
||||
} else {
|
||||
var regExp = new RegExp(del.replace(/[.*+?^=!:${}()|[\]\/\\]/g, '\\$&'), 'g')
|
||||
var now = now.replace(regExp, '')
|
||||
selin = selin - del.length
|
||||
var delLen = 0
|
||||
}
|
||||
if (selin > 0) {
|
||||
var before = now.substr(0, selin)
|
||||
var after = now.substr(selin, now.length)
|
||||
newt = before + ' ' + code + ' ' + after
|
||||
var before = sentence.substr(0, pos - delLen)
|
||||
var last = before.substr(-1, 1)
|
||||
if (last == ' ') blankBefore = ''
|
||||
var after = sentence.substr(pos, len)
|
||||
var start = after.substr(0, 1)
|
||||
if (start == ' ') blankAfter = ''
|
||||
if (len == 0) {
|
||||
var word = code
|
||||
} else if (len == pos) {
|
||||
var word = blankBefore + code
|
||||
} else if (pos == 0) {
|
||||
var word = code + blankAfter
|
||||
} else {
|
||||
newt = code + ' ' + now
|
||||
var word = blankBefore + code + blankAfter
|
||||
}
|
||||
$('#textarea').val(newt)
|
||||
$('#textarea').focus()
|
||||
sentence = before + word + after
|
||||
textarea.value = sentence
|
||||
if ($('#poll').hasClass('hide') && $('#emoji').hasClass('hide')) {
|
||||
$('#right-side').hide()
|
||||
$('#right-side').css('width', '300px')
|
||||
@@ -251,7 +267,9 @@ function cgNPs(q) {
|
||||
var tags = ''
|
||||
Object.keys(json).forEach(function(key4) {
|
||||
var tag = json[key4]
|
||||
tags = tags + `<a onclick="cgNp('${json[key4]}')" class="pointer">${escapeHTML(json[key4])}</a>`
|
||||
tags =
|
||||
tags +
|
||||
`<a onclick="cgNp('${json[key4]}')" class="pointer">${escapeHTML(json[key4])}</a>`
|
||||
})
|
||||
$('#suggest').html('Cinderella NowPlaying:' + tags)
|
||||
} else {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*リプライ*/
|
||||
function re(id, ats_cm, acct_id, mode) {
|
||||
clear()
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//カード処理やメンション、ハッシュタグの別途表示
|
||||
//全てのTL処理で呼び出し
|
||||
function additional(acct_id, tlid) {
|
||||
@@ -9,24 +10,21 @@ function additional(acct_id, tlid) {
|
||||
$('#timeline-container .hashtag, #timeline-container [rel=tag]').each(function(i, elem) {
|
||||
var tags = $(this)
|
||||
.attr('href')
|
||||
.match(/https?:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/)
|
||||
.match(/https?:\/\/([-a-zA-Z0-9@.]+)\/tags?\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/)
|
||||
if (tags) {
|
||||
var tagThis = tags[2]
|
||||
} else {
|
||||
var tagThis = $(this).attr('data-tag')
|
||||
var tagThis = $(this).attr('data-regTag')
|
||||
}
|
||||
|
||||
if (tagThis) {
|
||||
$(this).attr('onclick', "tagShow('" + tagThis + "')")
|
||||
$(this).attr('href', '#')
|
||||
$(this).attr('href', "javascript:tagShow('" + tagThis + "')")
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
//トゥートサムネ
|
||||
$('#timeline_' + tlid + ' .toot a:not(.parsed)').each(function(i, elem) {
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
var card = localStorage.getItem('card_' + tlid)
|
||||
var text = $(this).attr('href')
|
||||
if (text) {
|
||||
if (text.indexOf('twimg.com') === -1) {
|
||||
@@ -40,7 +38,7 @@ function additional(acct_id, tlid) {
|
||||
}
|
||||
|
||||
//トゥートのURLぽかったら
|
||||
toot = text.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/)
|
||||
var toot = text.match(/https:\/\/([a-zA-Z0-9.-]+)\/@([a-zA-Z0-9_]+)\/([0-9]+)/)
|
||||
if (toot) {
|
||||
if (toot[1]) {
|
||||
$(this).attr('data-acct', acct_id)
|
||||
@@ -48,48 +46,6 @@ function additional(acct_id, tlid) {
|
||||
}
|
||||
if (urls) {
|
||||
$(this).remove()
|
||||
} else if (!card) {
|
||||
var id = $(this)
|
||||
.parents('.cvo')
|
||||
.attr('toot-id')
|
||||
if (localStorage.getItem('mode_' + domain) == 'misskey') {
|
||||
var start = 'https://' + domain + '/url?url=' + text
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json'
|
||||
}
|
||||
//body: JSON.stringify({})
|
||||
})
|
||||
.then(function(response) {
|
||||
if (!response.ok) {
|
||||
response.text().then(function(text) {
|
||||
setLog(response.url, response.status, text)
|
||||
})
|
||||
}
|
||||
return response.json()
|
||||
})
|
||||
.catch(function(error) {
|
||||
todo(error)
|
||||
setLog(start, 'JSON', error)
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
if (json.title) {
|
||||
$('[toot-id=' + id + '] .additional').html(
|
||||
'<span class="gray">URL' +
|
||||
lang.lang_cards_check +
|
||||
':<br>Title:' +
|
||||
escapeHTML(json.title) +
|
||||
'<br>' +
|
||||
escapeHTML(json.description) +
|
||||
'</span>'
|
||||
)
|
||||
$('[toot-id=' + id + '] a:not(.parsed)').addClass('parsed')
|
||||
$('[toot-id=' + id + ']').addClass('parsed')
|
||||
}
|
||||
})
|
||||
}
|
||||
} else {
|
||||
$(this).attr('title', text)
|
||||
}
|
||||
@@ -139,8 +95,7 @@ function additional(acct_id, tlid) {
|
||||
var id = $(this)
|
||||
.parents('.cvo')
|
||||
.attr('toot-id')
|
||||
$(this).attr('href', '#')
|
||||
$(this).attr('onclick', "imgv('" + id + "','" + i + "')")
|
||||
$(this).attr('href', `javascript:imgv('${id}','${i}')`)
|
||||
$(this).attr('data-type', 'image')
|
||||
$(this).attr('id', id + '-image-' + i)
|
||||
$(this).attr('data-url', ilink)
|
||||
@@ -218,7 +173,7 @@ function additionalIndv(tlid, acct_id, id) {
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(json) {
|
||||
cards = json.card
|
||||
var cards = json.card
|
||||
var analyze = cardHtml(cards, acct_id, id)
|
||||
$('[toot-id=' + id + '] .additional').html(analyze)
|
||||
if (json.title) {
|
||||
@@ -240,6 +195,7 @@ function cardHtml(json, acct_id, id) {
|
||||
"youtube.com",
|
||||
"youtu.be",
|
||||
"m.youtube.com",
|
||||
"www.youtube.com",
|
||||
"nicovideo.jp",
|
||||
"twitcasting.tv"
|
||||
]
|
||||
@@ -278,10 +234,10 @@ function cardHtml(json, acct_id, id) {
|
||||
if(isHad) {
|
||||
var prved = `<img class="emoji" draggable="false" alt="✅"
|
||||
src="https://twemoji.maxcdn.com/v/12.1.3/72x72/2705.png">`
|
||||
var title = lang.lang_cards_transted
|
||||
var title = lang.lang_cards_trusted
|
||||
}else{
|
||||
var prved = '<img class="emoji" draggable="false" alt="⚠️" src="https://twemoji.maxcdn.com/v/12.1.4/72x72/26a0.png">'
|
||||
var title = lang.lang_cards_untransted
|
||||
var title = lang.lang_cards_untrusted
|
||||
}
|
||||
analyze =`<a onclick="cardHtmlShow('${acct_id}','${id}')" class="add-show pointer" title="${title}">
|
||||
${lang.lang_parse_html}(${domain})${prved}
|
||||
@@ -336,16 +292,20 @@ function cardHtmlShow(acct_id, id) {
|
||||
if (json.provider_name == 'Twitter') {
|
||||
var url = json.author_url
|
||||
var status = json.url.match(/^https:\/\/twitter.com\/[_a-zA-Z0-9-]+\/status\/([0-9]+)/);
|
||||
var statusId = false
|
||||
if(status){
|
||||
if(status.length > 0){
|
||||
status = status[1]
|
||||
var statusId = status[1]
|
||||
}
|
||||
}
|
||||
url = url + '/status/' + status
|
||||
analyze = `
|
||||
<blockquote class="twitter-tweet" data-dnt="true"><strong>${json.author_name}</strong><br>${json.description}<a href="${url}">${json.url}</a></blockquote>
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||
`
|
||||
console.log(statusId)
|
||||
if(statusId){
|
||||
url = json.url
|
||||
analyze = `
|
||||
<blockquote class="twitter-tweet" data-dnt="true"><strong>${json.author_name}</strong><br>${json.description}<a href="${url}">${json.url}</a></blockquote>
|
||||
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
|
||||
`
|
||||
}
|
||||
}
|
||||
$('[toot-id=' + id + '] .additional').html(analyze)
|
||||
})
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//トゥートの詳細
|
||||
function details(id, acct_id, tlid, mode) {
|
||||
if (mode == 'dm') {
|
||||
@@ -577,8 +578,8 @@ function staCopy(id) {
|
||||
}
|
||||
}
|
||||
//翻訳
|
||||
function trans(tar, to) {
|
||||
var html = $('#toot-this .toot').html()
|
||||
function trans(tar, to, elem) {
|
||||
var html = elem.parents('.cvo').find('.toot').html()
|
||||
if (html.match(/^<p>(.+)<\/p>$/)) {
|
||||
html = html.match(/^<p>(.+)<\/p>$/)[1]
|
||||
}
|
||||
@@ -615,7 +616,7 @@ function trans(tar, to) {
|
||||
console.error(error)
|
||||
})
|
||||
.then(function(text) {
|
||||
$('#toot-this .additional').html('<span class="gray translate">' + text.text + '</span>')
|
||||
elem.parents('.cvo').find('.toot').append('<span class="gray translate">' + text.text + '</span>')
|
||||
})
|
||||
}
|
||||
//ブラウザで開く
|
||||
@@ -630,7 +631,7 @@ function detEx(url, acct_id) {
|
||||
}
|
||||
var domain = localStorage.getItem('domain_' + acct_id)
|
||||
var at = localStorage.getItem('acct_' + acct_id + '_at')
|
||||
var start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + url
|
||||
var start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + encodeURIComponent(url)
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//日付パーサー
|
||||
function date(str, datetype) {
|
||||
if (datetype == "relative") {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ディレクトリ
|
||||
//ディレクトリトグル
|
||||
function dirMenu() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*メディアフィルター機能*/
|
||||
//各TL上方のMedia[On/Off]
|
||||
function mediaToggle(tlid) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
function listMenu() {
|
||||
$('#left-menu div').removeClass('active')
|
||||
$('#listMenu').addClass('active')
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
function escapeHTMLtemp(str) {
|
||||
if (!str) {
|
||||
return "";
|
||||
@@ -520,7 +521,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
if (tagck) {
|
||||
Object.keys(toot.tags).forEach(function (key4) {
|
||||
var tag = toot.tags[key4];
|
||||
var tags = '<a onclick="tagShow(\'' + tag + '\')" class="pointer parsed">#' + tag + '</a><span class="hide" data-tag="' + tag + '">#' + tag + ':<a onclick="tl(\'tag\',\'' + tag + '\',' + acct_id +
|
||||
var tags = '<a onclick="tagShow(\'' + tag + '\')" class="pointer parsed">#' + tag + '</a><span class="hide" data-tag="' + tag + '" data-regTag="'+tag.toLowerCase()+'">#' + tag + ':<a onclick="tl(\'tag\',\'' + tag + '\',' + acct_id +
|
||||
',\'add\')" class="pointer parsed" title="' + lang.lang_parse_tagTL.replace("{{tag}}", '#' + tag) + '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer parsed" title="' + lang.lang_parse_tagtoot.replace("{{tag}}", '#' + tag) + '">Toot</a> ' +
|
||||
'<a onclick="tagPin(\'' + tag + '\')" class="pointer parsed" title="' + lang.lang_parse_tagpin.replace("{{tag}}", '#' + tag) + '">Pin</a></span> ';
|
||||
content = content.replace("#" + tag, tags);
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//Integrated TL
|
||||
async function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
localStorage.setItem('now', type)
|
||||
@@ -87,8 +88,8 @@ function mixre(acct_id, tlid, TLtype, mute, voice, mode) {
|
||||
wsLocal[wslid].onerror = function(error) {
|
||||
console.error('WebSocketLocal Error')
|
||||
console.error(error)
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Error ' + error)
|
||||
} else {
|
||||
var errorct = localStorage.getItem('wserror_' + tlid) * 1 + 1
|
||||
@@ -100,8 +101,8 @@ function mixre(acct_id, tlid, TLtype, mute, voice, mode) {
|
||||
}
|
||||
wsLocal[wslid].onclose = function() {
|
||||
console.warn('WebSocketLocal Closing:' + tlid)
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Closed')
|
||||
} else {
|
||||
var errorct = localStorage.getItem('wserror_' + tlid) * 1 + 1
|
||||
@@ -113,8 +114,8 @@ function mixre(acct_id, tlid, TLtype, mute, voice, mode) {
|
||||
}
|
||||
wsHome[wshid].onerror = function(error) {
|
||||
console.error(['WebSocketHome Error', error])
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Error ' + error)
|
||||
} else {
|
||||
var errorct = localStorage.getItem('wserror_' + tlid) * 1 + 1
|
||||
@@ -126,8 +127,8 @@ function mixre(acct_id, tlid, TLtype, mute, voice, mode) {
|
||||
}
|
||||
wsHome[wshid].onclose = function() {
|
||||
console.warn('WebSocketHome Closing:' + tlid)
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
if (mode == 'error') {
|
||||
$('#notice_icon_' + tlid).addClass('red-text')
|
||||
todo('WebSocket Closed')
|
||||
} else {
|
||||
var errorct = localStorage.getItem('wserror_' + tlid) * 1 + 1
|
||||
@@ -183,7 +184,7 @@ async function mixmore(tlid, type) {
|
||||
.attr('unique-id')
|
||||
let startLocal = 'https://' + domain + '/api/v1/timelines/public?local=true&max_id=' + sid
|
||||
let local = await getTL(startLocal, acct_id)
|
||||
let startHome = 'https://' + domain + '/api/v1/timelines/home&max_id=' + sid
|
||||
let startHome = 'https://' + domain + '/api/v1/timelines/home?max_id=' + sid
|
||||
let home = await getTL(startHome, acct_id)
|
||||
let concated = _.concat(local, home)
|
||||
let uniqued = _.uniqBy(concated, 'id')
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//通知
|
||||
//取得+Streaming接続
|
||||
function notf(acct_id, tlid, sys) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//Integrated TL
|
||||
function mixtl(acct_id, tlid, type, delc, voice) {
|
||||
localStorage.removeItem('morelock')
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//オブジェクトパーサー(トゥート)
|
||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var splitter = new GraphemeSplitter()
|
||||
@@ -539,11 +540,11 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
.match(
|
||||
/https?:\/\/([^+_]+)\/?(?!.*((media|tags)|mentions)).*([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)?/
|
||||
)
|
||||
urlsck = content.match(/(https?):\/\/([^<>]*?)\/([^"]*)/g)
|
||||
var urlsck = content.match(/(https?):\/\/([^<>]*?)\/([^"]*)/g)
|
||||
if (urlsck) {
|
||||
for (var urlct = 0; urlct < urlsck.length; urlct++) {
|
||||
var urlindv = urlsck[urlct]
|
||||
urlCont = urlindv.match(/(https?):\/\/([^a-zA-Z0-9.-]*?)\.(.+?)\/([^"]*)/)
|
||||
var urlCont = urlindv.match(/(https?):\/\/([^a-zA-Z0-9.-]*?)\.(.+?)\/([^"]*)/)
|
||||
if (urlCont) {
|
||||
urlindv = urlindv.replace(/[.*+?^=!:${}()|[\]\/\\]/g, '\\$&')
|
||||
var encoded = encodeURI(urlCont[4])
|
||||
@@ -689,7 +690,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var featured = ` <a onclick="tagFeature('${tag.name}','${acct_id}')" class="pointer" title="add it to Featured tags">Feature</a> `
|
||||
tags =
|
||||
tags +
|
||||
`<span class="hide" data-tag="${tag.name}">#${tag.name}:
|
||||
`<span class="hide" data-tag="${tag.name}" data-regTag="${tag.name.toLowerCase()}">#${tag.name}:
|
||||
<a onclick="tl('tag','${tag.name}','${acct_id}','add')" class="pointer"
|
||||
title="${lang.lang_parse_tagTL.replace(
|
||||
'{{tag}}',
|
||||
@@ -700,7 +701,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'{{tag}}',
|
||||
'#' + tag.name
|
||||
)}
|
||||
">Pin</a>featured</span> `
|
||||
">Pin</a>${featured}</span> `
|
||||
})
|
||||
tags = '<div style="float:right">' + tags + '</div>'
|
||||
}
|
||||
@@ -874,7 +875,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
//日本語じゃない
|
||||
if (toot.language != lang.language && toot.language) {
|
||||
var trans = `<div class="">
|
||||
<a onclick="trans('${toot.language}','${lang.language}')"
|
||||
<a onclick="trans('${toot.language}','${lang.language}', $(this))"
|
||||
class="waves-effect waves-dark btn-flat actct" style="padding:0">
|
||||
<i class="material-icons">g_translate</i>${lang.lang_parse_trans}
|
||||
</a>
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//アンケートのトグル
|
||||
function pollToggle() {
|
||||
if ($('#poll').hasClass('hide')) {
|
||||
|
@@ -1,8 +1,9 @@
|
||||
$voise = null
|
||||
isBouyomi = localStorage.getItem('voice_bouyomi')
|
||||
$voiseName = lang.lang_speech
|
||||
$voices = speechSynthesis.getVoices()
|
||||
$synthes = new SpeechSynthesisUtterance()
|
||||
'use strict'
|
||||
var $voise = null
|
||||
var isBouyomi = localStorage.getItem('voice_bouyomi')
|
||||
var $voiseName = lang.lang_speech
|
||||
var $voices = speechSynthesis.getVoices()
|
||||
var $synthes = new SpeechSynthesisUtterance()
|
||||
$voise = $.grep($voices, function(n, i) {
|
||||
return n.name == $voiseName
|
||||
})[0]
|
||||
@@ -12,14 +13,14 @@ speechSynthesis.cancel()
|
||||
if (!localStorage.getItem('voice_vol')) {
|
||||
localStorage.setItem('voice_vol', 1)
|
||||
}
|
||||
voiceRate = localStorage.getItem('voice_speed')
|
||||
var voiceRate = localStorage.getItem('voice_speed')
|
||||
$synthes.rate = voiceRate
|
||||
voicePitch = localStorage.getItem('voice_pitch')
|
||||
var voicePitch = localStorage.getItem('voice_pitch')
|
||||
$synthes.pitch = voicePitch
|
||||
voiceVol = localStorage.getItem('voice_vol')
|
||||
var voiceVol = localStorage.getItem('voice_vol')
|
||||
$synthes.volume = voiceVol
|
||||
function say(msgr) {
|
||||
msg = voiceParse(msgr)
|
||||
var msg = voiceParse(msgr)
|
||||
var voice = localStorage.getItem('voicebank')
|
||||
var obj = JSON.parse(voice)
|
||||
if (!obj) {
|
||||
@@ -31,7 +32,7 @@ function say(msgr) {
|
||||
localStorage.setItem('voicebank', json)
|
||||
}
|
||||
}
|
||||
$repeat = setInterval(function() {
|
||||
var $repeat = setInterval(function() {
|
||||
if (!speechSynthesis.speaking) {
|
||||
var voice = localStorage.getItem('voicebank')
|
||||
if (voice) {
|
||||
@@ -72,7 +73,7 @@ $repeat = setInterval(function() {
|
||||
}
|
||||
}, 300)
|
||||
function voiceParse(msg) {
|
||||
msg = $.strip_tags(msg)
|
||||
var msg = $.strip_tags(msg)
|
||||
msg = msg.replace(/#/g, '')
|
||||
msg = msg.replace(/'/g, '')
|
||||
msg = msg.replace(/"/g, '')
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//検索
|
||||
//検索ボックストグル
|
||||
function searchMenu() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//タグ表示
|
||||
if (location.search) {
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/)
|
||||
@@ -10,7 +11,8 @@ if (location.search) {
|
||||
}
|
||||
//よく使うタグ
|
||||
function tagShow(tag) {
|
||||
$('[data-tag=' + decodeURI(tag).toLowerCase() + ']').toggleClass('hide')
|
||||
console.log('[data-regTag=' + decodeURI(tag).toLowerCase() + ']')
|
||||
$('[data-regTag=' + decodeURI(tag).toLowerCase() + ']').toggleClass('hide')
|
||||
}
|
||||
//タグ追加
|
||||
function tagPin(tag) {
|
||||
@@ -69,7 +71,7 @@ function favTag() {
|
||||
tags =
|
||||
tags +
|
||||
`<a onclick="tagShow('${tag}')" class="pointer">#${tag}</a>
|
||||
${nowon}<span class="hide" data-tag="${tag}">
|
||||
${nowon}<span class="hide" data-tag="${tag}" data-regTag="${tag.toLowerCase()}">
|
||||
<a onclick=\"tagTL('tag','${tag}',false,'add')" class="pointer" title="${lang.lang_parse_tagTL.replace('{{tag}}', '#' + tag)}">
|
||||
TL
|
||||
</a>
|
||||
@@ -124,7 +126,7 @@ function trendTag() {
|
||||
tags =
|
||||
tags +
|
||||
`<a onclick="tagShow('${tag}')" class="pointer">#${tag}</a>
|
||||
<span class="hide" data-tag="${tag}">
|
||||
<span class="hide" data-tag="${tag}" data-regTag="${tag.toLowerCase()}">
|
||||
<a onclick=\"tagTL('tag','${tag}',false,'add')" class="pointer" title="#${tag}のタイムライン">TL</a>
|
||||
<a onclick="show();brInsert('#${tag}')" class="pointer" title="#${tag}でトゥート">
|
||||
Toot
|
||||
|
@@ -1,5 +1,6 @@
|
||||
'use strict'
|
||||
//TL取得
|
||||
moreloading = false
|
||||
var moreloading = false
|
||||
var errorct = 0
|
||||
function tl(type, data, acct_id, tlid, delc, voice, mode) {
|
||||
scrollevent()
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*イメージビューワー*/
|
||||
//postのimg.jsとは異なります。
|
||||
function imgv(id, key, acct_id) {
|
||||
@@ -76,7 +77,7 @@ function imgCont(type) {
|
||||
}
|
||||
function imageXhr(id, key, murl) {
|
||||
var startTime = new Date()
|
||||
xhr = new XMLHttpRequest()
|
||||
var xhr = new XMLHttpRequest()
|
||||
xhr.open('GET', murl, true)
|
||||
xhr.responseType = 'arraybuffer'
|
||||
xhr.addEventListener(
|
||||
@@ -104,7 +105,7 @@ function imageXhr(id, key, murl) {
|
||||
)
|
||||
xhr.onreadystatechange = function() {
|
||||
if (this.readyState == 4 && this.status == 200) {
|
||||
r = new FileReader()
|
||||
var r = new FileReader()
|
||||
r.readAsDataURL(this.response)
|
||||
r.onload = function() {
|
||||
var b64 = r.result
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//レイアウトの設定
|
||||
|
||||
var websocketOld = []
|
||||
@@ -202,7 +203,7 @@ function parseColumn(target, dontclose) {
|
||||
animecss,
|
||||
acct.data
|
||||
)
|
||||
} else if (acct.type == 'bookmark') {
|
||||
} else if (acct.type == 'bookmark') {
|
||||
if (!acct.left_fold) {
|
||||
basekey = key
|
||||
}
|
||||
@@ -224,20 +225,21 @@ function parseColumn(target, dontclose) {
|
||||
animecss,
|
||||
acct.domain
|
||||
)
|
||||
}else {
|
||||
} else {
|
||||
var anime = localStorage.getItem('animation')
|
||||
if (anime == 'yes' || !anime) {
|
||||
var animecss = 'box-anime'
|
||||
} else {
|
||||
var animecss = ''
|
||||
}
|
||||
var unread =
|
||||
`<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
||||
var unread = `<a id="unread_${key}" onclick="showUnread('${key}','${acct.type}','${acct.domain}')"
|
||||
class="setting nex" title="${lang.lang_layout_unread}">
|
||||
<i class="material-icons waves-effect nex">more</i>
|
||||
</a>`
|
||||
var notfDomain = acct.domain
|
||||
var notfKey = key
|
||||
var notfDomain = acct.domain
|
||||
var notfKey = key
|
||||
var if_tag = ''
|
||||
var if_tag_btn = ''
|
||||
if (acct.type == 'notf') {
|
||||
var exclude =
|
||||
lang.lang_excluded +
|
||||
@@ -281,20 +283,31 @@ function parseColumn(target, dontclose) {
|
||||
</button>`
|
||||
}
|
||||
exclude = exclude + '<br>'
|
||||
notfDomain = "dummy"
|
||||
notfKey = "dummy"
|
||||
notfDomain = 'dummy'
|
||||
notfKey = 'dummy'
|
||||
} else if (acct.type == 'home') {
|
||||
var exclude =
|
||||
`<a onclick="ebtToggle('${key}')" class="setting nex">
|
||||
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex">
|
||||
<i class="fas fa-retweet waves-effect nex" title="${lang.lang_layout_excludingbt}" style="font-size:24px"></i>
|
||||
<span id="sta-bt-${key}">Off</span>
|
||||
</a>
|
||||
${lang.lang_layout_excludingbt}
|
||||
<br>`
|
||||
} else if (acct.type == 'tag') {
|
||||
if_tag = `<div class="column-hide notf-indv-box" id="tag-box_${key}" style="padding:5px;">
|
||||
Base: ${acct.data}<br>
|
||||
<div id="tagManager-${key}"></div>
|
||||
<button onclick="addTag('${key}')" class="btn waves-effect" style="width: 100%">Add</button>
|
||||
</div>`
|
||||
if_tag_btn = `<a onclick="setToggleTag('${key}')" class="setting nex"
|
||||
title="${lang.lang_layout_tagManager}" style="width:30px">
|
||||
<i class="material-icons waves-effect nex">note_add</i>
|
||||
</a>`
|
||||
unread = ''
|
||||
} else {
|
||||
var exclude = ''
|
||||
unread = ''
|
||||
}
|
||||
|
||||
var markers = localStorage.getItem('markers')
|
||||
if (markers == 'yes') {
|
||||
markers = true
|
||||
@@ -307,18 +320,15 @@ function parseColumn(target, dontclose) {
|
||||
if (!acct.left_fold) {
|
||||
basekey = key
|
||||
if (!numtarget) {
|
||||
var basehtml =
|
||||
`<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
var basehtml = `<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
$('#timeline-container').append(basehtml)
|
||||
}
|
||||
var left_hold =
|
||||
`<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftFold}<br>`
|
||||
} else {
|
||||
var left_hold =
|
||||
`<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftUnfold}<br>`
|
||||
@@ -341,8 +351,7 @@ function parseColumn(target, dontclose) {
|
||||
} else {
|
||||
var addHeight = ''
|
||||
}
|
||||
var html =
|
||||
`
|
||||
var html = `
|
||||
<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}" data-acct="${acct.domain}" style="${addHeight}">
|
||||
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
|
||||
<div class="area-notice">
|
||||
@@ -361,6 +370,7 @@ function parseColumn(target, dontclose) {
|
||||
<i class="material-icons waves-effect nex notf-icon_${acct.domain}">notifications</i>
|
||||
</a>
|
||||
${unread}
|
||||
${if_tag_btn}
|
||||
</div>
|
||||
<div class="area-sta">
|
||||
<span class="new badge teal notf-reply_${acct.domain} hide" data-badge-caption="Reply">0</span>
|
||||
@@ -390,7 +400,7 @@ function parseColumn(target, dontclose) {
|
||||
<span id="sta-media-${key}">On</span>
|
||||
</a>
|
||||
${lang.lang_layout_mediafil}<br>
|
||||
<a onclick="cardToggle(${key}')" class="setting nex">
|
||||
<a onclick="cardToggle('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_linkanades}">link</i>
|
||||
<span id="sta-card-${key}">On</span>
|
||||
</a>
|
||||
@@ -412,7 +422,7 @@ function parseColumn(target, dontclose) {
|
||||
${lang.lang_layout_headercolor}
|
||||
<br>
|
||||
<div id="picker_${key}" class="color-picker"></div>
|
||||
</div>
|
||||
</div>${if_tag}
|
||||
<div class="tl-box" tlid="${key}">
|
||||
<div id="timeline_${key}" class="tl ${acct.type}-timeline " tlid="${key}"
|
||||
data-type="${acct.type}" data-acct="${acct.domain}" data-const="${acct.type}_${acct.domain}">
|
||||
@@ -663,9 +673,41 @@ function setToggle(tlid) {
|
||||
)
|
||||
}
|
||||
}
|
||||
//タグトグル
|
||||
//設定トグル
|
||||
function setToggleTag(tlid) {
|
||||
if ($('#tag-box_' + tlid).hasClass('column-hide')) {
|
||||
$('#tag-box_' + tlid).css('display', 'block')
|
||||
$('#tag-box_' + tlid).animate(
|
||||
{
|
||||
height: '200px'
|
||||
},
|
||||
{
|
||||
duration: 300,
|
||||
complete: function() {
|
||||
$('#tag-box_' + tlid).css('overflow-y', 'scroll')
|
||||
$('#tag-box_' + tlid).removeClass('column-hide')
|
||||
}
|
||||
}
|
||||
)
|
||||
} else {
|
||||
$('#tag-box_' + tlid).css('overflow-y', 'hidden')
|
||||
$('#tag-box_' + tlid).animate(
|
||||
{
|
||||
height: '0'
|
||||
},
|
||||
{
|
||||
duration: 300,
|
||||
complete: function() {
|
||||
$('#tag-box_' + tlid).addClass('column-hide')
|
||||
$('#tag-box_' + tlid).css('display', 'none')
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
function colorpicker(key) {
|
||||
temp =
|
||||
`<div onclick="coloradd('${key}','def','def')" class="pointer">Default</div>
|
||||
var temp = `<div onclick="coloradd('${key}','def','def')" class="pointer">Default</div>
|
||||
<div onclick="coloradd('${key}','f44336','white')" class="red white-text pointer">Red</div>
|
||||
<div onclick="coloradd('${key}','e91e63','white')" class="pink white-text pointer">Pink</div>
|
||||
<div onclick="coloradd('${key}','9c27b0','white')" class="purple white-text pointer">Purple</div>
|
||||
@@ -717,8 +759,7 @@ function coloradd(key, bg, txt) {
|
||||
}
|
||||
//禁断のTwitter
|
||||
function webviewParse(url, key, insert, icnsert, css) {
|
||||
var html =
|
||||
`<div class="box" id="timeline_box_${key}_box" tlid="${key}" style="${css}">
|
||||
var html = `<div class="box" id="timeline_box_${key}_box" tlid="${key}" style="${css}">
|
||||
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
|
||||
<div class="area-notice">
|
||||
<i class="fab fa-twitter waves-effect" id="notice_icon_${key}" style="font-size:40px; padding-top:25%;"></i>
|
||||
@@ -753,25 +794,21 @@ function webviewParse(url, key, insert, icnsert, css) {
|
||||
function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, animecss, data) {
|
||||
//type名が関数名
|
||||
if (!left_fold) {
|
||||
var basehtml =
|
||||
`<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
var basehtml = `<div style="${css}" class="box ${animecss}" id="timeline_box_${basekey}_parentBox"></div>`
|
||||
$('#timeline-container').append(basehtml)
|
||||
var left_hold =
|
||||
`<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
var left_hold = `<a onclick="leftFoldSet('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftFold}">view_agenda</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftFold}
|
||||
</span><br>`
|
||||
} else {
|
||||
var left_hold =
|
||||
`<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
var left_hold = `<a onclick="leftFoldRemove('${key}')" class="setting nex">
|
||||
<i class="material-icons waves-effect nex" title="${lang.lang_layout_leftUnfold}">view_column</i>
|
||||
</a>
|
||||
${lang.lang_layout_leftUnfold}
|
||||
</span><br>`
|
||||
}
|
||||
var html =
|
||||
`<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}">
|
||||
var html = `<div class="boxIn" id="timeline_box_${key}_box" tlid="${key}">
|
||||
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert} ">
|
||||
<div class="area-notice">
|
||||
<i class="material-icons waves-effect" id="notice_icon_${key}" style="font-size:40px; padding-top:25%;"
|
||||
@@ -811,9 +848,9 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
|
||||
</div>
|
||||
</div>`
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html)
|
||||
if(type == 'tootsearch'){
|
||||
if (type == 'tootsearch') {
|
||||
tootsearch(key, data)
|
||||
}else if(type == 'bookmark'){
|
||||
} else if (type == 'bookmark') {
|
||||
console.log(key, data)
|
||||
bookmark(key, data)
|
||||
}
|
||||
@@ -824,7 +861,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
|
||||
voiceCheck(key)
|
||||
return true
|
||||
}
|
||||
function bookmark(key, data){
|
||||
function bookmark(key, data) {
|
||||
console.log(key, data)
|
||||
if (localStorage.getItem('voice_' + key)) {
|
||||
var voice = true
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
function menu() {
|
||||
localStorage.setItem("menu-done", true);
|
||||
$("#fukidashi").addClass("hide")
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
function pip(id) {
|
||||
$("#pip-content").html($("[toot-id=" + id + "] .additional").html());
|
||||
$("#pip").removeClass("hide");
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
/*ささやきボックス(Cr民並感)*/
|
||||
//✕隠す
|
||||
function hide() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
var r = document.getElementById("radio");
|
||||
function Rtoggle() {
|
||||
if ($("#radio").hasClass("play")) {
|
||||
|
@@ -1,62 +1,71 @@
|
||||
'use strict'
|
||||
//スクロールで続きを読む
|
||||
function scrollevent() {
|
||||
$(".tl-box").scroll(function () {
|
||||
scrollck();
|
||||
});
|
||||
$('.tl-box').scroll(function() {
|
||||
scrollck()
|
||||
})
|
||||
}
|
||||
scrollevent();
|
||||
scrollevent()
|
||||
|
||||
function scrollck() {
|
||||
$(".tl-box").each(function (i, elem) {
|
||||
var tlid = $(this).attr('tlid');
|
||||
$('.tl-box').each(function(i, elem) {
|
||||
var tlid = $(this).attr('tlid')
|
||||
var len = $('#timeline_' + tlid + ' .cvo').length
|
||||
//一番上ならためていた新しいトゥートを表示ないしtealなら未読管理モード
|
||||
if ($(this).scrollTop() === 0) {
|
||||
if (!$("#unread_" + tlid + " .material-icons").hasClass("teal-text")) {
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (!$('#unread_' + tlid + ' .material-icons').hasClass('teal-text')) {
|
||||
var pool = localStorage.getItem('pool_' + tlid)
|
||||
if (pool) {
|
||||
$("#timeline_" + tlid).prepend(pool);
|
||||
jQuery("time.timeago").timeago();
|
||||
localStorage.removeItem("pool_" + tlid);
|
||||
$('#timeline_' + tlid).prepend(pool)
|
||||
jQuery('time.timeago').timeago()
|
||||
localStorage.removeItem('pool_' + tlid)
|
||||
}
|
||||
} else {
|
||||
ueload(tlid)
|
||||
}
|
||||
//自動リフレッシュ
|
||||
if ($("#timeline_" + tlid + " .cvo").length > 30) {
|
||||
for (var i = 30; i < $("#timeline_" + tlid + " .cvo").length; i++) {
|
||||
$("#timeline_" + tlid + " .cvo").eq(i).remove();
|
||||
if (len > 30) {
|
||||
for (var i = 30; i < $('#timeline_' + tlid + ' .cvo').length; i++) {
|
||||
$('#timeline_' + tlid + ' .cvo')
|
||||
.eq(i)
|
||||
.remove()
|
||||
}
|
||||
}
|
||||
}
|
||||
//続きを読むトリガー
|
||||
var scrt = $(this).find(".tl").height() - $(window).height();
|
||||
var scr = $(this).scrollTop();
|
||||
if (scr > scrt) {
|
||||
console.log("kicked more loading:" + tlid);
|
||||
moreload('', tlid);
|
||||
var scrt =
|
||||
$(this)
|
||||
.find('.tl')
|
||||
.height() - $(window).height()
|
||||
var scr = $(this).scrollTop()
|
||||
if (scr > scrt && scrt > 0) {
|
||||
console.log('kicked more loading:' + tlid)
|
||||
moreload('', tlid)
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
function goTop(id) {
|
||||
if ($("#unread_" + id + " .material-icons").hasClass("teal-text")) {
|
||||
$("#unread_" + id + " .material-icons").removeClass("teal-text")
|
||||
var multi = localStorage.getItem("column")
|
||||
if ($('#unread_' + id + ' .material-icons').hasClass('teal-text')) {
|
||||
$('#unread_' + id + ' .material-icons').removeClass('teal-text')
|
||||
var multi = localStorage.getItem('column')
|
||||
var obj = JSON.parse(multi)
|
||||
var acct_id = obj[id * 1].domain
|
||||
var type = obj[id * 1].type
|
||||
console.log(id, type)
|
||||
columnReload(id, type)
|
||||
}
|
||||
if ($("#timeline_box_" + id + "_box .tl-box").scrollTop() > 500) {
|
||||
$("#timeline_box_" + id + "_box .tl-box").scrollTop(500)
|
||||
if ($('#timeline_box_' + id + '_box .tl-box').scrollTop() > 500) {
|
||||
$('#timeline_box_' + id + '_box .tl-box').scrollTop(500)
|
||||
}
|
||||
$("#timeline_box_" + id + "_box .tl-box").animate({ scrollTop: 0 });
|
||||
$('#timeline_box_' + id + '_box .tl-box').animate({ scrollTop: 0 })
|
||||
}
|
||||
function goColumn(key) {
|
||||
$("#sort-box").addClass("hide");
|
||||
$("#sort-box").removeClass("show");
|
||||
$('#sort-box').addClass('hide')
|
||||
$('#sort-box').removeClass('show')
|
||||
if ($('[tlid=' + key + ']').length) {
|
||||
$("#timeline-container").animate({ scrollLeft: $("#timeline-container").scrollLeft() + $('[tlid=' + key + ']').offset().left });
|
||||
$('#timeline-container').animate({
|
||||
scrollLeft: $('#timeline-container').scrollLeft() + $('[tlid=' + key + ']').offset().left
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//設定(setting.html)で読む
|
||||
var envView = new Vue({
|
||||
el: "#envView",
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ソートデータ読み込み
|
||||
function sortLoad () {
|
||||
$("#sort").html("");
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
function spotifyConnect() {
|
||||
var auth = "https://accounts.spotify.com/authorize?client_id=0f18e54abe0b4aedb4591e353d3aff69&redirect_uri=https://thedesk.top/spotify-connect&response_type=code&scope=user-read-currently-playing";
|
||||
var platform = localStorage.getItem("platform");
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//テーマ適用
|
||||
function themes(theme) {
|
||||
if (!theme) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//左下のメッセージ
|
||||
var todcTrigger = null
|
||||
function todo(mes) {
|
||||
@@ -111,7 +112,7 @@ function trendTagonTip() {
|
||||
`<a onclick="tagShow('${tag}')" class="pointer">
|
||||
#${escapeHTML(tag)}
|
||||
</a>
|
||||
<span class="hide" data-tag="${tag}">
|
||||
<span class="hide" data-tag="${tag}" data-regTag="${tag.toLowerCase()}">
|
||||
<a onclick="tagTL('tag','${tag}',false,'add')" class="pointer" title="#${tag}のタイムライン">TL</a>
|
||||
<a onclick="show();brInsert('#${tag}')" class="pointer" title="#${tag}でトゥート">Toot</a>
|
||||
</span><br>`
|
||||
@@ -128,7 +129,7 @@ function trendTagonTip() {
|
||||
})
|
||||
}
|
||||
//Spotify
|
||||
spotint = null
|
||||
var spotint = null
|
||||
function spotifytips() {
|
||||
if (spotint) clearInterval(spotint)
|
||||
var start =
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ユーザーデータ表示
|
||||
//タイムライン
|
||||
function utl(user, more, acct_id) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//プロフ編集
|
||||
//文字系
|
||||
function profedit() {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
'use strict'
|
||||
//ユーザーデータ表示
|
||||
localStorage.removeItem("history");
|
||||
//コード受信
|
||||
@@ -25,7 +26,7 @@ function udgEx(user, acct_id) {
|
||||
return false;
|
||||
}
|
||||
var at = localStorage.getItem("acct_" + acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + user;
|
||||
var start = "https://" + domain + "/api/v2/search?resolve=true&q=" + encodeURIComponent(user);
|
||||
fetch(start, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
|
417
app/main.js
417
app/main.js
@@ -1,296 +1,327 @@
|
||||
var dirname = __dirname;
|
||||
var dir = "file://" + __dirname;
|
||||
var base = dir + "/view/";
|
||||
var dirname = __dirname
|
||||
var dir = 'file://' + __dirname
|
||||
var base = dir + '/view/'
|
||||
// Electronのモジュール
|
||||
const electron = require("electron");
|
||||
const fs = require("fs");
|
||||
const language = require("./main/language.js");
|
||||
const css = require("./main/css.js");
|
||||
const dl = require("./main/dl.js");
|
||||
const img = require("./main/img.js");
|
||||
const np = require("./main/np.js");
|
||||
const systemFunc = require("./main/system.js");
|
||||
const Menu = electron.Menu;
|
||||
const join = require("path").join;
|
||||
const electron = require('electron')
|
||||
const fs = require('fs')
|
||||
const language = require('./main/language.js')
|
||||
const css = require('./main/css.js')
|
||||
const dl = require('./main/dl.js')
|
||||
const img = require('./main/img.js')
|
||||
const np = require('./main/np.js')
|
||||
const systemFunc = require('./main/system.js')
|
||||
const Menu = electron.Menu
|
||||
const join = require('path').join
|
||||
|
||||
// アプリケーションをコントロールするモジュール
|
||||
const app = electron.app;
|
||||
const app = electron.app
|
||||
// ウィンドウを作成するモジュール
|
||||
const BrowserWindow = electron.BrowserWindow;
|
||||
const BrowserWindow = electron.BrowserWindow
|
||||
// メインウィンドウはGCされないようにグローバル宣言
|
||||
let mainWindow;
|
||||
let mainWindow
|
||||
|
||||
// アプリが多重起動しないようにする
|
||||
const gotTheLock = app.requestSingleInstanceLock();
|
||||
const gotTheLock = app.requestSingleInstanceLock()
|
||||
|
||||
if (!gotTheLock) {
|
||||
app.quit();
|
||||
app.quit()
|
||||
} else {
|
||||
app.on("second-instance", () => {
|
||||
app.on('second-instance', () => {
|
||||
// 多重起動を試みた場合、既に存在するウィンドウにフォーカスを移す
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (mainWindow.isMinimized()) mainWindow.restore();
|
||||
mainWindow.focus();
|
||||
if (mainWindow.isMinimized()) mainWindow.restore()
|
||||
mainWindow.focus()
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
if (process.argv.indexOf("--dev") === -1) {
|
||||
var packaged = true;
|
||||
if (process.argv.indexOf('--dev') === -1) {
|
||||
var packaged = true
|
||||
} else {
|
||||
var packaged = false;
|
||||
console.log("||\\\\\\ \n" + "|||| \\\\\\\\ \n" + "|||| \\\\\\\\ \n" + "|||| Am I a \\\\\\\\ \n" + "|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n" + "|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n" + "|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n" + "|||| < _ _) ////// | | | | | | __/ |_| | __/__ \\ < \n" + "|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n" + "|||| ///// \n" + "|||| /////\n" + "|||| /////\n" + "||||//////");
|
||||
console.log("Welcome!");
|
||||
var packaged = false
|
||||
console.log(
|
||||
'||\\\\\\ \n' +
|
||||
'|||| \\\\\\\\ \n' +
|
||||
'|||| \\\\\\\\ \n' +
|
||||
'|||| Am I a \\\\\\\\ \n' +
|
||||
'|||| cat? ^ ^ \\\\\\\\\\ _____ _ ____ _ \n' +
|
||||
'|||| (.-.) \\\\\\\\\\ |_ _| |__ ___| _ \\ ___ ___| | __\n' +
|
||||
"|||| ___> ) ||||| | | | '_ \\ / _ \\ | | |/ _ \\/ __| |/ /\n" +
|
||||
'|||| < _ _) ////// | | | | | | __/ |_| | __/__ \\ < \n' +
|
||||
'|||| |_||_| ///// |_| |_| |_|\\___|____/ \\___||___/_|\\_\\ \n' +
|
||||
'|||| ///// \n' +
|
||||
'|||| /////\n' +
|
||||
'|||| /////\n' +
|
||||
'||||//////'
|
||||
)
|
||||
console.log('Welcome!')
|
||||
}
|
||||
var info_path = join(app.getPath("userData"), "window-size.json");
|
||||
var max_info_path = join(app.getPath("userData"), "max-window-size.json");
|
||||
var lang_path = join(app.getPath("userData"), "language");
|
||||
var ha_path = join(app.getPath("userData"), "hardwareAcceleration");
|
||||
var ua_path = join(app.getPath("userData"), "useragent");
|
||||
var info_path = join(app.getPath('userData'), 'window-size.json')
|
||||
var max_info_path = join(app.getPath('userData'), 'max-window-size.json')
|
||||
var lang_path = join(app.getPath('userData'), 'language')
|
||||
var ha_path = join(app.getPath('userData'), 'hardwareAcceleration')
|
||||
var ua_path = join(app.getPath('userData'), 'useragent')
|
||||
try {
|
||||
fs.readFileSync(ha_path, "utf8");
|
||||
app.disableHardwareAcceleration();
|
||||
if (!packaged) console.log("disabled: Hardware Acceleration");
|
||||
fs.readFileSync(ha_path, 'utf8')
|
||||
app.disableHardwareAcceleration()
|
||||
if (!packaged) console.log('disabled: Hardware Acceleration')
|
||||
} catch {
|
||||
if (!packaged) console.log("enabled: Hardware Acceleration");
|
||||
if (!packaged) console.log('enabled: Hardware Acceleration')
|
||||
}
|
||||
var window_size;
|
||||
var window_size
|
||||
try {
|
||||
window_size = JSON.parse(fs.readFileSync(info_path, "utf8"));
|
||||
window_size = JSON.parse(fs.readFileSync(info_path, 'utf8'))
|
||||
} catch (e) {
|
||||
window_size = {
|
||||
width: 1000,
|
||||
height: 750
|
||||
}; // デフォルトバリュー
|
||||
} // デフォルトバリュー
|
||||
}
|
||||
var max_window_size;
|
||||
var max_window_size
|
||||
try {
|
||||
max_window_size = JSON.parse(fs.readFileSync(max_info_path, "utf8"));
|
||||
max_window_size = JSON.parse(fs.readFileSync(max_info_path, 'utf8'))
|
||||
} catch (e) {
|
||||
max_window_size = {
|
||||
width: "string",
|
||||
height: "string",
|
||||
x: "string",
|
||||
y: "string"
|
||||
}; // デフォルトバリュー
|
||||
width: 'string',
|
||||
height: 'string',
|
||||
x: 'string',
|
||||
y: 'string'
|
||||
} // デフォルトバリュー
|
||||
}
|
||||
function isFile(file) {
|
||||
try {
|
||||
fs.statSync(file);
|
||||
return true;
|
||||
fs.statSync(file)
|
||||
return true
|
||||
} catch (err) {
|
||||
if (err.code === "ENOENT") return false;
|
||||
if (err.code === 'ENOENT') return false
|
||||
}
|
||||
}
|
||||
// 全てのウィンドウが閉じたら終了
|
||||
app.on("window-all-closed", function() {
|
||||
electron.session.defaultSession.clearCache(() => {});
|
||||
app.quit();
|
||||
});
|
||||
|
||||
app.on('window-all-closed', function() {
|
||||
electron.session.defaultSession.clearCache(() => {})
|
||||
app.quit()
|
||||
})
|
||||
function createWindow() {
|
||||
if (isFile(lang_path)) {
|
||||
var lang = fs.readFileSync(lang_path, "utf8");
|
||||
var lang = fs.readFileSync(lang_path, 'utf8')
|
||||
} else {
|
||||
var langs = app.getLocale();
|
||||
console.log(langs);
|
||||
if (~langs.indexOf("ja")) {
|
||||
lang = "ja";
|
||||
} else if (~langs.indexOf("de")) {
|
||||
lang = "de";
|
||||
} else if (~langs.indexOf("cs")) {
|
||||
lang = "cs";
|
||||
} else if (~langs.indexOf("bg")) {
|
||||
lang = "bg";
|
||||
var langs = app.getLocale()
|
||||
console.log(langs)
|
||||
if (~langs.indexOf('ja')) {
|
||||
lang = 'ja'
|
||||
} else if (~langs.indexOf('de')) {
|
||||
lang = 'de'
|
||||
} else if (~langs.indexOf('cs')) {
|
||||
lang = 'cs'
|
||||
} else if (~langs.indexOf('bg')) {
|
||||
lang = 'bg'
|
||||
} else {
|
||||
lang = "en";
|
||||
lang = 'en'
|
||||
}
|
||||
fs.mkdir(app.getPath("userData"), function(err) {
|
||||
fs.writeFileSync(lang_path, lang);
|
||||
});
|
||||
fs.mkdir(app.getPath('userData'), function(err) {
|
||||
fs.writeFileSync(lang_path, lang)
|
||||
})
|
||||
}
|
||||
if (!packaged) console.log("your lang:" + app.getLocale());
|
||||
if (!packaged) console.log("launch:" + lang);
|
||||
if (!packaged) console.log('your lang:' + app.getLocale())
|
||||
if (!packaged) console.log('launch:' + lang)
|
||||
// メイン画面の表示。ウィンドウの幅、高さを指定できる
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
if (platform == "linux") {
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
if (platform == 'linux') {
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
preload: join(__dirname, 'js', 'platform', 'preload.js')
|
||||
},
|
||||
width: window_size.width,
|
||||
height: window_size.height,
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
icon: __dirname + "/desk.png",
|
||||
icon: __dirname + '/desk.png',
|
||||
show: false
|
||||
};
|
||||
} else if (platform == "win32") {
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width,
|
||||
height: window_size.height,
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
simpleFullscreen: true,
|
||||
show: false
|
||||
};
|
||||
} else if (platform == "darwin") {
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, "js", "platform", "preload.js")
|
||||
},
|
||||
width: window_size.width,
|
||||
height: window_size.height,
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
simpleFullscreen: true,
|
||||
show: false
|
||||
};
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg);
|
||||
mainWindow.once("page-title-updated", () => {
|
||||
mainWindow.show();
|
||||
if (window_size.max) {
|
||||
mainWindow.maximize();
|
||||
}
|
||||
});
|
||||
if (!packaged) mainWindow.toggleDevTools();
|
||||
electron.session.defaultSession.clearCache(() => {});
|
||||
} else if (platform == 'win32') {
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, 'js', 'platform', 'preload.js')
|
||||
},
|
||||
width: window_size.width,
|
||||
height: window_size.height,
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
simpleFullscreen: true,
|
||||
show: false
|
||||
}
|
||||
} else if (platform == 'darwin') {
|
||||
var arg = {
|
||||
webPreferences: {
|
||||
webviewTag: true,
|
||||
nodeIntegration: false,
|
||||
contextIsolation: true,
|
||||
preload: join(__dirname, 'js', 'platform', 'preload.js')
|
||||
},
|
||||
width: window_size.width,
|
||||
height: window_size.height,
|
||||
x: window_size.x,
|
||||
y: window_size.y,
|
||||
simpleFullscreen: true,
|
||||
show: false
|
||||
}
|
||||
}
|
||||
mainWindow = new BrowserWindow(arg)
|
||||
mainWindow.once('page-title-updated', () => {
|
||||
mainWindow.show()
|
||||
if (window_size.max) {
|
||||
mainWindow.maximize()
|
||||
}
|
||||
})
|
||||
if (!packaged) mainWindow.toggleDevTools()
|
||||
electron.session.defaultSession.clearCache(() => {})
|
||||
if (process.argv) {
|
||||
if (process.argv[1]) {
|
||||
var m = process.argv[1].match(/([a-zA-Z0-9]+)\/\?[a-zA-Z-0-9]+=(.+)/);
|
||||
var m = process.argv[1].match(/([a-zA-Z0-9]+)\/\?[a-zA-Z-0-9]+=(.+)/)
|
||||
if (m) {
|
||||
var mode = m[1];
|
||||
var code = m[2];
|
||||
var plus = "?mode=" + mode + "&code=" + code;
|
||||
var mode = m[1]
|
||||
var code = m[2]
|
||||
var plus = '?mode=' + mode + '&code=' + code
|
||||
} else {
|
||||
var plus = "";
|
||||
var plus = ''
|
||||
}
|
||||
} else {
|
||||
var plus = "";
|
||||
var plus = ''
|
||||
}
|
||||
} else {
|
||||
var plus = "";
|
||||
var plus = ''
|
||||
}
|
||||
var ua;
|
||||
var ua
|
||||
try {
|
||||
ua = fs.readFileSync(ua_path, "utf8");
|
||||
ua = fs.readFileSync(ua_path, 'utf8')
|
||||
} catch (e) {
|
||||
//default UA Example:
|
||||
// Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) thedesk/18.11.3 Chrome/76.0.3809.146 Electron/6.0.12 Safari/537.36
|
||||
const crypto = require("crypto");
|
||||
const N = 100;
|
||||
const crypto = require('crypto')
|
||||
const N = 100
|
||||
var ua =
|
||||
"Mastodon client: " +
|
||||
'Mastodon client: ' +
|
||||
crypto
|
||||
.randomBytes(N)
|
||||
.toString("base64")
|
||||
.substring(0, N);
|
||||
.toString('base64')
|
||||
.substring(0, N)
|
||||
}
|
||||
mainWindow.loadURL(base + lang + "/index.html" + plus, { userAgent: ua });
|
||||
mainWindow.loadURL(base + lang + '/index.html' + plus, { userAgent: ua })
|
||||
if (!window_size.x && !window_size.y) {
|
||||
mainWindow.center();
|
||||
mainWindow.center()
|
||||
}
|
||||
// ウィンドウが閉じられたらアプリも終了
|
||||
mainWindow.on("closed", function() {
|
||||
electron.ipcMain.removeAllListeners();
|
||||
mainWindow = null;
|
||||
});
|
||||
closeArg = false;
|
||||
mainWindow.on("close", function(e, arg) {
|
||||
writePos(mainWindow);
|
||||
mainWindow.on('closed', function() {
|
||||
electron.ipcMain.removeAllListeners()
|
||||
mainWindow = null
|
||||
})
|
||||
closeArg = false
|
||||
mainWindow.on('close', function(e, arg) {
|
||||
writePos(mainWindow)
|
||||
if (!closeArg) {
|
||||
e.preventDefault();
|
||||
e.preventDefault()
|
||||
}
|
||||
const promise = new Promise(function(resolve) {
|
||||
mainWindow.webContents.send("asReadEnd", "");
|
||||
mainWindow.webContents.send('asReadEnd', '')
|
||||
setTimeout(function() {
|
||||
resolve();
|
||||
}, 3000);
|
||||
});
|
||||
resolve()
|
||||
}, 3000)
|
||||
})
|
||||
promise.then(function(response) {
|
||||
closeArg = true;
|
||||
mainWindow.close();
|
||||
});
|
||||
});
|
||||
electron.ipcMain.on("sendMarkersComplete", function(e, arg) {
|
||||
closeArg = true;
|
||||
mainWindow.close();
|
||||
});
|
||||
closeArg = true
|
||||
mainWindow.close()
|
||||
})
|
||||
})
|
||||
electron.ipcMain.on('sendMarkersComplete', function(e, arg) {
|
||||
closeArg = true
|
||||
mainWindow.close()
|
||||
})
|
||||
function writePos(mainWindow) {
|
||||
if (max_window_size.width == mainWindow.getBounds().width && max_window_size.height == mainWindow.getBounds().height && max_window_size.x == mainWindow.getBounds().x && max_window_size.y == mainWindow.getBounds().y) {
|
||||
var size = { width: mainWindow.getBounds().width, height: mainWindow.getBounds().height, x: mainWindow.getBounds().x, y: mainWindow.getBounds().y, max: true };
|
||||
if (
|
||||
max_window_size.width == mainWindow.getBounds().width &&
|
||||
max_window_size.height == mainWindow.getBounds().height &&
|
||||
max_window_size.x == mainWindow.getBounds().x &&
|
||||
max_window_size.y == mainWindow.getBounds().y
|
||||
) {
|
||||
var size = {
|
||||
width: mainWindow.getBounds().width,
|
||||
height: mainWindow.getBounds().height,
|
||||
x: mainWindow.getBounds().x,
|
||||
y: mainWindow.getBounds().y,
|
||||
max: true
|
||||
}
|
||||
} else {
|
||||
var size = { width: mainWindow.getBounds().width, height: mainWindow.getBounds().height, x: mainWindow.getBounds().x, y: mainWindow.getBounds().y };
|
||||
var size = {
|
||||
width: mainWindow.getBounds().width,
|
||||
height: mainWindow.getBounds().height,
|
||||
x: mainWindow.getBounds().x,
|
||||
y: mainWindow.getBounds().y
|
||||
}
|
||||
}
|
||||
fs.writeFileSync(info_path, JSON.stringify(size));
|
||||
fs.writeFileSync(info_path, JSON.stringify(size))
|
||||
}
|
||||
mainWindow.on("maximize", function() {
|
||||
writePos(mainWindow);
|
||||
fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()));
|
||||
});
|
||||
mainWindow.on("minimize", function() {
|
||||
writePos(mainWindow);
|
||||
mainWindow.webContents.send("asRead", "");
|
||||
});
|
||||
mainWindow.on('maximize', function() {
|
||||
writePos(mainWindow)
|
||||
fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()))
|
||||
})
|
||||
mainWindow.on('minimize', function() {
|
||||
writePos(mainWindow)
|
||||
mainWindow.webContents.send('asRead', '')
|
||||
})
|
||||
|
||||
var platform = process.platform;
|
||||
var bit = process.arch;
|
||||
Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname)));
|
||||
var platform = process.platform
|
||||
var bit = process.arch
|
||||
Menu.setApplicationMenu(
|
||||
Menu.buildFromTemplate(language.template(lang, mainWindow, packaged, dir, dirname))
|
||||
)
|
||||
//CSS
|
||||
css.css(mainWindow);
|
||||
css.css(mainWindow)
|
||||
//アップデータとダウンロード
|
||||
dl.dl(mainWindow, lang_path, base, dirname);
|
||||
dl.dl(mainWindow, lang_path, base, dirname)
|
||||
//画像選択と画像処理
|
||||
img.img(mainWindow, dir);
|
||||
img.img(mainWindow, dir)
|
||||
//NowPlaying
|
||||
np.TheDeskNowPlaying(mainWindow);
|
||||
np.TheDeskNowPlaying(mainWindow)
|
||||
//その他system
|
||||
systemFunc.system(mainWindow, dir, lang, dirname);
|
||||
systemFunc.system(mainWindow, dir, lang, dirname)
|
||||
setInterval(function() {
|
||||
mouseTrack(mainWindow);
|
||||
}, 1000);
|
||||
mouseTrack(mainWindow)
|
||||
}, 1000)
|
||||
}
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
var unchanged = 0;
|
||||
var locked = false;
|
||||
var x = 0
|
||||
var y = 0
|
||||
var unchanged = 0
|
||||
var locked = false
|
||||
function mouseTrack(mainWindow) {
|
||||
let mousePos = electron.screen.getCursorScreenPoint();
|
||||
let xNow = mousePos.x;
|
||||
let yNow = mousePos.x;
|
||||
let mousePos = electron.screen.getCursorScreenPoint()
|
||||
let xNow = mousePos.x
|
||||
let yNow = mousePos.x
|
||||
if (x != xNow || y != yNow) {
|
||||
unchanged = 0;
|
||||
locked = false;
|
||||
unchanged = 0
|
||||
locked = false
|
||||
} else {
|
||||
unchanged++;
|
||||
unchanged++
|
||||
if (unchanged > 60 && !locked) {
|
||||
unchanged = 0;
|
||||
locked = true;
|
||||
mainWindow.webContents.send("asRead", "");
|
||||
unchanged = 0
|
||||
locked = true
|
||||
mainWindow.webContents.send('asRead', '')
|
||||
}
|
||||
}
|
||||
x = xNow;
|
||||
y = yNow;
|
||||
x = xNow
|
||||
y = yNow
|
||||
}
|
||||
// Electronの初期化完了後に実行
|
||||
app.on("ready", createWindow);
|
||||
app.on('ready', createWindow)
|
||||
var onError = function(err, response) {
|
||||
console.error(err, response);
|
||||
};
|
||||
console.error(err, response)
|
||||
}
|
||||
|
||||
app.setAsDefaultProtocolClient("thedesk");
|
||||
app.setAsDefaultProtocolClient('thedesk')
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "20.0.3",
|
||||
"version": "20.0.4",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
@@ -59,18 +59,18 @@
|
||||
"json5": "^2.1.1",
|
||||
"lodash": "^4.17.15",
|
||||
"sumchecker": "^3.0.0",
|
||||
"sweetalert2": "^9.3.4",
|
||||
"sweetalert2": "^9.3.16",
|
||||
"vue": "^2.6.10"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"font-manager": "^0.3.0",
|
||||
"font-manager": "0.3.0",
|
||||
"itunes-nowplaying-mac": "0.3.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"chokidar": "^3.3.0",
|
||||
"electron": "^6.0.12",
|
||||
"electron": "^7.1.1",
|
||||
"electron-builder": "^22.1.0",
|
||||
"electron-rebuild": "^1.8.6",
|
||||
"electron-rebuild": "^1.8.8",
|
||||
"readline-sync": "1.4.10"
|
||||
},
|
||||
"build": {
|
||||
|
@@ -761,28 +761,31 @@
|
||||
<a href="https://thedesk.top" target="_blank">HP</a><br>
|
||||
<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
|
||||
<br>
|
||||
<div id="release-20-0-3_Kawaii" class="release-do" style="display:none; ">><br>
|
||||
<div id="release-20-0-4_Kawaii" class="release-do" style="display:none; ">><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Pixiv FanboxやPatreonでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note 20.0.3 (Kawaii)</h5>
|
||||
・ブックマーク機能(master)
|
||||
<h5>Release Note 20.0.4 (Kawaii)</h5>
|
||||
・YouTubeの一部の埋め込みがtrustedになっていなかった
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・コンテキストメニュー
|
||||
・Integrated TLを下にもっと読み込むことができなかった
|
||||
<a onclick="udgEx('naokisz@kirishima.cloud','main')" class="contributor">
|
||||
<img src="https://user-images.githubusercontent.com/17561618/69067796-0fba5380-0a67-11ea-9924-ffc3e1401672.png">naokisz
|
||||
</a>
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・日本語(関西)を追加したで
|
||||
・Integrated TLのストリーミングも切れたらアイコンが赤くなるように
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・カードの埋め込みHTMLを自動で展開しないように。セキュリティ対策。YouTube, ニコ動, Spotify, Twitcastingのみ表示
|
||||
・翻訳が上手く表示されていなかった
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
・Twitterの埋め込みをAPI展開するようにした
|
||||
・トゥートを外部URLから検索して表示するのが上手くいってなかった
|
||||
<a onclick="udgEx('Cutls@cutls.com','main')" class="contributor">
|
||||
<img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png">Cutls
|
||||
</a><br>
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Интегриране (Местно/Начало)",
|
||||
"localPlusDes": "LTL+Отговор+BT",
|
||||
"notf": "Известия",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Показване на този TL:",
|
||||
"webviewWarn": "TweetDeck с потребителски TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Код</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Клавишните комбинации ще ви дразнят. Когато се почувствате така, маркирате „Предпочитам WebView“ в горната част на колоната.",
|
||||
"add": "Добави",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "Няма данни",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Изтрийте тази раздумка",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Изтрий & върни",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifikace",
|
||||
"bookmark": "Záložky",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Přidat",
|
||||
|
@@ -55,9 +55,9 @@
|
||||
"lang_emoji_uncat": "Uncategorized",
|
||||
"lang_postimg_previewdis": "nelze vytvořit náhled",
|
||||
"lang_postimg_aftupload": "Po nahrání nemůžete změnit účty.",
|
||||
"lang_postimg_failupload": "Failed",
|
||||
"lang_postimg_failupload": "Selhalo",
|
||||
"lang_postimg_delete": "Click to add description, right-click to delete this",
|
||||
"lang_postimg_desc": "Description",
|
||||
"lang_postimg_desc": "Popis",
|
||||
"lang_postimg_leadContext": "right-click the thumbnail to delete this",
|
||||
"lang_post_tagTL": "Tento toot neobsahuje výchozí hashtag. Tento toot nebude zobrazen na výchozí časové ose. Pokračovat?",
|
||||
"lang_post_tagVis": "Tento toot (ne „veřejný“ toot) není zobrazen na časové ose tohoto hashtagu.",
|
||||
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Režim odpovězení. Pro vymazání stiskněte Ctrl+Shift+C.",
|
||||
"lang_cards_check": " kontrolovat",
|
||||
"lang_cards_pip": "Režim PiP",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "Žádná data",
|
||||
"lang_details_filtered": "Filtrovaný toot",
|
||||
"lang_details_embed": "HTML pro vložení je zkopírován.",
|
||||
@@ -180,9 +182,14 @@
|
||||
"lang_parse_bt": "Boostnout tento toot",
|
||||
"lang_parse_fav": "Oblíbit si tento toot",
|
||||
"lang_parse_quote": "Citovat tento toot",
|
||||
"lang_parse_bookmark": "Přidat do záložek",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Smazat tento toot",
|
||||
"lang_parse_pin": "Připnout tento toot",
|
||||
"lang_parse_unpin": "Odepnout",
|
||||
"lang_parse_link": "Otevřít v prohlížeči",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Podrobnosti",
|
||||
"lang_parse_redraft": "Vymazat a přepsat",
|
||||
"lang_parse_followed": "vás nyní sleduje",
|
||||
"lang_parse_clientop": "Operace tohoto klienta",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "NSFW media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Znovusdílení",
|
||||
"lang_misskeyparse_renoteqt": "Renotování",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local and Home)",
|
||||
"localPlusDes": "Integrated(Local and replies and BT on Home)",
|
||||
"notf": "Benachrichtigungen",
|
||||
"bookmark": "Lesezeichen",
|
||||
"showThisTL": "Verlauf anzeigen:",
|
||||
"webviewWarn": "TweetDeck mit angepassten TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Tastaturkürzel werden Sie irritieren. Wenn Sie wollen, können Sie \"WebView bevorzugen\" oberhalb der Spalte aktivieren.",
|
||||
"add": "Hinzufügen",
|
||||
|
@@ -22,14 +22,14 @@
|
||||
"lang_time_suffixFromNow": null,
|
||||
"lang_time_inPast": null,
|
||||
"lang_time_seconds": "%d s",
|
||||
"lang_time_minute": "1 m",
|
||||
"lang_time_minute": "1 Min.",
|
||||
"lang_time_minutes": "%d m",
|
||||
"lang_time_hour": "1 h",
|
||||
"lang_time_hours": "%d h",
|
||||
"lang_time_day": "1 d",
|
||||
"lang_time_days": "%d d",
|
||||
"lang_time_month": "1 month",
|
||||
"lang_time_months": "%d months",
|
||||
"lang_time_month": "1 Monat",
|
||||
"lang_time_months": "%d Monate",
|
||||
"lang_time_year": "y",
|
||||
"lang_time_years": "%d y",
|
||||
"lang_version_usever": "Keine Aktualisierung gefunden({{ver}})",
|
||||
@@ -52,12 +52,12 @@
|
||||
"lang_emoji_get": "Hole Emojis",
|
||||
"lang_emoji_custom": "Eigene Emojis",
|
||||
"lang_defaultemojis_text": "Emojis über {{cat}}",
|
||||
"lang_emoji_uncat": "Uncategorized",
|
||||
"lang_emoji_uncat": "Nicht kategorisiert",
|
||||
"lang_postimg_previewdis": "keine Vorschau",
|
||||
"lang_postimg_aftupload": "Sie können die Konten nach dem Hochladen nicht mehr ändern.",
|
||||
"lang_postimg_failupload": "Failed",
|
||||
"lang_postimg_delete": "Click to add description, right-click to delete this",
|
||||
"lang_postimg_desc": "Description",
|
||||
"lang_postimg_failupload": "Gescheitert",
|
||||
"lang_postimg_delete": "Klicken, um Beschreibung hinzuzufügen, Rechtsklick zum Löschen",
|
||||
"lang_postimg_desc": "Beschreibung",
|
||||
"lang_postimg_leadContext": "right-click the thumbnail to delete this",
|
||||
"lang_post_tagTL": "Dieses Tröt enthält keinen Standard-Tag. Er wird in dem lokalen Verlauf nicht angezeigt. Fortfahren?",
|
||||
"lang_post_tagVis": "Dieser Tröt (nicht 'öffentlicher' Tröt) wird nicht in diesem Tag-Verlauf angezeigt.",
|
||||
@@ -80,12 +80,14 @@
|
||||
"lang_status_unemphas": "'s Tröts werden nicht hervorgehoben. Bitte laden Sie nach dieser Aktion neu.",
|
||||
"lang_status_unendorse": "Nicht auf dem Profil zeigen",
|
||||
"lang_status_endorse": "Auf dem Profil zeigen",
|
||||
"lang_status_followers": "Followers",
|
||||
"lang_status_active": "Last status",
|
||||
"lang_status_followers": "Folgende",
|
||||
"lang_status_active": "Letzter Status",
|
||||
"lang_suggest_nodata": "Please get emojis list in order to show suggestion.",
|
||||
"lang_usetxtbox_reply": "Antwortmodus. Strg+Umschalt+C zum Löschen.",
|
||||
"lang_cards_check": " überprüfen",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_pip": "PiP-Modus",
|
||||
"lang_cards_trusted": "Vertrautes Einbetten HTML von TheDesk (Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "Keine Daten",
|
||||
"lang_details_filtered": "Gefilterter Tröt",
|
||||
"lang_details_embed": "Eingefügtes HTML wurde entfernt.",
|
||||
@@ -107,14 +109,14 @@
|
||||
"lang_tags_always": "Immer Tröten mit ",
|
||||
"lang_tags_realtime": "Tag-Stream Tröt",
|
||||
"lang_tags_tagunpin": "{{tag}} entsperren",
|
||||
"lang_tags_unrealtime": "Disable TsT",
|
||||
"lang_tags_unrealtime": "TsT deaktivieren",
|
||||
"lang_tags_tagwarn": "Automatisch {{tag}} anfügen, wenn Tröt ohne {{tag}} ist",
|
||||
"lang_tl_media": "Medien",
|
||||
"lang_tl_reconnect": "Mit Streaming API erneut verbinden",
|
||||
"lang_tl_postmarkers_title": "Process...",
|
||||
"lang_tl_postmarkers": "POST markers data. Please wait",
|
||||
"lang_img_DLDone": "Heruntergeladen:",
|
||||
"lang_img_copyDone": "Copied: URL of this image",
|
||||
"lang_img_copyDone": "Kopiert: URL dieses Bildes",
|
||||
"lang_layout_gotop": "Gehen Sie zum Anfang dieser Spalte. Wenn das Symbol rot ist, kann diese Spalte keine Verbindung zur Streaming-API herstellen. Bitte neu laden.",
|
||||
"lang_layout_thisacct": "{{notf}} dieses Kontos",
|
||||
"lang_layout_delthis": "Diese Spalte löschen",
|
||||
@@ -129,12 +131,12 @@
|
||||
"lang_layout_dm": "Direkte Nachricht",
|
||||
"lang_layout_webviewmode": "Web-Ansicht bevorzugen",
|
||||
"lang_excluded": "Ausgeschlossene Benachrichtigungsart",
|
||||
"lang_layout_excludingbt": "Show BT mode(OFF/Exclude BT/Only BT)",
|
||||
"lang_layout_excludingbt": "BT-Modus anzeigen (aus/kein BT/Nur BT)",
|
||||
"lang_layout_leftFold": "Nach links Stapeln",
|
||||
"lang_layout_leftUnfold": "Rechts Anheften",
|
||||
"lang_layout_deleteColumn": "Diese Spalte löschen",
|
||||
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_unread": "ungelesen",
|
||||
"lang_sort_gothis": "Gehe zu dieser Spalte",
|
||||
"lang_sort_remthis": "Diese Spalte löschen",
|
||||
"lang_spotify_img": "Albumcover anhängen",
|
||||
@@ -152,7 +154,7 @@
|
||||
"lang_showontl_botacct": "[bot]",
|
||||
"lang_showontl_followed": "Folgt dir",
|
||||
"lang_showontl_notf": "Benachrichtigung ",
|
||||
"lang_showontl_domain": "Domain ",
|
||||
"lang_showontl_domain": "Domäne ",
|
||||
"lang_showontl_listwarn": "Folgen, um diesen Benutzer zu Listen hinzuzufügen.",
|
||||
"lang_showontl_verified": "This website is verified by owner at ",
|
||||
"lang_parse_mentioned": " hat dir geantwortet",
|
||||
@@ -180,9 +182,14 @@
|
||||
"lang_parse_bt": "Diesen Tröt verstärken",
|
||||
"lang_parse_fav": "Diesen Tröt favorisieren",
|
||||
"lang_parse_quote": "Diesen Tröt zitieren",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Lesezeichen entfernen",
|
||||
"lang_parse_del": "Diesen Tröt löschen",
|
||||
"lang_parse_pin": "Dieses Tröt fixieren",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Im Browser öffnen",
|
||||
"lang_parse_det": "Details über Ihr Hauptkonto.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Löschen & Neuentwerfen",
|
||||
"lang_parse_followed": "Folgt dir",
|
||||
"lang_parse_clientop": "Aktion dieses Clients",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Konversation anzeigen",
|
||||
"lang_parse_unknown": "Angehängte Datei",
|
||||
"lang_parse_nsfw": "NSFW Medien",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Benachrichtigungen dieses Benutzers anzeigen",
|
||||
"lang_misskeyparse_renote": "Weiterleiten",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
@@ -214,8 +222,8 @@
|
||||
"lang_setting_time": "Zeitformat:{{set}}",
|
||||
"lang_setting_theme": "Design:{{set}}",
|
||||
"lang_setting_nsfw": "NSFW:{{set}}",
|
||||
"lang_setting_cw": "CW:{{set}}",
|
||||
"lang_setting_cwtext": "Default CW text:{{set}}",
|
||||
"lang_setting_cw": "NSFW:{{set}}",
|
||||
"lang_setting_cwtext": "Standard-NSFW-Text:{{set}}",
|
||||
"lang_setting_cws": "Always CW on:{{set}}",
|
||||
"lang_setting_rp": "Antwortzähler:{{set}}",
|
||||
"lang_setting_vis": "Standardsichtbarkeit:{{set}}",
|
||||
|
@@ -97,7 +97,7 @@
|
||||
"tickerwarn": "Zeigt bunte Sticker über den Server. <a href=\"https://wee.jp/\">Über #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation": "Animation der Verläufe",
|
||||
"markers": "Markers(mark as read) on HTL and notifications",
|
||||
"markerswarn": "Mastodon 3.0~. Shared on WebUI and third-party supported clients.",
|
||||
"markerswarn": "Mastodon 3.0~. Auf WebUI und Drittanbieter-unterstützten Clients geteilt.",
|
||||
"remote_img": "Get images from the remote server",
|
||||
"remote_imgWarn": "All previews are got from your loginned cache server.",
|
||||
"replySound": "Ton bei Antwort",
|
||||
@@ -126,7 +126,8 @@
|
||||
"mention": "URL und Name (Hinweis auf den Benutzer)",
|
||||
"full": "URL, Text und Name(Hinweis auf den Benutzer)",
|
||||
"notqt": "Deaktiviert (Taste in Verlauf ausgeblendet)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"apiQuote": "API(nur einige Instanzen)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Standard-Konto für Aktionen",
|
||||
"mainwarn": "Das Hauptkonto kann in der Kontoverwaltung gestellt werden.",
|
||||
"lastacct": "Konto, das Sie kürzlich verwendet haben",
|
||||
|
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"updatehere": "Neusten TheDesk holen.",
|
||||
"download": "Start",
|
||||
"updatehere": "Neusten TheDesk holen",
|
||||
"download": "Beginnen",
|
||||
"portable": "Portable Version",
|
||||
"installer": "Installer Version",
|
||||
"linux": "zip",
|
||||
"linuxdeb": "deb(Recommended on buntu, Debian)",
|
||||
"linux": "Zip",
|
||||
"linuxdeb": "deb(empfohlen auf buntu, Debian)",
|
||||
"linuxsnap": "snap",
|
||||
"snap": "Snap-Version kann auf Snapcraft sein",
|
||||
"sureupd": "Du kannst ein cooles Erlebnis verpassen!",
|
||||
@@ -15,5 +15,5 @@
|
||||
"problem2": "Bitte von <a href=\"https://thedesk.top\">Offizielle Homepage</a> herunterladen.",
|
||||
"continue": "Aktualisieren fortsetzen",
|
||||
"dlnow": "Herunterladen...",
|
||||
"checkWhatIsNew": "What is new?"
|
||||
"checkWhatIsNew": "Was gibt es neues?"
|
||||
}
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "crwdns3302:0crwdne3302:0",
|
||||
"localPlusDes": "crwdns3304:0crwdne3304:0",
|
||||
"notf": "crwdns3306:0crwdne3306:0",
|
||||
"bookmark": "crwdns4402:0crwdne4402:0",
|
||||
"showThisTL": "crwdns3308:0crwdne3308:0",
|
||||
"webviewWarn": "crwdns3310:0crwdne3310:0",
|
||||
"add": "crwdns3312:0crwdne3312:0",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "crwdns3574:0crwdne3574:0",
|
||||
"lang_cards_check": "crwdns3576:0crwdne3576:0",
|
||||
"lang_cards_pip": "crwdns3578:0crwdne3578:0",
|
||||
"lang_cards_trusted": "crwdns4408:0crwdne4408:0",
|
||||
"lang_cards_untrusted": "crwdns4410:0crwdne4410:0",
|
||||
"lang_details_nodata": "crwdns3580:0crwdne3580:0",
|
||||
"lang_details_filtered": "crwdns3582:0crwdne3582:0",
|
||||
"lang_details_embed": "crwdns3584:0crwdne3584:0",
|
||||
@@ -180,9 +182,14 @@
|
||||
"lang_parse_bt": "crwdns3760:0crwdne3760:0",
|
||||
"lang_parse_fav": "crwdns3762:0crwdne3762:0",
|
||||
"lang_parse_quote": "crwdns3764:0crwdne3764:0",
|
||||
"lang_parse_bookmark": "crwdns4394:0crwdne4394:0",
|
||||
"lang_parse_unbookmark": "crwdns4396:0crwdne4396:0",
|
||||
"lang_parse_del": "crwdns3766:0crwdne3766:0",
|
||||
"lang_parse_pin": "crwdns3768:0crwdne3768:0",
|
||||
"lang_parse_unpin": "crwdns4398:0crwdne4398:0",
|
||||
"lang_parse_link": "crwdns4400:0crwdne4400:0",
|
||||
"lang_parse_det": "crwdns3770:0crwdne3770:0",
|
||||
"lang_parse_detail": "crwdns4406:0crwdne4406:0",
|
||||
"lang_parse_redraft": "crwdns3772:0crwdne3772:0",
|
||||
"lang_parse_followed": "crwdns3774:0crwdne3774:0",
|
||||
"lang_parse_clientop": "crwdns3776:0crwdne3776:0",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "crwdns3796:0crwdne3796:0",
|
||||
"lang_parse_unknown": "crwdns3798:0crwdne3798:0",
|
||||
"lang_parse_nsfw": "crwdns3800:0crwdne3800:0",
|
||||
"lang_parse_html": "crwdns4388:0crwdne4388:0",
|
||||
"lang_parse_notffilter": "crwdns3802:0crwdne3802:0",
|
||||
"lang_misskeyparse_renote": "crwdns3804:0crwdne3804:0",
|
||||
"lang_misskeyparse_renoteqt": "crwdns3806:0crwdne3806:0",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "crwdns4136:0crwdne4136:0",
|
||||
"notqt": "crwdns4138:0crwdne4138:0",
|
||||
"apiQuote": "crwdns4140:0crwdne4140:0",
|
||||
"showBookmarkAction": "crwdns4404:0crwdne4404:0",
|
||||
"main": "crwdns4142:0crwdne4142:0",
|
||||
"mainwarn": "crwdns4144:0crwdne4144:0",
|
||||
"lastacct": "crwdns4146:0crwdne4146:0",
|
||||
|
@@ -86,8 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trasted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untransted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -137,6 +137,7 @@
|
||||
"lang_layout_deleteColumn": "Delete this column",
|
||||
"lang_layout_deleteColumnDesc": "Delete this column",
|
||||
"lang_layout_unread": "Unread",
|
||||
"lang_layout_tagManager": "Tag timeline manager",
|
||||
"lang_sort_gothis": "Go to this column",
|
||||
"lang_sort_remthis": "Delete this column",
|
||||
"lang_spotify_img": "Attach an album artwork",
|
||||
@@ -177,7 +178,7 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrado (local/principal)",
|
||||
"localPlusDes": "Local+Respuesta+retoot",
|
||||
"notf": "Notificaciones",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Mostrar esta línea temporal:",
|
||||
"webviewWarn": "TweetDeck con TJDeck personalizado (<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Código</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Los atajos de teclado te irritarán. Cuando lo sientas, revisá \"Preferir WebView\" en la parte superior de la columna.",
|
||||
"add": "Agregar",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Modo de respuesta. \"Ctrl\" + \"Mayús\" + \"C\" para limpiar.",
|
||||
"lang_cards_check": " comprobado",
|
||||
"lang_cards_pip": "Modo de pantalla en pantalla",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "Sin datos",
|
||||
"lang_details_filtered": "Toot filtrado",
|
||||
"lang_details_embed": "El código HTML de inserción se copió al portapapeles.",
|
||||
@@ -180,9 +182,14 @@
|
||||
"lang_parse_bt": "Retootear este toot",
|
||||
"lang_parse_fav": "Marcar como favorito este toot",
|
||||
"lang_parse_quote": "Citar este toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Eliminar este toot",
|
||||
"lang_parse_pin": "Fijar este toot",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Detalles vía tu cuenta principal.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Eliminar toot original y editarlo",
|
||||
"lang_parse_followed": "Te sigue",
|
||||
"lang_parse_clientop": "Función de este cliente",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Mostrar hilo",
|
||||
"lang_parse_unknown": "Archivo adjunto",
|
||||
"lang_parse_nsfw": "medios sensibles",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Mostrar notificaciones de este usuario",
|
||||
"lang_misskeyparse_renote": "Republicar",
|
||||
"lang_misskeyparse_renoteqt": "Renovar",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "Dirección web, texto y cuenta (mención al usuario)",
|
||||
"notqt": "Deshabilitado (ocultar botones en las líneas temporales)",
|
||||
"apiQuote": "API (sólo algunas instancias)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Acciones de cuenta predeterminada",
|
||||
"mainwarn": "Se puede establecer la cuenta predeterminada en el Administrador de cuentas.",
|
||||
"lastacct": "Cuenta usada recientemente",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
@@ -86,6 +86,8 @@
|
||||
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
|
||||
"lang_cards_check": " check",
|
||||
"lang_cards_pip": "PiP mode",
|
||||
"lang_cards_trusted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
|
||||
"lang_cards_untrusted": "Untrusted embed HTML by TheDesk",
|
||||
"lang_details_nodata": "No data",
|
||||
"lang_details_filtered": "Filtered toot",
|
||||
"lang_details_embed": "Embed HTML is cliped.",
|
||||
@@ -175,14 +177,19 @@
|
||||
"lang_parse_direct": "Direct",
|
||||
"lang_parse_clickcopy": "Click to copy text of this toot",
|
||||
"lang_parse_clickcopyurl": "Click to copy URL of this toot",
|
||||
"lang_parse_trans": "Translate to Japanese",
|
||||
"lang_parse_trans": "Translate to English",
|
||||
"lang_parse_replyto": "Reply to this toot",
|
||||
"lang_parse_bt": "Boost this toot",
|
||||
"lang_parse_fav": "Favourite this toot",
|
||||
"lang_parse_quote": "Quote this toot",
|
||||
"lang_parse_del": "Delete this toot",
|
||||
"lang_parse_pin": "Pin this toot",
|
||||
"lang_parse_bookmark": "Bookmark this",
|
||||
"lang_parse_unbookmark": "Unbookmark this",
|
||||
"lang_parse_del": "Delete this",
|
||||
"lang_parse_pin": "Pin this",
|
||||
"lang_parse_unpin": "Unpin this",
|
||||
"lang_parse_link": "Open in a browser",
|
||||
"lang_parse_det": "Details via your main account.",
|
||||
"lang_parse_detail": "Details",
|
||||
"lang_parse_redraft": "Delete & re-draft",
|
||||
"lang_parse_followed": "Followed you",
|
||||
"lang_parse_clientop": "Operation of this client",
|
||||
@@ -198,6 +205,7 @@
|
||||
"lang_parse_thread": "Show thread",
|
||||
"lang_parse_unknown": "Attached file",
|
||||
"lang_parse_nsfw": "sensitive media",
|
||||
"lang_parse_html": "Show embed HTML",
|
||||
"lang_parse_notffilter": "Show this user's notifications",
|
||||
"lang_misskeyparse_renote": "Repost",
|
||||
"lang_misskeyparse_renoteqt": "Renote",
|
||||
|
@@ -127,6 +127,7 @@
|
||||
"full": "URL, text and acct(mention to the user)",
|
||||
"notqt": "Disabled(Hide buttons on TLs)",
|
||||
"apiQuote": "API(only some instances)",
|
||||
"showBookmarkAction": "Show a bookmarking toot button",
|
||||
"main": "Default accounts of actions",
|
||||
"mainwarn": "Main account can be set on Account Manager.",
|
||||
"lastacct": "Account you used recently",
|
||||
|
@@ -125,6 +125,7 @@
|
||||
"integratedTLDes": "Integrated(Local/Home)",
|
||||
"localPlusDes": "LTL+Reply+BT",
|
||||
"notf": "Notifications",
|
||||
"bookmark": "Bookmarks",
|
||||
"showThisTL": "Show this TL:",
|
||||
"webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.",
|
||||
"add": "Add",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user