Compare commits
43 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c9cca85db3 | ||
|
07b203b719 | ||
|
a636c745e4 | ||
|
e9024312a7 | ||
|
edbe3c164f | ||
|
8991cb5a96 | ||
|
873a8fd229 | ||
|
d0ddc58160 | ||
|
6eebfed609 | ||
|
c93326d218 | ||
|
a03c5c0ecf | ||
|
0380251294 | ||
|
d8f857e05d | ||
|
7a06a2b192 | ||
|
771db8c3ad | ||
|
9a800639e6 | ||
|
550c7b1805 | ||
|
ad7c7ffa66 | ||
|
57978bd152 | ||
|
5cd72a538c | ||
|
d439169c63 | ||
|
da39e0ded6 | ||
|
823fae5eac | ||
|
4f3a7c47e3 | ||
|
bd8d480e07 | ||
|
a09c031dbe | ||
|
1fee94846d | ||
|
4fb37525d5 | ||
|
8f25557f20 | ||
|
cb47eabed9 | ||
|
f8823a4c5a | ||
|
7fdd5964cc | ||
|
3aadcaef0f | ||
|
f58d4f349b | ||
|
9bb8ec0b66 | ||
|
ec9a14d63b | ||
|
82a00f4d1e | ||
|
af97f88d0a | ||
|
4c375e2d0a | ||
|
53cd49d4e8 | ||
|
d20777ed18 | ||
|
202e389c20 | ||
|
707a5b2033 |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -5,8 +5,6 @@
|
||||
TheDesk-*
|
||||
app/build
|
||||
build
|
||||
make.js
|
||||
make_js.js
|
||||
app/.DS_Store
|
||||
.DS_Store
|
||||
.vs/*
|
||||
|
@@ -4,11 +4,10 @@ node_js:
|
||||
- '10.15.2'
|
||||
script: node -v
|
||||
before_deploy:
|
||||
- brew update
|
||||
- npm install electron-builder -g
|
||||
- cd app
|
||||
- npm install
|
||||
- electron-builder --mac --x64
|
||||
- electron-builder --mac --x64 -p never
|
||||
- mv ../build/TheDesk*.dmg ../TheDesk.dmg
|
||||
- mv ../build/TheDesk*.zip ../TheDesk-darwin-x64.zip
|
||||
- cd ../
|
||||
|
@@ -1,5 +1,7 @@
|
||||
# TheDesk
|
||||
|
||||
TheDesk Minami (19)はVueで書き直します(rewrite-vueブランチ参照)。18までのバージョンはTheDesk Kawaii (20)以降で継続します。
|
||||
|
||||
[](https://travis-ci.org/cutls/TheDesk)
|
||||
[](https://translate.thedesk.top/project/thedesk)
|
||||
Mastodon/Misskey client for PC(Windows/Linux/macOS)
|
||||
@@ -27,6 +29,8 @@ The icon is provided under [Creative Commons BY-NC-SA](https://creativecommons.o
|
||||
* [ico](https://dl.thedesk.top/press/TheDesk.ico)
|
||||
* [icns](https://dl.thedesk.top/press/TheDesk.icns)
|
||||
|
||||
The default sound of notifications is provided [Creative Commons BY](https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
## Terms of Use/利用規約
|
||||
|
||||
* [利用規約(Terms of Use(ja))](https://thedesk.top/tos.html)
|
||||
|
@@ -76,7 +76,7 @@ a,button{
|
||||
<img src="./img/desk.png" style="max-width:70%;">
|
||||
<h5>TheDesk</h5>
|
||||
<div class='container'>
|
||||
<div class='area-name1'>External version</div>
|
||||
<div class='area-name1'>Display version</div>
|
||||
<div class='area-data1' id="now"></div>
|
||||
<div class='area-name2'>Internal version</div>
|
||||
<div class='area-data2' id="ver"></div>
|
||||
@@ -87,13 +87,18 @@ a,button{
|
||||
<div class='area-name5'>Node.js</div>
|
||||
<div class='area-data5' id="node"></div>
|
||||
</div>
|
||||
<div class="cp">Copyright © TheDesk 2018 All rights reserved.<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
|
||||
<div class="cp">Copyright © TheDesk 2018<br>
|
||||
Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br>
|
||||
Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a href="https://pawoo.net/@kPherox" target="_blank">kPherox</a> and all users
|
||||
<img draggable="false" style="width:0.8rem;top: 1px;margin-left: 1px;position: relative;" alt="❤️" title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png">
|
||||
<br><a href="https://thedesk.top" target="_blank">Web site</a></div>
|
||||
<button onclick="window.close()" class="btn waves-effect indigo" style="width:calc(100% - 10px);"><i class="material-icons left">close</i>Close</button>
|
||||
<script type="text/javascript" src="./js/ui/theme.js"></script>
|
||||
<script>
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
const shell=electron.shell;
|
||||
//JSON.parse(fs.readFileSync(info_path, 'utf8'));
|
||||
console.log(process.versions);
|
||||
$("#node").text(process.version);
|
||||
@@ -104,6 +109,9 @@ a,button{
|
||||
var ver=m[1];
|
||||
$("#ver").text(ver);
|
||||
}
|
||||
|
||||
$(document).on('click', 'a', e => {
|
||||
var url = $(e.target).attr('href');
|
||||
shell.openExternal(url);
|
||||
return false;
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" src="./js/platform/end.js"></script>
|
@@ -30,6 +30,8 @@ option {
|
||||
}
|
||||
#mainView {
|
||||
padding: 10px;
|
||||
overflow:scroll;
|
||||
height: auto;
|
||||
}
|
||||
#message {
|
||||
display: none;
|
||||
|
@@ -138,7 +138,7 @@ iframe {
|
||||
.area-toot .emoji,.area-toot .emoji-img{
|
||||
width: 20px;
|
||||
vertical-align: middle;
|
||||
margin: -3px 0 0;
|
||||
margin:-1px 0;
|
||||
}
|
||||
.faicon_FTL{
|
||||
display:none;
|
||||
@@ -249,6 +249,29 @@ grid-area: toot;
|
||||
margin:2px;
|
||||
grid-area: side;
|
||||
}
|
||||
|
||||
.quote-renote{
|
||||
display: grid;
|
||||
grid-template-columns: 43px 2fr 1fr;
|
||||
grid-template-areas: 'ricon ruser' 'ricon rtext';
|
||||
border: 1px solid;
|
||||
margin-top: 3px;
|
||||
padding: 1px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.renote-icon{
|
||||
grid-area: ricon;
|
||||
}
|
||||
.renote-icon img{
|
||||
width:43px;
|
||||
}
|
||||
.renote-user{
|
||||
grid-area: ruser;
|
||||
}
|
||||
.renote-text{
|
||||
grid-area: rtext;
|
||||
}
|
||||
|
||||
.btn-flat{
|
||||
color:var(--color);
|
||||
}
|
||||
@@ -285,7 +308,6 @@ grid-area: toot;
|
||||
.toot-img {
|
||||
object-fit: cover;
|
||||
width: 100%;
|
||||
margin-right:1px;
|
||||
}
|
||||
.toot img:not(.emoji-img) {
|
||||
max-width: 100%;
|
||||
@@ -321,6 +343,7 @@ grid-area: toot;
|
||||
p {
|
||||
margin: 0;
|
||||
margin-bottom: 0px;
|
||||
line-height:20px;
|
||||
}
|
||||
p:not(:last-child){
|
||||
margin-bottom: 10px;
|
||||
@@ -508,6 +531,24 @@ p:not(:last-child){
|
||||
.jump{
|
||||
display: inline-block; animation: jump 0.75s linear infinite;
|
||||
}
|
||||
.img-link{
|
||||
position:relative;
|
||||
display:block;
|
||||
margin-right:1px;
|
||||
float: left;
|
||||
}
|
||||
.nsfw-media{
|
||||
position:absolute;
|
||||
top:0;
|
||||
right:0;
|
||||
background-color: black;
|
||||
color:white;
|
||||
}
|
||||
.img-link img{
|
||||
display:block;
|
||||
width:100%;
|
||||
height:100%;
|
||||
}
|
||||
@keyframes jump {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
|
119
app/js/common/blurhash.js
Normal file
119
app/js/common/blurhash.js
Normal file
@@ -0,0 +1,119 @@
|
||||
var digitCharacters = [
|
||||
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
||||
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
|
||||
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
|
||||
"U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d",
|
||||
"e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
|
||||
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
|
||||
"y", "z", "#", "$", "%", "*", "+", ",", "-", ".",
|
||||
":", ";", "=", "?", "@", "[", "]", "^", "_", "{",
|
||||
"|", "}", "~",
|
||||
];
|
||||
function decode83(str) {
|
||||
var value = 0;
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
var c = str[i];
|
||||
var digit = digitCharacters.indexOf(c);
|
||||
value = value * 83 + digit;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
function linearTosRGB(value) {
|
||||
var v = Math.max(0, Math.min(1, value));
|
||||
if (v <= 0.0031308) {
|
||||
return Math.round(v * 12.92 * 255 + 0.5);
|
||||
}
|
||||
else {
|
||||
return Math.round((1.055 * Math.pow(v, 1 / 2.4) - 0.055) * 255 + 0.5);
|
||||
}
|
||||
}
|
||||
function sRGBToLinear(value) {
|
||||
var v = value / 255;
|
||||
if (v <= 0.04045) {
|
||||
return v / 12.92;
|
||||
}
|
||||
else {
|
||||
return Math.pow((v + 0.055) / 1.055, 2.4);
|
||||
}
|
||||
}
|
||||
function decodeDC(value) {
|
||||
var intR = value >> 16;
|
||||
var intG = (value >> 8) & 255;
|
||||
var intB = value & 255;
|
||||
return [sRGBToLinear(intR), sRGBToLinear(intG), sRGBToLinear(intB)];
|
||||
};
|
||||
function sign(n) { return (n < 0 ? -1 : 1); }
|
||||
function signPow(val, exp) { return sign(val) * Math.pow(Math.abs(val), exp); }
|
||||
function decodeDC2(value, maximumValue) {
|
||||
var quantR = Math.floor(value / (19 * 19));
|
||||
var quantG = Math.floor(value / 19) % 19;
|
||||
var quantB = value % 19;
|
||||
var rgb = [
|
||||
signPow((quantR - 9) / 9, 2.0) * maximumValue,
|
||||
signPow((quantG - 9) / 9, 2.0) * maximumValue,
|
||||
signPow((quantB - 9) / 9, 2.0) * maximumValue,
|
||||
];
|
||||
return rgb;
|
||||
};
|
||||
function decodeblur(blurhash, width, height, punch) {
|
||||
punch = punch | 1;
|
||||
if (blurhash.length < 6) {
|
||||
console.error('too short blurhash');
|
||||
return null;
|
||||
}
|
||||
var sizeFlag = decode83(blurhash[0]);
|
||||
var numY = Math.floor(sizeFlag / 9) + 1;
|
||||
var numX = (sizeFlag % 9) + 1;
|
||||
var quantisedMaximumValue = decode83(blurhash[1]);
|
||||
var maximumValue = (quantisedMaximumValue + 1) / 166;
|
||||
if (blurhash.length !== 4 + 2 * numX * numY) {
|
||||
console.error('blurhash length mismatch', blurhash.length, 4 + 2 * numX * numY);
|
||||
return null;
|
||||
}
|
||||
var colors = new Array(numX * numY);
|
||||
for (var i = 0; i < colors.length; i++) {
|
||||
if (i === 0) {
|
||||
var value = decode83(blurhash.substring(2, 6));
|
||||
colors[i] = decodeDC(value);
|
||||
}
|
||||
else {
|
||||
var value = decode83(blurhash.substring(4 + i * 2, 6 + i * 2));
|
||||
colors[i] = decodeDC2(value, maximumValue * punch);
|
||||
}
|
||||
}
|
||||
var bytesPerRow = width * 4;
|
||||
var pixels = new Uint8ClampedArray(bytesPerRow * height);
|
||||
for (var y = 0; y < height; y++) {
|
||||
for (var x = 0; x < width; x++) {
|
||||
var r = 0;
|
||||
var g = 0;
|
||||
var b = 0;
|
||||
for (var j = 0; j < numY; j++) {
|
||||
for (var i = 0; i < numX; i++) {
|
||||
var basis = Math.cos(Math.PI * x * i / width) * Math.cos(Math.PI * y * j / height);
|
||||
var color = colors[i + j * numX];
|
||||
r += color[0] * basis;
|
||||
g += color[1] * basis;
|
||||
b += color[2] * basis;
|
||||
}
|
||||
}
|
||||
var intR = linearTosRGB(r);
|
||||
var intG = linearTosRGB(g);
|
||||
var intB = linearTosRGB(b);
|
||||
pixels[4 * x + 0 + y * bytesPerRow] = intR;
|
||||
pixels[4 * x + 1 + y * bytesPerRow] = intG;
|
||||
pixels[4 * x + 2 + y * bytesPerRow] = intB;
|
||||
pixels[4 * x + 3 + y * bytesPerRow] = 255; // alpha
|
||||
}
|
||||
}
|
||||
return pixels;
|
||||
}
|
||||
function parseBlur(blur) {
|
||||
var canvas = document.getElementById('canvas');
|
||||
var ctx = canvas.getContext('2d');
|
||||
var pixels = decodeblur(blur, 32, 32)
|
||||
const imageData = new ImageData(pixels, 32, 32);
|
||||
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
return canvas.toDataURL()
|
||||
}
|
@@ -190,7 +190,7 @@ function verck(ver) {
|
||||
}
|
||||
}
|
||||
if(show){
|
||||
Materialize.toast(obj.Text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
Materialize.toast(escapeHTML(obj.Text)+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,9 +211,6 @@ function infowebsocket(){
|
||||
console.log(JSON.parse(mess.data));
|
||||
var obj=JSON.parse(mess.data);
|
||||
if(obj.type!="counter"){
|
||||
if(obj.id*1<=localStorage.getItem("last-notice-id")){
|
||||
|
||||
}else{
|
||||
localStorage.setItem("last-notice-id",obj.id)
|
||||
var show=true;
|
||||
if(obj.toot!=""){
|
||||
@@ -242,8 +239,7 @@ function infowebsocket(){
|
||||
}
|
||||
}
|
||||
if(show){
|
||||
Materialize.toast(obj.text+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
}
|
||||
Materialize.toast(escapeHTML(obj.text)+toot+'<span class="sml grey-text">(スライドして消去)</span>', 86400);
|
||||
}
|
||||
}else{
|
||||
$("#persons").text(obj.text);
|
||||
|
@@ -54,7 +54,13 @@ function defEmoji(target){
|
||||
var emojiraw = newpack.filter(function(item, index){
|
||||
if (item.short_name == target) return true;
|
||||
});
|
||||
emoji=twemoji.convert.fromCodePoint(emojiraw[0].unified);
|
||||
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]);
|
||||
}
|
||||
console.log(emoji)
|
||||
var now = $("#textarea").val();
|
||||
var selin = localStorage.getItem("cursor");
|
||||
var now = $("#textarea").val();
|
||||
|
@@ -189,7 +189,7 @@ var lang={
|
||||
"lang_parse_clientmute":"muted",
|
||||
"lang_parse_mute":" will be muted. You can remove on preferences.",
|
||||
"lang_parse_voted":"Voted",
|
||||
"lang_parse_vote":"Voted",
|
||||
"lang_parse_vote":"Vote",
|
||||
"lang_parse_unvoted":"Show the result without voting",
|
||||
"lang_parse_endedvote":"Expired",
|
||||
"lang_parse_thread":"Show thread",
|
||||
|
@@ -14,23 +14,6 @@ function ck() {
|
||||
}
|
||||
var domainz = localStorage.getItem("domain_0");
|
||||
var at = localStorage.getItem("acct_0_at");
|
||||
var oldat = localStorage.getItem(domainz + "_at");
|
||||
if(oldat){
|
||||
console.log("Move to New Account Management System")
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (!multi) {
|
||||
var acctlen=1;
|
||||
} else {
|
||||
var obj = JSON.parse(multi);
|
||||
var acctlen=obj.length;
|
||||
}
|
||||
for(i=0;acctlen>i;i++){
|
||||
var domain = localStorage.getItem("domain_"+i);
|
||||
var oldat = localStorage.getItem(domain + "_at");
|
||||
var newat = localStorage.setItem("acct_"+ i + "_at",oldat);
|
||||
localStorage.removeItem(domain + "_at");
|
||||
}
|
||||
}
|
||||
//コード受信
|
||||
if(location.search){
|
||||
var m = location.search.match(/\?mode=([a-zA-Z-0-9]+)\&code=(.+)/);
|
||||
@@ -61,6 +44,8 @@ if (obj[0].domain) {
|
||||
}
|
||||
}
|
||||
ck();
|
||||
|
||||
|
||||
//ログインポップアップ
|
||||
function login(url) {
|
||||
if($('#linux:checked').val()=="on"){
|
||||
@@ -517,7 +502,7 @@ function multiSelector() {
|
||||
$("#add-acct-sel").append('<option value="noauth">'+lang.lang_login_noauth+'</option><option value="webview">Twitter</option>');
|
||||
}
|
||||
$('select').material_select('update');
|
||||
parseColumn();
|
||||
parseColumn(true);
|
||||
}
|
||||
|
||||
//バージョンエンコ
|
||||
|
@@ -363,7 +363,27 @@ function misskeyLogin(url) {
|
||||
"reaction-read",
|
||||
"reaction-write",
|
||||
"vote-read",
|
||||
"vote-write"
|
||||
"vote-write",
|
||||
"read:account",
|
||||
"write:account",
|
||||
"read:drive",
|
||||
"write:drive",
|
||||
"read:blocks",
|
||||
"write:blocks",
|
||||
"read:favorites",
|
||||
"write:favorites",
|
||||
"read:following",
|
||||
"write:following",
|
||||
"read:messaging",
|
||||
"write:messaging",
|
||||
"read:mutes",
|
||||
"write:mutes",
|
||||
"write:notes",
|
||||
"read:notifications",
|
||||
"write:notifications",
|
||||
"read:reactions",
|
||||
"write:reactions",
|
||||
"write:votes"
|
||||
]
|
||||
}));
|
||||
httpreq.onreadystatechange = function() {
|
||||
@@ -520,7 +540,7 @@ function getdata(domain, at) {
|
||||
console.log(json);
|
||||
if (json.error) {
|
||||
console.error("Error:" + json.error);
|
||||
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + json.error,
|
||||
Materialize.toast(lang.lang_fatalerroroccured+"Error:" + escapeHTML(json.error),
|
||||
5000);
|
||||
return;
|
||||
}
|
||||
@@ -795,7 +815,7 @@ input.addEventListener("focus", function() {
|
||||
Object.keys(json.instances).forEach(function(key) {
|
||||
var url = json.instances[key];
|
||||
urls = urls + ' <a onclick="login(\'' + url.name +
|
||||
'\')" class="pointer">' + url.name + '</a> ';
|
||||
'\')" class="pointer">' +escapeHTML(url.name) + '</a> ';
|
||||
});
|
||||
$("#ins-suggest").html(urls);
|
||||
}
|
||||
|
@@ -182,3 +182,20 @@ const {
|
||||
webviewDom.addEventListener('new-window', function(e) {
|
||||
shell.openExternal(e.url);
|
||||
});
|
||||
function playSound() {
|
||||
window.AudioContext = window.AudioContext || window.webkitAudioContext;
|
||||
context = new AudioContext();
|
||||
context.createBufferSource().start(0);
|
||||
context.decodeAudioData(request.response, function (buf) {
|
||||
console.log(source)
|
||||
source.buffer = buf;
|
||||
source.loop = false;
|
||||
});
|
||||
source = context.createBufferSource();
|
||||
volumeControl = context.createGain();
|
||||
source.connect(volumeControl);
|
||||
volumeControl.connect(context.destination);
|
||||
volumeControl.gain.value=0.8
|
||||
console.log(volumeControl)
|
||||
source.start(0);
|
||||
}
|
@@ -62,7 +62,7 @@ function formattime(date){
|
||||
}else{
|
||||
str=str+date.getMinutes()
|
||||
}
|
||||
return str;
|
||||
return escapeHTML(str);
|
||||
}
|
||||
function formattimeutc(date){
|
||||
var str=date.getUTCFullYear()+"-";
|
||||
@@ -87,7 +87,7 @@ function formattimeutc(date){
|
||||
}else{
|
||||
str=str+date.getUTCMinutes()
|
||||
}
|
||||
return str;
|
||||
return escapeHTML(str);
|
||||
}
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
|
@@ -35,7 +35,7 @@ function emojiToggle(reaction) {
|
||||
|
||||
//絵文字リスト挿入
|
||||
function emojiGet(parse, started) {
|
||||
$('#emoji-list').html('Loading...');
|
||||
$('#emoji-list').text('Loading...');
|
||||
var acct_id = $("#post-acct-sel").val();
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
if (localStorage.getItem("mode_" + domain) != "misskey") {
|
||||
@@ -52,7 +52,7 @@ function emojiGet(parse, started) {
|
||||
console.error(error);
|
||||
}).then(function (json) {
|
||||
if (parse == "true") {
|
||||
$('#emoji-list').html('Parsing...');
|
||||
$('#emoji-list').text('Parsing...');
|
||||
//絵文字をマストドン公式と同順にソート
|
||||
json.sort(function (a, b) {
|
||||
if (a.shortcode < b.shortcode) return -1;
|
||||
@@ -96,7 +96,7 @@ function emojiGet(parse, started) {
|
||||
})
|
||||
});
|
||||
if (parse == "true") {
|
||||
$('#emoji-list').html('Parsing...');
|
||||
$('#emoji-list').text('Parsing...');
|
||||
//絵文字をマストドン公式と同順にソート
|
||||
md.sort(function (a, b) {
|
||||
if (a.shortcode < b.shortcode) return -1;
|
||||
|
@@ -64,11 +64,11 @@ function reactiontoggle(id,acct_id,tlid){
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
console.log(json);
|
||||
if(json.reactionCounts){
|
||||
var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding","star"];
|
||||
if(json.reactions){
|
||||
var reactions=["like","love","laugh","hmm","surprise","congrats","angry","confused","pudding","rip"];
|
||||
for(var i=0;i<reactions.length;i++){
|
||||
if(json.reactionCounts[reactions[i]]){
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
if(json.reactions[reactions[i]]){
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactions[reactions[i]])
|
||||
$("#pub_" + id +" .re-"+reactions[i]).removeClass("hide")
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(0)
|
||||
@@ -77,7 +77,7 @@ function reactiontoggle(id,acct_id,tlid){
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+reactions[i]).removeClass("hide")
|
||||
}
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactionCounts[reactions[i]])
|
||||
$("#pub_" + id +" .re-"+reactions[i]+"ct").text(json.reactions[reactions[i]])
|
||||
}
|
||||
}
|
||||
$("#pub_" + id +" .reactions").removeClass("hide");
|
||||
@@ -143,21 +143,21 @@ function reactRefresh(acct_id,id){
|
||||
}
|
||||
function reactRefreshCore(json){
|
||||
var id=json.id;
|
||||
if(json.reactionCounts){
|
||||
if(json.reactions){
|
||||
$("#pub_" + id +" .reactions").removeClass("hide")
|
||||
var regExp = new RegExp( ":", "g" ) ;
|
||||
Object.keys(json.reactionCounts).forEach(function(keye) {
|
||||
Object.keys(json.reactions).forEach(function(keye) {
|
||||
keyeClass=keye.replace(regExp,'');
|
||||
if(json.reactionCounts[keye]){
|
||||
console.log(json.reactionCounts[keye])
|
||||
$("#pub_" + id +" .re-"+keyeClass+"ct").text(json.reactionCounts[keye])
|
||||
if(json.reactions[keye]){
|
||||
console.log(json.reactions[keye])
|
||||
$("#pub_" + id +" .re-"+keyeClass+"ct").text(json.reactions[keye])
|
||||
$("#pub_" + id +" .re-"+keyeClass).removeClass("hide")
|
||||
}else{
|
||||
$("#pub_" + id +" .re-"+keyeClass+"ct").text(0)
|
||||
if($("#pub_" + id +" .reactions").hasClass("fullreact")){
|
||||
$("#pub_" + id +" .re-"+keyeClass).addClass("hide")
|
||||
}
|
||||
$("#pub_" + id +" .re-"+keyeClass+"ct").text(json.reactionCounts[keye])
|
||||
$("#pub_" + id +" .re-"+keyeClass+"ct").text(json.reactions[keye])
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -234,7 +234,7 @@ function voterefresh(acct_id,id){
|
||||
}else{
|
||||
var myvote="";
|
||||
}
|
||||
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+json.id+'\','+choice.id+')">'+choice.text+'('+choice.votes+''+myvote+')</div>';
|
||||
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+json.id+'\','+choice.id+')">'+escapeHTML(choice.text)+'('+choice.votes+''+myvote+')</div>';
|
||||
});
|
||||
$(".vote_"+json.id).html(poll)
|
||||
}
|
||||
|
@@ -298,7 +298,7 @@ function clear() {
|
||||
$("#post-acct-sel").prop("disabled", false);
|
||||
$("#days_poll").val(0);
|
||||
$("#hours_poll").val(0);
|
||||
$("#mins_poll").val(0);
|
||||
$("#mins_poll").val(6);
|
||||
$(".mastodon-choice").map(function() {
|
||||
$(this).val("");
|
||||
});
|
||||
|
@@ -169,7 +169,7 @@ function cgNPs(q){
|
||||
var tags = "";
|
||||
Object.keys(json).forEach(function(key4) {
|
||||
var tag = json[key4];
|
||||
tags = tags + '<a onclick="cgNP(\''+json[key4]+'\')" class="pointer">' + json[key4] + '</a> ';
|
||||
tags = tags + '<a onclick="cgNP(\''+json[key4]+'\')" class="pointer">' + escapeHTML(json[key4]) + '</a> ';
|
||||
});
|
||||
$("#suggest").html("Cinderella NowPlaying:" + tags);
|
||||
}else{
|
||||
|
@@ -63,8 +63,8 @@ function additional(acct_id, tlid) {
|
||||
}).then(function(json) {
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
@@ -148,8 +148,8 @@ function additionalIndv(tlid, acct_id, id) {
|
||||
}).then(function(json) {
|
||||
if (json.title) {
|
||||
$("[toot-id=" + id + "] .additional").html(
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + json.title + "<br>" +
|
||||
json.description + "</span>");
|
||||
"<span class=\"gray\">URL"+lang.lang_cards_check+":<br>Title:" + escapeHTML(json.title) + "<br>" +
|
||||
escapeHTML(json.description) + "</span>");
|
||||
$("[toot-id=" + id + "] a:not(.parsed)").addClass("parsed");
|
||||
$("[toot-id=" + id + "]").addClass("parsed");
|
||||
}
|
||||
|
@@ -91,6 +91,9 @@ function details(id, acct_id, tlid, mode) {
|
||||
}
|
||||
beforeToot(id, acct_id, dom);
|
||||
userToot(id, acct_id, uid);
|
||||
afterToot(id, acct_id, dom);
|
||||
afterUserToot(id, acct_id, uid);
|
||||
afterFTLToot(id, acct_id, dom);
|
||||
faved(id, acct_id);
|
||||
rted(id, acct_id);
|
||||
if($("#toot-this div").hasClass("cvo")){
|
||||
@@ -99,7 +102,7 @@ function details(id, acct_id, tlid, mode) {
|
||||
$("#toot-this").addClass("cvo");
|
||||
}
|
||||
if(!$("#activator").hasClass("active")){
|
||||
$('#det-col').collapsible('open', 1);
|
||||
$('#det-col').collapsible('open', 4);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -332,6 +335,81 @@ function userToot(id, acct_id, user) {
|
||||
}
|
||||
|
||||
}
|
||||
//後のLTL
|
||||
function afterToot(id, acct_id, domain) {
|
||||
//var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain +
|
||||
"/api/v1/timelines/public?local=true&min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = parse(json, 'noauth', acct_id);
|
||||
if(templete!=""){
|
||||
$("#ltl-after .no-data").hide();
|
||||
}
|
||||
$("#ltl-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//後のUTL
|
||||
function afterUserToot(id, acct_id, user) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain + "/api/v1/accounts/" + user + "/statuses?min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
'Authorization': 'Bearer ' + at
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = parse(json, '', acct_id);
|
||||
if(templete!=""){
|
||||
$("#user-after .no-data").hide();
|
||||
}
|
||||
$("#user-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
//後のFTL
|
||||
function afterFTLToot(id, acct_id, domain) {
|
||||
//var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "https://" + domain +
|
||||
"/api/v1/timelines/public?min_id=" + id;
|
||||
fetch(start, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'content-type': 'application/json',
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
var templete = parse(json, 'noauth', acct_id);
|
||||
if(templete!=""){
|
||||
$("#ftl-after .no-data").hide();
|
||||
}
|
||||
$("#ftl-after").html(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
});
|
||||
}
|
||||
|
||||
//ふぁぼ一覧
|
||||
function faved(id, acct_id) {
|
||||
|
@@ -251,7 +251,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
var via = '';
|
||||
viashow="hide";
|
||||
} else {
|
||||
var via = toot.application.name;
|
||||
var via = escapeHTML(toot.application.name);
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function(key6) {
|
||||
var cli = emp[key6];
|
||||
@@ -432,7 +432,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
if(word){
|
||||
var word=word.tag;
|
||||
var regExp = new RegExp( word, "g" ) ;
|
||||
content=content.replace(regExp,'<span class="emp">'+word+"</span>");
|
||||
content=content.replace(regExp,'<span class="emp">'+escapeHTML(word)+"</span>");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -483,7 +483,7 @@ function dmListParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
for( var i=0; i<tickerdata.length; i++) {
|
||||
var value=tickerdata[i];
|
||||
if(value.domain==thisdomain){
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>';
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+escapeHTML(value.name)+'</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -30,7 +30,7 @@ function list(){
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id +
|
||||
lists = lists + escapeHTML(list.title)+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_list_show+'</a><br>';
|
||||
});
|
||||
$("#lists").html(lists);
|
||||
@@ -57,7 +57,7 @@ function list(){
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id +
|
||||
lists = lists + escapeHTML(list.title)+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listUser(\'' + list.id + '\',' + acct_id +
|
||||
')" class="pointer">'+lang.lang_list_users+'</a><br>';
|
||||
});
|
||||
@@ -193,7 +193,7 @@ function hisList(user,acct_id){
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + '<a onclick="listRemove(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+list.title+'</a><br> ';
|
||||
'\')" class="pointer">'+escapeHTML(list.title)+'</a><br> ';
|
||||
});
|
||||
$("#his-lists-b").html(lists);
|
||||
}else{
|
||||
@@ -217,7 +217,7 @@ function hisList(user,acct_id){
|
||||
var lists = "";
|
||||
Object.keys(json).forEach(function(key) {
|
||||
var list = json[key];
|
||||
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + list.title + '\',\'' + acct_id +
|
||||
lists = lists + list.title+':<a onclick="listShow(\'' + list.id + '\',\'' + escapeHTML(list.title) + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_list_show+'</a>/<a onclick="listAdd(\'' + list.id + '\',\'' + user + '\',\'' + acct_id +
|
||||
'\')" class="pointer">'+lang.lang_list_add+lang.lang_list_add_misskey+'</a><br>';
|
||||
});
|
||||
|
@@ -203,8 +203,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
"congrats": "🎉",
|
||||
"amgry": "💢",
|
||||
"confused": "😥",
|
||||
"pudding":"🍮",
|
||||
"star":"⭐"
|
||||
"rip": "😇"
|
||||
}
|
||||
var icon = reactions[toot.reaction];
|
||||
var emojisData = JSON.parse(localStorage.getItem("emoji_" + acct_id));
|
||||
@@ -286,7 +285,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
}
|
||||
var if_notf = 'data-notfIndv="' + acct_id + "_" + toot.id + '"';
|
||||
var toot = toot.note;
|
||||
var dis_name=escapeHTMLtemp(toot.user.name);
|
||||
var dis_name = escapeHTML(toot.user.name);
|
||||
} else {
|
||||
var if_notf = "";
|
||||
if (toot.renote) {
|
||||
@@ -296,8 +295,10 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
")<br>";
|
||||
var boostback = "shared";
|
||||
var uniqueid = toot.id;
|
||||
if (!toot.text) {
|
||||
var toot = toot.renote;
|
||||
var dis_name=escapeHTMLtemp(toot.user.name);
|
||||
}
|
||||
var dis_name = escapeHTML(toot.user.name);
|
||||
var uniqueid = toot.id;
|
||||
var actemojick = false
|
||||
} else {
|
||||
@@ -340,10 +341,14 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
if (toot.viaMobile) {
|
||||
var via = '<span style="font-style: italic;">Mobile</span>';
|
||||
} else {
|
||||
var via = '<span style="font-style: italic;">Unknown</span>';
|
||||
var via = '';
|
||||
viashow = "via-hide";
|
||||
}
|
||||
} else {
|
||||
var via = toot.app.name;
|
||||
var via = escapeHTML(toot.app.name);
|
||||
if (!toot.app.name) {
|
||||
viashow = "via-hide";
|
||||
}
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function (key6) {
|
||||
var cli = emp[key6];
|
||||
@@ -360,7 +365,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
});
|
||||
}
|
||||
if ((toot.cw || toot.cw == "") && cw) {
|
||||
var content = toot.text;
|
||||
var content = escapeHTML(toot.text);
|
||||
var spoil = escapeHTMLtemp(toot.cw);
|
||||
var spoiler = "cw cw_hide_" + toot.id;
|
||||
var api_spoil = "gray";
|
||||
@@ -512,7 +517,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
mentions = '<div style="float:right"><a onclick="udg(\'' + menck.user.id + '\',' +
|
||||
acct_id + ')" class="pointer">@' + menck.user.username + '</a></div>';
|
||||
}
|
||||
var tagck = toot.tags[0];
|
||||
var tagck = toot.tags;
|
||||
var tags = "";
|
||||
//タグであれば
|
||||
if (tagck) {
|
||||
@@ -616,7 +621,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
for (var i = 0; i < tickerdata.length; i++) {
|
||||
var value = tickerdata[i];
|
||||
if (value.domain == thisdomain) {
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>';
|
||||
var tickerdom = '<div style="background:linear-gradient(to left,transparent, ' + value.bg + ' 96%) !important; color:' + value.text + ';width:100%; height:0.9rem; font-size:0.8rem;"><img src="' + value.image + '" style="height:100%;"><span style="position:relative; top:-0.2rem;"> ' + escapeHTML(value.name) + '</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -632,23 +637,25 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
} else {
|
||||
var myvote = "";
|
||||
}
|
||||
poll=poll+'<div class="pointer vote" onclick="vote(\''+acct_id+'\',\''+toot.id+'\','+choice.id+')">'+choice.text+'('+choice.votes+''+myvote+')</div>';
|
||||
poll = poll + '<div class="pointer vote" onclick="vote(\'' + acct_id + '\',\'' + toot.id + '\',' + choice.id + ')">' + escapeHTML(choice.text) + '(' + choice.votes + '' + myvote + ')</div>';
|
||||
});
|
||||
poll = '<div class="vote_' + toot.id + '">' + poll + '</div>';
|
||||
}
|
||||
/*
|
||||
|
||||
*/
|
||||
//引用Renote
|
||||
if (toot.renote) {
|
||||
poll = poll + '<div class="quote-renote"><div class="renote-icon"><a onclick="udg(\'' + toot.renote.user.id +
|
||||
'\',' + acct_id + ');" user="' + toot.renote.user.username + '" class="udg"><img src="' + toot.renote.user.avatarUrl + '"></a></div><div class="renote-user">' + escapeHTML(toot.renote.user.name) + '</div><div class="renote-text">' + escapeHTML(toot.renote.text) + '</div></div>'
|
||||
}
|
||||
if (localStorage.getItem("emojiReaction_" + acct_id) == "disabled") {
|
||||
var freeReact = "hide";
|
||||
} else {
|
||||
var freeReact = "";
|
||||
}
|
||||
//Reactions
|
||||
if(toot.reactionCounts){
|
||||
var addReact = "";
|
||||
Object.keys(toot.reactionCounts).forEach(function(keye) {
|
||||
var thisReact=toot.reactionCounts[keye];
|
||||
if (toot.reactions) {
|
||||
Object.keys(toot.reactions).forEach(function (keye) {
|
||||
var thisReact = toot.reactions[keye];
|
||||
if (keye == "like") { var defaultEmoji = true; }
|
||||
else if (keye == "love") { var defaultEmoji = true; }
|
||||
else if (keye == "laugh") { var defaultEmoji = true; }
|
||||
@@ -657,7 +664,7 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
else if (keye == "congrats") { var defaultEmoji = true; }
|
||||
else if (keye == "angry") { var defaultEmoji = true; }
|
||||
else if (keye == "confused") { var defaultEmoji = true; }
|
||||
else if(keye=="pudding"){ var defaultEmoji=true; }
|
||||
else if (keye == "star") { var defaultEmoji = true; }
|
||||
else {
|
||||
var obj = JSON.parse(localStorage.getItem("emoji_" + acct_id));
|
||||
if (obj) {
|
||||
@@ -676,76 +683,76 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
}
|
||||
}
|
||||
});
|
||||
if(toot.reactionCounts.like){
|
||||
var like=toot.reactionCounts.like;
|
||||
if (toot.reactions.like) {
|
||||
var like = toot.reactions.like;
|
||||
var likehide = "";
|
||||
} else {
|
||||
var like = 0;
|
||||
var likehide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.love){
|
||||
var love=toot.reactionCounts.love;
|
||||
if (toot.reactions.love) {
|
||||
var love = toot.reactions.love;
|
||||
var lovehide = "";
|
||||
} else {
|
||||
var love = 0;
|
||||
var lovehide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.laugh){
|
||||
var laugh=toot.reactionCounts.laugh;
|
||||
if (toot.reactions.laugh) {
|
||||
var laugh = toot.reactions.laugh;
|
||||
var laughhide = "";
|
||||
} else {
|
||||
var laugh = 0;
|
||||
var laughhide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.hmm){
|
||||
var hmm=toot.reactionCounts.hmm;
|
||||
if (toot.reactions.hmm) {
|
||||
var hmm = toot.reactions.hmm;
|
||||
var hmmhide = "";
|
||||
} else {
|
||||
var hmm = 0;
|
||||
var hmmhide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.surprise){
|
||||
var surprise=toot.reactionCounts.surprise;
|
||||
if (toot.reactions.surprise) {
|
||||
var surprise = toot.reactions.surprise;
|
||||
var suphide = "";
|
||||
} else {
|
||||
var suphide = "hide";
|
||||
var surprise = 0;
|
||||
}
|
||||
if(toot.reactionCounts.congrats){
|
||||
var congrats=toot.reactionCounts.congrats;
|
||||
if (toot.reactions.congrats) {
|
||||
var congrats = toot.reactions.congrats;
|
||||
var conghide = "";
|
||||
} else {
|
||||
var congrats = 0;
|
||||
var conghide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.angry){
|
||||
var angry=toot.reactionCounts.angry;
|
||||
if (toot.reactions.angry) {
|
||||
var angry = toot.reactions.angry;
|
||||
var anghide = "";
|
||||
} else {
|
||||
var angry = 0;
|
||||
var anghide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.confused){
|
||||
if (toot.reactions.confused) {
|
||||
var confhide = "";
|
||||
var confused=toot.reactionCounts.confused;
|
||||
var confused = toot.reactions.confused;
|
||||
} else {
|
||||
var confused = 0;
|
||||
var confhide = "hide";
|
||||
}
|
||||
if(toot.reactionCounts.pudding){
|
||||
var pudding=toot.reactionCounts.pudding;
|
||||
var pudhide="";
|
||||
if (toot.reactions.rip) {
|
||||
var riphide = "";
|
||||
var rip = toot.reactions.rip;
|
||||
} else {
|
||||
var pudding=0;
|
||||
var pudhide="hide";
|
||||
var rip = 0;
|
||||
var riphide = "hide";
|
||||
}
|
||||
var fullhide = "";
|
||||
} else {
|
||||
var like = 0; var love = 0; var laugh = 0; var hmm = 0; var surprise = 0; var congrats = 0; var angry = 0; var confused = 0; var pudding = 0;
|
||||
var likehide="hide";var lovehide="hide";var laughhide="hide";var hmmhide="hide";var suphide="hide";var conghide="hide";var anghide="hide";var confhide="hide";var pudhide="hide";
|
||||
var likehide = "hide"; var lovehide = "hide"; var laughhide = "hide"; var hmmhide = "hide"; var suphide = "hide"; var conghide = "hide"; var anghide = "hide"; var confhide = "hide"; var riphide="hide"
|
||||
var fullhide = "hide";
|
||||
}
|
||||
if(!addReact && likehide=="hide"&& lovehide=="hide"&& laughhide=="hide"&& hmmhide=="hide"&& suphide=="hide"&& conghide=="hide"&& anghide=="hide"&& confhide=="hide"&& pudhide=="hide"){
|
||||
if (!addReact && likehide == "hide" && lovehide == "hide" && laughhide == "hide" && hmmhide == "hide" && suphide == "hide" && conghide == "hide" && anghide == "hide" && confhide == "hide" && riphide=="hide") {
|
||||
var fullhide = "hide";
|
||||
}
|
||||
if (toot.myReaction) {
|
||||
@@ -804,8 +811,8 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
',\'' + tlid + '\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;">' + twemoji.parse("💢") + '</a><span class="re-angryct">' + angry +
|
||||
'</span></span><span class="' + confhide + ' reaction re-confused"><a onclick="reaction(\'confused\',\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid + '\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;">' + twemoji.parse("😥") + '</a><span class="re-confusedct">' + confused +
|
||||
'</span></span><span class="'+pudhide+' reaction re-pudding"><a onclick="reaction(\'pudding\',\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid +'\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;">'+twemoji.parse("🍮")+'</a><span class="re-puddingct">'+pudding+
|
||||
'</span></span><span class="' + riphide + ' reaction re-confused"><a onclick="reaction(\'confused\',\'' + toot.id + '\',' + acct_id +
|
||||
',\'' + tlid + '\')" class="waves-effect waves-dark btn-flat pointer" style="padding:0;margin-left:3px;">' + twemoji.parse("😇") + '</a><span class="re-confusedct">' + rip +
|
||||
'</span></span>' + addReact +
|
||||
'<i class="material-icons pointer hide freeReact ' + freeReact + '" style="font-size:1.0rem; padding-left:5px;position: relative;top: 3px;" onclick="reactioncustom(\'' + acct_id + '\',\'' + id + '\')">add_box</i></div>'
|
||||
+ poll + mentions + tags + '</div>' +
|
||||
@@ -850,15 +857,23 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
|
||||
|
||||
//オブジェクトパーサー(ユーザーデータ)
|
||||
function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
console.log(obj)
|
||||
if (popup > 0 || popup == -1) {
|
||||
|
||||
} else {
|
||||
if(obj.users){
|
||||
var obj = obj.users;
|
||||
}
|
||||
}
|
||||
var templete = '';
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
Object.keys(obj).forEach(function (key) {
|
||||
var toot = obj[key];
|
||||
if(toot.followee){
|
||||
toot=toot.followee
|
||||
}else if(toot.follower){
|
||||
toot=toot.follower
|
||||
}
|
||||
var locked = "";
|
||||
if (auth) {
|
||||
var auth = '<i class="material-icons gray pointer" onclick="misskeyRequest(\'' +
|
||||
@@ -913,7 +928,17 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
var dis_name = escapeHTMLtemp(toot.name);
|
||||
dis_name = twemoji.parse(dis_name);
|
||||
} else {
|
||||
var dis_name=toot.name;
|
||||
var dis_name = toot.username;
|
||||
}
|
||||
if(toot.followersCount){
|
||||
var ferct=toot.followersCount
|
||||
}else{
|
||||
var ferct="unknown"
|
||||
}
|
||||
if(toot.followingCount){
|
||||
var fingct=toot.followingCount
|
||||
}else{
|
||||
var fingct="unknown"
|
||||
}
|
||||
templete = templete +
|
||||
'<div class="cvo" style="padding-top:5px;" user-id="' + toot.id + '"><div class="area-notice">' +
|
||||
@@ -929,8 +954,8 @@ function misskeyUserparse(obj, auth, acct_id, tlid, popup) {
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div style="justify-content:space-around" class="area-toot"> <div class="cbadge" style="width:100px;">Follows:' +
|
||||
toot.followingCount +
|
||||
'</div><div class="cbadge" style="width:100px;">Followers:' + toot.followersCount +
|
||||
fingct +
|
||||
'</div><div class="cbadge" style="width:100px;">Followers:' + ferct +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
@@ -948,3 +973,103 @@ function goGoogle(id){
|
||||
|
||||
shell.openExternal(url);
|
||||
}
|
||||
var misskeyws=[]
|
||||
var misskeywsstate=[]
|
||||
function connectMisskey(acct_id) {
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
var at = localStorage.getItem("acct_"+ acct_id + "_at");
|
||||
var start = "wss://" + domain +
|
||||
"/streaming?i="+at;
|
||||
var wsid = misskeyws.length;
|
||||
localStorage.setItem("misskey_wss_" + acct_id, wsid);
|
||||
misskeyws[wsid] = new WebSocket(start);
|
||||
misskeyws[wsid].onopen = function (mess) {
|
||||
console.log(tlid + ":Connect Streaming API:"+domain);
|
||||
console.log(mess);
|
||||
misskeywsstate[wsid]=true
|
||||
//$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
var send='{"type":"connect","body":{"channel":"main","id":"notf:'+acct_id+'"}}'
|
||||
misskeyws[wsid].send(send)
|
||||
}
|
||||
misskeyws[wsid].onmessage = function (mess) {
|
||||
console.log(acct_id + ":Receive Streaming API:");
|
||||
var data=JSON.parse(mess.data)
|
||||
var obj=data.body.body
|
||||
|
||||
if (data.body.id.indexOf("notf:")!== -1) {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
popup = 0;
|
||||
}
|
||||
if(JSON.parse(mess.data).body.type!="follow"){
|
||||
|
||||
templete = misskeyParse([obj.body], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = misskeyUserparse([obj.body], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(JSON.parse(mess.data).body.type=="reaction"){
|
||||
console.log("refresh")
|
||||
reactRefresh(acct_id,obj.body.note.id)
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.body.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
$("div[data-const=notf_"+acct_id+"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if (data.body.type == "note") {
|
||||
var tlid=data.body.id*1
|
||||
var multi = localStorage.getItem("column");
|
||||
var col = JSON.parse(multi)[tlid];
|
||||
if(localStorage.getItem("voice_" + tlid)){
|
||||
var voice=true;
|
||||
}else{
|
||||
var voice=false;
|
||||
}
|
||||
if (voice) {
|
||||
say(obj.text)
|
||||
}
|
||||
var templete = misskeyParse([obj], col.type, acct_id, tlid, "", mute);
|
||||
misskeyws[wsid].send(JSON.stringify({
|
||||
type: 'sn',
|
||||
body: {
|
||||
id: obj.id
|
||||
}
|
||||
}))
|
||||
var pool = localStorage.getItem("pool_" + tlid);
|
||||
if (pool) {
|
||||
pool = templete + pool;
|
||||
} else {
|
||||
pool = templete
|
||||
}
|
||||
localStorage.setItem("pool_" + tlid, pool);
|
||||
scrollck();
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if (data.type == "noteUpdated") {
|
||||
if(data.body.type=="reacted"){
|
||||
console.log(data.body.id)
|
||||
reactRefresh(acct_id,data.body.id)
|
||||
}else if(data.body.type=="deleted"){
|
||||
$("#pub_"+data.body.id).hide();
|
||||
$("#pub_"+data.body.id).remove();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
misskeyws[wsid].onerror = function (error) {
|
||||
console.error("Error closing");
|
||||
console.error(error);
|
||||
misskeywsstate[wsid]=false
|
||||
connectMisskey(acct_id)
|
||||
return false;
|
||||
};
|
||||
misskeyws[wsid].onclose = function () {
|
||||
console.log("Closing");
|
||||
console.log(tlid);
|
||||
misskeywsstate[wsid]=false
|
||||
connectMisskey(acct_id)
|
||||
return false;
|
||||
};
|
||||
|
||||
}
|
@@ -94,12 +94,14 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
websocketLocal[wslid] = new WebSocket(startLocal);
|
||||
websocketHome[wshid].onopen = function(mess) {
|
||||
localStorage.setItem("wssH_" + tlid, wshid);
|
||||
console.log("Connect Streaming API(Integrated:Home)");
|
||||
console.log(tlid + ":Connect Streaming API(Integrated:Home)");
|
||||
console.log(mess);
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
}
|
||||
websocketLocal[wslid].onopen = function(mess) {
|
||||
localStorage.setItem("wssL_" + tlid, wslid);
|
||||
console.log("Connect Streaming API(Integrated:Local)");
|
||||
console.log(tlid + ":Connect Streaming API(Integrated:Local)");
|
||||
console.log(mess);
|
||||
$("#notice_icon_" + tlid).removeClass("red-text");
|
||||
}
|
||||
websocketLocal[wslid].onmessage = function(mess) {
|
||||
@@ -195,40 +197,58 @@ function mixre(acct_id, tlid, TLtype, mute,delc,voice,mode) {
|
||||
}
|
||||
}
|
||||
websocketLocal[wslid].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
console.error('WebSocketLocal Error')
|
||||
console.error(error);
|
||||
if(mode=="error"){
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Error ' + error);
|
||||
}else{
|
||||
var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
|
||||
localStorage.setItem("wserror_" + tlid,errorct);
|
||||
if(errorct<3){
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketLocal[wslid].onclose = function() {
|
||||
console.error('WebSocketLocal Closing by error:' + tlid);
|
||||
console.log('WebSocketLocal Closing:' + tlid);
|
||||
if(mode=="error"){
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Closed');
|
||||
}else{
|
||||
var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
|
||||
localStorage.setItem("wserror_" + tlid,errorct);
|
||||
if(errorct<3){
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketHome[wshid].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
console.error('WebSocketHome Error')
|
||||
console.error(error);
|
||||
if(mode=="error"){
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Error ' + error);
|
||||
}else{
|
||||
var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
|
||||
localStorage.setItem("wserror_" + tlid,errorct);
|
||||
if(errorct<3){
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
}
|
||||
}
|
||||
};
|
||||
websocketHome[wshid].onclose = function() {
|
||||
console.error('WebSocketHome Closing by error:' + tlid);
|
||||
console.log('WebSocketHome Closing:' + tlid);
|
||||
if(mode=="error"){
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Closed');
|
||||
}else{
|
||||
var errorct=localStorage.getItem("wserror_" + tlid)*1+1;
|
||||
localStorage.setItem("wserror_" + tlid,errorct);
|
||||
if(errorct<3){
|
||||
reconnector(tlid,TLtype,acct_id,"","error");
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
@@ -15,12 +15,11 @@ function notfColumn(acct_id, tlid, sys){
|
||||
native="yes";
|
||||
}
|
||||
var domain = localStorage.getItem("domain_" + acct_id);
|
||||
console.log(start)
|
||||
var httpreq = new XMLHttpRequest();
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var misskey=true;
|
||||
var start = "https://" + domain + "/api/i/notifications";
|
||||
httpreq.open(POST, start, true);
|
||||
httpreq.open("POST", start, true);
|
||||
httpreq.setRequestHeader('Content-Type', 'application/json');
|
||||
var body=JSON.stringify({
|
||||
i:at
|
||||
@@ -44,7 +43,10 @@ function notfColumn(acct_id, tlid, sys){
|
||||
httpreq.onreadystatechange = function() {
|
||||
if (httpreq.readyState === 4) {
|
||||
var json = httpreq.response;
|
||||
var max_id = httpreq.getResponseHeader("link").match(/[?&]{1}max_id=([0-9]+)/)[1];
|
||||
var max_id = httpreq.getResponseHeader("link");
|
||||
if(max_id){
|
||||
max_id=max_id.match(/[?&]{1}max_id=([0-9]+)/)[1]
|
||||
}
|
||||
if(json[0]){
|
||||
var templete="";
|
||||
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
|
||||
@@ -112,73 +114,6 @@ function notfColumn(acct_id, tlid, sys){
|
||||
at;
|
||||
}
|
||||
|
||||
console.log(start);
|
||||
var wsid = websocketNotf.length;
|
||||
websocketNotf[acct_id] = new WebSocket(start);
|
||||
console.log(websocketNotf);
|
||||
websocketNotf[acct_id].onopen = function(mess) {
|
||||
console.log("Connect Streaming API(Notf):");
|
||||
console.log(mess);
|
||||
$("i[data-notf=" + acct_id +"]").removeClass("red-text");
|
||||
|
||||
}
|
||||
websocketNotf[acct_id].onmessage = function(mess) {
|
||||
console.log("Receive Streaming API(Notf):"+acct_id);
|
||||
var popup = localStorage.getItem("popup");
|
||||
if (!popup) {
|
||||
popup = 0;
|
||||
}
|
||||
console.log(domain)
|
||||
if(misskey){
|
||||
console.log("misskey")
|
||||
console.log(JSON.parse(mess.data));
|
||||
if (JSON.parse(mess.data).type == "notification") {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
if(obj.type!="follow"){
|
||||
|
||||
templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(obj.type=="reaction"){
|
||||
console.log("refresh")
|
||||
reactRefresh(acct_id,obj.note.id)
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if(JSON.parse(mess.data).type == "note-updated"){
|
||||
var obj = JSON.parse(mess.data).body.note;
|
||||
reactRefreshCore(obj)
|
||||
}
|
||||
}else{
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
if (type == "notification") {
|
||||
var templete="";
|
||||
localStorage.setItem("lastnotf_" + acct_id,obj.id);
|
||||
if(obj.type!="follow"){
|
||||
templete = parse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = userparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$(".tl[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
$(".notf-timeline[data-acct=" + acct_id +"]").prepend(templete);
|
||||
jQuery("time.timeago").timeago();
|
||||
} else if (type == "delete") {
|
||||
$("[toot-id=" + obj + "]").hide();
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
};
|
||||
}
|
||||
function notfCommon(acct_id, tlid, sys) {
|
||||
todo("Notifications Loading...");
|
||||
@@ -269,7 +204,11 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
$("#notf-box").addClass("fetched");
|
||||
todc();
|
||||
notfWS(misskey,acct_id,tlid,domain,at)
|
||||
});
|
||||
|
||||
}
|
||||
function notfWS(misskey,acct_id,tlid,domain,at){
|
||||
if(!misskey){
|
||||
if(localStorage.getItem("streaming_" + acct_id)){
|
||||
var wss=localStorage.getItem("streaming_" + acct_id)
|
||||
@@ -278,10 +217,6 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
var start = wss + "/api/v1/streaming/?stream=user&access_token=" +
|
||||
at;
|
||||
}else{
|
||||
var start = "wss://" + domain + "/?i=" +
|
||||
at;
|
||||
}
|
||||
|
||||
console.log(start);
|
||||
var wsid = websocketNotf.length;
|
||||
@@ -300,31 +235,6 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
popup = 0;
|
||||
}
|
||||
console.log(domain)
|
||||
if(misskey){
|
||||
console.log("misskey")
|
||||
console.log(JSON.parse(mess.data));
|
||||
if (JSON.parse(mess.data).type == "notification") {
|
||||
var obj = JSON.parse(mess.data).body;
|
||||
console.log(obj);
|
||||
if(obj.type!="follow"){
|
||||
|
||||
templete = misskeyParse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}else{
|
||||
templete = misskeyUserparse([obj], 'notf', acct_id, 'notf', popup);
|
||||
}
|
||||
if(obj.type=="reaction"){
|
||||
console.log("refresh")
|
||||
reactRefresh(acct_id,obj.note.id)
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
}else if(JSON.parse(mess.data).type == "note-updated"){
|
||||
var obj = JSON.parse(mess.data).body.note;
|
||||
reactRefreshCore(obj)
|
||||
}
|
||||
}else{
|
||||
var obj = JSON.parse(JSON.parse(mess.data).payload);
|
||||
console.log(obj);
|
||||
var type = JSON.parse(mess.data).event;
|
||||
@@ -338,6 +248,7 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
}
|
||||
if(!$("div[data-notfIndv=" + acct_id +"_"+obj.id+"]").length){
|
||||
$("div[data-notf=" + acct_id +"]").prepend(templete);
|
||||
$("div[data-const=notf_"+acct_id+"]").prepend(templete);
|
||||
}
|
||||
jQuery("time.timeago").timeago();
|
||||
} else if (type == "delete") {
|
||||
@@ -345,11 +256,12 @@ function notfCommon(acct_id, tlid, sys) {
|
||||
$("[toot-id=" + obj + "]").remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
websocketNotf[acct_id].onerror = function(error) {
|
||||
console.error('WebSocket Error ' + error);
|
||||
notfWS(misskey,acct_id,tlid,domain,at)
|
||||
};
|
||||
}
|
||||
}
|
||||
//一定のスクロールで発火
|
||||
function notfmore(tlid) {
|
||||
console.log(moreloading);
|
||||
|
@@ -251,16 +251,28 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
$(".notf-reply_" + acct_id).text(replyct*1-(-1));
|
||||
localStorage.setItem("notf-reply_" + acct_id,replyct*1-(-1))
|
||||
$(".notf-reply_" + acct_id).removeClass("hide")
|
||||
var sound=localStorage.getItem("replySound");
|
||||
if(sound=="default"){
|
||||
var file="../../source/notif3.wav"
|
||||
}
|
||||
}else if (toot.type == "reblog") {
|
||||
var btct=localStorage.getItem("notf-bt_" + acct_id)
|
||||
$(".notf-bt_" + acct_id).text(btct*1-(-1));
|
||||
localStorage.setItem("notf-bt_" + acct_id,btct*1-(-1))
|
||||
$(".notf-bt_" + acct_id).removeClass("hide")
|
||||
var sound=localStorage.getItem("btSound");
|
||||
if(sound=="default"){
|
||||
var file="../../source/notif2.wav"
|
||||
}
|
||||
}else if (toot.type == "favourite") {
|
||||
var favct=localStorage.getItem("notf-fav_" + acct_id)
|
||||
$(".notf-fav_" + acct_id).text(favct*1-(-1));
|
||||
localStorage.setItem("notf-fav_" + acct_id,favct*1-(-1))
|
||||
$(".notf-fav_" + acct_id).removeClass("hide")
|
||||
var sound=localStorage.getItem("favSound");
|
||||
if(sound=="default"){
|
||||
var file="../../source/notif.wav"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,6 +280,23 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if(popup>0){
|
||||
Materialize.toast("["+domain+"]"+escapeHTML(toot.account.display_name)+what, popup * 1000);
|
||||
}
|
||||
//通知音
|
||||
if(sound=="c1"){
|
||||
var file=localStorage.getItem("custom1");
|
||||
}else if(sound=="c2"){
|
||||
var file=localStorage.getItem("custom2");
|
||||
}else if(sound=="c3"){
|
||||
var file=localStorage.getItem("custom3");
|
||||
}else if(sound=="c4"){
|
||||
var file=localStorage.getItem("custom4");
|
||||
}
|
||||
if(file){
|
||||
request = new XMLHttpRequest();
|
||||
request.open("GET", file, true);
|
||||
request.responseType = "arraybuffer";
|
||||
request.onload = playSound;
|
||||
request.send();
|
||||
}
|
||||
if(native=="yes"){
|
||||
var electron = require("electron");
|
||||
var ipc = electron.ipcRenderer;
|
||||
@@ -395,7 +424,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var via = '';
|
||||
viashow="hide";
|
||||
} else {
|
||||
var via = toot.application.name;
|
||||
var via = escapeHTML(toot.application.name);
|
||||
//強調チェック
|
||||
Object.keys(emp).forEach(function(key6) {
|
||||
var cli = emp[key6];
|
||||
@@ -452,6 +481,40 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var viewer = "";
|
||||
var hasmedia = "";
|
||||
var youtube = "";
|
||||
//Poll
|
||||
var poll="";
|
||||
if(toot.poll){
|
||||
var choices=toot.poll.options;
|
||||
if(toot.poll.voted){
|
||||
var myvote=lang.lang_parse_voted;
|
||||
var result_hide="";
|
||||
}else{
|
||||
var myvote='<a onclick="voteMastodon(\''+acct_id+'\',\''+toot.poll.id+'\')" class="votebtn">'+lang.lang_parse_vote+'</a><br>';
|
||||
if(choices[0].votes_count===0 || choices[0].votes_count>0){
|
||||
myvote=myvote+'<a onclick="showResult(\''+acct_id+'\',\''+toot.poll.id+'\')" class="pointer">'+lang.lang_parse_unvoted+"</a>";
|
||||
}
|
||||
var result_hide="hide";
|
||||
}
|
||||
if(toot.poll.expired){
|
||||
var ended=lang.lang_parse_endedvote;
|
||||
}else{
|
||||
var ended=date(toot.poll.expires_at, datetype);
|
||||
}
|
||||
Object.keys(choices).forEach(function(keyc) {
|
||||
var choice = choices[keyc];
|
||||
if(!toot.poll.voted && !toot.poll.expired){
|
||||
var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
|
||||
var voteclass="pointer waves-effect waves-light";
|
||||
}else{
|
||||
var votesel="";
|
||||
var voteclass="";
|
||||
}
|
||||
poll=poll+'<div class="'+voteclass+' vote vote_'+acct_id+'_'+toot.poll.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+toot.poll.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
|
||||
});
|
||||
poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
ended+ '</span></div>';
|
||||
}
|
||||
if(toot.emojis){
|
||||
var emojick = toot.emojis[0];
|
||||
}else{
|
||||
@@ -467,6 +530,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
poll = poll.replace(regExp, emoji_url);
|
||||
});
|
||||
}
|
||||
//ニコフレ絵文字
|
||||
@@ -485,6 +549,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var regExp = new RegExp(":" + shortcode + ":", "g");
|
||||
content = content.replace(regExp, emoji_url);
|
||||
spoil = spoil.replace(regExp, emoji_url);
|
||||
poll = poll.replace(regExp, emoji_url);
|
||||
});
|
||||
}
|
||||
//デフォ絵文字
|
||||
@@ -501,6 +566,9 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
if(notice){
|
||||
notice=twemoji.parse(notice);
|
||||
}
|
||||
if(poll){
|
||||
poll=twemoji.parse(poll);
|
||||
}
|
||||
var mediack = toot.media_attachments[0];
|
||||
//メディアがあれば
|
||||
var media_ids="";
|
||||
@@ -512,16 +580,25 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
var purl = media.preview_url;
|
||||
media_ids=media_ids+media.id+",";
|
||||
var url = media.url;
|
||||
var nsfwmes=""
|
||||
if (toot.sensitive && nsfw) {
|
||||
var sense = "sensitive"
|
||||
var blur=media.blurhash
|
||||
if(blur){
|
||||
nsfwmes='<div class="nsfw-media">NSFW media</div>'
|
||||
purl=parseBlur(blur)
|
||||
var sense=""
|
||||
}
|
||||
} else {
|
||||
var sense = ""
|
||||
var blur=null
|
||||
}
|
||||
viewer = viewer + '<a onclick="imgv(\'' + id + '\',\'' + key2 + '\',\'' +
|
||||
acct_id + '\')" id="' + id + '-image-' + key2 + '" data-url="' + url +
|
||||
'" data-type="' + media.type + '" class="img-parsed"><img draggable="false" src="' +
|
||||
'" data-type="' + media.type + '" class="img-parsed img-link" style="width:calc(' + cwdt + '% - 1px); height:'+imh+';"><img draggable="false" src="' +
|
||||
purl + '" class="' + sense +
|
||||
' toot-img pointer" style="width:calc(' + cwdt + '% - 1px); height:'+imh+';"></a></span>';
|
||||
' toot-img pointer">'+nsfwmes+'</a>';
|
||||
|
||||
});
|
||||
media_ids = media_ids.slice(0, -1) ;
|
||||
} else {
|
||||
@@ -698,45 +775,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
for( var i=0; i<tickerdata.length; i++) {
|
||||
var value=tickerdata[i];
|
||||
if(value.domain==thisdomain){
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+value.name+'</span></div>';
|
||||
var tickerdom='<div style="background:linear-gradient(to left,transparent, '+value.bg+' 96%) !important; color:'+value.text+';width:100%; height:0.9rem; font-size:0.8rem;"><img draggable="false" src="'+value.image+'" style="height:100%;"><span style="position:relative; top:-0.2rem;"> '+escapeHTML(value.name)+'</span></div>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Poll
|
||||
var poll="";
|
||||
if(toot.poll){
|
||||
var choices=toot.poll.options;
|
||||
if(toot.poll.voted){
|
||||
var myvote=lang.lang_parse_voted;
|
||||
var result_hide="";
|
||||
}else{
|
||||
myvote='<a onclick="voteMastodon(\''+acct_id+'\',\''+toot.poll.id+'\')" class="votebtn">'+lang.lang_parse_vote+'</a><br>';
|
||||
if(choices[0].votes_count===0 || choices[0].votes_count>0){
|
||||
myvote=myvote+'<a onclick="showResult(\''+acct_id+'\',\''+toot.poll.id+'\')" class="pointer">'+lang.lang_parse_unvoted+"</a>";
|
||||
}
|
||||
var result_hide="hide";
|
||||
}
|
||||
if(toot.poll.expired){
|
||||
var ended=lang.lang_parse_endedvote;
|
||||
}else{
|
||||
var ended=date(toot.poll.expires_at, datetype);
|
||||
}
|
||||
Object.keys(choices).forEach(function(keyc) {
|
||||
var choice = choices[keyc];
|
||||
if(!toot.poll.voted && !toot.poll.expired){
|
||||
var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
|
||||
var voteclass="pointer waves-effect waves-light";
|
||||
}else{
|
||||
var votesel="";
|
||||
var voteclass="";
|
||||
}
|
||||
poll=poll+'<div class="'+voteclass+' vote vote_'+acct_id+'_'+toot.poll.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+toot.poll.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
|
||||
});
|
||||
poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
ended+ '</span></div>';
|
||||
//Quote
|
||||
if(toot.quote){
|
||||
poll=poll+'<div class="quote-renote"><div class="renote-icon"><img src="'+toot.quote.account.avatar+'"></div><div class="renote-user">'+escapeHTML(toot.quote.account.display_name)+'</div><div class="renote-text">'+toot.quote.content+'</div></div>'
|
||||
}
|
||||
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
|
||||
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
|
||||
@@ -760,8 +807,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'</div></div>' +
|
||||
'<div class="area-toot">'+tickerdom+'<span class="' +
|
||||
api_spoil + ' cw_text_' + toot.id + '"><span class="cw_text">' + spoil + "</span>" + spoiler_show +
|
||||
'</span><span class="toot ' + spoiler + '">' + content +poll+
|
||||
'</span>' +
|
||||
'</span><span class="toot ' + spoiler + '">' + content +
|
||||
'</span>' + poll +
|
||||
'' + viewer + '' +
|
||||
'</div><div class="area-additional"><span class="additional">' + analyze +
|
||||
'</span>' +
|
||||
@@ -791,7 +838,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter, type) {
|
||||
'</a></span></div>' +
|
||||
'<div class="' + if_mine + ' action '+disp["del"]+' '+noauth+'"><a onclick="del(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_del+'"><i class="far fa-trash"></i></a></div>' +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_del+'"><i class="fas fa-trash"></i></a></div>' +
|
||||
'<div class="' + if_mine + ' action pin '+disp["pin"]+' '+noauth+'"><a onclick="pin(\'' + toot.id + '\',' +
|
||||
acct_id +
|
||||
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_pin+'"><i class="fas fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>'
|
||||
@@ -825,6 +872,7 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
var datetype = localStorage.getItem("datetype");
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var toot = obj[key];
|
||||
console.log(toot)
|
||||
if(!toot.username){
|
||||
var raw=toot;
|
||||
toot=toot.account;
|
||||
@@ -838,10 +886,11 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
var locked = "";
|
||||
}
|
||||
if (auth) {
|
||||
var auth = '<i class="material-icons gray pointer" onclick="request(\'' +
|
||||
toot.id + '\',\'authorize\',' + acct_id + ')">person_add</i>';
|
||||
var authhtml = '<i class="material-icons gray pointer" onclick="request(\'' +
|
||||
toot.id + '\',\'authorize\',' + acct_id + ')" title="Accept">person_add</i> <i class="material-icons gray pointer" onclick="request(\'' +
|
||||
toot.id + '\',\'reject\',' + acct_id + ')" title="Reject">person_add_disabled</i>';
|
||||
} else {
|
||||
var auth = "";
|
||||
var authhtml = "";
|
||||
}
|
||||
var ftxt=lang.lang_parse_followed;
|
||||
if(!locale && localStorage.getItem("followlocale_" + acct_id)){
|
||||
@@ -927,13 +976,13 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
'<div class="area-display_name"><div class="flex-name"><span class="user">' +
|
||||
dis_name + '</span>' +
|
||||
'<span class="sml gray" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;user-select:auto; cursor:text;"> @' +
|
||||
toot.acct + locked + auth +'</span>' +
|
||||
toot.acct + locked +'</span>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div style="justify-content:space-around" class="area-toot"> <div class="cbadge" style="width:100px;">Follows:' +
|
||||
toot.following_count +
|
||||
'</div><div class="cbadge" style="width:100px;">Followers:' + toot.followers_count +
|
||||
'</div>' +
|
||||
'</div>' + authhtml+
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>';
|
||||
@@ -945,7 +994,6 @@ function userparse(obj, auth, acct_id, tlid, popup) {
|
||||
function client(name) {
|
||||
if(name!="Unknown"){
|
||||
//聞く
|
||||
localStorage.removeItem("client_mute");
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
@@ -962,7 +1010,7 @@ function client(name) {
|
||||
if(!obj){
|
||||
var obj=[];
|
||||
obj.push(name);
|
||||
Materialize.toast(name+lang.lang_status_emphas, 2000);
|
||||
Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000);
|
||||
}else{
|
||||
var can;
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
@@ -972,12 +1020,12 @@ function client(name) {
|
||||
}else{
|
||||
can=true;
|
||||
obj.splice(key, 1);
|
||||
Materialize.toast(name+lang.lang_status_unemphas, 2000);
|
||||
Materialize.toast(escapeHTML(name)+lang.lang_status_unemphas, 2000);
|
||||
}
|
||||
});
|
||||
if(!can){
|
||||
obj.push(name);
|
||||
Materialize.toast(name+lang.lang_status_emphas, 2000);
|
||||
Materialize.toast(escapeHTML(name)+lang.lang_status_emphas, 2000);
|
||||
}else{
|
||||
|
||||
}
|
||||
@@ -988,12 +1036,12 @@ function client(name) {
|
||||
var cli = localStorage.getItem("client_mute");
|
||||
var obj = JSON.parse(cli);
|
||||
if(!obj){
|
||||
var obj=[];
|
||||
obj=[];
|
||||
}
|
||||
obj.push(name);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_mute", json);
|
||||
Materialize.toast(name+lang.lang_parse_mute, 2000);
|
||||
Materialize.toast(escapeHTML(name)+lang.lang_parse_mute, 2000);
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
|
@@ -108,7 +108,7 @@ function voteMastodonrefresh(acct_id,id){
|
||||
if(!json.voted){
|
||||
votesel='voteSelMastodon(\''+acct_id+'\',\''+json.id+'\','+keyc+','+json.multiple+')';
|
||||
}
|
||||
poll=poll+'<div class="pointer vote vote_'+acct_id+'_'+json.id+'_'+keyc+'" onclick="'+votesel+'">'+choice.title+'<span class="vote_'+acct_id+'_'+json.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
|
||||
poll=poll+'<div class="pointer vote vote_'+acct_id+'_'+json.id+'_'+keyc+'" onclick="'+votesel+'">'+escapeHTML(choice.title)+'<span class="vote_'+acct_id+'_'+json.id+'_result '+result_hide+'">('+choice.votes_count+')</span></div>';
|
||||
});
|
||||
poll=poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(json.expires_at, 'absolute') +
|
||||
'"><i class="far fa-calendar-times"></i>' +
|
||||
|
@@ -52,7 +52,7 @@ function src(mode) {
|
||||
var tag = json.hashtags[key4];
|
||||
if(mode){
|
||||
tags = tags + '<a onclick="tl(\'tag\',\'' + tag + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag + '</a><br> ';
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag) + '</a><br> ';
|
||||
}else{
|
||||
tags=tags+graphDraw(tag);
|
||||
}
|
||||
@@ -186,13 +186,13 @@ function graphDraw(tag){
|
||||
var zero=50-(his[0].uses/max*50);
|
||||
if(max===0){
|
||||
tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a> '+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: #9e9e9e; stroke-width: 1;fill: none;"></path></g>'+
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
|
||||
'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + escapeHTML(tag.name) + '\',\'' + acct_id +
|
||||
'\',\'add\')" class="pointer">#' + escapeHTML(tag.name) + '</a> '+his[0].accounts+lang.lang_src_people;
|
||||
}
|
||||
|
||||
return tags;
|
||||
|
@@ -65,6 +65,7 @@ function favTag(){
|
||||
var ptt=lang.lang_tags_unrealtime;
|
||||
var nowon="("+lang.lang_tags_realtime+")";
|
||||
}
|
||||
tag=escapeHTML(tag);
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a>'+nowon+'<span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="' +lang.lang_parse_tagTL.replace("{{tag}}" ,'#'+tag)+ '">TL</a> <a onclick="brInsert(\'#' + tag + '\')" class="pointer" title="' + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">Toot</a> '+
|
||||
'<a onclick="autoToot(\'' + tag + '\');" class="pointer" title="'+lang.lang_tags_always + lang.lang_parse_tagtoot.replace("{{tag}}" ,'#'+tag) + '">'+ptt+'</a> <a onclick="tagRemove(\'' + key + '\')" class="pointer" title="' +lang.lang_tags_tagunpin.replace("{{tag}}" ,'#'+tag)+ '">'+lang.lang_del+'</a></span> ';
|
||||
});
|
||||
@@ -96,6 +97,7 @@ function trendTag(){
|
||||
var tags="";
|
||||
json=json.score;
|
||||
Object.keys(json).forEach(function(tag) {
|
||||
tag=escapeHTML(tag);
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span> ';
|
||||
});
|
||||
$("#taglist").append('<div class="trendtag">アイマストドントレンドタグ<i class="material-icons pointer" onclick="trendTag()" style="font-size:12px">refresh</i>:' + tags+'</div>');
|
||||
@@ -115,6 +117,7 @@ function tagTL(a,b,c,d){
|
||||
tl(a,b,acct_id,d);
|
||||
}
|
||||
function autoToot(tag){
|
||||
tag=escapeHTML(tag)
|
||||
var nowPT=localStorage.getItem("stable")
|
||||
if(nowPT==tag){
|
||||
localStorage.removeItem("stable");
|
||||
|
@@ -164,34 +164,14 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
localStorage.setItem("now", type);
|
||||
if (localStorage.getItem("mode_" + domain) == "misskey") {
|
||||
var misskey = true;
|
||||
console.log(type);
|
||||
if (type == "home") {
|
||||
var start = "wss://" + domain +
|
||||
"/?i=" + at;
|
||||
} else if (type == "pub") {
|
||||
var start = "wss://" + domain +
|
||||
"/global-timeline?i=" + at;
|
||||
} else if (type == "pub-media") {
|
||||
var start = "wss://" + domain +
|
||||
"/global-timeline?i=" + at;
|
||||
} else if (type == "local") {
|
||||
var start = "wss://" + domain +
|
||||
"/local-timeline?i=" + at;
|
||||
} else if (type == "local-media") {
|
||||
var start = "wss://" + domain +
|
||||
"/local-timeline?i=" + at;
|
||||
} else if (type == "mix") {
|
||||
var start = "wss://" + domain +
|
||||
"/hybrid-timeline?i=" + at;
|
||||
} else if (type == "tag") {
|
||||
Materialize.toast(lang.lang_misskeyparse_tagnostr, 3000);
|
||||
} else if (type == "noauth") {
|
||||
var start = "wss://" + acct_id +
|
||||
"/local-timeline?i=" + at;
|
||||
} else if (type=="list"){
|
||||
var start = "wss://" + domain +
|
||||
"/user-list?i=" + at+"&listId="+data;
|
||||
var key = localStorage.getItem("misskey_wss_" + acct_id)
|
||||
var send = '{"type":"connect","body":{"channel":"' + typePs(type) + '","id":"' + tlid + '"}}'
|
||||
var mskyset = setInterval(function () {
|
||||
if (misskeywsstate[key]) {
|
||||
misskeyws[key].send(send)
|
||||
clearInterval(mskyset)
|
||||
}
|
||||
}, 100);
|
||||
} else {
|
||||
var misskey = false;
|
||||
if (localStorage.getItem("streaming_" + acct_id)) {
|
||||
@@ -233,8 +213,6 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
var start = wss +
|
||||
"/api/v1/streaming/?stream=direct&access_token=" + at;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(start);
|
||||
var wsid = websocket.length;
|
||||
localStorage.setItem("wss_" + tlid, wsid);
|
||||
@@ -337,8 +315,8 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
return false;
|
||||
};
|
||||
websocket[wsid].onclose = function () {
|
||||
console.error("Closing");
|
||||
console.error(tlid);
|
||||
console.log("Closing");
|
||||
console.log(tlid);
|
||||
if (mode == "error") {
|
||||
$("#notice_icon_" + tlid).addClass("red-text");
|
||||
todo('WebSocket Closed');
|
||||
@@ -351,7 +329,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//一定のスクロールで発火
|
||||
@@ -619,7 +597,13 @@ function tlCloser() {
|
||||
}
|
||||
|
||||
});
|
||||
websocketNotf = [];
|
||||
Object.keys(misskeyws).forEach(function (tlid) {
|
||||
if (misskeyws[tlid]) {
|
||||
misskeyws[tlid].close();
|
||||
console.log("Close Streaming API:Misskey" + tlid);
|
||||
}
|
||||
});
|
||||
misskeyws={}
|
||||
}
|
||||
|
||||
//TLのタイトル
|
||||
@@ -660,7 +644,7 @@ function cap(type, data, acct_id) {
|
||||
var response = "Federated TL(Media)";
|
||||
}
|
||||
} else if (type == "tag") {
|
||||
var response= "#" + data
|
||||
var response = "#" + escapeHTML(data)
|
||||
} else if (type == "list") {
|
||||
var ltitle = localStorage.getItem("list_" + data + "_" + acct_id);
|
||||
var response = "List(" + ltitle + ")"
|
||||
@@ -685,7 +669,7 @@ function cap(type, data, acct_id) {
|
||||
} else if (type == "webview") {
|
||||
var response = "Twitter"
|
||||
} else if (type == "tootsearch") {
|
||||
var response="tootsearch(" + data + ")";
|
||||
var response = "tootsearch(" + escapeHTML(data) + ")";
|
||||
}
|
||||
return response;
|
||||
}
|
||||
@@ -710,6 +694,24 @@ function com(type, data) {
|
||||
return "direct?"
|
||||
}
|
||||
}
|
||||
//Misskey
|
||||
function typePs(type) {
|
||||
if (type == "home") {
|
||||
return "homeTimeline"
|
||||
} else if (type == "local" || type == "noauth") {
|
||||
return "localTimeline"
|
||||
} else if (type == "local-media") {
|
||||
return "localTimeline"
|
||||
} else if (type == "pub") {
|
||||
return "globalTimeline"
|
||||
} else if (type == "mix") {
|
||||
return "hybridTimeline"
|
||||
} else if (type == "tag") {
|
||||
return "hashtag"
|
||||
} else if (type == "list") {
|
||||
return "userList"
|
||||
}
|
||||
}
|
||||
function misskeycom(type, data) {
|
||||
if (type == "home") {
|
||||
return "timeline"
|
||||
@@ -788,7 +790,7 @@ function strAliveInt(){
|
||||
}
|
||||
function reconnector(tlid, type, acct_id, data, mode) {
|
||||
console.log("Reconnector:" + mode)
|
||||
if(type=="mix" || type=="plus"){
|
||||
if (type == "mix" || type == "integrated" || type == "plus") {
|
||||
if (localStorage.getItem("voice_" + tlid)) {
|
||||
var voice = true;
|
||||
} else {
|
||||
@@ -801,10 +803,11 @@ function reconnector(tlid,type,acct_id,data,mode){
|
||||
}
|
||||
var wssh = localStorage.getItem("wssH_" + tlid);
|
||||
websocketHome[wssh].close();
|
||||
var wssh=localStorage.getItem("wssL_" + tlid);
|
||||
var wssl = localStorage.getItem("wssL_" + tlid);
|
||||
websocketLocal[wssl].close();
|
||||
mixre(acct_id, tlid, type, mute, "", voice, mode);
|
||||
} else if (type == "notf") {
|
||||
notfColumn(acct_id, tlid, "")
|
||||
} else {
|
||||
var wss = localStorage.getItem("wss_" + tlid);
|
||||
websocket[wss].close();
|
||||
|
@@ -20,7 +20,7 @@ $('.type').click(function() {
|
||||
$("#type-sel").val($(this).attr("data-type"))
|
||||
})
|
||||
//最初、カラム変更時に発火
|
||||
function parseColumn() {
|
||||
function parseColumn(dontclose) {
|
||||
console.log("parse");
|
||||
var size = localStorage.getItem("size");
|
||||
if (size) {
|
||||
@@ -28,7 +28,13 @@ function parseColumn() {
|
||||
$(".toot-reset").css("font-size", size + "px");
|
||||
$(".cont-series").css("font-size", size + "px");
|
||||
}
|
||||
if(localStorage.getItem("menu-done")){
|
||||
$("#fukidashi").addClass("hide")
|
||||
}
|
||||
if(!dontclose){
|
||||
tlCloser();
|
||||
}
|
||||
|
||||
var multi = localStorage.getItem("multi");
|
||||
if (multi) {
|
||||
var obj = JSON.parse(multi);
|
||||
@@ -46,6 +52,11 @@ function parseColumn() {
|
||||
ckdb(key);
|
||||
//フィルターデータ読もう
|
||||
getFilter(key);
|
||||
var domain = localStorage.getItem("domain_" + key);
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
localStorage.removeItem("misskey_wss_" + key)
|
||||
connectMisskey(key)
|
||||
}
|
||||
});
|
||||
}
|
||||
var acctlist=obj;
|
||||
@@ -157,7 +168,7 @@ function parseColumn() {
|
||||
'<input type="checkbox" class="filled-in" id="exc-fav-'+key+'" '+excludeCk(key,"favourite")+' /><label for="exc-fav-'+key+'" class="exc-chb"><i class="fas fa-star exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-bt-'+key+'" '+excludeCk(key,"reblog")+' /><label for="exc-bt-'+key+'" class="exc-chb" ><i class="fas fa-retweet exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-follow-'+key+'" '+excludeCk(key,"follow")+' /><label for="exc-follow-'+key+'" class="exc-chb" ><i class="fas fa-users exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-follow-'+key+'" '+excludeCk(key,"poll")+' /><label for="exc-poll-'+key+'" class="exc-chb" ><i class="fas fa-tasks exc-icons"></i></label> '+
|
||||
'<input type="checkbox" class="filled-in" id="exc-poll-'+key+'" '+excludeCk(key,"poll")+' /><label for="exc-poll-'+key+'" class="exc-chb" ><i class="fas fa-tasks exc-icons"></i></label> '+
|
||||
'<button class="btn waves-effect" style="width:60px; padding:0;" onclick="exclude('+key+')">Filter</button><br>';
|
||||
}else if(acct.type=="home"){
|
||||
var exclude='<a onclick="ebtToggle(' + key +
|
||||
@@ -177,9 +188,17 @@ function parseColumn() {
|
||||
if(key===0){
|
||||
left_hold='';
|
||||
}
|
||||
if(localStorage.getItem("mode_" + localStorage.getItem("domain_" + acct.domain))=="misskey"){
|
||||
var isMisRed=""
|
||||
exclude=""
|
||||
var if_misskey_hide="hide"
|
||||
}else{
|
||||
var isMisRed="red-text"
|
||||
var if_misskey_hide=""
|
||||
}
|
||||
var html='<div class="boxIn" id="timeline_box_' + key + '_box" tlid="' + key +
|
||||
'" data-acct="'+acct.domain+'"><div class="notice-box z-depth-2" id="menu_'+key+'" style="'+insert+' ">'+
|
||||
'<div class="area-notice"><i class="material-icons waves-effect red-text" id="notice_icon_' + key + '"'+notf_attr+' style="font-size:40px; padding-top:25%;" onclick="checkStr(\''+acct.type+'\', \''+data+'\', \''+acct.domain+'\', \''+key+'\', \''+delc+'\',\''+voice+'\',null)" title="'+lang.lang_layout_gotop +'"></i></div>'+
|
||||
'<div class="area-notice"><i class="material-icons waves-effect '+isMisRed+'" id="notice_icon_' + key + '"'+notf_attr+' style="font-size:40px; padding-top:25%;" onclick="checkStr(\''+acct.type+'\', \''+data+'\', \''+acct.domain+'\', \''+key+'\', \''+delc+'\',\''+voice+'\',null)" title="'+lang.lang_layout_gotop +'"></i></div>'+
|
||||
'<div class="area-notice_name"><span id="notice_' + key + '" class="tl-title"></span></div>'+
|
||||
'<div class="area-a1"><a onclick="notfToggle(' + acct.domain + ',' + key +
|
||||
')" class="setting nex '+if_notf+'" title="'+unique_notf+'"'+icnsert+'><i class="material-icons waves-effect nex notf-icon_' +
|
||||
@@ -198,8 +217,8 @@ function parseColumn() {
|
||||
key + '">On</span></a>'+lang.lang_layout_linkana +'<br><a onclick="voiceToggle(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_layout_tts +'">hearing</i><span id="sta-voice-' +
|
||||
key + '">On</span></a>'+lang.lang_layout_tts +'TL<br><a onclick="reconnector(' + key +
|
||||
',\''+acct.type+'\',\''+acct.domain+'\',\''+acct.data+'\')" class="setting nex '+if_notf+'"><i class="material-icons waves-effect nex '+if_notf+'" title="'+lang.lang_layout_reconnect+'">low_priority</i></a><span class="'+if_notf+'">'+lang.lang_layout_reconnect+'</span><br>'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl '+acct.type+'-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="'+acct.domain+'"><div id="landing_'+key+'" style="text-align:center">'+lang.lang_layout_nodata +'</div></div></div>'
|
||||
',\''+acct.type+'\',\''+acct.domain+'\',\''+escapeHTML(acct.data)+'\')" class="setting nex '+if_notf+' '+if_misskey_hide+'"><i class="material-icons waves-effect nex '+if_notf+'" title="'+lang.lang_layout_reconnect+'">low_priority</i></a><span class="'+if_notf+'">'+lang.lang_layout_reconnect+'</span><br>'+lang.lang_layout_headercolor +'<br><div id="picker_'+key+'" class="color-picker"></div></div><div class="tl-box" tlid="' + key + '"><div id="timeline_' + key +
|
||||
'" class="tl '+acct.type+'-timeline " tlid="' + key + '" data-type="' + acct.type + '" data-acct="'+acct.domain+'" data-const="' + acct.type + '_'+acct.domain+'"><div id="landing_'+key+'" style="text-align:center">'+lang.lang_layout_nodata +'</div></div></div>'
|
||||
$('#timeline_box_' + basekey + '_parentBox').append(html);
|
||||
localStorage.removeItem("pool_" + key);
|
||||
if (acct.data) {
|
||||
|
@@ -1,4 +1,6 @@
|
||||
function menu(){
|
||||
localStorage.setItem("menu-done",true);
|
||||
$("#fukidashi").addClass("hide")
|
||||
if(!$("#menu").hasClass("appear")){
|
||||
$("#menu").addClass("appear")
|
||||
var left=localStorage.getItem("menu-left");
|
||||
|
@@ -123,6 +123,10 @@ function load() {
|
||||
var font = "";
|
||||
}
|
||||
$("#font").val(font);
|
||||
$("#c1-file").text(localStorage.getItem("custom1"))
|
||||
$("#c2-file").text(localStorage.getItem("custom2"));
|
||||
$("#c3-file").text(localStorage.getItem("custom3"));
|
||||
$("#c4-file").text(localStorage.getItem("custom4"));
|
||||
}
|
||||
|
||||
function climute(){
|
||||
@@ -137,12 +141,13 @@ function climute(){
|
||||
return;
|
||||
}
|
||||
var templete;
|
||||
console.log(obj)
|
||||
Object.keys(obj).forEach(function(key) {
|
||||
var cli = obj[key];
|
||||
var list = key * 1 + 1;
|
||||
templete = '<div class="acct" id="acct_' + key + '">' + list +
|
||||
'.' +
|
||||
cli + '<button class="btn waves-effect red disTar" onclick="cliMuteDel(' +
|
||||
escapeHTML(cli) + '<button class="btn waves-effect red disTar" onclick="cliMuteDel(' +
|
||||
key + ')">'+lang.lang_del+'</button><br></div>';
|
||||
$("#mute-cli").append(templete);
|
||||
});
|
||||
@@ -154,7 +159,7 @@ function cliMuteDel(key){
|
||||
obj.splice(key, 1);
|
||||
var json = JSON.stringify(obj);
|
||||
localStorage.setItem("client_mute", json);
|
||||
mute();
|
||||
climute();
|
||||
}
|
||||
|
||||
function wordmute(){
|
||||
@@ -636,6 +641,22 @@ ipc.on('theme-json-create-complete', function (event, args) {
|
||||
$("#custom_import").val("");
|
||||
ctLoad()
|
||||
});
|
||||
function customSound(key){
|
||||
var electron = require("electron");
|
||||
var remote=electron.remote;
|
||||
var dialog=remote.dialog;
|
||||
dialog.showOpenDialog(null, {
|
||||
title: 'Custom sound',
|
||||
properties: ['openFile'],
|
||||
filters: [
|
||||
{name: 'Audio', extensions: ['mp3','aac','wav','flac','m4a']},
|
||||
{name: 'All', extensions: ['*']},
|
||||
]
|
||||
}, (fileNames) => {
|
||||
localStorage.setItem("custom"+key,fileNames[0]);
|
||||
$("#c1-file").text(fileNames[0])
|
||||
});
|
||||
}
|
||||
window.onload = function() {
|
||||
//最初に読む
|
||||
load();
|
||||
@@ -648,3 +669,4 @@ oksload();
|
||||
npprovider();
|
||||
ctLoad()
|
||||
};
|
||||
|
||||
|
@@ -32,7 +32,7 @@ function sortload(){
|
||||
var acctdata=user+"@"+domain;
|
||||
}
|
||||
|
||||
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><div class="sorticon"><i class="material-icons">'+icon(acct.type)+'</i></div><div class="sorttitle">'+cap(acct.type, acct.data,acct.domain)+'</div><div class="sortaction"><a onclick="goColumn(' + key +
|
||||
var html='<li class="drag-content" data-id="'+key+'" data-flag="'+flag+'"'+insert+'><div class="sorticon"><i class="material-icons">'+icon(acct.type)+'</i></div><div class="sorttitle">'+cap(acct.type, escapeHTML(acct.data),acct.domain)+'</div><div class="sortaction"><a onclick="goColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="'+lang.lang_sort_gothis+'">forward</i></a> <a onclick="removeColumn(' + key +
|
||||
')" class="setting nex"><i class="material-icons waves-effect nex" title="このカラムを削除">cancel</i></a></div><div class="sortacct">'+acctdata+'</div></li>';
|
||||
$("#sort").append(html);
|
||||
@@ -103,7 +103,7 @@ function sort(){
|
||||
var json = JSON.stringify(newobj);
|
||||
localStorage.setItem("column", json);
|
||||
$("#sort").html("");
|
||||
Materialize.toast("並べ替え完了。", 3000);
|
||||
Materialize.toast("Sorted", 3000);
|
||||
sortload();
|
||||
parseColumn();
|
||||
sortMenu()
|
||||
|
@@ -57,7 +57,7 @@ function startmem(){
|
||||
var use=arg[0];
|
||||
var cpu=arg[1];
|
||||
var total=arg[2]
|
||||
$("#tips-text").html(cpu+"<br>Memory:"+Math.floor(use/1024/1024/102.4)/10+"/"+Math.floor(total/1024/1024/102.4)/10+"GB("+Math.floor(use/total*100)+"%)")
|
||||
$("#tips-text").html(escapeHTML(cpu)+"<br>Memory:"+Math.floor(use/1024/1024/102.4)/10+"/"+Math.floor(total/1024/1024/102.4)/10+"GB("+Math.floor(use/total*100)+"%)")
|
||||
})
|
||||
}
|
||||
//トレンドタグ
|
||||
@@ -83,7 +83,7 @@ function trendTagonTip(){
|
||||
var tags="";
|
||||
json=json.score;
|
||||
Object.keys(json).forEach(function(tag) {
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + tag + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span><br>';
|
||||
tags = tags + '<a onclick="tagShow(\'' + tag + '\')" class="pointer">#' + escapeHTML(tag) + '</a><span class="hide" data-tag="' + tag + '"> <a onclick="tagTL(\'tag\',\'' + tag + '\',false,\'add\')" class="pointer" title="#' + tag + 'のタイムライン">TL</a> <a onclick="show();brInsert(\'#' + tag + '\')" class="pointer" title="#' + tag + 'でトゥート">Toot</a></span><br>';
|
||||
});
|
||||
$("#tips-text").html('<div class="trendtag">トレンドタグ<i class="material-icons pointer" onclick="trendTagonTip()" style="font-size:12px">refresh</i>:<br>' + tags+'</div>');
|
||||
trendTagonTipInterval()
|
||||
|
@@ -438,10 +438,11 @@ function showReq(more, acct_id) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
if(localStorage.getItem("mode_" + domain)=="misskey"){
|
||||
var templete = userparse(json, 'true',acct_id);
|
||||
|
||||
if(localStorage.getItem("mode_" + domain)!="misskey"){
|
||||
var templete = userparse(json, true,acct_id);
|
||||
}else{
|
||||
var templete = misskeyUserparse(json, 'true',acct_id);
|
||||
var templete = misskeyUserparse(json, true,acct_id);
|
||||
}
|
||||
|
||||
if(!json[0]){
|
||||
@@ -571,15 +572,30 @@ function udAdd(start) {
|
||||
for(var i=0;i<fields.length;i++){
|
||||
if(fields[i].type=="IdentityProof"){
|
||||
if(fields[i].signatureAlgorithm=="keybase"){
|
||||
var html='<a href="https://keybase.io/'+fields[i].name+'" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",fields[i].signatureAlgorithm)+'"><i class="fas fa-key" aria-hidden="true"></i>'+fields[i].signatureAlgorithm+':'+fields[i].name+'</a>';
|
||||
var html='<a href="https://keybase.io/'+fields[i].name+'" target="_blank" class="cbadge teal waves-effect" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",escapeHTML(fields[i].signatureAlgorithm))+'"><i class="fas fa-key" aria-hidden="true"></i>'+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+'</a>';
|
||||
}else{
|
||||
var html='<span class="cbadge teal" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",fields[i].signatureAlgorithm)+'"><i class="fas fa-key" aria-hidden="true"></i>'+fields[i].signatureAlgorithm+':'+fields[i].name+'</span>';
|
||||
var html='<span class="cbadge teal" style="max-width:200px;" title="'+lang.lang_hisdata_key.replace("{{set}}",escapeHTML(fields[i].signatureAlgorithm))+'"><i class="fas fa-key" aria-hidden="true"></i>'+escapeHTML(fields[i].signatureAlgorithm)+':'+escapeHTML(fields[i].name)+'</span>';
|
||||
}
|
||||
$("#his-proof-prof").append(html)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
fetch("https://notestock.osa-p.net/api/v1/isstock.json?id="+start.replace("@","users/"), {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Accept': 'application/json'
|
||||
},
|
||||
}).then(function(response) {
|
||||
return response.json();
|
||||
}).catch(function(error) {
|
||||
todo(error);
|
||||
console.error(error);
|
||||
}).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:200px;" title="Notestock">Notestock</a>';
|
||||
$("#his-proof-prof").append(html)
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
@@ -157,8 +157,7 @@ function udg(user, acct_id) {
|
||||
var when="";
|
||||
var color="inherit"
|
||||
}
|
||||
fval=twemoji.parse(fval);
|
||||
note=note+'<tr><td class="his-field-title">'+fname+'</td><td class="his-field-content" title="'+when+'" style="background-color:'+color+'">'+fval+'</td></tr>';
|
||||
note=note+'<tr><td class="his-field-title">'+twemoji.parse(escapeHTML(fname))+'</td><td class="his-field-content" title="'+when+'" style="background-color:'+color+'">'+twemoji.parse(fval)+'</td></tr>';
|
||||
}
|
||||
note=note+'</table>'
|
||||
$("#his-des").html(twemoji.parse(note));
|
||||
@@ -185,10 +184,10 @@ function udg(user, acct_id) {
|
||||
showFrl('', acct_id);
|
||||
$("#his-name-val").val(json.display_name);
|
||||
if(json.fields.length>0){
|
||||
$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value));
|
||||
$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value));
|
||||
$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value));
|
||||
$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value));
|
||||
if(json.fields[0]){$("#his-f1-name").val(json.fields[0].name); $("#his-f1-val").val($.strip_tags(json.fields[0].value));}
|
||||
if(json.fields[1]){$("#his-f2-name").val(json.fields[1].name); $("#his-f2-val").val($.strip_tags(json.fields[1].value));}
|
||||
if(json.fields[2]){$("#his-f3-name").val(json.fields[2].name); $("#his-f3-val").val($.strip_tags(json.fields[2].value));}
|
||||
if(json.fields[3]){$("#his-f4-name").val(json.fields[3].name); $("#his-f4-val").val($.strip_tags(json.fields[3].value));}
|
||||
}
|
||||
var des = json.note;
|
||||
des = des.replace(/<br \/>/g, "\n")
|
||||
@@ -279,7 +278,7 @@ function misskeyUdg(user, acct_id) {
|
||||
$("#his-follow").text(json.followingCount);
|
||||
$("#his-follower").text(json.followersCount);
|
||||
$("#his-since").text(crat(json.createdAt));
|
||||
var note=json.description;
|
||||
var note=escapeHTML(json.description);
|
||||
$("#his-des").html(twemoji.parse(note));
|
||||
if(json.isCat){
|
||||
$("#his-bot").html("Cat"+twemoji.parse("😺"));
|
||||
|
@@ -73,7 +73,7 @@ function system(mainWindow, dir, lang) {
|
||||
var ver = app.getVersion()
|
||||
var window = new BrowserWindow({
|
||||
width: 300,
|
||||
height: 460,
|
||||
height: 480,
|
||||
"transparent": false, // ウィンドウの背景を透過
|
||||
"frame": false, // 枠の無いウィンドウ
|
||||
"resizable": false
|
||||
|
590
app/package-lock.json
generated
590
app/package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.2.1",
|
||||
"version": "18.3.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -18,8 +18,7 @@
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
||||
"optional": true
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.10.0",
|
||||
@@ -158,14 +157,12 @@
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
|
||||
"optional": true
|
||||
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
|
||||
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"delegates": "^1.0.0",
|
||||
"readable-stream": "^2.0.6"
|
||||
@@ -248,7 +245,7 @@
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
|
||||
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
|
||||
"optional": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"inherits": "~2.0.0"
|
||||
}
|
||||
@@ -475,6 +472,12 @@
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
|
||||
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
|
||||
"optional": true
|
||||
},
|
||||
"chromium-pickle-js": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz",
|
||||
@@ -493,6 +496,21 @@
|
||||
"integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
|
||||
"dev": true
|
||||
},
|
||||
"cli-cursor": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
|
||||
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"restore-cursor": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"cli-spinners": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz",
|
||||
"integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==",
|
||||
"dev": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
|
||||
@@ -537,6 +555,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"clone": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
||||
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
|
||||
"dev": true
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
@@ -557,6 +581,12 @@
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
|
||||
"dev": true
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
|
||||
"integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==",
|
||||
"dev": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||
@@ -605,8 +635,7 @@
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
|
||||
"optional": true
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -676,6 +705,15 @@
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
||||
"dev": true
|
||||
},
|
||||
"defaults": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
|
||||
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"clone": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
@@ -684,8 +722,13 @@
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
|
||||
"optional": true
|
||||
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
||||
},
|
||||
"detect-libc": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
||||
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
|
||||
"dev": true
|
||||
},
|
||||
"dmg-builder": {
|
||||
"version": "6.6.0",
|
||||
@@ -914,6 +957,165 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"electron-rebuild": {
|
||||
"version": "1.8.4",
|
||||
"resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.4.tgz",
|
||||
"integrity": "sha512-QBUZg1due+R0bww5rNd4gEcsKczyhxyLrxSFZlKihwHRxaiHrGut532JAUe0fRz+VIU4WNSfNKyZ/ZwSGjaDhA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"colors": "^1.3.3",
|
||||
"debug": "^4.1.1",
|
||||
"detect-libc": "^1.0.3",
|
||||
"fs-extra": "^7.0.1",
|
||||
"node-abi": "^2.7.0",
|
||||
"node-gyp": "^3.8.0",
|
||||
"ora": "^3.0.0",
|
||||
"spawn-rx": "^3.0.0",
|
||||
"yargs": "^12.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
|
||||
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
|
||||
"dev": true
|
||||
},
|
||||
"camelcase": {
|
||||
"version": "5.3.1",
|
||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
|
||||
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
|
||||
"dev": true
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
||||
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"get-caller-file": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
|
||||
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
|
||||
"dev": true
|
||||
},
|
||||
"is-fullwidth-code-point": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
|
||||
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
|
||||
"dev": true
|
||||
},
|
||||
"node-gyp": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
|
||||
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fstream": "^1.0.0",
|
||||
"glob": "^7.0.3",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"mkdirp": "^0.5.0",
|
||||
"nopt": "2 || 3",
|
||||
"npmlog": "0 || 1 || 2 || 3 || 4",
|
||||
"osenv": "0",
|
||||
"request": "^2.87.0",
|
||||
"rimraf": "2",
|
||||
"semver": "~5.3.0",
|
||||
"tar": "^2.0.0",
|
||||
"which": "1"
|
||||
}
|
||||
},
|
||||
"require-main-filename": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
|
||||
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
|
||||
"dev": true
|
||||
},
|
||||
"string-width": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
|
||||
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-fullwidth-code-point": "^2.0.0",
|
||||
"strip-ansi": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
|
||||
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
"inherits": "2"
|
||||
}
|
||||
},
|
||||
"yargs": {
|
||||
"version": "12.0.5",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
|
||||
"integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cliui": "^4.0.0",
|
||||
"decamelize": "^1.2.0",
|
||||
"find-up": "^3.0.0",
|
||||
"get-caller-file": "^1.0.1",
|
||||
"os-locale": "^3.0.0",
|
||||
"require-directory": "^2.1.1",
|
||||
"require-main-filename": "^1.0.1",
|
||||
"set-blocking": "^2.0.0",
|
||||
"string-width": "^2.0.0",
|
||||
"which-module": "^2.0.0",
|
||||
"y18n": "^3.2.1 || ^4.0.0",
|
||||
"yargs-parser": "^11.1.1"
|
||||
}
|
||||
},
|
||||
"yargs-parser": {
|
||||
"version": "11.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
|
||||
"integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"camelcase": "^5.0.0",
|
||||
"decamelize": "^1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"emoji-regex": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
|
||||
@@ -1118,17 +1320,25 @@
|
||||
"fs-extra": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
|
||||
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
||||
"optional": true
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"fstream": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
|
||||
"optional": true,
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
@@ -1140,7 +1350,6 @@
|
||||
"version": "2.7.4",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
||||
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
@@ -1182,7 +1391,6 @@
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -1262,8 +1470,7 @@
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
|
||||
"optional": true
|
||||
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
||||
},
|
||||
"hosted-git-info": {
|
||||
"version": "2.7.1",
|
||||
@@ -1315,7 +1522,6 @@
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@@ -1620,6 +1826,21 @@
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash.assign": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
|
||||
"integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=",
|
||||
"dev": true
|
||||
},
|
||||
"log-symbols": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
|
||||
"integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"loud-rejection": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
|
||||
@@ -1767,6 +1988,36 @@
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
||||
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
|
||||
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"minizlib": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
|
||||
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minipass": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
@@ -1797,19 +2048,27 @@
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz",
|
||||
"integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"node-addon-api": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz",
|
||||
"integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==",
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.3.tgz",
|
||||
"integrity": "sha512-FXWH6mqjWgU8ewuahp4spec8LkroFZK2NicOv6bNwZC3kcwZUI8LeZdG80UzTSLLhK4T7MsgNwlYDVRlDdfTDg==",
|
||||
"optional": true
|
||||
},
|
||||
"node-gyp": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
|
||||
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz",
|
||||
"integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fstream": "^1.0.0",
|
||||
"glob": "^7.0.3",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"mkdirp": "^0.5.0",
|
||||
@@ -1819,138 +2078,15 @@
|
||||
"request": "^2.87.0",
|
||||
"rimraf": "2",
|
||||
"semver": "~5.3.0",
|
||||
"tar": "^2.0.0",
|
||||
"tar": "^4.4.8",
|
||||
"which": "1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
||||
"optional": true
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"optional": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
"optional": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
|
||||
"optional": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"optional": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"optional": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.0",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.4.3",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"optional": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
|
||||
"optional": true
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1969,7 +2105,6 @@
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"abbrev": "1"
|
||||
}
|
||||
@@ -1988,13 +2123,12 @@
|
||||
},
|
||||
"nowplaying-node": {
|
||||
"version": "0.1.3",
|
||||
"resolved": "https://registry.npmjs.org/nowplaying-node/-/nowplaying-node-0.1.3.tgz",
|
||||
"integrity": "sha512-nEvuw93xmgZS7X1XqUaLJXhd4iB54xjTOnYuEEoPMBHHs3QWGECNKvnD0uDBCe269sUK8Z5InX5rPjzf3vRVrw==",
|
||||
"resolved": "git+https://github.com/cutls/nowplaying-node.git#1641fc3c7fad8cd1f10f15a2517ada67a8de802c",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@types/node": "^10.1.2",
|
||||
"node-addon-api": "^1.2.0",
|
||||
"node-gyp": "^3.6.2"
|
||||
"node-gyp": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
@@ -2010,7 +2144,6 @@
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
||||
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
@@ -2070,11 +2203,58 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"onetime": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
|
||||
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mimic-fn": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"mimic-fn": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
|
||||
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"ora": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
|
||||
"integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.4.2",
|
||||
"cli-cursor": "^2.1.0",
|
||||
"cli-spinners": "^2.0.0",
|
||||
"log-symbols": "^2.2.0",
|
||||
"strip-ansi": "^5.2.0",
|
||||
"wcwidth": "^1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^4.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"os-homedir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
|
||||
"optional": true
|
||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
||||
},
|
||||
"os-locale": {
|
||||
"version": "3.1.0",
|
||||
@@ -2129,14 +2309,12 @@
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||
"optional": true
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"osenv": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
|
||||
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0",
|
||||
"os-tmpdir": "^1.0.0"
|
||||
@@ -2258,8 +2436,7 @@
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
||||
"optional": true
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"path-is-inside": {
|
||||
"version": "1.0.2",
|
||||
@@ -2601,13 +2778,31 @@
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
||||
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
||||
"optional": true,
|
||||
"restore-cursor": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
||||
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^7.0.5"
|
||||
"onetime": "^2.0.0",
|
||||
"signal-exit": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
||||
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||
"requires": {
|
||||
"glob": "^7.1.3"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz",
|
||||
"integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
@@ -2719,6 +2914,17 @@
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"spawn-rx": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz",
|
||||
"integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "^2.5.1",
|
||||
"lodash.assign": "^4.2.0",
|
||||
"rxjs": "^6.3.1"
|
||||
}
|
||||
},
|
||||
"spdx-correct": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
|
||||
@@ -2872,14 +3078,32 @@
|
||||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"version": "4.4.8",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
|
||||
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
"inherits": "2"
|
||||
"chownr": "^1.1.1",
|
||||
"fs-minipass": "^1.2.5",
|
||||
"minipass": "^2.3.4",
|
||||
"minizlib": "^1.1.1",
|
||||
"mkdirp": "^0.5.0",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
|
||||
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"temp-file": {
|
||||
@@ -2993,6 +3217,12 @@
|
||||
"utf8-byte-length": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
|
||||
"dev": true
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
@@ -3150,6 +3380,15 @@
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-2.6.9.tgz",
|
||||
"integrity": "sha512-t1+tvH8hybPM86oNne3ZozCD02zj/VoZIiojOBPJLjwBn7hxYU5e1gBObFpq8ts1NEn1VhPf/hVXBDAJ3X5ljg=="
|
||||
},
|
||||
"wcwidth": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
|
||||
"integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"defaults": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
@@ -3168,7 +3407,6 @@
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
|
||||
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"string-width": "^1.0.2 || 2"
|
||||
}
|
||||
@@ -3217,7 +3455,7 @@
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||
"resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "thedesk",
|
||||
"version": "18.2.3",
|
||||
"version": "18.4.0",
|
||||
"description": "TheDesk is a Mastodon client for PC.",
|
||||
"repository": "https://github.com/cutls/TheDesk",
|
||||
"main": "main.js",
|
||||
@@ -11,15 +11,15 @@
|
||||
"build:all": "electron-builder --win --linux",
|
||||
"build:win": "electron-builder --win"
|
||||
},
|
||||
"keywords": [],
|
||||
"keywords": ["mastodon","client","electron","thedesk"],
|
||||
"bugs": {
|
||||
"url": "https://github.com/cutls/TheDesk/issues",
|
||||
"email": "mstdn@thedesk.top"
|
||||
"email": "web-pro@cutls.com"
|
||||
},
|
||||
"homepage": "https://thedesk.top",
|
||||
"author": {
|
||||
"name": "Cutls",
|
||||
"url": "https://kirishima.clooud/@Cutls",
|
||||
"url": "https://cutls.com/@Cutls",
|
||||
"email": "web-pro@cutls.com"
|
||||
},
|
||||
"contributor": [
|
||||
@@ -35,7 +35,7 @@
|
||||
},
|
||||
{
|
||||
"name": "kPherox",
|
||||
"url": "https://www.kr-kp.com/",
|
||||
"url": "https://pawoo.net/@kPherox",
|
||||
"email": "admin@mail.kr-kp.com"
|
||||
}
|
||||
],
|
||||
@@ -49,7 +49,7 @@
|
||||
"vue": "^2.6.9"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"nowplaying-node": "^0.1.3",
|
||||
"nowplaying-node": "git+https://github.com/cutls/nowplaying-node",
|
||||
"itunes-nowplaying-mac": "git+https://github.com/rinsuki/itunes-nowplaying-mac#pull/4/head",
|
||||
"font-manager": "^0.3.0"
|
||||
},
|
||||
@@ -88,21 +88,23 @@
|
||||
"linux": {
|
||||
"icon": "build/icons",
|
||||
"target": [
|
||||
"zip",
|
||||
"snap"
|
||||
"zip"
|
||||
],
|
||||
"category": "Network"
|
||||
},
|
||||
"mac": {
|
||||
"target": ["dmg","zip"]
|
||||
"target": [
|
||||
"dmg",
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
"electronDownload": {
|
||||
"version": "4.1.4"
|
||||
"version": "4.2.0"
|
||||
},
|
||||
"electronVersion": "4.1.4"
|
||||
"electronVersion": "4.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"electron": "^4.1.4",
|
||||
"electron": "^4.2.0",
|
||||
"electron-builder": "^20.39.0"
|
||||
}
|
||||
}
|
||||
|
BIN
app/source/notif.wav
Normal file
BIN
app/source/notif.wav
Normal file
Binary file not shown.
BIN
app/source/notif2.wav
Normal file
BIN
app/source/notif2.wav
Normal file
Binary file not shown.
BIN
app/source/notif3.wav
Normal file
BIN
app/source/notif3.wav
Normal file
Binary file not shown.
@@ -1,10 +1,12 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
@@ -21,18 +23,20 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/version.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script>
|
||||
var ver="Usamin (18.2.3)";
|
||||
var ver = "Usamin (18.4.0)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -41,6 +45,7 @@ var acct_id=0;
|
||||
var tlid = 0;
|
||||
</script>
|
||||
<textarea id="copy" style="top:-100px; position:fixed;"></textarea>
|
||||
<canvas id="canvas" style="top:-100px; position:fixed;width:32px;height:32px" width="32" height="32"></canvas>
|
||||
<div id="tl">
|
||||
<!--TL-->
|
||||
<!--ドラッグハンドラ-->
|
||||
@@ -52,55 +57,76 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-box" class="z-depth-5">
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">Post new</span><span id="addreact" class="hide">Reaction</span></div>
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">Post new</span><span id="addreact"
|
||||
class="hide">Reaction</span></div>
|
||||
<!--トゥートボックス-->
|
||||
<div id="left-side">
|
||||
<div class="row" style="margin-bottom:0;">
|
||||
</span>
|
||||
<div class="" style="float:left;">
|
||||
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer mize">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="Show profile of the selecting account(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="Show profile of the selecting account(Ctrl+Shift+P)"
|
||||
data-trans-title="post_box_prof" width="24px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px)">
|
||||
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
|
||||
</div>
|
||||
<span class="cancel">
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="Close this box(X)" data-trans-title="post_box_close">cancel</i>
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="Close this box(X)"
|
||||
data-trans-title="post_box_close">cancel</i>
|
||||
</span>
|
||||
<!--Markdown-->
|
||||
<div class="row" style="margin-bottom:0">
|
||||
<div class="markdown mize hide">
|
||||
<div class="col s12">
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')" title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')" title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')" title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')" title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')" title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')" title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')" title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')" title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')" title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')" title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')" title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')"
|
||||
title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')"
|
||||
title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')"
|
||||
title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')"
|
||||
title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')"
|
||||
title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')"
|
||||
title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')"
|
||||
title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')"
|
||||
title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
|
||||
title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
|
||||
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
|
||||
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
|
||||
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
|
||||
title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')"
|
||||
title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')"
|
||||
title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<span class="sml gray pointer waves-effect">
|
||||
<a onclick="mdToggle()">Markdownエディタを隠す</a>
|
||||
</span>
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')" title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')"
|
||||
title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<input id="size" style="width: calc(50% - 20px); margin: 0; height: 24px;" value="12">px
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')" title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')"
|
||||
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
|
||||
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">
|
||||
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()" title="インライン画像挿入">image</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
|
||||
title="インライン画像挿入">image</i>
|
||||
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">
|
||||
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
|
||||
</div>
|
||||
@@ -114,7 +140,8 @@ var tlid=0;
|
||||
</div>
|
||||
<div class="input-field col s12" id="toot-field" style="margin-top: 10px;">
|
||||
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;" data-length="500"></textarea>
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;"
|
||||
data-length="500"></textarea>
|
||||
<label for="textarea" data-trans="toot">Toot</label>
|
||||
<br>
|
||||
<span class="sml gray pointer markdown mize" id="preview-btn">
|
||||
@@ -125,13 +152,18 @@ var tlid=0;
|
||||
</span>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="Mark media as sensitive" onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="Mark media as sensitive"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="Hide text behind warning">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray" onclick="fileselect()" title="Attach..">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn" title="Emojis">tag_faces</i>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="Attach..">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="Emojis">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="Clear toot box(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
<i class="material-icons nex gray waves-effect" title="Clear toot box(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-bottom:5px; padding:0;">
|
||||
<div id="taglist"></div>
|
||||
@@ -194,8 +226,10 @@ var tlid=0;
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()" id="toot-post-btn">Toot</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon" title="Secondary Toot">lock_open</i></button>
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">Toot</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
|
||||
class="material-icons" id="toot-sec-icon" title="Secondary Toot">lock_open</i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-side">
|
||||
@@ -209,12 +243,14 @@ var tlid=0;
|
||||
<div id="emoji-list" class="" style="">
|
||||
</div>
|
||||
<div class="emoji-control center">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')" id="emoji-before">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')"
|
||||
id="emoji-before">
|
||||
<i class="material-icons">navigate_before</i>
|
||||
</button>
|
||||
<span id="emoji-count"></span>/
|
||||
<span id="emoji-sum"></span>
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')" id="emoji-next">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')"
|
||||
id="emoji-next">
|
||||
<i class="material-icons">navigate_next</i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -270,7 +306,7 @@ var tlid=0;
|
||||
<label for="poll-until">Hide 'votes' count until people vote it.</label><br>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">day(s)
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">hour(s)
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="0">minute(s)
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">minute(s)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -279,6 +315,27 @@ var tlid=0;
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>Local TL after this toot)
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ltl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">person_outline</i>User TL before this toot
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="user-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">language</i>Federated TL after this toot
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ftl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">arrow_upward</i>Context before this toot
|
||||
@@ -337,13 +394,16 @@ var tlid=0;
|
||||
<select id="status-acct-sel" class="acct-sel"></select>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i class="fas fa-share"></i>/button>
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i
|
||||
class="fas fa-share"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
|
||||
class="fas fa-retweet"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fas fa-star"></i></button>
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
|
||||
class="fas fa-star"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="toot-tools">
|
||||
@@ -387,9 +447,12 @@ var tlid=0;
|
||||
</div>
|
||||
<div id="his-des" data-acct=""></div><br>
|
||||
<div id="his-plus-action">
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn" onclick="empUser()">Emphasize this user</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn" onclick="pinUser()">Feature on profile</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin" onclick="profbrws()">Open in browser</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
|
||||
onclick="empUser()">Emphasize this user</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
|
||||
onclick="pinUser()">Feature on profile</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
|
||||
onclick="profbrws()">Open in browser</a><br>
|
||||
</div><br>
|
||||
<div id="his-matching-list">
|
||||
Get people resembling this user.<br>
|
||||
@@ -426,7 +489,8 @@ var tlid=0;
|
||||
<a go="#his-blocking-list" title="Blocks"><i class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="Domain block"><i class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
<a go="#his-domain-list" title="Domain block"><i class="material-icons">language</i><i
|
||||
class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="Edit profile"><i class="material-icons">create</i></a>
|
||||
@@ -442,17 +506,20 @@ var tlid=0;
|
||||
<div id="his-tl" class="tab-content">
|
||||
<div id="his-tl-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="utl('--now','more')">More</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="utl('--now','more')">More</button>
|
||||
</div>
|
||||
<div id="his-follow-list" class="tab-content">
|
||||
<div id="his-follow-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="flw('--now','more')">More</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="flw('--now','more')">More</button>
|
||||
</div>
|
||||
<div id="his-follower-list" class="tab-content">
|
||||
<div id="his-follower-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="fer('--now','more')">More</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="fer('--now','more')">More</button>
|
||||
</div>
|
||||
<div id="his-action" class="tab-content">
|
||||
Use other account to Follow((Unable to unfollow))<br>
|
||||
@@ -484,7 +551,8 @@ var tlid=0;
|
||||
<div id="his-domain-list" class="tab-content">
|
||||
<div id="his-domain-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showDom('more')">More</button>Add blocking domain
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showDom('more')">More</button>Add blocking domain
|
||||
<br>
|
||||
<input type="text" placeholder="example.com" id="domainblock">
|
||||
<button class="btn waves-effect" onclick="addDomainblock()">Add</button>
|
||||
@@ -525,10 +593,14 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">Back</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn" onclick="follow()">Follow</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn" onclick="mute()">Mute</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn" onclick="block()">Block</a>
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn"
|
||||
onclick="historyShow()">Back</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">Follow</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">Mute</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">Block</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -580,43 +652,37 @@ var tlid=0;
|
||||
<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-Usamin_18-2-1" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-4-0" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・<b>緊急の脆弱性修正</b>
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・tootsearchをひとつのカラムにしてエゴサが捗る<br>
|
||||
・イントロダクション(初回起動時)の挙動修正<br>
|
||||
・リンクプレビューを最大1行ずつに省略(タイトルと本文)<br>
|
||||
・ブロックされたときのプロフィールの動作(Mastodon 2.8~)<br>
|
||||
・(Misskey)MFM追加flipやjumpなど<br>
|
||||
・(Misskey)リストに対応<br>
|
||||
・(Misskey)カスタム絵文字に対応。カスタム絵文字によるリアクションに対応(対応インスタンスに限る)。<br>
|
||||
・<b>カスタム絵文字をゼロ幅スペースによる挿入に変更する機能</b><br>
|
||||
・一部機能の統廃合とバグの修正<br>
|
||||
・best-friends.chatやキュアスタ!、misskey.devをサポートインスタンスに追加
|
||||
<h5>Release Note Usamin (18.4.0)</h5>
|
||||
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
|
||||
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
|
||||
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
|
||||
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
|
||||
・フォローリクエストの許可/拒否ができるように。<br>
|
||||
・起動時に通知のストリーミングにつながらない不具合を修正<br>
|
||||
<br>
|
||||
</div>
|
||||
<div id="release-en">
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
<a href="https://translate.thedesk.top">Crowdin translation project</a>
|
||||
</div>
|
||||
<br><br>
|
||||
<h3>Support TheDesk!</h3>
|
||||
TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!<br>
|
||||
<a class="btn-share btn waves-effect waves-light purple lighten-2" href="https://enty.jp/Cutls" target="_blank">
|
||||
Support on Enty
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2" href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Support on Pixiv FANBOX
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue" href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
Amazon Wish List
|
||||
</a>
|
||||
<br>
|
||||
Give me Amazon Gift Card:<a href="mailto:mstdn@thedesk.top" target="_blank">mstdn@thedesk.top</a><br>
|
||||
Give me Amazon Gift Card:<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a><br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
@@ -640,13 +706,19 @@ var tlid=0;
|
||||
</span>
|
||||
<div id="menu-wrapper">
|
||||
<div id="left-menu">
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>Add a column</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>Sort</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>Search</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>List</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>Filter</span></div>
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i
|
||||
class="material-icons">add</i><span>Add a column</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i
|
||||
class="material-icons">sort</i><span>Sort</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i
|
||||
class="material-icons">search</i><span>Search</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i
|
||||
class="material-icons">view_headline</i><span>List</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
|
||||
class="material-icons">filter_list</i><span>Filter</span></div>
|
||||
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>Help</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i class="material-icons">refresh</i><span>Reload TL</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i
|
||||
class="material-icons">refresh</i><span>Reload TL</span></div>
|
||||
</div>
|
||||
<div id="right-menu">
|
||||
<!--カラム追加-->
|
||||
@@ -661,24 +733,47 @@ var tlid=0;
|
||||
<input type="hidden" value="local" id="type-sel">
|
||||
Show this TL:
|
||||
<div id="tltype">
|
||||
<div class="type waves-effect active" data-type="local"><div><i class="material-icons">people_outline</i></div><span>Local</span></div>
|
||||
<div class="type waves-effect" data-type="local-media"><div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i></div><span>Local(Media)</span></div>
|
||||
<div class="type waves-effect" data-type="home"><div><i class="material-icons">home</i></div><span>Home</span></div>
|
||||
<div class="type waves-effect" data-type="pub"><div><i class="material-icons">language</i></div><span>Federated</span></div>
|
||||
<div class="type waves-effect" data-type="pub-media"><div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div><span>Federated(Media)</span></div>
|
||||
<div class="type waves-effect" data-type="dm"><div><i class="material-icons">mail_outline</i></div><span>Direct Message</span></div>
|
||||
<div class="type waves-effect" data-type="mix"><div><i class="material-icons">merge_type</i></div><span>Integrated(Local/Home)</span></div>
|
||||
<div class="type waves-effect" data-type="plus"><div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div><span>LTL+Reply+BT</span></div>
|
||||
<div class="type waves-effect" data-type="notf"><div><i class="material-icons">notifications</i></div><span>Notifications</span></div>
|
||||
<div class="type waves-effect active" data-type="local">
|
||||
<div><i class="material-icons">people_outline</i></div><span>Local</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="local-media">
|
||||
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
|
||||
</div><span>Local(Media)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="home">
|
||||
<div><i class="material-icons">home</i></div><span>Home</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub">
|
||||
<div><i class="material-icons">language</i></div><span>Federated</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub-media">
|
||||
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
|
||||
<span>Federated(Media)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="dm">
|
||||
<div><i class="material-icons">mail_outline</i></div><span>Direct Message</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="mix">
|
||||
<div><i class="material-icons">merge_type</i></div><span>Integrated(Local/Home)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="plus">
|
||||
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
|
||||
<span>LTL+Reply+BT</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="notf">
|
||||
<div><i class="material-icons">notifications</i></div><span>Notifications</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="noauth" class="hide">Show this TL:
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);"
|
||||
placeholder="e.g:mstdn.jp">
|
||||
</div>
|
||||
<div id="webview-add" class="hide">TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>). Keyboard shortcuts will irritate you. When you feel so, you check 'Prefer WebView' on top of the column.
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()"
|
||||
data-trans-i="add">
|
||||
<i class="material-icons left">add</i>Add
|
||||
</button>
|
||||
<br>
|
||||
@@ -688,10 +783,12 @@ var tlid=0;
|
||||
<div id="src-box" class="hide menu-content">
|
||||
<div class="input-field">
|
||||
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
|
||||
</div><div class="input-field">
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<input id="src" type="text" class="validate" style="width:60%">
|
||||
<label for="src" data-trans="src">Search</label>
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()" data-trans-i="src">
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
|
||||
data-trans-i="src">
|
||||
<i class="material-icons left" style="margin:0">search</i>Search
|
||||
</button>
|
||||
<br>
|
||||
@@ -769,7 +866,8 @@ var tlid=0;
|
||||
<a onclick="filterTime(1,0,0)" class="pointer">1day(s)</a>/
|
||||
<a onclick="filterTime(7,0,0)" class="pointer">7day(s)</a>/
|
||||
<a onclick="filterTime(0,0,0)" class="pointer">Never</a><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">Add</button><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()"
|
||||
id="add-filter-btn">Add</button><br>
|
||||
<span class="sml">Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -794,8 +892,10 @@ var tlid=0;
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>Toot
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>Toot
|
||||
</button>
|
||||
</div>
|
||||
<div class="leftside reverse" id="group">
|
||||
@@ -812,8 +912,10 @@ var tlid=0;
|
||||
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="List">apps</i>
|
||||
</a>
|
||||
<span id="fukidashi"><- Add TL</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div>
|
||||
<div id="tips-menu">
|
||||
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
|
||||
|
@@ -15,7 +15,7 @@
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<a href="setting.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;"><i class="material-icons left">undo</i>Back</a>
|
||||
LICENSE of TheDesk:<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE.md">TheDesk LICENSE (Latest Ver.)</a><br>
|
||||
LICENSE of TheDesk:<a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">TheDesk LICENSE (Latest Ver.)</a><br>
|
||||
<article style="width:500px; max-width:100%; margin:15px; font-family:Arial,Helvetica">
|
||||
<h5>TheDesk</h5>
|
||||
<i class="fa fa-github"></i><a href="https://github.com/cutls/TheDesk" target="_blank">cutls/TheDesk</a><br>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html lang="en" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
@@ -22,7 +22,6 @@
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
@@ -47,7 +46,7 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>Languages</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a>
|
||||
<h5>Import and export of preferences</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">Export</button>
|
||||
@@ -56,8 +55,8 @@
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">Notification test</a><br></template>
|
||||
@@ -85,7 +84,7 @@
|
||||
</template>
|
||||
</div>
|
||||
<h5>Font</h5>
|
||||
Select your favorite font to 'Select'<br>
|
||||
Select your favorite font to 'Select'(Windows/ macOS only)<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>
|
||||
<br>
|
||||
@@ -131,9 +130,9 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="About this theme..."></textarea></div>
|
||||
<h5>Color scheme</h5>
|
||||
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="derection" type="radio" id="light" value="light" />
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
@@ -184,8 +183,8 @@
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -210,6 +209,11 @@
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>Custom sound</h5>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -220,8 +224,8 @@
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -253,7 +257,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">Fkeyboard</i>Keyboard shortcut Preferences
|
||||
<i class="material-icons">keyboard</i>Keyboard shortcut Preferences
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>Easy inserter</h5>
|
||||
@@ -403,29 +407,27 @@
|
||||
class="material-icons left">info</i>About TheDesk</button>
|
||||
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">web</i>Website</a>
|
||||
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">trending_up</i>Support(Enty)</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>
|
||||
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>Help/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" 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="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
||||
style="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">Check update</a><br>
|
||||
<a href="oss.html">OSS License</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018 All Rights Reserved.
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
|
@@ -7,6 +7,27 @@ var yesno=[
|
||||
value:"no"
|
||||
}
|
||||
];
|
||||
var sound=[
|
||||
{
|
||||
text:"None",
|
||||
value:"none"
|
||||
},{
|
||||
text:"Default",
|
||||
value:"default"
|
||||
},{
|
||||
text:"Custom 1",
|
||||
value:"c1"
|
||||
},{
|
||||
text:"Custom 2",
|
||||
value:"c2"
|
||||
},{
|
||||
text:"Custom 3",
|
||||
value:"c3"
|
||||
},{
|
||||
text:"Custom 4",
|
||||
value:"c4"
|
||||
}
|
||||
];
|
||||
var envConstruction=[
|
||||
{
|
||||
id:"popup",
|
||||
@@ -286,6 +307,46 @@ var tlConstruction=[
|
||||
desc:"",
|
||||
checkbox:yesno
|
||||
}
|
||||
},{
|
||||
id:"replySound",
|
||||
storage:"replySound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"Sound(Reply)",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"favSound",
|
||||
storage:"favSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"Sound(Fav)",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"btSound",
|
||||
storage:"btSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"Sound(Boost)",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"followSound",
|
||||
storage:"followSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"Sound(Follow)",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction=[
|
||||
|
@@ -198,9 +198,23 @@ function verck(){
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if(platform=="win32"){
|
||||
$("#ver").text(json.desk);
|
||||
localStorage.setItem("next-ver",json.desk);
|
||||
}else if(platform=="linux"){
|
||||
$("#ver").text(json.desk_linux);
|
||||
localStorage.setItem("next-ver",json.desk_linux);
|
||||
}else if(platform=="darwin"){
|
||||
$("#ver").text(json.desk_mac);
|
||||
localStorage.setItem("next-ver",json.desk_mac);
|
||||
}
|
||||
var lang="en";
|
||||
if(lang=="ja"){
|
||||
$("#det").html(json.detail);
|
||||
}else{
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
|
@@ -1,10 +1,12 @@
|
||||
<!doctype html>
|
||||
<html lang="ja">
|
||||
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
@@ -21,18 +23,20 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/version.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script>
|
||||
var ver="Usamin (18.2.3)";
|
||||
var ver = "Usamin (18.4.0)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -41,6 +45,7 @@ var acct_id=0;
|
||||
var tlid = 0;
|
||||
</script>
|
||||
<textarea id="copy" style="top:-100px; position:fixed;"></textarea>
|
||||
<canvas id="canvas" style="top:-100px; position:fixed;width:32px;height:32px" width="32" height="32"></canvas>
|
||||
<div id="tl">
|
||||
<!--TL-->
|
||||
<!--ドラッグハンドラ-->
|
||||
@@ -52,55 +57,76 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-box" class="z-depth-5">
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">投稿</span><span id="addreact" class="hide">Reaction</span></div>
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">投稿</span><span id="addreact"
|
||||
class="hide">Reaction</span></div>
|
||||
<!--トゥートボックス-->
|
||||
<div id="left-side">
|
||||
<div class="row" style="margin-bottom:0;">
|
||||
</span>
|
||||
<div class="" style="float:left;">
|
||||
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer mize">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="選択したアカウントのプロフィールを表示(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="選択したアカウントのプロフィールを表示(Ctrl+Shift+P)"
|
||||
data-trans-title="post_box_prof" width="24px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px)">
|
||||
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
|
||||
</div>
|
||||
<span class="cancel">
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="このボックスを閉じる(X)" data-trans-title="post_box_close">cancel</i>
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="このボックスを閉じる(X)"
|
||||
data-trans-title="post_box_close">cancel</i>
|
||||
</span>
|
||||
<!--Markdown-->
|
||||
<div class="row" style="margin-bottom:0">
|
||||
<div class="markdown mize hide">
|
||||
<div class="col s12">
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')" title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')" title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')" title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')" title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')" title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')" title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')" title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')" title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')" title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')" title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')" title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')"
|
||||
title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')"
|
||||
title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')"
|
||||
title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')"
|
||||
title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')"
|
||||
title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')"
|
||||
title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')"
|
||||
title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')"
|
||||
title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
|
||||
title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
|
||||
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
|
||||
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
|
||||
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
|
||||
title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')"
|
||||
title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')"
|
||||
title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<span class="sml gray pointer waves-effect">
|
||||
<a onclick="mdToggle()">Markdownエディタを隠す</a>
|
||||
</span>
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')" title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')"
|
||||
title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<input id="size" style="width: calc(50% - 20px); margin: 0; height: 24px;" value="12">px
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')" title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')"
|
||||
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
|
||||
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">
|
||||
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()" title="インライン画像挿入">image</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
|
||||
title="インライン画像挿入">image</i>
|
||||
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">
|
||||
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
|
||||
</div>
|
||||
@@ -114,7 +140,8 @@ var tlid=0;
|
||||
</div>
|
||||
<div class="input-field col s12" id="toot-field" style="margin-top: 10px;">
|
||||
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;" data-length="500"></textarea>
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;"
|
||||
data-length="500"></textarea>
|
||||
<label for="textarea" data-trans="toot">トゥート</label>
|
||||
<br>
|
||||
<span class="sml gray pointer markdown mize" id="preview-btn">
|
||||
@@ -125,13 +152,18 @@ var tlid=0;
|
||||
</span>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与" onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="画像に制限を付与"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="コンテンツワーニング(トゥートを表示する前にメッセージで隠す)">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray" onclick="fileselect()" title="ファイルを選択">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn" title="絵文字を挿入">tag_faces</i>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="ファイルを選択">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="絵文字を挿入">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="トゥートボックスのクリア(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
<i class="material-icons nex gray waves-effect" title="トゥートボックスのクリア(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-bottom:5px; padding:0;">
|
||||
<div id="taglist"></div>
|
||||
@@ -194,8 +226,10 @@ var tlid=0;
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()" id="toot-post-btn">トゥート</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon" title="セカンダリートゥート">lock_open</i></button>
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">トゥート</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
|
||||
class="material-icons" id="toot-sec-icon" title="セカンダリートゥート">lock_open</i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-side">
|
||||
@@ -209,12 +243,14 @@ var tlid=0;
|
||||
<div id="emoji-list" class="" style="">
|
||||
</div>
|
||||
<div class="emoji-control center">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')" id="emoji-before">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')"
|
||||
id="emoji-before">
|
||||
<i class="material-icons">navigate_before</i>
|
||||
</button>
|
||||
<span id="emoji-count"></span>/
|
||||
<span id="emoji-sum"></span>
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')" id="emoji-next">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')"
|
||||
id="emoji-next">
|
||||
<i class="material-icons">navigate_next</i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -270,7 +306,7 @@ var tlid=0;
|
||||
<label for="poll-until">投票するまで票数を隠す</label><br>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">日
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">時間
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="0">分
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">分
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -279,6 +315,27 @@ var tlid=0;
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>これより後のLocal TL(言及確認)
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ltl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">person_outline</i>これより後のユーザーTL(言及確認)
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="user-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">language</i>これより後の連合TL(言及確認)
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ftl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">arrow_upward</i>これより前の会話
|
||||
@@ -337,13 +394,16 @@ var tlid=0;
|
||||
<select id="status-acct-sel" class="acct-sel"></select>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i class="fas fa-share"></i>/button>
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i
|
||||
class="fas fa-share"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
|
||||
class="fas fa-retweet"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fas fa-star"></i></button>
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
|
||||
class="fas fa-star"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="toot-tools">
|
||||
@@ -387,9 +447,12 @@ var tlid=0;
|
||||
</div>
|
||||
<div id="his-des" data-acct=""></div><br>
|
||||
<div id="his-plus-action">
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn" onclick="empUser()">ユーザー強調</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn" onclick="pinUser()">紹介する</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin" onclick="profbrws()">ブラウザで開く</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
|
||||
onclick="empUser()">ユーザー強調</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
|
||||
onclick="pinUser()">紹介する</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
|
||||
onclick="profbrws()">ブラウザで開く</a><br>
|
||||
</div><br>
|
||||
<div id="his-matching-list">
|
||||
似ているユーザーを取得できます。<br>
|
||||
@@ -426,7 +489,8 @@ var tlid=0;
|
||||
<a go="#his-blocking-list" title="ブロック"><i class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="ドメインブロック"><i class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
<a go="#his-domain-list" title="ドメインブロック"><i class="material-icons">language</i><i
|
||||
class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="プロフィール編集"><i class="material-icons">create</i></a>
|
||||
@@ -442,17 +506,20 @@ var tlid=0;
|
||||
<div id="his-tl" class="tab-content">
|
||||
<div id="his-tl-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="utl('--now','more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="utl('--now','more')">もっと</button>
|
||||
</div>
|
||||
<div id="his-follow-list" class="tab-content">
|
||||
<div id="his-follow-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="flw('--now','more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="flw('--now','more')">もっと</button>
|
||||
</div>
|
||||
<div id="his-follower-list" class="tab-content">
|
||||
<div id="his-follower-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="fer('--now','more')">もっと</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="fer('--now','more')">もっと</button>
|
||||
</div>
|
||||
<div id="his-action" class="tab-content">
|
||||
他のアカウントを使用するフォロー((解除はできません。))<br>
|
||||
@@ -484,7 +551,8 @@ var tlid=0;
|
||||
<div id="his-domain-list" class="tab-content">
|
||||
<div id="his-domain-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showDom('more')">もっと</button>ブロックするドメイン
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showDom('more')">もっと</button>ブロックするドメイン
|
||||
<br>
|
||||
<input type="text" placeholder="example.com" id="domainblock">
|
||||
<button class="btn waves-effect" onclick="addDomainblock()">追加</button>
|
||||
@@ -525,10 +593,14 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">一つ前のユーザーデータ</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn" onclick="follow()">フォロー</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn" onclick="mute()">ミュート</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn" onclick="block()">ブロック</a>
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn"
|
||||
onclick="historyShow()">一つ前のユーザーデータ</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">フォロー</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">ミュート</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">ブロック</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -580,43 +652,37 @@ var tlid=0;
|
||||
<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-Usamin_18-2-1" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-4-0" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・<b>緊急の脆弱性修正</b>
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・tootsearchをひとつのカラムにしてエゴサが捗る<br>
|
||||
・イントロダクション(初回起動時)の挙動修正<br>
|
||||
・リンクプレビューを最大1行ずつに省略(タイトルと本文)<br>
|
||||
・ブロックされたときのプロフィールの動作(Mastodon 2.8~)<br>
|
||||
・(Misskey)MFM追加flipやjumpなど<br>
|
||||
・(Misskey)リストに対応<br>
|
||||
・(Misskey)カスタム絵文字に対応。カスタム絵文字によるリアクションに対応(対応インスタンスに限る)。<br>
|
||||
・<b>カスタム絵文字をゼロ幅スペースによる挿入に変更する機能</b><br>
|
||||
・一部機能の統廃合とバグの修正<br>
|
||||
・best-friends.chatやキュアスタ!、misskey.devをサポートインスタンスに追加
|
||||
<h5>Release Note Usamin (18.4.0)</h5>
|
||||
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
|
||||
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
|
||||
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
|
||||
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
|
||||
・フォローリクエストの許可/拒否ができるように。<br>
|
||||
・起動時に通知のストリーミングにつながらない不具合を修正<br>
|
||||
<br>
|
||||
</div>
|
||||
<div id="release-en">
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
<a href="https://translate.thedesk.top">Crowdin translation project</a>
|
||||
</div>
|
||||
<br><br>
|
||||
<h3>ご支援ください。</h3>
|
||||
TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。<br>
|
||||
<a class="btn-share btn waves-effect waves-light purple lighten-2" href="https://enty.jp/Cutls" target="_blank">
|
||||
Entyで支援
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2" href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
Pixiv FANBOXで支援
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue" href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
Amazonほしいものリスト
|
||||
</a>
|
||||
<br>
|
||||
<a href="mailto:mstdn@thedesk.top" target="_blank">mstdn@thedesk.top</a>にAmazonギフトカードを送る<br>
|
||||
<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>にAmazonギフトカードを送る<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
@@ -640,13 +706,19 @@ var tlid=0;
|
||||
</span>
|
||||
<div id="menu-wrapper">
|
||||
<div id="left-menu">
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>カラム追加</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>カラム一覧/並べ替え</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>検索</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>リスト</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>フィルター</span></div>
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i
|
||||
class="material-icons">add</i><span>カラム追加</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i
|
||||
class="material-icons">sort</i><span>カラム一覧/並べ替え</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i
|
||||
class="material-icons">search</i><span>検索</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i
|
||||
class="material-icons">view_headline</i><span>リスト</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
|
||||
class="material-icons">filter_list</i><span>フィルター</span></div>
|
||||
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>ヘルプ</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i class="material-icons">refresh</i><span>TL再読込</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i
|
||||
class="material-icons">refresh</i><span>TL再読込</span></div>
|
||||
</div>
|
||||
<div id="right-menu">
|
||||
<!--カラム追加-->
|
||||
@@ -661,24 +733,47 @@ var tlid=0;
|
||||
<input type="hidden" value="local" id="type-sel">
|
||||
表示するタイムライン
|
||||
<div id="tltype">
|
||||
<div class="type waves-effect active" data-type="local"><div><i class="material-icons">people_outline</i></div><span>ローカル</span></div>
|
||||
<div class="type waves-effect" data-type="local-media"><div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i></div><span>ローカル(メディア)</span></div>
|
||||
<div class="type waves-effect" data-type="home"><div><i class="material-icons">home</i></div><span>ホーム</span></div>
|
||||
<div class="type waves-effect" data-type="pub"><div><i class="material-icons">language</i></div><span>連合</span></div>
|
||||
<div class="type waves-effect" data-type="pub-media"><div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div><span>連合(メディア)</span></div>
|
||||
<div class="type waves-effect" data-type="dm"><div><i class="material-icons">mail_outline</i></div><span>ダイレクトメッセージ</span></div>
|
||||
<div class="type waves-effect" data-type="mix"><div><i class="material-icons">merge_type</i></div><span>統合(ローカルとホーム)</span></div>
|
||||
<div class="type waves-effect" data-type="plus"><div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div><span>統合(LTL+BT+返信)</span></div>
|
||||
<div class="type waves-effect" data-type="notf"><div><i class="material-icons">notifications</i></div><span>通知</span></div>
|
||||
<div class="type waves-effect active" data-type="local">
|
||||
<div><i class="material-icons">people_outline</i></div><span>ローカル</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="local-media">
|
||||
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
|
||||
</div><span>ローカル(メディア)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="home">
|
||||
<div><i class="material-icons">home</i></div><span>ホーム</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub">
|
||||
<div><i class="material-icons">language</i></div><span>連合</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub-media">
|
||||
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
|
||||
<span>連合(メディア)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="dm">
|
||||
<div><i class="material-icons">mail_outline</i></div><span>ダイレクトメッセージ</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="mix">
|
||||
<div><i class="material-icons">merge_type</i></div><span>統合(ローカルとホーム)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="plus">
|
||||
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
|
||||
<span>統合(LTL+BT+返信)</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="notf">
|
||||
<div><i class="material-icons">notifications</i></div><span>通知</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="noauth" class="hide">表示するタイムライン
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);"
|
||||
placeholder="e.g:mstdn.jp">
|
||||
</div>
|
||||
<div id="webview-add" class="hide">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優先」にチェックを入れてください。
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()"
|
||||
data-trans-i="add">
|
||||
<i class="material-icons left">add</i>追加
|
||||
</button>
|
||||
<br>
|
||||
@@ -688,10 +783,12 @@ var tlid=0;
|
||||
<div id="src-box" class="hide menu-content">
|
||||
<div class="input-field">
|
||||
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
|
||||
</div><div class="input-field">
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<input id="src" type="text" class="validate" style="width:60%">
|
||||
<label for="src" data-trans="src">検索</label>
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()" data-trans-i="src">
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
|
||||
data-trans-i="src">
|
||||
<i class="material-icons left" style="margin:0">search</i>検索
|
||||
</button>
|
||||
<br>
|
||||
@@ -769,7 +866,8 @@ var tlid=0;
|
||||
<a onclick="filterTime(1,0,0)" class="pointer">1日</a>/
|
||||
<a onclick="filterTime(7,0,0)" class="pointer">7日</a>/
|
||||
<a onclick="filterTime(0,0,0)" class="pointer">無期限</a><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">追加</button><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()"
|
||||
id="add-filter-btn">追加</button><br>
|
||||
<span class="sml">Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -794,8 +892,10 @@ var tlid=0;
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>トゥート
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>トゥート
|
||||
</button>
|
||||
</div>
|
||||
<div class="leftside reverse" id="group">
|
||||
@@ -812,8 +912,10 @@ var tlid=0;
|
||||
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="リスト">apps</i>
|
||||
</a>
|
||||
<span id="fukidashi">←ここからTL追加</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div>
|
||||
<div id="tips-menu">
|
||||
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="ja">
|
||||
<html lang="ja" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
@@ -22,7 +22,6 @@
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
@@ -47,7 +46,7 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>言語</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a>
|
||||
<h5>設定のインポートとエクスポート</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">エクスポート</button>
|
||||
@@ -56,8 +55,8 @@
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">通知テスト</a><br></template>
|
||||
@@ -85,7 +84,7 @@
|
||||
</template>
|
||||
</div>
|
||||
<h5>フォント</h5>
|
||||
「選択」を押してフォントを選んでください。<br>
|
||||
「選択」を押してフォントを選んでください。(Linuxでは動きません)<br>
|
||||
<button class="btn waves-effect" style="width:100px;" onclick="font()">選択</button><br>
|
||||
<div id="fonts" class="hide" style="overflow-y:scroll; width:300px; height:500px;"></div>
|
||||
<br>
|
||||
@@ -131,9 +130,9 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="説明..."></textarea></div>
|
||||
<h5>色の系統</h5>
|
||||
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="derection" type="radio" id="light" value="light" />
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
@@ -184,8 +183,8 @@
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -210,6 +209,11 @@
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>カスタム通知音</h5>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -220,8 +224,8 @@
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -253,7 +257,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">Fkeyboard</i>キーボードショートカットの設定
|
||||
<i class="material-icons">keyboard</i>キーボードショートカットの設定
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>簡単文字入力</h5>
|
||||
@@ -403,29 +407,27 @@
|
||||
class="material-icons left">info</i>このソフトについて</button>
|
||||
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">web</i>公式HP</a>
|
||||
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">trending_up</i>支援(Enty)</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>支援(Pixiv FANBOX)</a>
|
||||
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>ヘルプ/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" 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="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
||||
style="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">アップデートを確認</a><br>
|
||||
<a href="oss.html">OSS License(オープンソースライセンス)</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018 All Rights Reserved.
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
|
@@ -7,6 +7,27 @@ var yesno=[
|
||||
value:"no"
|
||||
}
|
||||
];
|
||||
var sound=[
|
||||
{
|
||||
text:"なし",
|
||||
value:"none"
|
||||
},{
|
||||
text:"既定",
|
||||
value:"default"
|
||||
},{
|
||||
text:"Custom 1",
|
||||
value:"c1"
|
||||
},{
|
||||
text:"Custom 2",
|
||||
value:"c2"
|
||||
},{
|
||||
text:"Custom 3",
|
||||
value:"c3"
|
||||
},{
|
||||
text:"Custom 4",
|
||||
value:"c4"
|
||||
}
|
||||
];
|
||||
var envConstruction=[
|
||||
{
|
||||
id:"popup",
|
||||
@@ -286,6 +307,46 @@ var tlConstruction=[
|
||||
desc:"",
|
||||
checkbox:yesno
|
||||
}
|
||||
},{
|
||||
id:"replySound",
|
||||
storage:"replySound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"リプライの通知音",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"favSound",
|
||||
storage:"favSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"お気に入り登録の通知音",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"btSound",
|
||||
storage:"btSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"ブーストの通知音",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"followSound",
|
||||
storage:"followSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"フォローの通知音",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction=[
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html lang="ja">
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
@@ -198,9 +198,23 @@ function verck(){
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if(platform=="win32"){
|
||||
$("#ver").text(json.desk);
|
||||
localStorage.setItem("next-ver",json.desk);
|
||||
}else if(platform=="linux"){
|
||||
$("#ver").text(json.desk_linux);
|
||||
localStorage.setItem("next-ver",json.desk_linux);
|
||||
}else if(platform=="darwin"){
|
||||
$("#ver").text(json.desk_mac);
|
||||
localStorage.setItem("next-ver",json.desk_mac);
|
||||
}
|
||||
var lang="ja";
|
||||
if(lang=="ja"){
|
||||
$("#det").html(json.detail);
|
||||
}else{
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="{{lang}}">
|
||||
<html lang="@@lang@@">
|
||||
<head>
|
||||
<title>Account Manager - TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
@@ -28,19 +28,19 @@ body,html{overflow-y: scroll;}
|
||||
}
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
{{comment-start}}
|
||||
@@comment-start@@
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
{{comment-end}}
|
||||
@@comment-end@@
|
||||
</head>
|
||||
<body id="mainView">
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.{{lang}}.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.@@lang@@.js"></script>
|
||||
<script>
|
||||
var misskeytoken=false;
|
||||
</script>
|
||||
@@ -48,23 +48,23 @@ body,html{overflow-y: scroll;}
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<div class="hide-first">
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">{{back}}</a><br>
|
||||
<h5>{{list}}</h5>
|
||||
<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br>
|
||||
<h5>@@list@@</h5>
|
||||
<div id="acct-list"></div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div>
|
||||
<h5>{{add}}</h5><br>
|
||||
<h5>@@add@@</h5><br>
|
||||
<div id="add">
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<input type="text" id="url" style="width:70%" placeholder="ex)mstdn.jp">
|
||||
<div id="ins-suggest"></div>
|
||||
{{codesetupwarn}}<br>
|
||||
@@codesetupwarn@@<br>
|
||||
<input type="checkbox" class="filled-in" id="linux" />
|
||||
<label for="linux">{{codesetup}}</label><br>
|
||||
<label for="linux">@@codesetup@@</label><br>
|
||||
<input type="checkbox" class="filled-in" id="misskey" />
|
||||
<label for="misskey">{{thisismisskey}}</label><br>
|
||||
<label for="misskey">@@thisismisskey@@</label><br>
|
||||
<button class="btn waves-effect" onclick="instance()">Login</button><br>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
@@ -73,21 +73,21 @@ body,html{overflow-y: scroll;}
|
||||
</div>
|
||||
</div></div>
|
||||
<div id="auth" style="display:none">
|
||||
{{codepastewarn}}<br>
|
||||
<input type="text" id="code" placeholder="{{codepaste}}">
|
||||
@@codepastewarn@@<br>
|
||||
<input type="text" id="code" placeholder="@@codepaste@@">
|
||||
<button class="btn waves-effect" onclick="code()">Auth</button><br>
|
||||
</div>
|
||||
<div id="misskeylogin" style="display:none">
|
||||
<h5>AppSecret</h5>
|
||||
{{misskeylogin}}<br>
|
||||
@@misskeylogin@@<br>
|
||||
<input type="hidden" id="misskey-url">
|
||||
<input type="text" id="misskey-key" placeholder="{{codepaste}}">
|
||||
<input type="text" id="misskey-key" placeholder="@@codepaste@@">
|
||||
<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hide-first">
|
||||
<h5>{{mainacct}}</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">{{selacct}}</span>
|
||||
<h5>@@mainacct@@</h5>
|
||||
<div class="input-field" style="width:300px"><span data-trans="your_acct">@@selacct@@</span>
|
||||
<br>
|
||||
<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select>
|
||||
<label></label>
|
||||
@@ -98,12 +98,12 @@ Administered by:<a id="ins-admin"></a><br>
|
||||
<span id="ins-desc"></span><br>
|
||||
<img src="../../img/loading.svg" id="ins-prof" width="200"><br>
|
||||
<br>
|
||||
{{domain}}:<span id="ins-name"></span><br>
|
||||
{{connect}}:<span id="ins-connect"></span>{{ko}}<br>
|
||||
{{toots}}:<span id="ins-toot"></span>{{ko}}<br>
|
||||
{{users}}:<span id="ins-user"></span>{{users}}<br>
|
||||
{{safety}}:<span id="ins-per"></span>%<br>
|
||||
{{ver}}:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
@@domain@@:<span id="ins-name"></span><br>
|
||||
@@connect@@:<span id="ins-connect"></span>@@ko@@<br>
|
||||
@@toots@@:<span id="ins-toot"></span>@@ko@@<br>
|
||||
@@users@@:<span id="ins-user"></span>@@users@@<br>
|
||||
@@safety@@:<span id="ins-per"></span>%<br>
|
||||
@@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br>
|
||||
</div>
|
||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/end.js"></script>
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -56,6 +56,9 @@
|
||||
"contextAfter":"Context after this toot",
|
||||
"beforeLTL":"Local TL before this toot",
|
||||
"beforeUTL":"User TL before this toot",
|
||||
"afterLTL":"Local TL after this toot)",
|
||||
"afterUTL":"User TL before this toot",
|
||||
"afterFTL":"Federated TL after this toot",
|
||||
"favedPeople":"People who favourited it",
|
||||
"btedPeople":"People who boosted it",
|
||||
"useOtherAcct1":"Use other account",
|
||||
@@ -158,5 +161,6 @@
|
||||
"ramTips":"RAM status",
|
||||
"changeTips":"Change Tips",
|
||||
"help":"Help",
|
||||
"about":"About TheDesk"
|
||||
"about":"About TheDesk",
|
||||
"hereAddColumns":"<- Add TL"
|
||||
}
|
@@ -56,6 +56,9 @@
|
||||
"contextAfter":"これより後の会話",
|
||||
"beforeLTL":"これより前のLocal TL(エアリプソース確認)",
|
||||
"beforeUTL":"これより前のユーザーTL(BTソース確認)",
|
||||
"afterLTL":"これより後のLocal TL(言及確認)",
|
||||
"afterUTL":"これより後のユーザーTL(言及確認)",
|
||||
"afterFTL":"これより後の連合TL(言及確認)",
|
||||
"favedPeople":"このトゥートをお気に入りに登録した人",
|
||||
"btedPeople":"このトゥートをブーストした人",
|
||||
"useOtherAcct1":"他のアカウントを使用",
|
||||
@@ -158,5 +161,6 @@
|
||||
"ramTips":"システムメモリ容量",
|
||||
"changeTips":"Tips変更",
|
||||
"help":"ヘルプ",
|
||||
"about":"このソフトについて"
|
||||
"about":"このソフトについて",
|
||||
"hereAddColumns":"←ここからTL追加"
|
||||
}
|
@@ -3,6 +3,8 @@
|
||||
"set":"Save",
|
||||
"yes":"Yes",
|
||||
"no":"No",
|
||||
"none":"None",
|
||||
"default":"Default",
|
||||
"change":"Change",
|
||||
"select":"Select",
|
||||
"env":"System Preferences",
|
||||
@@ -25,7 +27,7 @@
|
||||
"fixwidthwarn":"",
|
||||
"above":"above",
|
||||
"font":"Font",
|
||||
"fontwarn":"Select your favorite font to 'Select'",
|
||||
"fontwarn":"Select your favorite font to 'Select'(Windows/ macOS only)",
|
||||
"fontsize":"Font size",
|
||||
"savefolder":"Folder to save",
|
||||
"savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.",
|
||||
@@ -85,6 +87,11 @@
|
||||
"ticker":"Enable #InstanceTicker",
|
||||
"tickerwarn":"Show colorful stickers about the server. <a href=\"https://cdn.weep.me/mastodon/\">About #InstanceTicker</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation":"Animation of timelines",
|
||||
"replySound":"Sound(Reply)",
|
||||
"favSound":"Sound(Fav)",
|
||||
"btSound":"Sound(Boost)",
|
||||
"followSound":"Sound(Follow)",
|
||||
"customSound":"Custom sound",
|
||||
"post":"Posting Preferences",
|
||||
"autocw":"Alert before posting a long toot.",
|
||||
"autocwwarn":"Show dialog whether you make too-long text hidden.",
|
||||
|
@@ -3,6 +3,8 @@
|
||||
"set":"設定",
|
||||
"yes":"はい",
|
||||
"no":"いいえ",
|
||||
"none":"なし",
|
||||
"default":"既定",
|
||||
"change":"変更",
|
||||
"select":"選択",
|
||||
"env":"環境設定",
|
||||
@@ -25,7 +27,7 @@
|
||||
"fixwidthwarn":"",
|
||||
"above":"以上",
|
||||
"font":"フォント",
|
||||
"fontwarn":"「選択」を押してフォントを選んでください。",
|
||||
"fontwarn":"「選択」を押してフォントを選んでください。(Linuxでは動きません)",
|
||||
"fontsize":"フォントサイズ",
|
||||
"savefolder":"デフォルトの保存先",
|
||||
"savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。",
|
||||
@@ -85,6 +87,11 @@
|
||||
"ticker":"#InstanceTickerを使う",
|
||||
"tickerwarn":"トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://cdn.weep.me/mastodon/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.",
|
||||
"animation":"タイムラインのアニメーション",
|
||||
"replySound":"リプライの通知音",
|
||||
"favSound":"お気に入り登録の通知音",
|
||||
"btSound":"ブーストの通知音",
|
||||
"followSound":"フォローの通知音",
|
||||
"customSound":"カスタム通知音",
|
||||
"post":"投稿設定",
|
||||
"autocw":"長文投稿時に警告",
|
||||
"autocwwarn":"下で指定した以上のトゥートを投稿するときにCWするかのダイアログを表示します。",
|
||||
|
37
app/view/make/make.js
Normal file
37
app/view/make/make.js
Normal file
@@ -0,0 +1,37 @@
|
||||
const fs = require("fs")
|
||||
const ver="Usamin (18.4.0)"
|
||||
const langs=["ja","en","ps"]
|
||||
const langsh=["日本語","English","Crowdin translate system(beta)"]
|
||||
const simples=["acct","index","setting","update","setting"]
|
||||
const samples=["acct.sample.html","index.sample.html","setting.sample.html","update.sample.html","setting.sample.js"]
|
||||
const pages=["acct.html","index.html","setting.html","update.html","setting.vue.js"]
|
||||
let langstr=""
|
||||
for(let n=0; n<langs.length; n++){
|
||||
let lang=langs[n]
|
||||
langstr=langstr+'<a onclick="changelang(\''+lang+'\')" class="pointer" style="margin-right:5px;">'+langsh[n]+'</a>'
|
||||
}
|
||||
for(let i=0; i<samples.length; i++){
|
||||
let sample=samples[i]
|
||||
let sourceParent = fs.readFileSync(sample, 'utf8')
|
||||
for(let j=0; j<langs.length; j++){
|
||||
let source=sourceParent
|
||||
let lang=langs[j]
|
||||
let target = JSON.parse(fs.readFileSync("language/"+simples[i]+"."+lang+".json", 'utf8'))
|
||||
Object.keys(target).forEach(function(key) {
|
||||
let str = target[key]
|
||||
var regExp = new RegExp("@@" + key + "@@", "g")
|
||||
source = source.replace(regExp, str)
|
||||
})
|
||||
if(lang=="ps"){
|
||||
source = source.replace(/@@comment-start@@/g, "")
|
||||
source = source.replace(/@@comment-end@@/g, "")
|
||||
}else{
|
||||
source = source.replace(/@@comment-start@@/g, "<!--")
|
||||
source = source.replace(/@@comment-end@@/g, "-->")
|
||||
}
|
||||
source = source.replace(/@@versionLetter@@/g, ver)
|
||||
source = source.replace(/@@lang@@/g, lang)
|
||||
source = source.replace(/@@langlist@@/g, langstr)
|
||||
fs.writeFileSync("../"+lang+"/"+pages[i], source)
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="@@lang@@">
|
||||
<html lang="@@lang@@" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
@@ -22,7 +22,6 @@
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
@@ -56,8 +55,8 @@
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">@@nntest@@</a><br></template>
|
||||
@@ -131,9 +130,9 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="@@desc@@..."></textarea></div>
|
||||
<h5>@@customthemeDirection@@</h5>
|
||||
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="derection" type="radio" id="light" value="light" />
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
@@ -184,8 +183,8 @@
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -210,6 +209,11 @@
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>@@customSound@@</h5>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -220,8 +224,8 @@
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -253,7 +257,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">Fkeyboard</i>@@keysc@@
|
||||
<i class="material-icons">keyboard</i>@@keysc@@
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>@@iks@@</h5>
|
||||
@@ -403,29 +407,27 @@
|
||||
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
|
||||
class="material-icons left">web</i>@@hp@@</a>
|
||||
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">trending_up</i>@@support@@(Enty)</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>
|
||||
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>@@help@@/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" 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="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
||||
style="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">@@checkup@@</a><br>
|
||||
<a href="oss.html">OSS License@@ossJP@@</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018 All Rights Reserved.
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
|
@@ -7,6 +7,27 @@ var yesno=[
|
||||
value:"no"
|
||||
}
|
||||
];
|
||||
var sound=[
|
||||
{
|
||||
text:"@@none@@",
|
||||
value:"none"
|
||||
},{
|
||||
text:"@@default@@",
|
||||
value:"default"
|
||||
},{
|
||||
text:"Custom 1",
|
||||
value:"c1"
|
||||
},{
|
||||
text:"Custom 2",
|
||||
value:"c2"
|
||||
},{
|
||||
text:"Custom 3",
|
||||
value:"c3"
|
||||
},{
|
||||
text:"Custom 4",
|
||||
value:"c4"
|
||||
}
|
||||
];
|
||||
var envConstruction=[
|
||||
{
|
||||
id:"popup",
|
||||
@@ -286,6 +307,46 @@ var tlConstruction=[
|
||||
desc:"",
|
||||
checkbox:yesno
|
||||
}
|
||||
},{
|
||||
id:"replySound",
|
||||
storage:"replySound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@replySound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"favSound",
|
||||
storage:"favSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@favSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"btSound",
|
||||
storage:"btSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@btSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"followSound",
|
||||
storage:"followSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@followSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction=[
|
||||
|
@@ -1,18 +1,18 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html lang="@@lang@@">
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/master.css" type="text/css" rel="stylesheet">
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
|
||||
<meta charset="utf-8">
|
||||
{{comment-start}}
|
||||
@@comment-start@@
|
||||
<script type="text/javascript">
|
||||
var _jipt = [];
|
||||
_jipt.push(['project', 'thedesk']);
|
||||
</script>
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
{{comment-end}}
|
||||
@@comment-end@@
|
||||
</head>
|
||||
<body>
|
||||
<style>
|
||||
@@ -72,27 +72,27 @@ a,button,input,label,i{
|
||||
<div id="start">
|
||||
<div id="box" class="show">
|
||||
<h2>TheDesk</h2>
|
||||
<p>{{updatehere}}</p>
|
||||
<p>@@updatehere@@</p>
|
||||
<span id="now"></span>→<b id="ver"></b><br>
|
||||
<span id="det"></span><br>
|
||||
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">{{installer}}</button>
|
||||
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">{{portable}}</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">{{download}}</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">{{download}}</button>
|
||||
<button class="waves-effect btn windows hide" onclick="update('install')" style="margin-left:15px;">@@installer@@</button>
|
||||
<button class="waves-effect btn windows hide" onclick="update('portable')" style="margin-left:15px;">@@portable@@</button>
|
||||
<button class="waves-effect btn linux hide" onclick="update('linux')" style="margin-left:15px;">@@download@@</button>
|
||||
<button class="waves-effect btn mac hide" onclick="update('mac')" style="margin-left:15px;">@@download@@</button>
|
||||
<br>
|
||||
{{problem1}}<br>{{problem2}}
|
||||
@@problem1@@<br>@@problem2@@
|
||||
</div>
|
||||
<div id="skipper" class="hide">
|
||||
<h4>{{sureupd}}</h4>
|
||||
{{skipupd}}<br>
|
||||
<h4>@@sureupd@@</h4>
|
||||
@@skipupd@@<br>
|
||||
<div id="updskip">
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>{{nexttl}}</div></a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>{{nextver}}</div></a>
|
||||
<a onclick="window.close();" class="pointer skipbtn waves-effect waves-light"><div>@@nexttl@@</div></a>
|
||||
<a onclick="nextv();" class="pointer skipbtn waves-effect waves-light"><div>@@nextver@@</div></a>
|
||||
</div>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">{{continue}}</a>
|
||||
<a class="pointer waves-effect" onclick="skipper();" style="margin-top:5px">@@continue@@</a>
|
||||
</div>
|
||||
<div id="dlnow" class="hide">
|
||||
<h4>{{dlnow}}</h4>
|
||||
<h4>@@dlnow@@</h4>
|
||||
<h4 id="prog"></h4>
|
||||
</div>
|
||||
</div>
|
||||
@@ -198,9 +198,23 @@ function verck(){
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if(platform=="win32"){
|
||||
$("#ver").text(json.desk);
|
||||
localStorage.setItem("next-ver",json.desk);
|
||||
}else if(platform=="linux"){
|
||||
$("#ver").text(json.desk_linux);
|
||||
localStorage.setItem("next-ver",json.desk_linux);
|
||||
}else if(platform=="darwin"){
|
||||
$("#ver").text(json.desk_mac);
|
||||
localStorage.setItem("next-ver",json.desk_mac);
|
||||
}
|
||||
var lang="@@lang@@";
|
||||
if(lang=="ja"){
|
||||
$("#det").html(json.detail);
|
||||
}else{
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
|
@@ -1,10 +1,12 @@
|
||||
<!doctype html>
|
||||
<html lang="ps">
|
||||
|
||||
<head>
|
||||
<title>TheDesk</title>
|
||||
<meta content="width=device-width,initial-scale=1.0" name="viewport">
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
|
||||
integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
|
||||
<link href="../../css/themes.css" type="text/css" rel="stylesheet">
|
||||
<link href="../../css/tl.css" rel="stylesheet" type="text/css">
|
||||
<link href="../../css/userdata.css" rel="stylesheet" type="text/css">
|
||||
@@ -21,18 +23,20 @@
|
||||
<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../js/platform/first.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
|
||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/time.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/blurhash.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/version.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/keyshortcut.js"></script>
|
||||
<script type="text/javascript" src="../../js/common/modal.js"></script>
|
||||
<script type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
|
||||
<script>
|
||||
var ver="Usamin (18.2.3)";
|
||||
var ver = "Usamin (18.4.0)";
|
||||
//betaを入れるとバージョンチェックしない
|
||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
|
||||
//var ver="beta";
|
||||
@@ -41,6 +45,7 @@ var acct_id=0;
|
||||
var tlid = 0;
|
||||
</script>
|
||||
<textarea id="copy" style="top:-100px; position:fixed;"></textarea>
|
||||
<canvas id="canvas" style="top:-100px; position:fixed;width:32px;height:32px" width="32" height="32"></canvas>
|
||||
<div id="tl">
|
||||
<!--TL-->
|
||||
<!--ドラッグハンドラ-->
|
||||
@@ -52,55 +57,76 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div id="post-box" class="z-depth-5">
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">crwdns2402:0crwdne2402:0</span><span id="addreact" class="hide">Reaction</span></div>
|
||||
<div id="post-bar" class="drag-bar"><span id="unreact">crwdns2402:0crwdne2402:0</span><span id="addreact"
|
||||
class="hide">Reaction</span></div>
|
||||
<!--トゥートボックス-->
|
||||
<div id="left-side">
|
||||
<div class="row" style="margin-bottom:0;">
|
||||
</span>
|
||||
<div class="" style="float:left;">
|
||||
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer mize">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="crwdns386:0crwdne386:0(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
|
||||
<img src="../../img/missing.svg" id="acct-sel-prof" title="crwdns386:0crwdne386:0(Ctrl+Shift+P)"
|
||||
data-trans-title="post_box_prof" width="24px">
|
||||
</a>
|
||||
</div>
|
||||
<div class="input-field mize" style="float:left; width:calc(100% - 24px)">
|
||||
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
|
||||
</div>
|
||||
<span class="cancel">
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="crwdns412:0crwdne412:0(X)" data-trans-title="post_box_close">cancel</i>
|
||||
<i class="material-icons waves-effect" onclick="hide()" title="crwdns412:0crwdne412:0(X)"
|
||||
data-trans-title="post_box_close">cancel</i>
|
||||
</span>
|
||||
<!--Markdown-->
|
||||
<div class="row" style="margin-bottom:0">
|
||||
<div class="markdown mize hide">
|
||||
<div class="col s12">
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')" title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')" title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')" title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')" title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')" title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')" title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')" title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')" title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')" title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')" title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')" title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')" title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')" title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')"
|
||||
title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')"
|
||||
title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')"
|
||||
title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')"
|
||||
title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')"
|
||||
title="引用">format_quote</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')"
|
||||
title="見出し">short_text</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')"
|
||||
title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')"
|
||||
title="箇条書きリスト">format_list_bulleted</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')"
|
||||
title="番号付きリスト">format_list_numbered</i>
|
||||
<i class="pointer setting fa fa-subscript waves-effect" onclick="markdown('__','yes','no','before')"
|
||||
title="下付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="pointer setting fa fa-superscript waves-effect" onclick="markdown('_','yes','no','before')"
|
||||
title="上付き文字 テキストボックス内を選択してから押すと囲みます。" style="font-size:1.5rem"></i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')"
|
||||
title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')"
|
||||
title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')"
|
||||
title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')"
|
||||
title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i>
|
||||
<span class="sml gray pointer waves-effect">
|
||||
<a onclick="mdToggle()">Markdownエディタを隠す</a>
|
||||
</span>
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')" title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')"
|
||||
title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i>
|
||||
<input id="size" style="width: calc(50% - 20px); margin: 0; height: 24px;" value="12">px
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')" title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')"
|
||||
title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i>
|
||||
<input id="colorhex" style="width: calc(50% - 50px); margin: 0; height: 24px;" type="color">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i>
|
||||
<input id="linkt" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクテキスト">
|
||||
<input id="link2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="リンクアドレス">
|
||||
<br>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()" title="インライン画像挿入">image</i>
|
||||
<i class="material-icons pointer setting waves-effect" onclick="markdownImage()"
|
||||
title="インライン画像挿入">image</i>
|
||||
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">
|
||||
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
|
||||
</div>
|
||||
@@ -114,7 +140,8 @@ var tlid=0;
|
||||
</div>
|
||||
<div class="input-field col s12" id="toot-field" style="margin-top: 10px;">
|
||||
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;" data-length="500"></textarea>
|
||||
<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom:0;"
|
||||
data-length="500"></textarea>
|
||||
<label for="textarea" data-trans="toot">crwdns388:0crwdne388:0</label>
|
||||
<br>
|
||||
<span class="sml gray pointer markdown mize" id="preview-btn">
|
||||
@@ -125,13 +152,18 @@ var tlid=0;
|
||||
</span>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-top: 0; display:flex; justify-content: space-between">
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="crwdns389:0crwdne389:0" onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1' id="vis-icon">public</i>
|
||||
<i class="waves-effect gray material-icons" id="nsfw" title="crwdns389:0crwdne389:0"
|
||||
onclick="nsfw()">visibility_off</i>
|
||||
<i class="waves-effect gray material-icons purple-text dropdown-button" data-activates='dropdown1'
|
||||
id="vis-icon">public</i>
|
||||
<a class="waves-effect gray" id="cw" onclick="cw()" title="crwdns390:0crwdne390:0">CW</a>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray" onclick="fileselect()" title="crwdns391:0crwdne391:0">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn" title="crwdns393:0crwdne393:0">tag_faces</i>
|
||||
<span><span id="imgup"></span><span id="imgsel"><i class="waves-effect material-icons gray"
|
||||
onclick="fileselect()" title="crwdns391:0crwdne391:0">photo_library</i></span></span>
|
||||
<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn"
|
||||
title="crwdns393:0crwdne393:0">tag_faces</i>
|
||||
<i class="waves-effect gray material-icons dropdown-button" data-activates='dropdown2'>more_vert</i>
|
||||
<i class="material-icons nex gray waves-effect" title="crwdns395:0crwdne395:0(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
<i class="material-icons nex gray waves-effect" title="crwdns395:0crwdne395:0(Ctrl+Shit+C)"
|
||||
data-trans-title="post_box_clear" id="clear">clear</i>
|
||||
</div>
|
||||
<div class="col s12 mize" style="margin-bottom:5px; padding:0;">
|
||||
<div id="taglist"></div>
|
||||
@@ -194,8 +226,10 @@ var tlid=0;
|
||||
<!--END hidden area-->
|
||||
</div>
|
||||
<div id="toot-btn-field">
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()" id="toot-post-btn">crwdns388:0crwdne388:0</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i class="material-icons" id="toot-sec-icon" title="crwdns1890:0crwdne1890:0">lock_open</i></button>
|
||||
<button class="btn waves-effect indigo unmize toot-btn-group" onclick="post()"
|
||||
id="toot-post-btn">crwdns388:0crwdne388:0</button>
|
||||
<button class="btn waves-effect indigo darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"><i
|
||||
class="material-icons" id="toot-sec-icon" title="crwdns1890:0crwdne1890:0">lock_open</i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="right-side">
|
||||
@@ -209,12 +243,14 @@ var tlid=0;
|
||||
<div id="emoji-list" class="" style="">
|
||||
</div>
|
||||
<div class="emoji-control center">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')" id="emoji-before">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('before')"
|
||||
id="emoji-before">
|
||||
<i class="material-icons">navigate_before</i>
|
||||
</button>
|
||||
<span id="emoji-count"></span>/
|
||||
<span id="emoji-sum"></span>
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')" id="emoji-next">
|
||||
<button class="btn waves-effect blue" style="width:30%; padding:0;" onclick="emojiList('next')"
|
||||
id="emoji-next">
|
||||
<i class="material-icons">navigate_next</i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -270,7 +306,7 @@ var tlid=0;
|
||||
<label for="poll-until">crwdns2412:0crwdne2412:0</label><br>
|
||||
<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">crwdns507:0crwdne507:0
|
||||
<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">crwdns508:0crwdne508:0
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="0">crwdns509:0crwdne509:0
|
||||
<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="6">crwdns509:0crwdne509:0
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -279,6 +315,27 @@ var tlid=0;
|
||||
<div id="tootmodal" class="modal modal-fixed-footer">
|
||||
<div class="modal-content">
|
||||
<ul class="collapsible" data-collapsible="accordion" id="det-col">
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">people_outline</i>@@afterLTL@@
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ltl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">person_outline</i>@@afterUTL@@
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="user-after">
|
||||
</div>
|
||||
</li>
|
||||
<li class="dm-hide">
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">language</i>@@afterFTL@@
|
||||
</div>
|
||||
<div class="collapsible-body toot-reset" id="ftl-after">
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">arrow_upward</i>crwdns423:0crwdne423:0
|
||||
@@ -337,13 +394,16 @@ var tlid=0;
|
||||
<select id="status-acct-sel" class="acct-sel"></select>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i class="fas fa-share"></i>/button>
|
||||
<button class="dropdown-button btn waves-effect" style="width:100%;" onclick="staEx('reply')"><i
|
||||
class="fas fa-share"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fas fa-retweet"></i></button>
|
||||
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i
|
||||
class="fas fa-retweet"></i></button>
|
||||
</div>
|
||||
<div class="col s2">
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fas fa-star"></i></button>
|
||||
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i
|
||||
class="fas fa-star"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="toot-tools">
|
||||
@@ -387,9 +447,12 @@ var tlid=0;
|
||||
</div>
|
||||
<div id="his-des" data-acct=""></div><br>
|
||||
<div id="his-plus-action">
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn" onclick="empUser()">crwdns472:0crwdne472:0</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn" onclick="pinUser()">crwdns454:0crwdne454:0</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin" onclick="profbrws()">crwdns455:0crwdne455:0</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-emp-btn"
|
||||
onclick="empUser()">crwdns472:0crwdne472:0</a>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat only-his-data" id="his-end-btn"
|
||||
onclick="pinUser()">crwdns454:0crwdne454:0</a><br>
|
||||
<a href="#!" class="btn waves-effect waves-effect blue-grey btn-flat" id="his-openin"
|
||||
onclick="profbrws()">crwdns455:0crwdne455:0</a><br>
|
||||
</div><br>
|
||||
<div id="his-matching-list">
|
||||
crwdns469:0crwdne469:0<br>
|
||||
@@ -426,7 +489,8 @@ var tlid=0;
|
||||
<a go="#his-blocking-list" title="crwdns446:0crwdne446:0"><i class="material-icons">voice_over_off</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-domain-list" title="crwdns450:0crwdne450:0"><i class="material-icons">language</i><i class="material-icons">block</i></a>
|
||||
<a go="#his-domain-list" title="crwdns450:0crwdne450:0"><i class="material-icons">language</i><i
|
||||
class="material-icons">block</i></a>
|
||||
</li>
|
||||
<li class="custom-tab col my-data-width only-my-data">
|
||||
<a go="#his-prof-list" title="crwdns451:0crwdne451:0"><i class="material-icons">create</i></a>
|
||||
@@ -442,17 +506,20 @@ var tlid=0;
|
||||
<div id="his-tl" class="tab-content">
|
||||
<div id="his-tl-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="utl('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="utl('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
</div>
|
||||
<div id="his-follow-list" class="tab-content">
|
||||
<div id="his-follow-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="flw('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="flw('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
</div>
|
||||
<div id="his-follower-list" class="tab-content">
|
||||
<div id="his-follower-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="fer('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="fer('--now','more')">crwdns457:0crwdne457:0</button>
|
||||
</div>
|
||||
<div id="his-action" class="tab-content">
|
||||
crwdns430:0crwdne430:0crwdns458:0crwdne458:0crwdns440:0crwdne440:0(crwdns459:0crwdne459:0)<br>
|
||||
@@ -484,7 +551,8 @@ var tlid=0;
|
||||
<div id="his-domain-list" class="tab-content">
|
||||
<div id="his-domain-list-contents" class="cont-series">
|
||||
</div>
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showDom('more')">crwdns457:0crwdne457:0</button>crwdns464:0crwdne464:0
|
||||
<button class="btn waves-effect " style="width:100%; padding:0;"
|
||||
onclick="showDom('more')">crwdns457:0crwdne457:0</button>crwdns464:0crwdne464:0
|
||||
<br>
|
||||
<input type="text" placeholder="example.com" id="domainblock">
|
||||
<button class="btn waves-effect" onclick="addDomainblock()">crwdns491:0crwdne491:0</button>
|
||||
@@ -520,15 +588,19 @@ var tlid=0;
|
||||
</div>
|
||||
</div>
|
||||
<div class="his-float" id="his-float-blocked">
|
||||
<div>{{blocked}}</div>
|
||||
<div>@@blocked@@</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">crwdns471:0crwdne471:0</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn" onclick="follow()">crwdns440:0crwdne440:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn" onclick="mute()">crwdns449:0crwdne449:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn" onclick="block()">crwdns448:0crwdne448:0</a>
|
||||
<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn"
|
||||
onclick="historyShow()">crwdns471:0crwdne471:0</button>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-follow-btn"
|
||||
onclick="follow()">crwdns440:0crwdne440:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-mute-btn"
|
||||
onclick="mute()">crwdns449:0crwdne449:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" id="his-block-btn"
|
||||
onclick="block()">crwdns448:0crwdne448:0</a>
|
||||
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">crwdns385:0crwdne385:0</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -580,43 +652,37 @@ var tlid=0;
|
||||
<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-Usamin_18-2-1" class="release-do" style="display:none; ">
|
||||
<div id="release-Usamin_18-4-0" class="release-do" style="display:none; ">
|
||||
<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
|
||||
<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
|
||||
Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
|
||||
Pixiv Fanboxでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br>
|
||||
困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・<b>緊急の脆弱性修正</b>
|
||||
<h5>Release Note Usamin (18.2.0)</h5>
|
||||
・tootsearchをひとつのカラムにしてエゴサが捗る<br>
|
||||
・イントロダクション(初回起動時)の挙動修正<br>
|
||||
・リンクプレビューを最大1行ずつに省略(タイトルと本文)<br>
|
||||
・ブロックされたときのプロフィールの動作(Mastodon 2.8~)<br>
|
||||
・(Misskey)MFM追加flipやjumpなど<br>
|
||||
・(Misskey)リストに対応<br>
|
||||
・(Misskey)カスタム絵文字に対応。カスタム絵文字によるリアクションに対応(対応インスタンスに限る)。<br>
|
||||
・<b>カスタム絵文字をゼロ幅スペースによる挿入に変更する機能</b><br>
|
||||
・一部機能の統廃合とバグの修正<br>
|
||||
・best-friends.chatやキュアスタ!、misskey.devをサポートインスタンスに追加
|
||||
<h5>Release Note Usamin (18.4.0)</h5>
|
||||
・ソフトウェア(通知音などのアセットを含むTheDeskオリジナル制作物)のコピーライトをTheDeskに統一。Cutls PをMain Developer(author)に。<br>
|
||||
・Misskey v11のストリーミングに対応(初期取得の投稿のリアクションは自動取得できません。)<br>
|
||||
・その他Misskeyのさまざまな挙動を修正、追加しました。<br>
|
||||
・NSFWメディアが複数あったときに「NSFW Media」の文字が邪魔で複数段になる不具合を修正。<br>
|
||||
・フォローリクエストの許可/拒否ができるように。<br>
|
||||
・起動時に通知のストリーミングにつながらない不具合を修正<br>
|
||||
<br>
|
||||
</div>
|
||||
<div id="release-en">
|
||||
<div id="release-en" style="display:none">
|
||||
<h5>Let's make it native!</h5>
|
||||
<a href="https://translate.thedesk.top">Crowdin translation project</a>
|
||||
</div>
|
||||
<br><br>
|
||||
<h3>crwdns473:0crwdne473:0</h3>
|
||||
crwdns474:0crwdne474:0<br>
|
||||
<a class="btn-share btn waves-effect waves-light purple lighten-2" href="https://enty.jp/Cutls" target="_blank">
|
||||
crwdns475:0crwdne475:0
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2"
|
||||
href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
@@PixivSupport@@
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light red lighten-2" href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank">
|
||||
{{PixivSupport}}
|
||||
</a>
|
||||
<a class="btn-share btn waves-effect waves-light blue" href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
<a class="btn-share btn waves-effect waves-light blue"
|
||||
href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank">
|
||||
crwdns476:0crwdne476:0
|
||||
</a>
|
||||
<br>
|
||||
crwdns477:0crwdne477:0<a href="mailto:mstdn@thedesk.top" target="_blank">mstdn@thedesk.top</a>crwdns478:0crwdne478:0<br>
|
||||
crwdns477:0crwdne477:0<a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>crwdns478:0crwdne478:0<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
</div>
|
||||
@@ -640,13 +706,19 @@ var tlid=0;
|
||||
</span>
|
||||
<div id="menu-wrapper">
|
||||
<div id="left-menu">
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i class="material-icons">add</i><span>crwdns512:0crwdne512:0</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i class="material-icons">sort</i><span>crwdns513:0crwdne513:0</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i class="material-icons">search</i><span>crwdns492:0crwdne492:0</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i class="material-icons">view_headline</i><span>crwdns444:0crwdne444:0</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i class="material-icons">filter_list</i><span>crwdns515:0crwdne515:0</span></div>
|
||||
<div class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"><i
|
||||
class="material-icons">add</i><span>crwdns512:0crwdne512:0</span></div>
|
||||
<div class="waves-effect" onclick="sortMenu()" id="sortMenu"><i
|
||||
class="material-icons">sort</i><span>crwdns513:0crwdne513:0</span></div>
|
||||
<div class="waves-effect" onclick="searchMenu()" id="searchMenu"><i
|
||||
class="material-icons">search</i><span>crwdns492:0crwdne492:0</span></div>
|
||||
<div class="waves-effect" onclick="listMenu()" id="listMenu"><i
|
||||
class="material-icons">view_headline</i><span>crwdns444:0crwdne444:0</span></div>
|
||||
<div class="waves-effect" onclick="filterMenu()" id="filterMenu"><i
|
||||
class="material-icons">filter_list</i><span>crwdns515:0crwdne515:0</span></div>
|
||||
<div class="waves-effect" onclick="help()"><i class="material-icons">help_outline</i><span>crwdns1894:0crwdne1894:0</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i class="material-icons">refresh</i><span>crwdns518:0crwdne518:0</span></div>
|
||||
<div class="waves-effect" onclick="location.href='index.html'"><i
|
||||
class="material-icons">refresh</i><span>crwdns518:0crwdne518:0</span></div>
|
||||
</div>
|
||||
<div id="right-menu">
|
||||
<!--カラム追加-->
|
||||
@@ -661,24 +733,47 @@ var tlid=0;
|
||||
<input type="hidden" value="local" id="type-sel">
|
||||
crwdns489:0crwdne489:0
|
||||
<div id="tltype">
|
||||
<div class="type waves-effect active" data-type="local"><div><i class="material-icons">people_outline</i></div><span>crwdns480:0crwdne480:0</span></div>
|
||||
<div class="type waves-effect" data-type="local-media"><div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i></div><span>crwdns481:0crwdne481:0</span></div>
|
||||
<div class="type waves-effect" data-type="home"><div><i class="material-icons">home</i></div><span>crwdns482:0crwdne482:0</span></div>
|
||||
<div class="type waves-effect" data-type="pub"><div><i class="material-icons">language</i></div><span>crwdns483:0crwdne483:0</span></div>
|
||||
<div class="type waves-effect" data-type="pub-media"><div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div><span>crwdns484:0crwdne484:0</span></div>
|
||||
<div class="type waves-effect" data-type="dm"><div><i class="material-icons">mail_outline</i></div><span>crwdns485:0crwdne485:0</span></div>
|
||||
<div class="type waves-effect" data-type="mix"><div><i class="material-icons">merge_type</i></div><span>crwdns486:0crwdne486:0</span></div>
|
||||
<div class="type waves-effect" data-type="plus"><div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div><span>crwdns487:0crwdne487:0</span></div>
|
||||
<div class="type waves-effect" data-type="notf"><div><i class="material-icons">notifications</i></div><span>crwdns488:0crwdne488:0</span></div>
|
||||
<div class="type waves-effect active" data-type="local">
|
||||
<div><i class="material-icons">people_outline</i></div><span>crwdns480:0crwdne480:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="local-media">
|
||||
<div><i class="material-icons">people_outline</i><i class="material-icons sub-icon">perm_media</i>
|
||||
</div><span>crwdns481:0crwdne481:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="home">
|
||||
<div><i class="material-icons">home</i></div><span>crwdns482:0crwdne482:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub">
|
||||
<div><i class="material-icons">language</i></div><span>crwdns483:0crwdne483:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="pub-media">
|
||||
<div><i class="material-icons">language</i><i class="material-icons sub-icon">perm_media</i></div>
|
||||
<span>crwdns484:0crwdne484:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="dm">
|
||||
<div><i class="material-icons">mail_outline</i></div><span>crwdns485:0crwdne485:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="mix">
|
||||
<div><i class="material-icons">merge_type</i></div><span>crwdns486:0crwdne486:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="plus">
|
||||
<div><i class="material-icons">merge_type</i><i class="material-icons sub-icon">reply</i></div>
|
||||
<span>crwdns487:0crwdne487:0</span>
|
||||
</div>
|
||||
<div class="type waves-effect" data-type="notf">
|
||||
<div><i class="material-icons">notifications</i></div><span>crwdns488:0crwdne488:0</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="noauth" class="hide">crwdns489:0crwdne489:0
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);" placeholder="e.g:mstdn.jp">
|
||||
<input id="noauth-url" type="text" class="validate" style="width:calc( 70% - 40px);"
|
||||
placeholder="e.g:mstdn.jp">
|
||||
</div>
|
||||
<div id="webview-add" class="hide">crwdns490:0crwdne490:0
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()" data-trans-i="add">
|
||||
<button class="btn waves-effect blue " style="width:calc( 100% - 10px);" onclick="addColumn()"
|
||||
data-trans-i="add">
|
||||
<i class="material-icons left">add</i>crwdns491:0crwdne491:0
|
||||
</button>
|
||||
<br>
|
||||
@@ -688,10 +783,12 @@ var tlid=0;
|
||||
<div id="src-box" class="hide menu-content">
|
||||
<div class="input-field">
|
||||
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
|
||||
</div><div class="input-field">
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<input id="src" type="text" class="validate" style="width:60%">
|
||||
<label for="src" data-trans="src">crwdns492:0crwdne492:0</label>
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()" data-trans-i="src">
|
||||
<button class="btn waves-effect indigo" style="width: 36%;padding: 0;padding-left: 15px;" onclick="src()"
|
||||
data-trans-i="src">
|
||||
<i class="material-icons left" style="margin:0">search</i>crwdns492:0crwdne492:0
|
||||
</button>
|
||||
<br>
|
||||
@@ -768,14 +865,15 @@ var tlid=0;
|
||||
<a onclick="filterTime(0,12,0)" class="pointer">12crwdns508:0crwdne508:0</a>/
|
||||
<a onclick="filterTime(1,0,0)" class="pointer">1crwdns507:0crwdne507:0</a>/
|
||||
<a onclick="filterTime(7,0,0)" class="pointer">7crwdns507:0crwdne507:0</a>/
|
||||
<a onclick="filterTime(0,0,0)" class="pointer">{{unlimited}}</a><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()" id="add-filter-btn">crwdns491:0crwdne491:0</button><br>
|
||||
<a onclick="filterTime(0,0,0)" class="pointer">@@unlimited@@</a><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="makeNewFilter()"
|
||||
id="add-filter-btn">crwdns491:0crwdne491:0</button><br>
|
||||
<span class="sml">crwdns510:0crwdne510:0</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a onclick="about()" class="nex waves-effect">
|
||||
<i class="material-icons" style="font-size: 1rem;">info</i>{{about}}
|
||||
<i class="material-icons" style="font-size: 1rem;">info</i>@@about@@
|
||||
</a> |
|
||||
<a onclick="bottomReverse()" class="nex waves-effect">
|
||||
<i class="material-icons" style="font-size: 1rem;">swap_horiz</i>crwdns517:0crwdne517:0
|
||||
@@ -794,8 +892,10 @@ var tlid=0;
|
||||
<div id="bottom" class="reverse">
|
||||
<div class="leftside reverse">
|
||||
<div id="dambox">
|
||||
<button id="posttgl" class="btn waves-effect indigo" style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons" style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>crwdns388:0crwdne388:0
|
||||
<button id="posttgl" class="btn waves-effect indigo"
|
||||
style="width: 100%;height: 2.5rem;line-height: 0;margin: 0;">
|
||||
<i class="material-icons"
|
||||
style="position: relative; top: 5px; font-size: 1.5rem; text-align: center; margin-right: 10px;">edit</i>crwdns388:0crwdne388:0
|
||||
</button>
|
||||
</div>
|
||||
<div class="leftside reverse" id="group">
|
||||
@@ -812,8 +912,10 @@ var tlid=0;
|
||||
<a onclick="menu()" class="nex waves-effect" id="list-tgl">
|
||||
<i class="material-icons" title="crwdns444:0crwdne444:0">apps</i>
|
||||
</a>
|
||||
<span id="fukidashi">@@hereAddColumns@@</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></div>
|
||||
<div>
|
||||
<div id="tips-menu">
|
||||
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="ps">
|
||||
<html lang="ps" style="overflow:scroll">
|
||||
|
||||
<head>
|
||||
<title>Settings - TheDesk</title>
|
||||
@@ -22,7 +22,6 @@
|
||||
input {
|
||||
max-height: 50px !important
|
||||
}
|
||||
|
||||
.pcr-result {
|
||||
height: 1rem !important;
|
||||
}
|
||||
@@ -47,7 +46,7 @@
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns530:0crwdne530:0</h5>
|
||||
To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
|
||||
<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
|
||||
<a onclick="changelang('ja')" class="pointer" style="margin-right:5px;">日本語</a><a onclick="changelang('en')" class="pointer" style="margin-right:5px;">English</a><a onclick="changelang('ps')" class="pointer" style="margin-right:5px;">Crowdin translate system(beta)</a>
|
||||
<h5>crwdns531:0crwdne531:0</h5>
|
||||
<button onclick="exportSettings()" class="btn waves-effect lime darken-3"
|
||||
style="width:100%; max-width:200px;">crwdns533:0crwdne533:0</button>
|
||||
@@ -56,8 +55,8 @@
|
||||
<div id="envView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.id=='notf'"><a onclick="notftest()"
|
||||
class="pointer">crwdns540:0crwdne540:0</a><br></template>
|
||||
@@ -131,9 +130,9 @@
|
||||
<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea"
|
||||
placeholder="crwdns2440:0crwdne2440:0..."></textarea></div>
|
||||
<h5>crwdns2426:0crwdne2426:0</h5>
|
||||
<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
|
||||
<input class="with-gap" name="direction" type="radio" id="dark" value="dark" checked="true" />
|
||||
<label for="dark">Dark</label>
|
||||
<input class="with-gap" name="derection" type="radio" id="light" value="light" />
|
||||
<input class="with-gap" name="direction" type="radio" id="light" value="light" />
|
||||
<label for="light">Light</label>
|
||||
<div id="pickers">
|
||||
<div>
|
||||
@@ -184,8 +183,8 @@
|
||||
<div id="tlView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -210,6 +209,11 @@
|
||||
</template><br>
|
||||
</template>
|
||||
</div>
|
||||
<h5>@@customSound@@</h5>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(1)">Custom 1</button><span id="c1-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(2)">Custom 2</button><span id="c2-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(3)">Custom 3</button><span id="c3-file"></span><br>
|
||||
<button class="btn waves-effect" style="width:120px;" onclick="customSound(4)">Custom 4</button><span id="c4-file"></span><br>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
@@ -220,8 +224,8 @@
|
||||
<div id="postView">
|
||||
<template v-for="(item, i) in config">
|
||||
<h5>{{item.text.head}}</h5>
|
||||
<template v-if=item.text.desc>
|
||||
<templete v-html=item.text.desc></templete><br>
|
||||
<template v-if="item.text.desc">
|
||||
<templete v-html="item.text.desc"></templete><br>
|
||||
</template>
|
||||
<template v-if="item.checkbox">
|
||||
<template v-for="(check, j) in item.text.checkbox">
|
||||
@@ -253,7 +257,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<div class="collapsible-header">
|
||||
<i class="material-icons">Fkeyboard</i>crwdns611:0crwdne611:0
|
||||
<i class="material-icons">keyboard</i>crwdns611:0crwdne611:0
|
||||
</div>
|
||||
<div class="collapsible-body">
|
||||
<h5>crwdns612:0crwdne612:0</h5>
|
||||
@@ -403,29 +407,27 @@
|
||||
class="material-icons left">info</i>crwdns662:0crwdne662:0</button>
|
||||
<a href="https://thedesk.top" class="btn waves-effect deep-purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">web</i>crwdns663:0crwdne663:0</a>
|
||||
<a href="https://enty.jp/Cutls" class="btn waves-effect purple lighten-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">trending_up</i>crwdns664:0crwdne664:0(Enty)</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>crwdns664:0crwdne664:0(Pixiv FANBOX)</a>
|
||||
<a href="https://docs.thedesk.top" class="btn waves-effect blue darken-2" style="width:100%; max-width:500px;"><i
|
||||
class="material-icons left">list</i>crwdns665:0crwdne665:0/Docs(Constructing)</a>
|
||||
<a href="https://github.com/cutls/TheDesk" class="btn waves-effect black lighten-2"
|
||||
style="width:100%; max-width:500px;"><i class="fa fa-github left"></i>GitHub</a>
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud" 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="padding-top:5px;">Developer: Cutls@kirishima.cloud</a>
|
||||
style="padding-top:5px;">Developer: Cutls@cutls.com</a>
|
||||
<br>
|
||||
Kyash<br>
|
||||
<img src="../../img/kyash.png" width="100"><br>
|
||||
<a onclick="localStorage.removeItem('new-ver-skip'); location.href='index.html';"
|
||||
class="pointer">crwdns667:0crwdne667:0</a><br>
|
||||
<a href="oss.html">OSS Licensecrwdns668:0crwdne668:0</a><br>
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018 All Rights Reserved.
|
||||
<span style="font-family:Open Sans;">Copyright © TheDesk 2018
|
||||
Under <a href="https://github.com/cutls/TheDesk/blob/master/LICENSE">GNU General Public License v3.0</a> and <a
|
||||
href="https://thedesk.top/tos.html">Terms of Use</a>/<a href="https://thedesk.top/priv.html">Privacy
|
||||
Policy</a>
|
||||
<br>Developer: Cutls P(
|
||||
<a href="index.html?mode=user&code=Cutls@kirishima.cloud">@Cutls@kirishima.cloud</a>)
|
||||
<a href="index.html?mode=user&code=Cutls@cutls.com">@Cutls@cutls.com</a>)
|
||||
<br>
|
||||
</span><br>
|
||||
TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のためのマストドン研究会</a>をログイン機能提供等の形で応援しています。<br>
|
||||
|
@@ -7,6 +7,27 @@ var yesno=[
|
||||
value:"no"
|
||||
}
|
||||
];
|
||||
var sound=[
|
||||
{
|
||||
text:"@@none@@",
|
||||
value:"none"
|
||||
},{
|
||||
text:"@@default@@",
|
||||
value:"default"
|
||||
},{
|
||||
text:"Custom 1",
|
||||
value:"c1"
|
||||
},{
|
||||
text:"Custom 2",
|
||||
value:"c2"
|
||||
},{
|
||||
text:"Custom 3",
|
||||
value:"c3"
|
||||
},{
|
||||
text:"Custom 4",
|
||||
value:"c4"
|
||||
}
|
||||
];
|
||||
var envConstruction=[
|
||||
{
|
||||
id:"popup",
|
||||
@@ -286,6 +307,46 @@ var tlConstruction=[
|
||||
desc:"",
|
||||
checkbox:yesno
|
||||
}
|
||||
},{
|
||||
id:"replySound",
|
||||
storage:"replySound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@replySound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"favSound",
|
||||
storage:"favSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@favSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"btSound",
|
||||
storage:"btSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@btSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
},{
|
||||
id:"followSound",
|
||||
storage:"followSound",
|
||||
checkbox:true,
|
||||
setValue:"none",
|
||||
text:{
|
||||
head:"@@followSound@@",
|
||||
desc:"",
|
||||
checkbox:sound
|
||||
}
|
||||
}
|
||||
];
|
||||
var postConstruction=[
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<html lang="ps">
|
||||
<head>
|
||||
<title>Update - TheDesk</title>
|
||||
<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
|
||||
@@ -198,9 +198,23 @@ function verck(){
|
||||
console.error(error);
|
||||
}).then(function(json) {
|
||||
console.log(json);
|
||||
if(platform=="win32"){
|
||||
$("#ver").text(json.desk);
|
||||
localStorage.setItem("next-ver",json.desk);
|
||||
}else if(platform=="linux"){
|
||||
$("#ver").text(json.desk_linux);
|
||||
localStorage.setItem("next-ver",json.desk_linux);
|
||||
}else if(platform=="darwin"){
|
||||
$("#ver").text(json.desk_mac);
|
||||
localStorage.setItem("next-ver",json.desk_mac);
|
||||
}
|
||||
var lang="ps";
|
||||
if(lang=="ja"){
|
||||
$("#det").html(json.detail);
|
||||
}else{
|
||||
$("#det").html(json.detail_en);
|
||||
}
|
||||
|
||||
$("#now").text(localStorage.getItem("ver"));
|
||||
|
||||
});
|
||||
|
Reference in New Issue
Block a user