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 { .action-menu-item:hover {
filter: brightness(80%) !important; filter: brightness(80%) !important;
} }
.btn { .btn, .btn-flat {
font-size: 1.1rem; font-size: 1.1rem;
margin: 0.4rem; margin: 0.4rem;
text-transform: none; text-transform: none;
height: 2.76rem;
line-height: 2.76rem;
} }
.markdown { .markdown {
display: none; display: none;

View File

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

View File

@ -51,7 +51,7 @@ function defaultEmoji(target) {
emojis + emojis +
`${def} `${def}
<span style=" <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> background-position:${emoji['css']};"></span>
</a>` </a>`
}) })
@ -95,7 +95,7 @@ function faicon() {
emojis + emojis +
'<a onclick="emojiInsert(\'[faicon]' + '<a onclick="emojiInsert(\'[faicon]' +
eje + 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 + emoji +
'"></i></a>' '"></i></a>'
}) })

View File

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

View File

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

View File

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

View File

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

View File

@ -133,7 +133,7 @@ function trendTag() {
</span> ` </span> `
}) })
$('#taglist').append( $('#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 + tags +
'</div>' '</div>'
) )

View File

@ -28,7 +28,9 @@ function parseColumn(target, dontclose) {
console.log('%c Parse column', 'color:red;font-size:125%') console.log('%c Parse column', 'color:red;font-size:125%')
var size = localStorage.getItem('size') var size = localStorage.getItem('size')
if (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')) { if (localStorage.getItem('menu-done')) {
$('#fukidashi').addClass('hide') $('#fukidashi').addClass('hide')
@ -260,11 +262,11 @@ function parseColumn(target, dontclose) {
<i class="fas fa-tasks exc-icons"></i> <i class="fas fa-tasks exc-icons"></i>
</span> </span>
</label> </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)) { if (checkNotfFilter(key)) {
exclude = exclude =
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 Clear all
</button>` </button>`
} }
@ -273,7 +275,7 @@ function parseColumn(target, dontclose) {
notfKey = 'dummy' notfKey = 'dummy'
} else if (acct.type == 'home') { } else if (acct.type == 'home') {
var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex"> var exclude = `<a onclick="ebtToggle('${key}')" class="setting nex">
<i class="fas fa-retweet waves-effect nex" title="${lang.lang_layout_excludingbt}" style="font-size: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> <span id="sta-bt-${key}">Off</span>
</a> </a>
${lang.lang_layout_excludingbt} ${lang.lang_layout_excludingbt}
@ -290,7 +292,7 @@ function parseColumn(target, dontclose) {
var any = '' var any = ''
var none = '' 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> Base: ${name}<br>
<div id="tagManager-${key}"> <div id="tagManager-${key}">
all: <input type="text" id="all_tm-${key}"" value="${all}"> 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> <button onclick="addTag('${key}')" class="btn waves-effect" style="width: 100%">Refresh</button>
</div>` </div>`
if_tag_btn = `<a onclick="setToggleTag('${key}')" class="setting nex" 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> <i class="material-icons waves-effect nex">note_add</i>
</a>` </a>`
unread = '' unread = ''
@ -369,7 +371,7 @@ function parseColumn(target, dontclose) {
<div class="notice-box z-depth-2" id="menu_${key}" style="${insert}"> <div class="notice-box z-depth-2" id="menu_${key}" style="${insert}">
<div class="area-notice"> <div class="area-notice">
<i class="material-icons waves-effect ${isMisRed}" id="notice_icon_${key}" ${notf_attr} <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)" onclick="checkStr('${acct.type}','${data}','${acct.domain}', '${key}', '${delc}','${voice}',null)"
title="${lang.lang_layout_gotop}" aria-hidden="true"> title="${lang.lang_layout_gotop}" aria-hidden="true">
</i> </i>
@ -415,7 +417,7 @@ function parseColumn(target, dontclose) {
<div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline"> <div id="notifications_${notfKey}" data-notf="${notfDomain}" data-type="notf" class="notf-timeline">
</div> </div>
</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} ${unread}
${exclude}${left_hold} ${exclude}${left_hold}
${mediaFil}<br> ${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}"> 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="notice-box z-depth-2" id="menu_${key}" style="${insert}">
<div class="area-notice"> <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>
<div class="area-notice_name tl-title">WebView('${url}')</div> <div class="area-notice_name tl-title">WebView('${url}')</div>
<div class="area-sta"></div> <div class="area-sta"></div>
@ -793,7 +795,7 @@ function webviewParse(url, key, insert, icnsert, css) {
</div> </div>
</div> </div>
<div class="column-hide notf-indv-box z-depth-4" id="notf-box_${key}"></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} ${lang.lang_layout_headercolor}
<br> <br>
<div id="picker_${key}" class="color-picker"></div> <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}"> 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="notice-box z-depth-2" id="menu_${key}" style="${insert} ">
<div class="area-notice"> <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> onclick="${type}('${key}','${dataHtml}');" title="${lang.lang_layout_gotop}"></i>
</div> </div>
<div class="area-notice_name"> <div class="area-notice_name">
@ -850,7 +852,7 @@ function unstreamingTL(type, key, basekey, insert, icnsert, left_fold, css, anim
</a> </a>
</div> </div>
</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} ${left_hold}
<a onclick="mediaToggle('${key}')" class="setting nex"> <a onclick="mediaToggle('${key}')" class="setting nex">
<i class="material-icons waves-effect nex" title="${lang.lang_layout_mediafil}">perm_media</i> <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') { if (mode == 'ver') {
tipsToggle() tipsToggle()
$('#tips-text').html( $('#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') + localStorage.getItem('ver') +
' git: ' + ' git: ' +
gitHash + gitHash +
@ -34,7 +34,7 @@ function tips(mode) {
localStorage.getItem('ver') + localStorage.getItem('ver') +
' {' + ' {' +
gitHash.slice(0, 7) + 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') localStorage.setItem('tips', 'ver')
} else if (mode == 'clock') { } else if (mode == 'clock') {
@ -117,7 +117,7 @@ function trendTagonTip() {
</span><br>` </span><br>`
}) })
$('#tips-text').html( $('#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 + tags +
'</div>' '</div>'
) )
@ -193,8 +193,8 @@ function spotifytips() {
var html = ` var html = `
<div id="spot-box"> <div id="spot-box">
<div id="spot-refresh"> <div id="spot-refresh">
<i class="material-icons pointer" onclick="spotifytips()" style="font-size:1.5rem">refresh</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:1.5rem">send</i> <i class="material-icons pointer" onclick="nowplaying('spotify');show()" style="font-size:20px">send</i>
</div> </div>
<div id="spot-cover"> <div id="spot-cover">
<img src="${img}" id="spot-img"> <img src="${img}" id="spot-img">
@ -277,7 +277,7 @@ function clockStart() {
(nowTime.getMonth() + 1) + (nowTime.getMonth() + 1) +
'/' + '/' +
nowTime.getDate() + nowTime.getDate() +
'<span style="font-size:1.5rem; font-family:Open Sans">' + '<span style="font-size:20px; font-family:Open Sans">' +
nowHour + nowHour +
':' + ':' +
nowMin + nowMin +

View File

@ -709,7 +709,7 @@ function udAdd(acct_id, id, start) {
.then(function(json) { .then(function(json) {
var fields = json; var fields = json;
for (var i = 0; i < fields.length; i++) { 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); $("#his-proof-prof").append(html);
} }
}); });
@ -734,7 +734,7 @@ function udAdd(acct_id, id, start) {
}) })
.then(function(json) { .then(function(json) {
if (json.user.public_view) { 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); $("#his-proof-prof").append(html);
} }
}); });

View File

@ -1,131 +1,130 @@
{ {
"name": "thedesk", "name": "thedesk",
"version": "21.0.1", "version": "21.0.1",
"codename": "Mayu", "codename": "Mayu",
"description": "TheDesk is a Mastodon client for PC.", "description": "TheDesk is a Mastodon client for PC.",
"repository": "https://github.com/cutls/TheDesk", "repository": "https://github.com/cutls/TheDesk",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "test": "echo \"Error: no test specified\" && exit 1",
"construct": "cd view/make && node make --automatic && cd ../../", "construct": "cd view/make && node make --automatic && cd ../../",
"dev": "npx electron ./ --dev", "dev": "npx electron ./ --dev",
"dist": "build --linux snap", "dist": "build --linux snap",
"watchview": "node view/make/make.js --automatic --watch", "watchview": "node view/make/make.js --automatic --watch",
"build:js": "node build.js", "build:js": "node build.js",
"build": "node view/make/make.js --automatic && npx electron-builder", "build": "node view/make/make.js --automatic && npx electron-builder",
"build:all": "npx electron-builder --win --linux", "build:all": "npx electron-builder --win --linux",
"build:win": "npx electron-builder --win", "build:win": "npx electron-builder --win",
"build:pwa": "node view/make/make.js --automatic --pwa" "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"
}, },
{ "keywords": [
"name": "ぽぷんじゃ", "mastodon",
"url": "https://popon.pptdn.jp/@popn_ja", "client",
"email": "popn.ja@gmail.com" "electron",
}, "thedesk"
{
"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"
], ],
"directories": { "bugs": {
"output": "../build" "url": "https://github.com/cutls/TheDesk/issues",
"email": "p@cutls.com"
}, },
"win": { "homepage": "https://thedesk.top",
"icon": "build/thedesk.ico", "author": {
"target": [ "name": "Cutls",
"nsis", "url": "https://cutls.dev",
"portable", "email": "p@cutls.com"
"appx"
]
}, },
"appx": { "contributor": [{
"identityName": "53491Cutls.TheDesk", "name": "とねぢ",
"applicationId": "Cutls.TheDesk", "url": "https://minohdon.jp/@toneji",
"publisherDisplayName": "Cutls", "email": "solfa.tono@gmail.com"
"publisher": "CN=629757F5-A5EE-474F-9562-B304A89A9FD1", },
"languages": [ {
"JA-JP", "name": "ぽぷんじゃ",
"EN-US" "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": { "optionalDependencies": {
"oneClick": false, "itunes-nowplaying-mac": "0.3.1"
"allowToChangeInstallationDirectory": true,
"artifactName": "TheDesk-setup.${ext}"
}, },
"linux": { "devDependencies": {
"icon": "build/icons", "chokidar": "^3.3.1",
"target": [ "electron": "^8.2.3",
"zip", "electron-builder": "^22.5.1",
"snap", "electron-rebuild": "^1.10.1",
"deb" "readline-sync": "1.4.10"
],
"category": "Network"
}, },
"mac": { "build": {
"target": [ "productName": "TheDesk",
"dmg", "appId": "top.thedesk",
"zip" "asarUnpack": [
] "node_modules/itunes-nowplaying-mac"
}, ],
"electronDownload": { "directories": {
"version": "8.0.0" "output": "../build"
}, },
"electronVersion": "8.0.0" "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"> <meta charset="utf-8">
<style> <style>
input { input {
max-height: 50px !important max-height: 3.84rem !important
} }
.pcr-result { .pcr-result {
@ -54,11 +54,11 @@
@@langlist@@ @@langlist@@
<h5>@@backup@@</h5> <h5>@@backup@@</h5>
<button onclick="exportSettings()" class="btn waves-effect lime darken-3" <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" <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> @@backupWarn@@<br>
<input type="text" id="imp-exp" style="width: 300px"> <input type="text" id="imp-exp" style="width: 22rem">
<div id="envView"> <div id="envView">
<template v-for="(item, i) in config"> <template v-for="(item, i) in config">
<h5>{{item.text.head}}</h5> <h5>{{item.text.head}}</h5>
@ -87,22 +87,22 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id" <input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </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> v-on:click="complete(i)">@@change@@</button>
</template><br> </template><br>
</template> </template>
</div> </div>
<h5>@@font@@</h5> <h5>@@font@@</h5>
@@fontwarn@@<br> @@fontwarn@@<br>
<button class="btn waves-effect" style="width:100px;" onclick="font()">@@select@@</button><br> <button class="btn waves-effect" style="width:7.7rem;" onclick="font()">@@select@@</button><br>
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div> <div id="fonts" class="hide" style="overflow-y:scroll; width:22rem; height:40rem;"></div>
<br> <br>
<input type="text" style="width:150px" id="font"> <input type="text" style="width:11.5rem" id="font">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">@@set@@</button> <button class="btn waves-effect" style="width:7.7rem;" onclick="settings()">@@set@@</button>
<br> <br>
<h5>@@savefolder@@</h5> <h5>@@savefolder@@</h5>
@@savefolderwarn@@<br> @@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> <br>
</div> </div>
</li> </li>
@ -150,19 +150,19 @@
value="custom" /> value="custom" />
<span data-ct="custom">custom</span> <span data-ct="custom">custom</span>
</label> </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> <select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
</div> </div>
<h4>@@customtheme@@</h4> <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()"> <select id="custom-edit-sel" class="custom-sel" onchange="custom()">
<option value="add_new">@@add_new@@</option> <option value="add_new">@@add_new@@</option>
</select> </select>
</div> </div>
<h5>@@name@@</h5> <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> <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> placeholder="@@desc@@..."></textarea></div>
<h5>@@customthemeDirection@@</h5> <h5>@@customthemeDirection@@</h5>
<label> <label>
@ -244,12 +244,12 @@
</div> </div>
<button class="btn-large waves-effect" onclick="customComp()">@@change@@</button>&nbsp;<button <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> 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> placeholder="JSON style" readonly><br>
@@customShare@@ @@customShare@@
<h4>@@customImport@@</h4> <h4>@@customImport@@</h4>
@@cImpWarn@@<br> @@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"> placeholder="JSON/JSON5 style">
<button class="btn waves-effect" onclick="customImp()">@@import@@</button><br> <button class="btn waves-effect" onclick="customImp()">@@import@@</button><br>
</li> </li>
@ -284,7 +284,7 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id" <input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </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> v-on:click="complete(i)">@@change@@</button>
</template><br> </template><br>
</template> </template>
@ -302,7 +302,7 @@
@@volwarn80@@<br> @@volwarn80@@<br>
<p class="range-field"><span id="soundVolVal">80</span><br> <p class="range-field"><span id="soundVolVal">80</span><br>
<input type="range" id="soundvol" min="0" max="100" value="80" onchange="customVol()" <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> </div>
</li> </li>
<li> <li>
@ -339,7 +339,7 @@
<input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id" <input type="text" v-model="item.setValue" type="radio" v-bind:id="item.id"
v-bind:style="{ width: item.width+'px'}" />{{item.text.after}} v-bind:style="{ width: item.width+'px'}" />{{item.text.after}}
</template> </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> v-on:click="complete(i)">@@change@@</button>
</template><br> </template><br>
</template> </template>
@ -353,12 +353,12 @@
<div class="collapsible-body"> <div class="collapsible-body">
<h5>@@iks@@</h5> <h5>@@iks@@</h5>
@@okswarn@@<br> @@okswarn@@<br>
Ctrl+Shift+1:<input type="text" style="width:150px" id="oks-1"> Ctrl+Shift+1:<input type="text" style="width:11.5rem" id="oks-1">
<button onclick="oks(1)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br> <button onclick="oks(1)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
Ctrl+Shift+2:<input type="text" style="width:150px" id="oks-2"> Ctrl+Shift+2:<input type="text" style="width:11.5rem" id="oks-2">
<button onclick="oks(2)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br> <button onclick="oks(2)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
Ctrl+Shift+3:<input type="text" style="width:150px" id="oks-3"> Ctrl+Shift+3:<input type="text" style="width:11.5rem" id="oks-3">
<button onclick="oks(3)" class="btn waves-effect" style="width:100px;">@@set@@</button><br><br> <button onclick="oks(3)" class="btn waves-effect" style="width:7.7rem;">@@set@@</button><br><br>
</div> </div>
</li> </li>
<li> <li>
@ -373,11 +373,11 @@
<h5>@@wordmute@@</h5> <h5>@@wordmute@@</h5>
@@enter@@<br> @@enter@@<br>
<div class="chips" id="wordmute" style="background-color:gray;"></div> <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> <h5>@@wordemp@@</h5>
@@enter@@<br> @@enter@@<br>
<div class="chips" id="wordemp" style="background-color:gray;"></div> <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> <h5>@@useremp@@</h5>
@@useerempwarn@@ @@useerempwarn@@
<span class="emphasized"> @@empcolorwarn@@ </span> <span class="emphasized"> @@empcolorwarn@@ </span>
@ -391,24 +391,24 @@
<h5>@@link@@(Spotify)</h5> <h5>@@link@@(Spotify)</h5>
@@linkwarn@@<br> @@linkwarn@@<br>
<div id="spotify-code-show" class="hide"><input type="text" id="spotify-code"><button <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" <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> class="fab fa-spotify left"></i>@@connect@@</a>
<a onclick="spotifyDisconnect()" class="btn waves-effect nex disabled" <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> class="fab fa-spotify left"></i>@@disconnect@@</a>
<h5>@@link@@(Last.fm)</h5> <h5>@@link@@(Last.fm)</h5>
@@lastFmWarn@@<br /> @@lastFmWarn@@<br />
<input type="text" style="width:150px" id="lastFmUser"> <input type="text" style="width:11.5rem" id="lastFmUser">
<button onclick="lastFmSet()" class="btn waves-effect" style="width:100px;">@@set@@</button> <button onclick="lastFmSet()" class="btn waves-effect" style="width:7.7rem;">@@set@@</button>
<h5>@@templateedit@@</h5> <h5>@@templateedit@@</h5>
@@templateeditwarn@@<br> @@templateeditwarn@@<br>
<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist} <textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
{url}</textarea><br> {url}</textarea><br>
@@template1@@<br> @@template1@@<br>
<span class="mac">>@@template2@@</span><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> <h5>@@postartwork@@</h5>
<label> <label>
<input class="with-gap" onchange="spotifyFlagSave()" name="awk" type="radio" id="awk_yes" <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> <p class="range-field"><span id="voicespeedVal">10</span><br>
<input type="range" id="voicespeed" min="1" max="100" value="10" <input type="range" id="voicespeed" min="1" max="100" value="10"
onchange="document.getElementById('voicespeedVal').innerText=this.value" onchange="document.getElementById('voicespeedVal').innerText=this.value"
style="width:500px; max-width:100%" /></p> style="width:40rem; max-width:100%" /></p>
<h5>@@pitch@@</h5> <h5>@@pitch@@</h5>
@@pitchwarn@@<br> @@pitchwarn@@<br>
<p class="range-field"><span id="voicepitchVal">50</span><br> <p class="range-field"><span id="voicepitchVal">50</span><br>
<input type="range" id="voicepitch" min="0" max="100" value="50" <input type="range" id="voicepitch" min="0" max="100" value="50"
onchange="document.getElementById('voicepitchVal').innerText=this.value" onchange="document.getElementById('voicepitchVal').innerText=this.value"
style="width:500px; max-width:100%" /></p> style="width:40rem; max-width:100%" /></p>
<h5>@@vol@@</h5> <h5>@@vol@@</h5>
@@volwarn@@<br> @@volwarn@@<br>
<p class="range-field"><span id="voicevolVal">100</span><br> <p class="range-field"><span id="voicevolVal">100</span><br>
<input type="range" id="voicevol" min="0" max="100" value="100" <input type="range" id="voicevol" min="0" max="100" value="100"
onchange="document.getElementById('voicevolVal').innerText=this.value" onchange="document.getElementById('voicevolVal').innerText=this.value"
style="width:500px; max-width:100%" /></p> style="width:40rem; max-width:100%" /></p>
<h5>@@test@@</h5> <h5>@@test@@</h5>
<input type="text" style="width:350px" id="voicetxt" value="@@sample@@"> <input type="text" style="width:27rem" id="voicetxt" value="@@sample@@">
<button class="btn waves-effect blue" style="width:150px;" onclick="voicePlay()" <button class="btn waves-effect blue" style="width:11.5rem;" onclick="voicePlay()"
id="testplay">@@playstop@@</button><br> id="testplay">@@playstop@@</button><br>
<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> </div>
</li> </li>
</ul> </ul>
<br> <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> class="material-icons left">undo</i>@@back@@</a>
<br> <br>
<br>@@keyscs@@ <br>@@keyscs@@
@ -512,26 +512,26 @@
<li>B:@@bt@@</li> <li>B:@@bt@@</li>
<li>R:@@reply@@</li> <li>R:@@reply@@</li>
</div> </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 onclick="if(confirm('@@resetconfirm@@')){ localStorage.clear(); location.href='index.html'; }"><i
class="material-icons left">delete</i>@@reset@@</button><br><br> 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> 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> class="material-icons left">web</i>@@hp@@</a>
<a href="https://www.pixiv.net/fanbox/creator/28105985" class="btn waves-effect red lighten-2" <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" <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" <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> 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> class="material-icons left">list</i>@@help@@/Docs</a>
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2" <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" <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> style="padding-top:5px;">Main author: Cutls@cutls.com</a>
<br> <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';" 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';"