TheDesk Mizuki (ver.1)

This commit is contained in:
cutls 2018-03-31 11:39:06 +09:00
parent e2a1b60d1f
commit ac4ea9fe9f
21 changed files with 1051 additions and 32 deletions

View File

@ -1,22 +1,24 @@
## For Astarte(kirishima.cloud), My Primary Instance
TheDesk :thedesk: Airi (ver.9)
本文コピー(各TLの公開範囲のボタンをクリック。)
絵文字大幅拡充
Local+ TL(ローカルTLに同一インスタンスのリプライやブーストを)
Glance TL(認証しなくてもローカルTLが見れる)
ますとどんちほー(mstdn.kemono-friends.info)に対応
独自ロケール拡充
TheDesk :thedesk: Mizuki (ver.1)
トゥート翻訳(By Google翻訳)
ネイティブ通知
faiconピッカー
画像貼り付け
他アカウントでプロフを開く
誤爆防止措置
ほか
https://thedesk.top
:github: https://github.com/cutls/TheDesk #Desk #DeskUpdate
## For Vanilla Instances
Windows/LinuxクライアントTheDesk Airi (ver.9)リリース
・本文コピー
・絵文字大幅拡充
・Local+ TL
・Glance TL
Windows/LinuxクライアントTheDesk Mizuki (ver.1)リリース
・トゥート翻訳(By Google翻訳)
・ネイティブ通知
・faiconピッカー
・画像貼り付け
・他アカウントでプロフを開く
・誤爆防止措置
TheDeskはマルチカラムマルチアカウントはもちろんのことなにかとマストドンライフをシンプルに効率化するクライアントです。
https://thedesk.top

View File

@ -63,7 +63,7 @@
}
#default-emoji a{
color:white;
margin-right:5px;
margin-right:2px;
}
/*black theme*/

View File

@ -76,7 +76,7 @@ iframe {
flex: 1;
border: thin solid gray;
}
.box .pin{
.box .pin,#his-data .pin{
display:none;
}
.user{
@ -88,6 +88,9 @@ iframe {
vertical-align: middle;
margin: -3px 0 0;
}
.faicon_FTL{
display:none;
}
.tl-box{ height:calc(100% - 40px); overflow-y:scroll; overflow-x:hidden }
.additional {
overflow-x: scroll;

1
app/img/missing.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="61.076954mm" height="65.47831mm" viewBox="0 0 216.4144 232.00976"><path d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915" fill="#bdbdbd"/><path d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -26,7 +26,7 @@
<script type="text/javascript" src="./js/ui/jquery-ui.min.js"></script>
<script>
//必ずアプデ時のremove instance消して
var ver="Airi (ver.9)";
var ver="Mizuki (ver.1)";
//betaを入れるとバージョンチェックしない
//var ver="beta";
var acct_id=0;
@ -240,8 +240,8 @@ var tlid=0;
<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select>
</div>
<div class="mize" style="float:left;">
<a onclick="profShow()" style="vertical-align:-1.5rem;">
<i class="material-icons nex pointer mize waves-effect" title="選択中のプロフィール表示(Ctrl+Shift+P)" data-trans-title="post_box_prof">account_circle</i>
<a onclick="profShow()" style="vertical-align:-2.5rem;" class="pointer">
<img src="" id="acct-sel-prof" title="選択中のプロフィール表示(Ctrl+Shift+P)" data-trans-title="post_box_prof" width="24px">
</a>
</div>
<!--Markdown-->
@ -367,7 +367,7 @@ var tlid=0;
</button>
</div>
<div id="default-emoji">
<span id="now-emoji"></span>一覧を表示中<br><span class="gray sml">一部デフォルト絵文字は入力・描画できません。</span>
<span id="now-emoji"></span>一覧を表示中<br><span class="gray sml">一部デフォルト絵文字は入力・描画できません。(国旗系など)</span>
<br>
<a onclick="customEmoji()" class="pointer waves-effect" title="カスタム絵文字">
<i class="material-icons">add</i>
@ -396,6 +396,9 @@ var tlid=0;
<a onclick="defaultEmoji('flag')" class="pointer waves-effect" title="国旗">
<i class="material-icons">flag</i>
</a>
<a onclick="faicon()" class="pointer waves-effect" title="faicon" id="faicon-btn">
<i class="fa fa-fort-awesome"></i>
</a>
</div>
</div>
</div>
@ -569,7 +572,9 @@ var tlid=0;
<div id="his-action" class="col s12 tab-content">
他のアカウントを使用してフォロー(解除はできません)<br>
<div style="max-width:500px;"><select id="user-acct-sel" class="acct-sel"></select></div>
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">フォロー</a>
<a href="#!" class="waves-effect btn" onclick="follow('selector','true')">フォロー</a><br>
または<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">プロフを開く</a><br>
</div>
<div id="his-fav-list" class="col s12 tab-content">
<div id="his-fav-list-contents" class="cont-series">

View File

@ -51,3 +51,16 @@ function defEmoji(target){
$("#textarea").val(newt);
$("#textarea").focus();
}
function faicon(){
var json=faicons;
console.log(json);
var emojis="";
Object.keys(json).forEach(function(key) {
var emoji = json[key];
var eje = emoji.replace( /fa-/g , "" ) ;
emojis = emojis + '<a onclick="emojiInsert(\'[faicon]'+eje+'[/faicon]\')" class="pointer white-text" style="font-size:24px"><i class="fa '+emoji+'"></i></a>';
});
$("#emoji-list").html(emojis);
$("#now-emoji").text("faicon");
$(".emoji-control").addClass("hide");
}

View File

@ -1493,3 +1493,791 @@ var symbol=[
{shortcode:"male_sign",css:"2.08333% 39.5833%"},
{shortcode:"staff_of_aesculapius",css:"2.08333% 87.5%"}
];
var faicons=[
"fa-500px",
"fa-address-book",
"fa-address-book-o",
"fa-address-card",
"fa-address-card-o",
"fa-adjust",
"fa-adn",
"fa-align-center",
"fa-align-justify",
"fa-align-left",
"fa-align-right",
"fa-amazon",
"fa-ambulance",
"fa-american-sign-language-interpreting",
"fa-anchor",
"fa-android",
"fa-angellist",
"fa-angle-double-down",
"fa-angle-double-left",
"fa-angle-double-right",
"fa-angle-double-up",
"fa-angle-down",
"fa-angle-left",
"fa-angle-right",
"fa-angle-up",
"fa-apple",
"fa-archive",
"fa-area-chart",
"fa-arrow-circle-down",
"fa-arrow-circle-left",
"fa-arrow-circle-o-down",
"fa-arrow-circle-o-left",
"fa-arrow-circle-o-right",
"fa-arrow-circle-o-up",
"fa-arrow-circle-right",
"fa-arrow-circle-up",
"fa-arrow-down",
"fa-arrow-left",
"fa-arrow-right",
"fa-arrow-up",
"fa-arrows",
"fa-arrows-alt",
"fa-arrows-h",
"fa-arrows-v",
"fa-asl-interpreting",
"fa-assistive-listening-systems",
"fa-asterisk",
"fa-at",
"fa-audio-description",
"fa-automobile",
"fa-backward",
"fa-balance-scale",
"fa-ban",
"fa-bandcamp",
"fa-bank",
"fa-bar-chart",
"fa-bar-chart-o",
"fa-barcode",
"fa-bars",
"fa-bath",
"fa-bathtub",
"fa-battery",
"fa-battery-0",
"fa-battery-1",
"fa-battery-2",
"fa-battery-3",
"fa-battery-4",
"fa-battery-empty",
"fa-battery-full",
"fa-battery-half",
"fa-battery-quarter",
"fa-battery-three-quarters",
"fa-bed",
"fa-beer",
"fa-behance",
"fa-behance-square",
"fa-bell",
"fa-bell-o",
"fa-bell-slash",
"fa-bell-slash-o",
"fa-bicycle",
"fa-binoculars",
"fa-birthday-cake",
"fa-bitbucket",
"fa-bitbucket-square",
"fa-bitcoin",
"fa-black-tie",
"fa-blind",
"fa-bluetooth",
"fa-bluetooth-b",
"fa-bold",
"fa-bolt",
"fa-bomb",
"fa-book",
"fa-bookmark",
"fa-bookmark-o",
"fa-braille",
"fa-briefcase",
"fa-btc",
"fa-bug",
"fa-building",
"fa-building-o",
"fa-bullhorn",
"fa-bullseye",
"fa-bus",
"fa-buysellads",
"fa-cab",
"fa-calculator",
"fa-calendar",
"fa-calendar-check-o",
"fa-calendar-minus-o",
"fa-calendar-o",
"fa-calendar-plus-o",
"fa-calendar-times-o",
"fa-camera",
"fa-camera-retro",
"fa-car",
"fa-caret-down",
"fa-caret-left",
"fa-caret-right",
"fa-caret-square-o-down",
"fa-caret-square-o-left",
"fa-caret-square-o-right",
"fa-caret-square-o-up",
"fa-caret-up",
"fa-cart-arrow-down",
"fa-cart-plus",
"fa-cc",
"fa-cc-amex",
"fa-cc-diners-club",
"fa-cc-discover",
"fa-cc-jcb",
"fa-cc-mastercard",
"fa-cc-paypal",
"fa-cc-stripe",
"fa-cc-visa",
"fa-certificate",
"fa-chain",
"fa-chain-broken",
"fa-check",
"fa-check-circle",
"fa-check-circle-o",
"fa-check-square",
"fa-check-square-o",
"fa-chevron-circle-down",
"fa-chevron-circle-left",
"fa-chevron-circle-right",
"fa-chevron-circle-up",
"fa-chevron-down",
"fa-chevron-left",
"fa-chevron-right",
"fa-chevron-up",
"fa-child",
"fa-chrome",
"fa-circle",
"fa-circle-o",
"fa-circle-o-notch",
"fa-circle-thin",
"fa-clipboard",
"fa-clock-o",
"fa-clone",
"fa-close",
"fa-cloud",
"fa-cloud-download",
"fa-cloud-upload",
"fa-cny",
"fa-code",
"fa-code-fork",
"fa-codepen",
"fa-codiepie",
"fa-coffee",
"fa-cog",
"fa-cogs",
"fa-columns",
"fa-comment",
"fa-comment-o",
"fa-commenting",
"fa-commenting-o",
"fa-comments",
"fa-comments-o",
"fa-compass",
"fa-compress",
"fa-connectdevelop",
"fa-contao",
"fa-copy",
"fa-copyright",
"fa-creative-commons",
"fa-credit-card",
"fa-credit-card-alt",
"fa-crop",
"fa-crosshairs",
"fa-css3",
"fa-cube",
"fa-cubes",
"fa-cut",
"fa-cutlery",
"fa-dashboard",
"fa-dashcube",
"fa-database",
"fa-deaf",
"fa-deafness",
"fa-dedent",
"fa-delicious",
"fa-desktop",
"fa-deviantart",
"fa-diamond",
"fa-digg",
"fa-dollar",
"fa-dot-circle-o",
"fa-download",
"fa-dribbble",
"fa-drivers-license",
"fa-drivers-license-o",
"fa-dropbox",
"fa-drupal",
"fa-edge",
"fa-edit",
"fa-eercast",
"fa-eject",
"fa-ellipsis-h",
"fa-ellipsis-v",
"fa-empire",
"fa-envelope",
"fa-envelope-o",
"fa-envelope-open",
"fa-envelope-open-o",
"fa-envelope-square",
"fa-envira",
"fa-eraser",
"fa-etsy",
"fa-eur",
"fa-euro",
"fa-exchange",
"fa-exclamation",
"fa-exclamation-circle",
"fa-exclamation-triangle",
"fa-expand",
"fa-expeditedssl",
"fa-external-link",
"fa-external-link-square",
"fa-eye",
"fa-eye-slash",
"fa-eyedropper",
"fa-fa",
"fa-facebook",
"fa-facebook-f",
"fa-facebook-official",
"fa-facebook-square",
"fa-fast-backward",
"fa-fast-forward",
"fa-fax",
"fa-feed",
"fa-female",
"fa-fighter-jet",
"fa-file",
"fa-file-archive-o",
"fa-file-audio-o",
"fa-file-code-o",
"fa-file-excel-o",
"fa-file-image-o",
"fa-file-movie-o",
"fa-file-o",
"fa-file-pdf-o",
"fa-file-photo-o",
"fa-file-picture-o",
"fa-file-powerpoint-o",
"fa-file-sound-o",
"fa-file-text",
"fa-file-text-o",
"fa-file-video-o",
"fa-file-word-o",
"fa-file-zip-o",
"fa-files-o",
"fa-film",
"fa-filter",
"fa-fire",
"fa-fire-extinguisher",
"fa-firefox",
"fa-first-order",
"fa-flag",
"fa-flag-checkered",
"fa-flag-o",
"fa-flash",
"fa-flask",
"fa-flickr",
"fa-floppy-o",
"fa-folder",
"fa-folder-o",
"fa-folder-open",
"fa-folder-open-o",
"fa-font",
"fa-font-awesome",
"fa-fonticons",
"fa-fort-awesome",
"fa-forumbee",
"fa-forward",
"fa-foursquare",
"fa-free-code-camp",
"fa-frown-o",
"fa-futbol-o",
"fa-gamepad",
"fa-gavel",
"fa-gbp",
"fa-ge",
"fa-gear",
"fa-gears",
"fa-genderless",
"fa-get-pocket",
"fa-gg",
"fa-gg-circle",
"fa-gift",
"fa-git",
"fa-git-square",
"fa-github",
"fa-github-alt",
"fa-github-square",
"fa-gitlab",
"fa-gittip",
"fa-glass",
"fa-glide",
"fa-glide-g",
"fa-globe",
"fa-google",
"fa-google-plus",
"fa-google-plus-circle",
"fa-google-plus-official",
"fa-google-plus-square",
"fa-google-wallet",
"fa-graduation-cap",
"fa-gratipay",
"fa-grav",
"fa-group",
"fa-h-square",
"fa-hacker-news",
"fa-hand-grab-o",
"fa-hand-lizard-o",
"fa-hand-o-down",
"fa-hand-o-left",
"fa-hand-o-right",
"fa-hand-o-up",
"fa-hand-paper-o",
"fa-hand-peace-o",
"fa-hand-pointer-o",
"fa-hand-rock-o",
"fa-hand-scissors-o",
"fa-hand-spock-o",
"fa-hand-stop-o",
"fa-handshake-o",
"fa-hard-of-hearing",
"fa-hashtag",
"fa-hdd-o",
"fa-header",
"fa-headphones",
"fa-heart",
"fa-heart-o",
"fa-heartbeat",
"fa-history",
"fa-home",
"fa-hospital-o",
"fa-hotel",
"fa-hourglass",
"fa-hourglass-1",
"fa-hourglass-2",
"fa-hourglass-3",
"fa-hourglass-end",
"fa-hourglass-half",
"fa-hourglass-o",
"fa-hourglass-start",
"fa-houzz",
"fa-html5",
"fa-i-cursor",
"fa-id-badge",
"fa-id-card",
"fa-id-card-o",
"fa-ils",
"fa-image",
"fa-imdb",
"fa-inbox",
"fa-indent",
"fa-industry",
"fa-info",
"fa-info-circle",
"fa-inr",
"fa-instagram",
"fa-institution",
"fa-internet-explorer",
"fa-intersex",
"fa-ioxhost",
"fa-italic",
"fa-joomla",
"fa-jpy",
"fa-jsfiddle",
"fa-key",
"fa-keyboard-o",
"fa-krw",
"fa-language",
"fa-laptop",
"fa-lastfm",
"fa-lastfm-square",
"fa-leaf",
"fa-leanpub",
"fa-legal",
"fa-lemon-o",
"fa-level-down",
"fa-level-up",
"fa-life-bouy",
"fa-life-buoy",
"fa-life-ring",
"fa-life-saver",
"fa-lightbulb-o",
"fa-line-chart",
"fa-link",
"fa-linkedin",
"fa-linkedin-square",
"fa-linode",
"fa-linux",
"fa-list",
"fa-list-alt",
"fa-list-ol",
"fa-list-ul",
"fa-location-arrow",
"fa-lock",
"fa-long-arrow-down",
"fa-long-arrow-left",
"fa-long-arrow-right",
"fa-long-arrow-up",
"fa-low-vision",
"fa-magic",
"fa-magnet",
"fa-mail-forward",
"fa-mail-reply",
"fa-mail-reply-all",
"fa-male",
"fa-map",
"fa-map-marker",
"fa-map-o",
"fa-map-pin",
"fa-map-signs",
"fa-mars",
"fa-mars-double",
"fa-mars-stroke",
"fa-mars-stroke-h",
"fa-mars-stroke-v",
"fa-maxcdn",
"fa-meanpath",
"fa-medium",
"fa-medkit",
"fa-meetup",
"fa-meh-o",
"fa-mercury",
"fa-microchip",
"fa-microphone",
"fa-microphone-slash",
"fa-minus",
"fa-minus-circle",
"fa-minus-square",
"fa-minus-square-o",
"fa-mixcloud",
"fa-mobile",
"fa-mobile-phone",
"fa-modx",
"fa-money",
"fa-moon-o",
"fa-mortar-board",
"fa-motorcycle",
"fa-mouse-pointer",
"fa-music",
"fa-navicon",
"fa-neuter",
"fa-newspaper-o",
"fa-object-group",
"fa-object-ungroup",
"fa-odnoklassniki",
"fa-odnoklassniki-square",
"fa-opencart",
"fa-openid",
"fa-opera",
"fa-optin-monster",
"fa-outdent",
"fa-pagelines",
"fa-paint-brush",
"fa-paper-plane",
"fa-paper-plane-o",
"fa-paperclip",
"fa-paragraph",
"fa-paste",
"fa-pause",
"fa-pause-circle",
"fa-pause-circle-o",
"fa-paw",
"fa-paypal",
"fa-pencil",
"fa-pencil-square",
"fa-pencil-square-o",
"fa-percent",
"fa-phone",
"fa-phone-square",
"fa-photo",
"fa-picture-o",
"fa-pie-chart",
"fa-pied-piper",
"fa-pied-piper-alt",
"fa-pied-piper-pp",
"fa-pinterest",
"fa-pinterest-p",
"fa-pinterest-square",
"fa-plane",
"fa-play",
"fa-play-circle",
"fa-play-circle-o",
"fa-plug",
"fa-plus",
"fa-plus-circle",
"fa-plus-square",
"fa-plus-square-o",
"fa-podcast",
"fa-power-off",
"fa-print",
"fa-product-hunt",
"fa-puzzle-piece",
"fa-qq",
"fa-qrcode",
"fa-question",
"fa-question-circle",
"fa-question-circle-o",
"fa-quora",
"fa-quote-left",
"fa-quote-right",
"fa-ra",
"fa-random",
"fa-ravelry",
"fa-rebel",
"fa-recycle",
"fa-reddit",
"fa-reddit-alien",
"fa-reddit-square",
"fa-refresh",
"fa-registered",
"fa-remove",
"fa-renren",
"fa-reorder",
"fa-repeat",
"fa-reply",
"fa-reply-all",
"fa-resistance",
"fa-retweet",
"fa-rmb",
"fa-road",
"fa-rocket",
"fa-rotate-left",
"fa-rotate-right",
"fa-rouble",
"fa-rss",
"fa-rss-square",
"fa-rub",
"fa-ruble",
"fa-rupee",
"fa-s15",
"fa-safari",
"fa-save",
"fa-scissors",
"fa-scribd",
"fa-search",
"fa-search-minus",
"fa-search-plus",
"fa-sellsy",
"fa-send",
"fa-send-o",
"fa-server",
"fa-share",
"fa-share-alt",
"fa-share-alt-square",
"fa-share-square",
"fa-share-square-o",
"fa-shekel",
"fa-sheqel",
"fa-shield",
"fa-ship",
"fa-shirtsinbulk",
"fa-shopping-bag",
"fa-shopping-basket",
"fa-shopping-cart",
"fa-shower",
"fa-sign-in",
"fa-sign-language",
"fa-sign-out",
"fa-signal",
"fa-signing",
"fa-simplybuilt",
"fa-sitemap",
"fa-skyatlas",
"fa-skype",
"fa-slack",
"fa-sliders",
"fa-slideshare",
"fa-smile-o",
"fa-snapchat",
"fa-snapchat-ghost",
"fa-snapchat-square",
"fa-snowflake-o",
"fa-soccer-ball-o",
"fa-sort",
"fa-sort-alpha-asc",
"fa-sort-alpha-desc",
"fa-sort-amount-asc",
"fa-sort-amount-desc",
"fa-sort-asc",
"fa-sort-desc",
"fa-sort-down",
"fa-sort-numeric-asc",
"fa-sort-numeric-desc",
"fa-sort-up",
"fa-soundcloud",
"fa-space-shuttle",
"fa-spinner",
"fa-spoon",
"fa-spotify",
"fa-square",
"fa-square-o",
"fa-stack-exchange",
"fa-stack-overflow",
"fa-star",
"fa-star-half",
"fa-star-half-empty",
"fa-star-half-full",
"fa-star-half-o",
"fa-star-o",
"fa-steam",
"fa-steam-square",
"fa-step-backward",
"fa-step-forward",
"fa-stethoscope",
"fa-sticky-note",
"fa-sticky-note-o",
"fa-stop",
"fa-stop-circle",
"fa-stop-circle-o",
"fa-street-view",
"fa-strikethrough",
"fa-stumbleupon",
"fa-stumbleupon-circle",
"fa-subscript",
"fa-subway",
"fa-suitcase",
"fa-sun-o",
"fa-superpowers",
"fa-superscript",
"fa-support",
"fa-table",
"fa-tablet",
"fa-tachometer",
"fa-tag",
"fa-tags",
"fa-tasks",
"fa-taxi",
"fa-telegram",
"fa-television",
"fa-tencent-weibo",
"fa-terminal",
"fa-text-height",
"fa-text-width",
"fa-th",
"fa-th-large",
"fa-th-list",
"fa-themeisle",
"fa-thermometer",
"fa-thermometer-0",
"fa-thermometer-1",
"fa-thermometer-2",
"fa-thermometer-3",
"fa-thermometer-4",
"fa-thermometer-empty",
"fa-thermometer-full",
"fa-thermometer-half",
"fa-thermometer-quarter",
"fa-thermometer-three-quarters",
"fa-thumb-tack",
"fa-thumbs-down",
"fa-thumbs-o-down",
"fa-thumbs-o-up",
"fa-thumbs-up",
"fa-ticket",
"fa-times",
"fa-times-circle",
"fa-times-circle-o",
"fa-times-rectangle",
"fa-times-rectangle-o",
"fa-tint",
"fa-toggle-down",
"fa-toggle-left",
"fa-toggle-off",
"fa-toggle-on",
"fa-toggle-right",
"fa-toggle-up",
"fa-trademark",
"fa-train",
"fa-transgender",
"fa-transgender-alt",
"fa-trash",
"fa-trash-o",
"fa-tree",
"fa-trello",
"fa-tripadvisor",
"fa-trophy",
"fa-truck",
"fa-try",
"fa-tty",
"fa-tumblr",
"fa-tumblr-square",
"fa-turkish-lira",
"fa-tv",
"fa-twitch",
"fa-twitter",
"fa-twitter-square",
"fa-umbrella",
"fa-underline",
"fa-undo",
"fa-universal-access",
"fa-university",
"fa-unlink",
"fa-unlock",
"fa-unlock-alt",
"fa-unsorted",
"fa-upload",
"fa-usb",
"fa-usd",
"fa-user",
"fa-user-circle",
"fa-user-circle-o",
"fa-user-md",
"fa-user-o",
"fa-user-plus",
"fa-user-secret",
"fa-user-times",
"fa-users",
"fa-vcard",
"fa-vcard-o",
"fa-venus",
"fa-venus-double",
"fa-venus-mars",
"fa-viacoin",
"fa-viadeo",
"fa-viadeo-square",
"fa-video-camera",
"fa-vimeo",
"fa-vimeo-square",
"fa-vine",
"fa-vk",
"fa-volume-control-phone",
"fa-volume-down",
"fa-volume-off",
"fa-volume-up",
"fa-warning",
"fa-wechat",
"fa-weibo",
"fa-weixin",
"fa-whatsapp",
"fa-wheelchair",
"fa-wheelchair-alt",
"fa-wifi",
"fa-wikipedia-w",
"fa-window-close",
"fa-window-close-o",
"fa-window-maximize",
"fa-window-minimize",
"fa-window-restore",
"fa-windows",
"fa-won",
"fa-wordpress",
"fa-wpbeginner",
"fa-wpexplorer",
"fa-wpforms",
"fa-wrench",
"fa-xing",
"fa-xing-square",
"fa-y-combinator",
"fa-y-combinator-square",
"fa-yahoo",
"fa-yc",
"fa-yc-square",
"fa-yelp",
"fa-yen",
"fa-yoast",
"fa-youtube",
"fa-youtube-play",
"fa-youtube-square"
]

View File

@ -1,6 +1,7 @@
/*ログイン処理・認証までのJS*/
//最初に読むやつ
//アスタルテ判定初期化
localStorage.removeItem("kirishima")
localStorage.removeItem("image");
var idata={
@ -58,6 +59,7 @@ var idata={
"mstdn.kemono-friends.info_public":"ジャパリパーク"
};
localStorage.setItem("instance", JSON.stringify(idata));
function ck() {
var domain = localStorage.getItem("domain_0");
var at = localStorage.getItem(domain + "_at");
@ -73,6 +75,7 @@ function ck() {
}
}
if (at) {
$("#tl").show();
parseColumn();
@ -211,12 +214,17 @@ function getdata() {
5000);
return;
}
var avatar=json["avatar"];
//missingがmissingなやつ
if(avatar=="/avatars/original/missing.png"){
avatar="./img/missing.svg";
}
var obj = [{
at: at,
name: json["display_name"],
domain: domain,
user: json["acct"],
prof: json["avatar"]
prof: avatar
}];
var json = JSON.stringify(obj);
console.log(obj);
@ -224,7 +232,7 @@ function getdata() {
localStorage.setItem("name_" + acct_id, json["display_name"]);
localStorage.setItem("user_" + acct_id, json["acct"]);
localStorage.setItem("user-id_" + acct_id, json["id"]);
localStorage.setItem("prof_" + acct_id, json["avatar"]);
localStorage.setItem("prof_" + acct_id, avatar);
$("#masara").hide();
$("#auth").hide();
$("#tl").show();
@ -254,12 +262,17 @@ function getdataAdv(domain, at) {
5000);
return;
}
var avatar=json["avatar"];
//missingがmissingなやつ
if(avatar=="/avatars/original/missing.png"){
avatar="./img/missing.svg";
}
var add = {
at: at,
name: json["display_name"],
domain: domain,
user: json["acct"],
prof: json["avatar"],
prof: avatar,
id: json["id"]
};
var multi = localStorage.getItem("multi");
@ -269,7 +282,7 @@ function getdataAdv(domain, at) {
localStorage.setItem("name_" + target, json["display_name"]);
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
localStorage.setItem("prof_" + target, json["avatar"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
@ -382,6 +395,15 @@ function multi() {
var list = key * 1 + 1;
if (key == last) {
sel = "selected";
var profimg=localStorage.getItem("prof_"+key);
var domain=localStorage.getItem("domain_"+key);
$("#acct-sel-prof").attr("src",profimg);
$("#toot-post-btn").text("トゥート("+domain+")");
if(domain=="kirishima.cloud"){
$("#faicon-btn").show();
}else{
$("#faicon-btn").hide();
}
} else {
sel = "";
}

View File

@ -250,12 +250,17 @@ function getdata(domain, at) {
5000);
return;
}
var avatar=json["avatar"];
//missingがmissingなやつ
if(avatar=="/avatars/original/missing.png"){
avatar="./img/missing.svg";
}
var add = {
at: at,
name: json["display_name"],
domain: domain,
user: json["acct"],
prof: json["avatar"],
prof: avatar,
id: json["id"]
};
var multi = localStorage.getItem("multi");
@ -265,7 +270,7 @@ function getdata(domain, at) {
localStorage.setItem("name_" + target, json["display_name"]);
localStorage.setItem("user_" + target, json["acct"]);
localStorage.setItem("user-id_" + target, json["id"]);
localStorage.setItem("prof_" + target, json["avatar"]);
localStorage.setItem("prof_" + target, avatar);
console.log(obj);
var json = JSON.stringify(obj);
localStorage.setItem("multi", json);
@ -299,12 +304,17 @@ function refresh(target) {
5000);
return;
}
var avatar=json["avatar"];
//missingがmissingなやつ
if(avatar=="/avatars/original/missing.png"){
avatar="./img/missing.svg";
}
var ref = {
at: obj[target].at,
name: json["display_name"],
domain: obj[target].domain,
user: json["acct"],
prof: json["avatar"],
prof: avatar,
id: json["id"]
};
localStorage.setItem("name_" + target, json["display_name"]);
@ -312,7 +322,7 @@ function refresh(target) {
localStorage.setItem("user-id_" + target, json["id"]);
console.log("user-id_" + target+":"+json["id"])
console.log(localStorage.getItem("user-id_"+target));
localStorage.setItem("prof_" + target, json["avatar"]);
localStorage.setItem("prof_" + target, avatar);
obj[target] = ref;
console.log(obj);
var json = JSON.stringify(obj);

View File

@ -2,6 +2,9 @@
//アカウント変えた時にBBとかMDとか
function mdCheck(){
var acct_id = $("#post-acct-sel").val();
var profimg=localStorage.getItem("prof_"+acct_id);
$("#acct-sel-prof").attr("src",profimg);
$("#toot-post-btn").text("トゥート("+localStorage.getItem("domain_"+acct_id)+")");
if(!localStorage.getItem("bb_"+acct_id) && !localStorage.getItem("md_"+acct_id)){
$(".markdown").addClass("hide");
$(".anti-markdown").addClass("hide");
@ -20,6 +23,11 @@ function mdCheck(){
}else{
$("#private-button").text("非公開(Private)");
}
if(domain=="kirishima.cloud"){
$("#faicon-btn").show();
}else{
$("#faicon-btn").hide();
}
}
//BOXのトグルボタン
function mdToggle(){

View File

@ -203,3 +203,26 @@ function shot(){
var ipc = electron.ipcRenderer;
ipc.send('screen', [w,h,id]);
}
//翻訳
function trans(tar){
var html=$("#toot-this .toot").html();
if(html.match(/^<p>(.+)<\/p>$/)){
html = html.match(/^<p>(.+)<\/p>$/)[1];
}
html = html.replace(/<br\s?\/?>/, "\n");
html = html.replace(/<p>/, "\n");
html = html.replace(/<\/p>/, "\n");
html=$.strip_tags(html);
$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
var exec='https://script.google.com/macros/s/AKfycbz0ETqcUxwNlw961GjErNb7vr_X18N2s1AS5Xu5nFTbYXcdcRM/exec?text='+html+'&source='+tar+'&target=ja'
fetch(exec, {
method: 'GET',
}).then(function(response) {
return response.text();
}).catch(function(error) {
todo(error);
console.error(error);
}).then(function(text) {
$("#toot-this .additional").html('<span class="gray">'+text+'</span>');
});
}

View File

@ -2,6 +2,10 @@
//取得+Streaming接続
function notf(acct_id, tlid, sys) {
todo("Notifications Loading...");
var native=localStorage.getItem("nativenotf");
if(!native){
native="yes";
}
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem(domain + "_at");
var start = "https://" + domain + "/api/v1/notifications";
@ -19,8 +23,19 @@ function notf(acct_id, tlid, sys) {
console.error(error);
}).then(function(json) {
var templete="";
var lastnotf=localStorage.getItem("lastnotf_" + acct_id);
localStorage.setItem("lastnotf_" + acct_id,json[0].id);
Object.keys(json).forEach(function(key) {
var obj = json[key];
if(lastnotf==obj.id && key>0 && native=="yes"){
var ct=key+1;
if(key==14){
ct="15+";
}
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('native-notf', ['TheDesk:'+domain,ct+"件の新しい通知",localStorage.getItem("prof_"+acct_id)]);
}
if(obj.type!="follow"){
templete = templete+parse([obj], 'notf', acct_id, tlid, -1);
}else{
@ -63,6 +78,7 @@ function notf(acct_id, tlid, sys) {
popup = 0;
}
var templete="";
localStorage.setItem("lastnotf_" + acct_id,obj.id);
if(obj.type!="follow"){
templete = templete+parse([obj], 'notf', acct_id, tlid, popup);
}else{

View File

@ -12,6 +12,11 @@ function parse(obj, mix, acct_id, tlid, popup) {
if(locale=="yes"){
var locale=false;
}
//ネイティブ通知
var native=localStorage.getItem("nativenotf");
if(!native){
native="yes";
}
//クライアント強調
var emp = localStorage.getItem("client_emp");
if(emp){
@ -118,6 +123,11 @@ function parse(obj, mix, acct_id, tlid, popup) {
if (popup >= 0 && obj.length < 5 && noticetext != memory) {
var domain = localStorage.getItem("domain_" + acct_id);
if(popup>0){
if(native=="yes"){
var electron = require("electron");
var ipc = electron.ipcRenderer;
ipc.send('native-notf', ['TheDesk:'+domain,toot.account.display_name+"(" + toot.account.acct +")"+what+"\n\n"+$.strip_tags(toot.status.content),toot.account.avatar]);
}
Materialize.toast("["+domain+"より]"+escapeHTML(toot.account.display_name)+what, popup * 1000);
}
$(".notf-icon_" + acct_id).addClass("red-text");
@ -386,6 +396,12 @@ function parse(obj, mix, acct_id, tlid, popup) {
}
});
}
//日本語じゃない
if(toot.language!="ja"){
var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを日本語に翻訳"><i class="material-icons">g_translate</i></a></div>';
}else{
var trans="";
}
templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
' ' + hasmedia + '" toot-id="' + id + '" unixtime="' + date(obj[
@ -434,7 +450,7 @@ function parse(obj, mix, acct_id, tlid, popup) {
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートを削除"><i class="fa fa-trash-o"></i></a></div>' +
'<div class="' + if_mine + ' action pin"><a onclick="pin(\'' + toot.id + '\',' +
acct_id +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートをピン留め"><i class="fa fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>' +
')" class="waves-effect waves-dark btn-flat" style="padding:0" title="このトゥートをピン留め"><i class="fa fa-map-pin pin_' + toot.id + ' '+if_pin+'"></i></a></div>' +trans+
'<div class="action"><a onclick="details(\'' + toot.id + '\',' + acct_id +
','+tlid+')" class="waves-effect waves-dark btn-flat details" style="padding:0"><i class="text-darken-3 material-icons">more_vert</i></a></div>' +
'</div><div class="area-date_via">' +

View File

@ -284,6 +284,36 @@ element.onmousewheel = function(e) {
zoom(0.9)
}
}
//画像を貼り付けたら…
var element = document.querySelector("#textarea");
element.addEventListener("paste", function(e){
// 画像の場合
// e.clipboardData.types.length == 0
// かつ
// e.clipboardData.types[0] == "Files"
// となっているので、それ以外を弾く
if (!e.clipboardData
|| !e.clipboardData.types
|| (e.clipboardData.types.length != 1)
|| (e.clipboardData.types[0] != "Files")) {
return true;
}
// ファイルとして得る
// (なぜかgetAsStringでは上手くいかなかった)
var imageFile = e.clipboardData.items[0].getAsFile();
// FileReaderで読み込む
var fr = new FileReader();
fr.onload = function(e) {
// onload内ではe.target.resultにbase64が入っているのであとは煮るなり焼くなり
var base64 = e.target.result;
beforeMedia(base64,"image/png");
};
fr.readAsDataURL(imageFile);
// 画像以外がペーストされたときのために、元に戻しておく
});
//当該トゥート
function detFromImg(){
var id=$("#imagemodal").attr("data-id");

View File

@ -112,6 +112,13 @@ function settings() {
Materialize.toast("独自ロケール設定を" + ult + "に設定しました。", 3000);
}
localStorage.setItem("locale", uld);
var ntd = $("[name=notf]:checked").val();
var ntt = $("[for=ntf_"+ntd+"]").text();
if (ntd != localStorage.getItem("nativenotf")) {
Materialize.toast("ネイティブ通知を" + ntt + "に設定しました。", 3000);
}
localStorage.setItem("nativenotf", ntd);
}
//読み込み時の設定ロード
@ -218,6 +225,12 @@ function load() {
var uld = "yes";
}
$("#ul_" + uld).prop("checked", true);
var nnd = localStorage.getItem("nativenotf");
if (!nnd) {
var nnd = "yes";
}
$("#ntf_" + nnd).prop("checked", true);
}
//最初に読む
load();

View File

@ -30,6 +30,9 @@ function utl(user, more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = parse(json, '', acct_id);
if(!json[0]){
templete="データはありません<br>";
}
var height = $("#his-data-content").height() - 245;
$(".tab-content").css('height', height);
if (more) {
@ -66,6 +69,9 @@ function pinutl(before,user, acct_id) {
console.error(error);
}).then(function(json) {
var templete = parse(json, '', acct_id);
if(!json[0]){
templete="データはありません<br>";
}
var height = $("#his-data-content").height() - 245;
$(".tab-content").css('height', height);
$("#his-tl-contents").html(templete+before);
@ -104,6 +110,9 @@ function flw(user, more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = userparse(json,'',acct_id);
if(!json[0]){
templete="データはありません<br>";
}
if (more) {
$("#his-follow-list-contents").append(templete);
} else {
@ -145,6 +154,9 @@ function fer(user, more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = userparse(json,'',acct_id);
if(!json[0]){
templete="データはありません<br>";
}
if (more) {
$("#his-follower-list-contents").append(templete);
} else {
@ -182,6 +194,9 @@ function showFav(more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = parse(json, '', acct_id);
if(!json[0]){
templete="データはありません<br>";
}
if (more) {
$("#his-fav-list-contents").append(templete);
} else {
@ -217,6 +232,9 @@ function showMut(more, acct_id) {
todo(error);
console.error(error);
}).then(function(json) {
if(!json[0]){
templete="データはありません<br>";
}
var templete = userparse(json,'',acct_id);
if (more) {
$("#his-muting-list-contents").append(templete);
@ -253,6 +271,9 @@ function showBlo(more, acct_id) {
todo(error);
console.error(error);
}).then(function(json) {
if(!json[0]){
templete="データはありません<br>";
}
var templete = userparse(json,'',acct_id);
if (more) {
$("#his-blocking-list-contents").append(templete);
@ -290,6 +311,9 @@ function showReq(more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = userparse(json, 'true',acct_id);
if(!json[0]){
templete="データはありません<br>";
}
if (more) {
$("#his-request-list-contents").append(templete);
} else {
@ -327,6 +351,9 @@ function showDom(more, acct_id) {
console.error(error);
}).then(function(json) {
var templete = "";
if(!json[0]){
templete="データはありません<br>";
}
Object.keys(json).forEach(function(key) {
var domain = json[key];
templete = templete + domain +

View File

@ -10,6 +10,13 @@ if(location.search){
}
}
function udgEx(user,acct_id){
if(user=="selector"){
user = $("#his-acct").attr('fullname');
}
if(acct_id=="selector"){
acct_id = $("#user-acct-sel").val();
}
console.log(user);
var domain = localStorage.getItem("domain_" + acct_id);
var at = localStorage.getItem(domain + "_at");
var start = "https://" + domain + "/api/v1/search?resolve=true&q="+user
@ -26,7 +33,7 @@ function udgEx(user,acct_id){
console.error(error);
}).then(function(json) {
var id=json.accounts[0].id;
udg(id,0);
udg(id,acct_id);
});
return;
}

View File

@ -11,6 +11,11 @@ const path = require('path')
const Menu=electron.Menu
// アプリケーションをコントロールするモジュール
const app = electron.app;
const WindowsToaster = require('node-notifier').WindowsToaster;
var notifier = new WindowsToaster({
withFallback: false, // Fallback to Growl or Balloons?
customPath: void 0 // Relative path if you want to use your fork of toast.exe
});
// ウィンドウを作成するモジュール
const BrowserWindow = electron.BrowserWindow;
@ -22,6 +27,7 @@ const join = require('path').join;
// メインウィンドウはGCされないようにグローバル宣言
let mainWindow;
var info_path = join(app.getPath("userData"), "window-size.json");
var tmp_img = join(app.getPath("userData"), "tmp.png");
var window_size;
try {
window_size = JSON.parse(fs.readFileSync(info_path, 'utf8'));
@ -96,7 +102,26 @@ function createWindow() {
}
// Electronの初期化完了後に実行
app.on('ready', createWindow);
var onError = function(err,response){
console.error(err,response);
};
var ipc = electron.ipcMain;
ipc.on('native-notf', function(e, args) {
Jimp.read(args[2], function (err, lenna) {
if (err) throw err;
lenna.write(tmp_img);
notifier.notify({
message: args[1],
title: args[0],
sound: false,//"Bottle",
icon : tmp_img,
wait:false
}, function(error, response) {
});
});
});
ipc.on('update', function(e, x, y) {
var platform=process.platform;
var bit=process.arch;
@ -115,6 +140,7 @@ ipc.on('update', function(e, x, y) {
return false;
}
})
ipc.on('screen', function(e, args) {
var window = new BrowserWindow({
width: args[0],

View File

@ -31,6 +31,13 @@
<input type="text" style="width:50px" id="popup">
<button class="btn waves-effect" style="width:100px;" onclick="settings()">設定</button>
<br>
<h5>ネイティブ通知設定</h5><a onclick="require('electron').ipcRenderer.send('native-notf', ['TheDesk通知テスト','通知テスト(画像はあなたのアカウントのアイコンです)',localStorage.getItem('prof_0')]);" class="pointer">通知テスト</a>
<br>
<input class="with-gap" onchange="settings()" name="notf" type="radio" id="ntf_yes" value="yes" />
<label for="ntf_yes">はい</label>
<input class="with-gap" onchange="settings()" name="notf" type="radio" id="ntf_no" value="no" />
<label for="ntf_no">いいえ</label>
<br>
<h5>マルチカラムの最低横幅</h5>画面全体の横幅÷コラム数がこの値を超えた時、横スクロールとなります。
<br>
<input type="text" style="width:50px" id="width">px以上

View File

@ -13,6 +13,7 @@
font-family:'Open Sans';
-webkit-app-region: drag;
cursor: move;
padding:10px;
}
a,button{
-webkit-app-region: no-drag;
@ -32,7 +33,8 @@ a,button{
アップデートはセキュアかつ高速なAmazon CloudFront CDNを通じて提供されます。<br>
アップデート内容の詳細は<a href="https://github.com/cutls/TheDesk/blob/master/LATEST.md">GitHub</a>をご覧ください。<br><br>
<a onclick="window.close();" class="pointer">このアップデートを飛ばす</a>(次回TL表示時まで有効)<br><a onclick="quit()" class="pointer">このソフトを終了</a><br>
<a onclick="about()" class="pointer">このソフトについて</a>
<a onclick="about()" class="pointer">このソフトについて</a><br>
アップデートに問題が生じる場合は<a href="https://thedesk.top">TheDesk HP</a>からのダウンロードをおためしください。
<script type="text/javascript" src="./js/common/about.js"></script>
<script type="text/javascript" src="./js/platform/end.js"></script>
<script>

View File

@ -1 +1 @@
{"warn":"これはGCPにアップして下さい","warn2":"これはGCPにアップして下さい","warn3":"これはGCPにアップして下さい","desk":"Airi (ver.9)","date":"2018-03-27","detail":"内部V:13.9.0|本文コピー・絵文字大幅拡充・Local+ TL・Glance TLほか"}
{"warn":"これはGCPにアップして下さい","warn2":"これはGCPにアップして下さい","warn3":"これはGCPにアップして下さい","desk":"Mizuki (ver.1)","date":"2018-03-31","detail":"内部V:14.0.0|トゥート翻訳・ネイティブ通知・faiconピッカーほか"}