Misskey breaking change

This commit is contained in:
cutls 2018-09-06 01:47:27 +09:00
parent 335440560a
commit c3b787cb39
23 changed files with 197 additions and 862 deletions

View File

@ -1,810 +1,5 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
<title>TheDesk</title> <meta http-equiv="refresh" content="0;URL='language.html?mode=redirect'" />
<meta content="width=device-width,initial-scale=1.0" name="viewport"> </head>
<link href="./css/materialize.css" type="text/css" rel="stylesheet">
<link href='./css/font-awesome.css' rel='stylesheet' type='text/css'>
<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'>
<link href='./css/post.css' rel='stylesheet' type='text/css'>
<link href="./css/master.css" type="text/css" rel="stylesheet">
<link href='./css/sort.css' rel='stylesheet' type='text/css'>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet">
<meta charset="utf-8">
</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.js"></script>
<script type="text/javascript" src="./js/lang/parse.lang.js"></script>
<script type="text/javascript" src="./js/common/time.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="Akane (16.0.11)";
//betaを入れるとバージョンチェックしない
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
//var ver="beta";
var acct_id=0;
var tlid=0;
var lang="en";
verck(ver);
</script>
<textarea id="copy" style="top:-100px; position:fixed;"></textarea>
<div id="tl">
<!--TL-->
<!--ドラッグハンドラ-->
<div id="drag">
<div id="drag-content" data-trans="drag_here">Drag here to upload
<br>
<button class="btn waves-effect" onclick="closedrop()" data-trans="close">Close</button>
</div>
</div>
</div>
<div id="post-box" class="z-depth-3">
<!--トゥートボックス-->
<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">
</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>
</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>
<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>
<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>
<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="リンクテキスト">&nbsp;
<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>
<input id="image" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="代替テキスト">&nbsp;
<input id="image2" style="width: calc(50% - 20px); margin: 0; height: 24px;" placeholder="画像アドレス">
</div>
</div>
<div class="input-field col s12" id="preview-field" style="margin-top: 0;">
<div id="md-preview">
</div>
<span class="sml gray pointer">
<a onclick="previewEdit()">Edit</a>
</span>
</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>
<label for="textarea" data-trans="toot">Toot</label>
<br>
<span class="sml gray pointer markdown mize" id="preview-btn">
<a onclick="preview()">Preview</a>
</span>
<span class="sml gray pointer anti-markdown mize">
<a onclick="mdToggle()">Markdownエディタを表示</a>
</span>
<span id="suggest"></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>
<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="adobe()" title="Adobe Photo Editor">format_shapes</i>
<i class="waves-effect gray material-icons" onclick="emoji()" title="Emojis">tag_faces</i>
<a class="pointer waves-effect gray" id="npbtn" title="NowPlaying[Click to insert info of Spotify(account link is required.)/control+click to insert that of iTunes(macOS)]"><i class="material-icons" style="font-size:24px;">music_note</i></a>
<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>
<span id="preview" class="mize"></span>
<span class=" sml mize"><span data-trans="reply">Reply</span>:
<span id="rec">No</span>/<span data-trans="file">Attaching files</span>:
<span id="mec">None</span>/<span data-trans="vis">Adjust status privacy</span>:
<span id="vis">public</span>
</span>
<br>
<input type="text" id="cw-text" placeholder="Warning text" class="mize" style="margin:0">
</div>
</div>
<!-- 公開範囲 Dropdown Structure -->
<ul id='dropdown1' class='dropdown-content'>
<li style="font-size: 16px; display: block; line-height: 22px; padding: 14px 16px;">Adjust status privacy</li>
<li>
<a onclick="vis('public')">(Public)</a>
</li>
<li>
<a onclick="vis('unlisted')">(Unlisted)</a>
</li>
<li>
<a onclick="vis('private')" id="private-button">(Private)</a>
</li>
<li id="limited-button" class="hide">
<a onclick="vis('limited')">限定公開(Limited)</a>
</li>
<li>
<a onclick="vis('direct')" class="disabled direct">(Direct)</a>
</li>
</ul>
<!--hidden area-->
<input type="hidden" id="reply">
<input type="hidden" id="media">
<!--END hidden area-->
</div>
<div id="toot-btn-field">
<button class="btn waves-effect indigo unmize" style="width:calc(100% - 10px); padding:0; margin-top:10px;" onclick="post()" id="toot-post-btn">Toot</button>
</div>
</div>
<!--絵文字ピッカー-->
<div id="emoji" class="hide shared z-depth-4">
<span class="gray sml">
<a onclick="emojiGet('true')" class="pointer">Refresh emojis list</a>
<i class="material-icons waves-effect" onclick="emoji()" title="Close this box" data-trans-title="post_box_close">cancel</i>
<br>
</span>
<input type="text" id="emoji-suggest" placeholder="Custom emojis Search">
<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">
<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">
<i class="material-icons">navigate_next</i>
</button>
</div>
<div id="default-emoji">
<span id="now-emoji"></span> are shown.<br><span class="gray sml">Some emojis are not able to be inserted.</span>
<br>
<a onclick="customEmoji()" class="pointer waves-effect" title="Custom emojis">
<i class="material-icons">add</i>
</a>
<a onclick="defaultEmoji('people')" class="pointer waves-effect" title="Emojis of people">
<i class="material-icons">people</i>
</a>
<a onclick="defaultEmoji('nature')" class="pointer waves-effect" title="Emojis of nature">
<i class="material-icons">local_florist</i>
</a>
<a onclick="defaultEmoji('food')" class="pointer waves-effect" title="Emojis of foods">
<i class="material-icons">restaurant</i>
</a>
<a onclick="defaultEmoji('activity')" class="pointer waves-effect" title="Emojis of activities">
<i class="material-icons">directions_run</i>
</a>
<a onclick="defaultEmoji('place')" class="pointer waves-effect" title="Emojis of places">
<i class="material-icons">directions_car</i>
</a>
<a onclick="defaultEmoji('object')" class="pointer waves-effect" title="Emojis of tools">
<i class="material-icons">attach_file</i>
</a>
<a onclick="defaultEmoji('symbol')" class="pointer waves-effect" title="Emojis of symbols">
<i class="material-icons">gesture</i>
</a>
<a onclick="defaultEmoji('flag')" class="pointer waves-effect" title="Emojis of flags">
<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>
<!-- Modal Structure Tootdata-->
<div id="tootmodal" class="modal modal-fixed-footer">
<div class="modal-content">
<ul class="collapsible" data-collapsible="accordion" id="det-col">
<li>
<div class="collapsible-header">
<i class="material-icons">arrow_upward</i>Context before this toot
</div>
<div class="collapsible-body toot-reset" id="toot-reply">
</div>
</li>
<li>
<div class="collapsible-header" id="activator">
<i class="material-icons">more_horiz</i>This toot
</div>
<div class="collapsible-body toot-reset" id="toot-this">
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">arrow_downward</i>Context after this toot
</div>
<div class="collapsible-body toot-reset" id="toot-after">
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">people_outline</i>Local TL before this toot
</div>
<div class="collapsible-body toot-reset" id="toot-before">
</div>
</li>
<li>
<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-before">
</div>
</li>
<li>
<div class="collapsible-header">
<i class="material-icons">star</i>People who favourited it
</div>
<div class="collapsible-body toot-reset" id="toot-fav">
</div>
</li>
<li>
<div class="collapsible-header">
<i class="text-darken-3 fa fa-retweet"></i>People who boosted it
</div>
<div class="collapsible-body toot-reset" id="toot-rt">
</div>
</li>
</ul>
Use other account(<i class="fa fa-retweet"></i>/<i class="fa fa-star"></i>:unfav and unBT are disabled.)<br>
<div class="row">
<div class="col s4">
<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="fa fa-share left"></i>Reply</button>
</div>
<div class="col s2">
<button class="dropdown-button btn waves-effect indigo" style="width:100%;" onclick="staEx('rt')"><i class="fa fa-retweet left"></i>Boost</button>
</div>
<div class="col s3">
<button class="dropdown-button btn waves-effect orange" style="width:100%;" onclick="staEx('fav')"><i class="fa fa-star left"></i>Favourite</button>
</div>
</div>
<div id="toot-tools">
</div>
<div id="toot-after">
</div>
</div>
<div class="modal-footer">
<a href="#!" class="waves-effect waves-green btn-flat" onclick="brws()">Open in browser</a>
<a href="#!" class="waves-effect waves-green btn-flat" onclick="shot()">Take a screenshot</a>
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy()">Copy URL of this toot</a>
<a href="#!" class="waves-effect waves-green btn-flat" onclick="cbCopy('emb')">Embed</a>
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Use other account</a>
</div>
</div>
<!-- Modal Structure Userdata -->
<div id="his-data" class="modal bottom-sheet modal-fixed-footer" style="max-height:750px; height:90%;">
<div id="his-data-content" class="modal-content" style="padding-bottom: 0;overflow-y:hidden;">
<div id="his-data-show">
<div class="his-float" id="his-float-data">
<div id="his-basic-prof">
<img src="./img/loading.svg" id="his-prof">
<span id="his-name">Loading...</span><span class="gray" id="his-bot"></span>
<br>@
<span id="his-acct"></span><br>
<span class="gray" id="his-relation"></span>
<br>
<span class="cbadge">
<span id="his-sta"></span>Toots
</span>
<span class="cbadge">Follow:
<span id="his-follow"></span>
</span>
<span class="cbadge">Follower:
<span id="his-follower"></span>
</span><br>
<span class="cbadge" style="max-width:150px; width:150px; ">Since:
<span id="his-since"></span>
</span>
</div>
<div id="his-des"></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" 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>
Powered by <a href="https://vinayaka.distsn.org/" target="_blank">Mastodon User Matching</a><br>
<div id="his-matching-list-contents" class="cont-series"></div>
<button class="btn waves-effect " onclick="showMat()" style="width:100%;">Get</button>
</div>
</div>
<div class="his-float" id="his-float-timeline">
<div id="my-data-nav">
<ul class="custom-tabs transparent">
<li class="custom-tab col my-data-width active-back column-first">
<a go="#his-tl" title="Timeline"><i class="material-icons">timeline</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follow-list" title="Follow"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width">
<a go="#his-follower-list" title="Follower"><i class="material-icons">people</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-action" title="Cross-account"><i class="material-icons">account_box</i></a>
</li>
<li class="custom-tab col my-data-width only-his-data">
<a go="#his-list" title="List"><i class="material-icons">list</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-fav-list" title="Favourite"><i class="material-icons">star</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-blocking-list" title="Blocks"><i class="material-icons">block</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<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>
</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>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-request-list" title="Follow requests"><i class="material-icons">how_to_reg</i></a>
</li>
<li class="custom-tab col my-data-width only-my-data">
<a go="#his-follow-recom-list" title="Suggest"><i class="material-icons">recent_actors</i></a>
</li>
</ul>
</div>
<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>
</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>
</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>
</div>
<div id="his-action" class="tab-content">
Use other account to Follow((Unable to unfollow))<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')">Follow</a><br>
or<br>
<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">Show profile</a><br>
</div>
<div id="his-list" class="tab-content">
<div id="his-lists-a">Follow to add this user to lists.</div>
<div id="his-lists-b"></div>
</div>
<div id="his-fav-list" class="tab-content">
<div id="his-fav-list-contents" class="cont-series">
</div>
<button class="btn waves-effect" style="width:100%; padding:0;" onclick="showFav('more')">More</button>
</div>
<div id="his-blocking-list" class="tab-content">
<div id="his-blocking-list-contents"class="cont-series" >
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showBlo('more')">More</button>
</div>
<div id="his-muting-list" class="tab-content">
<div id="his-muting-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showMut('more')">More</button>
</div>
<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
<br>
<input type="text" placeholder="example.com" id="domainblock">
<button class="btn waves-effect" onclick="addDomainblock()">Add</button>
<br>
</div>
<div id="his-prof-list" class="tab-content">Display name
<br>
<input type="text" placeholder="Display name" id="his-name-val" style="max-width:250px;">
<br>Note
<br>
<div class="input-field col s12">
<textarea placeholder="Note" id="his-des-val" class="materialize-textarea"></textarea>
<label for="his-des-val">Note</label>
</div>
<br>Change avataor:
<span id="prof-change">
<input type="file" onchange="imgChange(this,'avatar')">
</span>
<br>Change header image:
<span id="header-change">
<input type="file" onchange="imgChange(this,'header')">
</span>
</div>
<div id="his-request-list" class="tab-content">
<div id="his-request-list-contents" class="cont-series">
</div>
<button class="btn waves-effect " style="width:100%; padding:0;" onclick="showReq('more')">More</button>
</div>
<div id="his-follow-recom-list" class="tab-content">
<div id="his-follow-recom-contents" class="cont-series">
</div>
</div>
</div>
</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>
<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">Close</a>
</div>
</div>
<!-- Modal Structure Image-->
<div id="imagemodal" class="modal modal-fixed-footer" style="min-width:550px">
<div class="modal-content">
<div id="imagewrap">
<img src="" id="imgmodal">
</div>
<br>
</div>
<div class="modal-footer">
DL:<span id="imgprog"></span>%
<a class="waves-effect white-text" onclick="zoom(2)">
<i class="material-icons">zoom_in</i>
</a>
<a class="waves-effect white-text" onclick="zoom(0.5)">
<i class="material-icons">zoom_out</i>
</a>
<button class="btn waves-effect purple" onclick="dlImg()">
<i class="material-icons">file_download</i>
</button>
<button class="btn waves-effect brown" onclick="detFromImg()">This toot</button>
<button class="btn waves-effect orange" onclick="imgCont('prev')" id="image-prev">
<i class="material-icons">keyboard_arrow_left</i>
</button>
<button class="btn waves-effect orange" onclick="imgCont('next')" id="image-next">
<i class="material-icons">keyboard_arrow_right</i>
</button>
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">
<i class="material-icons">close</i>
</a>
</div>
</div>
<!-- Modal Structure Video-->
<div id="videomodal" class="modal modal-fixed-footer">
<div class="modal-content">
<video src="" id="video" style="max-width:100%; max-height:100%;" controls >
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
</div>
</div>
<!-- Modal Structure Release Note-->
<div id="releasenote" class="modal modal-fixed-footer">
<div class="modal-content">
<h3>TheDesk</h3>
<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-Akane_16-0-11" 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に関する記事をご覧いただけます。
<h5>Release Note Akane (16.0.11)</h5>
16.0.11<br>
<ul>
<li>様々なバグを修正</li>
</ul>
16.0.10<br>
<ul>
<li>自動CWに関する不具合</li>
<li>アップデートに関する不具合</li>
<li>MisskeyのURLコピーに関する不具合</li>
</ul>
</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://osushi.love/Cutls_P" target="_blank">
Osushi.love: give me sushi
</a>
<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>
</div>
<div class="modal-footer">
<a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">Close</a>
</div>
</div>
<!--PiP-->
<div id="pip" class="hide pip-bottom pip-left">
<i class="material-icons pip-horiz pointer" onclick="pipHoriz()">chevron_right</i> 
<i class="material-icons pip-vert pointer" onclick="pipVert()">expand_less</i> 
<i class="material-icons pointer" onclick="endPip()">close</i>
<div id="pip-content">
</div>
</div>
<!--カラム追加-->
<div id="add-box" class="hide z-depth-4 notf-box">
<div class="input-field"><span data-trans="your_acct">Select an account</span>
<br>
<select id="add-acct-sel" class="acct-sel" style="color:black" onchange="addselCk()"></select>
<label></label>
</div>
<div class="input-field">
<div id="auth">
<select id="type-sel" style="color:black">
<option value="local" data-trans="local">Local</option>
<option value="local-media" data-trans="local-media">Local(Media)</option>
<option value="home" data-trans="home">Home</option>
<option value="pub" data-trans="public">Federated</option>
<option value="pub-media" data-trans="public-media">Federated(Media)</option>
<option value="dm" data-trans="dm">Direct Message</option>
<option value="mix" data-trans="integrated">Integrated(Local and Home)</option>
<option value="plus" data-trans="plus">Integrated(Local and replies and BT on Home)</option>
<option value="notf" data-trans="notification">Notifications</option>
</select>
<label data-trans="show_tl">Show this TL:</label>
</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">
</div>
</div>
<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>
<br>
</div>
<!--検索-->
<div id="src-box" class="hide notf-box z-depth-4" style="width:500px">
<div class="input-field">
<select id="src-acct-sel" class="acct-sel" onchange="trend()"></select>
</div><div class="input-field">
<i class="material-icons prefix">search</i>
<input id="src" type="text" class="validate" style="width:calc( 60% - 40px);">
<label for="src" data-trans="src">Search</label>
<button class="btn waves-effect indigo" style="width:calc( 40% - 40px);" onclick="src()" data-trans-i="src">
<i class="material-icons left">search</i>Search
</button>
<br>
<br>
</div>
<div id="search">
<div id="src-contents">
</div>
</div>
</div>
<!--並べ替え-->
<div id="sort-box" class="hide">
<ul id="sort"></ul>
<div>
<button onclick="sort()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="sort">
<i class="material-icons left">sort</i>Sort
</button>
<button onclick="sortToggle()" class="btn waves-effect nex" style="width:100%; max-width:300px;" data-trans-i="close">
<i class="material-icons left">close</i>Close
</button>
</div>
</div>
<!--リスト-->
<div id="list-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="list-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="list()" data-trans-i="lists">
List
</button>
</div>
<br><br>
<div id="lists"></div>
<div id="lists-user"></div>
<input type="text" style="width:150px" id="list-add" placeholder="Display name">
<button class="btn waves-effect" style="width:120px;" onclick="makeNewList()">Save</button>
</div>
<!--フィルター-->
<div id="filter-box" class="hide notf-box z-depth-4">
<div class="input-field" style="width:calc( 100% - 100px);float:left">
<select id="filter-acct-sel" class="acct-sel"></select>
<label>Select an account</label>
</div>
<div style="float:left; padding-top:8px; padding-bottom:28px;">
<button class="btn waves-effect indigo" style="width:80px;" onclick="filter()" data-trans-i="filters">
List
</button>
</div>
<div id="filtered-words"></div>
<input type="hidden" id="filter-edit-id">
<input type="text" style="width:150px" id="filter-add-word" placeholder="Filtering words"><br>
Filter contexts<br>
<input type="checkbox" class="filled-in" id="home_filter" value="home" />
<label for="home_filter">Home</label>
<input type="checkbox" class="filled-in" id="local_filter" value="public" />
<label for="local_filter">Local</label>
<input type="checkbox" class="filled-in" id="notf_filter" value="notifications" />
<label for="notf_filter">Notifications</label>
<input type="checkbox" class="filled-in" id="conv_filter" value="thread" />
<label for="conv_filter">Conversations</label><br>
Options<br>
<input type="checkbox" class="filled-in" id="wholeword_filter" value="1" />
<label for="wholeword_filter">Whole word</label><br>
<span class="sml">Nice for Latin language</span><br>
<input type="checkbox" class="filled-in" id="except_filter" value="1" />
<label for="except_filter">Drop instead of hide</label><br>
<span class="sml">Filtered toots will disappear irreversibly, even if filter is later removed</span><br>
Expire after<span class="sml">Unset or "0" means "Never"<b>This value may contain some error</b></span><br><br>
<input type="text" style="width:50px" id="days_filter" placeholder="d" value="0">days
<input type="text" style="width:50px" id="hours_filter" placeholder="h" value="0">hours
<input type="text" style="width:50px" id="mins_filter" placeholder="m" value="0">minutes
<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 id="main">
<!--TLのTL-->
<div id="timeline-container">
<h3>Welcome to TheDesk</h3><br><a href="acct.html">Add an account</a> or click <i class="material-icons">add</i> to add a column.
</div>
</div>
</div>
<!--bottom-->
<div id="bottom">
<div class="leftside">
<div id="dambox">
<input type="text" id="posttgl" placeholder="Toot" style="height:2rem">
</div>
<div class="leftside" id="group">
<div class="btnsgroup"><span class="grouptitle">Columns:</span>
<a onclick="addToggle()" class="nex waves-effect" data-trans-i="add" id="add-tgl">
<i class="material-icons nex" title="Add a column" data-trans-title="column_add">add</i>
</a>
<a onclick="sortToggle()" class="nex waves-effect">
<i class="material-icons nex big-icon" title="Sort" data-trans-title="sort">sort</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Accounts:</span>
<a href="acct.html" class="nex waves-effect">
<i class="material-icons nex big-icon" title="Account Manager(Ctrl+Shift+M)" data-trans-title="manager">account_circle</i>
</a>
<a onclick="srcToggle()" class="nex waves-effect" id="src-tgl">
<i class="material-icons" title="Search" data-trans-title="src">search</i>
</a>
<a onclick="listToggle()" class="nex waves-effect" id="list-tgl">
<i class="material-icons" title="List" data-trans-title="list">view_headline</i>
</a>
<a onclick="filterToggle()" class="nex waves-effect" id="filter-tgl">
<i class="material-icons" title="Filter" data-trans-title="filter">filter_list</i>
</a>
</div>
<div class="btnsgroup"><span class="grouptitle">Preferences:</span>
<a href="setting.html" class="nex waves-effect">
<i class="material-icons nex" title="Preferences(Ctrl+Shift+S)" data-trans-title="setting">settings</i>
</a>
<a href="index.html" class="nex mize waves-effect">
<i class="material-icons nex" title="Super Reload(F5/⌘+R)" data-trans-title="reload">refresh</i>
</a>
<a onclick="nano()" class="nex waves-effect">
<i class="material-icons" title="The smallest Mastodon,TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i>
</a>
<a onclick="window.open('https://astarte.thedesk.top');" class="setting nex waves-effect" target="_blank" id="ranking-btn" style="display:none;">
<i class="material-icons nex" title="アスタルテランキング">timeline</i>
</a>
</div>
</div>
</div>
<div>
<div id="tips-menu">
<div class="btnsgroup" style="height:34px"><span class="grouptitle">Tips:</span>
<a onclick="tips('ver')" class="nex waves-effect">
<i class="material-icons nex" title="Version" data-trans-title="ver">info</i>
</a>
<a onclick="tips('clock')" class="nex waves-effect">
<i class="material-icons nex" title="Clock" data-trans-title="clock">access_time</i>
</a>
<a onclick="tips('memory')" class="nex waves-effect">
<i class="material-icons nex" title="RAM status" data-trans-title="memory">memory</i>
</a>
<a onclick="tips('trend')" class="nex waves-effect imasonly" style="display:none;">
<i class="material-icons nex" title="アイマストドントレンド" data-trans-title="trendtip">whatshot</i>
</a>
<a onclick="tips('spotify')" class="nex waves-effect">
<i class="fa fa-spotify nex" title="Spotify" data-trans-title="spotifytips"></i>
</a>
</div>
</div>
<div id="tips" class="hide">
<a onclick="tipsToggle()" class="nex waves-effect" style="float:left">
<i class="material-icons nex" title="Change Tips" data-trans-title="tips">bubble_chart</i>
</a>
<div id="tips-text" style="float:left; width:300px;"></div>
</div>
</div>
</div>
<!--左下メッセージ-->
<div id="message">
</div>
<!--Radio Happy(Yui) Taku Inoue-->
<audio src="" id="radio"></audio>
<!--JS-->
<script type="text/javascript" src="./js/ui/tips.js"></script>
<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script>
<script type="text/javascript" src="./js/common/about.js"></script>
<script type="text/javascript" src="./js/tl/parse.js"></script>
<script type="text/javascript" src="./js/tl/misskeyparse.js"></script>
<script type="text/javascript" src="./js/ui/scroll.js"></script>
<script type="text/javascript" src="./js/tl/tl.js"></script>
<script type="text/javascript" src="./js/tl/card.js"></script>
<script type="text/javascript" src="./js/tl/date.js"></script>
<script type="text/javascript" src="./js/tl/notification.js"></script>
<script type="text/javascript" src="./js/tl/datails.js"></script>
<script type="text/javascript" src="./js/tl/mix.js"></script>
<script type="text/javascript" src="./js/tl/src.js"></script>
<script type="text/javascript" src="./js/tl/filter.js"></script>
<script type="text/javascript" src="./js/tl/tag.js"></script>
<script type="text/javascript" src="./js/tl/list.js"></script>
<script type="text/javascript" src="./js/tl/speech.js"></script>
<script type="text/javascript" src="./js/ui/post-box.js"></script>
<script type="text/javascript" src="./js/ui/layout.js"></script>
<script type="text/javascript" src="./js/login/instance.js"></script>
<script type="text/javascript" src="./js/login/login.js"></script>
<script type="text/javascript" src="./js/ui/img.js"></script>
<script type="text/javascript" src="./js/ui/theme.js"></script>
<script type="text/javascript" src="./js/ui/pip.js"></script>
<script type="text/javascript" src="./js/ui/sort.js"></script>
<script type="text/javascript" src="./js/ui/spotify.js"></script>
<script type="text/javascript" src="./js/post/post.js"></script>
<script type="text/javascript" src="./js/post/use-txtbox.js"></script>
<script type="text/javascript" src="./js/post/secure.js"></script>
<script type="text/javascript" src="./js/post/img.js"></script>
<script type="text/javascript" src="./js/post/status.js"></script>
<script type="text/javascript" src="./js/post/misskeystatus.js"></script>
<script type="text/javascript" src="./js/post/emoji.js"></script>
<script type="text/javascript" src="./js/post/suggest.js"></script>
<script type="text/javascript" src="./js/post/bb-md.js"></script>
<script type="text/javascript" src="./js/userdata/showOnTL.js"></script>
<script type="text/javascript" src="./js/userdata/his-data.js"></script>
<script type="text/javascript" src="./js/userdata/prof-edit.js"></script>
<script type="text/javascript" src="./js/emoji/emojipack.js"></script>
<script type="text/javascript" src="./js/emoji/default-emoji.js"></script>
<script type="text/javascript" src="./js/platform/end.js"></script>

View File

@ -155,6 +155,9 @@ var lang="{{lang}}";
<li id="limited-button" class="hide"> <li id="limited-button" class="hide">
<a onclick="vis('limited')">限定公開(Limited)</a> <a onclick="vis('limited')">限定公開(Limited)</a>
</li> </li>
<li id="local-button" class="hide">
<a onclick="vis('local')">{{localJP}}(Local)</a>
</li>
<li> <li>
<a onclick="vis('direct')" class="disabled direct">{{directJP}}(Direct)</a> <a onclick="vis('direct')" class="disabled direct">{{directJP}}(Direct)</a>
</li> </li>
@ -238,7 +241,8 @@ var lang="{{lang}}";
<div class="collapsible-header" id="activator"> <div class="collapsible-header" id="activator">
<i class="material-icons">more_horiz</i>{{thisToot}} <i class="material-icons">more_horiz</i>{{thisToot}}
</div> </div>
<div class="collapsible-body toot-reset" id="toot-this"> <div class="collapsible-body" >
<div class="toot-reset" id="toot-this"></div>
</div> </div>
</li> </li>
<li> <li>

View File

@ -22,6 +22,10 @@ var lang_setting_cws={
"ja":"標準でCW:{{set}}", "ja":"標準でCW:{{set}}",
"en":"Always CW on:{{set}}" "en":"Always CW on:{{set}}"
} }
var lang_setting_rp={
"ja":"リプライ数表示:{{set}}",
"en":"Reply counter:{{set}}"
}
var lang_setting_vis={ var lang_setting_vis={
"ja":"デフォルトの公開設定を{{set}}に設定しました。", "ja":"デフォルトの公開設定を{{set}}に設定しました。",
"en":"Default visibility:{{set}}" "en":"Default visibility:{{set}}"

View File

@ -5,32 +5,38 @@ var idata={
"kirishima.cloud_letters":"6229", "kirishima.cloud_letters":"6229",
"kirishima.cloud_bbcode":"enabled", "kirishima.cloud_bbcode":"enabled",
"kirishima.cloud_markdown":"enabled", "kirishima.cloud_markdown":"enabled",
"kirishima.cloud_glitch":"enabled",
"kirishima.cloud_public":"パブリックタイムライン", "kirishima.cloud_public":"パブリックタイムライン",
"minohdon.jp":"instance", "minohdon.jp":"instance",
"minohdon.jp_name":"箕面丼", "minohdon.jp_name":"箕面丼",
"minohdon.jp_letters":"500", "minohdon.jp_letters":"500",
"minohdon.jp_bbcode":"disabled", "minohdon.jp_bbcode":"disabled",
"minohdon.jp_markdown":"disabled", "minohdon.jp_markdown":"disabled",
"minohdon.jp_glitch":"disabled",
"knzk.me":"instance", "knzk.me":"instance",
"knzk.me_name":"神崎丼", "knzk.me_name":"神崎丼",
"knzk.me_letters":"5000", "knzk.me_letters":"5000",
"knzk.me_bbcode":"disabled", "knzk.me_bbcode":"disabled",
"knzk.me_markdown":"disabled", "knzk.me_markdown":"disabled",
"knzk.me_glitch":"enabled",
"mastodos.com":"instance", "mastodos.com":"instance",
"mastodos.com_name":"マストどす", "mastodos.com_name":"マストどす",
"mastodos.com_letters":"500", "mastodos.com_letters":"500",
"mastodos.com_bbcode":"disabled", "mastodos.com_bbcode":"disabled",
"mastodos.com_markdown":"disabled", "mastodos.com_markdown":"disabled",
"mastodos.com_glitch":"disabled",
"dev.kirishima.cloud":"hidden", "dev.kirishima.cloud":"hidden",
"dev.kirishima.cloud_name":"アスタルテ(Dev)", "dev.kirishima.cloud_name":"アスタルテ(Dev)",
"dev.kirishima.cloud_letters":"6229", "dev.kirishima.cloud_letters":"6229",
"dev.kirishima.cloud_bbcode":"enabled", "dev.kirishima.cloud_bbcode":"enabled",
"dev.kirishima.cloud_markdown":"enabled", "dev.kirishima.cloud_markdown":"enabled",
"dev.kirishima.cloud_glitch":"enabled",
"mstdn.y-zu.org":"instance", "mstdn.y-zu.org":"instance",
"mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)", "mstdn.y-zu.org_name":"Yづドン!(502 BadGateway)",
"mstdn.y-zu.org_letters":"500", "mstdn.y-zu.org_letters":"500",
"mstdn.y-zu.org_bbcode":"disabled", "mstdn.y-zu.org_bbcode":"disabled",
"mstdn.y-zu.org_markdown":"disabled", "mstdn.y-zu.org_markdown":"enabled",
"mstdn.y-zu.org_glitch":"disabled",
"imastodon.net":"instance", "imastodon.net":"instance",
"imastodon.net_name":"im@stodon", "imastodon.net_name":"im@stodon",
"imastodon.net_letters":"500", "imastodon.net_letters":"500",
@ -44,6 +50,7 @@ var idata={
"imastodon.net_fav":"の頭にティンときたようです", "imastodon.net_fav":"の頭にティンときたようです",
"imastodon.net_bt":":「わかるわ」", "imastodon.net_bt":":「わかるわ」",
"imastodon.net_follow":"名刺をいただきました", "imastodon.net_follow":"名刺をいただきました",
"imastodon.net_glitch":"disabled",
"mstdn.osaka":"instance", "mstdn.osaka":"instance",
"mstdn.osaka_name":"大阪丼", "mstdn.osaka_name":"大阪丼",
"mstdn.osaka_letters":"500", "mstdn.osaka_letters":"500",
@ -57,6 +64,7 @@ var idata={
"mstdn.osaka_fav":"がええやん言いました", "mstdn.osaka_fav":"がええやん言いました",
"mstdn.osaka_bt":"がしばいた", "mstdn.osaka_bt":"がしばいた",
"mstdn.osaka_follow":"ツルまれました", "mstdn.osaka_follow":"ツルまれました",
"mstdn.osaka_glitch":"disabled",
"mstdn.kemono-friends.info":"instance", "mstdn.kemono-friends.info":"instance",
"mstdn.kemono-friends.info_name":"ますとどんちほー", "mstdn.kemono-friends.info_name":"ますとどんちほー",
"mstdn.kemono-friends.info_letters":"1024", "mstdn.kemono-friends.info_letters":"1024",
@ -69,21 +77,25 @@ var idata={
"mstdn.kemono-friends.info_post":"がおー!", "mstdn.kemono-friends.info_post":"がおー!",
"mstdn.kemono-friends.info_fav":":「すごーい」", "mstdn.kemono-friends.info_fav":":「すごーい」",
"mstdn.kemono-friends.info_bt":":「たーのしー」", "mstdn.kemono-friends.info_bt":":「たーのしー」",
"mstdn.kemono-friends.info_glitch":"disabled",
"itabashi.0j0.jp":"instance", "itabashi.0j0.jp":"instance",
"itabashi.0j0.jp_name":"板橋丼", "itabashi.0j0.jp_name":"板橋丼",
"itabashi.0j0.jp_letters":"1024", "itabashi.0j0.jp_letters":"1024",
"itabashi.0j0.jp_bbcode":"disabled", "itabashi.0j0.jp_bbcode":"disabled",
"itabashi.0j0.jp_markdown":"disabled", "itabashi.0j0.jp_markdown":"disabled",
"itabashi.0j0.jp_glitch":"disabled",
"theboss.tech":"instance", "theboss.tech":"instance",
"theboss.tech_name":"theboss.tech", "theboss.tech_name":"theboss.tech",
"theboss.tech_letters":"1000", "theboss.tech_letters":"1000",
"theboss.tech_bbcode":"disabled", "theboss.tech_bbcode":"disabled",
"theboss.tech_markdown":"disabled", "theboss.tech_markdown":"disabled",
"theboss.tech_glitch":"disabled",
"dtp-mstdn.jp":"instance", "dtp-mstdn.jp":"instance",
"dtp-mstdn.jp_name":"DTP鯖", "dtp-mstdn.jp_name":"DTP鯖",
"dtp-mstdn.jp_letters":"500", "dtp-mstdn.jp_letters":"500",
"dtp-mstdn.jp_bbcode":"disabled", "dtp-mstdn.jp_bbcode":"disabled",
"dtp-mstdn.jp_markdown":"disabled", "dtp-mstdn.jp_markdown":"disabled",
"dtp-mstdn.jp_glitch":"disabled",
"misskey.xyz":"instance", "misskey.xyz":"instance",
"misskey.xyz_name":"Misskey", "misskey.xyz_name":"Misskey",
"misskey.xyz_letters":"1000", "misskey.xyz_letters":"1000",
@ -91,8 +103,8 @@ var idata={
"misskey.xyz_markdown":"enabled", "misskey.xyz_markdown":"enabled",
"misskey.xyz_public":"Global", "misskey.xyz_public":"Global",
"misskey.xyz_post":"Post", "misskey.xyz_post":"Post",
"imastodon.net_fav":" reacted your post.", "misskey.xyz_fav":" reacted your post.",
"imastodon.net_bt":" reposted your post.", "misskey.xyz_bt":" reposted your post.",
}; };
localStorage.setItem("instance", JSON.stringify(idata)); localStorage.setItem("instance", JSON.stringify(idata));

View File

@ -449,6 +449,9 @@ function multiSelector() {
$("#textarea").attr("data-length", 500) $("#textarea").attr("data-length", 500)
} }
} }
if(idata[domain+"_glitch"]){
$("#local-button").removeClass("hide")
}
var profimg=localStorage.getItem("prof_"+key); var profimg=localStorage.getItem("prof_"+key);
console.log(profimg); console.log(profimg);
if(!profimg){ if(!profimg){

View File

@ -14,23 +14,15 @@
//タグのURLぽかったら //タグのURLぽかったら
var tags=[]; var tags=[];
tags = url.match( tags = url.match(
/https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/ /https:\/\/([-a-zA-Z0-9@.]+)\/tags\/([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
); );
//メンションっぽかったら //メンションっぽかったら
var ats=[]; var ats=[];
ats = url.match( ats = url.match(
/https:\/\/([-a-zA-Z0-9@.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/ /https:\/\/([-a-zA-Z0-9@.]+)\/@([-_.!~*\'()a-zA-Z0-9;\/?:\&=+\$,%#]+)/
); );
console.log(toot); console.log(toot);
if(toot){ if(toot){
ques = url.match(/https:\/\/quesdon\.rinsuki\.net\//);
console.log(ques);
if(ques){
if(ques[1]){
console.log("quesdon");
toot=[];
}
}
if(toot[1]){ if(toot[1]){
var acct_id=$a.parent().attr("data-acct"); var acct_id=$a.parent().attr("data-acct");
if(!acct_id){ if(!acct_id){
@ -44,6 +36,7 @@
}else if(tags){ }else if(tags){
if(tags[2]){ if(tags[2]){
tagShow(tags[2]); tagShow(tags[2]);
Materialize.toast('<a class="btn-flat toast-action" href="detEx(\''+url+'\')">Open in browser</a>', 86400);
} }
}else if(ats){ }else if(ats){
console.log(ats); console.log(ats);

View File

@ -47,6 +47,11 @@ function mdCheck(){
}else{ }else{
$("#textarea").attr("data-length", 500) $("#textarea").attr("data-length", 500)
} }
if(idata[domain+"_glitch"]){
$("#local-button").removeClass("hide");
}else{
$("#local-button").removeClass("hide");
}
var multi = localStorage.getItem("multi"); var multi = localStorage.getItem("multi");
if (multi) { if (multi) {
var obj = JSON.parse(multi); var obj = JSON.parse(multi);

View File

@ -103,7 +103,6 @@ function media(b64, type, no) {
var at = localStorage.getItem("acct_"+ acct_id + "_at"); var at = localStorage.getItem("acct_"+ acct_id + "_at");
var httpreq = new XMLHttpRequest(); var httpreq = new XMLHttpRequest();
if(localStorage.getItem("mode_" + domain)=="misskey"){ if(localStorage.getItem("mode_" + domain)=="misskey"){
var start = "https://" + domain + "/api/drive/files/create"; var start = "https://" + domain + "/api/drive/files/create";
httpreq.open('POST', start, true); httpreq.open('POST', start, true);
httpreq.upload.addEventListener("progress", progshow, false); httpreq.upload.addEventListener("progress", progshow, false);
@ -183,7 +182,7 @@ function toBlob(base64, type) {
//画像を貼り付けたら… //画像を貼り付けたら…
var element = document.querySelector("#textarea"); var element = document.querySelector("#textarea");
element.addEventListener("paste", function(e){ element.addEventListener("paste", function(e){
console.log("paste") console.log(e)
// 画像の場合 // 画像の場合
// e.clipboardData.types.length == 0 // e.clipboardData.types.length == 0
// かつ // かつ

View File

@ -86,8 +86,10 @@ function post(mode) {
var nsfw = "false"; var nsfw = "false";
} }
var vis = $("#vis").text(); var vis = $("#vis").text();
if(vis!="inherit"){ if(vis!="inherit" && vis!="local"){
toot.visibility=vis; toot.visibility=vis;
}else if(vis=="local"){
toot.status=str+"👁️";
} }
if ($("#cw").hasClass("cw-avail")) { if ($("#cw").hasClass("cw-avail")) {
var spo = $("#cw-text").val(); var spo = $("#cw-text").val();

View File

@ -19,21 +19,26 @@ function vis(set){
$("#vis-icon").removeClass("orange-text"); $("#vis-icon").removeClass("orange-text");
$("#vis-icon").removeClass("blue-text"); $("#vis-icon").removeClass("blue-text");
$("#vis-icon").removeClass("purple-text"); $("#vis-icon").removeClass("purple-text");
$("#vis-icon").removeClass("light-blue-text");
$("#vis-icon").removeClass("teal-text");
if(set=="public"){ if(set=="public"){
$("#vis-icon").text("public"); $("#vis-icon").text("public");
$("#vis-icon").addClass("purple-text"); $("#vis-icon").addClass("purple-text");
}else if(set=="unlisted"){ }else if(set=="unlisted"){
$("#vis-icon").text("lock_open"); $("#vis-icon").text("lock_open");
$("#vis-icon").addClass("blue-text"); $("#vis-icon").addClass("blue-text");
}else if(set=="private"){ }else if(set=="private"){
$("#vis-icon").text("lock"); $("#vis-icon").text("lock");
$("#vis-icon").addClass("orange-text"); $("#vis-icon").addClass("orange-text");
}else if(set=="direct"){ }else if(set=="direct"){
$("#vis-icon").text("mail"); $("#vis-icon").text("mail");
$("#vis-icon").addClass("red-text"); $("#vis-icon").addClass("red-text");
}else if(set=="limited"){ }else if(set=="limited"){
$("#vis-icon").text("group"); $("#vis-icon").text("group");
$("#vis-icon").addClass("teal-text"); $("#vis-icon").addClass("teal-text");
}else if(set=="local"){
$("#vis-icon").text("visibility");
$("#vis-icon").addClass("light-blue-text");
} }
var vis=localStorage.getItem("vis"); var vis=localStorage.getItem("vis");
if(vis=="memory"){ if(vis=="memory"){

View File

@ -417,12 +417,22 @@ function shot(){
); );
const screenshotPath = path.join(os.tmpdir(), 'screenshot.png'); const screenshotPath = path.join(os.tmpdir(), 'screenshot.png');
const savePath = path.join(os.tmpdir(), 'screenshot.png'); const savePath = path.join(os.tmpdir(), 'screenshot.png');
var ipc = electron.ipcRenderer; var ipc = electron.ipcRenderer;
ipc.send('shot', ['file://' + screenshotPath,w,h,b64[1],title,off.top+50,off.left]); if(localStorage.getItem("savefolder")){
var save=localStorage.getItem("savefolder");
}else{
var save="";
}
ipc.send('shot', ['file://' + screenshotPath,w,h,b64[1],title,off.top+50,off.left,save]);
if($("#toot-this .img-parsed").length>0){ if($("#toot-this .img-parsed").length>0){
for(i=0;i<$("#toot-this .img-parsed").length;i++){ for(i=0;i<$("#toot-this .img-parsed").length;i++){
var url=$("#toot-this .img-parsed").eq(i).attr("data-url"); var url=$("#toot-this .img-parsed").eq(i).attr("data-url");
ipc.send('shot-img-dl', [url,title+"_img"+i+".png"]); if(localStorage.getItem("savefolder")){
var save=localStorage.getItem("savefolder");
}else{
var save="";
}
ipc.send('shot-img-dl', [url,title+"_img"+i+".png",save]);
} }
} }
return; return;

View File

@ -392,19 +392,25 @@ function misskeyParse(obj, mix, acct_id, tlid, popup, mutefilter) {
if(notice){ if(notice){
notice=twemoji.parse(notice); notice=twemoji.parse(notice);
} }
if(toot.media){
var mediack = toot.media[0];
}else{
var mediack=false;
}
if(toot.files){
var mediack = toot.files[0];
var useparam="files";
}else{
if(toot.media){
var mediack = toot.media[0];
var useparam="media";
}else{
var mediack=false;
}
}
//メディアがあれば //メディアがあれば
var media_ids=""; var media_ids="";
if (mediack) { if (mediack) {
hasmedia = "hasmedia"; hasmedia = "hasmedia";
var cwdt = 100 / toot.media.length; var cwdt = 100 / toot[useparam].length;
Object.keys(toot.media).forEach(function(key2) { Object.keys(toot[useparam]).forEach(function(key2) {
var media = toot.media[key2]; var media = toot[useparam][key2];
var purl = media.url; var purl = media.url;
media_ids=media_ids+media.id+","; media_ids=media_ids+media.id+",";
var url = media.url; var url = media.url;

View File

@ -135,6 +135,11 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
}else if(mouseover=="no"){ }else if(mouseover=="no"){
mouseover=""; mouseover="";
} }
//リプカウント
var replyct_view=localStorage.getItem("replyct");
if(!replyct_view){
replyct_view="hidden";
}
var local = []; var local = [];
var times=[]; var times=[];
Object.keys(obj).forEach(function(key) { Object.keys(obj).forEach(function(key) {
@ -492,6 +497,15 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
}); });
tags = '<div style="float:right">' + tags + '</div>'; tags = '<div style="float:right">' + tags + '</div>';
} }
//リプ数
if(toot.replies_count || toot.replies_count===0){
var replyct=toot.replies_count;
if(replyct_view=="hidden" && replyct>1){
replyct="1+";
}
}else{
var replyct="";
}
//公開範囲を取得 //公開範囲を取得
var vis = ""; var vis = "";
var visen = toot.visibility; var visen = toot.visibility;
@ -615,7 +629,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
'<div class="action '+disp["re"]+' '+noauth+'"><a onclick="re(\'' + toot.id + '<div class="action '+disp["re"]+' '+noauth+'"><a onclick="re(\'' + toot.id +
'\',\'' + toot.account.acct + '\',' + '\',\'' + toot.account.acct + '\',' +
acct_id + ',\''+visen+ acct_id + ',\''+visen+
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_replyto[lang]+'"><i class="fa fa-share"></i></a></div>' + '\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_replyto[lang]+'"><i class="fa fa-share"></i><span class="rep_ct">' + replyct +
'</a></span></a></div>' +
'<div class="action '+can_rt+' '+disp["rt"]+' '+noauth+'"><a onclick="rt(\'' + toot.id + '\',' + acct_id + '<div class="action '+can_rt+' '+disp["rt"]+' '+noauth+'"><a onclick="rt(\'' + toot.id + '\',' + acct_id +
',\'' + tlid + ',\'' + tlid +
'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_bt[lang]+'"><i class="text-darken-3 fa fa-retweet ' + '\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang_parse_bt[lang]+'"><i class="text-darken-3 fa fa-retweet ' +

View File

@ -333,7 +333,12 @@ function dlImg(){
var url=$("#imgmodal").attr("src"); var url=$("#imgmodal").attr("src");
var electron = require("electron"); var electron = require("electron");
var ipc = electron.ipcRenderer; var ipc = electron.ipcRenderer;
ipc.send('general-dl', [url,false]); if(localStorage.getItem("savefolder")){
var save=localStorage.getItem("savefolder");
}else{
var save="";
}
ipc.send('general-dl', [url,save,false]);
ipc.on('general-dl-prog', function (event, arg) { ipc.on('general-dl-prog', function (event, arg) {
console.log(arg); console.log(arg);
}) })

View File

@ -44,6 +44,13 @@ function settings() {
} }
localStorage.setItem("always-cw", cwsd); localStorage.setItem("always-cw", cwsd);
var rpd = $("[name=rp]:checked").val();
var rpt = $("[for=c_"+cwd+"]").text();
if (rpd != localStorage.getItem("replyct")) {
Materialize.toast(lang_setting_rp[lang].replace("{{set}}" ,rpt), 3000);
}
localStorage.setItem("replyct", rpd);
var visd = $("[name=vis]:checked").val(); var visd = $("[name=vis]:checked").val();
var vist = $("[for="+visd+"]").text(); var vist = $("[for="+visd+"]").text();
if (visd != localStorage.getItem("vis")) { if (visd != localStorage.getItem("vis")) {
@ -76,7 +83,7 @@ function settings() {
var csentd = $("#cw_sentence").val(); var csentd = $("#cw_sentence").val();
var cltrd = $("#cw_letters").val(); var cltrd = $("#cw_letters").val();
if (csentd != localStorage.getItem("sentcw_sentenceence") || cltrd != localStorage.getItem("cw_letters")) { if (csentd != localStorage.getItem("cw_sentence") || cltrd != localStorage.getItem("cw_letters")) {
Materialize.toast(lang_setting_autocw[lang].replace("{{set1}}" ,csentd).replace("{{set2}}" ,cltrd), 3000); Materialize.toast(lang_setting_autocw[lang].replace("{{set1}}" ,csentd).replace("{{set2}}" ,cltrd), 3000);
} }
localStorage.setItem("cw_sentence", csentd); localStorage.setItem("cw_sentence", csentd);
@ -288,6 +295,12 @@ function load() {
} }
$("#cws_" + cws).prop("checked", true); $("#cws_" + cws).prop("checked", true);
var rps = localStorage.getItem("replyct");
if (!rps) {
var rps = "hidden";
}
$("#rp_" + rps).prop("checked", true);
var vis = localStorage.getItem("vis"); var vis = localStorage.getItem("vis");
if (!vis) { if (!vis) {
var vis = "public"; var vis = "public";
@ -623,4 +636,15 @@ function importSettings(){
//cards //cards
//lang //lang
}); });
}
function savefolder(){
var electron = require("electron");
var remote=electron.remote;
var dialog=remote.dialog;
dialog.showOpenDialog(null, {
title: 'Save folder',
properties: ['openDirectory'],
}, (fileNames) => {
localStorage.setItem("savefolder",fileNames[0]);
});
} }

View File

@ -36,8 +36,15 @@ function udgEx(user,acct_id){
todo(error); todo(error);
console.error(error); console.error(error);
}).then(function(json) { }).then(function(json) {
var id=json.accounts[0].id; console.log(json);
udg(id,acct_id); if(json.accounts){
var id=json.accounts[0].id;
udg(id,acct_id);
}else{
var url="https://"+user.split('@')[1]+"/@"+user.split('@')[0];
const {shell} = require('electron');
shell.openExternal(url);
}
}); });
return; return;
} }

View File

@ -22,6 +22,7 @@
"publicJP":"", "publicJP":"",
"unlistedJP":"", "unlistedJP":"",
"privateJP":"", "privateJP":"",
"localJP":"Local only",
"directJP":"", "directJP":"",
"emojiWarn":"", "emojiWarn":"",
"emojiInsertWarn":"Some emojis are not able to be inserted.", "emojiInsertWarn":"Some emojis are not able to be inserted.",

View File

@ -22,6 +22,7 @@
"publicJP":"公開", "publicJP":"公開",
"unlistedJP":"未収載", "unlistedJP":"未収載",
"privateJP":"非公開", "privateJP":"非公開",
"localJP":"ローカル限定",
"directJP":"ダイレクト", "directJP":"ダイレクト",
"emojiWarn":"インスタンスによって実装が異なります。", "emojiWarn":"インスタンスによって実装が異なります。",
"emojiInsertWarn":"一部絵文字は入力できません。", "emojiInsertWarn":"一部絵文字は入力できません。",

View File

@ -22,6 +22,8 @@
"font":"Font", "font":"Font",
"fontwarn":"Set local font", "fontwarn":"Set local font",
"fontsize":"Font size", "fontsize":"Font size",
"savefolder":"Folder to save",
"savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.",
"absolute":"absolute value", "absolute":"absolute value",
"timeline":"Timeline Preferences", "timeline":"Timeline Preferences",
"timemode":"Time format", "timemode":"Time format",
@ -37,6 +39,9 @@
"nswf":"Hide NSFW pictures", "nswf":"Hide NSFW pictures",
"nsfwwarn":"Strong blur effect", "nsfwwarn":"Strong blur effect",
"cw":"Hide CW contents", "cw":"Hide CW contents",
"replyct":"Reply counter style",
"replyct_hidden":"Show 1+ if the replies are more than 1.",
"replyct_full":"Show full count(1,2...)",
"gif":"Animated GIF images animation", "gif":"Animated GIF images animation",
"box":"Action of posting-box", "box":"Action of posting-box",
"boxyes":"Folding", "boxyes":"Folding",

View File

@ -22,6 +22,8 @@
"font":"フォント", "font":"フォント",
"fontwarn":"ローカルフォントを指定します。", "fontwarn":"ローカルフォントを指定します。",
"fontsize":"フォントサイズ", "fontsize":"フォントサイズ",
"savefolder":"デフォルトの保存先",
"savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。",
"absolute":"絶対指定", "absolute":"絶対指定",
"timeline":"タイムラインの設定", "timeline":"タイムラインの設定",
"timemode":"時間表記設定", "timemode":"時間表記設定",
@ -37,6 +39,9 @@
"nswf":"非表示設定の画像(NSFW)を隠す", "nswf":"非表示設定の画像(NSFW)を隠す",
"nsfwwarn":"きつめのぼかしがかかります。", "nsfwwarn":"きつめのぼかしがかかります。",
"cw":"非表示設定のテキスト(CW)を隠す", "cw":"非表示設定のテキスト(CW)を隠す",
"replyct":"リプライ数表示",
"replyct_hidden":"2以上のとき1+と表示",
"replyct_full":"完全に表示",
"gif":"アイコンのアニメーションを再生する", "gif":"アイコンのアニメーションを再生する",
"box":"投稿ボックスの挙動", "box":"投稿ボックスの挙動",
"boxyes":"たたむ", "boxyes":"たたむ",

View File

@ -268,13 +268,19 @@ ipc.on('shot', function(e, args) {
console.log("link:"+args[0]+" width:"+args[1]+" height:"+args[2]+" title:"+args[4]+" top:"+args[5]+" left:"+args[6]); console.log("link:"+args[0]+" width:"+args[1]+" height:"+args[2]+" title:"+args[4]+" top:"+args[5]+" left:"+args[6]);
var platform=process.platform; var platform=process.platform;
var bit=process.arch; var bit=process.arch;
if(platform=="win32"){ if(args[7]==""){
var dir=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\"+args[4]+"-toot.png"; if(platform=="win32"){
var folder=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\"; var dir=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\"+args[4]+"-toot.png";
}else if(platform=="linux" || platform=="darwin" ){ var folder=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\";
var dir=app.getPath('home')+"/Pictures/TheDesk/Screenshots/"+args[4]+"-toot.png"; }else if(platform=="linux" || platform=="darwin" ){
var folder=app.getPath('home')+"/Pictures/TheDesk/Screenshots/"; var dir=app.getPath('home')+"/Pictures/TheDesk/Screenshots/"+args[4]+"-toot.png";
var folder=app.getPath('home')+"/Pictures/TheDesk/Screenshots/";
}
}else{
var folder=args[7];
var dir=folder+args[4]+"-toot.png";
} }
Jimp.read(Buffer.from( args[3],'base64'), function (err, lenna) { Jimp.read(Buffer.from( args[3],'base64'), function (err, lenna) {
if (err) throw err; if (err) throw err;
lenna.crop( args[6], args[5], args[1], args[2] ).write(dir); lenna.crop( args[6], args[5], args[1], args[2] ).write(dir);
@ -284,11 +290,16 @@ ipc.on('shot', function(e, args) {
ipc.on('shot-img-dl', (e, args) => { ipc.on('shot-img-dl', (e, args) => {
Jimp.read(args[0], function (err, lenna) { Jimp.read(args[0], function (err, lenna) {
if (err) throw err; if (err) throw err;
if(process.platform=="win32"){ if(args[1]==""){
var folder=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\"; if(process.platform=="win32"){
}else if(process.platform=="linux" || process.platform=="darwin" ){ var folder=app.getPath('home')+"\\Pictures\\TheDesk\\Screenshots\\";
var folder=app.getPath('home')+"/Pictures/TheDesk/Screenshots/"; }else if(process.platform=="linux" || process.platform=="darwin" ){
var folder=app.getPath('home')+"/Pictures/TheDesk/Screenshots/";
}
}else{
var folder=args[2];
} }
lenna.write(folder+args[1]); lenna.write(folder+args[1]);
}); });
}) })
@ -443,12 +454,15 @@ ipc.on('general-dl', (e, args) => {
var name=""; var name="";
var platform=process.platform; var platform=process.platform;
var bit=process.arch; var bit=process.arch;
if(platform=="win32"){ if(args[1]==""){
var dir=app.getPath('home')+"\\Pictures\\TheDesk"; if(platform=="win32"){
}else if(platform=="linux" || platform=="darwin" ){ var dir=app.getPath('home')+"\\Pictures\\TheDesk";
var dir=app.getPath('home')+"/Pictures/TheDesk"; }else if(platform=="linux" || platform=="darwin" ){
} var dir=app.getPath('home')+"/Pictures/TheDesk";
}
}else{
var dir=args[1];
}
mainWindow.webContents.send('general-dl-message', "ダウンロードを開始します。"); mainWindow.webContents.send('general-dl-message', "ダウンロードを開始します。");
const opts = { const opts = {
directory: dir, directory: dir,

View File

@ -67,7 +67,11 @@
<span style="font-size:15px">15px(absolute value)</span> <span style="font-size:15px">15px(absolute value)</span>
<br> <br>
<input type="text" style="width:50px" id="size">px <input type="text" style="width:50px" id="size">px
<button class="btn waves-effect" style="width:100px;" onclick="settings()">Save</button> <button class="btn waves-effect" style="width:100px;" onclick="settings()">Save</button><br>
<h5>Folder to save</h5>
TheDesk uses this value when it try to save pictures or take screenshots.<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">Save</button>
<br>
</div> </div>
</li> </li>
<li> <li>
@ -107,6 +111,12 @@
<input class="with-gap" onchange="settings()" name="cw" type="radio" id="c_no" value="no" /> <input class="with-gap" onchange="settings()" name="cw" type="radio" id="c_no" value="no" />
<label for="c_no">No</label> <label for="c_no">No</label>
<br> <br>
<h5>Reply counter style</h5>
<input class="with-gap" onchange="settings()" name="rp" type="radio" id="rp_hidden" value="hidden" />
<label for="rp_hidden">Show 1+ if the replies are more than 1.</label>
<input class="with-gap" onchange="settings()" name="rp" type="radio" id="rp_all" value="all" />
<label for="rp_all">Show full count(1,2...)</label>
<br>
<h5>Animated GIF images animation</h5> <h5>Animated GIF images animation</h5>
<input class="with-gap" onchange="settings()" name="gif" type="radio" id="g_yes" value="yes" /> <input class="with-gap" onchange="settings()" name="gif" type="radio" id="g_yes" value="yes" />
<label for="g_yes">Yes</label> <label for="g_yes">Yes</label>

View File

@ -67,7 +67,11 @@
<span style="font-size:15px">15px({{absolute}})</span> <span style="font-size:15px">15px({{absolute}})</span>
<br> <br>
<input type="text" style="width:50px" id="size">px <input type="text" style="width:50px" id="size">px
<button class="btn waves-effect" style="width:100px;" onclick="settings()">{{set}}</button> <button class="btn waves-effect" style="width:100px;" onclick="settings()">{{set}}</button><br>
<h5>{{savefolder}}</h5>
{{savefolderwarn}}<br>
<button class="btn waves-effect" style="width:100px;" onclick="savefolder()">{{change}}</button>
<br>
</div> </div>
</li> </li>
<li> <li>
@ -107,6 +111,12 @@
<input class="with-gap" onchange="settings()" name="cw" type="radio" id="c_no" value="no" /> <input class="with-gap" onchange="settings()" name="cw" type="radio" id="c_no" value="no" />
<label for="c_no">{{no}}</label> <label for="c_no">{{no}}</label>
<br> <br>
<h5>{{replyct}}</h5>
<input class="with-gap" onchange="settings()" name="rp" type="radio" id="rp_hidden" value="hidden" />
<label for="rp_hidden">{{replyct_hidden}}</label>
<input class="with-gap" onchange="settings()" name="rp" type="radio" id="rp_all" value="all" />
<label for="rp_all">{{replyct_full}}</label>
<br>
<h5>{{gif}}</h5> <h5>{{gif}}</h5>
<input class="with-gap" onchange="settings()" name="gif" type="radio" id="g_yes" value="yes" /> <input class="with-gap" onchange="settings()" name="gif" type="radio" id="g_yes" value="yes" />
<label for="g_yes">{{yes}}</label> <label for="g_yes">{{yes}}</label>