Compare commits

..

4 Commits

Author SHA1 Message Date
cutls
957ef30fc0 WIP: use-strict 'login' 2019-11-25 00:03:33 +09:00
cutls
bae73521e9 WIP: use-strict 2019-11-24 23:53:35 +09:00
cutls
2583c3b80a Merge branch 'master' into use-strict 2019-11-24 23:35:56 +09:00
cutls
2b6cf60868 WIP: use strict 2019-11-24 22:26:19 +09:00
135 changed files with 876 additions and 1124 deletions

View File

@@ -461,35 +461,6 @@ textarea {
.contributor img {
width: 1rem;
}
.tagComp{
display: grid;
grid-template-columns: 60px 80px 1fr;
grid-template-rows: 1fr 1fr;
grid-template-areas: "svg toot user" "svg toot tag" "svg toots tag";
border-top: dotted 0.5px var(--gray);
padding: 5px
}
.tagCompSvg {
grid-area: svg;
}
.tagCompToot {
grid-area: toot;
text-align: center;
}
.tagCompToots {
grid-area: toots;
text-align: center;
}
.tagCompUser {
grid-area: user;
}
.tagCompTag {
grid-area: tag;
padding-top: 10px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
/*スクロールバー*/
::-webkit-scrollbar {

View File

@@ -79,14 +79,6 @@
padding-right: 5px;
margin-right: 15px;
border-radius: 5px;
height: 35px;
}
.bgReport {
height: 34px;
padding-top: 0.45rem;
text-decoration: underline;
padding-left: 5px;
padding-right: 5px;
}
#spot-box {
display: grid;
@@ -651,8 +643,6 @@ p:not(:last-child) {
margin-top: 3px;
padding: 1px;
border-radius: 3px;
overflow: hidden;
position: relative;
}
.fa-2x > .emoji-img {
width: 36px !important;
@@ -691,28 +681,6 @@ p:not(:last-child) {
.votebtn:hover {
background-color: var(--color);
}
.leadPoll {
position: absolute;
background-color: var(--box);
height: 20px;
border-radius: 3px;
}
.lpAnime {
animation-duration: 1s;
animation-name: fadeInLeft;
}
.onPoll {
position: relative;
}
.maxVoter {
background-color: var(--shared);
}
.ownMark img {
width: 1.2rem !important;
position: relative;
top: -1px;
margin-left: 5px !important;
}
.jump {
display: inline-block;
animation: jump 0.75s linear infinite;

View File

@@ -1,3 +1,4 @@
'use strict'
//このソフトについて
function about() {
postMessage(["sendSinmpleIpc", "about"], "*")

View File

@@ -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",

View File

@@ -1,3 +1,4 @@
'use strict'
/*! Hammer.JS - v2.0.8 - 2016-04-23
* http://hammerjs.github.io/
*

View File

@@ -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 })
}
}
}
}

View File

@@ -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

View File

@@ -1,3 +1,4 @@
'use strict'
var sha256 = function sha256(ascii) {
function rightRotate(value, amount) {
return (value >>> amount) | (value << (32 - amount));

View File

@@ -1,3 +1,4 @@
'use strict'
//バージョンチェッカー
function verck(ver, jp) {
console.log('%c Welcome😊', 'color: red;font-size:200%;')
@@ -21,7 +22,7 @@ function verck(ver, jp) {
if (localStorage.getItem('winstore')) {
$('#releasenote').modal('open')
}
verp = ver.replace('(', '')
var verp = ver.replace('(', '')
verp = verp.replace('.', '-')
verp = verp.replace('.', '-')
verp = verp.replace('[', '-')
@@ -40,15 +41,13 @@ function verck(ver, jp) {
if (!show) {
console.log(show)
if (
date.getFullYear() * 100 + date.getMonth() + 1 >= localStorage.getItem('showSupportMe') ||
date.getMonth() + 1 >= localStorage.getItem('showSupportMe') ||
!localStorage.getItem('showSupportMe')
) {
if (date.getMonth() == 11) {
var yrs = date.getFullYear() + 1
var nextmonth = yrs * 100 + 1
var nextmonth = 1
} else {
var yrs = date.getFullYear()
var nextmonth = yrs * 100 + date.getMonth() + 2
var nextmonth = date.getMonth() + 2
}
if (lang.language != 'ja') {
$('#support-btm-ja').addClass('hide')
@@ -219,7 +218,7 @@ function verck(ver, jp) {
}
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
@@ -347,11 +346,10 @@ function storeDialog(platform, ver) {
localStorage.setItem('winstore', 'localinstall')
}
localStorage.setItem('ver', ver)
show = true
console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;')
$(document).ready(function() {
$('#releasenote').modal('open')
verp = ver.replace('(', '')
var verp = ver.replace('(', '')
verp = verp.replace('.', '-')
verp = verp.replace('.', '-')
verp = verp.replace('[', '-')

View File

@@ -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')
}

View File

@@ -1,3 +1,4 @@
'use strict'
var activity=[
{shortcode:"soccer",css:"4.16667% 10.4167%"},
{shortcode:"basketball",css:"16.6667% 56.25%"},

View File

@@ -1,3 +1,4 @@
'use strict'
//インスタンスリスト
var idata = {
"kirishima.cloud": "instance",

View File

@@ -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
}
//インスタンスティッカー

View File

@@ -1,3 +1,4 @@
'use strict'
//ログアウトします
function logout() {
localStorage.removeItem("acct_" + acct_id + "_at");

View File

@@ -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>

View File

@@ -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], '*')

View File

@@ -1 +1,2 @@
'use strict'
//jQuery読む

View File

@@ -1,3 +1,4 @@
'use strict'
document.title = 'TheDesk'
$.strip_tags = function(str, allowed) {
if (!str) {
@@ -161,8 +162,8 @@ $.mb_substr = function(str, begin, end) {
var splitter = new GraphemeSplitter()
var arr = splitter.splitGraphemes(str)
var newarr = []
for (var i = 0; i < arr.length; i++) {
if (i >= begin && i <= end) {
for(var i = 0; i < arr.length; i++){
if(i >= begin && i <= end){
newarr.push(arr[i])
}
}
@@ -211,62 +212,3 @@ function escapeCsv(str) {
}
return result
}
function statusModel(now) {
if(!now){
var now = new Date().toString()
}
return {
id: '',
created_at: now,
in_reply_to_id: null,
in_reply_to_account_id: null,
sensitive: false,
spoiler_text: '',
visibility: 'public',
language: 'en',
uri: '',
url: '',
replies_count: 0,
reblogs_count: 0,
favourites_count: 0,
favourited: false,
reblogged: false,
muted: false,
bookmarked: false,
pinned: false,
content: '<p><i>No status here</i></p>',
reblog: null,
application: {
name: null,
website: null
},
account: {
id: '',
username: '',
acct: '',
display_name: '',
locked: false,
bot: false,
created_at: now,
note:
'',
url: '',
avatar: '',
avatar_static:
'',
header: '',
header_static: '',
followers_count: 0,
following_count: 0,
statuses_count: 0,
last_status_at: now,
emojis: [],
fields: []
},
media_attachments: [],
mentions: [],
tags: [],
card: null,
poll: null
}
}

View File

@@ -1,3 +1,4 @@
'use strict'
//TL取得
var websocket
function tl(data) {

View File

@@ -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])
}

View File

@@ -1,3 +1,4 @@
'use strict'
/*! https://mths.be/punycode v1.4.1 by @mathias */
;(function(root) {
/** Detect free variables */

View File

@@ -1,3 +1,4 @@
'use strict'
//BBCodeとMarkdownの入力・パーサー
//アカウント変えた時にBBとかMDとか
function mdCheck() {

View File

@@ -1,3 +1,4 @@
'use strict'
//絵文字ピッカー
//最初に読み込む
$('#emoji-before').addClass('disabled')

View File

@@ -1,3 +1,4 @@
'use strict'
//ドラッグ・アンド・ドロップからアップロードまで。uiのimg.jsとは異なります。
var obj = $('body')
var system

View File

@@ -1,3 +1,4 @@
'use strict'
//Renpost
function renote(id, acct_id, remote) {
if ($('#pub_' + id).hasClass('rted')) {

View File

@@ -1,3 +1,4 @@
'use strict'
/*投稿系*/
//投稿
function sec() {
@@ -17,13 +18,6 @@ function post(mode, postvis) {
var acct_id = $('#post-acct-sel').val()
localStorage.setItem('last-use', acct_id)
var domain = localStorage.getItem('domain_' + acct_id)
if ($('#ideKey').val() != '') {
var ideKey = $('#ideKey').val()
} else {
var user = localStorage.getItem('user_' + acct_id)
var ideKey = Math.floor(Date.now() / 1000) + '/TheDesk/' + user + '@' + domain
$('#ideKey').val(ideKey)
}
if (!localStorage.getItem('cw_sentence')) {
var cw_sent = 500
} else {
@@ -159,7 +153,6 @@ function post(mode, postvis) {
httpreq.open('POST', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
httpreq.setRequestHeader('Idempotency-Key', ideKey)
httpreq.responseType = 'json'
httpreq.send(JSON.stringify(toot))
httpreq.onreadystatechange = function() {
@@ -167,8 +160,6 @@ function post(mode, postvis) {
var json = httpreq.response
if (this.status !== 200) {
setLog(start, this.status, json)
} else {
$('#ideKey').val('')
}
var box = localStorage.getItem('box')
if (box == 'yes' || !box) {
@@ -265,7 +256,6 @@ function misskeyPost() {
//クリア(Shift+C)
function clear() {
$('#textarea').val('')
$('#ideKey').val('')
if (localStorage.getItem('stable')) {
$('#textarea').val('#' + localStorage.getItem('stable') + ' ')
}

View File

@@ -1,3 +1,4 @@
'use strict'
/*保護系*/
//画像保護
function nsfw() {

View File

@@ -1,3 +1,4 @@
'use strict'
//お気に入り登録やブースト等、フォローやブロック等
//お気に入り登録
function fav(id, acct_id, remote) {
@@ -141,19 +142,19 @@ function bkm(id, acct_id, tlid) {
json = json.reblog
}
var fav = json.favourites_count
$('[toot-id=' + id + '] .fav_ct').text(fav)
$('[toot-id=' + id + '] .rt_ct').text(json.reblogs_count)
if (flag == 'unbookmark') {
$('.bkmStr_' + id).text(lang.lang_parse_bookmark)
$('.bkm_' + id).removeClass('red-text')
$('[toot-id=' + id + ']').removeClass('bkmed')
} else {
$('.bkmStr_' + id).text(lang.lang_parse_unbookmark)
$('.bkm_' + id).addClass('red-text')
$('[toot-id=' + id + ']').addClass('bkmed')
}
var tlidTar = $(`.bookmark-timeline[data-acct=${acct_id}]`).attr('tlid')
columnReload(tlidTar, 'bookmark')
$('[toot-id=' + id + '] .fav_ct').text(fav)
$('[toot-id=' + id + '] .rt_ct').text(json.reblogs_count)
if (flag == 'unbookmark') {
$('.bkmStr_' + id).text(lang.lang_parse_bookmark)
$('.bkm_' + id).removeClass('red-text')
$('[toot-id=' + id + ']').removeClass('bkmed')
} else {
$('.bkmStr_' + id).text(lang.lang_parse_unbookmark)
$('.bkm_' + id).addClass('red-text')
$('[toot-id=' + id + ']').addClass('bkmed')
}
var tlidTar = $(`.bookmark-timeline[data-acct=${acct_id}]`).attr('tlid')
columnReload(tlidTar,'bookmark')
}
}
}
@@ -389,75 +390,38 @@ function redraft(id, acct_id) {
}).then(result => {
if (result.value) {
show()
var domain = localStorage.getItem('domain_' + acct_id)
var at = localStorage.getItem('acct_' + acct_id + '_at')
if (localStorage.getItem('mode_' + domain) == 'misskey') {
var start = 'https://' + domain + '/api/notes/delete'
var httpreq = new XMLHttpRequest()
httpreq.open('POST', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.responseType = 'json'
httpreq.send(JSON.stringify({ i: at, noteId: id }))
$('[toot-id=' + id + ']').hide()
$('[toot-id=' + id + ']').remove()
} else {
var start = 'https://' + domain + '/api/v1/statuses/' + id
var httpreq = new XMLHttpRequest()
httpreq.open('DELETE', start, true)
httpreq.setRequestHeader('Content-Type', 'application/json')
httpreq.setRequestHeader('Authorization', 'Bearer ' + at)
httpreq.responseType = 'json'
httpreq.send()
}
httpreq.onreadystatechange = function() {
if (httpreq.readyState === 4) {
if (this.status !== 200) {
setLog(start, this.status, this.response)
}
var json = httpreq.response
$('#post-acct-sel').prop('disabled', true)
$('#post-acct-sel').val(acct_id)
$('select').formSelect()
mdCheck()
var medias = $('[toot-id=' + id + ']').attr('data-medias')
var vismode = $('[toot-id=' + id + '] .vis-data').attr('data-vis')
vis(vismode)
$('#media').val(medias)
var ct = medias.split(',').length
$('[toot-id=' + id + '] img.toot-img').each(function(i, elem) {
if (i < ct) {
var url = $(elem).attr('src')
console.log('Play back image data:' + url)
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">')
}
})
localStorage.setItem('nohide', true)
show()
if(json.text){
var html = json.text
} else {
var html = $('[toot-id=' + id + '] .toot').html()
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
html = html.replace(/<br\s?\/?>/, '\n')
html = html.replace(/<p>/, '\n')
html = html.replace(/<\/p>/, '\n')
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
html = $.strip_tags(html)
}
$('#textarea').val(html)
if (json.spoiler_text) {
cw()
$('#cw-text').val(json.spoiler_text)
}
if (json.sensitive){
$('#nsfw').addClass('yellow-text')
$('#nsfw').html('visibility')
$('#nsfw').addClass('nsfw-avail')
}
if(json.in_reply_to_id){
$('#reply').val(json.in_reply_to_id)
}
del(id, acct_id)
$('#post-acct-sel').prop('disabled', true)
$('#post-acct-sel').val(acct_id)
$('select').formSelect()
mdCheck()
var medias = $('[toot-id=' + id + ']').attr('data-medias')
var vismode = $('[toot-id=' + id + '] .vis-data').attr('data-vis')
vis(vismode)
$('#media').val(medias)
var ct = medias.split(',').length
$('[toot-id=' + id + '] img.toot-img').each(function(i, elem) {
if (i < ct) {
var url = $(elem).attr('src')
console.log('Play back image data:' + url)
$('#preview').append('<img src="' + url + '" style="width:50px; max-height:100px;">')
}
})
var html = $('[toot-id=' + id + '] .toot').html()
html = html.replace(/^<p>(.+)<\/p>$/, '$1')
html = html.replace(/<br\s?\/?>/, '\n')
html = html.replace(/<p>/, '\n')
html = html.replace(/<\/p>/, '\n')
html = html.replace(/<img[\s\S]*alt="(.+?)"[\s\S]*?>/g, '$1')
html = $.strip_tags(html)
localStorage.setItem('nohide', true)
show()
$('#textarea').val(html)
var cwtxt = $('[toot-id=' + id + '] .cw_text').html()
if (cwtxt != '') {
cwtxt = $.strip_tags(cwtxt)
cw()
$('#cw-text').val(cwtxt)
}
}
})
@@ -669,10 +633,10 @@ function toggleAction(elem, height) {
cont.removeClass('top')
cont.addClass('bottom')
}
if (elem.parents('.cvo').attr('id') == 'toot-this') {
if(elem.parents('.cvo').attr('id') == 'toot-this'){
console.log($('#toot-this').offset().top, elem.offset().top)
left = $('#toot-this').offset().left + elem.offset().left + 10
top = $('#toot-this').offset().top - $('#toot-this').height() - height + 25
top = $('#toot-this').offset().top - $('#toot-this').height() -height + 25
}
cont.css('top', top + 'px')
cont.css('right', `calc(100vw - ${left}px)`)

View File

@@ -1,3 +1,4 @@
'use strict'
//入力時にハッシュタグと@をサジェスト
var timer = null

View File

@@ -1,3 +1,4 @@
'use strict'
/*リプライ*/
function re(id, ats_cm, acct_id, mode) {
clear()

View File

@@ -1,3 +1,4 @@
'use strict'
//カード処理やメンション、ハッシュタグの別途表示
//全てのTL処理で呼び出し
function additional(acct_id, tlid) {
@@ -37,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)
@@ -172,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) {

View File

@@ -1,3 +1,4 @@
'use strict'
//トゥートの詳細
function details(id, acct_id, tlid, mode) {
if (mode == 'dm') {

View File

@@ -1,3 +1,4 @@
'use strict'
//日付パーサー
function date(str, datetype) {
if (datetype == "relative") {

View File

@@ -1,3 +1,4 @@
'use strict'
//ディレクトリ
//ディレクトリトグル
function dirMenu() {

View File

@@ -1,3 +1,4 @@
'use strict'
/*メディアフィルター機能*/
//各TL上方のMedia[On/Off]
function mediaToggle(tlid) {

View File

@@ -1,3 +1,4 @@
'use strict'
function listMenu() {
$('#left-menu div').removeClass('active')
$('#listMenu').addClass('active')

View File

@@ -1,3 +1,4 @@
'use strict'
function escapeHTMLtemp(str) {
if (!str) {
return "";

View File

@@ -1,3 +1,4 @@
'use strict'
//Integrated TL
async function mixtl(acct_id, tlid, type, delc, voice) {
localStorage.setItem('now', type)

View File

@@ -1,3 +1,4 @@
'use strict'
//通知
//取得+Streaming接続
function notf(acct_id, tlid, sys) {

View File

@@ -1,3 +1,4 @@
'use strict'
//Integrated TL
function mixtl(acct_id, tlid, type, delc, voice) {
localStorage.removeItem('morelock')

View File

@@ -1,3 +1,4 @@
'use strict'
//オブジェクトパーサー(トゥート)
function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
var splitter = new GraphemeSplitter()
@@ -227,9 +228,6 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
}
var noticeavatar = ''
if (mix == 'notf') {
if(!toot.status) {
toot.status = statusModel(toot.created_at)
}
if (gif == 'yes') {
noticeavatar = toot.account.avatar
} else {
@@ -542,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])
@@ -692,9 +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}" data-regTag="${tag.name.toLowerCase()}">#${
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}}',
@@ -1349,28 +1345,15 @@ function client(name) {
//Poll Parser
function pollParse(poll, acct_id) {
var datetype = localStorage.getItem('datetype')
var anime = localStorage.getItem('animation')
if (anime == 'yes' || !anime) {
var lpAnime = 'lpAnime'
} else {
var lpAnime = ''
}
var choices = poll.options
if (poll.own_votes) {
var minechoice = poll.own_votes
} else {
var minechoice = []
}
var refresh = `<a onclick="voteMastodonrefresh('${acct_id}','${poll.id}')" class="pointer">
${lang.lang_manager_refresh}
</a>`
if (poll.voted && poll.own_votes.length) {
if (poll.voted) {
var myvote = lang.lang_parse_voted
if (poll.expired) myvote = myvote + '/' + lang.lang_parse_endedvote
var result_hide = ''
} else if (poll.voted && !poll.own_votes.length) {
var myvote = lang.lang_parse_myvote
if (poll.expired) myvote = myvote + '/' + lang.lang_parse_endedvote
var result_hide = ''
} else if (poll.expired) {
var myvote = lang.lang_parse_endedvote
@@ -1382,69 +1365,49 @@ function pollParse(poll, acct_id) {
myvote +
`<a onclick="showResult('${acct_id}','${poll.id}')" class="pointer">
${lang.lang_parse_unvoted}
</a> `
</a>`
}
var result_hide = 'hide'
}
var ended = date(poll.expires_at, datetype)
var pollHtml = ''
if (choices[0].votes_count === 0 || choices[0].votes_count >0) {
var max = _.maxBy(choices, 'votes_count').votes_count
} else {
var max = 0
}
Object.keys(choices).forEach(function(keyc) {
var choice = choices[keyc]
var voteit = ''
for (var i = 0; i < minechoice.length; i++) {
var me = minechoice[i]
if (me == keyc) {
var voteit = '<span class="ownMark"><img class="emoji" draggable="false" src="https://twemoji.maxcdn.com/v/12.1.4/72x72/2705.png"></span>'
var voteit = ''
break
}
}
if (!poll.voted && !poll.expired) {
var votesel =
"voteSelMastodon('" + acct_id + "','" + poll.id + "'," + keyc + ',' + poll.multiple + ')'
var voteclass = 'pointer'
var voteclass = 'pointer waves-effect waves-light'
} else {
var votesel = ''
var voteclass = ''
}
var per = Math.ceil((choice.votes_count / poll.votes_count) * 100)
if(!per) per = 0
if (max == choice.votes_count) {
var addPoll = 'maxVoter'
} else {
var addPoll = ''
}
var openData = ''
if (choice.votes_count !== null) {
openData = `<span style="float: right">${choice.votes_count}<span class="sml">(${per}%)</span></span>`
} else {
openData = `<span style="float: right">?<span class="sml">(-%)</span></span>`
}
pollHtml =
pollHtml +
`<div class="${voteclass} vote vote_${acct_id}_${poll.id}_${keyc}" onclick="${votesel}">
<span class="vote_${acct_id}_${poll.id}_result leadPoll ${result_hide} ${addPoll} ${lpAnime}" style="width: ${per}%"></span>
<span class="onPoll">${escapeHTML(choice.title)}${voteit}</span>
<span class="vote_${acct_id}_${poll.id}_result ${result_hide} onPoll">
${openData}
${escapeHTML(choice.title)}
<span class="vote_${acct_id}_${poll.id}_result ${result_hide}">
(${choice.votes_count})
</span>
${voteit}
</div>`
})
if (poll.expired) {
refresh = ''
}
pollHtml = `<div class="vote_${acct_id}_${poll.id}">
${pollHtml}${myvote}
${refresh}
<a onclick="voteMastodonrefresh('${acct_id}','${poll.id}')" class="pointer">
${lang.lang_manager_refresh}
</a>
<span class="cbadge cbadge-hover" title="${date(poll.expires_at, 'absolute')}">
<i class="far fa-calendar-times"></i>
${ended}
</span>${poll.voters_count} ${lang.lang_parse_people}
</span>
</div>`
return pollHtml
}

View File

@@ -1,3 +1,4 @@
'use strict'
//アンケートのトグル
function pollToggle() {
if ($('#poll').hasClass('hide')) {

View File

@@ -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, '')

View File

@@ -1,3 +1,4 @@
'use strict'
//検索
//検索ボックストグル
function searchMenu() {
@@ -216,9 +217,6 @@ function moreTs(tlid, q) {
function graphDraw(tag, acct_id) {
var tags = ''
var his = tag.history
return graphDrawCore(his, tag)
}
function graphDrawCore(his, tag){
var max = Math.max.apply(null, [
his[0].uses,
his[1].uses,
@@ -235,32 +233,36 @@ function graphDrawCore(his, tag){
var two = 50 - (his[2].uses / max) * 50
var one = 50 - (his[1].uses / max) * 50
var zero = 50 - (his[0].uses / max) * 50
return `<div class="tagComp">
<div class="tagCompSvg">
<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">
<g>
<path d="M0,${six} L10,${five} 20,${four} 30,${three} 40,${two} 50,${one} 60,${zero} 61,61 0,61"
style="stroke: #0f8c0c;fill: rgba(13,113,19,.25); stroke-width: 1;">
</path>
</g>
</svg>
</div>
<div class="tagCompToot">
<span style="font-size:200%">${his[0].uses}</span>
</div>
<div class="tagCompToots">
toot
</div>
<div class="tagCompTag">
<a onclick="tl('tag','${escapeHTML(tag.name)}','${acct_id}','add')" class="pointer" title="${escapeHTML(tag.name)}">
#${escapeHTML(tag.name)}
</a>
</div>
<div class="tagCompUser">
${his[0].accounts}
${lang.lang_src_people}
</div>
</div>`
if (max === 0) {
tags =
`<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50"></svg>
<span style="font-size:200%">${his[0].uses}</span>
toot(s)&nbsp;
<a onclick=\"tl('tag','${escapeHTML(tag.name)}','${acct_id}','add')" class="pointer">
#${escapeHTML(tag.name)}
</a>&nbsp;` +
his[0].accounts +
lang.lang_src_people
} else {
tags =
`<br><br>
<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">
<g>
<path d="M0,${six} L10,${five} 20,${four} 30,${three} 40,${two} 50,${one} 60,${zero}"
style="stroke: #0f8c0c;fill: rgba(13,113,19,.25); stroke-width: 1;">
</path>
</g>
</svg>
<span style="font-size:200%">${his[0].uses}</span>
toot&nbsp;
<a onclick="tl('tag','${escapeHTML(tag.name)}','${acct_id}','add')" class="pointer">
#${escapeHTML(tag.name)}
</a>&nbsp;` +
his[0].accounts +
lang.lang_src_people
}
return tags
}
/*
<svg version="1.1" viewbox="0 0 50 300" width="100%" height="50">
@@ -302,7 +304,38 @@ function trend() {
Object.keys(json).forEach(function(keye) {
var tag = json[keye]
var his = tag.history
tags = graphDrawCore(his, tag)
var max = Math.max.apply(null, [
his[0].uses,
his[1].uses,
his[2].uses,
his[3].uses,
his[4].uses,
his[5].uses,
his[6].uses
])
var six = 50 - (his[6].uses / max) * 50
var five = 50 - (his[5].uses / max) * 50
var four = 50 - (his[4].uses / max) * 50
var three = 50 - (his[3].uses / max) * 50
var two = 50 - (his[2].uses / max) * 50
var one = 50 - (his[1].uses / max) * 50
var zero = 50 - (his[0].uses / max) * 50
tags =
`<svg version="1.1" viewbox="0 0 60 50" width="60" height="50">
<g>
<path d="M0,${six} L10,${five} 20,${four} 30,${three} 40,${two} 50,${one} 60,${zero}"
style="stroke: #0f8c0c;fill: rgba(13,113,19,.25); stroke-width: 1;">
</path>
</g>
</svg>
<span style="font-size:200%">${his[0].uses}</span>
toot&nbsp;
<a onclick="tl('tag','${escapeHTML(tag.name)}','${acct_id}','add')" class="pointer">
#${escapeHTML(tag.name)}
</a>&nbsp;` +
his[0].accounts +
lang.lang_src_people +
'<br><br>'
$('#src-contents').append(tags)
})

View File

@@ -1,3 +1,4 @@
'use strict'
//タグ表示
if (location.search) {
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/)

View File

@@ -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()

View File

@@ -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

View File

@@ -1,3 +1,4 @@
'use strict'
//レイアウトの設定
var websocketOld = []
@@ -706,7 +707,7 @@ function setToggleTag(tlid) {
}
}
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>

View File

@@ -1,3 +1,4 @@
'use strict'
function menu() {
localStorage.setItem("menu-done", true);
$("#fukidashi").addClass("hide")

View File

@@ -1,3 +1,4 @@
'use strict'
function pip(id) {
$("#pip-content").html($("[toot-id=" + id + "] .additional").html());
$("#pip").removeClass("hide");

View File

@@ -1,3 +1,4 @@
'use strict'
/*ささやきボックス(Cr民並感)*/
//✕隠す
function hide() {

View File

@@ -1,3 +1,4 @@
'use strict'
var r = document.getElementById("radio");
function Rtoggle() {
if ($("#radio").hasClass("play")) {

View File

@@ -1,3 +1,4 @@
'use strict'
//スクロールで続きを読む
function scrollevent() {
$('.tl-box').scroll(function() {

View File

@@ -1,3 +1,4 @@
'use strict'
//設定(setting.html)で読む
var envView = new Vue({
el: "#envView",

View File

@@ -1,3 +1,4 @@
'use strict'
//ソートデータ読み込み
function sortLoad () {
$("#sort").html("");

View File

@@ -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");

View File

@@ -1,3 +1,4 @@
'use strict'
//テーマ適用
function themes(theme) {
if (!theme) {

View File

@@ -1,3 +1,4 @@
'use strict'
//左下のメッセージ
var todcTrigger = null
function todo(mes) {
@@ -128,7 +129,7 @@ function trendTagonTip() {
})
}
//Spotify
spotint = null
var spotint = null
function spotifytips() {
if (spotint) clearInterval(spotint)
var start =

View File

@@ -1,3 +1,4 @@
'use strict'
//ユーザーデータ表示
//タイムライン
function utl(user, more, acct_id) {

View File

@@ -1,3 +1,4 @@
'use strict'
//プロフ編集
//文字系
function profedit() {

View File

@@ -1,3 +1,4 @@
'use strict'
//ユーザーデータ表示
localStorage.removeItem("history");
//コード受信

View File

@@ -1,6 +1,6 @@
{
"name": "thedesk",
"version": "20.0.6",
"version": "20.0.4",
"description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk",
"main": "main.js",
@@ -52,16 +52,14 @@
"dependencies": {
"@fortawesome/fontawesome-free": "^5.11.2",
"electron-dl": "^1.14.0",
"jimp": "^0.9.1",
"jimp": "^0.8.4",
"jquery": "^3.4.1",
"jquery-ui-dist": "^1.12.1",
"materialize-css": "git://github.com/cutls/materialize",
"json5": "^2.1.1",
"lodash": "^4.17.15",
"sumchecker": "^3.0.0",
"sweetalert2": "^9.4.0",
"sumchecker": "^3.0.1",
"sweetalert2": "^9.4.0",
"sweetalert2": "^9.3.16",
"vue": "^2.6.10"
},
"optionalDependencies": {

View File

@@ -258,7 +258,6 @@
</ul>
<!--hidden area-->
<input type="hidden" id="reply">
<input type="hidden" id="ideKey">
<input type="hidden" id="quote">
<input type="hidden" id="media">
<!--END hidden area-->
@@ -762,16 +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-6_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.6 (Kawaii)</h5>
支援ダイアログが消えない
<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>
・翻訳が上手く表示されていなかった
<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>
・トゥートを外部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>
@@ -1095,9 +1109,6 @@
</a>
<span id="fukidashi">@@hereAddColumns@@</span>
</div>
<a href="https://thedesk.top/bugs/?lang=@@lang@@" target="_blank" class="waves-effect bgReport" draggable="false" title="Feeling unlucky">
@@foundBug@@
</a>
</div>
</div>
<div>

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -125,7 +125,7 @@
"integratedTLDes": "Интегриране (Местно/Начало)",
"localPlusDes": "LTL+Отговор+BT",
"notf": "Известия",
"bookmark": "Отметки",
"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": "Добави",
@@ -168,7 +168,6 @@
"contactwithlog": "Ако ми кажете за грешки (нещо не работи или подобно) с този дневник, мога по-лесно да открия какво не е наред.",
"about": "За TheDesk",
"hereAddColumns": "<- Добави ТЛ",
"foundBug": "I found a bug",
"show": "Покажи",
"directory": "Директория",
"active": "Наскоро активен",
@@ -179,5 +178,5 @@
"acctManDesc": "Добавете още акаунти и излезте от тях.",
"settingDesc": "Много. много предпочитания са тук. Няма да можете да ги проверите всички!",
"nanoDescPlus": "Клиент мини прозорец (експериментално)",
"listDesc": "Всички настройки на TheDesk и Mastodon, като <b> добавяне и сортиране на колони </b>, <b> списък и проверка на филтрите </b>."
"listDesc": "All daily TheDesk and Mastodon tuning like <b>add and sort columns</b>, <b>list and filter check</b>."
}

View File

@@ -21,17 +21,17 @@
"lang_time_suffixAgo": null,
"lang_time_suffixFromNow": null,
"lang_time_inPast": null,
"lang_time_seconds": "%d сек.",
"lang_time_minute": "1 мин.",
"lang_time_minutes": "%d мин.",
"lang_time_hour": "1 ч",
"lang_time_hours": "%d ч",
"lang_time_day": "1 ден",
"lang_time_days": "%d дни",
"lang_time_month": "1 месец",
"lang_time_months": "%d месеца",
"lang_time_year": "г.",
"lang_time_years": "%d г.",
"lang_time_seconds": "%d s",
"lang_time_minute": "1 m",
"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_year": "y",
"lang_time_years": "%d y",
"lang_version_usever": "Не е намерена актуализация({{ver}})",
"lang_version_skipver": "Актуализацията бе игнорирана.",
"lang_version_platform": "Искате ли автоматични актуализации? (За потребителите инсталирали от Microsoft Store, изберете „Не“)",
@@ -52,13 +52,13 @@
"lang_emoji_get": "Вземи емотикони",
"lang_emoji_custom": "Персонализирани емотикони",
"lang_defaultemojis_text": "Още емотикони {{cat}}",
"lang_emoji_uncat": "Без категория",
"lang_emoji_uncat": "Uncategorized",
"lang_postimg_previewdis": "не може да се визуализира",
"lang_postimg_aftupload": "Не можете да променяте профилите след качването.",
"lang_postimg_failupload": "Неуспешно",
"lang_postimg_delete": "Кликнете за да добавите описание, щракнете с десния бутон за да го изтриете",
"lang_postimg_desc": "Описание",
"lang_postimg_leadContext": "щракнете с десния бутон върху миниатюрата за да изтриете това",
"lang_postimg_failupload": "Failed",
"lang_postimg_delete": "Click to add description, right-click to delete this",
"lang_postimg_desc": "Description",
"lang_postimg_leadContext": "right-click the thumbnail to delete this",
"lang_post_tagTL": "Тази раздумка не съдържа маркер по подразбиране. Тази раздумка няма да се показва в локалния TL. Продължавате?",
"lang_post_tagVis": "Тази раздумка (не е \"публична\") не е показана с този етикет в ТЛ.",
"lang_post_cwtitle": "Авто CW Сигнал",
@@ -137,7 +137,6 @@
"lang_layout_deleteColumn": "Премахване на тази колона",
"lang_layout_deleteColumnDesc": "Премахване на тази колона",
"lang_layout_unread": "Unread",
"lang_layout_tagManager": "Tag timeline manager",
"lang_sort_gothis": "Отидете в тази колона",
"lang_sort_remthis": "Премахване на тази колона",
"lang_spotify_img": "Attach an album artwork",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "NSFW media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -200,11 +199,9 @@
"lang_parse_clientmute": "ztlumena",
"lang_parse_mute": " bude ztlumena. To můžete odstranit v nastavení.",
"lang_parse_voted": "Voted",
"lang_parse_myvote": "(My own poll)",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "NSFW media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "Wenn Sie mir mit diesem Log Fehler (Funktionsunfähigkeit oder ähnliches) zeigen, kann ich leichter erkennen, was falsch ist.",
"about": "Über TheDesk",
"hereAddColumns": "<- Neuer Verlauf",
"foundBug": "I found a bug",
"show": "Zeige",
"directory": "Verzeichnis",
"active": "Kürzlich aktiv",

View File

@@ -24,10 +24,10 @@
"lang_time_seconds": "%d s",
"lang_time_minute": "1 Min.",
"lang_time_minutes": "%d m",
"lang_time_hour": "1 S",
"lang_time_hour": "1 h",
"lang_time_hours": "%d h",
"lang_time_day": "1 t",
"lang_time_days": "%d t",
"lang_time_day": "1 d",
"lang_time_days": "%d d",
"lang_time_month": "1 Monat",
"lang_time_months": "%d Monate",
"lang_time_year": "y",
@@ -137,7 +137,6 @@
"lang_layout_deleteColumn": "Diese Spalte löschen",
"lang_layout_deleteColumnDesc": "Diese Spalte löschen",
"lang_layout_unread": "ungelesen",
"lang_layout_tagManager": "Tag timeline manager",
"lang_sort_gothis": "Gehe zu dieser Spalte",
"lang_sort_remthis": "Diese Spalte löschen",
"lang_spotify_img": "Albumcover anhängen",
@@ -183,7 +182,7 @@
"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": "Lesezeichen hinzufügen",
"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",
@@ -200,11 +199,9 @@
"lang_parse_clientmute": "Stumm",
"lang_parse_mute": " wird stumm gemacht. Kann in den Einstellungen wieder entfernt werden.",
"lang_parse_voted": "Abgestimmt",
"lang_parse_myvote": "(My own poll)",
"lang_parse_vote": "Abstimmen",
"lang_parse_unvoted": "Ergebnis ohne Abstimmung anzeigen",
"lang_parse_endedvote": "Abgelaufen",
"lang_parse_people": "people",
"lang_parse_thread": "Konversation anzeigen",
"lang_parse_unknown": "Angehängte Datei",
"lang_parse_nsfw": "NSFW Medien",
@@ -262,6 +259,6 @@
"lang_setting_notftestprof": "Ihr Symbol wird angezeigt.",
"lang_setting_exportwarn": "Nur wichtige Daten werden exportiert. Sie müssen diese Daten sichern.",
"lang_setting_importwarn": "Alle Daten werden gelöscht.",
"lang_setting_noupd": "Keine Updates verfügbar",
"lang_setting_noupd": "No available update",
"lang_setting_thisisbeta": "This is beta version. You have to update manually."
}

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "crwdns4378:0crwdne4378:0",
"about": "crwdns3384:0crwdne3384:0",
"hereAddColumns": "crwdns3386:0crwdne3386:0",
"foundBug": "crwdns4431:0crwdne4431:0",
"show": "crwdns3388:0crwdne3388:0",
"directory": "crwdns3390:0crwdne3390:0",
"active": "crwdns3392:0crwdne3392:0",

View File

@@ -137,7 +137,6 @@
"lang_layout_deleteColumn": "crwdns3670:0crwdne3670:0",
"lang_layout_deleteColumnDesc": "crwdns3672:0crwdne3672:0",
"lang_layout_unread": "crwdns3674:0crwdne3674:0",
"lang_layout_tagManager": "crwdns4411:0crwdne4411:0",
"lang_sort_gothis": "crwdns3676:0crwdne3676:0",
"lang_sort_remthis": "crwdns3678:0crwdne3678:0",
"lang_spotify_img": "crwdns3680:0crwdne3680:0",
@@ -200,11 +199,9 @@
"lang_parse_clientmute": "crwdns3784:0crwdne3784:0",
"lang_parse_mute": "crwdns3786:0crwdne3786:0",
"lang_parse_voted": "crwdns3788:0crwdne3788:0",
"lang_parse_myvote": "crwdns4415:0crwdne4415:0",
"lang_parse_vote": "crwdns3790:0crwdne3790:0",
"lang_parse_unvoted": "crwdns3792:0crwdne3792:0",
"lang_parse_endedvote": "crwdns3794:0crwdne3794:0",
"lang_parse_people": "crwdns4413:0crwdne4413:0",
"lang_parse_thread": "crwdns3796:0crwdne3796:0",
"lang_parse_unknown": "crwdns3798:0crwdne3798:0",
"lang_parse_nsfw": "crwdns3800:0crwdne3800:0",

View File

@@ -168,7 +168,6 @@
"contactwithlog":"If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about":"About TheDesk",
"hereAddColumns":"<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -199,12 +199,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -125,7 +125,7 @@
"integratedTLDes": "Integrado (local/principal)",
"localPlusDes": "Local+Respuesta+retoot",
"notf": "Notificaciones",
"bookmark": "Marcadores",
"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",
@@ -163,12 +163,11 @@
"clockTips": "Reloj",
"ramTips": "Estado de RAM",
"changeTips": "Cambiar atajos",
"helpAndLogs": "Ayuda y registro",
"helpAndLogs": "Help & Log",
"help": "Ayuda",
"contactwithlog": "Si me comentás de estos errores (algo que funcione mal o que no funcione en absoluto) con este registro, puedo detectar lo que está mal más fácilmente.",
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "Acerca de TheDesk",
"hereAddColumns": "« Agregar línea temporal",
"foundBug": "I found a bug",
"show": "Mostrar",
"directory": "Directorio",
"active": "Recientemente activo",

View File

@@ -86,8 +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": "HTML insertado de confianza por TheDesk (Twitter, nicovideo, YouTube, Spotify, twitcasing)",
"lang_cards_untrusted": "HTML insertado no confiable por 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": "Sin datos",
"lang_details_filtered": "Toot filtrado",
"lang_details_embed": "El código HTML de inserción se copió al portapapeles.",
@@ -116,7 +116,7 @@
"lang_tl_postmarkers_title": "Procesando…",
"lang_tl_postmarkers": "Datos de marcadores POST. Por favor, esperá.",
"lang_img_DLDone": "Descargado:",
"lang_img_copyDone": "Copiado: dirección web de esta imagen",
"lang_img_copyDone": "Copied: URL of this image",
"lang_layout_gotop": "Ir al comienzo de esta columna. Cuando el ícono está rojo, esta columna no se puede conectar a la API del streaming. En ese caso, por favor, refrescá.",
"lang_layout_thisacct": "{{notf}} de esta cuenta",
"lang_layout_delthis": "Quitar esta columna",
@@ -137,7 +137,6 @@
"lang_layout_deleteColumn": "Eliminar esta columna",
"lang_layout_deleteColumnDesc": "Eliminar esta columna",
"lang_layout_unread": "Sin leer",
"lang_layout_tagManager": "Tag timeline manager",
"lang_sort_gothis": "Ir a esta columna",
"lang_sort_remthis": "Eliminar esta columna",
"lang_spotify_img": "Adjuntar la tapa del álbum",
@@ -183,14 +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": "Marcar esto",
"lang_parse_unbookmark": "Desmarcar esto",
"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": "Desanclar esto",
"lang_parse_link": "Abrir en navegador web",
"lang_parse_unpin": "Unpin this",
"lang_parse_link": "Open in a browser",
"lang_parse_det": "Detalles vía tu cuenta principal.",
"lang_parse_detail": "Detalles",
"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",
@@ -200,15 +199,13 @@
"lang_parse_clientmute": "silenciar",
"lang_parse_mute": " será silenciado. Lo podés quitar en la configuración.",
"lang_parse_voted": "Votado",
"lang_parse_myvote": "(My own poll)",
"lang_parse_vote": "Votar",
"lang_parse_unvoted": "Mostrar el resultado sin votar",
"lang_parse_endedvote": "Venció",
"lang_parse_people": "people",
"lang_parse_thread": "Mostrar hilo",
"lang_parse_unknown": "Archivo adjunto",
"lang_parse_nsfw": "medios sensibles",
"lang_parse_html": "Mostrar HTML insertado",
"lang_parse_html": "Show embed HTML",
"lang_parse_notffilter": "Mostrar notificaciones de este usuario",
"lang_misskeyparse_renote": "Republicar",
"lang_misskeyparse_renoteqt": "Renovar",

View File

@@ -31,8 +31,8 @@
"fontsize": "Tamaño de tipografía",
"savefolder": "Carpeta para guardar",
"savefolderwarn": "TheDesk usa esta configuración para guardar imágenes en general y capturas de pantallas.",
"useragent": "Cadena de agente de usuario",
"useragentWarn": "Reiniciar cuando se cambie",
"useragent": "User agent",
"useragentWarn": "Restart when changed",
"absolute": "valor absoluto",
"themeSel": "Seleccionar tema",
"customtheme": "Editar y agregar temas personalizados",
@@ -98,8 +98,8 @@
"animation": "Animación de líneas temporales",
"markers": "Marcadores (marcar como leído) en línea temporal principal y notificaciones",
"markerswarn": "Mastodon 3.0~. Compartido en interface web y clientes de terceros soportados.",
"remote_img": "Obtener imágenes del servidor remoto",
"remote_imgWarn": "Todas las previsualizaciones se obtienen de tu servidor de caché conectado.",
"remote_img": "Get images from the remote server",
"remote_imgWarn": "All previews are got from your loginned cache server.",
"replySound": "Sonido (respuesta)",
"favSound": "Sonido (marcado como favorito)",
"btSound": "Sonido (retoot)",
@@ -127,7 +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": "Mostrar un botón de marcador",
"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",

View File

@@ -4,7 +4,7 @@
"portable": "Compilación portátil",
"installer": "Compilación de instalación",
"linux": "zip",
"linuxdeb": "deb (Recomendado para Debian y Ubuntu)",
"linuxdeb": "deb(Recommended on buntu, Debian)",
"linuxsnap": "snap",
"snap": "La compilación Snap puede encontrarse en Snapcraft",
"sureupd": "¡Podrías perderte una experiencia copada!",
@@ -15,5 +15,5 @@
"problem2": "Por favor, descargá desde <a href=\"https://thedesk.top/en/\">el sitio web oficial</a>.",
"continue": "Continuar con la actualización",
"dlnow": "Descargando…",
"checkWhatIsNew": "¿Qué hay de nuevo?"
"checkWhatIsNew": "What is new?"
}

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -168,7 +168,6 @@
"contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.",
"about": "About TheDesk",
"hereAddColumns": "<- Add TL",
"foundBug": "I found a bug",
"show": "Show",
"directory": "Directory",
"active": "Recently active",

View File

@@ -137,7 +137,6 @@
"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",
@@ -199,12 +198,10 @@
"lang_parse_clientemp": "emphasized(/not emphasized)",
"lang_parse_clientmute": "muted",
"lang_parse_mute": " will be muted. You can remove on preferences.",
"lang_parse_voted": "(Voted)",
"lang_parse_myvote": "(My own poll)",
"lang_parse_voted": "Voted",
"lang_parse_vote": "Vote",
"lang_parse_unvoted": "Show the result without voting",
"lang_parse_endedvote": "Expired",
"lang_parse_people": "people",
"lang_parse_thread": "Show thread",
"lang_parse_unknown": "Attached file",
"lang_parse_nsfw": "sensitive media",

View File

@@ -125,7 +125,6 @@
"integratedTLDes":"統合(ローカルとホーム)",
"localPlusDes":"統合(LTL+BT+返信)",
"notf":"通知",
"bookmark": "ブックマーク",
"showThisTL":"表示するタイムライン",
"webviewWarn":"TweetDeckを出すで。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>)。キーボードショートカットと干渉しはるから、文字入れる時はカラムの「WebView優先」にチェック入れてからしてな。",
"add":"追加",
@@ -168,7 +167,6 @@
"contactwithlog":"なんか知らんけど動かんとかそういうのを開発者のお兄さんお姉さんに言うときは下のログのそこらへんの時間に起きたなぁってのを拾って連絡するとなんかの助けになるかも知れん。ついでやけどこのウィンドウ全体を横に引き伸ばしたらいい感じに見れるで",
"about":"このソフトについて",
"hereAddColumns":"←ここからTL追加",
"foundBug": "バグあるんやけど",
"show": "表示",
"directory": "ディレクトリ",
"active": "最新活動順",

Some files were not shown because too many files have changed in this diff Show More