Flexible font-size

This commit is contained in:
cutls 2020-05-23 13:54:51 +09:00
parent cf6e5b5dd5
commit da197340ec
13 changed files with 252 additions and 241 deletions

View File

@ -21,10 +21,12 @@ html {
.action-menu-item:hover {
filter: brightness(80%) !important;
}
.btn {
.btn, .btn-flat {
font-size: 1.1rem;
margin: 0.4rem;
text-transform: none;
height: 2.76rem;
line-height: 2.76rem;
}
.markdown {
display: none;

View File

@ -770,6 +770,9 @@ p:not(:last-child) {
width: 100%;
height: 100%;
}
.fav_ct, .rt_ct, .rep_ct {
font-size: 1.1rem;
}
.shared.selectedToot {
background-color: var(--selectedWithShare);
}

View File

@ -51,7 +51,7 @@ function defaultEmoji(target) {
emojis +
`${def}
<span style="
width: 1.538rem; height: 1.538rem; display: inline-block; background-image: url('../../img/sheet.png'); background-size: 4900%;
width: 20px; height: 20px; display: inline-block; background-image: url('../../img/sheet.png'); background-size: 4900%;
background-position:${emoji['css']};"></span>
</a>`
})
@ -95,7 +95,7 @@ function faicon() {
emojis +
'<a onclick="emojiInsert(\'[faicon]' +
eje +
'[/faicon]\')" class="pointer white-text" style="font-size:1.8rem"><i class="fa ' +
'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa ' +
emoji +
'"></i></a>'
})

View File

@ -56,31 +56,31 @@ function emojiGet(parse, started) {
fetch(start, {
method: 'GET',
headers: {
'content-type': 'application/json',
},
'content-type': 'application/json'
}
})
.then(function (response) {
.then(function(response) {
if (!response.ok) {
response.text().then(function (text) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function (error) {
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function (json) {
.then(function(json) {
if (parse == 'true') {
$('#emoji-list').text('Parsing...')
var md = {
categorized: {},
uncategorized: [],
uncategorized: []
}
var if_categorized = false
Object.keys(json).forEach(function (key) {
Object.keys(json).forEach(function(key) {
var emoji = json[key]
if (emoji.visible_in_picker) {
var listed = true
@ -95,26 +95,26 @@ function emojiGet(parse, started) {
md['categorized'][cat].push({
shortcode: emoji.shortcode,
url: emoji.url,
listed: listed,
listed: listed
})
if_categorized = true
} else {
md['uncategorized'].push({
shortcode: emoji.shortcode,
url: emoji.url,
listed: listed,
listed: listed
})
}
})
console.log(md)
//絵文字をマストドン公式と同順にソート
md['uncategorized'].sort(function (a, b) {
md['uncategorized'].sort(function(a, b) {
if (a.shortcode < b.shortcode) return -1
if (a.shortcode > b.shortcode) return 1
return 0
})
Object.keys(md['categorized']).forEach(function (key) {
md['categorized'][key].sort(function (a, b) {
Object.keys(md['categorized']).forEach(function(key) {
md['categorized'][key].sort(function(a, b) {
if (a.shortcode < b.shortcode) return -1
if (a.shortcode > b.shortcode) return 1
return 0
@ -136,23 +136,23 @@ function emojiGet(parse, started) {
fetch(start, {
method: 'POST',
headers: {
'content-type': 'application/json',
},
'content-type': 'application/json'
}
})
.then(function (response) {
.then(function(response) {
if (!response.ok) {
response.text().then(function (text) {
response.text().then(function(text) {
setLog(response.url, response.status, text)
})
}
return response.json()
})
.catch(function (error) {
.catch(function(error) {
todo(error)
setLog(start, 'JSON', error)
console.error(error)
})
.then(function (json) {
.then(function(json) {
if (json.enableEmojiReaction) {
localStorage.setItem('emojiReaction_' + acct_id, 'true')
} else {
@ -160,19 +160,19 @@ function emojiGet(parse, started) {
}
var emojis = json.emojis
var md = { uncategorized: [] }
Object.keys(emojis).forEach(function (key) {
Object.keys(emojis).forEach(function(key) {
var emoji = emojis[key]
md['uncategorized'].push({
shortcode: emoji.name,
url: emoji.url,
listed: true,
listed: true
})
})
md['if_categorized'] = false
if (parse == 'true') {
$('#emoji-list').text('Parsing...')
//絵文字をマストドン公式と同順にソート
md['uncategorized'].sort(function (a, b) {
md['uncategorized'].sort(function(a, b) {
if (a.shortcode < b.shortcode) return -1
if (a.shortcode > b.shortcode) return 1
return 0
@ -193,12 +193,15 @@ function emojiGet(parse, started) {
function emojiList(target, reaction) {
$('#now-emoji').text(lang.lang_emoji_custom)
var acct_id = $('#post-acct-sel').val()
if (reaction && $('#media').val() == 'misskey') {
if(reaction && $('#media').val() == 'misskey') {
var misskeyReact = true
} else {
var misskeyReact = false
}
if (misskeyReact && localStorage.getItem('emojiReaction_' + acct_id) != 'true') {
if (
misskeyReact &&
localStorage.getItem('emojiReaction_' + acct_id) != 'true'
) {
console.error('Disabled')
clear()
hide()
@ -222,18 +225,18 @@ function emojiList(target, reaction) {
var obj = [
{
divider: true,
cat: lang.lang_emoji_uncat,
},
cat: lang.lang_emoji_uncat
}
]
var cats = raw['uncategorized']
obj = obj.concat(cats)
Object.keys(raw['categorized']).forEach(function (key) {
Object.keys(raw['categorized']).forEach(function(key) {
var cats = raw['categorized'][key]
obj = obj.concat([
{
divider: true,
cat: key,
},
cat: key
}
])
obj = obj.concat(cats)
})
@ -272,12 +275,14 @@ function emojiList(target, reaction) {
html = html + '<p style="margin-bottom:0">' + emoji.cat + '</p>'
} else {
if (emoji.listed) {
if (misskeyReact) {
if(misskeyReact) {
var shortcode = `:${emoji.shortcode}:`
} else {
var shortcode = emoji.shortcode
}
html = html + `<a onclick="emojiReaction('${shortcode}')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
html =
html +
`<a onclick="emojiReaction('${shortcode}')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
}
}
} else {
@ -285,7 +290,9 @@ function emojiList(target, reaction) {
html = html + '<p style="margin-bottom:0">' + emoji.cat + '</p>'
} else {
if (emoji.listed) {
html = html + `<a onclick="emojiInsert(':${emoji.shortcode}:')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
html =
html +
`<a onclick="emojiInsert(':${emoji.shortcode}:')" class="pointer"><img src="${emoji.url}" width="20" title="${emoji.shortcode}"></a>`
}
}
}
@ -303,7 +310,7 @@ function emojiInsert(code, del) {
var blankBefore = ' '
var blankAfter = ' '
}
var textarea = document.getElementById('textarea')
var textarea = document.querySelector('#textarea')
var sentence = textarea.value
var len = sentence.length
var pos = textarea.selectionStart
@ -327,11 +334,8 @@ function emojiInsert(code, del) {
} else {
var word = blankBefore + code + blankAfter
}
var go = pos - delLen + word.length
sentence = before + word + after
textarea.value = sentence
textarea.focus()
textarea.setSelectionRange(go, go)
}
//改行挿入
function brInsert(code) {

View File

@ -430,7 +430,7 @@ function redraft(id, acct_id) {
$('#preview').append(
'<img src="' +
json.media_attachments[i].preview_url +
'" style="width:3.8rem; max-height:7.7rem;">'
'" style="width:50px; max-height:100px;">'
)
} else {
break

View File

@ -186,7 +186,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
noticeavatar = '<a onclick="udg(\'' + toot.user.id +
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg notf-icon">' +
'<img src="' + noticeavatar +
'" class="prof-img prof-img-sml" user="' + toot.user.username +
'" width="20" class="prof-img" user="' + toot.user.username +
'"></a>';
if (toot.type == "reply") {
var what = lang.lang_parse_mentioned;
@ -773,7 +773,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
'<div class="area-icon"><a onclick="udg(\'' + toot.user.id +
'\',' + acct_id + ');" user="' + toot.user.username + '" class="udg">' +
'<img src="' + avatar +
'" class="prof-img" user="' + toot.user.username +
'" width="40" class="prof-img" user="' + toot.user.username +
'" onerror="this.src=\'../../img/loading.svg\'"></a></div>' +
'<div class="area-display_name"><div class="flex-name"><span class="user">' +
dis_name +

View File

@ -241,7 +241,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
noticeavatar = toot.account.avatar_static
}
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="udg">
<img draggable="false" src="${noticeavatar}" class="notf-icon prof-img prof-img-sml" user="${toot.account.acct}" alt="">
<img draggable="false" src="${noticeavatar}" width="20" class="notf-icon prof-img" user="${toot.account.acct}" alt="">
</a>`
if (toot.type == 'mention') {
var what = lang.lang_parse_mentioned
@ -394,7 +394,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
noticeavatar = toot.account.avatar_static
}
noticeavatar = `<a onclick="udg('${toot.account.id}','${acct_id}');" user="${toot.account.acct}" class="notf-icon udg" aria-hidden="true">
<img draggable="false" src="${noticeavatar}" class="prof-img prof-img-sml"
<img draggable="false" src="${noticeavatar}" width="20" class="prof-img"
user="${toot.account.acct}" onerror="this.src=\'../../img/loading.svg\'">
</a>`
var rebtxt = lang.lang_parse_btedsimple
@ -1286,19 +1286,20 @@ function userparse(obj, auth, acct_id, tlid, popup) {
}
var latest = date(toot.last_status_at, 'relative')
if (toot.last_status_at) {
var latesthtml = `<div class="cbadge" style="width:7.7rem;">Last <span class="voice">toot</span>: ${latest}</div>`
var latesthtml = `<div class="cbadge" style="width:100px;">Last <span class="voice">toot</span>: ${latest}</div>`
} else {
var latesthtml = ''
}
templete =
templete +
`<div class="cusr" style="padding-top:0.4rem;" user-id="${toot.id}">
`<div class="cusr" style="padding-top:5px;" user-id="${toot.id}">
<div class="area-notice">${notftext}</div>
<div class="area-icon">
${udg}
<img
draggable="false"
src="${avatar}"
width="40"
class="prof-img"
user="${toot.acct}"
onerror="this.src='../../img/loading.svg'"
@ -1316,10 +1317,10 @@ function userparse(obj, auth, acct_id, tlid, popup) {
</div>
</div>
<div class="area-status">
<div class="cbadge" style="width:7.7rem;">
<div class="cbadge" style="width:100px;">
${lang.lang_status_follow}:${toot.following_count}
</div>
<div class="cbadge" style="width:7.7rem;">
<div class="cbadge" style="width:100px;">
${lang.lang_status_followers}:${toot.followers_count}
</div>
${latesthtml}

View File

@ -133,7 +133,7 @@ function trendTag() {
</span> `
})
$('#taglist').append(
'<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:0.9rem">refresh</i>:' +
'<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' +
tags +
'</div>'
)

View File

@ -28,7 +28,9 @@ function parseColumn(target, dontclose) {
console.log('%c Parse column', 'color:red;font-size:125%')
var size = localStorage.getItem('size')
if (size) {
$('html').css('font-size', size + 'px')
$('#timeline-container').css('font-size', size + 'px')
$('.toot-reset').css('font-size', size + 'px')
$('.cont-series').css('font-size', size + 'px')
}
if (localStorage.getItem('menu-done')) {
$('#fukidashi').addClass('hide')
@ -260,11 +262,11 @@ function parseColumn(target, dontclose) {
<i class="fas fa-tasks exc-icons"></i>
</span>
</label>
<button class="btn waves-effect" style="width:4.6rem; padding:0;" onclick="exclude('${key}')">Filter</button>`
<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('${key}')">Filter</button>`
if (checkNotfFilter(key)) {
exclude =
exclude +
`<button class="btn red waves-effect" style="width:4.6rem; padding:0;" onclick="resetNotfFilter('${key}')">
`<button class="btn red waves-effect" style="width:60px; padding:0;" onclick="resetNotfFilter('${key}')">
Clear all
</button>`
}
@ -273,7 +275,7 @@ function parseColumn(target, dontclose) {
notfKey = 'dummy'
} else if (acct.type == 'home') {
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:1.84rem"></i>
<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}
@ -290,7 +292,7 @@ function parseColumn(target, dontclose) {
var any = ''
var none = ''
}
if_tag = `<div class="column-hide notf-indv-box" id="tag-box_${key}" style="padding:0.4rem;">
if_tag = `<div class="column-hide notf-indv-box" id="tag-box_${key}" style="padding:5px;">
Base: ${name}<br>
<div id="tagManager-${key}">
all: <input type="text" id="all_tm-${key}"" value="${all}">
@ -300,7 +302,7 @@ function parseColumn(target, dontclose) {
<button onclick="addTag('${key}')" class="btn waves-effect" style="width: 100%">Refresh</button>
</div>`
if_tag_btn = `<a onclick="setToggleTag('${key}')" class="setting nex"
title="${lang.lang_layout_tagManager}" style="width:2.4rem">
title="${lang.lang_layout_tagManager}" style="width:30px">
<i class="material-icons waves-effect nex">note_add</i>
</a>`
unread = ''
@ -369,7 +371,7 @@ function parseColumn(target, dontclose) {
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
<div class="area-notice">
<i class="material-icons waves-effect ${isMisRed}" id="notice_icon_${key}" ${notf_attr}
style="font-size:3rem; padding-top:25%;"
style="font-size:40px; padding-top:25%;"
onclick="checkStr('${acct.type}','${data}','${acct.domain}', '${key}', '${delc}','${voice}',null)"
title="${lang.lang_layout_gotop}" aria-hidden="true">
</i>
@ -415,7 +417,7 @@ function parseColumn(target, dontclose) {
<div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline">
</div>
</div>
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:0.4rem;">
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
${unread}
${exclude}${left_hold}
${mediaFil}<br>
@ -777,7 +779,7 @@ function webviewParse(url, key, insert, icnsert, 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:3rem; padding-top:25%;"></i>
<i class="fab fa-twitter waves-effect" id="notice_icon_${key}" style="font-size:40px; padding-top:25%;"></i>
</div>
<div class="area-notice_name tl-title">WebView('${url}')</div>
<div class="area-sta"></div>
@ -793,7 +795,7 @@ function webviewParse(url, key, insert, icnsert, css) {
</div>
</div>
<div class="column-hide notf-indv-box z-depth-4" id="notf-box_${key}"></div>
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:0.4rem;">
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
${lang.lang_layout_headercolor}
<br>
<div id="picker_${key}" class="color-picker"></div>
@ -831,7 +833,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
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:3rem; padding-top:25%;"
<i class="material-icons waves-effect" id="notice_icon_${key}" style="font-size:40px; padding-top:25%;"
onclick="${type}('${key}','${dataHtml}');" title="${lang.lang_layout_gotop}"></i>
</div>
<div class="area-notice_name">
@ -850,7 +852,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
</a>
</div>
</div>
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:0.4rem;">
<div class="column-hide notf-indv-box" id="util-box_${key}" style="padding:5px;">
${left_hold}
<a onclick="mediaToggle('${key}')" class="setting nex">
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i>

View File

@ -26,7 +26,7 @@ function tips(mode) {
if (mode == 'ver') {
tipsToggle()
$('#tips-text').html(
'<img src="../../img/desk.png" class="prof-img-sml" onclick="todo(\'TheDesk is a nice client!: TheDesk ' +
'<img src="../../img/desk.png" width="20" onclick="todo(\'TheDesk is a nice client!: TheDesk ' +
localStorage.getItem('ver') +
' git: ' +
gitHash +
@ -34,7 +34,7 @@ function tips(mode) {
localStorage.getItem('ver') +
' {' +
gitHash.slice(0, 7) +
'} [<i class="material-icons" style="font-size:1.2rem;top: 0.23rem;position: relative;">supervisor_account</i><span id="persons">1+</span>]'
'} [<i class="material-icons" style="font-size:1.2rem;top: 3px;position: relative;">supervisor_account</i><span id="persons">1+</span>]'
)
localStorage.setItem('tips', 'ver')
} else if (mode == 'clock') {
@ -117,7 +117,7 @@ function trendTagonTip() {
</span><br>`
})
$('#tips-text').html(
'<div class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTagonTip()" style="font-size:0.9rem">refresh</i>:<br>' +
'<div class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTagonTip()" style="font-size:12px">refresh</i>:<br>' +
tags +
'</div>'
)
@ -193,8 +193,8 @@ function spotifytips() {
var html = `
<div id="spot-box">
<div id="spot-refresh">
<i class="material-icons pointer" onclick="spotifytips()" style="font-size:1.5rem">refresh</i>
<i class="material-icons pointer" onclick="nowplaying('spotify');show()" style="font-size:1.5rem">send</i>
<i class="material-icons pointer" onclick="spotifytips()" style="font-size:20px">refresh</i>
<i class="material-icons pointer" onclick="nowplaying('spotify');show()" style="font-size:20px">send</i>
</div>
<div id="spot-cover">
<img src="${img}" id="spot-img">
@ -277,7 +277,7 @@ function clockStart() {
(nowTime.getMonth() + 1) +
'/' +
nowTime.getDate() +
'<span style="font-size:1.5rem; font-family:Open Sans">' +
'<span style="font-size:20px; font-family:Open Sans">' +
nowHour +
':' +
nowMin +

View File

@ -709,7 +709,7 @@ function udAdd(acct_id, id, start) {
.then(function(json) {
var fields = json;
for (var i = 0; i < fields.length; i++) {
var html = '<a href="' + fields[i].proof_url + '" target="_blank" class="cbadge teal waves-effect" style="max-width:15.4rem;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].provider)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].provider) + ":" + escapeHTML(fields[i].provider_username) + "</a>";
var html = '<a href="' + fields[i].proof_url + '" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="' + lang.lang_hisdata_key.replace("{{set}}", escapeHTML(fields[i].provider)) + '"><i class="fas fa-key" aria-hidden="true"></i>' + escapeHTML(fields[i].provider) + ":" + escapeHTML(fields[i].provider_username) + "</a>";
$("#his-proof-prof").append(html);
}
});
@ -734,7 +734,7 @@ function udAdd(acct_id, id, start) {
})
.then(function(json) {
if (json.user.public_view) {
var html = '<a href="' + json.user.url + '" target="_blank" class="cbadge purple waves-effect" style="max-width:15.4rem;" title="Notestock">Notestock</a>';
var html = '<a href="' + json.user.url + '" target="_blank" class="cbadge purple waves-effect" style="max-width:200px;" title="Notestock">Notestock</a>';
$("#his-proof-prof").append(html);
}
});

View File

@ -1,131 +1,130 @@
{
"name": "thedesk",
"version": "21.0.1",
"codename": "Mayu",
"description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"construct": "cd view/make && node make --automatic && cd ../../",
"dev": "npx electron ./ --dev",
"dist": "build --linux snap",
"watchview": "node view/make/make.js --automatic --watch",
"build:js": "node build.js",
"build": "node view/make/make.js --automatic && npx electron-builder",
"build:all": "npx electron-builder --win --linux",
"build:win": "npx electron-builder --win",
"build:pwa": "node view/make/make.js --automatic --pwa"
},
"keywords": [
"mastodon",
"client",
"electron",
"thedesk"
],
"bugs": {
"url": "https://github.com/cutls/TheDesk/issues",
"email": "web-pro@cutls.com"
},
"homepage": "https://thedesk.top",
"author": {
"name": "Cutls",
"url": "https://cutls.com/@Cutls",
"email": "web-pro@cutls.com"
},
"contributor": [
{
"name": "とねぢ",
"url": "https://minohdon.jp/@toneji",
"email": "solfa.tono@gmail.com"
"name": "thedesk",
"version": "21.0.1",
"codename": "Mayu",
"description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"construct": "cd view/make && node make --automatic && cd ../../",
"dev": "npx electron ./ --dev",
"dist": "build --linux snap",
"watchview": "node view/make/make.js --automatic --watch",
"build:js": "node build.js",
"build": "node view/make/make.js --automatic && npx electron-builder",
"build:all": "npx electron-builder --win --linux",
"build:win": "npx electron-builder --win",
"build:pwa": "node view/make/make.js --automatic --pwa"
},
{
"name": "ぽぷんじゃ",
"url": "https://popon.pptdn.jp/@popn_ja",
"email": "popn.ja@gmail.com"
},
{
"name": "kPherox",
"url": "https://pl.kpherox.dev/kPherox",
"email": "admin@mail.kr-kp.com"
}
],
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"custom-electron-titlebar": "^3.2.2-hotfix62",
"electron-dl": "^3.0.0",
"jimp": "^0.10.3",
"jquery": "^3.5.0",
"jquery-ui-dist": "^1.12.1",
"json5": "^2.1.3",
"lodash": "^4.17.15",
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
"sumchecker": "^3.0.1",
"sweetalert2": "^9.10.12",
"system-font-families": "^0.4.1",
"vue": "^2.6.11"
},
"optionalDependencies": {
"itunes-nowplaying-mac": "0.3.1"
},
"devDependencies": {
"chokidar": "^3.3.1",
"electron": "^8.2.3",
"electron-builder": "^22.5.1",
"electron-rebuild": "^1.10.1",
"readline-sync": "1.4.10"
},
"build": {
"productName": "TheDesk",
"appId": "top.thedesk",
"asarUnpack": [
"node_modules/itunes-nowplaying-mac"
"keywords": [
"mastodon",
"client",
"electron",
"thedesk"
],
"directories": {
"output": "../build"
"bugs": {
"url": "https://github.com/cutls/TheDesk/issues",
"email": "p@cutls.com"
},
"win": {
"icon": "build/thedesk.ico",
"target": [
"nsis",
"portable",
"appx"
]
"homepage": "https://thedesk.top",
"author": {
"name": "Cutls",
"url": "https://cutls.dev",
"email": "p@cutls.com"
},
"appx": {
"identityName": "53491Cutls.TheDesk",
"applicationId": "Cutls.TheDesk",
"publisherDisplayName": "Cutls",
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
"languages": [
"JA-JP",
"EN-US"
]
"contributor": [{
"name": "とねぢ",
"url": "https://minohdon.jp/@toneji",
"email": "solfa.tono@gmail.com"
},
{
"name": "ぽぷんじゃ",
"url": "https://popon.pptdn.jp/@popn_ja",
"email": "popn.ja@gmail.com"
},
{
"name": "kPherox",
"url": "https://pl.kpherox.dev/kPherox",
"email": "admin@mail.kr-kp.com"
}
],
"license": "GPL-3.0",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"custom-electron-titlebar": "^3.2.2-hotfix62",
"electron-dl": "^3.0.0",
"jimp": "^0.10.3",
"jquery": "^3.5.0",
"jquery-ui-dist": "^1.12.1",
"json5": "^2.1.3",
"lodash": "^4.17.15",
"materialize-css": "git://github.com/cutls/materialize#v1-dev",
"sumchecker": "^3.0.1",
"sweetalert2": "^9.10.12",
"system-font-families": "^0.4.1",
"vue": "^2.6.11"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
"optionalDependencies": {
"itunes-nowplaying-mac": "0.3.1"
},
"linux": {
"icon": "build/icons",
"target": [
"zip",
"snap",
"deb"
],
"category": "Network"
"devDependencies": {
"chokidar": "^3.3.1",
"electron": "^8.2.3",
"electron-builder": "^22.5.1",
"electron-rebuild": "^1.10.1",
"readline-sync": "1.4.10"
},
"mac": {
"target": [
"dmg",
"zip"
]
},
"electronDownload": {
"version": "8.0.0"
},
"electronVersion": "8.0.0"
}
}
"build": {
"productName": "TheDesk",
"appId": "top.thedesk",
"asarUnpack": [
"node_modules/itunes-nowplaying-mac"
],
"directories": {
"output": "../build"
},
"win": {
"icon": "build/thedesk.ico",
"target": [
"nsis",
"portable",
"appx"
]
},
"appx": {
"identityName": "53491Cutls.TheDesk",
"applicationId": "Cutls.TheDesk",
"publisherDisplayName": "Cutls",
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1",
"languages": [
"JA-JP",
"EN-US"
]
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
},
"linux": {
"icon": "build/icons",
"target": [
"zip",
"snap",
"deb"
],
"category": "Network"
},
"mac": {
"target": [
"dmg",
"zip"
]
},
"electronDownload": {
"version": "8.0.0"
},
"electronVersion": "8.0.0"
}
}

View File

@ -19,7 +19,7 @@
<meta charset="utf-8">
<style>
input {
max-height: 50px !important
max-height: 3.84rem !important
}
.pcr-result {
@ -54,11 +54,11 @@
@@langlist@@
<h5>@@backup@@</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
style="width:100%; max-width:200px;">@@export@@</button>
style="width:100%; max-width:15rem;">@@export@@</button>
<button onclick="importSettings()" class="btn waves-effect cyan darken-3"
style="width:100%; max-width:200px;">@@import@@</button><br>
style="width:100%; max-width:15rem;">@@import@@</button><br>
@@backupWarn@@<br>
<input type="text" id="imp-exp" style="width: 300px">
<input type="text" id="imp-exp" style="width: 22rem">
<div id="envView">
<template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5>
@ -87,22 +87,22 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:100px;"
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">@@change@@</button>
</template><br>
</template>
</div>
<h5>@@font@@</h5>
@@fontwarn@@<br>
<button class="btn waves-effect" style="width:100px;" onclick="font()">@@select@@</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
<button class="btn waves-effect" style="width:7.7rem;" onclick="font()">@@select@@</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
<br>
<input type="text" style="width:150px" id="font">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">@@set@@</button>
<input type="text" style="width:11.5rem" id="font">
<button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">@@set@@</button>
<br>
<h5>@@savefolder@@</h5>
@@savefolderwarn@@<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">@@change@@</button>
<button class="btn waves-effect" style="width:7.7rem;" onclick="savefolder()">@@change@@</button>
<br>
</div>
</li>
@ -150,19 +150,19 @@
value="custom" />
<span data-ct="custom">custom</span>
</label>
<div style="width:300px" id="sel-selector">
<div style="width:22rem" id="sel-selector">
<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
</div>
<h4>@@customtheme@@</h4>
<div style="width:300px" id="edit-selector" data-add="@@add_new@@">
<div style="width:22rem" id="edit-selector" data-add="@@add_new@@">
<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
<option value="add_new">@@add_new@@</option>
</select>
</div>
<h5>@@name@@</h5>
<input type="text" style="width:300px" id="custom_name" placeholder="@@name@@...">
<input type="text" style="width:22rem" id="custom_name" placeholder="@@name@@...">
<h5>@@desc@@</h5>
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
<div class="input-field"><textarea style="width:22rem" id="custom_desc" class="materialize-textarea"
placeholder="@@desc@@..."></textarea></div>
<h5>@@customthemeDirection@@</h5>
<label>
@ -244,12 +244,12 @@
</div>
<button class="btn-large waves-effect" onclick="customComp()">@@change@@</button>&nbsp;<button
class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">@@delete@@</button><br><br>
<input type="text" style="width:300px;height:40px;" id="custom_json" class="materialize-textarea"
<input type="text" style="width:22rem;height:40px;" id="custom_json" class="materialize-textarea"
placeholder="JSON style" readonly><br>
@@customShare@@
<h4>@@customImport@@</h4>
@@cImpWarn@@<br>
<input type="text" style="width:300px;height:40px;" id="custom_import" class="materialize-textarea"
<input type="text" style="width:22rem;height:40px;" id="custom_import" class="materialize-textarea"
placeholder="JSON/JSON5 style">
<button class="btn waves-effect" onclick="customImp()">@@import@@</button><br>
</li>
@ -284,7 +284,7 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:100px;"
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">@@change@@</button>
</template><br>
</template>
@ -302,7 +302,7 @@
@@volwarn80@@<br>
<p class="range-field"><span id="soundVolVal">80</span><br>
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()"
style="width:500px; max-width:100%" /></p>
style="width:40rem; max-width:100%" /></p>
</div>
</li>
<li>
@ -339,7 +339,7 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template>
<button class="btn waves-effect" style="width:100px;"
<button class="btn waves-effect" style="width:7.7rem;"
v-on:click="complete(i)">@@change@@</button>
</template><br>
</template>
@ -353,12 +353,12 @@
<div class="collapsible-body">
<h5>@@iks@@</h5>
@@okswarn@@<br>
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br>
Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
</div>
</li>
<li>
@ -373,11 +373,11 @@
<h5>@@wordmute@@</h5>
@@enter@@<br>
<div class="chips" id="wordmute" style="background-color:gray;"></div>
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:100px;">@@set@@</button>
<button onclick="wordmuteSave()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button>
<h5>@@wordemp@@</h5>
@@enter@@<br>
<div class="chips" id="wordemp" style="background-color:gray;"></div>
<button onclick="wordempSave()" class="btn waves-effect" style="width:100px;">@@set@@</button>
<button onclick="wordempSave()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button>
<h5>@@useremp@@</h5>
@@useerempwarn@@
<span class="emphasized"> @@empcolorwarn@@ </span>
@ -391,24 +391,24 @@
<h5>@@link@@(Spotify)</h5>
@@linkwarn@@<br>
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button
onclick="spotifyAuth()" class="btn waves-effect" style="width:100px;">@@set@@</button></div>
onclick="spotifyAuth()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button></div>
<a onclick="spotifyConnect()" class="btn waves-effect nex"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-enable"><i
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-enable"><i
class="fab fa-spotify left"></i>@@connect@@</a>
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled"
style="width:100%; max-width:200px; background-color:#1ed760;" id="spotify-disable"><i
style="width:100%; max-width:15rem; background-color:#1ed760;" id="spotify-disable"><i
class="fab fa-spotify left"></i>@@disconnect@@</a>
<h5>@@link@@(Last.fm)</h5>
@@lastFmWarn@@<br />
<input type="text" style="width:150px" id="lastFmUser">
<button onclick="lastFmSet()" class="btn waves-effect" style="width:100px;">@@set@@</button>
<input type="text" style="width:11.5rem" id="lastFmUser">
<button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button>
<h5>@@templateedit@@</h5>
@@templateeditwarn@@<br>
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
{url}</textarea><br>
@@template1@@<br>
<span class="mac">>@@template2@@</span><br>
<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">@@set@@</button>
<button onclick="spotifySave()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button>
<h5>@@postartwork@@</h5>
<label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes"
@ -459,30 +459,30 @@
<p class="range-field"><span id="voicespeedVal">10</span><br>
<input type="range" id="voicespeed" min="1" max="100" value="10"
onchange="document.getElementById('voicespeedVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
style="width:40rem; max-width:100%" /></p>
<h5>@@pitch@@</h5>
@@pitchwarn@@<br>
<p class="range-field"><span id="voicepitchVal">50</span><br>
<input type="range" id="voicepitch" min="0" max="100" value="50"
onchange="document.getElementById('voicepitchVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
style="width:40rem; max-width:100%" /></p>
<h5>@@vol@@</h5>
@@volwarn@@<br>
<p class="range-field"><span id="voicevolVal">100</span><br>
<input type="range" id="voicevol" min="0" max="100" value="100"
onchange="document.getElementById('voicevolVal').innerText=this.value"
style="width:500px; max-width:100%" /></p>
style="width:40rem; max-width:100%" /></p>
<h5>@@test@@</h5>
<input type="text" style="width:350px" id="voicetxt" value="@@sample@@">
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()"
<input type="text" style="width:27rem" id="voicetxt" value="@@sample@@">
<button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
id="testplay">@@playstop@@</button><br>
<br>
<button class="btn waves-effect" style="width:100px;" onclick="voiceSettings()">@@set@@</button>
<button class="btn waves-effect" style="width:7.7rem;" onclick="voiceSettings()">@@set@@</button>
</div>
</li>
</ul>
<br>
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:15rem;"><i
class="material-icons left">undo</i>@@back@@</a>
<br>
<br>@@keyscs@@
@ -512,26 +512,26 @@
<li>B:@@bt@@</li>
<li>R:@@reply@@</li>
</div>
<button class="btn waves-effect red" style="width:100%; max-width:500px;"
<button class="btn waves-effect red" style="width:100%; max-width:40rem;"
onclick="if(confirm('@@resetconfirm@@')){ localStorage.clear(); location.href='index.html'; }"><i
class="material-icons left">delete</i>@@reset@@</button><br><br>
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:500px;"><i
<button class="btn waves-effect indigo pwa" onclick="about()" style="width:100%; max-width:40rem;"><i
class="material-icons left">info</i>@@about@@</button>
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:40rem;"><i
class="material-icons left">web</i>@@hp@@</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Pixiv FANBOX)</a>
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>@@support@@(Pixiv FANBOX)</a>
<a href="https://www.patreon.com/cutls" class="btn waves-effect red darken-2"
style="width:100%; max-width:500px;"><i class="material-icons left">trending_up</i>@@support@@(Patreon)</a>
style="width:100%; max-width:40rem;"><i class="material-icons left">trending_up</i>@@support@@(Patreon)</a>
<a href="https://liberapay.com/cutls" class="btn waves-effect black-text"
style="width:100%; max-width:500px; background-color: #f6c915"><i
style="width:100%; max-width:40rem; background-color: #f6c915"><i
class="material-icons left">trending_up</i>@@support@@(Liberapay)</a>
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:40rem;"><i
class="material-icons left">list</i>@@help@@/Docs</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
style="width:100%; max-width:500px;"><i class="fab fa-github left"></i>GitHub</a>
style="width:100%; max-width:40rem;"><i class="fab fa-github left"></i>GitHub</a>
<a href="index.html?mode=user&code=Cutls@cutls.com" class="btn waves-effect blue lighten-2"
style="width:100%; max-width:500px;"><img src="../../img/desk_full.svg" class="left" width="25"
style="width:100%; max-width:40rem;"><img src="../../img/desk_full.svg" class="left" width="25"
style="padding-top:5px;">Main author: Cutls@cutls.com</a>
<br>
TheDesk @ <a href="https://github.com/cutls/TheDesk/commits/@@gitHash@@">@@gitHash@@</a> - <a onclick="checkupd(); return localStorage.removeItem('new-ver-skip'); location.href='index.html';"