Merge pull request #24 from cutls/WIP-(before-CI)
TheDesk Miria (17.2.0)
This commit is contained in:
		@@ -298,6 +298,10 @@ blockquote:before, .quote:before {
 | 
				
			|||||||
  border-color:var(--color);
 | 
					  border-color:var(--color);
 | 
				
			||||||
  padding:5px;
 | 
					  padding:5px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#pickers{
 | 
				
			||||||
 | 
					  display:flex;
 | 
				
			||||||
 | 
					  flex-wrap: wrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*スクロールバー*/
 | 
					/*スクロールバー*/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								app/css/pickr.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								app/css/pickr.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -178,6 +178,7 @@ var lang={
 | 
				
			|||||||
    "lang_parse_voted":"Voted",
 | 
					    "lang_parse_voted":"Voted",
 | 
				
			||||||
    "lang_parse_vote":"Voted",
 | 
					    "lang_parse_vote":"Voted",
 | 
				
			||||||
    "lang_parse_unvoted":"Show the result without voting",
 | 
					    "lang_parse_unvoted":"Show the result without voting",
 | 
				
			||||||
 | 
					    "lang_parse_endedvote":"Expired",
 | 
				
			||||||
    //misskey
 | 
					    //misskey
 | 
				
			||||||
    "lang_misskeyparse_renote":"Repost",
 | 
					    "lang_misskeyparse_renote":"Repost",
 | 
				
			||||||
    "lang_misskeyparse_renoteqt":"Renote",
 | 
					    "lang_misskeyparse_renoteqt":"Renote",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -179,6 +179,7 @@ var lang={
 | 
				
			|||||||
    "lang_parse_voted":"投票済みです",
 | 
					    "lang_parse_voted":"投票済みです",
 | 
				
			||||||
    "lang_parse_vote":"投票",
 | 
					    "lang_parse_vote":"投票",
 | 
				
			||||||
    "lang_parse_unvoted":"結果だけ見る",
 | 
					    "lang_parse_unvoted":"結果だけ見る",
 | 
				
			||||||
 | 
					    "lang_parse_endedvote":"終了済み",
 | 
				
			||||||
    //misskey
 | 
					    //misskey
 | 
				
			||||||
    "lang_misskeyparse_renote":"再投稿",
 | 
					    "lang_misskeyparse_renote":"再投稿",
 | 
				
			||||||
    "lang_misskeyparse_renoteqt":"引用",
 | 
					    "lang_misskeyparse_renoteqt":"引用",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										206
									
								
								app/js/lang/lang.ps.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										206
									
								
								app/js/lang/lang.ps.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,206 @@
 | 
				
			|||||||
 | 
					var lang={
 | 
				
			||||||
 | 
					    "language": "crwdns1960:0crwdne1960:0",
 | 
				
			||||||
 | 
					    "lang_toot": "crwdns1962:0crwdne1962:0",
 | 
				
			||||||
 | 
					    "lang_there": "crwdns1964:0crwdne1964:0",
 | 
				
			||||||
 | 
					    "lang_nothing": "crwdns1966:0crwdne1966:0",
 | 
				
			||||||
 | 
					    "lang_yesno": "crwdns1968:0crwdne1968:0",
 | 
				
			||||||
 | 
					    "lang_no": "crwdns1970:0crwdne1970:0",
 | 
				
			||||||
 | 
					    "lang_progress": "crwdns1972:0crwdne1972:0",
 | 
				
			||||||
 | 
					    "lang_edit": "crwdns1974:0crwdne1974:0",
 | 
				
			||||||
 | 
					    "lang_del": "crwdns1976:0crwdne1976:0",
 | 
				
			||||||
 | 
					    "lang_add": "crwdns1978:0crwdne1978:0",
 | 
				
			||||||
 | 
					    "lang_fatalerroroccured": "crwdns1980:0crwdne1980:0",
 | 
				
			||||||
 | 
					    "lang_speech": "crwdns1982:0crwdne1982:0",
 | 
				
			||||||
 | 
					    "lang_lang": "crwdns1984:0crwdne1984:0",
 | 
				
			||||||
 | 
					    "lang_langlocale": "crwdns1986:0crwdne1986:0",
 | 
				
			||||||
 | 
					    "lang_back": "crwdns1988:0crwdne1988:0",
 | 
				
			||||||
 | 
					    "lang_set": "crwdns1990:0crwdne1990:0",
 | 
				
			||||||
 | 
					    "lang_langadd": "crwdns2364:0crwdne2364:0",
 | 
				
			||||||
 | 
					    "lang_version_usever": "crwdns1994:0{{ver}}crwdne1994:0",
 | 
				
			||||||
 | 
					    "lang_version_skipver": "crwdns1996:0crwdne1996:0",
 | 
				
			||||||
 | 
					    "lang_login_noauth": "crwdns1998:0crwdne1998:0",
 | 
				
			||||||
 | 
					    "lang_manager_info": "crwdns2000:0crwdne2000:0",
 | 
				
			||||||
 | 
					    "lang_manager_refresh": "crwdns2002:0crwdne2002:0",
 | 
				
			||||||
 | 
					    "lang_manager_delete": "crwdns2004:0crwdne2004:0",
 | 
				
			||||||
 | 
					    "lang_manager_color": "crwdns2006:0crwdne2006:0",
 | 
				
			||||||
 | 
					    "lang_manager_confirm": "crwdns2008:0crwdne2008:0",
 | 
				
			||||||
 | 
					    "lang_manager_mainAcct": "crwdns2010:0crwdne2010:0",
 | 
				
			||||||
 | 
					    "lang_manager_def": "crwdns2012:0crwdne2012:0",
 | 
				
			||||||
 | 
					    "lang_manager_none": "crwdns2014:0crwdne2014:0",
 | 
				
			||||||
 | 
					    "lang_manager_godev": "crwdns2016:0crwdne2016:0",
 | 
				
			||||||
 | 
					    "lang_bbmd_misskey": "crwdns2018:0crwdne2018:0",
 | 
				
			||||||
 | 
					    "lang_emoji_get": "crwdns2020:0crwdne2020:0",
 | 
				
			||||||
 | 
					    "lang_emoji_custom": "crwdns2022:0crwdne2022:0",
 | 
				
			||||||
 | 
					    "lang_defaultemojis_text": "crwdns2388:0{{cat}}crwdne2388:0",
 | 
				
			||||||
 | 
					    "lang_postimg_previewdis": "crwdns2024:0crwdne2024:0",
 | 
				
			||||||
 | 
					    "lang_postimg_aftupload": "crwdns2026:0crwdne2026:0",
 | 
				
			||||||
 | 
					    "lang_post_tagTL": "crwdns2028:0crwdne2028:0",
 | 
				
			||||||
 | 
					    "lang_post_tagVis": "crwdns2030:0crwdne2030:0",
 | 
				
			||||||
 | 
					    "lang_post_cwtitle": "crwdns2032:0crwdne2032:0",
 | 
				
			||||||
 | 
					    "lang_post_cwtxt": "crwdns2034:0crwdne2034:0",
 | 
				
			||||||
 | 
					    "lang_post_btn1": "crwdns2036:0crwdne2036:0",
 | 
				
			||||||
 | 
					    "lang_post_btn2": "crwdns2038:0crwdne2038:0",
 | 
				
			||||||
 | 
					    "lang_post_btn3": "crwdns2040:0crwdne2040:0",
 | 
				
			||||||
 | 
					    "lang_status_favWarn": "crwdns2042:0crwdne2042:0",
 | 
				
			||||||
 | 
					    "lang_status_btWarn": "crwdns2044:0crwdne2044:0",
 | 
				
			||||||
 | 
					    "lang_status_follow": "crwdns2046:0crwdne2046:0",
 | 
				
			||||||
 | 
					    "lang_status_unfollow": "crwdns2048:0crwdne2048:0",
 | 
				
			||||||
 | 
					    "lang_status_block": "crwdns2050:0crwdne2050:0",
 | 
				
			||||||
 | 
					    "lang_status_unblock": "crwdns2052:0crwdne2052:0",
 | 
				
			||||||
 | 
					    "lang_status_mute": "crwdns2054:0crwdne2054:0",
 | 
				
			||||||
 | 
					    "lang_status_unmute": "crwdns2056:0crwdne2056:0",
 | 
				
			||||||
 | 
					    "lang_status_redraft": "crwdns2058:0crwdne2058:0",
 | 
				
			||||||
 | 
					    "lang_status_emphas": "crwdns2060:0crwdne2060:0",
 | 
				
			||||||
 | 
					    "lang_status_unemphas": "crwdns2062:0crwdne2062:0",
 | 
				
			||||||
 | 
					    "lang_status_unendorse": "crwdns2064:0crwdne2064:0",
 | 
				
			||||||
 | 
					    "lang_status_endorse": "crwdns2066:0crwdne2066:0",
 | 
				
			||||||
 | 
					    "lang_suggest_nodata": "crwdns2068:0crwdne2068:0",
 | 
				
			||||||
 | 
					    "lang_usetxtbox_reply": "crwdns2070:0crwdne2070:0",
 | 
				
			||||||
 | 
					    "lang_cards_check": "crwdns2072:0crwdne2072:0",
 | 
				
			||||||
 | 
					    "lang_cards_pip": "crwdns2074:0crwdne2074:0",
 | 
				
			||||||
 | 
					    "lang_details_nodata": "crwdns2076:0crwdne2076:0",
 | 
				
			||||||
 | 
					    "lang_details_filtered": "crwdns2078:0crwdne2078:0",
 | 
				
			||||||
 | 
					    "lang_details_embed": "crwdns2080:0crwdne2080:0",
 | 
				
			||||||
 | 
					    "lang_details_url": "crwdns2082:0crwdne2082:0",
 | 
				
			||||||
 | 
					    "lang_details_txt": "crwdns2084:0crwdne2084:0",
 | 
				
			||||||
 | 
					    "lang_filter_nodata": "crwdns2086:0crwdne2086:0",
 | 
				
			||||||
 | 
					    "lang_filter_errordegree": "crwdns2088:0crwdne2088:0",
 | 
				
			||||||
 | 
					    "lang_list_nodata": "crwdns2090:0crwdne2090:0",
 | 
				
			||||||
 | 
					    "lang_list_show": "crwdns2092:0crwdne2092:0",
 | 
				
			||||||
 | 
					    "lang_list_users": "crwdns2094:0crwdne2094:0",
 | 
				
			||||||
 | 
					    "lang_list_nouser": "crwdns2096:0crwdne2096:0",
 | 
				
			||||||
 | 
					    "lang_list_add": "crwdns2098:0crwdne2098:0",
 | 
				
			||||||
 | 
					    "lang_list_remove": "crwdns2100:0crwdne2100:0",
 | 
				
			||||||
 | 
					    "lang_notf_new": "crwdns2102:0crwdne2102:0",
 | 
				
			||||||
 | 
					    "lang_speech_refresh": "crwdns2348:0crwdne2348:0",
 | 
				
			||||||
 | 
					    "lang_src_ts": "crwdns2106:0crwdne2106:0",
 | 
				
			||||||
 | 
					    "lang_src_people": "crwdns2108:0crwdne2108:0",
 | 
				
			||||||
 | 
					    "lang_tags_always": "crwdns2110:0crwdne2110:0",
 | 
				
			||||||
 | 
					    "lang_tags_realtime": "crwdns2112:0crwdne2112:0",
 | 
				
			||||||
 | 
					    "lang_tags_tagunpin": "crwdns2114:0{{tag}}crwdne2114:0",
 | 
				
			||||||
 | 
					    "lang_tags_tagwarn": "crwdns2116:0{{tag}}crwdne2116:0",
 | 
				
			||||||
 | 
					    "lang_tl_media": "crwdns2118:0crwdne2118:0",
 | 
				
			||||||
 | 
					    "lang_tl_reconnect": "crwdns2120:0crwdne2120:0",
 | 
				
			||||||
 | 
					    "lang_layout_gotop": "crwdns2122:0crwdne2122:0",
 | 
				
			||||||
 | 
					    "lang_layout_thisacct": "crwdns2124:0{{notf}}crwdne2124:0",
 | 
				
			||||||
 | 
					    "lang_layout_delthis": "crwdns2126:0crwdne2126:0",
 | 
				
			||||||
 | 
					    "lang_layout_setthis": "crwdns2128:0crwdne2128:0",
 | 
				
			||||||
 | 
					    "lang_layout_mediafil": "crwdns2130:0crwdne2130:0",
 | 
				
			||||||
 | 
					    "lang_layout_linkana": "crwdns2132:0crwdne2132:0",
 | 
				
			||||||
 | 
					    "lang_layout_linkanades": "crwdns2134:0crwdne2134:0",
 | 
				
			||||||
 | 
					    "lang_layout_tts": "crwdns2136:0crwdne2136:0",
 | 
				
			||||||
 | 
					    "lang_layout_reconnect": "crwdns2138:0crwdne2138:0",
 | 
				
			||||||
 | 
					    "lang_layout_headercolor": "crwdns2140:0crwdne2140:0",
 | 
				
			||||||
 | 
					    "lang_layout_nodata": "crwdns2142:0crwdne2142:0",
 | 
				
			||||||
 | 
					    "lang_layout_dm": "crwdns2144:0crwdne2144:0",
 | 
				
			||||||
 | 
					    "lang_layout_webviewmode": "crwdns2146:0crwdne2146:0",
 | 
				
			||||||
 | 
					    "lang_excluded": "crwdns2368:0crwdne2368:0",
 | 
				
			||||||
 | 
					    "lang_layout_excludingbt": "crwdns2390:0crwdne2390:0",
 | 
				
			||||||
 | 
					    "lang_spotify_img": "crwdns2148:0crwdne2148:0",
 | 
				
			||||||
 | 
					    "lang_spotify_imgno": "crwdns2150:0crwdne2150:0",
 | 
				
			||||||
 | 
					    "lang_spotify_acct": "crwdns2152:0crwdne2152:0",
 | 
				
			||||||
 | 
					    "lang_spotify_np": "crwdns2154:0crwdne2154:0",
 | 
				
			||||||
 | 
					    "lang_setting_npprovide": "crwdns2370:0{{set}}crwdne2370:0",
 | 
				
			||||||
 | 
					    "lang_hisdata_frcreq": "crwdns2156:0crwdne2156:0",
 | 
				
			||||||
 | 
					    "lang_hisdata_frcwarn": "crwdns2158:0crwdne2158:0",
 | 
				
			||||||
 | 
					    "lang_hisdata_taketime": "crwdns2160:0crwdne2160:0",
 | 
				
			||||||
 | 
					    "lang_hisdata_notonmisskey": "crwdns2162:0crwdne2162:0",
 | 
				
			||||||
 | 
					    "lang_showontl_movetxt": "crwdns2164:0crwdne2164:0",
 | 
				
			||||||
 | 
					    "lang_showontl_movebtn": "crwdns2166:0crwdne2166:0",
 | 
				
			||||||
 | 
					    "lang_showontl_botacct": "crwdns2168:0[bot]crwdne2168:0",
 | 
				
			||||||
 | 
					    "lang_showontl_followed": "crwdns2170:0crwdne2170:0",
 | 
				
			||||||
 | 
					    "lang_showontl_notf": "crwdns2172:0crwdne2172:0",
 | 
				
			||||||
 | 
					    "lang_showontl_domain": "crwdns2174:0crwdne2174:0",
 | 
				
			||||||
 | 
					    "lang_showontl_listwarn": "crwdns2176:0crwdne2176:0",
 | 
				
			||||||
 | 
					    "lang_parse_mentioned": "crwdns2178:0crwdne2178:0",
 | 
				
			||||||
 | 
					    "lang_parse_faved": "crwdns2180:0crwdne2180:0",
 | 
				
			||||||
 | 
					    "lang_parse_bted": "crwdns2182:0crwdne2182:0",
 | 
				
			||||||
 | 
					    "lang_parse_btedsimple": "crwdns2184:0crwdne2184:0",
 | 
				
			||||||
 | 
					    "lang_parse_notftime": "crwdns2186:0crwdne2186:0",
 | 
				
			||||||
 | 
					    "lang_parse_cwshow": "crwdns2188:0crwdne2188:0",
 | 
				
			||||||
 | 
					    "lang_parse_fulltext": "crwdns2190:0crwdne2190:0",
 | 
				
			||||||
 | 
					    "lang_parse_autofold": "crwdns2192:0crwdne2192:0",
 | 
				
			||||||
 | 
					    "lang_parse_more": "crwdns2194:0crwdne2194:0",
 | 
				
			||||||
 | 
					    "lang_parse_url": "crwdns2196:0crwdne2196:0",
 | 
				
			||||||
 | 
					    "lang_parse_tagTL": "crwdns2198:0{{tag}}crwdne2198:0",
 | 
				
			||||||
 | 
					    "lang_parse_tagtoot": "crwdns2200:0{{tag}}crwdne2200:0",
 | 
				
			||||||
 | 
					    "lang_parse_tagpin": "crwdns2202:0{{tag}}crwdne2202:0",
 | 
				
			||||||
 | 
					    "lang_parse_public": "crwdns2204:0crwdne2204:0",
 | 
				
			||||||
 | 
					    "lang_parse_unlisted": "crwdns2206:0crwdne2206:0",
 | 
				
			||||||
 | 
					    "lang_parse_private": "crwdns2208:0crwdne2208:0",
 | 
				
			||||||
 | 
					    "lang_parse_direct": "crwdns2210:0crwdne2210:0",
 | 
				
			||||||
 | 
					    "lang_parse_clickcopy": "crwdns2212:0crwdne2212:0",
 | 
				
			||||||
 | 
					    "lang_parse_clickcopyurl": "crwdns2214:0crwdne2214:0",
 | 
				
			||||||
 | 
					    "lang_parse_trans": "crwdns2216:0crwdne2216:0",
 | 
				
			||||||
 | 
					    "lang_parse_replyto": "crwdns2218:0crwdne2218:0",
 | 
				
			||||||
 | 
					    "lang_parse_bt": "crwdns2220:0crwdne2220:0",
 | 
				
			||||||
 | 
					    "lang_parse_fav": "crwdns2222:0crwdne2222:0",
 | 
				
			||||||
 | 
					    "lang_parse_quote": "crwdns2224:0crwdne2224:0",
 | 
				
			||||||
 | 
					    "lang_parse_del": "crwdns2226:0crwdne2226:0",
 | 
				
			||||||
 | 
					    "lang_parse_pin": "crwdns2228:0crwdne2228:0",
 | 
				
			||||||
 | 
					    "lang_parse_det": "crwdns2230:0crwdne2230:0",
 | 
				
			||||||
 | 
					    "lang_parse_redraft": "crwdns2232:0crwdne2232:0",
 | 
				
			||||||
 | 
					    "lang_parse_followed": "crwdns2234:0crwdne2234:0",
 | 
				
			||||||
 | 
					    "lang_parse_clientop": "crwdns2236:0crwdne2236:0",
 | 
				
			||||||
 | 
					    "lang_parse_clienttxt": "crwdns2238:0crwdne2238:0",
 | 
				
			||||||
 | 
					    "lang_parse_clientno": "crwdns2240:0crwdne2240:0",
 | 
				
			||||||
 | 
					    "lang_parse_clientemp": "crwdns2242:0crwdne2242:0",
 | 
				
			||||||
 | 
					    "lang_parse_clientmute": "crwdns2244:0crwdne2244:0",
 | 
				
			||||||
 | 
					    "lang_parse_mute": "crwdns2246:0crwdne2246:0",
 | 
				
			||||||
 | 
					    "lang_parse_voted": "crwdns2392:0crwdne2392:0",
 | 
				
			||||||
 | 
					    "lang_parse_vote": "crwdns2394:0crwdne2394:0",
 | 
				
			||||||
 | 
					    "lang_parse_unvoted": "crwdns2396:0crwdne2396:0",
 | 
				
			||||||
 | 
					    "lang_parse_endedvote": "crwdns2398:0crwdne2398:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_renote": "crwdns2248:0crwdne2248:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_renoteqt": "crwdns2250:0crwdne2250:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_reaction": "crwdns2252:0crwdne2252:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_tagnostr": "crwdns2254:0crwdne2254:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_listnostr": "crwdns2256:0crwdne2256:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_home": "crwdns2258:0crwdne2258:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_followers": "crwdns2260:0crwdne2260:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_specified": "crwdns2262:0crwdne2262:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_qt": "crwdns2264:0crwdne2264:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_renoted": "crwdns2266:0crwdne2266:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_quoted": "crwdns2268:0crwdne2268:0",
 | 
				
			||||||
 | 
					    "lang_misskeyparse_reacted": "crwdns2372:0crwdne2372:0",
 | 
				
			||||||
 | 
					    "lang_setting_time": "crwdns2272:0{{set}}crwdne2272:0",
 | 
				
			||||||
 | 
					    "lang_setting_theme": "crwdns2274:0{{set}}crwdne2274:0",
 | 
				
			||||||
 | 
					    "lang_setting_nsfw": "crwdns2276:0{{set}}crwdne2276:0",
 | 
				
			||||||
 | 
					    "lang_setting_cw": "crwdns2278:0{{set}}crwdne2278:0",
 | 
				
			||||||
 | 
					    "lang_setting_cwtext": "crwdns2280:0{{set}}crwdne2280:0",
 | 
				
			||||||
 | 
					    "lang_setting_cws": "crwdns2282:0{{set}}crwdne2282:0",
 | 
				
			||||||
 | 
					    "lang_setting_rp": "crwdns2284:0{{set}}crwdne2284:0",
 | 
				
			||||||
 | 
					    "lang_setting_vis": "crwdns2286:0{{set}}crwdne2286:0",
 | 
				
			||||||
 | 
					    "lang_setting_popup": "crwdns2288:0{{set}}crwdne2288:0",
 | 
				
			||||||
 | 
					    "lang_setting_off": "crwdns2290:0crwdne2290:0",
 | 
				
			||||||
 | 
					    "lang_setting_s": "crwdns2292:0crwdne2292:0",
 | 
				
			||||||
 | 
					    "lang_setting_box": "crwdns2294:0{{set}}crwdne2294:0",
 | 
				
			||||||
 | 
					    "lang_setting_gif": "crwdns2296:0{{set}}crwdne2296:0",
 | 
				
			||||||
 | 
					    "lang_setting_selt": "crwdns2298:0{{set1}}crwdnd2298:0{{set2}}crwdne2298:0",
 | 
				
			||||||
 | 
					    "lang_setting_autocw": "crwdns2300:0{{set1}}crwdnd2300:0{{set2}}crwdne2300:0",
 | 
				
			||||||
 | 
					    "lang_setting_width": "crwdns2302:0{{set}}crwdne2302:0",
 | 
				
			||||||
 | 
					    "lang_setting_fixwidth": "crwdns2386:0{{set}}crwdne2386:0",
 | 
				
			||||||
 | 
					    "lang_setting_img": "crwdns2304:0{{set}}crwdne2304:0",
 | 
				
			||||||
 | 
					    "lang_setting_font": "crwdns2306:0{{set}}crwdne2306:0",
 | 
				
			||||||
 | 
					    "lang_setting_default": "crwdns2308:0crwdne2308:0",
 | 
				
			||||||
 | 
					    "lang_setting_size": "crwdns2310:0{{set}}crwdne2310:0",
 | 
				
			||||||
 | 
					    "lang_setting_imgheight": "crwdns2312:0{{set}}crwdne2312:0",
 | 
				
			||||||
 | 
					    "lang_setting_ticker": "crwdns2314:0{{set}}crwdne2314:0",
 | 
				
			||||||
 | 
					    "lang_setting_animation": "crwdns2400:0{{set}}crwdne2400:0",
 | 
				
			||||||
 | 
					    "lang_setting_tag": "crwdns2316:0{{set}}crwdne2316:0",
 | 
				
			||||||
 | 
					    "lang_setting_boxConfirm": "crwdns2318:0{{set}}crwdne2318:0",
 | 
				
			||||||
 | 
					    "lang_setting_ul": "crwdns2320:0{{set}}crwdne2320:0",
 | 
				
			||||||
 | 
					    "lang_setting_notf": "crwdns2322:0{{set}}crwdne2322:0",
 | 
				
			||||||
 | 
					    "lang_setting_quote": "crwdns2324:0{{set}}crwdne2324:0",
 | 
				
			||||||
 | 
					    "lang_setting_via": "crwdns2326:0{{set}}crwdne2326:0",
 | 
				
			||||||
 | 
					    "lang_setting_mov": "crwdns2328:0{{set}}crwdne2328:0",
 | 
				
			||||||
 | 
					    "lang_setting_setasread": "crwdns2330:0{{set}}crwdne2330:0",
 | 
				
			||||||
 | 
					    "lang_setting_main": "crwdns2332:0{{set}}crwdne2332:0",
 | 
				
			||||||
 | 
					    "lang_setting_sec": "crwdns2334:0{{set}}crwdne2334:0",
 | 
				
			||||||
 | 
					    "lang_setting_ksref": "crwdns2336:0crwdne2336:0",
 | 
				
			||||||
 | 
					    "lang_setting_nomuting": "crwdns2338:0crwdne2338:0",
 | 
				
			||||||
 | 
					    "lang_setting_notftest": "crwdns2340:0crwdne2340:0",
 | 
				
			||||||
 | 
					    "lang_setting_notftestprof": "crwdns2342:0crwdne2342:0",
 | 
				
			||||||
 | 
					    "lang_setting_exportwarn": "crwdns2344:0crwdne2344:0",
 | 
				
			||||||
 | 
					    "lang_setting_importwarn": "crwdns2346:0crwdne2346:0"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -11,9 +11,9 @@ function ck() {
 | 
				
			|||||||
	if(!main){
 | 
						if(!main){
 | 
				
			||||||
		localStorage.setItem("main",0)
 | 
							localStorage.setItem("main",0)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var domain = localStorage.getItem("domain_0");
 | 
						var domainz = localStorage.getItem("domain_0");
 | 
				
			||||||
	var at = localStorage.getItem("acct_0_at");
 | 
						var at = localStorage.getItem("acct_0_at");
 | 
				
			||||||
	var oldat = localStorage.getItem(domain + "_at");
 | 
						var oldat = localStorage.getItem(domainz + "_at");
 | 
				
			||||||
	if(oldat){
 | 
						if(oldat){
 | 
				
			||||||
		console.log("Move to New Account Management System")
 | 
							console.log("Move to New Account Management System")
 | 
				
			||||||
		var multi = localStorage.getItem("multi");
 | 
							var multi = localStorage.getItem("multi");
 | 
				
			||||||
@@ -77,7 +77,7 @@ function login(url) {
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		scopes: 'read write follow',
 | 
							scopes: 'read write follow',
 | 
				
			||||||
		client_name: "TheDesk(PC)",
 | 
							client_name: "TheDesk(PC)",
 | 
				
			||||||
@@ -85,7 +85,7 @@ function login(url) {
 | 
				
			|||||||
		website: "https://thedesk.top"
 | 
							website: "https://thedesk.top"
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			var auth = "https://" + url + "/oauth/authorize?client_id=" + json[
 | 
								var auth = "https://" + url + "/oauth/authorize?client_id=" + json[
 | 
				
			||||||
@@ -96,9 +96,7 @@ function login(url) {
 | 
				
			|||||||
		localStorage.setItem("client_secret", json["client_secret"]);
 | 
							localStorage.setItem("client_secret", json["client_secret"]);
 | 
				
			||||||
		$("#auth").show();
 | 
							$("#auth").show();
 | 
				
			||||||
		$("#masara").hide();
 | 
							$("#masara").hide();
 | 
				
			||||||
		const {
 | 
							const { shell } = require('electron');
 | 
				
			||||||
  			shell
 | 
					 | 
				
			||||||
  		} = require('electron');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		  shell.openExternal(auth);
 | 
							  shell.openExternal(auth);
 | 
				
			||||||
		  
 | 
							  
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -286,7 +286,7 @@ function login(url) {
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		scopes: 'read write follow',
 | 
							scopes: 'read write follow',
 | 
				
			||||||
		client_name: "TheDesk(PC)",
 | 
							client_name: "TheDesk(PC)",
 | 
				
			||||||
@@ -294,7 +294,7 @@ function login(url) {
 | 
				
			|||||||
		website: "https://thedesk.top"
 | 
							website: "https://thedesk.top"
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			localStorage.setItem("msky","false");
 | 
								localStorage.setItem("msky","false");
 | 
				
			||||||
@@ -326,43 +326,41 @@ function misskeyLogin(url) {
 | 
				
			|||||||
	if(!url){
 | 
						if(!url){
 | 
				
			||||||
		var url=$("#misskey-url").val();
 | 
							var url=$("#misskey-url").val();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var multi = localStorage.getItem("multi");
 | 
						var start = "https://"+url+"/api/app/create";
 | 
				
			||||||
	var obj = JSON.parse(multi);
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
 | 
						localStorage.setItem("msky","true");
 | 
				
			||||||
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
 | 
								name: "TheDesk(PC)",
 | 
				
			||||||
 | 
								description: "Mastodon client for PC",
 | 
				
			||||||
 | 
								permission: ["read","write","follow"]
 | 
				
			||||||
 | 
						}));
 | 
				
			||||||
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
 | 
								var json = httpreq.response;
 | 
				
			||||||
 | 
								console.log(json);
 | 
				
			||||||
 | 
								misskeyAuth(url, json.secret)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function misskeyAuth(url, mkc){
 | 
				
			||||||
	var start = "https://"+url+"/api/auth/session/generate";
 | 
						var start = "https://"+url+"/api/auth/session/generate";
 | 
				
			||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	localStorage.setItem("msky","true");
 | 
					 | 
				
			||||||
	if(url=="misskey.xyz" && misskeytoken){
 | 
					 | 
				
			||||||
		var mkc=misskeytoken;
 | 
					 | 
				
			||||||
		localStorage.setItem("mkc",mkc)
 | 
					 | 
				
			||||||
	}else{
 | 
					 | 
				
			||||||
		var mkc=$("#misskey-key").val();
 | 
					 | 
				
			||||||
		localStorage.setItem("mkc",mkc)
 | 
					 | 
				
			||||||
		if(!mkc){
 | 
					 | 
				
			||||||
			$("#misskeylogin").show();
 | 
					 | 
				
			||||||
			$("#misskey-url").val(url);
 | 
					 | 
				
			||||||
			if(confirm(lang.lang_manager_godev)){
 | 
					 | 
				
			||||||
				const {
 | 
					 | 
				
			||||||
					shell
 | 
					 | 
				
			||||||
				} = require('electron');
 | 
					 | 
				
			||||||
				console.log("https://"+url+"/dev")
 | 
					 | 
				
			||||||
				shell.openExternal("https://"+url+"/dev");
 | 
					 | 
				
			||||||
				shell.openExternal("https://thedesk.top/how-to-login-misskey.html");
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			return false;
 | 
						localStorage.setItem("mkc",mkc)
 | 
				
			||||||
		}else{
 | 
						localStorage.setItem("msky","true");
 | 
				
			||||||
			$("#misskeylogin").hide();
 | 
					 | 
				
			||||||
			$("#misskey-url").val("");
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		appSecret: mkc
 | 
							appSecret: mkc
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			const {
 | 
								const {
 | 
				
			||||||
@@ -375,11 +373,8 @@ function misskeyLogin(url) {
 | 
				
			|||||||
			$("#misskey").prop("checked", false);
 | 
								$("#misskey").prop("checked", false);
 | 
				
			||||||
			localStorage.setItem("domain_tmp",url);
 | 
								localStorage.setItem("domain_tmp",url);
 | 
				
			||||||
			shell.openExternal(json.url);
 | 
								shell.openExternal(json.url);
 | 
				
			||||||
			var electron = require("electron");
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//テキストボックスにURL入れた
 | 
					//テキストボックスにURL入れた
 | 
				
			||||||
@@ -407,13 +402,13 @@ function code(code) {
 | 
				
			|||||||
		var httpreq = new XMLHttpRequest();
 | 
							var httpreq = new XMLHttpRequest();
 | 
				
			||||||
		httpreq.open('POST', start, true);
 | 
							httpreq.open('POST', start, true);
 | 
				
			||||||
		httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
							httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send(JSON.stringify({
 | 
							httpreq.send(JSON.stringify({
 | 
				
			||||||
			token:code,
 | 
								token:code,
 | 
				
			||||||
			appSecret:localStorage.getItem("mkc")
 | 
								appSecret:localStorage.getItem("mkc")
 | 
				
			||||||
		}));
 | 
							}));
 | 
				
			||||||
    	httpreq.onreadystatechange = function() {
 | 
					    	httpreq.onreadystatechange = function() {
 | 
				
			||||||
			if (httpreq.readyState == 4) {
 | 
								if (httpreq.readyState === 4) {
 | 
				
			||||||
				var json = httpreq.response;
 | 
									var json = httpreq.response;
 | 
				
			||||||
				var i = sha256(json.accessToken + localStorage.getItem("mkc"));
 | 
									var i = sha256(json.accessToken + localStorage.getItem("mkc"));
 | 
				
			||||||
				console.log(json);
 | 
									console.log(json);
 | 
				
			||||||
@@ -454,7 +449,7 @@ function code(code) {
 | 
				
			|||||||
		var httpreq = new XMLHttpRequest();
 | 
							var httpreq = new XMLHttpRequest();
 | 
				
			||||||
		httpreq.open('POST', start, true);
 | 
							httpreq.open('POST', start, true);
 | 
				
			||||||
		httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
							httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send(JSON.stringify({
 | 
							httpreq.send(JSON.stringify({
 | 
				
			||||||
			grant_type: "authorization_code",
 | 
								grant_type: "authorization_code",
 | 
				
			||||||
			redirect_uri: "https://thedesk.top/hello.html",
 | 
								redirect_uri: "https://thedesk.top/hello.html",
 | 
				
			||||||
@@ -463,7 +458,7 @@ function code(code) {
 | 
				
			|||||||
			code: code
 | 
								code: code
 | 
				
			||||||
		}));
 | 
							}));
 | 
				
			||||||
		httpreq.onreadystatechange = function() {
 | 
							httpreq.onreadystatechange = function() {
 | 
				
			||||||
			if (httpreq.readyState == 4) {
 | 
								if (httpreq.readyState === 4) {
 | 
				
			||||||
				var json = httpreq.response;
 | 
									var json = httpreq.response;
 | 
				
			||||||
				console.log(json);
 | 
									console.log(json);
 | 
				
			||||||
				if (json["access_token"]) {
 | 
									if (json["access_token"]) {
 | 
				
			||||||
@@ -595,13 +590,13 @@ function misskeyRefresh(obj,target,url){
 | 
				
			|||||||
		var httpreq = new XMLHttpRequest();
 | 
							var httpreq = new XMLHttpRequest();
 | 
				
			||||||
		httpreq.open('POST', start, true);
 | 
							httpreq.open('POST', start, true);
 | 
				
			||||||
		httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
							httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send(JSON.stringify({
 | 
							httpreq.send(JSON.stringify({
 | 
				
			||||||
			username:obj[target].user,
 | 
								username:obj[target].user,
 | 
				
			||||||
			i:localStorage.getItem("at")
 | 
								i:localStorage.getItem("at")
 | 
				
			||||||
		}));
 | 
							}));
 | 
				
			||||||
    	httpreq.onreadystatechange = function() {
 | 
					    	httpreq.onreadystatechange = function() {
 | 
				
			||||||
			if (httpreq.readyState == 4) {
 | 
								if (httpreq.readyState === 4) {
 | 
				
			||||||
				var json = httpreq.response;
 | 
									var json = httpreq.response;
 | 
				
			||||||
				console.log(json);
 | 
									console.log(json);
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -58,9 +58,7 @@
 | 
				
			|||||||
		//hrefがhttp/httpsならブラウザで
 | 
							//hrefがhttp/httpsならブラウザで
 | 
				
			||||||
		if(urls){
 | 
							if(urls){
 | 
				
			||||||
		if (urls[0]) {
 | 
							if (urls[0]) {
 | 
				
			||||||
			const {
 | 
								const {shell} = require('electron');
 | 
				
			||||||
				shell
 | 
					 | 
				
			||||||
			} = require('electron');
 | 
					 | 
				
			||||||
			if(~url.indexOf("thedeks.top")){
 | 
								if(~url.indexOf("thedeks.top")){
 | 
				
			||||||
				//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
 | 
									//alert("If you recieve this alert, let the developer(Cutls@kirishima.cloud) know it with a screenshot.");
 | 
				
			||||||
				url="https://thedesk.top";
 | 
									url="https://thedesk.top";
 | 
				
			||||||
@@ -81,8 +79,7 @@
 | 
				
			|||||||
  //よく使うライブラリ
 | 
					  //よく使うライブラリ
 | 
				
			||||||
  /*マルチバイト用切り出し*/
 | 
					  /*マルチバイト用切り出し*/
 | 
				
			||||||
  $.isSurrogatePear = function(upper, lower) {
 | 
					  $.isSurrogatePear = function(upper, lower) {
 | 
				
			||||||
  	return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <=
 | 
					  	return 0xD800 <= upper && upper <= 0xDBFF && 0xDC00 <= lower && lower <= 0xDFFF;
 | 
				
			||||||
  		0xDFFF;
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  $.mb_strlen = function(str) {
 | 
					  $.mb_strlen = function(str) {
 | 
				
			||||||
  	var ret = 0;
 | 
					  	var ret = 0;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,3 +82,79 @@ function formattimeutc(date){
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	return str;
 | 
						return str;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					var electron = require("electron");
 | 
				
			||||||
 | 
					var ipc = electron.ipcRenderer;
 | 
				
			||||||
 | 
					ipc.send('custom-css-request', "");
 | 
				
			||||||
 | 
					ipc.on('custom-css-response', function (event, arg) {
 | 
				
			||||||
 | 
						if(arg==""){ return false; }
 | 
				
			||||||
 | 
						var styleNode = document.createElement("style");
 | 
				
			||||||
 | 
						styleNode.setAttribute("type","text/css")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var content = document.createTextNode(arg)
 | 
				
			||||||
 | 
						styleNode.append(content)
 | 
				
			||||||
 | 
						document.getElementsByTagName("head")[0].append(styleNode)
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-css-response', function (event, arg) {
 | 
				
			||||||
 | 
						if(arg==""){ return false; }
 | 
				
			||||||
 | 
						var styleNode = document.createElement("style");
 | 
				
			||||||
 | 
						styleNode.setAttribute("type","text/css")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var content = document.createTextNode(arg)
 | 
				
			||||||
 | 
						styleNode.append(content)
 | 
				
			||||||
 | 
						document.getElementsByTagName("head")[0].append(styleNode)
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					function makeCID(){
 | 
				
			||||||
 | 
						return randomStr(8)+"-"+randomStr(4)+"-"+randomStr(4)+"-"+randomStr(4)+"-"+randomStr(12);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function randomStr(l){
 | 
				
			||||||
 | 
						// 生成する文字列に含める文字セット
 | 
				
			||||||
 | 
						var c = "abcdefghijklmnopqrstuvwxyz0123456789";
 | 
				
			||||||
 | 
						var cl = c.length;
 | 
				
			||||||
 | 
						var r = "";
 | 
				
			||||||
 | 
						for(var i=0; i<l; i++){
 | 
				
			||||||
 | 
					    	r += c[Math.floor(Math.random()*cl)];
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return r;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function rgbToHex(color)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // HEXに変換したものを代入する変数
 | 
				
			||||||
 | 
					  var hex = '';
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // 第1引数がHEXのとき変換処理は必要ないのでそのままreturn
 | 
				
			||||||
 | 
					  // IE8の場合はjQueryのcss()関数でHEXを返すので除外
 | 
				
			||||||
 | 
					  if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i))
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    return color;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // 正規表現
 | 
				
			||||||
 | 
					  var regex = color.match(/^rgb\(([0-9.]+),\s*([0-9.]+),\s*([0-9.]+)\)$/);
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // 正規表現でマッチしたとき
 | 
				
			||||||
 | 
					  if (regex)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    var rgb =
 | 
				
			||||||
 | 
					    [
 | 
				
			||||||
 | 
					      // RGBからHEXへ変換
 | 
				
			||||||
 | 
					      parseInt(regex[1]).toString(16),
 | 
				
			||||||
 | 
					      parseInt(regex[2]).toString(16),
 | 
				
			||||||
 | 
					      parseInt(regex[3]).toString(16)
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    for (var i = 0; i < rgb.length; ++i)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      // rgb(1,1,1)のようなときHEXに変換すると1桁になる
 | 
				
			||||||
 | 
					      // 1桁のときは前に0を足す
 | 
				
			||||||
 | 
					      if (rgb[i].length == 1)
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        rgb[i] = '0' + rgb[i];
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      hex += rgb[i];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    return hex;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  console.error(color+':第1引数はRGB形式で入力');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								app/js/platform/pickr.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								app/js/platform/pickr.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@@ -290,10 +290,10 @@ function preview(){
 | 
				
			|||||||
	for(let l = 0; l < li.length; l++) {
 | 
						for(let l = 0; l < li.length; l++) {
 | 
				
			||||||
		var u=li[l].match(/^1\. (.+)$/);
 | 
							var u=li[l].match(/^1\. (.+)$/);
 | 
				
			||||||
		var listUl='<li>'+u[1]+'</li>';
 | 
							var listUl='<li>'+u[1]+'</li>';
 | 
				
			||||||
		if(l == 0){
 | 
							if(l === 0){
 | 
				
			||||||
			listUl='<ol>'+listUl;
 | 
								listUl='<ol>'+listUl;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if(l==li.length-1){
 | 
							if(l===li.length-1){
 | 
				
			||||||
			listUl=listUl+'</ol>';
 | 
								listUl=listUl+'</ol>';
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		var bb=bb.replace(new RegExp(li[l], ""),listUl);
 | 
							var bb=bb.replace(new RegExp(li[l], ""),listUl);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -90,7 +90,7 @@ function emojiList(target) {
 | 
				
			|||||||
	var page = Math.ceil(num / 126);
 | 
						var page = Math.ceil(num / 126);
 | 
				
			||||||
	$("#emoji-sum").text(page);
 | 
						$("#emoji-sum").text(page);
 | 
				
			||||||
	var ct = Math.ceil(start / 126);
 | 
						var ct = Math.ceil(start / 126);
 | 
				
			||||||
	if (ct == 0) {
 | 
						if (ct === 0) {
 | 
				
			||||||
		var ct = 1;
 | 
							var ct = 1;
 | 
				
			||||||
		$("#emoji-before").addClass("disabled");
 | 
							$("#emoji-before").addClass("disabled");
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,7 +106,7 @@ function media(b64, type, no) {
 | 
				
			|||||||
		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);
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		if ($("#nsfw").hasClass("nsfw-avail")) {
 | 
							if ($("#nsfw").hasClass("nsfw-avail")) {
 | 
				
			||||||
			var nsfw = true;
 | 
								var nsfw = true;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
@@ -121,12 +121,12 @@ function media(b64, type, no) {
 | 
				
			|||||||
		var start = "https://" + domain + "/api/v1/media";
 | 
							var start = "https://" + domain + "/api/v1/media";
 | 
				
			||||||
		httpreq.open('POST', start, true);
 | 
							httpreq.open('POST', start, true);
 | 
				
			||||||
		httpreq.upload.addEventListener("progress", progshow, false);
 | 
							httpreq.upload.addEventListener("progress", progshow, false);
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
							httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
		httpreq.send(fd);
 | 
							httpreq.send(fd);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			var img = localStorage.getItem("img");
 | 
								var img = localStorage.getItem("img");
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
//Renpost
 | 
					//Renpost
 | 
				
			||||||
function renote(id, acct_id, remote) {
 | 
					function renote(id, acct_id, remote) {
 | 
				
			||||||
	if ($("#pub_" + id).hasClass("rted")) {
 | 
						if ($("#pub_" + id).hasClass("rted")) {
 | 
				
			||||||
		return
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var domain = localStorage.getItem("domain_" + acct_id);
 | 
						var domain = localStorage.getItem("domain_" + acct_id);
 | 
				
			||||||
	var at = localStorage.getItem("acct_"+ acct_id + "_at");
 | 
						var at = localStorage.getItem("acct_"+ acct_id + "_at");
 | 
				
			||||||
@@ -12,10 +12,10 @@ function renote(id, acct_id, remote) {
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
    httpreq.responseType = 'json';
 | 
					    httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({i:at,renoteId:id}));
 | 
						httpreq.send(JSON.stringify({i:at,renoteId:id}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
            var json = httpreq.response;
 | 
					            var json = httpreq.response;
 | 
				
			||||||
            console.log(json);
 | 
					            console.log(json);
 | 
				
			||||||
            $("[toot-id=" + id + "]").addClass("rted");
 | 
					            $("[toot-id=" + id + "]").addClass("rted");
 | 
				
			||||||
@@ -58,10 +58,10 @@ function reactiontoggle(id,acct_id,tlid){
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
    httpreq.responseType = 'json';
 | 
					    httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({i:at,noteId:id}));
 | 
						httpreq.send(JSON.stringify({i:at,noteId:id}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
            var json = httpreq.response;
 | 
					            var json = httpreq.response;
 | 
				
			||||||
            console.log(json);
 | 
					            console.log(json);
 | 
				
			||||||
            if(json.reactionCounts){
 | 
					            if(json.reactionCounts){
 | 
				
			||||||
@@ -158,10 +158,10 @@ function reaction(mode,id,acct_id,tlid){
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
    httpreq.responseType = 'json';
 | 
					    httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({i:at,noteId:id,reaction:mode}));
 | 
						httpreq.send(JSON.stringify({i:at,noteId:id,reaction:mode}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
            $(".fav_"+id).toggleClass("yellow-text");
 | 
					            $(".fav_"+id).toggleClass("yellow-text");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -177,7 +177,7 @@ function vote(acct_id,id,to){
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
    httpreq.responseType = 'json';
 | 
					    httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({i:at,noteId:id,choice:to}));
 | 
						httpreq.send(JSON.stringify({i:at,noteId:id,choice:to}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		voterefresh(acct_id,id)
 | 
							voterefresh(acct_id,id)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ function sec(){
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
function post(mode,postvis) {
 | 
					function post(mode,postvis) {
 | 
				
			||||||
	if($("#toot-post-btn").prop("disabled")){
 | 
						if($("#toot-post-btn").prop("disabled")){
 | 
				
			||||||
		return
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var str = $("#textarea").val();
 | 
						var str = $("#textarea").val();
 | 
				
			||||||
	var acct_id = $("#post-acct-sel").val();
 | 
						var acct_id = $("#post-acct-sel").val();
 | 
				
			||||||
@@ -57,13 +57,13 @@ function post(mode,postvis) {
 | 
				
			|||||||
			buttons: [lang.lang_post_btn1,lang.lang_post_btn2, lang.lang_post_btn3]
 | 
								buttons: [lang.lang_post_btn1,lang.lang_post_btn2, lang.lang_post_btn3]
 | 
				
			||||||
	  }
 | 
						  }
 | 
				
			||||||
	  dialog.showMessageBox(options, function(arg) {
 | 
						  dialog.showMessageBox(options, function(arg) {
 | 
				
			||||||
			if(arg==1){
 | 
								if(arg===1){
 | 
				
			||||||
				$("#cw-text").show();
 | 
									$("#cw-text").show();
 | 
				
			||||||
				$("#cw").addClass("yellow-text");
 | 
									$("#cw").addClass("yellow-text");
 | 
				
			||||||
				$("#cw").addClass("cw-avail");
 | 
									$("#cw").addClass("cw-avail");
 | 
				
			||||||
				$("#cw-text").val(plus);
 | 
									$("#cw-text").val(plus);
 | 
				
			||||||
				post("pass");
 | 
									post("pass");
 | 
				
			||||||
			}else if(arg==2){
 | 
								}else if(arg===2){
 | 
				
			||||||
				post("pass");
 | 
									post("pass");
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
	  	})
 | 
						  	})
 | 
				
			||||||
@@ -162,10 +162,10 @@ function post(mode,postvis) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify(toot));
 | 
						httpreq.send(JSON.stringify(toot));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			if(str.indexOf(localStorage.getItem("stable"))==-1){
 | 
								if(str.indexOf(localStorage.getItem("stable"))==-1){
 | 
				
			||||||
				localStorage.removeItem("stable")
 | 
									localStorage.removeItem("stable")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -234,10 +234,10 @@ function misskeyPost(){
 | 
				
			|||||||
	var httpreq = new XMLHttpRequest();
 | 
						var httpreq = new XMLHttpRequest();
 | 
				
			||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify(toot));
 | 
						httpreq.send(JSON.stringify(toot));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			if(str.indexOf(localStorage.getItem("stable"))==-1){
 | 
								if(str.indexOf(localStorage.getItem("stable"))==-1){
 | 
				
			||||||
				localStorage.removeItem("stable")
 | 
									localStorage.removeItem("stable")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,10 +13,10 @@ function fav(id, acct_id, remote) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
        if (httpreq.readyState == 4) {
 | 
					        if (httpreq.readyState === 4) {
 | 
				
			||||||
            var json = httpreq.response;
 | 
					            var json = httpreq.response;
 | 
				
			||||||
            if(remote!="remote"){
 | 
					            if(remote!="remote"){
 | 
				
			||||||
				//APIのふぁぼカウントがおかしい
 | 
									//APIのふぁぼカウントがおかしい
 | 
				
			||||||
@@ -63,10 +63,10 @@ function rt(id, acct_id, remote) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			if (remote != "remote") {
 | 
								if (remote != "remote") {
 | 
				
			||||||
@@ -133,10 +133,10 @@ function follow(acct_id,remote) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify(ent));
 | 
						httpreq.send(JSON.stringify(ent));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			if ($("#his-data").hasClass("following")) {
 | 
								if ($("#his-data").hasClass("following")) {
 | 
				
			||||||
@@ -168,10 +168,10 @@ function block(acct_id) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			if ($("#his-data").hasClass("blocking")) {
 | 
								if ($("#his-data").hasClass("blocking")) {
 | 
				
			||||||
				$("#his-data").removeClass("blocking");
 | 
									$("#his-data").removeClass("blocking");
 | 
				
			||||||
				$("#his-block-btn").text(lang.lang_status_block);
 | 
									$("#his-block-btn").text(lang.lang_status_block);
 | 
				
			||||||
@@ -210,10 +210,10 @@ function mute(acct_id) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(rq);
 | 
						httpreq.send(rq);
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			if ($("#his-data").hasClass("muting")) {
 | 
								if ($("#his-data").hasClass("muting")) {
 | 
				
			||||||
				$("#his-data").removeClass("muting");
 | 
									$("#his-data").removeClass("muting");
 | 
				
			||||||
				$("#his-mute-btn").text(lang.lang_status_mute);
 | 
									$("#his-mute-btn").text(lang.lang_status_mute);
 | 
				
			||||||
@@ -234,7 +234,7 @@ function del(id, acct_id) {
 | 
				
			|||||||
		var httpreq = new XMLHttpRequest();
 | 
							var httpreq = new XMLHttpRequest();
 | 
				
			||||||
		httpreq.open('POST', start, true);
 | 
							httpreq.open('POST', start, true);
 | 
				
			||||||
		httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
							httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send(JSON.stringify({i:at,noteId:id}));
 | 
							httpreq.send(JSON.stringify({i:at,noteId:id}));
 | 
				
			||||||
	}else{
 | 
						}else{
 | 
				
			||||||
		var start = "https://" + domain + "/api/v1/statuses/" + id;
 | 
							var start = "https://" + domain + "/api/v1/statuses/" + id;
 | 
				
			||||||
@@ -242,11 +242,11 @@ function del(id, acct_id) {
 | 
				
			|||||||
		httpreq.open('DELETE', start, true);
 | 
							httpreq.open('DELETE', start, true);
 | 
				
			||||||
		httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
							httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
		httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
							httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send();
 | 
							httpreq.send();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -300,10 +300,10 @@ function pin(id, acct_id) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			if ($("[toot-id=" + id + "]").hasClass("pined")) {
 | 
								if ($("[toot-id=" + id + "]").hasClass("pined")) {
 | 
				
			||||||
@@ -326,10 +326,10 @@ function request(id, flag, acct_id) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			showReq();
 | 
								showReq();
 | 
				
			||||||
@@ -349,10 +349,10 @@ function domainblock(add, flag, acct_id) {
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			showDom();
 | 
								showDom();
 | 
				
			||||||
@@ -406,10 +406,10 @@ function pinUser(){
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			if ($("#his-end-btn").hasClass("endorsed")) {
 | 
								if ($("#his-end-btn").hasClass("endorsed")) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -83,7 +83,7 @@ function additional(acct_id, tlid) {
 | 
				
			|||||||
		var xmlHttpRequest = new XMLHttpRequest();
 | 
							var xmlHttpRequest = new XMLHttpRequest();
 | 
				
			||||||
	 xmlHttpRequest.onreadystatechange = function()
 | 
						 xmlHttpRequest.onreadystatechange = function()
 | 
				
			||||||
	 {
 | 
						 {
 | 
				
			||||||
		 if( this.readyState == 4 && this.status == 200 ) {
 | 
							 if( this.readyState === 4 && this.status === 200 ) {
 | 
				
			||||||
			 if( this.response){
 | 
								 if( this.response){
 | 
				
			||||||
				 var json=this.response;
 | 
									 var json=this.response;
 | 
				
			||||||
				 var emojis=json.emojis;
 | 
									 var emojis=json.emojis;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,10 +78,11 @@ function details(id, acct_id, tlid) {
 | 
				
			|||||||
			$("#tootmodal").attr("data-user",scn);
 | 
								$("#tootmodal").attr("data-user",scn);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		context(id, acct_id);
 | 
							context(id, acct_id);
 | 
				
			||||||
 | 
							var dom=null;
 | 
				
			||||||
		if(!local){
 | 
							if(!local){
 | 
				
			||||||
			var dom=scn.replace(/.+@/g,'');
 | 
								dom=scn.replace(/.+@/g,'');
 | 
				
			||||||
		}else{
 | 
							}else{
 | 
				
			||||||
			var dom=domain;
 | 
								dom=domain;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		beforeToot(id, acct_id, dom);
 | 
							beforeToot(id, acct_id, dom);
 | 
				
			||||||
		userToot(id, acct_id, uid);
 | 
							userToot(id, acct_id, uid);
 | 
				
			||||||
@@ -448,7 +449,7 @@ function shot(){
 | 
				
			|||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//翻訳
 | 
					//翻訳
 | 
				
			||||||
function trans(tar){
 | 
					function trans(tar,to){
 | 
				
			||||||
	var html=$("#toot-this .toot").html();
 | 
						var html=$("#toot-this .toot").html();
 | 
				
			||||||
	if(html.match(/^<p>(.+)<\/p>$/)){
 | 
						if(html.match(/^<p>(.+)<\/p>$/)){
 | 
				
			||||||
		html = html.match(/^<p>(.+)<\/p>$/)[1];
 | 
							html = html.match(/^<p>(.+)<\/p>$/)[1];
 | 
				
			||||||
@@ -457,18 +458,21 @@ function trans(tar){
 | 
				
			|||||||
	html = html.replace(/<p>/g, "\n");
 | 
						html = html.replace(/<p>/g, "\n");
 | 
				
			||||||
	html = html.replace(/<\/p>/g, "\n");
 | 
						html = html.replace(/<\/p>/g, "\n");
 | 
				
			||||||
	html=$.strip_tags(html);
 | 
						html=$.strip_tags(html);
 | 
				
			||||||
 | 
						if(~tar.indexOf("zh")){
 | 
				
			||||||
 | 
							tar="zh";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
 | 
						$("#toot-this .additional").text("Loading...(Powered by Google Translate)");
 | 
				
			||||||
	var exec='https://script.google.com/macros/s/AKfycbz0ETqcUxwNlw961GjErNb7vr_X18N2s1AS5Xu5nFTbYXcdcRM/exec?text='+encodeURIComponent(html)+'&source='+tar+'&target=ja'
 | 
						var exec='https://script.google.com/macros/s/AKfycbxhwW5tjjop9Irg-y1zr_WsXlCKEzwWG6KuoOt_vVRDfEbRv0c/exec?format=json&text='+encodeURIComponent(html)+'&source='+tar+'&target='+to
 | 
				
			||||||
	console.log(exec);
 | 
						console.log(exec);
 | 
				
			||||||
	fetch(exec, {
 | 
						fetch(exec, {
 | 
				
			||||||
		method: 'GET',
 | 
							method: 'GET',
 | 
				
			||||||
	}).then(function(response) {
 | 
						}).then(function(response) {
 | 
				
			||||||
		return response.text();
 | 
							return response.json();
 | 
				
			||||||
	}).catch(function(error) {
 | 
						}).catch(function(error) {
 | 
				
			||||||
		todo(error);
 | 
							todo(error);
 | 
				
			||||||
		console.error(error);
 | 
							console.error(error);
 | 
				
			||||||
	}).then(function(text) {
 | 
						}).then(function(text) {
 | 
				
			||||||
		$("#toot-this .additional").html('<span class="gray">'+text+'</span>');
 | 
							$("#toot-this .additional").html('<span class="gray">'+text.text+'</span>');
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//ブラウザで開く
 | 
					//ブラウザで開く
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,10 +15,11 @@ function date(str, datetype) {
 | 
				
			|||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			var min = date.getMinutes();
 | 
								var min = date.getMinutes();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							var sec=null;
 | 
				
			||||||
		if (date.getSeconds() < 10) {
 | 
							if (date.getSeconds() < 10) {
 | 
				
			||||||
			var sec = "0" + date.getSeconds();
 | 
								sec = "0" + date.getSeconds();
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			var sec = date.getSeconds();
 | 
								sec = date.getSeconds();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (datetype == "full") {
 | 
							if (datetype == "full") {
 | 
				
			||||||
			var ret = date.getFullYear() + "/" + month + "/" + date.getDate() + "/ " +
 | 
								var ret = date.getFullYear() + "/" + month + "/" + date.getDate() + "/ " +
 | 
				
			||||||
@@ -56,10 +57,11 @@ function date(str, datetype) {
 | 
				
			|||||||
//特殊フォーマット(インスタンス情報で利用)
 | 
					//特殊フォーマット(インスタンス情報で利用)
 | 
				
			||||||
function crat(str) {
 | 
					function crat(str) {
 | 
				
			||||||
	var date = new Date(str);
 | 
						var date = new Date(str);
 | 
				
			||||||
 | 
						var mnt=null;
 | 
				
			||||||
	if(date.getMonth()<9){
 | 
						if(date.getMonth()<9){
 | 
				
			||||||
		var mnt="0"+(date.getMonth()+1);
 | 
							mnt="0"+(date.getMonth()+1);
 | 
				
			||||||
	}else{
 | 
						}else{
 | 
				
			||||||
		var mnt=date.getMonth()+1;
 | 
							mnt=date.getMonth()+1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if(date.getDate()<10){
 | 
						if(date.getDate()<10){
 | 
				
			||||||
		var dat="0"+date.getDate();
 | 
							var dat="0"+date.getDate();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,9 +32,6 @@ function dmParse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			|||||||
    console.log(obj);
 | 
					    console.log(obj);
 | 
				
			||||||
	var templete = '';
 | 
						var templete = '';
 | 
				
			||||||
	if(obj[0]){
 | 
						if(obj[0]){
 | 
				
			||||||
		if(tlid==1){
 | 
					 | 
				
			||||||
			console.log("testalive:"+"lastunix_"+ tlid+":"+date(obj[0].created_at, 'unix'))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
 | 
							localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -192,7 +192,7 @@ function makeNewFilter(){
 | 
				
			|||||||
	httpreq.open(method, start, true);
 | 
						httpreq.open(method, start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		phrase: phr,
 | 
							phrase: phr,
 | 
				
			||||||
		context: cont,
 | 
							context: cont,
 | 
				
			||||||
@@ -201,7 +201,7 @@ function makeNewFilter(){
 | 
				
			|||||||
		expires_in:time
 | 
							expires_in:time
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			filter();
 | 
								filter();
 | 
				
			||||||
			filterUpdate(acct_id)
 | 
								filterUpdate(acct_id)
 | 
				
			||||||
@@ -283,10 +283,10 @@ function filterDel(id,acct_id){
 | 
				
			|||||||
	httpreq.open("DELETE", start, true);
 | 
						httpreq.open("DELETE", start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send();
 | 
						httpreq.send();
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			filter();
 | 
								filter();
 | 
				
			||||||
			filterUpdate(acct_id)
 | 
								filterUpdate(acct_id)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,12 +56,12 @@ function makeNewList(){
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		title: text
 | 
							title: text
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			list();
 | 
								list();
 | 
				
			||||||
			$("#list-add").val("")
 | 
								$("#list-add").val("")
 | 
				
			||||||
@@ -166,12 +166,12 @@ function listAdd(id,user,acct_id){
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		account_ids: [user]
 | 
							account_ids: [user]
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			hisList(user,acct_id)
 | 
								hisList(user,acct_id)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -186,12 +186,12 @@ function listRemove(id,user,acct_id){
 | 
				
			|||||||
	httpreq.open('DELETE', start, true);
 | 
						httpreq.open('DELETE', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		account_ids: [user]
 | 
							account_ids: [user]
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			hisList(user,acct_id)
 | 
								hisList(user,acct_id)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,10 +39,10 @@ function notfColumn(acct_id, tlid, sys){
 | 
				
			|||||||
		var body="";
 | 
							var body="";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(body);
 | 
						httpreq.send(body);
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
 | 
								var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
 | 
				
			||||||
			if(json[0]){
 | 
								if(json[0]){
 | 
				
			||||||
@@ -391,10 +391,10 @@ function notfmore(tlid) {
 | 
				
			|||||||
		var body="";
 | 
							var body="";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(body);
 | 
						httpreq.send(body);
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			var json = httpreq.response;
 | 
								var json = httpreq.response;
 | 
				
			||||||
			console.log(json);
 | 
								console.log(json);
 | 
				
			||||||
			var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
 | 
								var max_id = httpreq.getResponseHeader("link").match(/\?max_id=([0-9]+)/)[1];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
					function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			||||||
	var templete = '';
 | 
						var templete = '';
 | 
				
			||||||
	if(obj[0]){
 | 
						if(obj[0]){
 | 
				
			||||||
		if(tlid==1){
 | 
							if(tlid===1){
 | 
				
			||||||
			console.log("testalive:"+"lastunix_"+ tlid+":"+date(obj[0].created_at, 'unix'))
 | 
								console.log("testalive:"+"lastunix_"+ tlid+":"+date(obj[0].created_at, 'unix'))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
 | 
							localStorage.setItem("lastunix_"+ tlid,date(obj[0].created_at, 'unix'));
 | 
				
			||||||
@@ -84,7 +84,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			|||||||
	var card = localStorage.getItem("card_" + tlid);
 | 
						var card = localStorage.getItem("card_" + tlid);
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	if (!sent) {
 | 
						if (!sent) {
 | 
				
			||||||
		var sent = 500;
 | 
							sent = 500;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (!ltr) {
 | 
						if (!ltr) {
 | 
				
			||||||
		var ltr = 500;
 | 
							var ltr = 500;
 | 
				
			||||||
@@ -614,8 +614,8 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			|||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		//日本語じゃない
 | 
							//日本語じゃない
 | 
				
			||||||
		if(toot.language!="ja"){
 | 
							if(toot.language!=lang.language && toot.language){
 | 
				
			||||||
			var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_trans+'"><i class="material-icons">g_translate</i></a></div>';
 | 
								var trans='<div class="action pin"><a onclick="trans(\''+toot.language+'\',\''+lang.language+'\')" class="waves-effect waves-dark btn-flat" style="padding:0" title="'+lang.lang_parse_trans+'"><i class="material-icons">g_translate</i></a></div>';
 | 
				
			||||||
		}else{
 | 
							}else{
 | 
				
			||||||
			var trans="";
 | 
								var trans="";
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -673,9 +673,14 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
				var result_hide="hide";
 | 
									var result_hide="hide";
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if(toot.poll.expired){
 | 
				
			||||||
 | 
									var ended=lang.lang_parse_endedvote;
 | 
				
			||||||
 | 
								}else{
 | 
				
			||||||
 | 
									var ended=date(toot.poll.expires_at, datetype);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			Object.keys(choices).forEach(function(keyc) {
 | 
								Object.keys(choices).forEach(function(keyc) {
 | 
				
			||||||
				var choice = choices[keyc];
 | 
									var choice = choices[keyc];
 | 
				
			||||||
				if(!toot.poll.voted){
 | 
									if(!toot.poll.voted && !toot.poll.expired){
 | 
				
			||||||
					var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
 | 
										var votesel='voteSelMastodon(\''+acct_id+'\',\''+toot.poll.id+'\','+keyc+','+toot.poll.multiple+')';
 | 
				
			||||||
					var voteclass="pointer waves-effect waves-light";
 | 
										var voteclass="pointer waves-effect waves-light";
 | 
				
			||||||
				}else{
 | 
									}else{
 | 
				
			||||||
@@ -686,7 +691,7 @@ function parse(obj, mix, acct_id, tlid, popup, mutefilter) {
 | 
				
			|||||||
			});
 | 
								});
 | 
				
			||||||
			poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
 | 
								poll='<div class="vote_'+acct_id+'_'+toot.poll.id+'">'+poll+myvote+'<span class="cbadge cbadge-hover" title="' + date(toot.poll.expires_at, 'absolute') +
 | 
				
			||||||
			'"><i class="fa fa-calendar-times-o"></i>' +
 | 
								'"><i class="fa fa-calendar-times-o"></i>' +
 | 
				
			||||||
			date(toot.poll.expires_at, datetype) + '</span></div>';
 | 
								 ended+ '</span></div>';
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
 | 
							templete = templete + '<div id="pub_' + toot.id + '" class="cvo ' +
 | 
				
			||||||
			boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
 | 
								boostback + ' ' + fav_app + ' ' + rt_app + ' ' + pin_app +
 | 
				
			||||||
@@ -905,7 +910,7 @@ function client(name) {
 | 
				
			|||||||
		buttons: [lang.lang_parse_clientno,lang.lang_parse_clientemp, lang.lang_parse_clientmute]
 | 
							buttons: [lang.lang_parse_clientno,lang.lang_parse_clientemp, lang.lang_parse_clientmute]
 | 
				
			||||||
	  }
 | 
						  }
 | 
				
			||||||
	  dialog.showMessageBox(options, function(arg) {
 | 
						  dialog.showMessageBox(options, function(arg) {
 | 
				
			||||||
		if(arg==1){
 | 
							if(arg===1){
 | 
				
			||||||
			var cli = localStorage.getItem("client_emp");
 | 
								var cli = localStorage.getItem("client_emp");
 | 
				
			||||||
			var obj = JSON.parse(cli);
 | 
								var obj = JSON.parse(cli);
 | 
				
			||||||
			if(!obj){
 | 
								if(!obj){
 | 
				
			||||||
@@ -933,7 +938,7 @@ function client(name) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
			var json = JSON.stringify(obj);
 | 
								var json = JSON.stringify(obj);
 | 
				
			||||||
			localStorage.setItem("client_emp", json);
 | 
								localStorage.setItem("client_emp", json);
 | 
				
			||||||
		}else if(arg==2){
 | 
							}else if(arg===2){
 | 
				
			||||||
			var cli = localStorage.getItem("client_mute");
 | 
								var cli = localStorage.getItem("client_mute");
 | 
				
			||||||
			var obj = JSON.parse(cli);
 | 
								var obj = JSON.parse(cli);
 | 
				
			||||||
			if(!obj){
 | 
								if(!obj){
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,7 +70,7 @@ function voteMastodon(acct_id,id){
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
    httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
					    httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
    httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
					    httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
    httpreq.responseType = 'json';
 | 
					    httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({choices:choice}));
 | 
						httpreq.send(JSON.stringify({choices:choice}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		voteMastodonrefresh(acct_id,id)
 | 
							voteMastodonrefresh(acct_id,id)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -116,7 +116,7 @@ function graphDraw(tag){
 | 
				
			|||||||
		var two=50-(his[2].uses/max*50);
 | 
							var two=50-(his[2].uses/max*50);
 | 
				
			||||||
		var one=50-(his[1].uses/max*50);
 | 
							var one=50-(his[1].uses/max*50);
 | 
				
			||||||
		var zero=50-(his[0].uses/max*50);
 | 
							var zero=50-(his[0].uses/max*50);
 | 
				
			||||||
		if(max==0){
 | 
							if(max===0){
 | 
				
			||||||
			tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
 | 
								tags = '<br><br><svg version="1.1" viewbox="0 0 60 50" width="60" height="50">'+
 | 
				
			||||||
	'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
 | 
						'</svg><span style="font-size:200%">'+his[0].uses+'</span>toots <a onclick="tl(\'tag\',\'' + tag.name + '\',\'' + acct_id +
 | 
				
			||||||
			'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
 | 
								'\',\'add\')" class="pointer">#' + tag.name + '</a> '+his[0].accounts+lang.lang_src_people;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -289,7 +289,7 @@ function reload(type, cc, acct_id, tlid, data, mute, delc, voice, mode) {
 | 
				
			|||||||
						say(obj.content)
 | 
											say(obj.content)
 | 
				
			||||||
					}	
 | 
										}	
 | 
				
			||||||
					var templete = parse([obj], type, acct_id, tlid,"",mute);
 | 
										var templete = parse([obj], type, acct_id, tlid,"",mute);
 | 
				
			||||||
					if ($("timeline_box_"+tlid+"_box .tl-box").scrollTop() == 0) {
 | 
										if ($("timeline_box_"+tlid+"_box .tl-box").scrollTop() === 0) {
 | 
				
			||||||
						$("#timeline_" + tlid).prepend(templete);
 | 
											$("#timeline_" + tlid).prepend(templete);
 | 
				
			||||||
					}else{
 | 
										}else{
 | 
				
			||||||
						var pool = localStorage.getItem("pool_" + tlid);
 | 
											var pool = localStorage.getItem("pool_" + tlid);
 | 
				
			||||||
@@ -578,7 +578,7 @@ function com(type, data) {
 | 
				
			|||||||
		return "tag/" + data + "?"
 | 
							return "tag/" + data + "?"
 | 
				
			||||||
	}else if (type == "list") {
 | 
						}else if (type == "list") {
 | 
				
			||||||
		return "list/" + data + "?"
 | 
							return "list/" + data + "?"
 | 
				
			||||||
	}else if (type="dm") {
 | 
						}else if (type=="dm") {
 | 
				
			||||||
		return "direct?"
 | 
							return "direct?"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -222,13 +222,13 @@ function imgCont(type) {
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if ($("#" + id + "-image-" + (key * 1 + 1)).length == 0) {
 | 
							if ($("#" + id + "-image-" + (key * 1 + 1)).length === 0) {
 | 
				
			||||||
			$("#image-next").prop("disabled", true);
 | 
								$("#image-next").prop("disabled", true);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			$("#image-next").prop("disabled", false);
 | 
								$("#image-next").prop("disabled", false);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		console.log("#" + id + "-image-" + (key * 1 - 1));
 | 
							console.log("#" + id + "-image-" + (key * 1 - 1));
 | 
				
			||||||
		if ($("#" + id + "-image-" + (key * 1 - 1)).length == 0) {
 | 
							if ($("#" + id + "-image-" + (key * 1 - 1)).length === 0) {
 | 
				
			||||||
			$("#image-prev").prop("disabled", true);
 | 
								$("#image-prev").prop("disabled", true);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			$("#image-prev").prop("disabled", false);
 | 
								$("#image-prev").prop("disabled", false);
 | 
				
			||||||
@@ -289,7 +289,7 @@ function zoom(z) {
 | 
				
			|||||||
			'cursor': 'move'
 | 
								'cursor': 'move'
 | 
				
			||||||
		}); //指が触れたか検知
 | 
							}); //指が触れたか検知
 | 
				
			||||||
		$(this).on('touchmove', function(event) {
 | 
							$(this).on('touchmove', function(event) {
 | 
				
			||||||
			if ($(target).data('down') == true) {
 | 
								if ($(target).data('down') === true) {
 | 
				
			||||||
				// スクロール
 | 
									// スクロール
 | 
				
			||||||
				console.log($(target).data('x'));
 | 
									console.log($(target).data('x'));
 | 
				
			||||||
				target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
 | 
									target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') -
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -311,7 +311,7 @@ function removeColumn(tlid) {
 | 
				
			|||||||
	ipc.send('column-del', "");
 | 
						ipc.send('column-del', "");
 | 
				
			||||||
	ipc.on('column-del-reply', function (event, arg) {
 | 
						ipc.on('column-del-reply', function (event, arg) {
 | 
				
			||||||
		console.log(arg);
 | 
							console.log(arg);
 | 
				
			||||||
		if(arg==1){
 | 
							if(arg===1){
 | 
				
			||||||
			localStorage.removeItem("card_" + tlid);
 | 
								localStorage.removeItem("card_" + tlid);
 | 
				
			||||||
			obj.splice(tlid, 1);
 | 
								obj.splice(tlid, 1);
 | 
				
			||||||
			for(var i=0;i<obj.length;i++){
 | 
								for(var i=0;i<obj.length;i++){
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,7 @@ function scrollck() {
 | 
				
			|||||||
	$(".tl-box").each(function(i, elem) {
 | 
						$(".tl-box").each(function(i, elem) {
 | 
				
			||||||
		var tlid = $(this).attr('tlid');
 | 
							var tlid = $(this).attr('tlid');
 | 
				
			||||||
		//一番上ならためていた新しいトゥートを表示
 | 
							//一番上ならためていた新しいトゥートを表示
 | 
				
			||||||
		if ($(this).scrollTop() == 0) {
 | 
							if ($(this).scrollTop() === 0) {
 | 
				
			||||||
			var pool = localStorage.getItem("pool_" + tlid);
 | 
								var pool = localStorage.getItem("pool_" + tlid);
 | 
				
			||||||
			if (pool) {
 | 
								if (pool) {
 | 
				
			||||||
				$("#timeline_" + tlid).prepend(pool);
 | 
									$("#timeline_" + tlid).prepend(pool);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,13 +10,20 @@ function settings() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var cd = $("[name=theme]:checked").val();
 | 
						var cd = $("[name=theme]:checked").val();
 | 
				
			||||||
	var ct = $("[for="+cd+"]").html();
 | 
						var ct = $("[for="+cd+"]").html();
 | 
				
			||||||
 | 
						if(cd=="custom" && !$("#custom-sel-sel").val()){
 | 
				
			||||||
 | 
							var theme = localStorage.getItem("theme");
 | 
				
			||||||
 | 
							if (!theme) {
 | 
				
			||||||
 | 
								var theme = "white";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							$("#" + theme).prop("checked", true);
 | 
				
			||||||
 | 
						}else{
 | 
				
			||||||
		if (cd != localStorage.getItem("theme")) {
 | 
							if (cd != localStorage.getItem("theme")) {
 | 
				
			||||||
			Materialize.toast(lang.lang_setting_theme.replace("{{set}}" ,ct), 3000);
 | 
								Materialize.toast(lang.lang_setting_theme.replace("{{set}}" ,ct), 3000);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		//テーマはこの場で設定
 | 
							//テーマはこの場で設定
 | 
				
			||||||
		themes(cd);
 | 
							themes(cd);
 | 
				
			||||||
		localStorage.setItem("theme", cd);
 | 
							localStorage.setItem("theme", cd);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	var nd = $("[name=nsfw]:checked").val();
 | 
						var nd = $("[name=nsfw]:checked").val();
 | 
				
			||||||
	var nt = $("[for=n_"+nd+"]").text();
 | 
						var nt = $("[for=n_"+nd+"]").text();
 | 
				
			||||||
	if (nd != localStorage.getItem("nsfw")) {
 | 
						if (nd != localStorage.getItem("nsfw")) {
 | 
				
			||||||
@@ -435,16 +442,9 @@ function load() {
 | 
				
			|||||||
		var sect = "nothing";
 | 
							var sect = "nothing";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	$("#sec-" + sect).prop("checked", true);
 | 
						$("#sec-" + sect).prop("checked", true);
 | 
				
			||||||
 | 
						
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
//最初に読む
 | 
					
 | 
				
			||||||
load();
 | 
					 | 
				
			||||||
climute();
 | 
					 | 
				
			||||||
wordmute();
 | 
					 | 
				
			||||||
wordemp();
 | 
					 | 
				
			||||||
checkSpotify();
 | 
					 | 
				
			||||||
voiceSettingLoad();
 | 
					 | 
				
			||||||
oksload();
 | 
					 | 
				
			||||||
npprovider();
 | 
					 | 
				
			||||||
function climute(){
 | 
					function climute(){
 | 
				
			||||||
	//クライアントミュート
 | 
						//クライアントミュート
 | 
				
			||||||
	var cli = localStorage.getItem("client_mute");
 | 
						var cli = localStorage.getItem("client_mute");
 | 
				
			||||||
@@ -724,3 +724,207 @@ function font(){
 | 
				
			|||||||
function insertFont(name){
 | 
					function insertFont(name){
 | 
				
			||||||
	$("#font").val(name);
 | 
						$("#font").val(name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					$(".color-picker").each(function(i, elem) {
 | 
				
			||||||
 | 
						pickerDefine(i,"fff");
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					function pickerDefine(i,color){
 | 
				
			||||||
 | 
						var pickr = new Pickr({
 | 
				
			||||||
 | 
							el: '#color-picker'+i,
 | 
				
			||||||
 | 
							default: color,
 | 
				
			||||||
 | 
							showAlways: true,
 | 
				
			||||||
 | 
							appendToBody: true,
 | 
				
			||||||
 | 
							closeWithKey: 'Escape',
 | 
				
			||||||
 | 
							comparison: false,
 | 
				
			||||||
 | 
							components: {
 | 
				
			||||||
 | 
								preview: true, // Left side color comparison
 | 
				
			||||||
 | 
								opacity: false, // Opacity slider
 | 
				
			||||||
 | 
								hue: true,     // Hue slider
 | 
				
			||||||
 | 
								interaction: {
 | 
				
			||||||
 | 
									rgba: false, // rgba option (red green blue and alpha)
 | 
				
			||||||
 | 
									input: true, // input / output element
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							strings: {
 | 
				
			||||||
 | 
							   save: 'Save',  // Default for save button
 | 
				
			||||||
 | 
							   clear: 'Clear' // Default for clear button
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						   });
 | 
				
			||||||
 | 
							   pickr.on('change', (...args) => {
 | 
				
			||||||
 | 
								 	var rgb='rgb('+args[0].toRGBA()[0]+','+args[0].toRGBA()[1]+','+args[0].toRGBA()[2]+')';
 | 
				
			||||||
 | 
									$("#color-picker"+i+"_value").val(rgb)
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function customComp(){
 | 
				
			||||||
 | 
						var nameC=$("#custom_name").val();
 | 
				
			||||||
 | 
						if(!nameC){return false;}
 | 
				
			||||||
 | 
						var descC=$("#custom_desc").val();
 | 
				
			||||||
 | 
						var primaryC=$("#color-picker0_value").val();
 | 
				
			||||||
 | 
						if(!primaryC){primaryC="rgb(255,255,255)"}
 | 
				
			||||||
 | 
						var secondaryC=$("#color-picker1_value").val();
 | 
				
			||||||
 | 
						if(!secondaryC){secondaryC="rgb(255,255,255)"}
 | 
				
			||||||
 | 
						var textC=$("#color-picker2_value").val();
 | 
				
			||||||
 | 
						if(!textC){textC="rgb(255,255,255)"}
 | 
				
			||||||
 | 
						var accentC=$("#color-picker3_value").val();
 | 
				
			||||||
 | 
						if(!accentC){accentC="rgb(255,255,255)"}
 | 
				
			||||||
 | 
						var multi = localStorage.getItem("multi");
 | 
				
			||||||
 | 
						var my=JSON.parse(multi)[0].name;
 | 
				
			||||||
 | 
						var id=$("#custom-edit-sel").val();
 | 
				
			||||||
 | 
						if(id=="add_new"){
 | 
				
			||||||
 | 
							id=makeCID();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var json={
 | 
				
			||||||
 | 
							"name": nameC,
 | 
				
			||||||
 | 
							"author": my,
 | 
				
			||||||
 | 
							"desc": descC,
 | 
				
			||||||
 | 
							"base": $("[name=direction]:checked").val(),
 | 
				
			||||||
 | 
							"vars": {
 | 
				
			||||||
 | 
							  "primary": primaryC,
 | 
				
			||||||
 | 
							  "secondary": secondaryC,
 | 
				
			||||||
 | 
							  "text": textC
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"props": {
 | 
				
			||||||
 | 
								"TheDeskAccent": accentC
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							"id": id
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
 | 
						  $("#custom_json").val(JSON.stringify(json));
 | 
				
			||||||
 | 
						  themes();
 | 
				
			||||||
 | 
						  $("#custom_name").val("");
 | 
				
			||||||
 | 
						  $("#custom_desc").val("");
 | 
				
			||||||
 | 
						  $("#dark").prop("checked", true);
 | 
				
			||||||
 | 
						  $("#custom_json").val("");
 | 
				
			||||||
 | 
						  $("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
 | 
				
			||||||
 | 
						  $("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
 | 
				
			||||||
 | 
						  $("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
 | 
				
			||||||
 | 
						  $("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
 | 
				
			||||||
 | 
						  $("#color-picker0_value").val("");
 | 
				
			||||||
 | 
						  $("#color-picker1_value").val("");
 | 
				
			||||||
 | 
						  $("#color-picker2_value").val("");
 | 
				
			||||||
 | 
						  $("#color-picker3_value").val("");
 | 
				
			||||||
 | 
						  pickerDefine(0,"fff");
 | 
				
			||||||
 | 
						  pickerDefine(1,"fff");
 | 
				
			||||||
 | 
						  pickerDefine(2,"fff");
 | 
				
			||||||
 | 
						  pickerDefine(3,"fff");
 | 
				
			||||||
 | 
						  ipc.send('theme-json-create', JSON.stringify(json));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function deleteIt(){
 | 
				
			||||||
 | 
						var id=$("#custom-sel-sel").val();
 | 
				
			||||||
 | 
						$("#custom_name").val("");
 | 
				
			||||||
 | 
						$("#custom_desc").val("");
 | 
				
			||||||
 | 
						$("#dark").prop("checked", true);
 | 
				
			||||||
 | 
						$("#custom_json").val("");
 | 
				
			||||||
 | 
						$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
 | 
				
			||||||
 | 
						$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
 | 
				
			||||||
 | 
						$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
 | 
				
			||||||
 | 
						$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
 | 
				
			||||||
 | 
						$("#color-picker0_value").val("");
 | 
				
			||||||
 | 
						$("#color-picker1_value").val("");
 | 
				
			||||||
 | 
						$("#color-picker2_value").val("");
 | 
				
			||||||
 | 
						$("#color-picker3_value").val("");
 | 
				
			||||||
 | 
						pickerDefine(0,"fff");
 | 
				
			||||||
 | 
						pickerDefine(1,"fff");
 | 
				
			||||||
 | 
						pickerDefine(2,"fff");
 | 
				
			||||||
 | 
						pickerDefine(3,"fff");
 | 
				
			||||||
 | 
						ipc.on('theme-json-delete-complete', function (event, args) {
 | 
				
			||||||
 | 
							ctLoad()
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
						ipc.send('theme-json-delete', id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function ctLoad(){
 | 
				
			||||||
 | 
						ipc.send('theme-json-list', "");
 | 
				
			||||||
 | 
						ipc.on('theme-json-list-response', function (event, args) {
 | 
				
			||||||
 | 
							console.log(args);
 | 
				
			||||||
 | 
							var templete="";
 | 
				
			||||||
 | 
							Object.keys(args).forEach(function(key) {
 | 
				
			||||||
 | 
								var theme = args[key];
 | 
				
			||||||
 | 
								var themeid=theme.id
 | 
				
			||||||
 | 
								templete = templete+'<option value="'+themeid+'">' + theme.name +'</option>';
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
							if(args[0]){
 | 
				
			||||||
 | 
								localStorage.setItem("customtheme-id",args[0].id)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							$("#custom-sel-sel").html(templete);
 | 
				
			||||||
 | 
							templete='<option value="add_new">'+$("#edit-selector").attr("data-add")+'</option>'+templete;
 | 
				
			||||||
 | 
							$("#custom-edit-sel").html(templete);
 | 
				
			||||||
 | 
							$('select').material_select('update');
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function customSel(){
 | 
				
			||||||
 | 
						var id=$("#custom-sel-sel").val();
 | 
				
			||||||
 | 
						localStorage.setItem("customtheme-id",id)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function custom(){
 | 
				
			||||||
 | 
						var id=$("#custom-edit-sel").val();
 | 
				
			||||||
 | 
						if(id=="add_new"){
 | 
				
			||||||
 | 
							$("#custom_name").val("");
 | 
				
			||||||
 | 
							$("#custom_desc").val("");
 | 
				
			||||||
 | 
							$("#dark").prop("checked", true);
 | 
				
			||||||
 | 
							$("#custom_json").val("");
 | 
				
			||||||
 | 
							$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
 | 
				
			||||||
 | 
							$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
 | 
				
			||||||
 | 
							$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
 | 
				
			||||||
 | 
							$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
 | 
				
			||||||
 | 
							$("#color-picker0_value").val("");
 | 
				
			||||||
 | 
							$("#color-picker1_value").val("");
 | 
				
			||||||
 | 
							$("#color-picker2_value").val("");
 | 
				
			||||||
 | 
							$("#color-picker3_value").val("");
 | 
				
			||||||
 | 
							pickerDefine(0,"fff");
 | 
				
			||||||
 | 
							pickerDefine(1,"fff");
 | 
				
			||||||
 | 
							pickerDefine(2,"fff");
 | 
				
			||||||
 | 
							pickerDefine(3,"fff");
 | 
				
			||||||
 | 
							$("#delTheme").addClass("disabled")
 | 
				
			||||||
 | 
						}else{
 | 
				
			||||||
 | 
							$("#delTheme").removeClass("disabled")
 | 
				
			||||||
 | 
							ipc.send('theme-json-request', id);
 | 
				
			||||||
 | 
							ipc.on('theme-json-response', function (event, args) {
 | 
				
			||||||
 | 
								console.log(args);
 | 
				
			||||||
 | 
								$("#custom_name").val(args.name);
 | 
				
			||||||
 | 
								$("#custom_desc").val(args.desc);
 | 
				
			||||||
 | 
								$("#"+args.base).prop("checked", true);
 | 
				
			||||||
 | 
								$("#color-picker0-wrap").html('<div class="color-picker" id="color-picker0"></div>')
 | 
				
			||||||
 | 
								pickerDefine(0,rgbToHex(args.vars.primary))
 | 
				
			||||||
 | 
								$("#color-picker0_value").val(args.vars.primary);
 | 
				
			||||||
 | 
								$("#color-picker1-wrap").html('<div class="color-picker" id="color-picker1"></div>')
 | 
				
			||||||
 | 
								pickerDefine(1,rgbToHex(args.vars.secondary))
 | 
				
			||||||
 | 
								$("#color-picker1_value").val(args.vars.secondary);
 | 
				
			||||||
 | 
								$("#color-picker2-wrap").html('<div class="color-picker" id="color-picker2"></div>')
 | 
				
			||||||
 | 
								$("#color-picker2_value").val(args.vars.text);
 | 
				
			||||||
 | 
								pickerDefine(2,rgbToHex(args.vars.text))
 | 
				
			||||||
 | 
								if(args.props){
 | 
				
			||||||
 | 
									if(args.props.TheDeskAccent){
 | 
				
			||||||
 | 
										var accent=args.props.TheDeskAccent;
 | 
				
			||||||
 | 
									}else{
 | 
				
			||||||
 | 
										var accent=args.vars.secondary;
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}else{
 | 
				
			||||||
 | 
									var accent=args.vars.secondary;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								$("#color-picker3-wrap").html('<div class="color-picker" id="color-picker3"></div>')
 | 
				
			||||||
 | 
								pickerDefine(3,rgbToHex(accent))
 | 
				
			||||||
 | 
								$("#custom_json").val(JSON.stringify(args));
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function customImp(){
 | 
				
			||||||
 | 
						var json=$("#custom_import").val();
 | 
				
			||||||
 | 
						if(JSON5.parse(json)){
 | 
				
			||||||
 | 
							ipc.send('theme-json-create', json);
 | 
				
			||||||
 | 
						}else{
 | 
				
			||||||
 | 
							alert("Error")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ipc.on('theme-json-create-complete', function (event, args) {
 | 
				
			||||||
 | 
						$("#custom_import").val("");
 | 
				
			||||||
 | 
						ctLoad()
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					//最初に読む
 | 
				
			||||||
 | 
					load();
 | 
				
			||||||
 | 
					climute();
 | 
				
			||||||
 | 
					wordmute();
 | 
				
			||||||
 | 
					wordemp();
 | 
				
			||||||
 | 
					checkSpotify();
 | 
				
			||||||
 | 
					voiceSettingLoad();
 | 
				
			||||||
 | 
					oksload();
 | 
				
			||||||
 | 
					npprovider();
 | 
				
			||||||
 | 
					ctLoad()
 | 
				
			||||||
@@ -11,6 +11,7 @@ function themes(theme) {
 | 
				
			|||||||
	$("html").removeClass("greentheme");
 | 
						$("html").removeClass("greentheme");
 | 
				
			||||||
	$("html").removeClass("browntheme");
 | 
						$("html").removeClass("browntheme");
 | 
				
			||||||
	$("html").removeClass("blacktheme");
 | 
						$("html").removeClass("blacktheme");
 | 
				
			||||||
 | 
						$("html").removeClass("customtheme");
 | 
				
			||||||
	$("html").addClass(theme+"theme");
 | 
						$("html").addClass(theme+"theme");
 | 
				
			||||||
	var font = localStorage.getItem("font");
 | 
						var font = localStorage.getItem("font");
 | 
				
			||||||
	if(font){
 | 
						if(font){
 | 
				
			||||||
@@ -18,5 +19,10 @@ function themes(theme) {
 | 
				
			|||||||
	}else{
 | 
						}else{
 | 
				
			||||||
		$("html").css("font-family","");
 | 
							$("html").css("font-family","");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if(theme=="custom"){
 | 
				
			||||||
 | 
							if(localStorage.getItem("customtheme-id")){
 | 
				
			||||||
 | 
								ipc.send('theme-css-request', localStorage.getItem("customtheme-id"));
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
themes();
 | 
					themes();
 | 
				
			||||||
@@ -12,13 +12,13 @@ function profedit() {
 | 
				
			|||||||
	httpreq.open('PATCH', start, true);
 | 
						httpreq.open('PATCH', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify({
 | 
						httpreq.send(JSON.stringify({
 | 
				
			||||||
		display_name: name,
 | 
							display_name: name,
 | 
				
			||||||
		note: des,
 | 
							note: des,
 | 
				
			||||||
	}));
 | 
						}));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			$('#his-data').modal('close');
 | 
								$('#his-data').modal('close');
 | 
				
			||||||
			todc();
 | 
								todc();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -47,10 +47,10 @@ function imgChange(imgfile, target) {
 | 
				
			|||||||
		httpreq.open('PATCH', start, true);
 | 
							httpreq.open('PATCH', start, true);
 | 
				
			||||||
		httpreq.upload.addEventListener("progress", progshow, false);
 | 
							httpreq.upload.addEventListener("progress", progshow, false);
 | 
				
			||||||
		httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
							httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
		httpreq.responseType = 'json';
 | 
							httpreq.responseType = "json";
 | 
				
			||||||
		httpreq.send(fd);
 | 
							httpreq.send(fd);
 | 
				
			||||||
   		httpreq.onreadystatechange = function() {
 | 
					   		httpreq.onreadystatechange = function() {
 | 
				
			||||||
			if (httpreq.readyState == 4) {
 | 
								if (httpreq.readyState === 4) {
 | 
				
			||||||
				var json = httpreq.response;
 | 
									var json = httpreq.response;
 | 
				
			||||||
				console.log(json);
 | 
									console.log(json);
 | 
				
			||||||
				$('#his-data').modal('close');
 | 
									$('#his-data').modal('close');
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ function udgEx(user,acct_id){
 | 
				
			|||||||
			shell.openExternal(url);
 | 
								shell.openExternal(url);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
	return;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
function udg(user, acct_id) {
 | 
					function udg(user, acct_id) {
 | 
				
			||||||
	reset();
 | 
						reset();
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										155
									
								
								app/language.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								app/language.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,155 @@
 | 
				
			|||||||
 | 
					// Create the Application's main menu
 | 
				
			||||||
 | 
					function templete(lang){
 | 
				
			||||||
 | 
					    const electron = require("electron");
 | 
				
			||||||
 | 
					    const app = electron.app;
 | 
				
			||||||
 | 
					    const BrowserWindow = electron.BrowserWindow;
 | 
				
			||||||
 | 
					    const dict={
 | 
				
			||||||
 | 
					        "application":{
 | 
				
			||||||
 | 
					            "ja":"アプリケーション",
 | 
				
			||||||
 | 
					            "en":"Application"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "about":{
 | 
				
			||||||
 | 
					            "ja":"TheDeskについて",
 | 
				
			||||||
 | 
					            "en":"About TheDesk"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "quit":{
 | 
				
			||||||
 | 
					            "ja":"終了",
 | 
				
			||||||
 | 
					            "en":"Quit"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "edit":{
 | 
				
			||||||
 | 
					            "ja":"編集",
 | 
				
			||||||
 | 
					            "en":"Edit"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "undo":{
 | 
				
			||||||
 | 
					            "ja":"元に戻す",
 | 
				
			||||||
 | 
					            "en":"Undo"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "redo":{
 | 
				
			||||||
 | 
					            "ja":"やり直す",
 | 
				
			||||||
 | 
					            "en":"Redo"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "cut":{
 | 
				
			||||||
 | 
					            "ja":"切り取り",
 | 
				
			||||||
 | 
					            "en":"Cut"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "copy":{
 | 
				
			||||||
 | 
					            "ja":"コピー",
 | 
				
			||||||
 | 
					            "en":"Copy"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "paste":{
 | 
				
			||||||
 | 
					            "ja":"貼り付け",
 | 
				
			||||||
 | 
					            "en":"Paste"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "selall":{
 | 
				
			||||||
 | 
					            "ja":"すべて選択",
 | 
				
			||||||
 | 
					            "en":"Select All"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "view":{
 | 
				
			||||||
 | 
					            "ja":"表示",
 | 
				
			||||||
 | 
					            "en":"View"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "reload":{
 | 
				
			||||||
 | 
					            "ja":"再読み込み",
 | 
				
			||||||
 | 
					            "en":"Reload"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "window":{
 | 
				
			||||||
 | 
					            "ja":"ウィンドウ",
 | 
				
			||||||
 | 
					            "en":"Window"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "minimun":{
 | 
				
			||||||
 | 
					            "ja":"最小化",
 | 
				
			||||||
 | 
					            "en":"Minimarize"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "close":{
 | 
				
			||||||
 | 
					            "ja":"閉じる",
 | 
				
			||||||
 | 
					            "en":"Close"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const menu = [{
 | 
				
			||||||
 | 
					        label: dict.application[lang],
 | 
				
			||||||
 | 
					        submenu: [
 | 
				
			||||||
 | 
					            { label: dict.about[lang], click: function() {
 | 
				
			||||||
 | 
					                var ver=app.getVersion()
 | 
				
			||||||
 | 
						            var window = new BrowserWindow({width: 300, height: 460,
 | 
				
			||||||
 | 
								        "transparent": false,    // ウィンドウの背景を透過
 | 
				
			||||||
 | 
								        "frame": false,     // 枠の無いウィンドウ
 | 
				
			||||||
 | 
								        "resizable": false });
 | 
				
			||||||
 | 
						             window.loadURL('file://' + __dirname + '/about.html?ver='+ver);
 | 
				
			||||||
 | 
					             } },
 | 
				
			||||||
 | 
					            { type: "separator" },
 | 
				
			||||||
 | 
					            { label: dict.quit[lang], accelerator: "Command+Q", click: function() { app.quit(); }}
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        ]}, {
 | 
				
			||||||
 | 
					        label: dict.edit[lang],
 | 
				
			||||||
 | 
					        submenu: [
 | 
				
			||||||
 | 
					            { label: dict.undo[lang], accelerator: "CmdOrCtrl+Z", selector: "undo:" },
 | 
				
			||||||
 | 
					            { label: dict.redo[lang], accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
 | 
				
			||||||
 | 
					            { type: "separator" },
 | 
				
			||||||
 | 
					            { label: dict.cut[lang], accelerator: "CmdOrCtrl+X", selector: "cut:" },
 | 
				
			||||||
 | 
					            { label: dict.copy[lang], accelerator: "CmdOrCtrl+C", selector: "copy:" },
 | 
				
			||||||
 | 
					            { label: dict.paste[lang], accelerator: "CmdOrCtrl+V", selector: "paste:" },
 | 
				
			||||||
 | 
					            { label: dict.selall[lang], accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
 | 
				
			||||||
 | 
					        ]},{
 | 
				
			||||||
 | 
					        label: dict.view[lang],
 | 
				
			||||||
 | 
					        submenu: [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                label: 'Toggle Developer Tools',
 | 
				
			||||||
 | 
					                accelerator: 'Alt+Command+I',
 | 
				
			||||||
 | 
					                click: function() { mainWindow.toggleDevTools(); }
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            label: dict.reload[lang],
 | 
				
			||||||
 | 
					            accelerator: 'CmdOrCtrl+R',
 | 
				
			||||||
 | 
					            click: function() { mainWindow.webContents.send('reload', " "); }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					        label: dict.window[lang],
 | 
				
			||||||
 | 
					        role: 'window',
 | 
				
			||||||
 | 
					        submenu: [
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label: dict.minimun[lang],
 | 
				
			||||||
 | 
					                accelerator: 'CmdOrCtrl+M',
 | 
				
			||||||
 | 
					                role: 'minimize'
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label: dict.close[lang],
 | 
				
			||||||
 | 
					                accelerator: 'CmdOrCtrl+W',
 | 
				
			||||||
 | 
					                role: 'close'
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    return menu;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function delsel(lang){
 | 
				
			||||||
 | 
					    const dict={
 | 
				
			||||||
 | 
					        "delete":{
 | 
				
			||||||
 | 
					            "ja":"カラム削除",
 | 
				
			||||||
 | 
					            "en":"Delete this column"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "mess":{
 | 
				
			||||||
 | 
					            "ja":"カラムを削除しますか?(すべてのカラムのリンク解析がOFFになります。)",
 | 
				
			||||||
 | 
					            "en":"Delete this column(URL analyzes of all windows will be disabled.)"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "yes":{
 | 
				
			||||||
 | 
					            "ja":"はい",
 | 
				
			||||||
 | 
					            "en":"Yes"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "no":{
 | 
				
			||||||
 | 
					            "ja":"いいえ",
 | 
				
			||||||
 | 
					            "en":"No"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const options = {
 | 
				
			||||||
 | 
					        type: 'info',
 | 
				
			||||||
 | 
					        title: dict.delete[lang],
 | 
				
			||||||
 | 
					        message: dict.mess[lang],
 | 
				
			||||||
 | 
					        buttons: [dict.no[lang], dict.yes[lang]]
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return options;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.template = templete;
 | 
				
			||||||
 | 
					exports.delsel = delsel;
 | 
				
			||||||
							
								
								
									
										183
									
								
								app/main.js
									
									
									
									
									
								
							
							
						
						
									
										183
									
								
								app/main.js
									
									
									
									
									
								
							@@ -9,9 +9,11 @@ const shell = electron.shell;
 | 
				
			|||||||
const os = require('os')
 | 
					const os = require('os')
 | 
				
			||||||
const path = require('path')
 | 
					const path = require('path')
 | 
				
			||||||
const fm = require('font-manager');
 | 
					const fm = require('font-manager');
 | 
				
			||||||
 | 
					const language = require('./language.js');
 | 
				
			||||||
const Menu=electron.Menu
 | 
					const Menu=electron.Menu
 | 
				
			||||||
var updatewin=null;
 | 
					var updatewin=null;
 | 
				
			||||||
const join = require('path').join;
 | 
					const join = require('path').join;
 | 
				
			||||||
 | 
					var JSON5 = require('json5');
 | 
				
			||||||
// アプリケーションをコントロールするモジュール
 | 
					// アプリケーションをコントロールするモジュール
 | 
				
			||||||
const app = electron.app;
 | 
					const app = electron.app;
 | 
				
			||||||
// ウィンドウを作成するモジュール
 | 
					// ウィンドウを作成するモジュール
 | 
				
			||||||
@@ -24,6 +26,8 @@ let mainWindow;
 | 
				
			|||||||
var info_path = join(app.getPath("userData"), "window-size.json");
 | 
					var info_path = join(app.getPath("userData"), "window-size.json");
 | 
				
			||||||
var max_info_path = join(app.getPath("userData"), "max-window-size.json");
 | 
					var max_info_path = join(app.getPath("userData"), "max-window-size.json");
 | 
				
			||||||
var lang_path=join(app.getPath("userData"), "language");
 | 
					var lang_path=join(app.getPath("userData"), "language");
 | 
				
			||||||
 | 
					var customcss=join(app.getPath("userData"), "custom.css");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var tmp_img = join(app.getPath("userData"), "tmp.png");
 | 
					var tmp_img = join(app.getPath("userData"), "tmp.png");
 | 
				
			||||||
var window_size;
 | 
					var window_size;
 | 
				
			||||||
try {
 | 
					try {
 | 
				
			||||||
@@ -43,9 +47,21 @@ try {
 | 
				
			|||||||
		height: "string",
 | 
							height: "string",
 | 
				
			||||||
		x: "string",
 | 
							x: "string",
 | 
				
			||||||
		y: "string"
 | 
							y: "string"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}; // デフォルトバリュー
 | 
						}; // デフォルトバリュー
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					try {
 | 
				
			||||||
 | 
						var lang = fs.readFileSync(lang_path, 'utf8');
 | 
				
			||||||
 | 
					} catch (e) {
 | 
				
			||||||
 | 
						var lang=app.getLocale();
 | 
				
			||||||
 | 
						if(~lang.indexOf("ja")){
 | 
				
			||||||
 | 
							lang="ja";
 | 
				
			||||||
 | 
						}else{
 | 
				
			||||||
 | 
							lang="en";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						fs.writeFileSync(lang_path,lang);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					console.log("launch:"+lang);
 | 
				
			||||||
// 全てのウィンドウが閉じたら終了
 | 
					// 全てのウィンドウが閉じたら終了
 | 
				
			||||||
app.on('window-all-closed', function() {
 | 
					app.on('window-all-closed', function() {
 | 
				
			||||||
	if (process.platform != 'darwin') {
 | 
						if (process.platform != 'darwin') {
 | 
				
			||||||
@@ -64,17 +80,6 @@ function createWindow() {
 | 
				
			|||||||
		var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
 | 
							var arg={width:window_size.width,height:window_size.height,x:window_size.x,y:window_size.y,simpleFullscreen:true}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	mainWindow = new BrowserWindow(arg);
 | 
						mainWindow = new BrowserWindow(arg);
 | 
				
			||||||
	try {
 | 
					 | 
				
			||||||
		var lang = fs.readFileSync(lang_path, 'utf8');
 | 
					 | 
				
			||||||
	} catch (e) {
 | 
					 | 
				
			||||||
		var lang=app.getLocale();
 | 
					 | 
				
			||||||
		if(~lang.indexOf("ja")){
 | 
					 | 
				
			||||||
			lang="ja";
 | 
					 | 
				
			||||||
		}else{
 | 
					 | 
				
			||||||
			lang="en";
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		fs.writeFileSync(lang_path,lang);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	electron.session.defaultSession.clearCache(() => {})
 | 
						electron.session.defaultSession.clearCache(() => {})
 | 
				
			||||||
	if(process.argv){
 | 
						if(process.argv){
 | 
				
			||||||
		if(process.argv[1]){
 | 
							if(process.argv[1]){
 | 
				
			||||||
@@ -119,60 +124,11 @@ function createWindow() {
 | 
				
			|||||||
	mainWindow.on('maximize', function() {
 | 
						mainWindow.on('maximize', function() {
 | 
				
			||||||
		fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()));
 | 
							fs.writeFileSync(max_info_path, JSON.stringify(mainWindow.getBounds()));
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
	  // Create the Application's main menu
 | 
					 | 
				
			||||||
	  var template = [{
 | 
					 | 
				
			||||||
        label: "アプリケーション",
 | 
					 | 
				
			||||||
        submenu: [
 | 
					 | 
				
			||||||
			{ label: "TheDeskについて", click: function() { about(); } },
 | 
					 | 
				
			||||||
            { type: "separator" },
 | 
					 | 
				
			||||||
			{ label: "終了", accelerator: "Command+Q", click: function() { app.quit(); }}
 | 
					 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
        ]}, {
 | 
					 | 
				
			||||||
        label: "編集",
 | 
					 | 
				
			||||||
        submenu: [
 | 
					 | 
				
			||||||
            { label: "元に戻す", accelerator: "CmdOrCtrl+Z", selector: "undo:" },
 | 
					 | 
				
			||||||
            { label: "やり直し", accelerator: "Shift+CmdOrCtrl+Z", selector: "redo:" },
 | 
					 | 
				
			||||||
            { type: "separator" },
 | 
					 | 
				
			||||||
            { label: "切り取り", accelerator: "CmdOrCtrl+X", selector: "cut:" },
 | 
					 | 
				
			||||||
            { label: "コピー", accelerator: "CmdOrCtrl+C", selector: "copy:" },
 | 
					 | 
				
			||||||
            { label: "貼り付け", accelerator: "CmdOrCtrl+V", selector: "paste:" },
 | 
					 | 
				
			||||||
            { label: "すべて選択", accelerator: "CmdOrCtrl+A", selector: "selectAll:" }
 | 
					 | 
				
			||||||
		]},{
 | 
					 | 
				
			||||||
		label: "表示",
 | 
					 | 
				
			||||||
		submenu: [
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				label: 'Toggle Developer Tools',
 | 
					 | 
				
			||||||
				accelerator: 'Alt+Command+I',
 | 
					 | 
				
			||||||
				click: function() { mainWindow.toggleDevTools(); }
 | 
					 | 
				
			||||||
			  },
 | 
					 | 
				
			||||||
          {
 | 
					 | 
				
			||||||
            label: '再読み込み',
 | 
					 | 
				
			||||||
            accelerator: 'CmdOrCtrl+R',
 | 
					 | 
				
			||||||
            click: function() { mainWindow.webContents.send('reload', " "); }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
		{
 | 
					 | 
				
			||||||
		label: 'ウィンドウ',
 | 
					 | 
				
			||||||
		role: 'window',
 | 
					 | 
				
			||||||
		submenu: [
 | 
					 | 
				
			||||||
			  {
 | 
					 | 
				
			||||||
				label: '最小化',
 | 
					 | 
				
			||||||
				accelerator: 'CmdOrCtrl+M',
 | 
					 | 
				
			||||||
				role: 'minimize'
 | 
					 | 
				
			||||||
			  },
 | 
					 | 
				
			||||||
			  {
 | 
					 | 
				
			||||||
				label: '閉じる',
 | 
					 | 
				
			||||||
				accelerator: 'CmdOrCtrl+W',
 | 
					 | 
				
			||||||
				role: 'close'
 | 
					 | 
				
			||||||
			  },
 | 
					 | 
				
			||||||
			]
 | 
					 | 
				
			||||||
		  }
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
	var platform=process.platform;
 | 
						var platform=process.platform;
 | 
				
			||||||
	var bit=process.arch;
 | 
						var bit=process.arch;
 | 
				
			||||||
	if(platform=="darwin"){
 | 
						if(platform=="darwin"){
 | 
				
			||||||
		Menu.setApplicationMenu(Menu.buildFromTemplate(template));
 | 
							Menu.setApplicationMenu(Menu.buildFromTemplate(language.template(lang)));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
// Electronの初期化完了後に実行
 | 
					// Electronの初期化完了後に実行
 | 
				
			||||||
@@ -211,9 +167,99 @@ ipc.on('native-notf', function(e, args) {
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
//言語
 | 
					//言語
 | 
				
			||||||
ipc.on('lang', function(e, arg) {
 | 
					ipc.on('lang', function(e, arg) {
 | 
				
			||||||
 | 
						console.log("set:"+arg);
 | 
				
			||||||
	fs.writeFileSync(lang_path,arg);
 | 
						fs.writeFileSync(lang_path,arg);
 | 
				
			||||||
	mainWindow.webContents.send('langres', "");
 | 
						mainWindow.webContents.send('langres', "");
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					//CSS
 | 
				
			||||||
 | 
					ipc.on('custom-css-create', function(e, arg) {
 | 
				
			||||||
 | 
						fs.writeFileSync(customcss,arg);
 | 
				
			||||||
 | 
						mainWindow.webContents.send('custom-css-create-complete', "");
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('custom-css-request', function(e, arg) {
 | 
				
			||||||
 | 
						try {
 | 
				
			||||||
 | 
							var css = fs.readFileSync(customcss, 'utf8');
 | 
				
			||||||
 | 
						} catch (e) {
 | 
				
			||||||
 | 
							var css="";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						mainWindow.webContents.send('custom-css-response', css);
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-json-create', function(e, arg) {
 | 
				
			||||||
 | 
						var themecss=join(app.getPath("userData"), JSON5.parse(arg)["id"]+".thedesktheme");
 | 
				
			||||||
 | 
						fs.writeFileSync(themecss,JSON.stringify(JSON5.parse(arg)));
 | 
				
			||||||
 | 
						if(JSON5.parse(arg)["id"]){
 | 
				
			||||||
 | 
							mainWindow.webContents.send('theme-json-create-complete', "");
 | 
				
			||||||
 | 
						}else{
 | 
				
			||||||
 | 
							mainWindow.webContents.send('theme-json-create-complete', "error");	
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-json-delete', function(e, arg) {
 | 
				
			||||||
 | 
						var themecss=join(app.getPath("userData"), arg+".thedesktheme");
 | 
				
			||||||
 | 
						console.log(themecss);
 | 
				
			||||||
 | 
						fs.unlink(themecss, function (err) {
 | 
				
			||||||
 | 
							mainWindow.webContents.send('theme-json-delete-complete', "");
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-json-request', function(e, arg) {
 | 
				
			||||||
 | 
						var themecss=join(app.getPath("userData"), arg+".thedesktheme");
 | 
				
			||||||
 | 
						var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
 | 
				
			||||||
 | 
						mainWindow.webContents.send('theme-json-response', json);
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-css-request', function(e, arg) {
 | 
				
			||||||
 | 
						var themecss=join(app.getPath("userData"), arg+".thedesktheme");
 | 
				
			||||||
 | 
						try {
 | 
				
			||||||
 | 
							var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							var primary=json.vars.primary;
 | 
				
			||||||
 | 
							var secondary=json.vars.secondary;
 | 
				
			||||||
 | 
							var text=json.vars.text;
 | 
				
			||||||
 | 
							if(json.base=="light"){
 | 
				
			||||||
 | 
								var drag="rgba(255, 255, 255, 0.8)";
 | 
				
			||||||
 | 
								var beforehover="#757575";
 | 
				
			||||||
 | 
							}else{
 | 
				
			||||||
 | 
								var drag="rgba(0, 0, 0, 0.8)";
 | 
				
			||||||
 | 
								var beforehover="#9e9e9e";
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if(json.props){
 | 
				
			||||||
 | 
								if(json.props.TheDeskAccent){
 | 
				
			||||||
 | 
									var emphasized=json.props.TheDeskAccent
 | 
				
			||||||
 | 
								}else{
 | 
				
			||||||
 | 
									var emphasized=secondary;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}else{
 | 
				
			||||||
 | 
								var emphasized=primary;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							var css=".customtheme {--bg:"+secondary+";--drag:"+drag+";"+
 | 
				
			||||||
 | 
								"--color:"+text+";--beforehover:"+beforehover+";--modal:"+secondary+";--subcolor:"+primary+";--box:"+primary+";--sidebar:"+primary+";--shared:"+emphasized+";"+
 | 
				
			||||||
 | 
								"--notfbox:"+secondary+";--emphasized:"+primary+";--his-data:"+secondary+
 | 
				
			||||||
 | 
								+"--active:"+primary+";--postbox:"+primary+";--modalfooter:"+primary+";}.blacktheme #imagemodal{background: url(\"../img/pixel.svg\");}";
 | 
				
			||||||
 | 
								mainWindow.webContents.send('theme-css-response', css);
 | 
				
			||||||
 | 
						} catch (e) {
 | 
				
			||||||
 | 
							var css="";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					ipc.on('theme-json-list', function(e, arg) {
 | 
				
			||||||
 | 
						fs.readdir(app.getPath("userData"), function(err, files){
 | 
				
			||||||
 | 
							if (err) throw err;
 | 
				
			||||||
 | 
							var fileList = files.filter(function(file){
 | 
				
			||||||
 | 
								var tfile=join(app.getPath("userData"), file);
 | 
				
			||||||
 | 
								return fs.statSync(tfile).isFile() && /.*\.thedesktheme$/.test(tfile); //絞り込み
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							var themes=[];
 | 
				
			||||||
 | 
							for(var i=0;i<fileList.length;i++){
 | 
				
			||||||
 | 
								var themecss=join(app.getPath("userData"), fileList[i]);
 | 
				
			||||||
 | 
								var json = JSON.parse(fs.readFileSync(themecss, 'utf8'));
 | 
				
			||||||
 | 
								themes.push({
 | 
				
			||||||
 | 
									name:json.name,
 | 
				
			||||||
 | 
									id:json.id
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							mainWindow.webContents.send('theme-json-list-response', themes);
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ipc.on('update', function(e, x, y) {
 | 
					ipc.on('update', function(e, x, y) {
 | 
				
			||||||
	var platform=process.platform;
 | 
						var platform=process.platform;
 | 
				
			||||||
@@ -224,7 +270,8 @@ ipc.on('update', function(e, x, y) {
 | 
				
			|||||||
		height: 400,
 | 
							height: 400,
 | 
				
			||||||
		"transparent": false, // ウィンドウの背景を透過
 | 
							"transparent": false, // ウィンドウの背景を透過
 | 
				
			||||||
		"frame": false, // 枠の無いウィンドウ
 | 
							"frame": false, // 枠の無いウィンドウ
 | 
				
			||||||
		"resizable": false
 | 
							"resizable": false,
 | 
				
			||||||
 | 
							"modal":true
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
	var lang = fs.readFileSync(lang_path, 'utf8');
 | 
						var lang = fs.readFileSync(lang_path, 'utf8');
 | 
				
			||||||
	updatewin.loadURL('file://' + __dirname + '/view/'+lang+'/update.html');
 | 
						updatewin.loadURL('file://' + __dirname + '/view/'+lang+'/update.html');
 | 
				
			||||||
@@ -455,12 +502,8 @@ ipc.on('file-select', (e, args) => {
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ipc.on('column-del', (e, args) => {
 | 
					ipc.on('column-del', (e, args) => {
 | 
				
			||||||
const options = {
 | 
						console.log(lang);
 | 
				
			||||||
    type: 'info',
 | 
						var options=language.delsel(lang)
 | 
				
			||||||
    title: 'カラム削除',
 | 
					 | 
				
			||||||
    message: "カラムを削除しますか?(すべてのカラムのリンク解析がOFFになります。)",
 | 
					 | 
				
			||||||
    buttons: ['いいえ', 'はい']
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  dialog.showMessageBox(options, function(index) {
 | 
					  dialog.showMessageBox(options, function(index) {
 | 
				
			||||||
    mainWindow.webContents.send('column-del-reply', index);
 | 
					    mainWindow.webContents.send('column-del-reply', index);
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
@@ -505,7 +548,7 @@ ipc.on('nano', function (e, x, y) {
 | 
				
			|||||||
			buttons: ['拒否', '許可','永続的に許可']
 | 
								buttons: ['拒否', '許可','永続的に許可']
 | 
				
			||||||
		  }
 | 
							  }
 | 
				
			||||||
		  dialog.showMessageBox(options, function(index) {
 | 
							  dialog.showMessageBox(options, function(index) {
 | 
				
			||||||
			if(index==2){
 | 
								if(index===2){
 | 
				
			||||||
				mainWindow.webContents.send('adobeagree', "true");
 | 
									mainWindow.webContents.send('adobeagree', "true");
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if(index>0){
 | 
								if(index>0){
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -178,10 +178,10 @@ function post(){
 | 
				
			|||||||
	httpreq.open('POST', start, true);
 | 
						httpreq.open('POST', start, true);
 | 
				
			||||||
	httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
						httpreq.setRequestHeader('Content-Type', 'application/json');
 | 
				
			||||||
	httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
						httpreq.setRequestHeader('Authorization', 'Bearer ' + at);
 | 
				
			||||||
	httpreq.responseType = 'json';
 | 
						httpreq.responseType = "json";
 | 
				
			||||||
	httpreq.send(JSON.stringify(toot));
 | 
						httpreq.send(JSON.stringify(toot));
 | 
				
			||||||
    httpreq.onreadystatechange = function() {
 | 
					    httpreq.onreadystatechange = function() {
 | 
				
			||||||
		if (httpreq.readyState == 4) {
 | 
							if (httpreq.readyState === 4) {
 | 
				
			||||||
			$("#textarea").val("");
 | 
								$("#textarea").val("");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								app/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										21
									
								
								app/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "thedesk",
 | 
					  "name": "thedesk",
 | 
				
			||||||
  "version": "17.0.2",
 | 
					  "version": "17.2.0",
 | 
				
			||||||
  "lockfileVersion": 1,
 | 
					  "lockfileVersion": 1,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
@@ -1655,6 +1655,21 @@
 | 
				
			|||||||
      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
 | 
					      "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "json5": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "minimist": "^1.2.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "minimist": {
 | 
				
			||||||
 | 
					          "version": "1.2.0",
 | 
				
			||||||
 | 
					          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
 | 
				
			||||||
 | 
					          "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "jsonfile": {
 | 
					    "jsonfile": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
 | 
				
			||||||
@@ -1947,7 +1962,8 @@
 | 
				
			|||||||
    "node-addon-api": {
 | 
					    "node-addon-api": {
 | 
				
			||||||
      "version": "1.6.2",
 | 
					      "version": "1.6.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA=="
 | 
					      "integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==",
 | 
				
			||||||
 | 
					      "optional": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node-gyp": {
 | 
					    "node-gyp": {
 | 
				
			||||||
      "version": "3.8.0",
 | 
					      "version": "3.8.0",
 | 
				
			||||||
@@ -2119,6 +2135,7 @@
 | 
				
			|||||||
      "version": "0.1.3",
 | 
					      "version": "0.1.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/nowplaying-node/-/nowplaying-node-0.1.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/nowplaying-node/-/nowplaying-node-0.1.3.tgz",
 | 
				
			||||||
      "integrity": "sha512-nEvuw93xmgZS7X1XqUaLJXhd4iB54xjTOnYuEEoPMBHHs3QWGECNKvnD0uDBCe269sUK8Z5InX5rPjzf3vRVrw==",
 | 
					      "integrity": "sha512-nEvuw93xmgZS7X1XqUaLJXhd4iB54xjTOnYuEEoPMBHHs3QWGECNKvnD0uDBCe269sUK8Z5InX5rPjzf3vRVrw==",
 | 
				
			||||||
 | 
					      "optional": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "@types/node": "^10.1.2",
 | 
					        "@types/node": "^10.1.2",
 | 
				
			||||||
        "node-addon-api": "^1.2.0",
 | 
					        "node-addon-api": "^1.2.0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "thedesk",
 | 
					  "name": "thedesk",
 | 
				
			||||||
  "version": "17.1.1",
 | 
					  "version": "17.2.0",
 | 
				
			||||||
  "description": "TheDesk is a Mastodon client for PC.",
 | 
					  "description": "TheDesk is a Mastodon client for PC.",
 | 
				
			||||||
  "main": "main.js",
 | 
					  "main": "main.js",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
@@ -37,6 +37,7 @@
 | 
				
			|||||||
    "electron-dl": "^1.11.0",
 | 
					    "electron-dl": "^1.11.0",
 | 
				
			||||||
    "font-manager": "^0.3.0",
 | 
					    "font-manager": "^0.3.0",
 | 
				
			||||||
    "jimp": "^0.2.28",
 | 
					    "jimp": "^0.2.28",
 | 
				
			||||||
 | 
					    "json5": "^2.1.0",
 | 
				
			||||||
    "node-notifier": "^5.2.1",
 | 
					    "node-notifier": "^5.2.1",
 | 
				
			||||||
    "sumchecker": "^2.0.2"
 | 
					    "sumchecker": "^2.0.2"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
<script type="text/javascript" src="../../js/common/modal.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 type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
var ver="Miria (17.1.1)";
 | 
					var ver="Miria (17.2.0)";
 | 
				
			||||||
//betaを入れるとバージョンチェックしない
 | 
					//betaを入れるとバージョンチェックしない
 | 
				
			||||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
					//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
				
			||||||
//var ver="beta";
 | 
					//var ver="beta";
 | 
				
			||||||
@@ -582,17 +582,18 @@ var tlid=0;
 | 
				
			|||||||
		<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
							<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
				
			||||||
		<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
							<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
			<div id="release-Miria_17-1-0" class="release-do" style="display:none; ">
 | 
								<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
 | 
				
			||||||
					<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
										<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
				
			||||||
					<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
										<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
				
			||||||
					Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
										Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
				
			||||||
					困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
										困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
				
			||||||
					<h5>Release Note Miria (17.1.0)</h5>
 | 
										<h5>Release Note Miria (17.2.0)</h5>
 | 
				
			||||||
					トゥートボックスがフロートタイプに。左下、右下以外にも自由においてください。<br>
 | 
										カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
 | 
				
			||||||
					いろいろとアニメーション入れた(硬派な方は設定「タイムラインの設定」からオフに)<br>
 | 
										<a href="https://thedesk.top/mias.html">注意点</a><br>
 | 
				
			||||||
					アンケートができるように(OK:Mastodon (2.8~)/WIP: votedon./ NG: ニコフレ)<br>
 | 
										Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
 | 
				
			||||||
					フォント選択機能が復活<br>
 | 
										日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
 | 
				
			||||||
					WindowsからiTunesやAIMP、その他CAD系のNowPlayingができるように。要プラグインのソフトもある。<br>
 | 
										
 | 
				
			||||||
 | 
										<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<br><br>
 | 
								<br><br>
 | 
				
			||||||
			<h3>Support TheDesk!</h3>
 | 
								<h3>Support TheDesk!</h3>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,16 +12,20 @@
 | 
				
			|||||||
	<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
						<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
				
			||||||
	<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
 | 
						<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
						<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
				
			||||||
	<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
						<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
 | 
						<style>input{max-height:50px!important} .pcr-result{height:1rem !important;}</style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body id="mainView" style="overflow-y:scroll">
 | 
					<body id="mainView" style="overflow-y:scroll">
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
 | 
					<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/platform/first.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
					<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.en.js"></script>
 | 
				
			||||||
 | 
					<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h4>Preferences</h4>
 | 
					<h4>Preferences</h4>
 | 
				
			||||||
<ul class="collapsible" data-collapsible="accordion">
 | 
					<ul class="collapsible" data-collapsible="accordion">
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
@@ -30,21 +34,11 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="collapsible-body">
 | 
						<div class="collapsible-body">
 | 
				
			||||||
		<h5>Languages</h5>
 | 
							<h5>Languages</h5>
 | 
				
			||||||
		<a href="../ja/setting.html">日本語(Japanese)</a>/<a href="../en/setting.html">English</a>/<a href="../ps/setting.html">Crowdin web translate</a>/
 | 
							To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
 | 
				
			||||||
 | 
							<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
 | 
				
			||||||
		<h5>Import and export of preferences</h5>
 | 
							<h5>Import and export of preferences</h5>
 | 
				
			||||||
		<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">Export</button>
 | 
							<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">Export</button>
 | 
				
			||||||
		<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">Import</button>
 | 
							<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">Import</button>
 | 
				
			||||||
		<h5>Themes</h5>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
					 | 
				
			||||||
		<label for="black">Black</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
					 | 
				
			||||||
		<label for="white">White</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
					 | 
				
			||||||
		<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
					 | 
				
			||||||
		<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
					 | 
				
			||||||
		<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
					 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>Popup notification(on Windows)</h5>Hide to set "0"
 | 
							<h5>Popup notification(on Windows)</h5>Hide to set "0"
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
@@ -88,6 +82,72 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
 | 
						<div class="collapsible-header">
 | 
				
			||||||
 | 
								<i class="material-icons">color_lens</i>Themes
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="collapsible-body">
 | 
				
			||||||
 | 
							<h4>Select theme</h4>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
				
			||||||
 | 
							<label for="black">Black</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
				
			||||||
 | 
							<label for="white">White</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
				
			||||||
 | 
							<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
				
			||||||
 | 
							<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
				
			||||||
 | 
							<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
 | 
				
			||||||
 | 
							<label for="custom">Custom</label>
 | 
				
			||||||
 | 
							<div style="width:300px" id="sel-selector">
 | 
				
			||||||
 | 
								<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h4>Edit and add custom themes</h4>
 | 
				
			||||||
 | 
							<div style="width:300px" id="edit-selector" data-add="Add new">
 | 
				
			||||||
 | 
								<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
 | 
				
			||||||
 | 
									<option value="add_new">Add new</option>
 | 
				
			||||||
 | 
								</select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h5>Name</h5>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_name" placeholder="Name...">
 | 
				
			||||||
 | 
							<h5>About this theme</h5>
 | 
				
			||||||
 | 
							<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" placeholder="About this theme..."></textarea></div>
 | 
				
			||||||
 | 
							<h5>Color scheme</h5>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
 | 
				
			||||||
 | 
							<label for="dark">Dark</label>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="light" value="light" />
 | 
				
			||||||
 | 
							<label for="light">Light</label>
 | 
				
			||||||
 | 
							<div id="pickers">
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Primary</h5>Background of components
 | 
				
			||||||
 | 
								<div id="color-picker0-wrap"><div class="color-picker" id="color-picker0"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker0_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Secondary</h5>Background color
 | 
				
			||||||
 | 
								<div id="color-picker1-wrap"><div class="color-picker" id="color-picker1"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker1_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Texts</h5>Text color
 | 
				
			||||||
 | 
								<div id="color-picker2-wrap"><div class="color-picker" id="color-picker2"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker2_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Accent</h5>Background of boosts
 | 
				
			||||||
 | 
								<div id="color-picker3-wrap"><div class="color-picker" id="color-picker3"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker3_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<button class="btn-large waves-effect" onclick="customComp()">Change</button> <button class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">Delete</button><br><br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_json" class="materialize-textarea" placeholder="JSON style" readonly><br>
 | 
				
			||||||
 | 
							Share this code with other TheDesk. Do not share this code with MiAS.
 | 
				
			||||||
 | 
							<h4>Import of custom themes</h4>
 | 
				
			||||||
 | 
							Get more themes on <a href="https://assets.msky.cafe/" target="_blank">MiAS</a><br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_import" class="materialize-textarea" placeholder="JSON/JSON5 style">
 | 
				
			||||||
 | 
							<button class="btn waves-effect" onclick="customImp()">Import</button><br>
 | 
				
			||||||
 | 
						</li>
 | 
				
			||||||
 | 
						<li>
 | 
				
			||||||
	<div class="collapsible-header">
 | 
						<div class="collapsible-header">
 | 
				
			||||||
			<i class="material-icons">reorder</i>Timeline Preferences
 | 
								<i class="material-icons">reorder</i>Timeline Preferences
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
@@ -322,7 +382,7 @@
 | 
				
			|||||||
			<i class="fa fa-spotify"></i>Spotify and NowPlaying Preferences
 | 
								<i class="fa fa-spotify"></i>Spotify and NowPlaying Preferences
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="collapsible-body">
 | 
							<div class="collapsible-body">
 | 
				
			||||||
			<!-->h5>NowPlaying Provider(Windows)</h5>
 | 
								<h5>NowPlaying Provider(Windows)</h5>
 | 
				
			||||||
			macOS and Linux are not supported. AIMP and iTunes were checked by developer. <br>CAD:foobar2000, MusicBee,J. River Media Center, Media Jukebox<br>WLM:Last.fm Client, TTPlayer, OpenPandora, Zune.<br> For foobar2000, <a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a> is required. And MusicBee requires CAD.<br>
 | 
								macOS and Linux are not supported. AIMP and iTunes were checked by developer. <br>CAD:foobar2000, MusicBee,J. River Media Center, Media Jukebox<br>WLM:Last.fm Client, TTPlayer, OpenPandora, Zune.<br> For foobar2000, <a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a> is required. And MusicBee requires CAD.<br>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
				
			||||||
			<label for="aimp">AIMP</label>
 | 
								<label for="aimp">AIMP</label>
 | 
				
			||||||
@@ -337,7 +397,7 @@
 | 
				
			|||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
				
			||||||
			<label for="wlm">WLM</label>
 | 
								<label for="wlm">WLM</label>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
				
			||||||
			<label for="cad">CAD</label><br><br-->
 | 
								<label for="cad">CAD</label><br><br>
 | 
				
			||||||
			Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
 | 
								Click <i class="material-icons" style="font-size:24px;">music_note</i>icon to NowPlaying<br>
 | 
				
			||||||
			<h5>Account Connection</h5>
 | 
								<h5>Account Connection</h5>
 | 
				
			||||||
			TheDesk save your data on thedesk.top server.<br>
 | 
								TheDesk save your data on thedesk.top server.<br>
 | 
				
			||||||
@@ -443,6 +503,7 @@ TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のため
 | 
				
			|||||||
<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
				
			||||||
 | 
					<script type="text/javascript" src="../../js/platform/pickr.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
				
			||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
<script type="text/javascript" src="../../js/common/modal.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 type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
var ver="Miria (17.1.1)";
 | 
					var ver="Miria (17.2.0)";
 | 
				
			||||||
//betaを入れるとバージョンチェックしない
 | 
					//betaを入れるとバージョンチェックしない
 | 
				
			||||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
					//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
				
			||||||
//var ver="beta";
 | 
					//var ver="beta";
 | 
				
			||||||
@@ -582,17 +582,18 @@ var tlid=0;
 | 
				
			|||||||
		<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
							<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
				
			||||||
		<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
							<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
			<div id="release-Miria_17-1-0" class="release-do" style="display:none; ">
 | 
								<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
 | 
				
			||||||
					<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
										<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
				
			||||||
					<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
										<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
				
			||||||
					Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
										Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
				
			||||||
					困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
										困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
				
			||||||
					<h5>Release Note Miria (17.1.0)</h5>
 | 
										<h5>Release Note Miria (17.2.0)</h5>
 | 
				
			||||||
					トゥートボックスがフロートタイプに。左下、右下以外にも自由においてください。<br>
 | 
										カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
 | 
				
			||||||
					いろいろとアニメーション入れた(硬派な方は設定「タイムラインの設定」からオフに)<br>
 | 
										<a href="https://thedesk.top/mias.html">注意点</a><br>
 | 
				
			||||||
					アンケートができるように(OK:Mastodon (2.8~)/WIP: votedon./ NG: ニコフレ)<br>
 | 
										Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
 | 
				
			||||||
					フォント選択機能が復活<br>
 | 
										日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
 | 
				
			||||||
					WindowsからiTunesやAIMP、その他CAD系のNowPlayingができるように。要プラグインのソフトもある。<br>
 | 
										
 | 
				
			||||||
 | 
										<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<br><br>
 | 
								<br><br>
 | 
				
			||||||
			<h3>ご支援ください。</h3>
 | 
								<h3>ご支援ください。</h3>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,16 +12,20 @@
 | 
				
			|||||||
	<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
						<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
				
			||||||
	<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
 | 
						<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
						<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
				
			||||||
	<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
						<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
 | 
						<style>input{max-height:50px!important} .pcr-result{height:1rem !important;}</style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body id="mainView" style="overflow-y:scroll">
 | 
					<body id="mainView" style="overflow-y:scroll">
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
 | 
					<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/platform/first.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
					<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.ja.js"></script>
 | 
				
			||||||
 | 
					<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h4>設定</h4>
 | 
					<h4>設定</h4>
 | 
				
			||||||
<ul class="collapsible" data-collapsible="accordion">
 | 
					<ul class="collapsible" data-collapsible="accordion">
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
@@ -30,21 +34,11 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="collapsible-body">
 | 
						<div class="collapsible-body">
 | 
				
			||||||
		<h5>言語</h5>
 | 
							<h5>言語</h5>
 | 
				
			||||||
		<a href="../ja/setting.html">日本語(Japanese)</a>/<a href="../en/setting.html">English</a>/<a href="../ps/setting.html">Crowdin web translate</a>/
 | 
							To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
 | 
				
			||||||
 | 
							<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
 | 
				
			||||||
		<h5>設定のインポートとエクスポート</h5>
 | 
							<h5>設定のインポートとエクスポート</h5>
 | 
				
			||||||
		<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">エクスポート</button>
 | 
							<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">エクスポート</button>
 | 
				
			||||||
		<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">インポート</button>
 | 
							<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">インポート</button>
 | 
				
			||||||
		<h5>テーマの設定</h5>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
					 | 
				
			||||||
		<label for="black">Black</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
					 | 
				
			||||||
		<label for="white">White</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
					 | 
				
			||||||
		<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
					 | 
				
			||||||
		<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
					 | 
				
			||||||
		<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
					 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>新規通知のポップアップお知らせの表示秒数</h5>0に設定すると表示されません
 | 
							<h5>新規通知のポップアップお知らせの表示秒数</h5>0に設定すると表示されません
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
@@ -88,6 +82,72 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
 | 
						<div class="collapsible-header">
 | 
				
			||||||
 | 
								<i class="material-icons">color_lens</i>テーマの設定
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="collapsible-body">
 | 
				
			||||||
 | 
							<h4>テーマの選択</h4>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
				
			||||||
 | 
							<label for="black">Black</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
				
			||||||
 | 
							<label for="white">White</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
				
			||||||
 | 
							<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
				
			||||||
 | 
							<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
				
			||||||
 | 
							<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
 | 
				
			||||||
 | 
							<label for="custom">Custom</label>
 | 
				
			||||||
 | 
							<div style="width:300px" id="sel-selector">
 | 
				
			||||||
 | 
								<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h4>カスタムテーマの作成・編集</h4>
 | 
				
			||||||
 | 
							<div style="width:300px" id="edit-selector" data-add="新規作成">
 | 
				
			||||||
 | 
								<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
 | 
				
			||||||
 | 
									<option value="add_new">新規作成</option>
 | 
				
			||||||
 | 
								</select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h5>名前</h5>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_name" placeholder="名前...">
 | 
				
			||||||
 | 
							<h5>説明</h5>
 | 
				
			||||||
 | 
							<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" placeholder="説明..."></textarea></div>
 | 
				
			||||||
 | 
							<h5>色の系統</h5>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
 | 
				
			||||||
 | 
							<label for="dark">Dark</label>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="light" value="light" />
 | 
				
			||||||
 | 
							<label for="light">Light</label>
 | 
				
			||||||
 | 
							<div id="pickers">
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Primary</h5>補助要素に使われる背景色
 | 
				
			||||||
 | 
								<div id="color-picker0-wrap"><div class="color-picker" id="color-picker0"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker0_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Secondary</h5>全体の背景色など
 | 
				
			||||||
 | 
								<div id="color-picker1-wrap"><div class="color-picker" id="color-picker1"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker1_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Texts</h5>テキストの色
 | 
				
			||||||
 | 
								<div id="color-picker2-wrap"><div class="color-picker" id="color-picker2"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker2_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Accent</h5>ブーストの背景色など
 | 
				
			||||||
 | 
								<div id="color-picker3-wrap"><div class="color-picker" id="color-picker3"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker3_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<button class="btn-large waves-effect" onclick="customComp()">変更</button> <button class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">削除</button><br><br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_json" class="materialize-textarea" placeholder="JSON style" readonly><br>
 | 
				
			||||||
 | 
							このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href="https://thedesk.top/mias.html" target="_blank">テーマ互換性</a>
 | 
				
			||||||
 | 
							<h4>カスタムテーマのインポート</h4>
 | 
				
			||||||
 | 
							<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>上の80を超えるテーマを張り付けることもできます。<br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_import" class="materialize-textarea" placeholder="JSON/JSON5 style">
 | 
				
			||||||
 | 
							<button class="btn waves-effect" onclick="customImp()">インポート</button><br>
 | 
				
			||||||
 | 
						</li>
 | 
				
			||||||
 | 
						<li>
 | 
				
			||||||
	<div class="collapsible-header">
 | 
						<div class="collapsible-header">
 | 
				
			||||||
			<i class="material-icons">reorder</i>タイムラインの設定
 | 
								<i class="material-icons">reorder</i>タイムラインの設定
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
@@ -322,7 +382,7 @@
 | 
				
			|||||||
			<i class="fa fa-spotify"></i>SpotifyとNowPlayingの設定
 | 
								<i class="fa fa-spotify"></i>SpotifyとNowPlayingの設定
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="collapsible-body">
 | 
							<div class="collapsible-body">
 | 
				
			||||||
			<!-->h5>NowPlayingのソース(Windows)</h5>
 | 
								<h5>NowPlayingのソース(Windows)</h5>
 | 
				
			||||||
			macOSやLinuxでは動作しません。AIMPとiTunes以外未検証です。<br>foobar2000, MusicBee,J. River Media Center, Media JukeboxはCADを、Last.fm Client, TTPlayer, OpenPandora, ZuneはWLMを選んでください。<br>ただし、foobar2000は<a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a>が必要です。MusicBeeもCADを有効にする必要があります。<br>
 | 
								macOSやLinuxでは動作しません。AIMPとiTunes以外未検証です。<br>foobar2000, MusicBee,J. River Media Center, Media JukeboxはCADを、Last.fm Client, TTPlayer, OpenPandora, ZuneはWLMを選んでください。<br>ただし、foobar2000は<a href="http://poiru.github.com/foo-cad/">foo_cad plugin</a>が必要です。MusicBeeもCADを有効にする必要があります。<br>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
				
			||||||
			<label for="aimp">AIMP</label>
 | 
								<label for="aimp">AIMP</label>
 | 
				
			||||||
@@ -337,7 +397,7 @@
 | 
				
			|||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
				
			||||||
			<label for="wlm">WLM</label>
 | 
								<label for="wlm">WLM</label>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
				
			||||||
			<label for="cad">CAD</label><br><br-->
 | 
								<label for="cad">CAD</label><br><br>
 | 
				
			||||||
			<i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
 | 
								<i class="material-icons" style="font-size:24px;">music_note</i>ボタンから簡単にNowPlayingができます。<br>
 | 
				
			||||||
			<h5>アカウントの連携</h5>
 | 
								<h5>アカウントの連携</h5>
 | 
				
			||||||
			APIの性質上,thedesk.topへアクセスします。<br>
 | 
								APIの性質上,thedesk.topへアクセスします。<br>
 | 
				
			||||||
@@ -443,6 +503,7 @@ TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のため
 | 
				
			|||||||
<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
				
			||||||
 | 
					<script type="text/javascript" src="../../js/platform/pickr.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
				
			||||||
@@ -582,17 +582,18 @@ var tlid=0;
 | 
				
			|||||||
		<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
							<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
				
			||||||
		<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
							<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
			<div id="release-Miria_17-1-1" class="release-do" style="display:none; ">
 | 
								<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
 | 
				
			||||||
					<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
										<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
				
			||||||
					<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
										<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
				
			||||||
					Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
										Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
				
			||||||
					困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
										困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
				
			||||||
					<h5>Release Note Miria (17.1.0)</h5>
 | 
										<h5>Release Note Miria (17.2.0)</h5>
 | 
				
			||||||
					トゥートボックスがフロートタイプに。左下、右下以外にも自由においてください。<br>
 | 
										カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
 | 
				
			||||||
					いろいろとアニメーション入れた(硬派な方は設定「タイムラインの設定」からオフに)<br>
 | 
										<a href="https://thedesk.top/mias.html">注意点</a><br>
 | 
				
			||||||
					アンケートができるように(OK:Mastodon (2.8~)/WIP: votedon./ NG: ニコフレ)<br>
 | 
										Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
 | 
				
			||||||
					フォント選択機能が復活<br>
 | 
										日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
 | 
				
			||||||
					WindowsからiTunesやAIMP、その他CAD系のNowPlayingができるように。要プラグインのソフトもある。<br>
 | 
										
 | 
				
			||||||
 | 
										<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<br><br>
 | 
								<br><br>
 | 
				
			||||||
			<h3>{{supportme}}</h3>
 | 
								<h3>{{supportme}}</h3>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,13 +4,14 @@
 | 
				
			|||||||
    "showSelectProf": "crwdns386:0crwdne386:0",
 | 
					    "showSelectProf": "crwdns386:0crwdne386:0",
 | 
				
			||||||
    "closethisbox": "crwdns387:0crwdne387:0",
 | 
					    "closethisbox": "crwdns387:0crwdne387:0",
 | 
				
			||||||
    "toot": "crwdns388:0crwdne388:0",
 | 
					    "toot": "crwdns388:0crwdne388:0",
 | 
				
			||||||
 | 
					    "post-new": "crwdns2402:0crwdne2402:0",
 | 
				
			||||||
    "nsfwDes": "crwdns389:0crwdne389:0",
 | 
					    "nsfwDes": "crwdns389:0crwdne389:0",
 | 
				
			||||||
    "cwDes": "crwdns390:0crwdne390:0",
 | 
					    "cwDes": "crwdns390:0crwdne390:0",
 | 
				
			||||||
    "selfile": "crwdns391:0crwdne391:0",
 | 
					    "selfile": "crwdns391:0crwdne391:0",
 | 
				
			||||||
    "adobephoto": "crwdns392:0crwdne392:0",
 | 
					    "adobephoto": "crwdns392:0crwdne392:0",
 | 
				
			||||||
    "insertEmoji": "crwdns393:0crwdne393:0",
 | 
					    "insertEmoji": "crwdns393:0crwdne393:0",
 | 
				
			||||||
    "NPSpotify": "crwdns1880:0crwdne1880:0",
 | 
					    "NPSpotify": "crwdns1880:0crwdne1880:0",
 | 
				
			||||||
    "NPiTunes": "crwdns1882:0crwdne1882:0",
 | 
					    "NPiTunes": "crwdns2404:0crwdne2404:0",
 | 
				
			||||||
    "schedule": "crwdns1884:0crwdne1884:0",
 | 
					    "schedule": "crwdns1884:0crwdne1884:0",
 | 
				
			||||||
    "postat": "crwdns1886:0crwdne1886:0",
 | 
					    "postat": "crwdns1886:0crwdne1886:0",
 | 
				
			||||||
    "scheduleWarn": "crwdns1888:0crwdne1888:0",
 | 
					    "scheduleWarn": "crwdns1888:0crwdne1888:0",
 | 
				
			||||||
@@ -43,6 +44,13 @@
 | 
				
			|||||||
    "thingsEmoji": "crwdns420:0crwdne420:0",
 | 
					    "thingsEmoji": "crwdns420:0crwdne420:0",
 | 
				
			||||||
    "symbolEmoji": "crwdns421:0crwdne421:0",
 | 
					    "symbolEmoji": "crwdns421:0crwdne421:0",
 | 
				
			||||||
    "flagsEmoji": "crwdns422:0crwdne422:0",
 | 
					    "flagsEmoji": "crwdns422:0crwdne422:0",
 | 
				
			||||||
 | 
					    "poll": "crwdns2406:0crwdne2406:0",
 | 
				
			||||||
 | 
					    "pollDdisabled": "crwdns2408:0crwdne2408:0",
 | 
				
			||||||
 | 
					    "pollProvider": "crwdns2410:0crwdne2410:0",
 | 
				
			||||||
 | 
					    "polluntil": "crwdns2412:0crwdne2412:0",
 | 
				
			||||||
 | 
					    "choice": "crwdns2414:0crwdne2414:0",
 | 
				
			||||||
 | 
					    "pollmulti": "crwdns2416:0crwdne2416:0",
 | 
				
			||||||
 | 
					    "expires_in": "crwdns2418:0crwdne2418:0",
 | 
				
			||||||
    "contextBefore": "crwdns423:0crwdne423:0",
 | 
					    "contextBefore": "crwdns423:0crwdne423:0",
 | 
				
			||||||
    "thisToot": "crwdns424:0crwdne424:0",
 | 
					    "thisToot": "crwdns424:0crwdne424:0",
 | 
				
			||||||
    "contextAfter": "crwdns425:0crwdne425:0",
 | 
					    "contextAfter": "crwdns425:0crwdne425:0",
 | 
				
			||||||
@@ -131,6 +139,7 @@
 | 
				
			|||||||
    "days": "crwdns507:0crwdne507:0",
 | 
					    "days": "crwdns507:0crwdne507:0",
 | 
				
			||||||
    "hours": "crwdns508:0crwdne508:0",
 | 
					    "hours": "crwdns508:0crwdne508:0",
 | 
				
			||||||
    "mins": "crwdns509:0crwdne509:0",
 | 
					    "mins": "crwdns509:0crwdne509:0",
 | 
				
			||||||
 | 
					    "secs": "crwdns2420:0crwdne2420:0",
 | 
				
			||||||
    "warnOnIntegratedTL": "crwdns510:0crwdne510:0",
 | 
					    "warnOnIntegratedTL": "crwdns510:0crwdne510:0",
 | 
				
			||||||
    "helloTheDesk": "crwdns511:0crwdne511:0",
 | 
					    "helloTheDesk": "crwdns511:0crwdne511:0",
 | 
				
			||||||
    "addColumn": "crwdns512:0crwdne512:0",
 | 
					    "addColumn": "crwdns512:0crwdne512:0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,199 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "language":"en",
 | 
					 | 
				
			||||||
    "lang_toot":"Toot",
 | 
					 | 
				
			||||||
    "lang_there":"Yes",
 | 
					 | 
				
			||||||
    "lang_nothing":"None",
 | 
					 | 
				
			||||||
    "lang_yesno":"Yes",
 | 
					 | 
				
			||||||
    "lang_no":"No",
 | 
					 | 
				
			||||||
    "lang_progress":"Wait...",
 | 
					 | 
				
			||||||
    "lang_edit":"Edit",
 | 
					 | 
				
			||||||
    "lang_del":"Delete",
 | 
					 | 
				
			||||||
    "lang_add":"Add",
 | 
					 | 
				
			||||||
    "lang_fatalerroroccured":"Some errors are occured, please restart TheDesk.",
 | 
					 | 
				
			||||||
    "lang_speech":"Google US English",
 | 
					 | 
				
			||||||
    "lang_lang":"Language",
 | 
					 | 
				
			||||||
    "lang_langlocale":"English",
 | 
					 | 
				
			||||||
    "lang_back":"Back",
 | 
					 | 
				
			||||||
    "lang_set":"Set",
 | 
					 | 
				
			||||||
    "lang_langadd":"Translate TheDesk to other languages or proofread TheDesk on <a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>. TheDesk needs your help.",
 | 
					 | 
				
			||||||
    "lang_version_usever":"No update is found({{ver}})",
 | 
					 | 
				
			||||||
    "lang_version_skipver":"Update was ignored.",
 | 
					 | 
				
			||||||
    "lang_login_noauth":"Show TL of unlogined accounts",
 | 
					 | 
				
			||||||
    "lang_manager_info":"About this instance",
 | 
					 | 
				
			||||||
    "lang_manager_refresh":"Refresh",
 | 
					 | 
				
			||||||
    "lang_manager_delete":"Logout",
 | 
					 | 
				
			||||||
    "lang_manager_color":"Account Color",
 | 
					 | 
				
			||||||
    "lang_manager_confirm":"is about to logout. Continue?",
 | 
					 | 
				
			||||||
    "lang_manager_mainAcct":"Done:choose main account",
 | 
					 | 
				
			||||||
    "lang_manager_def":"Default",
 | 
					 | 
				
			||||||
    "lang_manager_none":"None",
 | 
					 | 
				
			||||||
    "lang_manager_godev":"Open DevCenter of Misskey. We show also an official documents to refer.",
 | 
					 | 
				
			||||||
    "lang_bbmd_misskey":"TheDesk regards \"@\" as reply, but put other parameter. Unlisted on Mastodon means Home on Misskey.",
 | 
					 | 
				
			||||||
    "lang_emoji_get":"Get emojis",
 | 
					 | 
				
			||||||
    "lang_emoji_custom":"Custom emojis",
 | 
					 | 
				
			||||||
    "lang_postimg_previewdis":"cannot preview",
 | 
					 | 
				
			||||||
    "lang_postimg_aftupload":"You cannot change accounts after uploading.",
 | 
					 | 
				
			||||||
    "lang_post_tagTL":"This toot does not contain a default tag. This toot will not be shown on Local TL. Continue?",
 | 
					 | 
				
			||||||
    "lang_post_tagVis":"This toot(not 'public' toot) is not shown on this tag's TL.",
 | 
					 | 
				
			||||||
    "lang_post_cwtitle":"Auto CW Alert",
 | 
					 | 
				
			||||||
    "lang_post_cwtxt":"You are about to post longer toot than you set.\nWarning text:",
 | 
					 | 
				
			||||||
    "lang_post_btn1":"Cancel (will not post)",
 | 
					 | 
				
			||||||
    "lang_post_btn2":"Make text hidden automatically",
 | 
					 | 
				
			||||||
    "lang_post_btn3":"Continue to post",
 | 
					 | 
				
			||||||
    "lang_status_favWarn":"It will take a miunte to favourite a remote toot.",
 | 
					 | 
				
			||||||
    "lang_status_btWarn":"It will take a miunte to boost a remote toot.",
 | 
					 | 
				
			||||||
    "lang_status_follow":"Follow",
 | 
					 | 
				
			||||||
    "lang_status_unfollow":"Unfollow",
 | 
					 | 
				
			||||||
    "lang_status_block":"Block",
 | 
					 | 
				
			||||||
    "lang_status_unblock":"Unblock",
 | 
					 | 
				
			||||||
    "lang_status_mute":"Mute",
 | 
					 | 
				
			||||||
    "lang_status_unmute":"Unmute",
 | 
					 | 
				
			||||||
    "lang_status_redraft":"Continue to delete & redraft? You lose statuses of this toot. This fanction may contain some bugs. Images of this toot will be deleted on older than Mastodon 2.4.1.",
 | 
					 | 
				
			||||||
    "lang_status_emphas":"'s toots are emphasized. Please reload after this action.",
 | 
					 | 
				
			||||||
    "lang_status_unemphas":"'s toots are not emphasized. Please reload after this action.",
 | 
					 | 
				
			||||||
    "lang_status_unendorse":"Not feature on profile",
 | 
					 | 
				
			||||||
    "lang_status_endorse":"Feature on profile",
 | 
					 | 
				
			||||||
    "lang_suggest_nodata":"Please get emojis list in order to show suggestion.",
 | 
					 | 
				
			||||||
    "lang_usetxtbox_reply":"Reply Mode. Ctrl+Shift+C to clear.",
 | 
					 | 
				
			||||||
    "lang_cards_check":" check",
 | 
					 | 
				
			||||||
    "lang_cards_pip":"PiP mode",
 | 
					 | 
				
			||||||
    "lang_details_nodata":"No data",
 | 
					 | 
				
			||||||
    "lang_details_filtered":"Filtered toot",
 | 
					 | 
				
			||||||
    "lang_details_embed":"Embed HTML is cliped.",
 | 
					 | 
				
			||||||
    "lang_details_url":"URL of this toot is cliped.",
 | 
					 | 
				
			||||||
    "lang_details_txt":"Content of this toot is cliped.",
 | 
					 | 
				
			||||||
    "lang_filter_nodata":"No data",
 | 
					 | 
				
			||||||
    "lang_filter_errordegree":"Please check a context",
 | 
					 | 
				
			||||||
    "lang_list_nodata":"No data",
 | 
					 | 
				
			||||||
    "lang_list_show":"Show",
 | 
					 | 
				
			||||||
    "lang_list_users":"Users list",
 | 
					 | 
				
			||||||
    "lang_list_nouser":"No users in this list.",
 | 
					 | 
				
			||||||
    "lang_list_add":"Add to the list",
 | 
					 | 
				
			||||||
    "lang_list_remove":"Remove from the list",
 | 
					 | 
				
			||||||
    "lang_notf_new":" new notifications",
 | 
					 | 
				
			||||||
    "lang_speech_refresh":"Save value about TTS config",
 | 
					 | 
				
			||||||
    "lang_src_ts":"chronological order",
 | 
					 | 
				
			||||||
    "lang_src_people":" people toot",
 | 
					 | 
				
			||||||
    "lang_tags_always":"Always toots with ",
 | 
					 | 
				
			||||||
    "lang_tags_realtime":"Tag-stream toot",
 | 
					 | 
				
			||||||
    "lang_tags_tagunpin":"Unpin {{tag}}",
 | 
					 | 
				
			||||||
    "lang_tags_tagwarn":"When you toot without {{tag}}, tag-streaming mode will be off.",
 | 
					 | 
				
			||||||
    "lang_tl_media":"Media",
 | 
					 | 
				
			||||||
    "lang_tl_reconnect":"Reconnect to streaming API",
 | 
					 | 
				
			||||||
    "lang_layout_gotop":"Go top of this column. When icon is red, this column cannot connect straming API. Please reload.",
 | 
					 | 
				
			||||||
    "lang_layout_thisacct":"{{notf}} of this account",
 | 
					 | 
				
			||||||
    "lang_layout_delthis":"Remove this column",
 | 
					 | 
				
			||||||
    "lang_layout_setthis":"Preferences of this column",
 | 
					 | 
				
			||||||
    "lang_layout_mediafil":"Media filtering",
 | 
					 | 
				
			||||||
    "lang_layout_linkana":"Auto Link Analyzer",
 | 
					 | 
				
			||||||
    "lang_layout_linkanades":"Auto link analyzer",
 | 
					 | 
				
			||||||
    "lang_layout_tts":"Text to speech ",
 | 
					 | 
				
			||||||
    "lang_layout_reconnect":"Reconnect to streaming API",
 | 
					 | 
				
			||||||
    "lang_layout_headercolor":"Header color of this column",
 | 
					 | 
				
			||||||
    "lang_layout_nodata":"[No data]<br>F5/⌘+R to reload",
 | 
					 | 
				
			||||||
    "lang_layout_dm":"Direct Message",
 | 
					 | 
				
			||||||
    "lang_layout_webviewmode":"Prefer WebView",
 | 
					 | 
				
			||||||
    "lang_excluded":"Excluded type of notification",
 | 
					 | 
				
			||||||
    "lang_spotify_img":"Attach an album artwork",
 | 
					 | 
				
			||||||
    "lang_spotify_imgno":"Not attach an album artwork",
 | 
					 | 
				
			||||||
    "lang_spotify_acct":"Connect TheDesk to Spotify",
 | 
					 | 
				
			||||||
    "lang_spotify_np":"Done:templete of NowPlaying",
 | 
					 | 
				
			||||||
    "lang_setting_npprovide":"NowPlaying provider:{{set}}",
 | 
					 | 
				
			||||||
    "lang_hisdata_frcreq":"Required Mastodon 2.4.3 and above",
 | 
					 | 
				
			||||||
    "lang_hisdata_frcwarn":"Unfollow accounts will be shown.",
 | 
					 | 
				
			||||||
    "lang_hisdata_taketime":"It will take 30s ~ several minutes",
 | 
					 | 
				
			||||||
    "lang_hisdata_notonmisskey":"Misskey is unable to request.",
 | 
					 | 
				
			||||||
    "lang_showontl_movetxt":"This account was moved",
 | 
					 | 
				
			||||||
    "lang_showontl_movebtn":"Continue on the new account",
 | 
					 | 
				
			||||||
    "lang_showontl_botacct":"[bot]",
 | 
					 | 
				
			||||||
    "lang_showontl_followed":"Following you",
 | 
					 | 
				
			||||||
    "lang_showontl_notf":"Notification ",
 | 
					 | 
				
			||||||
    "lang_showontl_domain":"Domain ",
 | 
					 | 
				
			||||||
    "lang_showontl_listwarn":"Follow to add this user to lists.",
 | 
					 | 
				
			||||||
    "lang_parse_mentioned":" replied to you",
 | 
					 | 
				
			||||||
    "lang_parse_faved":" favourited your toot",
 | 
					 | 
				
			||||||
    "lang_parse_bted":" boosted your toot",
 | 
					 | 
				
			||||||
    "lang_parse_btedsimple":" boosted",
 | 
					 | 
				
			||||||
    "lang_parse_notftime":"Actioned at",
 | 
					 | 
				
			||||||
    "lang_parse_cwshow":"Show",
 | 
					 | 
				
			||||||
    "lang_parse_fulltext":"Full size text:",
 | 
					 | 
				
			||||||
    "lang_parse_autofold":"Auto folded",
 | 
					 | 
				
			||||||
    "lang_parse_more":"More",
 | 
					 | 
				
			||||||
    "lang_parse_url":"URL Analyzer",
 | 
					 | 
				
			||||||
    "lang_parse_tagTL":"Timeline of {{tag}}",
 | 
					 | 
				
			||||||
    "lang_parse_tagtoot":"Toot with {{tag}}",
 | 
					 | 
				
			||||||
    "lang_parse_tagpin":"Pin {{tag}}",
 | 
					 | 
				
			||||||
    "lang_parse_public":"Public",
 | 
					 | 
				
			||||||
    "lang_parse_unlisted":"Unlisted",
 | 
					 | 
				
			||||||
    "lang_parse_private":"Private",
 | 
					 | 
				
			||||||
    "lang_parse_direct":"Direct",
 | 
					 | 
				
			||||||
    "lang_parse_clickcopy":"Click to copy text of this toot",
 | 
					 | 
				
			||||||
    "lang_parse_clickcopyurl":"Click to copy URL of this toot",
 | 
					 | 
				
			||||||
    "lang_parse_trans":"Translate to Japanese",
 | 
					 | 
				
			||||||
    "lang_parse_replyto":"Reply to this toot",
 | 
					 | 
				
			||||||
    "lang_parse_bt":"Boost this toot",
 | 
					 | 
				
			||||||
    "lang_parse_fav":"Favourite this toot",
 | 
					 | 
				
			||||||
    "lang_parse_quote":"Quote this toot",
 | 
					 | 
				
			||||||
    "lang_parse_del":"Delete this toot",
 | 
					 | 
				
			||||||
    "lang_parse_pin":"Pin this toot",
 | 
					 | 
				
			||||||
    "lang_parse_det":"Details via your main account.",
 | 
					 | 
				
			||||||
    "lang_parse_redraft":"Delete & re-draft",
 | 
					 | 
				
			||||||
    "lang_parse_followed":"Followed you",
 | 
					 | 
				
			||||||
    "lang_parse_clientop":"Operation of this client",
 | 
					 | 
				
			||||||
    "lang_parse_clienttxt":" will be",
 | 
					 | 
				
			||||||
    "lang_parse_clientno":"done nothing",
 | 
					 | 
				
			||||||
    "lang_parse_clientemp":"emphasized(/not emphasized)",
 | 
					 | 
				
			||||||
    "lang_parse_clientmute":"muted",
 | 
					 | 
				
			||||||
    "lang_parse_mute":" will be muted. You can remove on preferences.",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_renote":"Repost",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_renoteqt":"Renote",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_reaction":"Reaction",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_tagnostr":"No streaming API on Tag TLs",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_listnostr":"No streaming API on List TLs",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_home":"Home",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_followers":"Follower",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_specified":"Specified User",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_qt":"Misskey renote(quote) mode:Ctrl+Shift+Enter to clear",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_renoted":" renoted your following post.",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_quoted":" quoted your following post.",
 | 
					 | 
				
			||||||
    "lang_misskeyparse_reacted":" reacted your following post.",
 | 
					 | 
				
			||||||
    "lang_setting_time":"Time format:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_theme":"Theme:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_nsfw":"NSFW:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_cw":"CW:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_cwtext":"Default CW text:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_cws":"Always CW on:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_rp":"Reply counter:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_vis":"Default visibility:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_popup":"Popup notification:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_off":"Off",
 | 
					 | 
				
			||||||
    "lang_setting_s":"s",
 | 
					 | 
				
			||||||
    "lang_setting_box":"Default toot box action:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_gif":"GIF:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_selt":"Auto fold:{{set1}} lines and above, {{set2}} letters and above",
 | 
					 | 
				
			||||||
    "lang_setting_autocw":"Auto CW:{{set1}} lines and above, {{set2}} letters and above",
 | 
					 | 
				
			||||||
    "lang_setting_width":"Minimam width:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_fixwidth":"TweetDeck fixed width:{{set}}px",
 | 
					 | 
				
			||||||
    "lang_setting_img":"After posting an image:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_font":"Fonts:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_default":"default font",
 | 
					 | 
				
			||||||
    "lang_setting_size":"Font size:{{set}}px",
 | 
					 | 
				
			||||||
    "lang_setting_imgheight":"Image height:{{set}}px",
 | 
					 | 
				
			||||||
    "lang_setting_ticker":"#InstanceTicker:{{set}}px",
 | 
					 | 
				
			||||||
    "lang_setting_tag":"Tag TL:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_boxConfirm":"Post box:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_ul":"Native locale:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_notf":"Native notification:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_quote":"Quote format:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_via":"Via:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_mov":"Action buttons hiding:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_setasread":"Notification markers:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_main":"Default account:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_sec":"Secondary toot button:{{set}}",
 | 
					 | 
				
			||||||
    "lang_setting_ksref":"Keyboard shortcuts are refreshed.",
 | 
					 | 
				
			||||||
    "lang_setting_nomuting":"No client is muted.",
 | 
					 | 
				
			||||||
    "lang_setting_notftest":" Notification test ",
 | 
					 | 
				
			||||||
    "lang_setting_notftestprof":"Your icon is shown.",
 | 
					 | 
				
			||||||
    "lang_setting_exportwarn":"Only important data will be exported. You must keep this data secure.",
 | 
					 | 
				
			||||||
    "lang_setting_importwarn":"All data will be deleted."
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -28,6 +28,20 @@
 | 
				
			|||||||
    "savefolder":"Folder to save",
 | 
					    "savefolder":"Folder to save",
 | 
				
			||||||
    "savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.",
 | 
					    "savefolderwarn":"TheDesk uses this value when it try to save pictures or take screenshots.",
 | 
				
			||||||
    "absolute":"absolute value",
 | 
					    "absolute":"absolute value",
 | 
				
			||||||
 | 
					    "themeSel":"Select theme",
 | 
				
			||||||
 | 
					    "customtheme":"Edit and add custom themes",
 | 
				
			||||||
 | 
					    "customthemeDirection":"Color scheme",
 | 
				
			||||||
 | 
					    "primary":"Background color",
 | 
				
			||||||
 | 
					    "secondarycolor":"Background of components",
 | 
				
			||||||
 | 
					    "text":"Text color",
 | 
				
			||||||
 | 
					    "accent":"Background of boosts",
 | 
				
			||||||
 | 
					    "add_new":"Add new",
 | 
				
			||||||
 | 
					    "name":"Name",
 | 
				
			||||||
 | 
					    "desc":"About this theme",
 | 
				
			||||||
 | 
					    "customShare":"Share this code with other TheDesk. Do not share this code with MiAS.",
 | 
				
			||||||
 | 
					    "customImport":"Import of custom themes",
 | 
				
			||||||
 | 
					    "delete":"Delete",
 | 
				
			||||||
 | 
					    "cImpWarn":"Get more themes on <a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>",
 | 
				
			||||||
    "timeline":"Timeline Preferences",
 | 
					    "timeline":"Timeline Preferences",
 | 
				
			||||||
    "timemode":"Time format",
 | 
					    "timemode":"Time format",
 | 
				
			||||||
    "relativetime":"Relative format:\"1 minutes ago\",\"3 days ago\"",
 | 
					    "relativetime":"Relative format:\"1 minutes ago\",\"3 days ago\"",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,20 @@
 | 
				
			|||||||
    "savefolder":"デフォルトの保存先",
 | 
					    "savefolder":"デフォルトの保存先",
 | 
				
			||||||
    "savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。",
 | 
					    "savefolderwarn":"画像ダウンロードやスクリーンショットに影響します。",
 | 
				
			||||||
    "absolute":"絶対指定",
 | 
					    "absolute":"絶対指定",
 | 
				
			||||||
 | 
					    "themeSel":"テーマの選択",
 | 
				
			||||||
 | 
					    "customtheme":"カスタムテーマの作成・編集",
 | 
				
			||||||
 | 
					    "customthemeDirection":"色の系統",
 | 
				
			||||||
 | 
					    "primary":"全体の背景色など",
 | 
				
			||||||
 | 
					    "secondarycolor":"補助要素に使われる背景色",
 | 
				
			||||||
 | 
					    "text":"テキストの色",
 | 
				
			||||||
 | 
					    "accent":"ブーストの背景色など",
 | 
				
			||||||
 | 
					    "add_new":"新規作成",
 | 
				
			||||||
 | 
					    "name":"名前",
 | 
				
			||||||
 | 
					    "desc":"説明",
 | 
				
			||||||
 | 
					    "customShare":"このコードは他のTheDeskなどとシェアできます。このコードをMiASに貼ることはご遠慮ください。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>",
 | 
				
			||||||
 | 
					    "customImport":"カスタムテーマのインポート",
 | 
				
			||||||
 | 
					    "delete":"削除",
 | 
				
			||||||
 | 
					    "cImpWarn":"<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張り付けることもできます。",
 | 
				
			||||||
    "timeline":"タイムラインの設定",
 | 
					    "timeline":"タイムラインの設定",
 | 
				
			||||||
    "timemode":"時間表記設定",
 | 
					    "timemode":"時間表記設定",
 | 
				
			||||||
    "relativetime":"相対時間の例:\"1分前\",\"3日前\"",
 | 
					    "relativetime":"相対時間の例:\"1分前\",\"3日前\"",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,8 +17,10 @@
 | 
				
			|||||||
    "nativenotf": "crwdns538:0crwdne538:0",
 | 
					    "nativenotf": "crwdns538:0crwdne538:0",
 | 
				
			||||||
    "nnwarn": "crwdns539:0crwdne539:0",
 | 
					    "nnwarn": "crwdns539:0crwdne539:0",
 | 
				
			||||||
    "nntest": "crwdns540:0crwdne540:0",
 | 
					    "nntest": "crwdns540:0crwdne540:0",
 | 
				
			||||||
    "minwidth": "crwdns541:0crwdne541:0",
 | 
					    "minwidth": "crwdns2376:0crwdne2376:0",
 | 
				
			||||||
    "minwidthwarn": "crwdns542:0crwdne542:0",
 | 
					    "minwidthwarn": "crwdns542:0crwdne542:0",
 | 
				
			||||||
 | 
					    "fixwidth": "crwdns2378:0crwdne2378:0",
 | 
				
			||||||
 | 
					    "fixwidthwarn": "crwdns2380:0crwdne2380:0",
 | 
				
			||||||
    "above": "crwdns543:0crwdne543:0",
 | 
					    "above": "crwdns543:0crwdne543:0",
 | 
				
			||||||
    "font": "crwdns544:0crwdne544:0",
 | 
					    "font": "crwdns544:0crwdne544:0",
 | 
				
			||||||
    "fontwarn": "crwdns1900:0crwdne1900:0",
 | 
					    "fontwarn": "crwdns1900:0crwdne1900:0",
 | 
				
			||||||
@@ -26,6 +28,18 @@
 | 
				
			|||||||
    "savefolder": "crwdns547:0crwdne547:0",
 | 
					    "savefolder": "crwdns547:0crwdne547:0",
 | 
				
			||||||
    "savefolderwarn": "crwdns548:0crwdne548:0",
 | 
					    "savefolderwarn": "crwdns548:0crwdne548:0",
 | 
				
			||||||
    "absolute": "crwdns549:0crwdne549:0",
 | 
					    "absolute": "crwdns549:0crwdne549:0",
 | 
				
			||||||
 | 
					    "themeSel": "crwdns2422:0crwdne2422:0",
 | 
				
			||||||
 | 
					    "customtheme": "crwdns2424:0crwdne2424:0",
 | 
				
			||||||
 | 
					    "customthemeDirection": "crwdns2426:0crwdne2426:0",
 | 
				
			||||||
 | 
					    "primary": "crwdns2428:0crwdne2428:0",
 | 
				
			||||||
 | 
					    "secondarycolor": "crwdns2430:0crwdne2430:0",
 | 
				
			||||||
 | 
					    "text": "crwdns2432:0crwdne2432:0",
 | 
				
			||||||
 | 
					    "accent": "crwdns2434:0crwdne2434:0",
 | 
				
			||||||
 | 
					    "add_new": "crwdns2436:0crwdne2436:0",
 | 
				
			||||||
 | 
					    "name": "crwdns2438:0crwdne2438:0",
 | 
				
			||||||
 | 
					    "desc": "crwdns2440:0crwdne2440:0",
 | 
				
			||||||
 | 
					    "customShare": "crwdns2442:0crwdne2442:0",
 | 
				
			||||||
 | 
					    "customImport": "crwdns2444:0crwdne2444:0",
 | 
				
			||||||
    "timeline": "crwdns550:0crwdne550:0",
 | 
					    "timeline": "crwdns550:0crwdne550:0",
 | 
				
			||||||
    "timemode": "crwdns551:0crwdne551:0",
 | 
					    "timemode": "crwdns551:0crwdne551:0",
 | 
				
			||||||
    "relativetime": "crwdns552:0crwdne552:0",
 | 
					    "relativetime": "crwdns552:0crwdne552:0",
 | 
				
			||||||
@@ -65,6 +79,7 @@
 | 
				
			|||||||
    "imgheight": "crwdns586:0crwdne586:0",
 | 
					    "imgheight": "crwdns586:0crwdne586:0",
 | 
				
			||||||
    "ticker": "crwdns1908:0crwdne1908:0",
 | 
					    "ticker": "crwdns1908:0crwdne1908:0",
 | 
				
			||||||
    "tickerwarn": "crwdns1910:0crwdne1910:0",
 | 
					    "tickerwarn": "crwdns1910:0crwdne1910:0",
 | 
				
			||||||
 | 
					    "animation": "crwdns2446:0crwdne2446:0",
 | 
				
			||||||
    "post": "crwdns587:0crwdne587:0",
 | 
					    "post": "crwdns587:0crwdne587:0",
 | 
				
			||||||
    "autocw": "crwdns588:0crwdne588:0",
 | 
					    "autocw": "crwdns588:0crwdne588:0",
 | 
				
			||||||
    "autocwwarn": "crwdns589:0crwdne589:0",
 | 
					    "autocwwarn": "crwdns589:0crwdne589:0",
 | 
				
			||||||
@@ -107,6 +122,8 @@
 | 
				
			|||||||
    "useerempwarn": "crwdns622:0crwdne622:0",
 | 
					    "useerempwarn": "crwdns622:0crwdne622:0",
 | 
				
			||||||
    "empcolorwarn": "crwdns623:0crwdne623:0",
 | 
					    "empcolorwarn": "crwdns623:0crwdne623:0",
 | 
				
			||||||
    "spotify": "crwdns624:0crwdne624:0",
 | 
					    "spotify": "crwdns624:0crwdne624:0",
 | 
				
			||||||
 | 
					    "npProvider": "crwdns2354:0crwdne2354:0",
 | 
				
			||||||
 | 
					    "npPeoviderWarn": "crwdns2356:0crwdne2356:0",
 | 
				
			||||||
    "spotifynote1": "crwdns625:0crwdne625:0",
 | 
					    "spotifynote1": "crwdns625:0crwdne625:0",
 | 
				
			||||||
    "spotifynote2": "crwdns626:0crwdne626:0",
 | 
					    "spotifynote2": "crwdns626:0crwdne626:0",
 | 
				
			||||||
    "link": "crwdns627:0crwdne627:0",
 | 
					    "link": "crwdns627:0crwdne627:0",
 | 
				
			||||||
@@ -115,8 +132,9 @@
 | 
				
			|||||||
    "disconnect": "crwdns630:0crwdne630:0",
 | 
					    "disconnect": "crwdns630:0crwdne630:0",
 | 
				
			||||||
    "templeteedit": "crwdns631:0crwdne631:0",
 | 
					    "templeteedit": "crwdns631:0crwdne631:0",
 | 
				
			||||||
    "templeteeditwarn": "crwdns632:0crwdne632:0",
 | 
					    "templeteeditwarn": "crwdns632:0crwdne632:0",
 | 
				
			||||||
    "templete1": "crwdns633:0{song}crwdnd633:0{album}crwdnd633:0{artist}crwdnd633:0{url}crwdne633:0",
 | 
					    "templete1": "crwdns2358:0{song}crwdnd2358:0{album}crwdnd2358:0{artist}crwdnd2358:0{url}crwdne2358:0",
 | 
				
			||||||
    "templete2": "crwdns634:0{url}crwdnd634:0{composer}crwdnd634:0{hz}crwdnd634:0{bitRate}crwdnd634:0{genre}crwdne634:0",
 | 
					    "templete2": "crwdns2360:0{song}crwdnd2360:0{album}crwdnd2360:0{artist}crwdnd2360:0{composer}crwdnd2360:0{hz}crwdnd2360:0{bitRate}crwdnd2360:0{genre}crwdne2360:0",
 | 
				
			||||||
 | 
					    "templete3": "crwdns2362:0{song}crwdnd2362:0{album}crwdnd2362:0{artist}crwdne2362:0",
 | 
				
			||||||
    "postartwork": "crwdns635:0crwdne635:0",
 | 
					    "postartwork": "crwdns635:0crwdne635:0",
 | 
				
			||||||
    "tts": "crwdns636:0crwdne636:0",
 | 
					    "tts": "crwdns636:0crwdne636:0",
 | 
				
			||||||
    "speed": "crwdns637:0crwdne637:0",
 | 
					    "speed": "crwdns637:0crwdne637:0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,8 @@
 | 
				
			|||||||
    "updatehere": "crwdns669:0crwdne669:0",
 | 
					    "updatehere": "crwdns669:0crwdne669:0",
 | 
				
			||||||
    "download": "crwdns670:0crwdne670:0",
 | 
					    "download": "crwdns670:0crwdne670:0",
 | 
				
			||||||
    "portable": "crwdns1950:0crwdne1950:0",
 | 
					    "portable": "crwdns1950:0crwdne1950:0",
 | 
				
			||||||
    "winzip": "crwdns672:0crwdne672:0",
 | 
					    "installer": "crwdns2382:0crwdne2382:0",
 | 
				
			||||||
 | 
					    "snap": "crwdns2384:0crwdne2384:0",
 | 
				
			||||||
    "unrewrite": "crwdns673:0crwdne673:0",
 | 
					    "unrewrite": "crwdns673:0crwdne673:0",
 | 
				
			||||||
    "sureupd": "crwdns674:0crwdne674:0",
 | 
					    "sureupd": "crwdns674:0crwdne674:0",
 | 
				
			||||||
    "skipupd": "crwdns675:0crwdne675:0",
 | 
					    "skipupd": "crwdns675:0crwdne675:0",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,16 +12,20 @@
 | 
				
			|||||||
	<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
						<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
				
			||||||
	<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
 | 
						<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
						<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
				
			||||||
	<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
						<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
 | 
						<style>input{max-height:50px!important} .pcr-result{height:1rem !important;}</style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body id="mainView" style="overflow-y:scroll">
 | 
					<body id="mainView" style="overflow-y:scroll">
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
 | 
					<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/platform/first.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
					<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/lang/lang.{{lang}}.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.{{lang}}.js"></script>
 | 
				
			||||||
 | 
					<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h4>{{setting}}</h4>
 | 
					<h4>{{setting}}</h4>
 | 
				
			||||||
<ul class="collapsible" data-collapsible="accordion">
 | 
					<ul class="collapsible" data-collapsible="accordion">
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
@@ -30,21 +34,11 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="collapsible-body">
 | 
						<div class="collapsible-body">
 | 
				
			||||||
		<h5>{{setlang}}</h5>
 | 
							<h5>{{setlang}}</h5>
 | 
				
			||||||
 | 
							To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
 | 
				
			||||||
		{{langlist}}
 | 
							{{langlist}}
 | 
				
			||||||
		<h5>{{backup}}</h5>
 | 
							<h5>{{backup}}</h5>
 | 
				
			||||||
		<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">{{export}}</button>
 | 
							<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">{{export}}</button>
 | 
				
			||||||
		<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">{{import}}</button>
 | 
							<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">{{import}}</button>
 | 
				
			||||||
		<h5>{{theme}}</h5>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
					 | 
				
			||||||
		<label for="black">Black</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
					 | 
				
			||||||
		<label for="white">White</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
					 | 
				
			||||||
		<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
					 | 
				
			||||||
		<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
					 | 
				
			||||||
		<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
					 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>{{popup}}</h5>{{popupwarn}}
 | 
							<h5>{{popup}}</h5>{{popupwarn}}
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
@@ -88,6 +82,72 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
 | 
						<div class="collapsible-header">
 | 
				
			||||||
 | 
								<i class="material-icons">color_lens</i>{{theme}}
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="collapsible-body">
 | 
				
			||||||
 | 
							<h4>{{themeSel}}</h4>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
				
			||||||
 | 
							<label for="black">Black</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
				
			||||||
 | 
							<label for="white">White</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
				
			||||||
 | 
							<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
				
			||||||
 | 
							<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
				
			||||||
 | 
							<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
 | 
				
			||||||
 | 
							<label for="custom">Custom</label>
 | 
				
			||||||
 | 
							<div style="width:300px" id="sel-selector">
 | 
				
			||||||
 | 
								<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h4>{{customtheme}}</h4>
 | 
				
			||||||
 | 
							<div style="width:300px" id="edit-selector" data-add="{{add_new}}">
 | 
				
			||||||
 | 
								<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
 | 
				
			||||||
 | 
									<option value="add_new">{{add_new}}</option>
 | 
				
			||||||
 | 
								</select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h5>{{name}}</h5>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_name" placeholder="{{name}}...">
 | 
				
			||||||
 | 
							<h5>{{desc}}</h5>
 | 
				
			||||||
 | 
							<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" placeholder="{{desc}}..."></textarea></div>
 | 
				
			||||||
 | 
							<h5>{{customthemeDirection}}</h5>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
 | 
				
			||||||
 | 
							<label for="dark">Dark</label>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="light" value="light" />
 | 
				
			||||||
 | 
							<label for="light">Light</label>
 | 
				
			||||||
 | 
							<div id="pickers">
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Primary</h5>{{secondarycolor}}
 | 
				
			||||||
 | 
								<div id="color-picker0-wrap"><div class="color-picker" id="color-picker0"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker0_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Secondary</h5>{{primary}}
 | 
				
			||||||
 | 
								<div id="color-picker1-wrap"><div class="color-picker" id="color-picker1"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker1_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Texts</h5>{{text}}
 | 
				
			||||||
 | 
								<div id="color-picker2-wrap"><div class="color-picker" id="color-picker2"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker2_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Accent</h5>{{accent}}
 | 
				
			||||||
 | 
								<div id="color-picker3-wrap"><div class="color-picker" id="color-picker3"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker3_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<button class="btn-large waves-effect" onclick="customComp()">{{change}}</button> <button class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">{{delete}}</button><br><br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_json" class="materialize-textarea" placeholder="JSON style" readonly><br>
 | 
				
			||||||
 | 
							{{customShare}}
 | 
				
			||||||
 | 
							<h4>{{customImport}}</h4>
 | 
				
			||||||
 | 
							{{cImpWarn}}<br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_import" class="materialize-textarea" placeholder="JSON/JSON5 style">
 | 
				
			||||||
 | 
							<button class="btn waves-effect" onclick="customImp()">{{import}}</button><br>
 | 
				
			||||||
 | 
						</li>
 | 
				
			||||||
 | 
						<li>
 | 
				
			||||||
	<div class="collapsible-header">
 | 
						<div class="collapsible-header">
 | 
				
			||||||
			<i class="material-icons">reorder</i>{{timeline}}
 | 
								<i class="material-icons">reorder</i>{{timeline}}
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
@@ -322,7 +382,7 @@
 | 
				
			|||||||
			<i class="fa fa-spotify"></i>{{spotify}}
 | 
								<i class="fa fa-spotify"></i>{{spotify}}
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="collapsible-body">
 | 
							<div class="collapsible-body">
 | 
				
			||||||
			<!-->h5>{{npProvider}}</h5>
 | 
								<h5>{{npProvider}}</h5>
 | 
				
			||||||
			{{npPeoviderWarn}}<br>
 | 
								{{npPeoviderWarn}}<br>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
				
			||||||
			<label for="aimp">AIMP</label>
 | 
								<label for="aimp">AIMP</label>
 | 
				
			||||||
@@ -337,7 +397,7 @@
 | 
				
			|||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
				
			||||||
			<label for="wlm">WLM</label>
 | 
								<label for="wlm">WLM</label>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
				
			||||||
			<label for="cad">CAD</label><br><br-->
 | 
								<label for="cad">CAD</label><br><br>
 | 
				
			||||||
			{{spotifynote1}}<i class="material-icons" style="font-size:24px;">music_note</i>{{spotifynote2}}<br>
 | 
								{{spotifynote1}}<i class="material-icons" style="font-size:24px;">music_note</i>{{spotifynote2}}<br>
 | 
				
			||||||
			<h5>{{link}}</h5>
 | 
								<h5>{{link}}</h5>
 | 
				
			||||||
			{{linkwarn}}<br>
 | 
								{{linkwarn}}<br>
 | 
				
			||||||
@@ -443,6 +503,7 @@ TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のため
 | 
				
			|||||||
<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
				
			||||||
 | 
					<script type="text/javascript" src="../../js/platform/pickr.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
				
			||||||
@@ -32,7 +32,7 @@
 | 
				
			|||||||
<script type="text/javascript" src="../../js/common/modal.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 type="text/javascript" src="../../js/ui/jquery-ui.min.js"></script>
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
var ver="Miria (17.1.1)";
 | 
					var ver="Miria (17.2.0)";
 | 
				
			||||||
//betaを入れるとバージョンチェックしない
 | 
					//betaを入れるとバージョンチェックしない
 | 
				
			||||||
//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
					//GitHubに上げるときはindex.htmlをちゃんとする。(index.start.html)
 | 
				
			||||||
//var ver="beta";
 | 
					//var ver="beta";
 | 
				
			||||||
@@ -54,7 +54,7 @@ var tlid=0;
 | 
				
			|||||||
</div>
 | 
					</div>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
<div id="post-box" class="z-depth-5">
 | 
					<div id="post-box" class="z-depth-5">
 | 
				
			||||||
<div id="post-bar">{{post-new}}</div>
 | 
					<div id="post-bar">crwdns2402:0crwdne2402:0</div>
 | 
				
			||||||
<!--トゥートボックス-->
 | 
					<!--トゥートボックス-->
 | 
				
			||||||
<div id="left-side">
 | 
					<div id="left-side">
 | 
				
			||||||
<div class="row" style="margin-bottom:0;">
 | 
					<div class="row" style="margin-bottom:0;">
 | 
				
			||||||
@@ -182,13 +182,13 @@ var tlid=0;
 | 
				
			|||||||
		<a onclick="nowplaying('spotify');">crwdns1880:0crwdne1880:0</a>
 | 
							<a onclick="nowplaying('spotify');">crwdns1880:0crwdne1880:0</a>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
		<a onclick="nowplaying('itunes');">crwdns1882:0crwdne1882:0</a>
 | 
							<a onclick="nowplaying('itunes');">crwdns2404:0crwdne2404:0</a>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
		<a onclick="schedule();">crwdns1884:0crwdne1884:0</a>
 | 
							<a onclick="schedule();">crwdns1884:0crwdne1884:0</a>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
		<a onclick="pollToggle();">{{poll}}</a>
 | 
							<a onclick="pollToggle();">crwdns2406:0crwdne2406:0</a>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	</ul>
 | 
						</ul>
 | 
				
			||||||
<!--hidden area-->
 | 
					<!--hidden area-->
 | 
				
			||||||
@@ -259,7 +259,7 @@ var tlid=0;
 | 
				
			|||||||
	<!--Poll UI-->
 | 
						<!--Poll UI-->
 | 
				
			||||||
	<div id="poll" class="hide">
 | 
						<div id="poll" class="hide">
 | 
				
			||||||
		<select id="poll-sel"  onchange="pollProviderCk()">
 | 
							<select id="poll-sel"  onchange="pollProviderCk()">
 | 
				
			||||||
			<option value="nothing">{{pollDdisabled}}</option>
 | 
								<option value="nothing">crwdns2408:0crwdne2408:0</option>
 | 
				
			||||||
			<option value="votedon">votedon.</option>
 | 
								<option value="votedon">votedon.</option>
 | 
				
			||||||
			<option value="mastodon-poll">Mastodon(2.8~)</option>
 | 
								<option value="mastodon-poll">Mastodon(2.8~)</option>
 | 
				
			||||||
		</select>
 | 
							</select>
 | 
				
			||||||
@@ -267,14 +267,14 @@ var tlid=0;
 | 
				
			|||||||
	WIP
 | 
						WIP
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div id="mastodon-poll" class="poll-provider hide">
 | 
							<div id="mastodon-poll" class="poll-provider hide">
 | 
				
			||||||
			<input type="text" class="mastodon-choice" placeholder="{{choice}}1">
 | 
								<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:01">
 | 
				
			||||||
			<input type="text" class="mastodon-choice" placeholder="{{choice}}2">
 | 
								<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:02">
 | 
				
			||||||
			<input type="text" class="mastodon-choice" placeholder="{{choice}}3">
 | 
								<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:03">
 | 
				
			||||||
			<input type="text" class="mastodon-choice" placeholder="{{choice}}4">
 | 
								<input type="text" class="mastodon-choice" placeholder="crwdns2414:0crwdne2414:04">
 | 
				
			||||||
			<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
 | 
								<input type="checkbox" class="filled-in" id="poll-multiple" value="1" />
 | 
				
			||||||
			<label for="poll-multiple">{{pollmulti}}</label><br>
 | 
								<label for="poll-multiple">crwdns2416:0crwdne2416:0</label><br>
 | 
				
			||||||
			<input type="checkbox" class="filled-in" id="poll-until" value="1" />
 | 
								<input type="checkbox" class="filled-in" id="poll-until" value="1" />
 | 
				
			||||||
			<label for="poll-until">{{polluntil}}</label><br>
 | 
								<label for="poll-until">crwdns2412:0crwdne2412:0</label><br>
 | 
				
			||||||
			<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">crwdns507:0crwdne507:0
 | 
								<input type="number" style="width:50px" id="days_poll" placeholder="d" value="0">crwdns507:0crwdne507:0
 | 
				
			||||||
			<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">crwdns508:0crwdne508:0
 | 
								<input type="number" style="width:50px" id="hours_poll" placeholder="h" value="0">crwdns508:0crwdne508:0
 | 
				
			||||||
			<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="0">crwdns509:0crwdne509:0
 | 
								<input type="number" style="width:50px" id="mins_poll" placeholder="m" value="0">crwdns509:0crwdne509:0
 | 
				
			||||||
@@ -582,17 +582,18 @@ var tlid=0;
 | 
				
			|||||||
		<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
							<a href="https://thedesk.top" target="_blank">HP</a><br>
 | 
				
			||||||
		<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
							<a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
			<div id="release-Miria_17-1-0" class="release-do" style="display:none; ">
 | 
								<div id="release-Miria_17-2-0" class="release-do" style="display:none; ">
 | 
				
			||||||
					<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
										<a href="https://code.cutls.com/thedesk-log/" target="_blank">開発の経緯</a><br>
 | 
				
			||||||
					<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
										<a href="https://ja.mstdn.wiki/TheDesk" target="_blank">機能一覧</a><br>
 | 
				
			||||||
					Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
										Entyでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。<br>
 | 
				
			||||||
					困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
										困ったときは、<a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。
 | 
				
			||||||
					<h5>Release Note Miria (17.1.0)</h5>
 | 
										<h5>Release Note Miria (17.2.0)</h5>
 | 
				
			||||||
					トゥートボックスがフロートタイプに。左下、右下以外にも自由においてください。<br>
 | 
										カスタムテーマを実装。Misskeyのテーマとの一定の互換性あり。<a href="https://assets.msky.cafe/" target="_blank">MiAS</a>から80を超えるテーマを入手。
 | 
				
			||||||
					いろいろとアニメーション入れた(硬派な方は設定「タイムラインの設定」からオフに)<br>
 | 
										<a href="https://thedesk.top/mias.html">注意点</a><br>
 | 
				
			||||||
					アンケートができるように(OK:Mastodon (2.8~)/WIP: votedon./ NG: ニコフレ)<br>
 | 
										Misskeyのログイン方法変更につき、いちいちDevCenterに行かなくてもよくなりました。<br>
 | 
				
			||||||
					フォント選択機能が復活<br>
 | 
										日本語でベタ書きしていたダイアログを一部多言語対応に変更。<br>
 | 
				
			||||||
					WindowsからiTunesやAIMP、その他CAD系のNowPlayingができるように。要プラグインのソフトもある。<br>
 | 
										
 | 
				
			||||||
 | 
										<img class="emoji" draggable="false" alt="⚠" src="https://twemoji.maxcdn.com/2/72x72/26a0.png">TheDeskのMisskeyについての機能追加は終了しています。<br>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<br><br>
 | 
								<br><br>
 | 
				
			||||||
			<h3>crwdns473:0crwdne473:0</h3>
 | 
								<h3>crwdns473:0crwdne473:0</h3>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,16 +12,20 @@
 | 
				
			|||||||
	<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
						<meta content="width=device-width,initial-scale=1.0" name="viewport">
 | 
				
			||||||
	<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/materialize.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/themes.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
 | 
						<link href="../../css/pickr.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
						<link href="../../css/master.css" type="text/css" rel="stylesheet">
 | 
				
			||||||
	<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
						<link href='../../css/font-awesome.css' rel='stylesheet' type='text/css'>
 | 
				
			||||||
	<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
						<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300" rel="stylesheet">
 | 
				
			||||||
	<meta charset="utf-8">
 | 
						<meta charset="utf-8">
 | 
				
			||||||
 | 
						<style>input{max-height:50px!important} .pcr-result{height:1rem !important;}</style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body id="mainView" style="overflow-y:scroll">
 | 
					<body id="mainView" style="overflow-y:scroll">
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/jquery.js"></script>
 | 
					<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/platform/first.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
					<script type="text/javascript" src="../../js/common/materialize.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.ps.js"></script>
 | 
				
			||||||
 | 
					<script src="https://unpkg.com/json5@^2.0.0/dist/index.min.js"></script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h4>crwdns524:0crwdne524:0</h4>
 | 
					<h4>crwdns524:0crwdne524:0</h4>
 | 
				
			||||||
<ul class="collapsible" data-collapsible="accordion">
 | 
					<ul class="collapsible" data-collapsible="accordion">
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
@@ -30,21 +34,11 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="collapsible-body">
 | 
						<div class="collapsible-body">
 | 
				
			||||||
		<h5>crwdns530:0crwdne530:0</h5>
 | 
							<h5>crwdns530:0crwdne530:0</h5>
 | 
				
			||||||
		<a href="../ja/setting.html">日本語(Japanese)</a>/<a href="../en/setting.html">English</a>/<a href="../ps/setting.html">Crowdin web translate</a>/
 | 
							To translate with Crowdin, you have to login Crowdin and restart TheDesk when login is finished.<br>
 | 
				
			||||||
 | 
							<a href="../ja/setting.html" onclick="changelang('ja')">日本語(Japanese)</a>/<a href="../en/setting.html" onclick="changelang('en')">English</a>/<a href="../ps/setting.html" onclick="changelang('ps')">Crowdin web translate</a>/
 | 
				
			||||||
		<h5>crwdns531:0crwdne531:0</h5>
 | 
							<h5>crwdns531:0crwdne531:0</h5>
 | 
				
			||||||
		<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">crwdns533:0crwdne533:0</button>
 | 
							<button onclick="exportSettings()" class="btn waves-effect lime darken-3" style="width:100%; max-width:200px;">crwdns533:0crwdne533:0</button>
 | 
				
			||||||
		<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">crwdns532:0crwdne532:0</button>
 | 
							<button onclick="importSettings()" class="btn waves-effect cyan darken-3" style="width:100%; max-width:200px;">crwdns532:0crwdne532:0</button>
 | 
				
			||||||
		<h5>crwdns534:0crwdne534:0</h5>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
					 | 
				
			||||||
		<label for="black">Black</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
					 | 
				
			||||||
		<label for="white">White</label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
					 | 
				
			||||||
		<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
					 | 
				
			||||||
		<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
					 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
					 | 
				
			||||||
		<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
					 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>crwdns1898:0crwdne1898:0</h5>crwdns536:0crwdne536:0
 | 
							<h5>crwdns1898:0crwdne1898:0</h5>crwdns536:0crwdne536:0
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
@@ -59,12 +53,12 @@
 | 
				
			|||||||
		<input class="with-gap" onchange="settings()" name="notf" type="radio" id="ntf_no" value="no" />
 | 
							<input class="with-gap" onchange="settings()" name="notf" type="radio" id="ntf_no" value="no" />
 | 
				
			||||||
		<label for="ntf_no">crwdns527:0crwdne527:0</label>
 | 
							<label for="ntf_no">crwdns527:0crwdne527:0</label>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>crwdns541:0crwdne541:0</h5>crwdns542:0crwdne542:0
 | 
							<h5>crwdns2376:0crwdne2376:0</h5>crwdns542:0crwdne542:0
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<input type="text" style="width:50px" id="width">pxcrwdns543:0crwdne543:0
 | 
							<input type="text" style="width:50px" id="width">pxcrwdns543:0crwdne543:0
 | 
				
			||||||
		<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button>
 | 
							<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>{{fixwidth}}</h5>{{fixwidthwarn}}
 | 
							<h5>crwdns2378:0crwdne2378:0</h5>crwdns2380:0crwdne2380:0
 | 
				
			||||||
		<input type="text" style="width:50px" id="fixwidth">pxcrwdns543:0crwdne543:0
 | 
							<input type="text" style="width:50px" id="fixwidth">pxcrwdns543:0crwdne543:0
 | 
				
			||||||
		<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button>
 | 
							<button class="btn waves-effect" style="width:100px;" onclick="settings()">crwdns525:0crwdne525:0</button>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
@@ -88,6 +82,72 @@
 | 
				
			|||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	</li>
 | 
						</li>
 | 
				
			||||||
	<li>
 | 
						<li>
 | 
				
			||||||
 | 
						<div class="collapsible-header">
 | 
				
			||||||
 | 
								<i class="material-icons">color_lens</i>crwdns534:0crwdne534:0
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div class="collapsible-body">
 | 
				
			||||||
 | 
							<h4>crwdns2422:0crwdne2422:0</h4>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="black" value="black" />
 | 
				
			||||||
 | 
							<label for="black">Black</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="white" value="white" />
 | 
				
			||||||
 | 
							<label for="white">White</label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="indigo" value="indigo" />
 | 
				
			||||||
 | 
							<label for="indigo">Indigo<span class="imas hide">(エンドレスナイト)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="brown" value="brown" />
 | 
				
			||||||
 | 
							<label for="brown">Brown<span class="imas hide">(ビタースイート・タイム)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="green" value="green" />
 | 
				
			||||||
 | 
							<label for="green">Green<span class="imas hide">(ユースフルロマンス)</span></label>
 | 
				
			||||||
 | 
							<input class="with-gap" onchange="settings()" name="theme" type="radio" id="custom" value="custom" />
 | 
				
			||||||
 | 
							<label for="custom">Custom</label>
 | 
				
			||||||
 | 
							<div style="width:300px" id="sel-selector">
 | 
				
			||||||
 | 
								<select id="custom-sel-sel" class="custom-sel" onchange="customSel()"></select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h4>crwdns2424:0crwdne2424:0</h4>
 | 
				
			||||||
 | 
							<div style="width:300px" id="edit-selector" data-add="crwdns2436:0crwdne2436:0">
 | 
				
			||||||
 | 
								<select id="custom-edit-sel" class="custom-sel" onchange="custom()">
 | 
				
			||||||
 | 
									<option value="add_new">crwdns2436:0crwdne2436:0</option>
 | 
				
			||||||
 | 
								</select>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<h5>crwdns2438:0crwdne2438:0</h5>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_name" placeholder="crwdns2438:0crwdne2438:0...">
 | 
				
			||||||
 | 
							<h5>crwdns2440:0crwdne2440:0</h5>
 | 
				
			||||||
 | 
							<div class="input-field"><textarea style="width:300px" id="custom_desc" class="materialize-textarea" placeholder="crwdns2440:0crwdne2440:0..."></textarea></div>
 | 
				
			||||||
 | 
							<h5>crwdns2426:0crwdne2426:0</h5>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="dark" value="dark" checked="true" />
 | 
				
			||||||
 | 
							<label for="dark">Dark</label>
 | 
				
			||||||
 | 
							<input class="with-gap" name="derection" type="radio" id="light" value="light" />
 | 
				
			||||||
 | 
							<label for="light">Light</label>
 | 
				
			||||||
 | 
							<div id="pickers">
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Primary</h5>crwdns2430:0crwdne2430:0
 | 
				
			||||||
 | 
								<div id="color-picker0-wrap"><div class="color-picker" id="color-picker0"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker0_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Secondary</h5>crwdns2428:0crwdne2428:0
 | 
				
			||||||
 | 
								<div id="color-picker1-wrap"><div class="color-picker" id="color-picker1"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker1_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Texts</h5>crwdns2432:0crwdne2432:0
 | 
				
			||||||
 | 
								<div id="color-picker2-wrap"><div class="color-picker" id="color-picker2"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker2_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<div>
 | 
				
			||||||
 | 
								<h5>Accent</h5>crwdns2434:0crwdne2434:0
 | 
				
			||||||
 | 
								<div id="color-picker3-wrap"><div class="color-picker" id="color-picker3"></div></div>
 | 
				
			||||||
 | 
								<input type="hidden" id="color-picker3_value">
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<button class="btn-large waves-effect" onclick="customComp()">crwdns528:0crwdne528:0</button> <button class="btn waves-effect red disabled" id="delTheme" onclick="deleteIt()">{{delete}}</button><br><br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_json" class="materialize-textarea" placeholder="JSON style" readonly><br>
 | 
				
			||||||
 | 
							crwdns2442:0crwdne2442:0
 | 
				
			||||||
 | 
							<h4>crwdns2444:0crwdne2444:0</h4>
 | 
				
			||||||
 | 
							{{cImpWarn}}<br>
 | 
				
			||||||
 | 
							<input type="text" style="width:300px" id="custom_import" class="materialize-textarea" placeholder="JSON/JSON5 style">
 | 
				
			||||||
 | 
							<button class="btn waves-effect" onclick="customImp()">crwdns532:0crwdne532:0</button><br>
 | 
				
			||||||
 | 
						</li>
 | 
				
			||||||
 | 
						<li>
 | 
				
			||||||
	<div class="collapsible-header">
 | 
						<div class="collapsible-header">
 | 
				
			||||||
			<i class="material-icons">reorder</i>crwdns550:0crwdne550:0
 | 
								<i class="material-icons">reorder</i>crwdns550:0crwdne550:0
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
@@ -182,7 +242,7 @@
 | 
				
			|||||||
		<input class="with-gap" onchange="settings()" name="ticker" type="radio" id="ticker_no" value="no" />
 | 
							<input class="with-gap" onchange="settings()" name="ticker" type="radio" id="ticker_no" value="no" />
 | 
				
			||||||
		<label for="ticker_no">crwdns527:0crwdne527:0</label>
 | 
							<label for="ticker_no">crwdns527:0crwdne527:0</label>
 | 
				
			||||||
		<br>
 | 
							<br>
 | 
				
			||||||
		<h5>{{animation}}</h5>
 | 
							<h5>crwdns2446:0crwdne2446:0</h5>
 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="anime" type="radio" id="anime_yes" value="yes" />
 | 
							<input class="with-gap" onchange="settings()" name="anime" type="radio" id="anime_yes" value="yes" />
 | 
				
			||||||
		<label for="anime_yes">crwdns526:0crwdne526:0</label>
 | 
							<label for="anime_yes">crwdns526:0crwdne526:0</label>
 | 
				
			||||||
		<input class="with-gap" onchange="settings()" name="anime" type="radio" id="anime_no" value="no" />
 | 
							<input class="with-gap" onchange="settings()" name="anime" type="radio" id="anime_no" value="no" />
 | 
				
			||||||
@@ -322,8 +382,8 @@
 | 
				
			|||||||
			<i class="fa fa-spotify"></i>crwdns624:0crwdne624:0
 | 
								<i class="fa fa-spotify"></i>crwdns624:0crwdne624:0
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<div class="collapsible-body">
 | 
							<div class="collapsible-body">
 | 
				
			||||||
			<!-->h5>{{npProvider}}</h5>
 | 
								<h5>crwdns2354:0crwdne2354:0</h5>
 | 
				
			||||||
			{{npPeoviderWarn}}<br>
 | 
								crwdns2356:0crwdne2356:0<br>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="aimp" value="AIMP" />
 | 
				
			||||||
			<label for="aimp">AIMP</label>
 | 
								<label for="aimp">AIMP</label>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="itunes" value="ITUNES" />
 | 
				
			||||||
@@ -337,7 +397,7 @@
 | 
				
			|||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="wlm" value="WLM" />
 | 
				
			||||||
			<label for="wlm">WLM</label>
 | 
								<label for="wlm">WLM</label>
 | 
				
			||||||
			<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
								<input class="with-gap" onchange="npprovider()" name="npp" type="radio" id="cad" value="CAD" />
 | 
				
			||||||
			<label for="cad">CAD</label><br><br-->
 | 
								<label for="cad">CAD</label><br><br>
 | 
				
			||||||
			crwdns625:0crwdne625:0<i class="material-icons" style="font-size:24px;">music_note</i>crwdns626:0crwdne626:0<br>
 | 
								crwdns625:0crwdne625:0<i class="material-icons" style="font-size:24px;">music_note</i>crwdns626:0crwdne626:0<br>
 | 
				
			||||||
			<h5>crwdns627:0crwdne627:0</h5>
 | 
								<h5>crwdns627:0crwdne627:0</h5>
 | 
				
			||||||
			crwdns628:0crwdne628:0<br>
 | 
								crwdns628:0crwdne628:0<br>
 | 
				
			||||||
@@ -348,9 +408,9 @@
 | 
				
			|||||||
			crwdns632:0crwdne632:0<br>
 | 
								crwdns632:0crwdne632:0<br>
 | 
				
			||||||
			<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
 | 
								<textarea id="np-temp" class="materialize-textarea" data-length="500">#NowPlaying {song} / {album} / {artist}
 | 
				
			||||||
{url}</textarea><br>
 | 
					{url}</textarea><br>
 | 
				
			||||||
				crwdns633:0{song}crwdnd633:0{album}crwdnd633:0{artist}crwdnd633:0{url}crwdne633:0<br>
 | 
									crwdns2358:0{song}crwdnd2358:0{album}crwdnd2358:0{artist}crwdnd2358:0{url}crwdne2358:0<br>
 | 
				
			||||||
				crwdns634:0{url}crwdnd634:0{composer}crwdnd634:0{hz}crwdnd634:0{bitRate}crwdnd634:0{genre}crwdne634:0<br>
 | 
									crwdns2360:0{song}crwdnd2360:0{album}crwdnd2360:0{artist}crwdnd2360:0{composer}crwdnd2360:0{hz}crwdnd2360:0{bitRate}crwdnd2360:0{genre}crwdne2360:0<br>
 | 
				
			||||||
				{{templete3}}<br>
 | 
									crwdns2362:0{song}crwdnd2362:0{album}crwdnd2362:0{artist}crwdne2362:0<br>
 | 
				
			||||||
				<span class="imas hide">CINDERELLA NowPlaying(imastodon.net限定)では作曲家{composer}/作詞家{lyricist}/BPM{bpm}が有効です。<br>
 | 
									<span class="imas hide">CINDERELLA NowPlaying(imastodon.net限定)では作曲家{composer}/作詞家{lyricist}/BPM{bpm}が有効です。<br>
 | 
				
			||||||
                    CINDERELLA NowPlayingはimastodon.netにログインしているとき、トゥート欄に「//」を入力し、その後に曲名を入れることで可能です。</span><br>
 | 
					                    CINDERELLA NowPlayingはimastodon.netにログインしているとき、トゥート欄に「//」を入力し、その後に曲名を入れることで可能です。</span><br>
 | 
				
			||||||
			<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
 | 
								<button onclick="spotifySave()" class="btn waves-effect" style="width:100px;">crwdns525:0crwdne525:0</button>
 | 
				
			||||||
@@ -443,6 +503,7 @@ TheDeskおよびCutls Pは<a href="https://donken.org/">被災地支援のため
 | 
				
			|||||||
<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
					<script type="text/javascript" src="../../js/lang/lang.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/spotify.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/speech.js"></script>
 | 
				
			||||||
 | 
					<script type="text/javascript" src="../../js/platform/pickr.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/settings.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
					<script type="text/javascript" src="../../js/ui/theme.js"></script>
 | 
				
			||||||
<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
					<script type="text/javascript" src="../../js/tl/date.js"></script>
 | 
				
			||||||
@@ -78,9 +78,9 @@ a,button,input,label,i{
 | 
				
			|||||||
        <p>crwdns669:0crwdne669:0</p>
 | 
					        <p>crwdns669:0crwdne669:0</p>
 | 
				
			||||||
        <span id="now"></span>→<b id="ver"></b><br>
 | 
					        <span id="now"></span>→<b id="ver"></b><br>
 | 
				
			||||||
        <span id="det"></span><br>
 | 
					        <span id="det"></span><br>
 | 
				
			||||||
        <button class="waves-effect btn windows" onclick="update('install')" style="margin-left:15px;">{{installer}}</button>
 | 
					        <button class="waves-effect btn windows" onclick="update('install')" style="margin-left:15px;">crwdns2382:0crwdne2382:0</button>
 | 
				
			||||||
        <button class="waves-effect btn windows" onclick="update('portable')" style="margin-left:15px;">crwdns1950:0crwdne1950:0</button>
 | 
					        <button class="waves-effect btn windows" onclick="update('portable')" style="margin-left:15px;">crwdns1950:0crwdne1950:0</button>
 | 
				
			||||||
        <span class="linux">{{snap}}<br></span>
 | 
					        <span class="linux">crwdns2384:0crwdne2384:0<br></span>
 | 
				
			||||||
        <button class="waves-effect btn linux" onclick="update('linux')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
 | 
					        <button class="waves-effect btn linux" onclick="update('linux')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
 | 
				
			||||||
        <button class="waves-effect btn mac" onclick="update('mac')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
 | 
					        <button class="waves-effect btn mac" onclick="update('mac')" style="margin-left:15px;">crwdns670:0crwdne670:0</button>
 | 
				
			||||||
        <br>
 | 
					        <br>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user