Compare commits
	
		
			108 Commits
		
	
	
		
			dependabot
			...
			49016e57e4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 49016e57e4 | |||
| 9856c34adc | |||
|  | 1e589edc23 | ||
|  | d63e60e096 | ||
|  | ac56c71181 | ||
| db39fea577 | |||
|  | c4ebdb93fb | ||
|  | ab80d6e868 | ||
|  | fbaf6e0a80 | ||
|  | a36116be0a | ||
|  | c7fa139cef | ||
|  | 276751f206 | ||
|  | a550841eeb | ||
|  | 4dfad6aa02 | ||
|  | 131c68dd66 | ||
|  | 2bb8032ea9 | ||
|  | 64d93d92d7 | ||
|  | 492b9efcf0 | ||
|  | cb8a2cac14 | ||
|  | 8e7608921a | ||
|  | 52b7eec8d7 | ||
|  | 72ce1b80c4 | ||
|  | bfacf0fb51 | ||
|  | aa41adebc0 | ||
|  | 2eef97be6f | ||
|  | a68d0d8516 | ||
|  | b60852c67c | ||
|  | 744705ca2a | ||
|  | 019c4d8e96 | ||
| f45ab949b2 | |||
|  | ab460d1401 | ||
|  | 679151e8ea | ||
|  | da76c6732d | ||
|  | b108f0e09d | ||
|  | 8d30d5d6dc | ||
|  | 8b5a9520b2 | ||
|  | 0f99a1098e | ||
|  | a773315bf6 | ||
|  | 6e247502da | ||
|  | 3151ed383e | ||
|  | 607a6a204b | ||
|  | 0dae100c84 | ||
|  | d011c94ea2 | ||
|  | cd59a644a5 | ||
|  | 31ebb2df3f | ||
|  | 9c49a78318 | ||
|  | e3c10550d5 | ||
|  | 75dd9174a8 | ||
|  | d62bc57368 | ||
|  | 184a2bf3aa | ||
|  | 49c4c3f23f | ||
|  | aa377b78e0 | ||
|  | a64813d2d9 | ||
|  | ffcbe71ecb | ||
|  | f9462ad5ae | ||
|  | bb73a7eda7 | ||
|  | 36ad187296 | ||
|  | 5621ffbe42 | ||
|  | 9758a2a7d8 | ||
|  | d6fd519086 | ||
|  | b9ff0ec817 | ||
|  | 3601bfc664 | ||
|  | 73a8a117b0 | ||
|  | 4af29e0caa | ||
|  | 8519980638 | ||
|  | c7df190d79 | ||
|  | 9290c146e3 | ||
|  | 7769113b3c | ||
|  | dafc36b01d | ||
|  | 55a3571edd | ||
|  | bdae21bd12 | ||
|  | ac26f2ca6b | ||
|  | 723ff59a21 | ||
|  | c3feca504c | ||
|  | a294b1143b | ||
|  | 541826f2fd | ||
|  | aa6c2ad186 | ||
|  | c51dae6d60 | ||
|  | b2a87ae99d | ||
|  | 5230c6d672 | ||
|  | 29d0e80f24 | ||
|  | 4b147593ca | ||
|  | b1137d175a | ||
|  | bbc90b6d6f | ||
|  | 9fe9bcd04e | ||
|  | 79ae11aea8 | ||
|  | 50582d49f0 | ||
|  | 897fb3082d | ||
|  | 947d0b77bd | ||
|  | e07e79a918 | ||
|  | cdc3b22752 | ||
|  | 0988728bb2 | ||
|  | 0ad628b259 | ||
|  | 44af72f9e6 | ||
|  | 2d0316035f | ||
|  | 735c2e153e | ||
|  | 6f9d6cb35f | ||
|  | de796db39a | ||
|  | 88cb706ff5 | ||
|  | 6bc19354c9 | ||
|  | c70b69d043 | ||
|  | f53e0f4550 | ||
|  | 672de930ce | ||
|  | 2ba4d2303a | ||
|  | 8acf86d9cb | ||
|  | 5de0ede4e1 | ||
|  | 7feea86cf7 | ||
|  | 269405a40f | 
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -26,7 +26,7 @@ app/git | ||||
| *.code-workspace | ||||
| releasenote.md | ||||
| app/yarn-error.log | ||||
| app/js/platform/aiscript.js | ||||
| app/js/platform/native.js | ||||
| app/view/es-ES | ||||
| app/view/fr-FR | ||||
| app/view/no-NO | ||||
| @@ -34,7 +34,9 @@ app/view/zh-CN | ||||
| app/view/ru-RU | ||||
| app/view/zh-TW | ||||
| app/view/pt-BR | ||||
| app/view/si-LK | ||||
| app/build.js | ||||
| app/view/make/make.js | ||||
| app/view/make/makeCli.ts | ||||
| app/.env | ||||
| app/view/make/index.generated.html | ||||
							
								
								
									
										8
									
								
								.prettierrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.prettierrc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| { | ||||
|     "tabWidth": 4, | ||||
|     "useTabs": true, | ||||
|     "semi": false, | ||||
|     "singleQuote": true, | ||||
|     "printWidth": 200, | ||||
|     "jsxBracketSameLine": true | ||||
| } | ||||
| @@ -44,9 +44,7 @@ Please write issues to improve TheDesk affinity with Pleroma. | ||||
|  | ||||
| ## Contributors | ||||
|  | ||||
| * <img src="https://user-images.githubusercontent.com/17561618/66582029-162df380-ebbc-11e9-8a6f-1832b3a35d89.png" width="20">[toneji](https://minohdon.jp/@toneji) Build for macOS(Now: Travis CI)   | ||||
| * <img src="https://avatars3.githubusercontent.com/u/24523508?s=88&v=4" width="20">[popn_ja](https://popon.pptdn.jp/@popn_ja) Build for Linux(Now: Travis CI)   | ||||
| * <img src="https://user-images.githubusercontent.com/17561618/66582379-a3714800-ebbc-11e9-8402-d81a35a3be9f.png" width="20">[kPherox](https://pl.kpherox.dev/kPherox) Fellow coder | ||||
| [](https://github.com/cutls/TheDesk/graphs/contributors) | ||||
|  | ||||
| ## Support | ||||
|  | ||||
|   | ||||
| @@ -35,9 +35,10 @@ Crowdinから翻訳に参加してみませんか?: https://translate.thedesk. | ||||
| Pleromaは、Mastodon APIとの互換性を謳っていますが、実際には様々な差異があり、TheDeskで不具合が発生することがあります。   | ||||
| Issuesに書いてある問題についてはなるべく対処しますので、ぜひお知らせください。 | ||||
|  | ||||
| ## 詳しく | ||||
| ## よみもの | ||||
|  | ||||
| [TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk) | ||||
| * [TheDesk - マストドン日本語ウィキ](https://ja.mstdn.wiki/TheDesk) | ||||
| * [TheDeskを作って思う今クライアントを作る意味 | Cutls Code Archives ](https://code.cutls.com/thedesk-log/) | ||||
|  | ||||
| ## ライセンス | ||||
|  | ||||
| @@ -47,9 +48,7 @@ Issuesに書いてある問題についてはなるべく対処しますので | ||||
|  | ||||
| ## 主なコントリビューター | ||||
|  | ||||
| * <img src="https://user-images.githubusercontent.com/17561618/66582029-162df380-ebbc-11e9-8a6f-1832b3a35d89.png" width="20">[とねぢ](https://minohdon.jp/@toneji) macOSビルダー(現在はTravis CI) | ||||
| * <img src="https://avatars3.githubusercontent.com/u/24523508?s=88&v=4" width="20">[ぽぷんじゃ](https://popon.pptdn.jp/@popn_ja) Linuxビルダー(現在はTravis CI) | ||||
| * <img src="https://user-images.githubusercontent.com/17561618/66582379-a3714800-ebbc-11e9-8402-d81a35a3be9f.png" width="20">[kPherox](https://pl.kpherox.dev/kPherox) | ||||
| [](https://github.com/cutls/TheDesk/graphs/contributors) | ||||
|  | ||||
| ## 支援 | ||||
|  | ||||
|   | ||||
							
								
								
									
										263
									
								
								app/about.html
									
									
									
									
									
								
							
							
						
						
									
										263
									
								
								app/about.html
									
									
									
									
									
								
							| @@ -1,139 +1,134 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="ja"> | ||||
| 	<head> | ||||
| 		<title>TheDesk</title> | ||||
| 		<meta content="width=device-width,initial-scale=1.0" name="viewport" /> | ||||
| 		<link href="./node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="./css/font-awesome.css" rel="stylesheet" type="text/css" /> | ||||
| 		<link href="./css/themes.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="./css/master.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet" /> | ||||
| 		<meta charset="utf-8" /> | ||||
| 		<style> | ||||
| 			body { | ||||
| 				font-family: 'Open Sans'; | ||||
| 				-webkit-app-region: drag; | ||||
| 				cursor: move; | ||||
| 				padding: 5px; | ||||
| 				padding-top: 15px; | ||||
| 			} | ||||
|  | ||||
| 			a, | ||||
| 			button { | ||||
| 				-webkit-app-region: no-drag; | ||||
| 			} | ||||
| <head> | ||||
|     <title>TheDesk</title> | ||||
|     <meta content="width=device-width,initial-scale=1.0" name="viewport" /> | ||||
|     <link href="./node_modules/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="./css/font-awesome.css" rel="stylesheet" type="text/css" /> | ||||
|     <link href="./css/themes.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="./css/master.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Open+Sans:300|Baloo+Bhai" rel="stylesheet" /> | ||||
|     <meta charset="utf-8" /> | ||||
|     <style> | ||||
|         body { | ||||
|             font-family: 'Open Sans'; | ||||
|             -webkit-app-region: drag; | ||||
|             cursor: move; | ||||
|             padding: 5px; | ||||
|             padding-top: 15px; | ||||
|         } | ||||
|          | ||||
|         a, | ||||
|         button { | ||||
|             -webkit-app-region: no-drag; | ||||
|         } | ||||
|          | ||||
|         .container { | ||||
|             width: 100%; | ||||
|             display: grid; | ||||
|             grid-template-columns: 1fr 1fr; | ||||
|             grid-template-rows: 1fr 1fr 1fr 1fr 1fr; | ||||
|             grid-template-areas: 'name1 data1' 'name2 data2' 'name3 data3' 'name4 data4' 'name5 data5' 'name6 data6'; | ||||
|             text-align: left; | ||||
|             margin: 5px; | ||||
|         } | ||||
|          | ||||
|         .area-name1 { | ||||
|             grid-area: name1; | ||||
|         } | ||||
|          | ||||
|         .area-data1 { | ||||
|             grid-area: data1; | ||||
|         } | ||||
|          | ||||
|         .area-name2 { | ||||
|             grid-area: name2; | ||||
|         } | ||||
|          | ||||
|         .area-data2 { | ||||
|             grid-area: data2; | ||||
|         } | ||||
|          | ||||
|         .area-name3 { | ||||
|             grid-area: name3; | ||||
|         } | ||||
|          | ||||
|         .area-data3 { | ||||
|             grid-area: data3; | ||||
|         } | ||||
|          | ||||
|         .area-name4 { | ||||
|             grid-area: name4; | ||||
|         } | ||||
|          | ||||
|         .area-data4 { | ||||
|             grid-area: data4; | ||||
|         } | ||||
|          | ||||
|         .area-name5 { | ||||
|             grid-area: name5; | ||||
|         } | ||||
|          | ||||
|         .area-data5 { | ||||
|             grid-area: data5; | ||||
|         } | ||||
|          | ||||
|         .area-name6 { | ||||
|             grid-area: name6; | ||||
|         } | ||||
|          | ||||
|         .area-data6 { | ||||
|             grid-area: data6; | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
|  | ||||
| 			.container { | ||||
| 				width: 100%; | ||||
| 				display: grid; | ||||
| 				grid-template-columns: 1fr 1fr; | ||||
| 				grid-template-rows: 1fr 1fr 1fr 1fr 1fr; | ||||
| 				grid-template-areas: 'name1 data1' 'name2 data2' 'name3 data3' 'name4 data4' 'name5 data5' 'name6 data6'; | ||||
| 				text-align: left; | ||||
| 				margin: 5px; | ||||
| 			} | ||||
| <body class="center" style="overflow: hidden;"> | ||||
|     <script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script> | ||||
|     <script type="text/javascript" src="./js/platform/first-not-view.js"></script> | ||||
|     <script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script> | ||||
|     <img src="./img/desk.svg" style="max-width: 58%;" /> | ||||
|     <h5>TheDesk</h5> | ||||
|     <div class="container"> | ||||
|         <div class="area-name1">Display version</div> | ||||
|         <div class="area-data1" id="now"></div> | ||||
|         <div class="area-name2">Internal version</div> | ||||
|         <div class="area-data2" id="ver"></div> | ||||
|         <div class="area-name3">Commit(7chars)</div> | ||||
|         <div class="area-data3" id="hash"></div> | ||||
|         <div class="area-name4">Chromium</div> | ||||
|         <div class="area-data4" id="chrome"></div> | ||||
|         <div class="area-name5">Electron</div> | ||||
|         <div class="area-data5" id="electron"></div> | ||||
|         <div class="area-name6">Node.js</div> | ||||
|         <div class="area-data6" id="node"></div> | ||||
|     </div> | ||||
|     <div class="cp"> | ||||
|         Copyright © TheDesk 2018<br /> Main developer(author): <a href="https://1m.cutls.com/@Cutls" target="_blank">Cutls P</a><br /> | ||||
|         <a href="https://github.com/cutls/TheDesk/graphs/contributors" style="text-align: center; user-select: none;"><img src="https://opencollective.com/TheDesk/contributors.svg?width=700&button=false" style="width: 100%"></a> | ||||
|         <br /><a href="https://thedesk.top" target="_blank">Web site</a> | ||||
|     </div> | ||||
|     <button onclick="window.close()" class="btn waves-effect indigo" style="width: calc(100% - 10px);"><i class="material-icons left">close</i>Close</button> | ||||
|     <script type="text/javascript" src="./js/ui/theme.js"></script> | ||||
|     <script> | ||||
|         var about = JSON.parse(localStorage.getItem('about')) | ||||
|         $('#now').text(localStorage.getItem('ver')) | ||||
|         $('#node').text(about[0]) | ||||
|         $('#chrome').text(about[1]) | ||||
|         $('#electron').text(about[2]) | ||||
|         if (location.search) { | ||||
|             var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/) | ||||
|             var ver = m[1] | ||||
|             $('#ver').text(ver) | ||||
|         } | ||||
|         $('#hash').html('<a href="https://github.com/cutls/TheDesk/commits/' + about[3] + '" target="_blank">' + about[3].slice(0, 7) + '</a>') | ||||
|         $(document).on('click', 'a', (e) => { | ||||
|             var url = $(e.target).attr('href') | ||||
|             postMessage(['openUrl', url], '*') | ||||
|             return false | ||||
|         }) | ||||
|     </script> | ||||
| </body> | ||||
|  | ||||
| 			.area-name1 { | ||||
| 				grid-area: name1; | ||||
| 			} | ||||
|  | ||||
| 			.area-data1 { | ||||
| 				grid-area: data1; | ||||
| 			} | ||||
|  | ||||
| 			.area-name2 { | ||||
| 				grid-area: name2; | ||||
| 			} | ||||
|  | ||||
| 			.area-data2 { | ||||
| 				grid-area: data2; | ||||
| 			} | ||||
|  | ||||
| 			.area-name3 { | ||||
| 				grid-area: name3; | ||||
| 			} | ||||
|  | ||||
| 			.area-data3 { | ||||
| 				grid-area: data3; | ||||
| 			} | ||||
|  | ||||
| 			.area-name4 { | ||||
| 				grid-area: name4; | ||||
| 			} | ||||
|  | ||||
| 			.area-data4 { | ||||
| 				grid-area: data4; | ||||
| 			} | ||||
|  | ||||
| 			.area-name5 { | ||||
| 				grid-area: name5; | ||||
| 			} | ||||
|  | ||||
| 			.area-data5 { | ||||
| 				grid-area: data5; | ||||
| 			} | ||||
|  | ||||
| 			.area-name6 { | ||||
| 				grid-area: name6; | ||||
| 			} | ||||
|  | ||||
| 			.area-data6 { | ||||
| 				grid-area: data6; | ||||
| 			} | ||||
| 		</style> | ||||
| 	</head> | ||||
|  | ||||
| 	<body class="center" style="overflow: hidden;"> | ||||
| 		<script type="text/javascript" src="./node_modules/jquery/dist/jquery.js"></script> | ||||
| 		<script type="text/javascript" src="./js/platform/first-not-view.js"></script> | ||||
| 		<script type="text/javascript" src="./node_modules/materialize-css/dist/js/materialize.js"></script> | ||||
| 		<img src="./img/desk.svg" style="max-width: 62%;" /> | ||||
| 		<h5>TheDesk</h5> | ||||
| 		<div class="container"> | ||||
| 			<div class="area-name1">Display version</div> | ||||
| 			<div class="area-data1" id="now"></div> | ||||
| 			<div class="area-name2">Internal version</div> | ||||
| 			<div class="area-data2" id="ver"></div> | ||||
| 			<div class="area-name3">Commit(7chars)</div> | ||||
| 			<div class="area-data3" id="hash"></div> | ||||
| 			<div class="area-name4">Chromium</div> | ||||
| 			<div class="area-data4" id="chrome"></div> | ||||
| 			<div class="area-name5">Electron</div> | ||||
| 			<div class="area-data5" id="electron"></div> | ||||
| 			<div class="area-name6">Node.js</div> | ||||
| 			<div class="area-data6" id="node"></div> | ||||
| 		</div> | ||||
| 		<div class="cp"> | ||||
| 			Copyright © TheDesk 2018<br /> | ||||
| 			Main developer(author): <a href="https://cutls.com/@Cutls" target="_blank">Cutls P</a><br /> | ||||
| 			Thanks:<a href="https://minohdon.jp/@toneji" target="_blank">toneji</a>/<a href="https://popon.pptdn.jp/@popn_ja" target="_blank">popn_ja</a>/<a | ||||
| 				href="https://pl.kpherox.dev/kPherox" | ||||
| 				target="_blank" | ||||
| 				>kPherox</a | ||||
| 			> | ||||
| 			and all users | ||||
| 			<img draggable="false" style="width: 0.8rem; top: 1px; margin-left: 1px; position: relative;" alt="❤️" title=":heart:" src="https://twemoji.maxcdn.com/2/72x72/2764.png" /> | ||||
| 			<br /><a href="https://thedesk.top" target="_blank">Web site</a> | ||||
| 		</div> | ||||
| 		<button onclick="window.close()" class="btn waves-effect indigo" style="width: calc(100% - 10px);"><i class="material-icons left">close</i>Close</button> | ||||
| 		<script type="text/javascript" src="./js/ui/theme.js"></script> | ||||
| 		<script> | ||||
| 			var about = JSON.parse(localStorage.getItem('about')) | ||||
| 			$('#now').text(localStorage.getItem('ver')) | ||||
| 			$('#node').text(about[0]) | ||||
| 			$('#chrome').text(about[1]) | ||||
| 			$('#electron').text(about[2]) | ||||
| 			if (location.search) { | ||||
| 				var m = location.search.match(/\?ver=([a-zA-Z-0-9.]+)/) | ||||
| 				var ver = m[1] | ||||
| 				$('#ver').text(ver) | ||||
| 			} | ||||
| 			$('#hash').html('<a href="https://github.com/cutls/TheDesk/commits/' + about[3] + '" target="_blank">' + about[3].slice(0, 7) + '</a>') | ||||
| 			$(document).on('click', 'a', (e) => { | ||||
| 				var url = $(e.target).attr('href') | ||||
| 				postMessage(['openUrl', url], '*') | ||||
| 				return false | ||||
| 			}) | ||||
| 		</script> | ||||
| 	</body> | ||||
| </html> | ||||
| </html> | ||||
							
								
								
									
										62
									
								
								app/build.js
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								app/build.js
									
									
									
									
									
								
							| @@ -70,8 +70,8 @@ async function cmd(options) { | ||||
|     if (isTrue(options, 'onlyStore') || isTrue(options, 'withStore')) { | ||||
|         console.log('start building for application stores') | ||||
|         construct(ver, basefile, false, true) | ||||
|         if ((platform == 'win32' && !isTrue(options, 'skiWindows')) || isTrue(options, 'windows', 'w')) { | ||||
|             if ((isTrue(options, 'withIa32') && arch == 'x64') || arch == 'ia32') { | ||||
|         if ((platform === 'win32' && !isTrue(options, 'skiWindows')) || isTrue(options, 'windows', 'w')) { | ||||
|             if ((isTrue(options, 'withIa32') && arch === 'x64') || arch === 'ia32') { | ||||
|                 config.nsis.artifactName = artifactName.replace('${arch}', 'ia32') | ||||
|                 await build(Platform.WINDOWS, Arch.ia32, config) | ||||
|                 fs.renameSync( | ||||
| @@ -83,7 +83,7 @@ async function cmd(options) { | ||||
|                     '../build/TheDesk-setup-ia32-store.exe' | ||||
|                 ) | ||||
|             } | ||||
|             if (arch == 'x64') { | ||||
|             if (arch === 'x64') { | ||||
|                 config.nsis.artifactName = artifactName.replace('${arch}', 'x64') | ||||
|                 await build(Platform.WINDOWS, Arch.x64, config) | ||||
|                 fs.renameSync( | ||||
| @@ -96,14 +96,14 @@ async function cmd(options) { | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|         if ((platform == 'linux' && !isTrue(options, 'skipLinux')) || isTrue(options, 'linux', 'l')) { | ||||
|             if (arch == 'ia32') { | ||||
|         if ((platform === 'linux' && !isTrue(options, 'skipLinux')) || isTrue(options, 'linux', 'l')) { | ||||
|             if (arch === 'ia32') { | ||||
|                 await build(Platform.LINUX, Arch.ia32, config) | ||||
|             } | ||||
|             if ((isTrue(options, 'withIa32') && arch == 'x64')) { | ||||
|             if ((isTrue(options, 'withIa32') && arch === 'x64')) { | ||||
|                 console.log('snapcraft does not curretly support builing i386 on amd64') | ||||
|             } | ||||
|             if (arch == 'x64') { | ||||
|             if (arch === 'x64') { | ||||
|                 await build(Platform.LINUX, Arch.x64, config) | ||||
|                 if (!isTrue(options, 'onlyStore')) { | ||||
|                     fs.renameSync( | ||||
| @@ -117,8 +117,8 @@ async function cmd(options) { | ||||
|     if (!isTrue(options, 'onlyStore')) { | ||||
|         console.log('start building for normal usage') | ||||
|         construct(ver, basefile, false, false) | ||||
|         if ((platform == 'win32' && !isTrue(options, 'skiWindows')) || isTrue(options, 'windows', 'w')) { | ||||
|             if ((isTrue(options, 'withIa32') && arch == 'x64') || arch == 'ia32') { | ||||
|         if ((platform === 'win32' && !isTrue(options, 'skiWindows')) || isTrue(options, 'windows', 'w')) { | ||||
|             if ((isTrue(options, 'withIa32') && arch === 'x64') || arch === 'ia32') { | ||||
|                 config.nsis.artifactName = artifactName.replace('${arch}', 'ia32') | ||||
|                 await build(Platform.WINDOWS, Arch.ia32, config) | ||||
|                 fs.renameSync( | ||||
| @@ -126,7 +126,7 @@ async function cmd(options) { | ||||
|                     '../build/TheDesk-ia32.exe' | ||||
|                 ) | ||||
|             } | ||||
|             if (arch == 'x64') { | ||||
|             if (arch === 'x64') { | ||||
|                 config.nsis.artifactName = artifactName.replace('${arch}', 'x64') | ||||
|                 await build(Platform.WINDOWS, Arch.x64, config) | ||||
|                 fs.renameSync( | ||||
| @@ -138,7 +138,7 @@ async function cmd(options) { | ||||
|                     '../build/TheDesk-setup.exe' | ||||
|                 ) | ||||
|             } | ||||
|             if ((isTrue(options, 'withArm64') && arch == 'x64') || arch == 'arm64') { | ||||
|             if ((isTrue(options, 'withArm64') && arch === 'x64') || arch === 'arm64') { | ||||
|                 config.nsis.artifactName = artifactName.replace('${arch}', 'arm64') | ||||
|                 await build(Platform.WINDOWS, Arch.arm64, config) | ||||
|                 fs.renameSync( | ||||
| @@ -147,14 +147,14 @@ async function cmd(options) { | ||||
|                 ) | ||||
|             } | ||||
|         } | ||||
|         if ((platform == 'linux' && !isTrue(options, 'skipLinux')) || isTrue(options, 'linux', 'l')) { | ||||
|             if (arch == 'ia32') { | ||||
|         if ((platform === 'linux' && !isTrue(options, 'skipLinux')) || isTrue(options, 'linux', 'l')) { | ||||
|             if (arch === 'ia32') { | ||||
|                 await build(Platform.LINUX, Arch.ia32, config) | ||||
|             } | ||||
|             if (isTrue(options, 'withIa32') && arch == 'x64') { | ||||
|             if (isTrue(options, 'withIa32') && arch === 'x64') { | ||||
|                 console.log('snapcraft does not curretly support builing i386 on amd64') | ||||
|             } | ||||
|             if (arch == 'x64') { | ||||
|             if (arch === 'x64') { | ||||
|                 await build(Platform.LINUX, Arch.x64, config) | ||||
|                 fs.renameSync( | ||||
|                     `../build/thedesk_${version}_amd64.snap`, | ||||
| @@ -168,9 +168,37 @@ async function cmd(options) { | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         if (platform == 'darwin' && !isTrue(options, 'skipMacOS')) { | ||||
|         if (platform === 'darwin' && !isTrue(options, 'skipMacOS')) { | ||||
|             if(isTrue(options, 'unnotarize')) delete config.afterSign | ||||
|             await build(Platform.MAC, Arch.x64, config) | ||||
|             if (arch === 'x64') { | ||||
|                 await build(Platform.MAC, Arch.x64, config) | ||||
|                 fs.renameSync( | ||||
|                     `../build/TheDesk-${version}.dmg`, | ||||
|                     `../build/TheDesk-${version}-x64.dmg` | ||||
|                 ) | ||||
|                 if (isTrue(options, 'withArm64')) { | ||||
|                     delete config.afterSign | ||||
|                     await build(Platform.MAC, Arch.arm64, config) | ||||
|                     fs.renameSync( | ||||
|                         `../build/TheDesk-${version}.dmg`, | ||||
|                         `../build/TheDesk-${version}-arm64.dmg` | ||||
|                     ) | ||||
|                 } | ||||
|                 fs.renameSync( | ||||
|                     `../build/TheDesk-${version}-x64.dmg`, | ||||
|                     `../build/TheDesk-${version}.dmg` | ||||
|                 ) | ||||
|             } | ||||
|             if (arch === 'arm64') { | ||||
|                 delete config.afterSign | ||||
|                 await build(Platform.MAC, Arch.arm64, config) | ||||
|                 fs.renameSync( | ||||
|                     `../build/TheDesk-${version}.dmg`, | ||||
|                     `../build/TheDesk-${version}-arm64.dmg` | ||||
|                 ) | ||||
|                 if(isTrue(options, 'skipX64')) await build(Platform.MAC, Arch.x64, config) | ||||
|             } | ||||
|  | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -28,7 +28,9 @@ html { | ||||
| 	text-transform: none; | ||||
| 	height: 2.76rem; | ||||
| 	line-height: 2.76rem; | ||||
| 	border-radius: 0.5rem; | ||||
| } | ||||
|  | ||||
| .markdown { | ||||
| 	display: none; | ||||
| } | ||||
| @@ -84,11 +86,12 @@ option { | ||||
| #imagemodal .modal-footer { | ||||
| 	overflow-x: hidden; | ||||
| 	overflow-y: hidden; | ||||
| 	height: 56px; | ||||
| } | ||||
|  | ||||
| #imagewrap { | ||||
| 	width: 100%; | ||||
| 	height: 100%; | ||||
| 	height: calc(100% - 4px); | ||||
| } | ||||
| #imagewrap img.rotate-90 { | ||||
| 	transform: rotate(-90deg); | ||||
| @@ -234,6 +237,12 @@ blockquote:before, | ||||
| 	right: 0; | ||||
| 	top: 0; | ||||
| } | ||||
| .menu-icon { | ||||
| 	font-size: 1.4rem !important; | ||||
| 	top: 0.3rem; | ||||
| 	line-height: 1rem !important; | ||||
| 	position: relative; | ||||
| } | ||||
| #start { | ||||
| 	display: none; | ||||
| 	position: fixed; | ||||
| @@ -329,8 +338,26 @@ blockquote:before, | ||||
| .collapsible-header:focus { | ||||
| 	background-color: var(--thirdColor) !important; | ||||
| } | ||||
| .modal-footer { | ||||
| .modal .modal-footer { | ||||
| 	background-color: var(--modalfooter) !important; | ||||
| 	border-radius: 0; | ||||
| 	padding: 0; | ||||
| } | ||||
| .modal { | ||||
| 	border-radius: 1.5rem; | ||||
| } | ||||
| .progress .determinate, | ||||
| .progress .indeterminate { | ||||
| 	background-color: var(--active); | ||||
| } | ||||
| .nomargin { | ||||
| 	margin: 0; | ||||
| } | ||||
| #imginfo { | ||||
| 	float: left; | ||||
| 	padding-top: 0.23rem; | ||||
| 	line-height: normal; | ||||
| 	padding-left: 1rem; | ||||
| } | ||||
| .font { | ||||
| 	font-size: 1.5rem; | ||||
| @@ -342,7 +369,8 @@ blockquote:before, | ||||
| .release-do { | ||||
| 	border: solid 2px; | ||||
| 	border-color: var(--text); | ||||
| 	padding: 5px; | ||||
| 	padding: 1.5rem; | ||||
| 	border-radius: 0.5rem; | ||||
| } | ||||
| #pickers { | ||||
| 	display: flex; | ||||
| @@ -392,7 +420,8 @@ input[type='color']::-webkit-color-swatch { | ||||
| 	color: var(--text); | ||||
| } | ||||
| #left-menu a:hover { | ||||
| 	background-color: var(--beforehover); | ||||
| 	background-color: var(--emphasized); | ||||
|     filter: brightness(80%); | ||||
| } | ||||
| #left-menu span { | ||||
| 	margin-left: 0.4rem; | ||||
| @@ -401,7 +430,9 @@ input[type='color']::-webkit-color-swatch { | ||||
| 	background-color: var(--emphasized); | ||||
| } | ||||
| #left-menu a.active span { | ||||
| 	text-decoration: underline; | ||||
| 	text-decoration: none; | ||||
| 	border-bottom: 1px solid; | ||||
| 	padding-bottom: 0.5px; | ||||
| } | ||||
| #right-menu { | ||||
| 	width: 100%; | ||||
| @@ -419,7 +450,7 @@ input[type='color']::-webkit-color-swatch { | ||||
| 	align-items: center; | ||||
| 	min-width: 150px; | ||||
| 	width: 50%; | ||||
|     height: 2.5rem; | ||||
| 	height: 2.5rem; | ||||
| 	cursor: pointer; | ||||
| 	color: var(--text); | ||||
| } | ||||
| @@ -430,13 +461,14 @@ input[type='color']::-webkit-color-swatch { | ||||
| } | ||||
| #tltype .type span { | ||||
| 	width: calc(100% - 4rem); | ||||
|     white-space: nowrap; | ||||
|     text-overflow: ellipsis; | ||||
|     word-break: break-word; | ||||
|     overflow: hidden; | ||||
| 	white-space: nowrap; | ||||
| 	text-overflow: ellipsis; | ||||
| 	word-break: break-word; | ||||
| 	overflow: hidden; | ||||
| } | ||||
| #tltype .type:hover { | ||||
| 	background-color: var(--beforehover); | ||||
| 	background-color: var(--emphasized); | ||||
|     filter: brightness(80%); | ||||
| } | ||||
| #tltype .active { | ||||
| 	background-color: var(--emphasized); | ||||
| @@ -720,3 +752,12 @@ button { | ||||
| 	position: relative; | ||||
| 	top: -4px; | ||||
| } | ||||
| #fonts { | ||||
| 	overflow-y: scroll; | ||||
| 	width: 22rem; | ||||
| 	height: 40rem; | ||||
| 	position: absolute; | ||||
| 	background-color: var(--bg); | ||||
| 	z-index: 2; | ||||
| 	padding: 5px; | ||||
| } | ||||
|   | ||||
							
								
								
									
										1577
									
								
								app/css/sweetalert2-material.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1577
									
								
								app/css/sweetalert2-material.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										8
									
								
								app/css/sweetalert2-material.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								app/css/sweetalert2-material.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -360,7 +360,7 @@ iframe, | ||||
| } | ||||
| .area-actions .btn-flat { | ||||
| 	height: 1.3rem; | ||||
|     line-height: 1.3rem; | ||||
| 	line-height: 1.3rem; | ||||
| } | ||||
| .area-actions .btn-flat, | ||||
| .area-vis i, | ||||
| @@ -386,11 +386,13 @@ iframe, | ||||
| } | ||||
| .notf-udg-text { | ||||
| 	white-space: nowrap; | ||||
|     text-overflow: ellipsis; | ||||
|     word-break: break-word; | ||||
|     overflow: hidden; | ||||
|     max-width: calc(100% - 150px); | ||||
|     display: inline-block; | ||||
| 	text-overflow: ellipsis; | ||||
| 	word-break: break-word; | ||||
| 	overflow: hidden; | ||||
| 	max-width: calc(100% - 150px); | ||||
| 	display: inline-block; | ||||
| 	position: relative; | ||||
| 	top: 0.2rem; | ||||
| } | ||||
| .cusr { | ||||
| 	user-select: text; | ||||
| @@ -416,6 +418,12 @@ iframe, | ||||
| 	margin-top: 0.46rem; | ||||
| 	margin-left: 0.46rem; | ||||
| } | ||||
| .landing { | ||||
| 	text-align: center; | ||||
| 	display: flex; | ||||
| 	flex-direction: column; | ||||
| 	align-items: center; | ||||
| } | ||||
|  | ||||
| .quote-inline { | ||||
| 	display: none; | ||||
| @@ -449,6 +457,12 @@ iframe, | ||||
| .btn-flat { | ||||
| 	color: var(--text); | ||||
| } | ||||
| .sublink { | ||||
| 	font-size: 1.4rem !important; | ||||
| 	position: relative; | ||||
| 	top: 0.4rem; | ||||
| 	cursor: pointer; | ||||
| } | ||||
| .area-side i { | ||||
| 	margin-left: 0.75rem; | ||||
| } | ||||
| @@ -459,6 +473,9 @@ iframe, | ||||
| 	font-size: 1.2rem; | ||||
| 	margin-right: 0.15rem; | ||||
| } | ||||
| .action li i { | ||||
| 	margin-right: 0.5rem; | ||||
| } | ||||
| .action .fa-quote-right { | ||||
| 	margin-top: 0.15rem; | ||||
| } | ||||
| @@ -710,15 +727,15 @@ p:not(:last-child) { | ||||
| } | ||||
| .notf-indv-box .setting { | ||||
| 	font-size: 1rem; | ||||
|     width: calc(25% - 6px); | ||||
|     margin: 3px; | ||||
|     height: 100px; | ||||
|     text-align: center; | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     padding-top: 17px; | ||||
|     border: 1px solid; | ||||
|     border-radius: 5px; | ||||
| 	width: calc(25% - 6px); | ||||
| 	margin: 3px; | ||||
| 	height: 100px; | ||||
| 	text-align: center; | ||||
| 	display: flex; | ||||
| 	flex-direction: column; | ||||
| 	padding-top: 17px; | ||||
| 	border: 1px solid; | ||||
| 	border-radius: 5px; | ||||
| } | ||||
| .notf-indv-box .setting:hover { | ||||
| 	color: var(--text); | ||||
| @@ -761,7 +778,12 @@ p:not(:last-child) { | ||||
| 	position: relative; | ||||
| } | ||||
| .dropdown-content li { | ||||
|     padding-top: 0.4rem; | ||||
| 	padding-top: 0.4rem; | ||||
| } | ||||
| .dropdown-content li > a, .dropdown-content li > span { | ||||
| 	white-space: nowrap; | ||||
| 	overflow: hidden; | ||||
| 	text-overflow: ellipsis; | ||||
| } | ||||
| .fa-2x > .emoji-img { | ||||
| 	width: 2.3rem !important; | ||||
|   | ||||
| @@ -1,170 +1,219 @@ | ||||
| /*アイコンをクリックした時とかにでてくるユーザーデータ*/ | ||||
|  | ||||
| #his-data { | ||||
| 	background-repeat: no-repeat; | ||||
| 	background-image: url('../img/loading.svg'); | ||||
| 	overflow-y: hidden; | ||||
|     background-repeat: no-repeat; | ||||
|     background-image: url('../img/loading.svg'); | ||||
|     overflow-y: hidden; | ||||
| } | ||||
|  | ||||
| #his-data .btn .material-icons { | ||||
| 	float: left; | ||||
|     float: left; | ||||
| } | ||||
|  | ||||
| #his-data-content { | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
|     display: flex; | ||||
|     justify-content: center; | ||||
| } | ||||
|  | ||||
| #his-name { | ||||
| 	font-size: 1.5rem; | ||||
|     font-size: 1.5rem; | ||||
| } | ||||
|  | ||||
| #his-prof { | ||||
| 	width: 7.7rem; | ||||
| 	margin-right: 0.4rem; | ||||
|     width: 7.7rem; | ||||
|     margin-right: 0.4rem; | ||||
| } | ||||
|  | ||||
| .his-float { | ||||
| 	overflow-y: scroll; | ||||
| 	padding: 0.4rem; | ||||
|     overflow-y: scroll; | ||||
|     padding: 0.4rem; | ||||
| } | ||||
|  | ||||
| #his-float-data { | ||||
| 	height: 100%; | ||||
|   overflow-y: hidden; | ||||
|    | ||||
|     height: 100%; | ||||
|     overflow-y: hidden; | ||||
| } | ||||
|  | ||||
| #his-leftside { | ||||
|   width: 28.4rem; | ||||
|   max-width: 30vw; | ||||
|     width: 28.4rem; | ||||
|     max-width: 30vw; | ||||
| } | ||||
|  | ||||
| #his-float-timeline { | ||||
|   max-width: 47.5rem; | ||||
|   min-width: calc(100% - 29.4rem); | ||||
| 	height: 100%; | ||||
| 	overflow-y: hidden; | ||||
|     max-width: 47.5rem; | ||||
|     width: calc(100% - 28.4rem); | ||||
|     height: 100%; | ||||
|     overflow-y: hidden; | ||||
| } | ||||
|  | ||||
| #his-basic-prof { | ||||
|   display: flex; | ||||
| 	min-height: 10rem; | ||||
|     display: flex; | ||||
|     min-height: 10rem; | ||||
| } | ||||
|  | ||||
| #his-field { | ||||
| 	vertical-align: baseline; | ||||
| 	text-align: center; | ||||
| 	padding: 0; | ||||
|     vertical-align: baseline; | ||||
|     text-align: center; | ||||
|     padding: 0; | ||||
| } | ||||
|  | ||||
| #his-field tr { | ||||
| 	height: 1.5rem; | ||||
|     height: 1.5rem; | ||||
| } | ||||
|  | ||||
| .his-field-title { | ||||
| 	height: 1.5rem; | ||||
| 	padding: 0; | ||||
| 	background-color: #757575; | ||||
| 	text-align: center; | ||||
| 	padding: 0.4rem; | ||||
| 	margin-bottom: 1px; | ||||
| 	width: 30%; | ||||
|     height: 1.5rem; | ||||
|     padding: 0; | ||||
|     background-color: #757575; | ||||
|     text-align: center; | ||||
|     padding: 0.4rem; | ||||
|     margin-bottom: 1px; | ||||
|     width: 30%; | ||||
| } | ||||
|  | ||||
| .his-field-content { | ||||
| 	height: 1.5rem; | ||||
| 	padding: 0; | ||||
| 	padding-left: 0.4rem; | ||||
|     height: 1.5rem; | ||||
|     padding: 0; | ||||
|     padding-left: 0.4rem; | ||||
| } | ||||
|  | ||||
| .his-var-content a span.ellipsis:after { | ||||
| 	content: '...'; | ||||
|     content: '...'; | ||||
| } | ||||
|  | ||||
| .his-var-content a:not(.mention) span:last-of-type { | ||||
| 	display: none; | ||||
|     display: none; | ||||
| } | ||||
|  | ||||
| #his-data a .rep_ct, | ||||
| #his-data a .rt_ct, | ||||
| #his-data a .fav_ct { | ||||
| 	display: inline !important; | ||||
|     display: inline !important; | ||||
| } | ||||
|  | ||||
| #his-data-show { | ||||
| 	margin: 1.5rem; | ||||
| 	margin-left: 3.8rem; | ||||
| 	margin-right: 3.8rem; | ||||
| 	background-color: var(--his-data); | ||||
| 	height: calc(100% - 1.5rem); | ||||
| 	margin-bottom: 0; | ||||
| 	padding: 0.4rem; | ||||
|     margin: 1.5rem; | ||||
|     margin-left: 3.8rem; | ||||
|     margin-right: 3.8rem; | ||||
|     background-color: var(--his-data); | ||||
|     height: calc(100% - 1.5rem); | ||||
|     margin-bottom: 0; | ||||
|     padding: 0.4rem; | ||||
| } | ||||
|  | ||||
| #his-data-wrap { | ||||
| 	display: flex; | ||||
|     display: flex; | ||||
| } | ||||
|  | ||||
| .his-var-content { | ||||
| 	overflow-y: scroll; | ||||
| 	overflow-x: hidden; | ||||
| 	height: calc(100% - 3.4rem); | ||||
| 	padding-bottom: 60px; | ||||
|     overflow-y: scroll; | ||||
|     overflow-x: hidden; | ||||
|     height: calc(100% - 3.4rem); | ||||
|     padding-bottom: 60px; | ||||
| } | ||||
|  | ||||
| #my-data-nav .btn { | ||||
| 	width: 10.6rem; | ||||
|     width: 10.6rem; | ||||
| } | ||||
|  | ||||
| #my-data-nav .active-back { | ||||
| 	display: none; | ||||
|     display: none; | ||||
| } | ||||
|  | ||||
| #his-name .emojione, | ||||
| #his-name .emoji-img { | ||||
| 	width: 1.538rem; | ||||
|     width: 1.538rem; | ||||
| } | ||||
|  | ||||
| #his-plus-action .btn { | ||||
| 	padding-right: 0.4rem; | ||||
| 	padding-left: 0.4rem; | ||||
|     padding-right: 0.4rem; | ||||
|     padding-left: 0.4rem; | ||||
| } | ||||
|  | ||||
| .tabs { | ||||
| 	display: flex; | ||||
|     display: flex; | ||||
| } | ||||
|  | ||||
| .tabs .tab a { | ||||
| 	padding: 0.6rem 0.9rem; | ||||
|     padding: 0.6rem 0.9rem; | ||||
| } | ||||
|  | ||||
| #his-des { | ||||
| 	max-height: 17.7rem; | ||||
| 	overflow-y: scroll; | ||||
|     max-height: 17.7rem; | ||||
|     overflow-y: scroll; | ||||
|     user-select: text; | ||||
|     cursor: text; | ||||
| } | ||||
|  | ||||
| #his-sign-action { | ||||
| 	border: 1px solid; | ||||
| 	border-radius: 0.4rem; | ||||
| 	display: flex; | ||||
| 	align-items: center; | ||||
| 	padding-left: 0.75rem; | ||||
| 	padding-right: 0.75rem; | ||||
| 	flex-wrap: wrap; | ||||
|     border: 1px solid; | ||||
|     border-radius: 0.4rem; | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     padding-left: 0.75rem; | ||||
|     padding-right: 0.75rem; | ||||
|     flex-wrap: wrap; | ||||
| } | ||||
| #his-sign-action .btn { | ||||
| 	flex-basis: calc(50% - 10.6px); | ||||
|  | ||||
| #his-sign-action .shrinker { | ||||
|     margin-right: 0.5rem; | ||||
|     flex-basis: calc(50% - 1rem); | ||||
| } | ||||
|  | ||||
| #his-sign-action .shrinker.btn { | ||||
|     width: 100%; | ||||
| } | ||||
|  | ||||
| #his-sign-action .dropdown-trigger { | ||||
| 	flex-basis: 100%; | ||||
|     flex-basis: 100%; | ||||
| } | ||||
|  | ||||
| #his-des .mention { | ||||
| 	color: #039be5; | ||||
| 	cursor: pointer; | ||||
|     color: #039be5; | ||||
|     cursor: pointer; | ||||
| } | ||||
|  | ||||
| #his-table { | ||||
| 	max-height: 11.538rem; | ||||
| 	overflow-y: scroll; | ||||
|     max-height: 9.2rem; | ||||
|     overflow-y: scroll; | ||||
|     user-select: text; | ||||
| } | ||||
|  | ||||
| #his-float-blocked { | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	align-items: center; | ||||
| 	font-size: 2rem; | ||||
| 	height: 100%; | ||||
|     display: flex; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
|     font-size: 2rem; | ||||
|     height: 100%; | ||||
| } | ||||
|  | ||||
| #hisdropdown { | ||||
| 	background-color: var(--bg); | ||||
|     background-color: var(--bg); | ||||
| } | ||||
|  | ||||
| #hisdropdown li a { | ||||
| 	color: white; | ||||
|     color: var(--text); | ||||
| } | ||||
|  | ||||
| #hisdropdown li:hover { | ||||
| 	background-color: var(--active); | ||||
|     background-color: var(--active); | ||||
| } | ||||
|  | ||||
| #his-data-title-wrap { | ||||
| 	width: 100%; | ||||
| 	text-align: center; | ||||
| 	font-size: 1.5rem; | ||||
| 	display: flex; | ||||
|     width: 100%; | ||||
|     text-align: center; | ||||
|     font-size: 1.5rem; | ||||
|     display: flex; | ||||
|     justify-content: center; | ||||
|     align-items: center; | ||||
| } | ||||
|  | ||||
| #his-data-title .material-icons { | ||||
| 	position: relative; | ||||
|     top: 7px; | ||||
|     position: relative; | ||||
|     top: 5px; | ||||
|     margin-right: 3px; | ||||
| } | ||||
|  | ||||
| #his-data-title a { | ||||
|     color: white; | ||||
| } | ||||
| @@ -5,20 +5,6 @@ function verck(ver, jp) { | ||||
| 	$('body').addClass(localStorage.getItem('platform')) | ||||
| 	var date = new Date() | ||||
| 	var showVer = false | ||||
| 	//Spotify | ||||
| 	if (localStorage.getItem('spotify')) { | ||||
| 		localStorage.removeItem('spotify') | ||||
| 		localStorage.removeItem('spotify-refresh') | ||||
| 		var spDc = 'Spotify NowPlaying sysytem was changed, please re-login to Spotify' | ||||
| 		if(lang.language == 'ja') { | ||||
| 			spDc = 'Spotify NowPlayingの機能が変更されたため、もう一度ログインしてください' | ||||
| 		} | ||||
| 		Swal.fire({ | ||||
| 			type: 'info', | ||||
| 			title: spDc, | ||||
| 		}) | ||||
| 	} | ||||
| 	//Spotify(e) | ||||
| 	if (localStorage.getItem('ver') != ver && localStorage.getItem('winstore')) { | ||||
| 		showVer = true | ||||
| 		console.log('%c Thank you for your update🎉', 'color: red;font-size:200%;') | ||||
| @@ -44,10 +30,7 @@ function verck(ver, jp) { | ||||
| 	localStorage.setItem('ver', ver) | ||||
| 	if (!showVer) { | ||||
| 		console.log(showVer) | ||||
| 		if ( | ||||
| 			date.getFullYear() * 100 + date.getMonth() + 1 >= localStorage.getItem('showSupportMe') || | ||||
| 			!localStorage.getItem('showSupportMe') | ||||
| 		) { | ||||
| 		if (!localStorage.getItem('showSupportMe')) { | ||||
| 			if (date.getMonth() == 11) { | ||||
| 				var yrs = date.getFullYear() + 1 | ||||
| 				var nextmonth = yrs * 100 + 1 | ||||
| @@ -55,21 +38,35 @@ function verck(ver, jp) { | ||||
| 				var yrs = date.getFullYear()  | ||||
| 				var nextmonth = yrs * 100 + date.getMonth() + 2 | ||||
| 			} | ||||
| 			if (lang.language != 'ja') { | ||||
| 				$('#support-btm-ja').addClass('hide') | ||||
| 				$('#support-btm-en').removeClass('hide') | ||||
| 			} | ||||
| 			localStorage.setItem('showSupportMe', nextmonth) | ||||
| 			$('#support-btm').removeClass('hide') | ||||
| 			$('#support-btm').animate( | ||||
| 				{ | ||||
| 					bottom: '0' | ||||
| 				}, | ||||
| 				{ | ||||
| 					duration: 300 | ||||
| 		} else { | ||||
| 			if ( | ||||
| 				date.getFullYear() * 100 + date.getMonth() + 1 >= localStorage.getItem('showSupportMe') | ||||
| 			) { | ||||
| 				if (date.getMonth() == 11) { | ||||
| 					var yrs = date.getFullYear() + 1 | ||||
| 					var nextmonth = yrs * 100 + 1 | ||||
| 				} else { | ||||
| 					var yrs = date.getFullYear()  | ||||
| 					var nextmonth = yrs * 100 + date.getMonth() + 2 | ||||
| 				} | ||||
| 			) | ||||
| 				localStorage.setItem('showSupportMe', nextmonth) | ||||
| 				if (lang.language != 'ja') { | ||||
| 					$('#support-btm-ja').addClass('hide') | ||||
| 					$('#support-btm-en').removeClass('hide') | ||||
| 				} | ||||
| 				$('#support-btm').removeClass('hide') | ||||
| 				$('#support-btm').animate( | ||||
| 					{ | ||||
| 						bottom: '0' | ||||
| 					}, | ||||
| 					{ | ||||
| 						duration: 300 | ||||
| 					} | ||||
| 				) | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 	var platform = localStorage.getItem('platform') | ||||
| 	console.log('Your platform:' + platform) | ||||
| @@ -114,11 +111,6 @@ function verck(ver, jp) { | ||||
| 		.then(function(mess) { | ||||
| 			console.table(mess) | ||||
| 			if (mess) { | ||||
| 				//askjp_jp_ua: 2019年10月24日、mstdn.jpによるユーザーエージェントアクセス制限 | ||||
| 				if (jp && mess.jp_ua && !localStorage.getItem('askjp_jp_ua')) { | ||||
| 					localStorage.setItem('askjp_jp_ua', true) | ||||
| 					$('#askjp_jp_ua').removeClass('hide') | ||||
| 				} | ||||
| 				var platform = localStorage.getItem('platform') | ||||
| 				if (platform == 'darwin') { | ||||
| 					var newest = mess.desk_mac | ||||
|   | ||||
| @@ -29,7 +29,7 @@ $(document).on('click', 'a', e => { | ||||
| 					acct_id = 0 | ||||
| 				} | ||||
| 				$a.parent().addClass('loadp') | ||||
| 				$a.parent().text('Loading...') | ||||
| 				 | ||||
| 				detEx(url, acct_id) | ||||
| 			} | ||||
| 		} else if (tags) { | ||||
|   | ||||
| @@ -1,312 +1,305 @@ | ||||
| window.onload = function () { | ||||
| 	console.log('loaded') | ||||
| 	initPostbox() | ||||
| 	connection() | ||||
| 	initPlugin(plugins) | ||||
| 	if (localStorage.getItem('control-center-np')) $('#ccnp').removeClass('hide') | ||||
| window.onload = function() { | ||||
|     console.log('loaded') | ||||
|     initPostbox() | ||||
|     connection() | ||||
|     initPlugin(plugins) | ||||
|     if (localStorage.getItem('control-center-np')) $('#ccnp').removeClass('hide') | ||||
| } | ||||
| $.strip_tags = function (str, allowed) { | ||||
| 	if (!str) { | ||||
| 		return '' | ||||
| 	} | ||||
| 	allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('') | ||||
| 	var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi, | ||||
| 		commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi | ||||
| 	return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) { | ||||
| 		return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '' | ||||
| 	}) | ||||
| $.strip_tags = function(str, allowed) { | ||||
|     if (!str) { | ||||
|         return '' | ||||
|     } | ||||
|     allowed = (((allowed || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('') | ||||
|     var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi, | ||||
|         commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi | ||||
|     return str.replace(commentsAndPhpTags, '').replace(tags, function($0, $1) { | ||||
|         return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '' | ||||
|     }) | ||||
| } | ||||
|  | ||||
| function escapeHTML(str) { | ||||
| 	if (!str) { | ||||
| 		return '' | ||||
| 	} | ||||
| 	return str | ||||
| 		.replace(/&/g, '&') | ||||
| 		.replace(/</g, '<') | ||||
| 		.replace(/>/g, '>') | ||||
| 		.replace(/"/g, '"') | ||||
| 		.replace(/'/g, ''') | ||||
|     if (!str) { | ||||
|         return '' | ||||
|     } | ||||
|     return str | ||||
|         .replace(/&/g, '&') | ||||
|         .replace(/</g, '<') | ||||
|         .replace(/>/g, '>') | ||||
|         .replace(/"/g, '"') | ||||
|         .replace(/'/g, ''') | ||||
| } | ||||
| //PHPのnl2brと同様 | ||||
| function nl2br(str) { | ||||
| 	if (!str) { | ||||
| 		return '' | ||||
| 	} | ||||
| 	str = str.replace(/\r\n/g, '<br />') | ||||
| 	str = str.replace(/(\n|\r)/g, '<br />') | ||||
| 	return str | ||||
|     if (!str) { | ||||
|         return '' | ||||
|     } | ||||
|     str = str.replace(/\r\n/g, '<br />') | ||||
|     str = str.replace(/(\n|\r)/g, '<br />') | ||||
|     return str | ||||
| } | ||||
|  | ||||
| function br2nl(str) { | ||||
| 	if (!str) { | ||||
| 		return '' | ||||
| 	} | ||||
| 	str = str.replace(/<br \/>/g, '\r\n') | ||||
| 	return str | ||||
|     if (!str) { | ||||
|         return '' | ||||
|     } | ||||
|     str = str.replace(/<br \/>/g, '\r\n') | ||||
|     return str | ||||
| } | ||||
|  | ||||
| function formattime(date) { | ||||
| 	var str = date.getFullYear() + '-' | ||||
| 	if (date.getMonth() + 1 < 10) { | ||||
| 		str = str + '0' + (date.getMonth() + 1) + '-' | ||||
| 	} else { | ||||
| 		str = str + (date.getMonth() + 1) + '-' | ||||
| 	} | ||||
| 	if (date.getDate() < 10) { | ||||
| 		str = str + '0' + date.getDate() | ||||
| 	} else { | ||||
| 		str = str + date.getDate() | ||||
| 	} | ||||
| 	str = str + 'T' | ||||
| 	if (date.getHours() < 10) { | ||||
| 		str = str + '0' + date.getHours() + ':' | ||||
| 	} else { | ||||
| 		str = str + date.getHours() + ':' | ||||
| 	} | ||||
| 	if (date.getMinutes() < 10) { | ||||
| 		str = str + '0' + date.getMinutes() | ||||
| 	} else { | ||||
| 		str = str + date.getMinutes() | ||||
| 	} | ||||
| 	return escapeHTML(str) | ||||
|     var str = date.getFullYear() + '-' | ||||
|     if (date.getMonth() + 1 < 10) { | ||||
|         str = str + '0' + (date.getMonth() + 1) + '-' | ||||
|     } else { | ||||
|         str = str + (date.getMonth() + 1) + '-' | ||||
|     } | ||||
|     if (date.getDate() < 10) { | ||||
|         str = str + '0' + date.getDate() | ||||
|     } else { | ||||
|         str = str + date.getDate() | ||||
|     } | ||||
|     str = str + 'T' | ||||
|     if (date.getHours() < 10) { | ||||
|         str = str + '0' + date.getHours() + ':' | ||||
|     } else { | ||||
|         str = str + date.getHours() + ':' | ||||
|     } | ||||
|     if (date.getMinutes() < 10) { | ||||
|         str = str + '0' + date.getMinutes() | ||||
|     } else { | ||||
|         str = str + date.getMinutes() | ||||
|     } | ||||
|     return escapeHTML(str) | ||||
| } | ||||
|  | ||||
| function formattimeutc(date) { | ||||
| 	var str = date.getUTCFullYear() + '-' | ||||
| 	if (date.getUTCMonth() + 1 < 10) { | ||||
| 		str = str + '0' + (date.getUTCMonth() + 1) + '-' | ||||
| 	} else { | ||||
| 		str = str + (date.getUTCMonth() + 1) + '-' | ||||
| 	} | ||||
| 	if (date.getUTCDate() < 10) { | ||||
| 		str = str + '0' + date.getUTCDate() | ||||
| 	} else { | ||||
| 		str = str + date.getUTCDate() | ||||
| 	} | ||||
| 	str = str + 'T' | ||||
| 	if (date.getUTCHours() < 10) { | ||||
| 		str = str + '0' + date.getUTCHours() + ':' | ||||
| 	} else { | ||||
| 		str = str + date.getUTCHours() + ':' | ||||
| 	} | ||||
| 	if (date.getUTCMinutes() < 10) { | ||||
| 		str = str + '0' + date.getUTCMinutes() | ||||
| 	} else { | ||||
| 		str = str + date.getUTCMinutes() | ||||
| 	} | ||||
| 	return escapeHTML(str) | ||||
|     var str = date.getUTCFullYear() + '-' | ||||
|     if (date.getUTCMonth() + 1 < 10) { | ||||
|         str = str + '0' + (date.getUTCMonth() + 1) + '-' | ||||
|     } else { | ||||
|         str = str + (date.getUTCMonth() + 1) + '-' | ||||
|     } | ||||
|     if (date.getUTCDate() < 10) { | ||||
|         str = str + '0' + date.getUTCDate() | ||||
|     } else { | ||||
|         str = str + date.getUTCDate() | ||||
|     } | ||||
|     str = str + 'T' | ||||
|     if (date.getUTCHours() < 10) { | ||||
|         str = str + '0' + date.getUTCHours() + ':' | ||||
|     } else { | ||||
|         str = str + date.getUTCHours() + ':' | ||||
|     } | ||||
|     if (date.getUTCMinutes() < 10) { | ||||
|         str = str + '0' + date.getUTCMinutes() | ||||
|     } else { | ||||
|         str = str + date.getUTCMinutes() | ||||
|     } | ||||
|     return escapeHTML(str) | ||||
| } | ||||
| postMessage(['sendSinmpleIpc', 'custom-css-request'], '*') | ||||
| function makeCID() { | ||||
| 	let chars = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("") | ||||
| 	for (let i = 0, len = chars.length; i < len; i++) { | ||||
| 		switch (chars[i]) { | ||||
| 			case "x": | ||||
| 				chars[i] = Math.floor(Math.random() * 16).toString(16) | ||||
| 				break | ||||
| 			case "y": | ||||
| 				chars[i] = (Math.floor(Math.random() * 4) + 8).toString(16) | ||||
| 				break | ||||
| 		} | ||||
| 	} | ||||
| 	return chars.join("") | ||||
| } | ||||
| 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 | ||||
|  | ||||
| incrementid=0 | ||||
| function makeCID() | ||||
| { | ||||
| 	return incrementid++ | ||||
| } | ||||
|  | ||||
| function rgbToHex(color) { | ||||
| 	// HEXに変換したものを代入する変数 | ||||
| 	var hex = '' | ||||
|     // HEXに変換したものを代入する変数 | ||||
|     var hex = '' | ||||
|  | ||||
| 	// 第1引数がHEXのとき変換処理は必要ないのでそのままreturn | ||||
| 	// IE8の場合はjQueryのcss()関数でHEXを返すので除外 | ||||
| 	if (color.match(/^#[a-f\d]{3}$|^#[a-f\d]{6}$/i)) { | ||||
| 		return color | ||||
| 	} | ||||
|     // 第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.]+)\)$/) | ||||
|     // 正規表現 | ||||
|     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) | ||||
| 		] | ||||
|     // 正規表現でマッチしたとき | ||||
|     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] | ||||
| 		} | ||||
|         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 | ||||
| 	} | ||||
|         return hex | ||||
|     } | ||||
|  | ||||
| 	console.error(color + ':第1引数はRGB形式で入力') | ||||
|     console.error(color + ':第1引数はRGB形式で入力') | ||||
| } | ||||
| /*マルチバイト用切り出し*/ | ||||
| $.isSurrogatePear = function (upper, lower) { | ||||
| 	return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff | ||||
| $.isSurrogatePear = function(upper, lower) { | ||||
|     return 0xd800 <= upper && upper <= 0xdbff && 0xdc00 <= lower && lower <= 0xdfff | ||||
| } | ||||
| $.mb_strlen = function (str) { | ||||
| 	var splitter = new GraphemeSplitter() | ||||
| 	var arr = splitter.splitGraphemes(str) | ||||
| 	return arr.length | ||||
| $.mb_strlen = function(str) { | ||||
|     var splitter = new GraphemeSplitter() | ||||
|     var arr = splitter.splitGraphemes(str) | ||||
|     return arr.length | ||||
| } | ||||
| $.mb_substr = function (str, begin, end) { | ||||
| 	//配列にする | ||||
| 	var splitter = new GraphemeSplitter() | ||||
| 	var arr = splitter.splitGraphemes(str) | ||||
| 	var newarr = [] | ||||
| 	for (var i = 0; i < arr.length; i++) { | ||||
| 		if (i >= begin && i <= end) { | ||||
| 			newarr.push(arr[i]) | ||||
| 		} | ||||
| 	} | ||||
| 	return newarr.join('') | ||||
| } | ||||
| //ソートするやつ | ||||
| $.mb_substr = function(str, begin, end) { | ||||
|         //配列にする | ||||
|         var splitter = new GraphemeSplitter() | ||||
|         var arr = splitter.splitGraphemes(str) | ||||
|         var newarr = [] | ||||
|         for (var i = 0; i < arr.length; i++) { | ||||
|             if (i >= begin && i <= end) { | ||||
|                 newarr.push(arr[i]) | ||||
|             } | ||||
|         } | ||||
|         return newarr.join('') | ||||
|     } | ||||
|     //ソートするやつ | ||||
| function object_array_sort(data, key, order, fn) { | ||||
| 	var num_a = -1 | ||||
| 	var num_b = 1 | ||||
| 	if (order === 'asc') { | ||||
| 		num_a = 1 | ||||
| 		num_b = -1 | ||||
| 	} | ||||
| 	data = data.sort(function (a, b) { | ||||
| 		var x = a[key] | ||||
| 		var y = b[key] | ||||
| 		if (x > y) return num_a | ||||
| 		if (x < y) return num_b | ||||
| 		return 0 | ||||
| 	}) | ||||
| 	var arrObj = {} | ||||
| 	for (var i = 0; i < data.length; i++) { | ||||
| 		arrObj[data[i]['family']] = data[i] | ||||
| 	} | ||||
| 	data = [] | ||||
| 	for (var key in arrObj) { | ||||
| 		data.push(arrObj[key]) | ||||
| 	} | ||||
| 	fn(data) | ||||
|     var num_a = -1 | ||||
|     var num_b = 1 | ||||
|     if (order === 'asc') { | ||||
|         num_a = 1 | ||||
|         num_b = -1 | ||||
|     } | ||||
|     data = data.sort(function(a, b) { | ||||
|         var x = a[key] | ||||
|         var y = b[key] | ||||
|         if (x > y) return num_a | ||||
|         if (x < y) return num_b | ||||
|         return 0 | ||||
|     }) | ||||
|     var arrObj = {} | ||||
|     for (var i = 0; i < data.length; i++) { | ||||
|         arrObj[data[i]['family']] = data[i] | ||||
|     } | ||||
|     data = [] | ||||
|     for (var key in arrObj) { | ||||
|         data.push(arrObj[key]) | ||||
|     } | ||||
|     fn(data) | ||||
| } | ||||
|  | ||||
| function setLog(txt1, txt2, txt3) { | ||||
| 	//url,statuscode,responsetext | ||||
| 	var text = new Date().toUTCString() | ||||
| 	text = text + ',' + txt1 + ',' + txt2 + ',' + escapeCsv(txt3) | ||||
| 	console.error(text) | ||||
| 	postMessage(['log', text], '*') | ||||
|     //url,statuscode,responsetext | ||||
|     var text = new Date().toUTCString() | ||||
|     text = text + ',' + txt1 + ',' + txt2 + ',' + escapeCsv(txt3) | ||||
|     console.error(text) | ||||
|     postMessage(['log', text], '*') | ||||
| } | ||||
|  | ||||
| function escapeCsv(str) { | ||||
| 	if (!str) { | ||||
| 		return str | ||||
| 	} | ||||
| 	var result | ||||
| 	result = str.toString().replace(/\"/g, '""') | ||||
| 	if (result.indexOf(',') >= 0) { | ||||
| 		result = '"' + result + '"' | ||||
| 	} | ||||
| 	return result | ||||
|     if (!str) { | ||||
|         return str | ||||
|     } | ||||
|     var result | ||||
|     result = str.toString().replace(/\"/g, '""') | ||||
|     if (result.indexOf(',') >= 0) { | ||||
|         result = '"' + result + '"' | ||||
|     } | ||||
|     return result | ||||
| } | ||||
|  | ||||
| function evalAttr(json, attr, lenCk) { | ||||
| 	if (json[attr]) { | ||||
| 		if (lenCk) { | ||||
| 			if (json[attr][0]) { | ||||
| 				return true | ||||
| 			} else { | ||||
| 				return false | ||||
| 			} | ||||
| 		} else { | ||||
| 			return true | ||||
| 		} | ||||
| 	} else { | ||||
| 		return false | ||||
| 	} | ||||
|     if (json[attr]) { | ||||
|         if (lenCk) { | ||||
|             if (json[attr][0]) { | ||||
|                 return true | ||||
|             } else { | ||||
|                 return false | ||||
|             } | ||||
|         } else { | ||||
|             return true | ||||
|         } | ||||
|     } else { | ||||
|         return false | ||||
|     } | ||||
| } | ||||
|  | ||||
| function statusModel(now) { | ||||
| 	if (!now) { | ||||
| 		var now = new Date().toString() | ||||
| 	} | ||||
| 	return { | ||||
| 		id: '', | ||||
| 		created_at: now, | ||||
| 		in_reply_to_id: null, | ||||
| 		in_reply_to_account_id: null, | ||||
| 		sensitive: false, | ||||
| 		spoiler_text: '', | ||||
| 		visibility: 'public', | ||||
| 		language: 'en', | ||||
| 		uri: '', | ||||
| 		url: '', | ||||
| 		replies_count: 0, | ||||
| 		reblogs_count: 0, | ||||
| 		favourites_count: 0, | ||||
| 		favourited: false, | ||||
| 		reblogged: false, | ||||
| 		muted: false, | ||||
| 		bookmarked: false, | ||||
| 		pinned: false, | ||||
| 		content: '<p><i>No status here</i></p>', | ||||
| 		reblog: null, | ||||
| 		application: { | ||||
| 			name: null, | ||||
| 			website: null | ||||
| 		}, | ||||
| 		account: { | ||||
| 			id: '', | ||||
| 			username: '', | ||||
| 			acct: '', | ||||
| 			display_name: '', | ||||
| 			locked: false, | ||||
| 			bot: false, | ||||
| 			created_at: now, | ||||
| 			note: '', | ||||
| 			url: '', | ||||
| 			avatar: '', | ||||
| 			avatar_static: '', | ||||
| 			header: '', | ||||
| 			header_static: '', | ||||
| 			followers_count: 0, | ||||
| 			following_count: 0, | ||||
| 			statuses_count: 0, | ||||
| 			last_status_at: now, | ||||
| 			emojis: [], | ||||
| 			fields: [] | ||||
| 		}, | ||||
| 		media_attachments: [], | ||||
| 		mentions: [], | ||||
| 		tags: [], | ||||
| 		card: null, | ||||
| 		poll: null | ||||
| 	} | ||||
|     if (!now) { | ||||
|         var now = new Date().toString() | ||||
|     } | ||||
|     return { | ||||
|         id: '', | ||||
|         created_at: now, | ||||
|         in_reply_to_id: null, | ||||
|         in_reply_to_account_id: null, | ||||
|         sensitive: false, | ||||
|         spoiler_text: '', | ||||
|         visibility: 'public', | ||||
|         language: 'en', | ||||
|         uri: '', | ||||
|         url: '', | ||||
|         replies_count: 0, | ||||
|         reblogs_count: 0, | ||||
|         favourites_count: 0, | ||||
|         favourited: false, | ||||
|         reblogged: false, | ||||
|         muted: false, | ||||
|         bookmarked: false, | ||||
|         pinned: false, | ||||
|         content: '<p><i>No status here</i></p>', | ||||
|         reblog: null, | ||||
|         application: { | ||||
|             name: null, | ||||
|             website: null | ||||
|         }, | ||||
|         account: { | ||||
|             id: '', | ||||
|             username: '', | ||||
|             acct: '', | ||||
|             display_name: '', | ||||
|             locked: false, | ||||
|             bot: false, | ||||
|             created_at: now, | ||||
|             note: '', | ||||
|             url: '', | ||||
|             avatar: '', | ||||
|             avatar_static: '', | ||||
|             header: '', | ||||
|             header_static: '', | ||||
|             followers_count: 0, | ||||
|             following_count: 0, | ||||
|             statuses_count: 0, | ||||
|             last_status_at: now, | ||||
|             emojis: [], | ||||
|             fields: [] | ||||
|         }, | ||||
|         media_attachments: [], | ||||
|         mentions: [], | ||||
|         tags: [], | ||||
|         card: null, | ||||
|         poll: null | ||||
|     } | ||||
| } | ||||
|  | ||||
| function webviewFinder() { | ||||
| 	const webview = document.querySelector('webview') | ||||
| 	webview.addEventListener('did-navigate', (e) => { | ||||
| 		const url = webview.getURL() | ||||
| 		if (url.match('https://mobile.twitter.com/login')) { | ||||
| 			postMessage(['twitterLogin', null], '*') | ||||
| 		} else if (url.match('https://mobile.twitter.com/logout')) { | ||||
| 			postMessage(['twitterLogin', true], '*') | ||||
| 		} | ||||
| 	}) | ||||
|     const webview = document.querySelector('webview') | ||||
|     webview.addEventListener('did-navigate', (e) => { | ||||
|         const url = webview.getURL() | ||||
|         if (url.match('https://mobile.twitter.com/login')) { | ||||
|             postMessage(['twitterLogin', null], '*') | ||||
|         } else if (url.match('https://mobile.twitter.com/logout')) { | ||||
|             postMessage(['twitterLogin', true], '*') | ||||
|         } | ||||
|     }) | ||||
| } | ||||
|  | ||||
| function initWebviewEvent() { | ||||
| 	if (document.querySelector('webview')) { webviewFinder() } else { | ||||
| 		const timerWV = setInterval(function () { | ||||
| 			document.querySelector('webview') | ||||
| 				? (webviewFinder(), clearInterval(timerWV)) | ||||
| 				: console.log('まだロード中') | ||||
| 		}, 500) | ||||
| 	} | ||||
|     if (document.querySelector('webview')) { webviewFinder() } else { | ||||
|         const timerWV = setInterval(function() { | ||||
|             document.querySelector('webview') ? | ||||
|                 (webviewFinder(), clearInterval(timerWV)) : | ||||
|                 console.log('まだロード中') | ||||
|         }, 500) | ||||
|     } | ||||
| } | ||||
| @@ -19,7 +19,7 @@ function emojiToggle(reaction) { | ||||
| 		if (width) { | ||||
| 			width = width.replace('px', '') * 1 + 300 | ||||
| 		} else { | ||||
| 			width = 600 | ||||
| 			width = reaction ? 300 : 600 | ||||
| 		} | ||||
| 		$('#post-box').css('width', width + 'px') | ||||
| 		$('#suggest').html('') | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -335,7 +335,17 @@ function cardCheck(tlid) { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| function mov(id, tlid, type, rand, target) { | ||||
| function mov(id, tlid, type, rand, target) | ||||
| { | ||||
| 	mouseover=localStorage.getItem('mouseover') | ||||
| 	switch (mouseover) | ||||
| 	{ | ||||
| 		case 'yes': if (type=='mv') $(target).removeClass('hide-actions'); break; | ||||
| 		case 'click': if (type=='cl') $(target).toggleClass('hide-actions'); break; | ||||
| 		case 'no': break; | ||||
| 	} | ||||
| } | ||||
| /*function mov(id, tlid, type, rand, target) { | ||||
| 	const dropdownTrigger = `dropdown_${rand}` | ||||
| 	let elm = document.querySelector(`#timeline_${tlid} #${dropdownTrigger}`) | ||||
| 	if(tlid == 'notf') { | ||||
| @@ -383,7 +393,7 @@ function mov(id, tlid, type, rand, target) { | ||||
| 		//$(tlide + " [toot-id=" + id + "] .area-actions").toggleClass("hide") | ||||
| 		//$(tlide + " [toot-id=" + id + "] .area-side").toggleClass("hide") | ||||
| 	} | ||||
| } | ||||
| }*/ | ||||
|  | ||||
| function resetmv(type) { | ||||
| 	var mouseover = localStorage.getItem('mouseover') | ||||
|   | ||||
| @@ -637,42 +637,48 @@ function brws() { | ||||
| 	postMessage(['openUrl', url], '*') | ||||
| } | ||||
| //外部からトゥート開く | ||||
| function detEx(url, acct_id) { | ||||
| async function detEx(url, acct_id) { | ||||
| 	if (acct_id == 'main') { | ||||
| 		acct_id = localStorage.getItem('main') | ||||
| 	} | ||||
| 	var domain = localStorage.getItem('domain_' + acct_id) | ||||
| 	var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
| 	var start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + encodeURIComponent(url) | ||||
| 	fetch(start, { | ||||
| 	Swal.fire({ | ||||
| 		title: 'Loading...', | ||||
| 		html: lang.lang_details_fetch, | ||||
| 		showConfirmButton: false, | ||||
| 		showCloseButton: true, | ||||
| 		onBeforeOpen: () => { | ||||
| 			Swal.showLoading() | ||||
| 		}, | ||||
| 		onClose: () => { }, | ||||
| 	}).then((result) => { }) | ||||
| 	const json = await detExCore(url, acct_id) | ||||
| 	Swal.close() | ||||
| 	if (!json.statuses) { | ||||
| 		postMessage(['openUrl', url], '*') | ||||
| 	} else { | ||||
| 		var id = json.statuses[0].id | ||||
| 		$('.loadp').text($('.loadp').attr('href')) | ||||
| 		$('.loadp').removeClass('loadp') | ||||
| 		details(id, acct_id, 0) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| async function detExCore(url, acct_id) { | ||||
| 	const domain = localStorage.getItem('domain_' + acct_id) | ||||
| 	const start = 'https://' + domain + '/api/v2/search?resolve=true&q=' + encodeURIComponent(url) | ||||
| 	const at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
| 	let promise = await fetch(start, { | ||||
| 		method: 'GET', | ||||
| 		headers: { | ||||
| 			'content-type': 'application/json', | ||||
| 			Authorization: 'Bearer ' + at | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 			todo(error) | ||||
| 			setLog(start, 'JSON', error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(json) { | ||||
| 			if (!json.statuses) { | ||||
| 				postMessage(['openUrl', url], '*') | ||||
| 			} else { | ||||
| 				var id = json.statuses[0].id | ||||
| 				$('.loadp').text($('.loadp').attr('href')) | ||||
| 				$('.loadp').removeClass('loadp') | ||||
| 				details(id, acct_id, 0) | ||||
| 			} | ||||
| 		}) | ||||
| 	return | ||||
|  | ||||
| 	const json = await promise.json() | ||||
| 	if (json) { | ||||
| 		return json | ||||
| 	} else { | ||||
| 		return false | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -1,76 +1,96 @@ | ||||
| //ディレクトリ | ||||
| //ディレクトリトグル | ||||
| function dirMenu() { | ||||
| 	$("#dir-contents").html("") | ||||
| 	directory() | ||||
| 	$("#left-menu a").removeClass("active") | ||||
| 	$("#dirMenu").addClass("active") | ||||
| 	$(".menu-content").addClass("hide") | ||||
| 	$("#dir-box").removeClass("hide") | ||||
|     $('#dir-contents').html('') | ||||
|     directory('directory') | ||||
|     $('#left-menu a').removeClass('active') | ||||
|     $('#dirMenu').addClass('active') | ||||
|     $('.menu-content').addClass('hide') | ||||
|     $('#dir-box').removeClass('hide') | ||||
| } | ||||
|  | ||||
| function dirselCk() { | ||||
| 	var acct = $("#dir-acct-sel").val() | ||||
| 	if (acct == "noauth") { | ||||
| 		$("#dirNoAuth").removeClass("hide") | ||||
| 	} else { | ||||
| 		$("#dirNoAuth").addClass("hide") | ||||
| 		directory() | ||||
| 	} | ||||
|     var acct = $('#dir-acct-sel').val() | ||||
|     if (acct == 'noauth') { | ||||
|         $('#dirNoAuth').removeClass('hide') | ||||
|     } else { | ||||
|         $('#dirNoAuth').addClass('hide') | ||||
|         directory('check') | ||||
|     } | ||||
| } | ||||
| function directory(isMore) { | ||||
| 	var order = $("[name=sort]:checked").val() | ||||
| 	if (!order) { | ||||
| 		order = "active" | ||||
| 	} | ||||
| 	var local_only = $("#local_only:checked").val() | ||||
| 	if (local_only) { | ||||
| 		local_only = "true" | ||||
| 	} else { | ||||
| 		local_only = "false" | ||||
| 	} | ||||
| 	var acct_id = $("#dir-acct-sel").val() | ||||
| 	if (acct_id == "noauth") { | ||||
| 		var domain = $("#dirNoAuth-url").val() | ||||
| 		var at = "" | ||||
| 	} else { | ||||
| 		var domain = localStorage.getItem("domain_" + acct_id) | ||||
| 		var at = localStorage.getItem("acct_" + acct_id + "_at") | ||||
| 	} | ||||
| 	if (isMore) { | ||||
| 		var addOffset = $("#dir-contents .cvo").length | ||||
| 	} else { | ||||
| 		var addOffset = 0 | ||||
| 		$("#dir-contents").html("") | ||||
| 	} | ||||
| 	var start = "https://" + domain + "/api/v1/directory?order=" + order + "&local=" + local_only + "&offset=" + addOffset | ||||
| 	console.log(start) | ||||
| 	fetch(start, { | ||||
| 		method: "GET", | ||||
| 		headers: { | ||||
| 			"content-type": "application/json", | ||||
| 			Authorization: "Bearer " + at | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 			setLog(start, "JSON", error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(json) { | ||||
| 			if (json) { | ||||
| 				$("#moreDir").removeClass("disabled") | ||||
| 				var html = userparse(json, null, acct_id, "dir", null) | ||||
| 				$("#dir-contents").append(html) | ||||
| 				jQuery("time.timeago").timeago() | ||||
| 			} else { | ||||
| 				$("#moreDir").addClass("disabled") | ||||
| 			} | ||||
| 		}) | ||||
|  | ||||
| function dirChange(mode) { | ||||
|     if (mode === 'directory') $('#directoryConfig').removeClass('hide') | ||||
|     if (mode === 'suggest') $('#directoryConfig').addClass('hide') | ||||
|     directory(mode) | ||||
| } | ||||
|  | ||||
| function directory(modeRaw, isMore) { | ||||
|     const mode = modeRaw === 'check' ? $('[name=dirsug]:checked').val() : modeRaw | ||||
|     var order = $('[name=sort]:checked').val() | ||||
|     if (!order) { | ||||
|         order = 'active' | ||||
|     } | ||||
|     var local_only = $('#local_only:checked').val() | ||||
|     if (local_only) { | ||||
|         local_only = 'true' | ||||
|     } else { | ||||
|         local_only = 'false' | ||||
|     } | ||||
|     var acct_id = $('#dir-acct-sel').val() | ||||
|     if (acct_id == 'noauth') { | ||||
|         var domain = $('#dirNoAuth-url').val() | ||||
|         var at = '' | ||||
|     } else { | ||||
|         var domain = localStorage.getItem('domain_' + acct_id) | ||||
|         var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
|     } | ||||
|     if (isMore) { | ||||
|         var addOffset = $('#dir-contents .cvo').length | ||||
|         $('#dir-contents').append(`<div class="progress transparent"><div class="indeterminate"></div></div>`) | ||||
|     } else { | ||||
|         var addOffset = 0 | ||||
|         $('#dir-contents').html(`<div class="progress transparent"><div class="indeterminate"></div></div>`) | ||||
|     } | ||||
|     let start = `https://${domain}/api/v1/directory?order=${order}&local=${local_only}&offset=${addOffset}` | ||||
|     if (mode === 'suggest') start = `https://${domain}/api/v2/suggestions` | ||||
|     console.log(start) | ||||
|     fetch(start, { | ||||
|             method: 'GET', | ||||
|             headers: { | ||||
|                 'content-type': 'application/json', | ||||
|                 Authorization: 'Bearer ' + at, | ||||
|             }, | ||||
|         }) | ||||
|         .then(function(response) { | ||||
|             $('#dir-contents .progress').remove() | ||||
|             if (!response.ok) { | ||||
|                 $('#dir-contents').html(`v2 follow suggestion is supported by Mastodon 3.4.0 or above.`) | ||||
|                 response.text().then(function(text) { | ||||
|                     setLog(response.url, response.status, text) | ||||
|                 }) | ||||
|             } | ||||
|             return response.json() | ||||
|         }) | ||||
|         .catch(function(error) { | ||||
|             setLog(start, 'JSON', error) | ||||
|             console.error(error) | ||||
|         }) | ||||
|         .then(function(json) { | ||||
|             if (json) { | ||||
|                 $('#moreDir').removeClass('disabled') | ||||
|                 let obj = [] | ||||
|                 if (mode === 'suggest') { | ||||
|                     $('#moreDir').addClass('disabled') | ||||
|                     for (const suggest of json) obj.push(suggest.account) | ||||
|                 } else { | ||||
|                     obj = json | ||||
|                 } | ||||
|                 var html = userparse(obj, null, acct_id, 'dir', null) | ||||
|                 $('#dir-contents').append(html) | ||||
|                 jQuery('time.timeago').timeago() | ||||
|             } else { | ||||
|                 $('#moreDir').addClass('disabled') | ||||
|             } | ||||
|         }) | ||||
| } | ||||
							
								
								
									
										1006
									
								
								app/js/tl/filter.js
									
									
									
									
									
								
							
							
						
						
									
										1006
									
								
								app/js/tl/filter.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -89,7 +89,7 @@ function list() { | ||||
| 							</a>/ | ||||
| 							<a onclick="listUser('${list.id}','${acct_id}')" class="pointer"> | ||||
| 								${lang.lang_list_users} | ||||
| 							'</a><br>` | ||||
| 							</a><br>` | ||||
| 					}) | ||||
| 					$('#lists').html(lists) | ||||
| 				} else { | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,432 +1,437 @@ | ||||
| //通知 | ||||
| //取得+Streaming接続 | ||||
| function notf(acct_id, tlid, sys) { | ||||
| 	if (sys == 'direct') { | ||||
| 		notfColumn(acct_id, tlid, sys) | ||||
| 	} else { | ||||
| 		notfCommon(acct_id, tlid, sys) | ||||
| 	} | ||||
|     if (sys == 'direct') { | ||||
|         notfColumn(acct_id, tlid, sys) | ||||
|     } else { | ||||
|         notfCommon(acct_id, tlid, sys) | ||||
|     } | ||||
| } | ||||
|  | ||||
| function notfColumn(acct_id, tlid, sys) { | ||||
| 	todo('Notifications Loading...') | ||||
| 	var native = localStorage.getItem('nativenotf') | ||||
| 	var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
| 	if (!native) { | ||||
| 		native = 'yes' | ||||
| 	} | ||||
| 	var domain = localStorage.getItem('domain_' + acct_id) | ||||
| 	var httpreq = new XMLHttpRequest() | ||||
| 	if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
| 		var misskey = true | ||||
| 		var start = 'https://' + domain + '/api/i/notifications' | ||||
| 		httpreq.open('POST', start, true) | ||||
| 		httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
| 		var body = JSON.stringify({ | ||||
| 			i: at | ||||
| 		}) | ||||
| 	} else { | ||||
| 		var misskey = false | ||||
| 		if (localStorage.getItem('exclude-' + tlid)) { | ||||
| 			var exc = localStorage.getItem('exclude-' + tlid) | ||||
| 		} else { | ||||
| 			var exc = '' | ||||
| 		} | ||||
| 		var start = 'https://' + domain + '/api/v1/notifications' + exc | ||||
| 		httpreq.open('GET', start, true) | ||||
| 		httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
| 		httpreq.setRequestHeader('Authorization', 'Bearer ' + at) | ||||
| 		var body = '' | ||||
| 	} | ||||
|     todo('Notifications Loading...') | ||||
|     var native = localStorage.getItem('nativenotf') | ||||
|     var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
|     if (!native) { | ||||
|         native = 'yes' | ||||
|     } | ||||
|     var domain = localStorage.getItem('domain_' + acct_id) | ||||
|     var httpreq = new XMLHttpRequest() | ||||
|     if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
|         var misskey = true | ||||
|         var start = 'https://' + domain + '/api/i/notifications' | ||||
|         httpreq.open('POST', start, true) | ||||
|         httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
|         var body = JSON.stringify({ | ||||
|             i: at, | ||||
|         }) | ||||
|     } else { | ||||
|         var misskey = false | ||||
|         if (localStorage.getItem('exclude-' + tlid)) { | ||||
|             var exc = localStorage.getItem('exclude-' + tlid) | ||||
|         } else { | ||||
|             var exc = '' | ||||
|         } | ||||
|         var start = 'https://' + domain + '/api/v1/notifications' + exc | ||||
|         httpreq.open('GET', start, true) | ||||
|         httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
|         httpreq.setRequestHeader('Authorization', 'Bearer ' + at) | ||||
|         var body = '' | ||||
|     } | ||||
|  | ||||
| 	httpreq.responseType = 'json' | ||||
| 	httpreq.send(body) | ||||
| 	httpreq.onreadystatechange = function() { | ||||
| 		if (httpreq.readyState === 4) { | ||||
| 			var json = httpreq.response | ||||
| 			if (this.status !== 200) { | ||||
| 				setLog(start, this.status, this.response) | ||||
| 			} | ||||
| 			var max_id = httpreq.getResponseHeader('link') | ||||
| 			if (max_id) { | ||||
| 				max_id = max_id.match(/[?&]{1}max_id=([0-9]+)/)[1] | ||||
| 			} | ||||
| 			if (json[0]) { | ||||
| 				var templete = '' | ||||
| 				var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
| 				localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
| 				Object.keys(json).forEach(function(key) { | ||||
| 					var obj = json[key] | ||||
| 					if (lastnotf == obj.id && key > 0 && native == 'yes') { | ||||
| 						var ct = key | ||||
| 						if (key > 14) { | ||||
| 							ct = '15+' | ||||
| 						} | ||||
| 						var os = localStorage.getItem('platform') | ||||
| 						var options = { | ||||
| 							body: ct + lang.lang_notf_new, | ||||
| 							icon: localStorage.getItem('prof_' + acct_id) | ||||
| 						} | ||||
| 						var n = new Notification('TheDesk:' + domain, options) | ||||
| 					} | ||||
| 					var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
| 					//Pleromaにはmoveというtypeがあるらしい。何が互換APIじゃ | ||||
| 					if (obj.type != 'follow' && obj.type != 'move' && obj.type != 'follow_request') { | ||||
| 						if (misskey) { | ||||
| 							templete = templete + misskeyParse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
| 						} else { | ||||
| 							templete = templete + parse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
| 						} | ||||
| 					} else if (obj.type == 'follow_request') { | ||||
| 						templete = templete + userparse([obj.account], 'request', acct_id, tlid, -1) | ||||
| 					} else { | ||||
| 						if (misskey) { | ||||
| 							templete = templete + misskeyUserparse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
| 						} else { | ||||
| 							templete = templete + userparse([obj.account], obj.type, acct_id, tlid, -1) | ||||
| 						} | ||||
| 					} | ||||
| 				}) | ||||
| 				templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>' | ||||
| 				$('#timeline_' + tlid).html(templete) | ||||
| 				$('#landing_' + tlid).hide() | ||||
| 				jQuery('time.timeago').timeago() | ||||
| 			} | ||||
| 			$('#notf-box').addClass('fetched') | ||||
| 			todc() | ||||
| 			//Markers | ||||
| 			var markers = localStorage.getItem('markers') | ||||
| 			if (markers == 'yes') { | ||||
| 				markers = true | ||||
| 			} else { | ||||
| 				markers = false | ||||
| 			} | ||||
| 			if (markers) { | ||||
| 				getMarker(tlid, 'notf', acct_id) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if (!misskey) { | ||||
| 		if (localStorage.getItem('streaming_' + acct_id)) { | ||||
| 			var wss = localStorage.getItem('streaming_' + acct_id) | ||||
| 		} else { | ||||
| 			var wss = 'wss://' + domain | ||||
| 		} | ||||
| 		var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at | ||||
| 	} else { | ||||
| 		var start = 'wss://' + domain + '/?i=' + at | ||||
| 	} | ||||
|     httpreq.responseType = 'json' | ||||
|     httpreq.send(body) | ||||
|     httpreq.onreadystatechange = function() { | ||||
|         if (httpreq.readyState === 4) { | ||||
|             var json = httpreq.response | ||||
|             if (this.status !== 200) { | ||||
|                 $('#landing_' + tlid).append(`<div>${this.status}</div><div>${escapeHTML(this.response)}`) | ||||
|                 setLog(start, this.status, this.response) | ||||
|             } | ||||
|             var max_id = httpreq.getResponseHeader('link') | ||||
|             if (max_id) { | ||||
|                 max_id = max_id.match(/[?&]{1}max_id=([0-9]+)/)[1] | ||||
|             } | ||||
|             if (json[0]) { | ||||
|                 var templete = '' | ||||
|                 var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
|                 localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
|                 Object.keys(json).forEach(function(key) { | ||||
|                     var obj = json[key] | ||||
|                     if (lastnotf == obj.id && key > 0 && native == 'yes') { | ||||
|                         var ct = key | ||||
|                         if (key > 14) { | ||||
|                             ct = '15+' | ||||
|                         } | ||||
|                         var os = localStorage.getItem('platform') | ||||
|                         var options = { | ||||
|                             body: ct + lang.lang_notf_new, | ||||
|                             icon: localStorage.getItem('prof_' + acct_id), | ||||
|                         } | ||||
|                         var n = new Notification('TheDesk:' + domain, options) | ||||
|                     } | ||||
|                     var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
|                         //Pleromaにはmoveというtypeがあるらしい。何が互換APIじゃ | ||||
|                     if (obj.type != 'follow' && obj.type != 'move' && obj.type != 'follow_request') { | ||||
|                         if (misskey) { | ||||
|                             templete = templete + misskeyParse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
|                         } else { | ||||
|                             templete = templete + parse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
|                         } | ||||
|                     } else if (obj.type == 'follow_request') { | ||||
|                         templete = templete + userparse([obj.account], 'request', acct_id, tlid, -1) | ||||
|                     } else { | ||||
|                         if (misskey) { | ||||
|                             templete = templete + misskeyUserparse([obj], 'notf', acct_id, tlid, -1, mute) | ||||
|                         } else { | ||||
|                             templete = templete + userparse([obj.account], obj.type, acct_id, tlid, -1) | ||||
|                         } | ||||
|                     } | ||||
|                 }) | ||||
|                 templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>' | ||||
|                 $('#timeline_' + tlid).html(templete) | ||||
|                     // $('#landing_' + tlid).hide() | ||||
|                 jQuery('time.timeago').timeago() | ||||
|             } | ||||
|             $('#notf-box').addClass('fetched') | ||||
|             todc() | ||||
|                 //Markers | ||||
|             var markers = localStorage.getItem('markers') | ||||
|             if (markers == 'yes') { | ||||
|                 markers = true | ||||
|             } else { | ||||
|                 markers = false | ||||
|             } | ||||
|             if (markers) { | ||||
|                 getMarker(tlid, 'notf', acct_id) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     if (!misskey) { | ||||
|         if (localStorage.getItem('streaming_' + acct_id)) { | ||||
|             var wss = localStorage.getItem('streaming_' + acct_id) | ||||
|         } else { | ||||
|             var wss = 'wss://' + domain | ||||
|         } | ||||
|         var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at | ||||
|     } else { | ||||
|         var start = 'wss://' + domain + '/?i=' + at | ||||
|     } | ||||
| } | ||||
|  | ||||
| function notfCommon(acct_id, tlid, sys, stream) { | ||||
| 	todo('Notifications Loading...') | ||||
| 	var native = localStorage.getItem('nativenotf') | ||||
| 	var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
| 	if (!native) { | ||||
| 		native = 'yes' | ||||
| 	} | ||||
| 	var domain = localStorage.getItem('domain_' + acct_id) | ||||
| 	if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
| 		var misskey = true | ||||
| 		var start = 'https://' + domain + '/api/i/notifications' | ||||
| 		var i = { | ||||
| 			method: 'POST', | ||||
| 			headers: { | ||||
| 				'content-type': 'application/json' | ||||
| 			}, | ||||
| 			body: JSON.stringify({ | ||||
| 				i: at | ||||
| 			}) | ||||
| 		} | ||||
| 	} else { | ||||
| 		var misskey = false | ||||
| 		var start = 'https://' + domain + '/api/v1/notifications' | ||||
| 		var i = { | ||||
| 			method: 'GET', | ||||
| 			headers: { | ||||
| 				'content-type': 'application/json', | ||||
| 				Authorization: 'Bearer ' + at | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	if(stream == 'only') { | ||||
| 		notfWS(misskey, acct_id, tlid, domain, at) | ||||
| 		return false | ||||
| 	} | ||||
| 	fetch(start, i) | ||||
| 		.then(function(response) { | ||||
| 			console.log('header to get param:' + response.headers.get('link')) | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 			todo(error) | ||||
| 			setLog(start, 'JSON', error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(json) { | ||||
| 			if (json[0]) { | ||||
| 				var templete = '' | ||||
| 				var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
| 				localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
| 				Object.keys(json).forEach(function(key) { | ||||
| 					var obj = json[key] | ||||
| 					if (lastnotf == obj.id && key > 0 && native == 'yes') { | ||||
| 						var ct = key | ||||
| 						if (key > 14) { | ||||
| 							ct = '15+' | ||||
| 						} | ||||
| 						var os = localStorage.getItem('platform') | ||||
| 						var options = { | ||||
| 							body: ct + lang.lang_notf_new, | ||||
| 							icon: localStorage.getItem('prof_' + acct_id) | ||||
| 						} | ||||
| 						var n = new Notification('TheDesk:' + domain, options) | ||||
| 					} | ||||
| 					var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
| 					//Pleromaにはmoveというtypeがあるらしい。何が互換APIじゃ | ||||
| 					if (obj.type != 'follow' && obj.type != 'move') { | ||||
| 						if (misskey) { | ||||
| 							templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 						} else { | ||||
| 							templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 						} | ||||
| 					} else { | ||||
| 						if (misskey) { | ||||
| 							templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 						} else { | ||||
| 							templete = templete + userparse([obj.account], obj.type, acct_id, 'notf', -1) | ||||
| 						} | ||||
| 					} | ||||
| 				}) | ||||
| 				$('div[data-notf=' + acct_id + ']').html(templete) | ||||
| 				$('#landing_' + tlid).hide() | ||||
| 				jQuery('time.timeago').timeago() | ||||
| 			} | ||||
| 			$('#notf-box').addClass('fetched') | ||||
| 			todc() | ||||
| 			if(stream != 'no') notfWS(misskey, acct_id, tlid, domain, at) | ||||
| 		}) | ||||
|     todo('Notifications Loading...') | ||||
|     var native = localStorage.getItem('nativenotf') | ||||
|     var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
|     if (!native) { | ||||
|         native = 'yes' | ||||
|     } | ||||
|     var domain = localStorage.getItem('domain_' + acct_id) | ||||
|     if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
|         var misskey = true | ||||
|         var start = 'https://' + domain + '/api/i/notifications' | ||||
|         var i = { | ||||
|             method: 'POST', | ||||
|             headers: { | ||||
|                 'content-type': 'application/json', | ||||
|             }, | ||||
|             body: JSON.stringify({ | ||||
|                 i: at, | ||||
|             }), | ||||
|         } | ||||
|     } else { | ||||
|         var misskey = false | ||||
|         var start = 'https://' + domain + '/api/v1/notifications' | ||||
|         var i = { | ||||
|             method: 'GET', | ||||
|             headers: { | ||||
|                 'content-type': 'application/json', | ||||
|                 Authorization: 'Bearer ' + at, | ||||
|             }, | ||||
|         } | ||||
|     } | ||||
|     if (stream == 'only') { | ||||
|         notfWS(misskey, acct_id, tlid, domain, at) | ||||
|         return false | ||||
|     } | ||||
|     fetch(start, i) | ||||
|         .then(function(response) { | ||||
|             console.log('header to get param:' + response.headers.get('link')) | ||||
|             if (!response.ok) { | ||||
|                 response.text().then(function(text) { | ||||
|                     console.log('notf error', 'div[data-notf=' + acct_id + '] .landing') | ||||
|                     $('div[data-notf=' + acct_id + '] .landing').append(`<div>${response.status}</div><div>${escapeHTML(text)}`) | ||||
|                     setLog(response.url, response.status, text) | ||||
|                 }) | ||||
|             } | ||||
|             return response.json() | ||||
|         }) | ||||
|         .catch(function(error) { | ||||
|             todo(error) | ||||
|             setLog(start, 'JSON', error) | ||||
|             console.error(error) | ||||
|         }) | ||||
|         .then(function(json) { | ||||
|             if (json[0]) { | ||||
|                 var templete = '' | ||||
|                 var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
|                 localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
|                 Object.keys(json).forEach(function(key) { | ||||
|                     var obj = json[key] | ||||
|                     if (lastnotf == obj.id && key > 0 && native == 'yes') { | ||||
|                         var ct = key | ||||
|                         if (key > 14) { | ||||
|                             ct = '15+' | ||||
|                         } | ||||
|                         var os = localStorage.getItem('platform') | ||||
|                         var options = { | ||||
|                             body: ct + lang.lang_notf_new, | ||||
|                             icon: localStorage.getItem('prof_' + acct_id), | ||||
|                         } | ||||
|                         var n = new Notification('TheDesk:' + domain, options) | ||||
|                     } | ||||
|                     var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
|                         //Pleromaにはmoveというtypeがあるらしい。何が互換APIじゃ | ||||
|                     if (obj.type != 'follow' && obj.type != 'move') { | ||||
|                         if (misskey) { | ||||
|                             templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                         } else { | ||||
|                             templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                         } | ||||
|                     } else { | ||||
|                         if (misskey) { | ||||
|                             templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                         } else { | ||||
|                             templete = templete + userparse([obj.account], obj.type, acct_id, 'notf', -1) | ||||
|                         } | ||||
|                     } | ||||
|                 }) | ||||
|                 $('div[data-notf=' + acct_id + ']').html(templete) | ||||
|                     // $('#landing_' + tlid).hide() | ||||
|                 jQuery('time.timeago').timeago() | ||||
|             } | ||||
|             $('#notf-box').addClass('fetched') | ||||
|             todc() | ||||
|             if (stream != 'no') notfWS(misskey, acct_id, tlid, domain, at) | ||||
|         }) | ||||
| } | ||||
| function notfWS(misskey, acct_id, tlid, domain, at) { | ||||
| 	if(mastodonBaseWsStatus[domain] == 'available') return false | ||||
| 	if (!misskey) { | ||||
| 		if (localStorage.getItem('streaming_' + acct_id)) { | ||||
| 			var wss = localStorage.getItem('streaming_' + acct_id) | ||||
| 		} else { | ||||
| 			var wss = 'wss://' + domain | ||||
| 		} | ||||
| 		var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at | ||||
|  | ||||
| 		var wsid = websocketNotf.length | ||||
| 		websocketNotf[acct_id] = new WebSocket(start) | ||||
| 		websocketNotf[acct_id].onopen = function(mess) { | ||||
| 			console.table({ | ||||
| 				acct_id: acct_id, | ||||
| 				type: 'Connect Streaming API(Notf)', | ||||
| 				domain: domain, | ||||
| 				message: [mess] | ||||
| 			}) | ||||
| 			$('i[data-notf=' + acct_id + ']').removeClass('red-text') | ||||
| 		} | ||||
| 		websocketNotf[acct_id].onmessage = function(mess) { | ||||
| 			//console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]); | ||||
| 			var popup = localStorage.getItem('popup') | ||||
| 			if (!popup) { | ||||
| 				popup = 0 | ||||
| 			} | ||||
| 			var obj = JSON.parse(JSON.parse(mess.data).payload) | ||||
| 			var type = JSON.parse(mess.data).event | ||||
| 			if (type == 'notification') { | ||||
| 				var templete = '' | ||||
| 				localStorage.setItem('lastnotf_' + acct_id, obj.id) | ||||
| 				if (!$('#unread_' + tlid + ' .material-icons').hasClass('teal-text')) { | ||||
| 					//markers show中はダメ | ||||
| 					if (obj.type != 'follow' && obj.type != 'follow_request') { | ||||
| 						templete = parse([obj], 'notf', acct_id, 'notf', popup) | ||||
| 					} else if (obj.type == 'follow_request') { | ||||
| 						templete = userparse([obj.account], 'request', acct_id, 'notf', -1) | ||||
| 					} else { | ||||
| 						templete = userparse([obj], obj.type, acct_id, 'notf', popup) | ||||
| 					} | ||||
| 					if (!$('div[data-notfIndv=' + acct_id + '_' + obj.id + ']').length) { | ||||
| 						$('div[data-notf=' + acct_id + ']').prepend(templete) | ||||
| 						$('div[data-const=notf_' + acct_id + ']').prepend(templete) | ||||
| 					} | ||||
| 					jQuery('time.timeago').timeago() | ||||
| 				} | ||||
| 			} else if (type == 'delete') { | ||||
| 				$('[toot-id=' + obj + ']').hide() | ||||
| 				$('[toot-id=' + obj + ']').remove() | ||||
| 			} | ||||
| 		} | ||||
| 		websocketNotf[acct_id].onerror = function(error) { | ||||
| 			console.error('WebSocket Error ', error) | ||||
| 			errorct++ | ||||
| 			console.log(errorct) | ||||
| 			if (errorct < 3) { | ||||
| 				notfWS(misskey, acct_id, tlid, domain, at) | ||||
| 			} | ||||
| 		} | ||||
| 		websocketNotf[acct_id].onclose = function(error) { | ||||
| 			console.error('WebSocket Close ', error) | ||||
| 			errorct++ | ||||
| 			console.log(errorct) | ||||
| 			if (errorct < 3) { | ||||
| 				notfWS(misskey, acct_id, tlid, domain, at) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| function notfWS(misskey, acct_id, tlid, domain, at) { | ||||
|     if (mastodonBaseWsStatus[domain] == 'available') return false | ||||
|     if (!misskey) { | ||||
|         if (localStorage.getItem('streaming_' + acct_id)) { | ||||
|             var wss = localStorage.getItem('streaming_' + acct_id) | ||||
|         } else { | ||||
|             var wss = 'wss://' + domain | ||||
|         } | ||||
|         var start = wss + '/api/v1/streaming/?stream=user&access_token=' + at | ||||
|  | ||||
|         var wsid = websocketNotf.length | ||||
|         websocketNotf[acct_id] = new WebSocket(start) | ||||
|         websocketNotf[acct_id].onopen = function(mess) { | ||||
|             console.table({ | ||||
|                 acct_id: acct_id, | ||||
|                 type: 'Connect Streaming API(Notf)', | ||||
|                 domain: domain, | ||||
|                 message: [mess], | ||||
|             }) | ||||
|             $('i[data-notf=' + acct_id + ']').removeClass('red-text') | ||||
|         } | ||||
|         websocketNotf[acct_id].onmessage = function(mess) { | ||||
|             $('#landing_' + tlid).hide() | ||||
|                 //console.log(["Receive Streaming API(Notf):" + acct_id + "(" + domain + ")", JSON.parse(JSON.parse(mess.data).payload)]); | ||||
|             var popup = localStorage.getItem('popup') | ||||
|             if (!popup) { | ||||
|                 popup = 0 | ||||
|             } | ||||
|             var obj = JSON.parse(JSON.parse(mess.data).payload) | ||||
|             var type = JSON.parse(mess.data).event | ||||
|             if (type == 'notification') { | ||||
|                 var templete = '' | ||||
|                 localStorage.setItem('lastnotf_' + acct_id, obj.id) | ||||
|                 if (!$('#unread_' + tlid + ' .material-icons').hasClass('teal-text')) { | ||||
|                     //markers show中はダメ | ||||
|                     if (obj.type != 'follow' && obj.type != 'follow_request') { | ||||
|                         templete = parse([obj], 'notf', acct_id, 'notf', popup) | ||||
|                     } else if (obj.type == 'follow_request') { | ||||
|                         templete = userparse([obj.account], 'request', acct_id, 'notf', -1) | ||||
|                     } else { | ||||
|                         templete = userparse([obj], obj.type, acct_id, 'notf', popup) | ||||
|                     } | ||||
|                     if (!$('div[data-notfIndv=' + acct_id + '_' + obj.id + ']').length) { | ||||
|                         $('div[data-notf=' + acct_id + ']').prepend(templete) | ||||
|                         $('div[data-const=notf_' + acct_id + ']').prepend(templete) | ||||
|                     } | ||||
|                     jQuery('time.timeago').timeago() | ||||
|                 } | ||||
|             } else if (type == 'delete') { | ||||
|                 $('[toot-id=' + obj + ']').hide() | ||||
|                 $('[toot-id=' + obj + ']').remove() | ||||
|             } | ||||
|         } | ||||
|         websocketNotf[acct_id].onerror = function(error) { | ||||
|             console.error('WebSocket Error ', error) | ||||
|             errorct++ | ||||
|             console.log(errorct) | ||||
|             if (errorct < 3) { | ||||
|                 notfWS(misskey, acct_id, tlid, domain, at) | ||||
|             } | ||||
|         } | ||||
|         websocketNotf[acct_id].onclose = function(error) { | ||||
|             console.error('WebSocket Close ', error) | ||||
|             errorct++ | ||||
|             console.log(errorct) | ||||
|             if (errorct < 3) { | ||||
|                 notfWS(misskey, acct_id, tlid, domain, at) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
| //一定のスクロールで発火 | ||||
| function notfmore(tlid) { | ||||
| 	console.log({ status: 'kicked', status: moreloading }) | ||||
| 	var multi = localStorage.getItem('column') | ||||
| 	var obj = JSON.parse(multi) | ||||
| 	var acct_id = obj[tlid].domain | ||||
| 	if (!type) { | ||||
| 		var type = obj[tlid].type | ||||
| 	} else { | ||||
| 		var data | ||||
| 	} | ||||
| 	var sid = $('#timeline_' + tlid + ' .notif-marker') | ||||
| 		.last() | ||||
| 		.attr('data-maxid') | ||||
| 	var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
| 	var domain = localStorage.getItem('domain_' + acct_id) | ||||
| 	if (sid && !moreloading) { | ||||
| 		moreloading = true | ||||
| 		var httpreq = new XMLHttpRequest() | ||||
| 		if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
| 			var misskey = true | ||||
| 			var start = 'https://' + domain + '/api/i/notifications' | ||||
| 			httpreq.open(POST, start, true) | ||||
| 			httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
| 			var body = JSON.stringify({ | ||||
| 				i: at, | ||||
| 				untilID: sid | ||||
| 			}) | ||||
| 		} else { | ||||
| 			var misskey = false | ||||
| 			if (localStorage.getItem('exclude-' + tlid)) { | ||||
| 				var exc = localStorage.getItem('exclude-' + tlid) + '&max_id=' + sid | ||||
| 			} else { | ||||
| 				var exc = '?max_id=' + sid | ||||
| 			} | ||||
| 			var start = 'https://' + domain + '/api/v1/notifications' + exc | ||||
| 			httpreq.open('GET', start, true) | ||||
| 			httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
| 			httpreq.setRequestHeader('Authorization', 'Bearer ' + at) | ||||
| 			var body = '' | ||||
| 		} | ||||
|     console.log({ status: 'kicked', status: moreloading }) | ||||
|     var multi = localStorage.getItem('column') | ||||
|     var obj = JSON.parse(multi) | ||||
|     var acct_id = obj[tlid].domain | ||||
|     if (!type) { | ||||
|         var type = obj[tlid].type | ||||
|     } else { | ||||
|         var data | ||||
|     } | ||||
|     var sid = $('#timeline_' + tlid + ' .notif-marker') | ||||
|         .last() | ||||
|         .attr('data-maxid') | ||||
|     var at = localStorage.getItem('acct_' + acct_id + '_at') | ||||
|     var domain = localStorage.getItem('domain_' + acct_id) | ||||
|     if (sid && !moreloading) { | ||||
|         moreloading = true | ||||
|         var httpreq = new XMLHttpRequest() | ||||
|         if (localStorage.getItem('mode_' + domain) == 'misskey') { | ||||
|             var misskey = true | ||||
|             var start = 'https://' + domain + '/api/i/notifications' | ||||
|             httpreq.open(POST, start, true) | ||||
|             httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
|             var body = JSON.stringify({ | ||||
|                 i: at, | ||||
|                 untilID: sid, | ||||
|             }) | ||||
|         } else { | ||||
|             var misskey = false | ||||
|             if (localStorage.getItem('exclude-' + tlid)) { | ||||
|                 var exc = localStorage.getItem('exclude-' + tlid) + '&max_id=' + sid | ||||
|             } else { | ||||
|                 var exc = '?max_id=' + sid | ||||
|             } | ||||
|             var start = 'https://' + domain + '/api/v1/notifications' + exc | ||||
|             httpreq.open('GET', start, true) | ||||
|             httpreq.setRequestHeader('Content-Type', 'application/json') | ||||
|             httpreq.setRequestHeader('Authorization', 'Bearer ' + at) | ||||
|             var body = '' | ||||
|         } | ||||
|  | ||||
| 		httpreq.responseType = 'json' | ||||
| 		httpreq.send(body) | ||||
| 		httpreq.onreadystatechange = function() { | ||||
| 			if (httpreq.readyState === 4) { | ||||
| 				var json = httpreq.response | ||||
| 				if (this.status !== 200) { | ||||
| 					setLog(start, this.status, this.response) | ||||
| 				} | ||||
| 				console.log(['More notifications on ' + tlid, json]) | ||||
| 				var max_id = httpreq.getResponseHeader('link').match(/[?&]{1}max_id=([0-9]+)/)[1] | ||||
| 				if (json[0]) { | ||||
| 					var templete = '' | ||||
| 					var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
| 					localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
| 					Object.keys(json).forEach(function(key) { | ||||
| 						var obj = json[key] | ||||
| 						var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
| 						if (obj.type != 'follow') { | ||||
| 							if (misskey) { | ||||
| 								templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 							} else { | ||||
| 								templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 							} | ||||
| 						} else { | ||||
| 							if (misskey) { | ||||
| 								templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
| 							} else { | ||||
| 								templete = templete + userparse([obj.account], obj.type, acct_id, 'notf', -1) | ||||
| 							} | ||||
| 						} | ||||
| 					}) | ||||
| 					moreloading = false | ||||
| 					templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>' | ||||
| 					$('#timeline_' + tlid).append(templete) | ||||
| 					$('#landing_' + tlid).hide() | ||||
| 					jQuery('time.timeago').timeago() | ||||
| 				} | ||||
| 				$('#notf-box').addClass('fetched') | ||||
| 				todc() | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|         httpreq.responseType = 'json' | ||||
|         httpreq.send(body) | ||||
|         httpreq.onreadystatechange = function() { | ||||
|             if (httpreq.readyState === 4) { | ||||
|                 var json = httpreq.response | ||||
|                 if (this.status !== 200) { | ||||
|                     setLog(start, this.status, this.response) | ||||
|                 } | ||||
|                 console.log(['More notifications on ' + tlid, json]) | ||||
|                 var max_id = httpreq.getResponseHeader('link').match(/[?&]{1}max_id=([0-9]+)/)[1] | ||||
|                 if (json[0]) { | ||||
|                     var templete = '' | ||||
|                     var lastnotf = localStorage.getItem('lastnotf_' + acct_id) | ||||
|                     localStorage.setItem('lastnotf_' + acct_id, json[0].id) | ||||
|                     Object.keys(json).forEach(function(key) { | ||||
|                         var obj = json[key] | ||||
|                         var mute = getFilterTypeByAcct(acct_id, 'notif') | ||||
|                         if (obj.type != 'follow') { | ||||
|                             if (misskey) { | ||||
|                                 templete = templete + misskeyParse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                             } else { | ||||
|                                 templete = templete + parse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                             } | ||||
|                         } else { | ||||
|                             if (misskey) { | ||||
|                                 templete = templete + misskeyUserparse([obj], 'notf', acct_id, 'notf', -1, mute) | ||||
|                             } else { | ||||
|                                 templete = templete + userparse([obj.account], obj.type, acct_id, 'notf', -1) | ||||
|                             } | ||||
|                         } | ||||
|                     }) | ||||
|                     moreloading = false | ||||
|                     templete = templete + '<div class="hide notif-marker" data-maxid="' + max_id + '"></div>' | ||||
|                     $('#timeline_' + tlid).append(templete) | ||||
|                         // $('#landing_' + tlid).hide() | ||||
|                     jQuery('time.timeago').timeago() | ||||
|                 } | ||||
|                 $('#notf-box').addClass('fetched') | ||||
|                 todc() | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| //通知トグルボタン | ||||
| function notfToggle(acct, tlid) { | ||||
| 	if ($('#notf-box_' + tlid).hasClass('column-hide')) { | ||||
| 		$('#notf-box_' + tlid).css('display', 'block') | ||||
| 		$('#notf-box_' + tlid).animate( | ||||
| 			{ | ||||
| 				height: '400px' | ||||
| 			}, | ||||
| 			{ | ||||
| 				duration: 300, | ||||
| 				complete: function() { | ||||
| 					$('#notf-box_' + tlid).css('overflow-y', 'scroll') | ||||
| 					$('#notf-box_' + tlid).removeClass('column-hide') | ||||
| 				} | ||||
| 			} | ||||
| 		) | ||||
| 	} else { | ||||
| 		$('#notf-box_' + tlid).css('overflow-y', 'hidden') | ||||
| 		$('#notf-box_' + tlid).animate( | ||||
| 			{ | ||||
| 				height: '0' | ||||
| 			}, | ||||
| 			{ | ||||
| 				duration: 300, | ||||
| 				complete: function() { | ||||
| 					$('#notf-box_' + tlid).addClass('column-hide') | ||||
| 					$('#notf-box_' + tlid).css('display', 'none') | ||||
| 				} | ||||
| 			} | ||||
| 		) | ||||
| 	} | ||||
| 	notfCanceler(acct) | ||||
|     if ($('#notf-box_' + tlid).hasClass('column-hide')) { | ||||
|         $('#notf-box_' + tlid).css('display', 'block') | ||||
|         $('#notf-box_' + tlid).animate({ | ||||
|             height: '400px', | ||||
|         }, { | ||||
|             duration: 300, | ||||
|             complete: function() { | ||||
|                 $('#notf-box_' + tlid).css('overflow-y', 'scroll') | ||||
|                 $('#notf-box_' + tlid).removeClass('column-hide') | ||||
|             }, | ||||
|         }) | ||||
|     } else { | ||||
|         $('#notf-box_' + tlid).css('overflow-y', 'hidden') | ||||
|         $('#notf-box_' + tlid).animate({ | ||||
|             height: '0', | ||||
|         }, { | ||||
|             duration: 300, | ||||
|             complete: function() { | ||||
|                 $('#notf-box_' + tlid).addClass('column-hide') | ||||
|                 $('#notf-box_' + tlid).css('display', 'none') | ||||
|             }, | ||||
|         }) | ||||
|     } | ||||
|     notfCanceler(acct) | ||||
| } | ||||
|  | ||||
| function notfCanceler(acct) { | ||||
| 	$('.notf-reply_' + acct).text(0) | ||||
| 	localStorage.removeItem('notf-reply_' + acct) | ||||
| 	$('.notf-reply_' + acct).addClass('hide') | ||||
| 	$('.notf-fav_' + acct).text(0) | ||||
| 	localStorage.removeItem('notf-fav_' + acct) | ||||
| 	$('.notf-fav_' + acct).addClass('hide') | ||||
| 	$('.notf-bt_' + acct).text(0) | ||||
| 	localStorage.removeItem('notf-bt_' + acct) | ||||
| 	$('.notf-bt_' + acct).addClass('hide') | ||||
| 	$('.notf-follow_' + acct).text(0) | ||||
| 	localStorage.removeItem('notf-follow_' + acct) | ||||
| 	$('.notf-follow_' + acct).addClass('hide') | ||||
| 	$('.notf-icon_' + acct).removeClass('red-text') | ||||
| 	var id = $('#announce_' + acct + ' .announcement').first().attr('data-id') | ||||
| 	$('.notf-announ_' + acct + '_ct').text("") | ||||
| 	$(`.boxIn[data-acct=${acct}] .notice-box`).removeClass('has-notf') | ||||
| 	if(id) { | ||||
| 		localStorage.setItem('announ_' + acct, id) | ||||
| 	} | ||||
|     $('.notf-reply_' + acct).text(0) | ||||
|     localStorage.removeItem('notf-reply_' + acct) | ||||
|     $('.notf-reply_' + acct).addClass('hide') | ||||
|     $('.notf-fav_' + acct).text(0) | ||||
|     localStorage.removeItem('notf-fav_' + acct) | ||||
|     $('.notf-fav_' + acct).addClass('hide') | ||||
|     $('.notf-bt_' + acct).text(0) | ||||
|     localStorage.removeItem('notf-bt_' + acct) | ||||
|     $('.notf-bt_' + acct).addClass('hide') | ||||
|     $('.notf-follow_' + acct).text(0) | ||||
|     localStorage.removeItem('notf-follow_' + acct) | ||||
|     $('.notf-follow_' + acct).addClass('hide') | ||||
|     $('.notf-icon_' + acct).removeClass('red-text') | ||||
|     var id = $('#announce_' + acct + ' .announcement') | ||||
|         .first() | ||||
|         .attr('data-id') | ||||
|     $('.notf-announ_' + acct + '_ct').text('') | ||||
|     $(`.boxIn[data-acct=${acct}] .notice-box`).removeClass('has-notf') | ||||
|     if (id) { | ||||
|         localStorage.setItem('announ_' + acct, id) | ||||
|     } | ||||
| } | ||||
|  | ||||
| function allNotfRead() { | ||||
| 	var multi = localStorage.getItem('multi') | ||||
| 	if (multi) { | ||||
| 		var obj = JSON.parse(multi) | ||||
| 		Object.keys(obj).forEach(function(key) { | ||||
| 			notfCanceler(key) | ||||
| 		}) | ||||
| 	} | ||||
|     var multi = localStorage.getItem('multi') | ||||
|     if (multi) { | ||||
|         var obj = JSON.parse(multi) | ||||
|         Object.keys(obj).forEach(function(key) { | ||||
|             notfCanceler(key) | ||||
|         }) | ||||
|     } | ||||
| } | ||||
| allNotfRead() | ||||
| allNotfRead() | ||||
							
								
								
									
										1183
									
								
								app/js/tl/parse.js
									
									
									
									
									
								
							
							
						
						
									
										1183
									
								
								app/js/tl/parse.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -13,7 +13,21 @@ function searchMenu() { | ||||
| //検索取得 | ||||
| function src(mode, offset) { | ||||
| 	if (!offset) { | ||||
| 		$('#src-contents').html('') | ||||
| 		$('#src-contents').html(` | ||||
| 		<div class="preloader-wrapper small active" style="margin-left: calc(50% - 36px);"> | ||||
| 			<div class="spinner-layer spinner-blue-only"> | ||||
| 				<div class="circle-clipper left"> | ||||
| 					<div class="circle"></div> | ||||
| 				</div> | ||||
| 				<div class="gap-patch"> | ||||
| 					<div class="circle"></div> | ||||
| 				</div> | ||||
| 				<div class="circle-clipper right"> | ||||
| 					<div class="circle"></div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		`) | ||||
| 		var add = '' | ||||
| 	} else { | ||||
| 		var add = '&type=accounts&offset=' + $('#src-accts .cvo').length | ||||
| @@ -48,24 +62,27 @@ function src(mode, offset) { | ||||
| 			Authorization: 'Bearer ' + at | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 		.then(function (response) { | ||||
| 			if (!offset) { | ||||
| 				$('#src-contents').html(``) | ||||
| 			} | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 				response.text().then(function (text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 		.catch(function (error) { | ||||
| 			src('v1') | ||||
| 			return false | ||||
| 		}) | ||||
| 		.then(function(json) { | ||||
| 		.then(function (json) { | ||||
| 			console.log(['Search', json]) | ||||
| 			//ハッシュタグ | ||||
| 			if (json.hashtags[0]) { | ||||
| 				var tags = '' | ||||
| 				Object.keys(json.hashtags).forEach(function(key4) { | ||||
| 				Object.keys(json.hashtags).forEach(function (key4) { | ||||
| 					var tag = json.hashtags[key4] | ||||
| 					if (mode) { | ||||
| 						tags = | ||||
| @@ -116,7 +133,7 @@ function tsAdd(q) { | ||||
| 	parseColumn('add') | ||||
| } | ||||
| function tootsearch(tlid, q) { | ||||
| 	if(!q || q=='undefined') { | ||||
| 	if (!q || q == 'undefined') { | ||||
| 		return false | ||||
| 	} | ||||
| 	var start = 'https://tootsearch.chotto.moe/api/v1/search?from=0&sort=created_at%3Adesc&q=' + q | ||||
| @@ -129,20 +146,20 @@ function tootsearch(tlid, q) { | ||||
| 			'content-type': 'application/json' | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 		.then(function (response) { | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 				response.text().then(function (text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 		.catch(function (error) { | ||||
| 			todo(error) | ||||
| 			setLog(start, 'JSON', error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(raw) { | ||||
| 		.then(function (raw) { | ||||
| 			var templete = '' | ||||
| 			var json = raw.hits.hits | ||||
| 			var max_id = raw['hits'].length | ||||
| @@ -180,20 +197,20 @@ function moreTs(tlid, q) { | ||||
| 			'content-type': 'application/json' | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 		.then(function (response) { | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 				response.text().then(function (text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 		.catch(function (error) { | ||||
| 			todo(error) | ||||
| 			setLog(start, 'JSON', error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(raw) { | ||||
| 		.then(function (raw) { | ||||
| 			var templete = '' | ||||
| 			var json = raw.hits.hits | ||||
| 			var max_id = raw['hits'].length | ||||
| @@ -256,8 +273,8 @@ function graphDrawCore(his, tag, acct_id) { | ||||
| 				</div> | ||||
| 				<div class="tagCompTag"> | ||||
| 					<a onclick="tl('tag','${escapeHTML( | ||||
| 						tag.name | ||||
| 					)}','${acct_id}','add')" class="pointer" title="${escapeHTML(tag.name)}"> | ||||
| 		tag.name | ||||
| 	)}','${acct_id}','add')" class="pointer" title="${escapeHTML(tag.name)}"> | ||||
| 						#${escapeHTML(tag.name)} | ||||
| 					</a> | ||||
| 				</div> | ||||
| @@ -290,21 +307,21 @@ function trend() { | ||||
| 			Authorization: 'Bearer ' + at | ||||
| 		} | ||||
| 	}) | ||||
| 		.then(function(response) { | ||||
| 		.then(function (response) { | ||||
| 			if (!response.ok) { | ||||
| 				response.text().then(function(text) { | ||||
| 				response.text().then(function (text) { | ||||
| 					setLog(response.url, response.status, text) | ||||
| 				}) | ||||
| 			} | ||||
| 			return response.json() | ||||
| 		}) | ||||
| 		.catch(function(error) { | ||||
| 		.catch(function (error) { | ||||
| 			setLog(start, 'JSON', error) | ||||
| 			console.error(error) | ||||
| 		}) | ||||
| 		.then(function(json) { | ||||
| 		.then(function (json) { | ||||
| 			var tags = '' | ||||
| 			Object.keys(json).forEach(function(keye) { | ||||
| 			Object.keys(json).forEach(function (keye) { | ||||
| 				var tag = json[keye] | ||||
| 				var his = tag.history | ||||
| 				tags = graphDrawCore(his, tag, acct_id) | ||||
| @@ -327,18 +344,18 @@ function doSrc(type) { | ||||
| 	$('#pageSrc').addClass('hide') | ||||
| 	$('#pageSrc').removeClass('keep') | ||||
| 	var q = $('.srcQ').text() | ||||
| 	if(type == 'web') { | ||||
| 	if (type == 'web') { | ||||
| 		var start = localStorage.getItem('srcUrl') | ||||
| 		if(!start) { | ||||
| 		if (!start) { | ||||
| 			start = 'https://google.com/search?q={q}' | ||||
| 		} | ||||
| 		start = start.replace(/{q}/, q) | ||||
| 		postMessage(["openUrl", start], "*") | ||||
| 	} else if(type == 'ts') { | ||||
| 	} else if (type == 'ts') { | ||||
| 		tsAdd(q) | ||||
| 	} else if(type == 'copy') { | ||||
| 	} else if (type == 'copy') { | ||||
| 		execCopy(q) | ||||
| 	} else if(type == 'toot') { | ||||
| 	} else if (type == 'toot') { | ||||
| 		brInsert(q) | ||||
| 	} | ||||
| } | ||||
| @@ -10,6 +10,7 @@ if (location.search) { | ||||
| } | ||||
| //よく使うタグ | ||||
| function tagShow(tag, elm) { | ||||
| 	tag = decodeURIComponent(tag) | ||||
| 	const tagTL = lang.lang_parse_tagTL.replace('{{tag}}', '#' + tag) | ||||
| 	const tagPin = lang.lang_parse_tagpin.replace('{{tag}}', '#' + tag) | ||||
| 	const tagToot = lang.lang_parse_tagtoot.replace('{{tag}}', '#' + tag) | ||||
|   | ||||
							
								
								
									
										2844
									
								
								app/js/tl/tl.js
									
									
									
									
									
								
							
							
						
						
									
										2844
									
								
								app/js/tl/tl.js
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -21,7 +21,7 @@ function imgv(id, key, acct_id) { | ||||
| 	if (remote_img == 'yes') { | ||||
| 		murl = ourl | ||||
| 	} | ||||
| 	$(document).ready(function() { | ||||
| 	$(document).ready(function () { | ||||
| 		if (type == 'image') { | ||||
| 			$('#imagemodal').modal('open') | ||||
| 			imageXhr(id, key, murl) | ||||
| @@ -47,6 +47,9 @@ function imgCont(type) { | ||||
| 	} | ||||
| 	var murl = $('#' + id + '-image-' + key).attr('data-url') | ||||
| 	var ourl = $('#' + id + '-image-' + key).attr('data-original') | ||||
| 	if (!ourl || ourl == 'null') { | ||||
| 		ourl = murl | ||||
| 	} | ||||
| 	var type = $('#' + id + '-image-' + key).attr('data-type') | ||||
| 	$('#imagemodal').attr('data-id', id) | ||||
| 	$('#imagemodal').attr('data-acct', acct_id) | ||||
| @@ -54,7 +57,7 @@ function imgCont(type) { | ||||
| 	$('#imagemodal').attr('data-image', murl) | ||||
| 	//表示はリモートを使うか(どちらにしろコピーはオリジナル) | ||||
| 	var remote_img = localStorage.getItem('remote_img') | ||||
| 	if (remote_img == 'yes' && ourl != 'null') { | ||||
| 	if (remote_img == 'yes') { | ||||
| 		murl = ourl | ||||
| 	} | ||||
| 	if (murl) { | ||||
| @@ -62,7 +65,7 @@ function imgCont(type) { | ||||
| 		$('#imgsec').text(0) | ||||
| 		$('#imgmodal').attr('src', '../../img/loading.svg') | ||||
| 		var type = $('#' + id + '-image-' + key).attr('data-type') | ||||
| 		$(document).ready(function() { | ||||
| 		$(document).ready(function () { | ||||
| 			if (type == 'image') { | ||||
| 				imageXhr(id, key, murl) | ||||
| 				$('#imagewrap').dragScroll() // ドラッグスクロール設定 | ||||
| @@ -76,17 +79,29 @@ function imgCont(type) { | ||||
| 	} | ||||
| } | ||||
| function imageXhr(id, key, murl) { | ||||
| 	let time = 0 | ||||
| 	var startTime = new Date() | ||||
| 	const timer = setInterval(function() { | ||||
| 		time = time + 1 | ||||
| 		$('#imgsec').text(time) | ||||
| 	}, 10) | ||||
| 	$('#imgmodal-progress div').removeClass('determinate') | ||||
| 	$('#imgmodal-progress div').addClass('indeterminate') | ||||
| 	$('#imgmodal-progress').removeClass('hide') | ||||
| 	xhr = new XMLHttpRequest() | ||||
| 	xhr.open('GET', murl, true) | ||||
| 	xhr.responseType = 'arraybuffer' | ||||
| 	xhr.addEventListener( | ||||
| 		'progress', | ||||
| 		function(event) { | ||||
| 		function (event) { | ||||
| 			if (event.lengthComputable) { | ||||
| 				var total = event.total | ||||
| 				var now = event.loaded | ||||
| 				$('#imgbyte').text(`${Math.floor(now / 1024)}KB/${Math.floor(total / 1024)}`) | ||||
| 				var per = (now / total) * 100 | ||||
| 				$('#imgmodal-progress div').removeClass('indeterminate') | ||||
| 				$('#imgmodal-progress div').addClass('determinate') | ||||
| 				$('#imgmodal-progress div').css('width', `${per}%`) | ||||
| 				$('#imgprog').text(Math.floor(per)) | ||||
| 			} | ||||
| 		}, | ||||
| @@ -94,31 +109,35 @@ function imageXhr(id, key, murl) { | ||||
| 	) | ||||
| 	xhr.addEventListener( | ||||
| 		'loadend', | ||||
| 		function(event) { | ||||
| 		function (event) { | ||||
| 			var total = event.total | ||||
| 			$('#imgbyte').text(Math.floor(total / 1024)) | ||||
| 			var now = event.loaded | ||||
| 			var per = (now / total) * 100 | ||||
| 			$('#imgprog').text(Math.floor(per)) | ||||
| 			$('#imgmodal-progress').addClass('hide') | ||||
| 			$('#imgmodal-progress div').css('width', '0%') | ||||
| 			$('#imgmodal-progress div').removeClass('determinate') | ||||
| 			$('#imgmodal-progress div').addClass('indeterminate') | ||||
| 		}, | ||||
| 		false | ||||
| 	) | ||||
| 	xhr.addEventListener( | ||||
| 		'error', | ||||
| 		function(event) { | ||||
| 		function (event) { | ||||
| 			$('#imgmodal').attr('src', murl) | ||||
| 		}, | ||||
| 		false | ||||
| 	) | ||||
| 	xhr.onreadystatechange = function() { | ||||
| 	xhr.onreadystatechange = function () { | ||||
| 		if (this.readyState == 4 && this.status == 200) { | ||||
| 			r = new FileReader() | ||||
| 			r.readAsDataURL(this.response) | ||||
| 			r.onload = function() { | ||||
| 			r.onload = function () { | ||||
| 				var b64 = r.result | ||||
| 				var element = new Image() | ||||
| 				var width | ||||
| 				element.onload = function() { | ||||
| 				element.onload = function () { | ||||
| 					var width = element.naturalWidth | ||||
| 					var height = element.naturalHeight | ||||
| 					calcNiceAspect(width, height) | ||||
| @@ -137,6 +156,7 @@ function imageXhr(id, key, murl) { | ||||
| 				} | ||||
| 				element.src = b64 | ||||
| 				var endTime = new Date() | ||||
| 				clearInterval(timer) | ||||
| 				var proctime = endTime.getTime() - startTime.getTime() | ||||
| 				$('#imgsec').text(proctime) | ||||
| 				$('#imgmodal').attr('src', b64) | ||||
| @@ -146,8 +166,8 @@ function imageXhr(id, key, murl) { | ||||
| 	xhr.responseType = 'blob' | ||||
| 	xhr.send() | ||||
| } | ||||
| function calcNiceAspect( width, height ) { | ||||
| 	if(width < 650) { | ||||
| function calcNiceAspect(width, height) { | ||||
| 	if (width < 650) { | ||||
| 		width = 650 | ||||
| 	} | ||||
| 	var windowH = $(window).height() | ||||
| @@ -156,7 +176,7 @@ function calcNiceAspect( width, height ) { | ||||
| 	$('#imagemodal img').css('width', 'auto') | ||||
| 	if (height < windowH) { | ||||
| 		$('#imagemodal').css('height', height + 100 + 'px') | ||||
| 		$('#imagemodal img').css('height',  height + 'px') | ||||
| 		$('#imagemodal img').css('height', height + 'px') | ||||
| 		if (width > windowW * 0.8) { | ||||
| 			$('#imagemodal').css('width', '80vw') | ||||
| 			$('#imagemodal img').css('width', 'auto') | ||||
| @@ -188,11 +208,11 @@ function zoom(z) { | ||||
| 	$('#imagewrap img').css('height', hgt + 'px') | ||||
| } | ||||
| //スマホ対応ドラッグ移動システム | ||||
| (function() { | ||||
| 	$.fn.dragScroll = function() { | ||||
| (function () { | ||||
| 	$.fn.dragScroll = function () { | ||||
| 		var target = this | ||||
| 		$(this) | ||||
| 			.mousedown(function(event) { | ||||
| 			.mousedown(function (event) { | ||||
| 				$(this) | ||||
| 					.data('down', true) | ||||
| 					.data('x', event.clientX) | ||||
| @@ -207,7 +227,7 @@ function zoom(z) { | ||||
| 			}) | ||||
| 		// ウィンドウから外れてもイベント実行 | ||||
| 		$(document) | ||||
| 			.mousemove(function(event) { | ||||
| 			.mousemove(function (event) { | ||||
| 				if ($(target).data('down') == true) { | ||||
| 					// スクロール | ||||
| 					target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') - event.clientX) | ||||
| @@ -215,11 +235,11 @@ function zoom(z) { | ||||
| 					return false // 文字列選択を抑止 | ||||
| 				} | ||||
| 			}) | ||||
| 			.mouseup(function(event) { | ||||
| 			.mouseup(function (event) { | ||||
| 				$(target).data('down', false) | ||||
| 			}) | ||||
| 		$(this) | ||||
| 			.on('touchstart', function(event) { | ||||
| 			.on('touchstart', function (event) { | ||||
| 				$(this) | ||||
| 					.data('down', true) | ||||
| 					.data('x', getX(event)) | ||||
| @@ -232,7 +252,7 @@ function zoom(z) { | ||||
| 				overflow: 'hidden', // スクロールバー非表示 | ||||
| 				cursor: 'move' | ||||
| 			}) //指が触れたか検知 | ||||
| 		$(this).on('touchmove', function(event) { | ||||
| 		$(this).on('touchmove', function (event) { | ||||
| 			if ($(target).data('down') === true) { | ||||
| 				// スクロール | ||||
| 				target.scrollLeft($(target).data('scrollLeft') + $(target).data('x') - getX(event)) | ||||
| @@ -241,7 +261,7 @@ function zoom(z) { | ||||
| 			} else { | ||||
| 			} | ||||
| 		}) //指が動いたか検知 | ||||
| 		$(this).on('touchend', function(event) { | ||||
| 		$(this).on('touchend', function (event) { | ||||
| 			$(target).data('down', false) | ||||
| 		}) | ||||
|  | ||||
| @@ -258,7 +278,7 @@ function getY(event) { | ||||
| } | ||||
| //マウスホイールで拡大 | ||||
| var element = document.getElementById('imagemodal') | ||||
| element.onmousewheel = function(e) { | ||||
| element.onmousewheel = function (e) { | ||||
| 	var delta = e.wheelDelta | ||||
| 	if (delta > 0) { | ||||
| 		zoom(1.1) | ||||
|   | ||||
| @@ -281,7 +281,7 @@ function parseColumn(target, dontclose) { | ||||
| 				excludeNotf = excludeNotf + '</div>' | ||||
| 				notfDomain = 'dummy' | ||||
| 				notfKey = 'dummy' | ||||
| 				var excludeHome ='' | ||||
| 				var excludeHome = '' | ||||
| 			} else if (acct.type == 'home') { | ||||
| 				var excludeNotf = '' | ||||
| 				var excludeHome = `<a onclick="ebtToggle('${key}')" class="setting nex waves-effect"> | ||||
| @@ -452,8 +452,20 @@ function parseColumn(target, dontclose) { | ||||
| 				<div class="tl-box" tlid="${key}"> | ||||
| 					<div id="timeline_${key}" class="tl ${acct.type}-timeline " tlid="${key}"  | ||||
| 						data-type="${acct.type}" data-acct="${acct.domain}" data-const="${acct.type}_${acct.domain}"> | ||||
| 						<div id="landing_${key}" style="text-align:center"> | ||||
| 						${lang.lang_layout_nodata} | ||||
| 						<div id="landing_${key}" class="landing"> | ||||
| 						<div class="preloader-wrapper small active " style="margin-top: calc(50vh - 15px)"> | ||||
| 							<div class="spinner-layer spinner-blue-only"> | ||||
| 								<div class="circle-clipper left"> | ||||
| 									<div class="circle"></div> | ||||
| 								</div> | ||||
| 								<div class="gap-patch"> | ||||
| 									<div class="circle"></div> | ||||
| 								</div> | ||||
| 								<div class="circle-clipper right"> | ||||
| 									<div class="circle"></div> | ||||
| 								</div> | ||||
| 							</div> | ||||
| 					  </div> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div>` | ||||
| @@ -659,8 +671,6 @@ function removeColumn(tlid) { | ||||
| 				$('#timeline_box_' + tlid + '_parentBox').remove() | ||||
| 			} | ||||
| 		} | ||||
| 		$('#sort-box').removeClass('hide') | ||||
| 		$('#sort-box').addClass('show') | ||||
| 	}) | ||||
| } | ||||
|  | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,5 +1,7 @@ | ||||
| const { AiScript, parse, values, utils } = require('@syuilo/aiscript') | ||||
| const gcc = require('textarea-caret') | ||||
| const { v4: uuidv4 } = require('uuid') | ||||
| global.uuid = uuidv4 | ||||
| global.getCaretCoordinates = gcc | ||||
| global.sanitizeHtml = require('sanitize-html') | ||||
| global.asValue = values | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|     "name": "thedesk", | ||||
|     "version": "22.2.0", | ||||
|     "version": "22.3.1", | ||||
|     "codename": "Koume", | ||||
|     "description": "TheDesk is a Mastodon client for PC.", | ||||
|     "repository": "https://github.com/cutls/TheDesk", | ||||
| @@ -9,7 +9,7 @@ | ||||
|         "test": "echo \"Error: no test specified\" && exit 1", | ||||
|         "postinstall": "run-s util:*", | ||||
|         "util:hash": "node gitHash.js", | ||||
|         "util:browserify": "browserify aiscript.js -o js/platform/aiscript.js", | ||||
|         "util:browserify": "browserify native.js -o js/platform/native.js", | ||||
|         "construct": "node view/make/makeCli.js", | ||||
|         "construct:store": "node view/make/makeCli.js --store", | ||||
|         "dev": "run-p dev:*", | ||||
| @@ -57,7 +57,7 @@ | ||||
|     ], | ||||
|     "license": "GPL-3.0", | ||||
|     "dependencies": { | ||||
|         "@fortawesome/fontawesome-free": "^5.15.2", | ||||
|         "@fortawesome/fontawesome-free": "^5.15.4", | ||||
|         "@syuilo/aiscript": "^0.11.1", | ||||
|         "electron-dl": "^3.2.1", | ||||
|         "itunes-nowplaying-mac": "https://github.com/cutls/itunes-nowplaying-mac/releases/download/v0.4.0/itunes-nowplaying-mac-0.4.0.tgz", | ||||
| @@ -67,26 +67,28 @@ | ||||
|         "json5": "^2.2.0", | ||||
|         "lodash": "^4.17.21", | ||||
|         "materialize-css": "git://github.com/cutls/materialize#v1-dev", | ||||
|         "sanitize-html": "^2.3.2", | ||||
|         "sanitize-html": "^2.4.0", | ||||
|         "sumchecker": "^3.0.1", | ||||
|         "sweetalert2": "^10.15.7", | ||||
|         "sweetalert2": "^11.1.4", | ||||
|         "system-font-families": "^0.4.1", | ||||
|         "textarea-caret": "^3.1.0", | ||||
|         "vue": "^2.6.12" | ||||
|         "uuid": "^8.3.2", | ||||
|         "vue": "^2.6.14" | ||||
|     }, | ||||
|     "devDependencies": { | ||||
|         "browserify": "^17.0.0", | ||||
|         "chokidar": "^3.5.1", | ||||
|         "dotenv": "^8.2.0", | ||||
|         "electron": "^12.0.2", | ||||
|         "electron-builder": "^22.10.5", | ||||
|         "electron-notarize": "^1.0.0", | ||||
|         "electron-rebuild": "^2.3.5", | ||||
|         "eslint": "^7.23.0", | ||||
|         "chokidar": "^3.5.2", | ||||
|         "dotenv": "^10.0.0", | ||||
|         "electron": "^13.2.2", | ||||
|         "electron-builder": "^22.11.7", | ||||
|         "electron-notarize": "^1.1.0", | ||||
|         "electron-rebuild": "^3.2.0", | ||||
|         "eslint": "^7.32.0", | ||||
|         "npm-run-all": "^4.1.5", | ||||
|         "readline-sync": "1.4.10" | ||||
|     }, | ||||
|     "resolutions": { | ||||
|         "@types/fs-extra": "9.0.11" | ||||
|         "@types/fs-extra": "9.0.11", | ||||
|         "plist": "3.0.2" | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -2,142 +2,142 @@ | ||||
| <html lang="@@lang@@"> | ||||
|  | ||||
| <head> | ||||
| 	<title>Account Manager - TheDesk</title> | ||||
| 	<meta content="width=device-width,initial-scale=1.0" name="viewport" /> | ||||
| 	<link href="../../css/themes.css" type="text/css" rel="stylesheet"> | ||||
| 	<link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" /> | ||||
| 	<link href="../../css/master.css" type="text/css" rel="stylesheet" /> | ||||
| 	<link href="../../css/tl.css" rel="stylesheet" type="text/css" /> | ||||
| 	<link href="../../css/userdata.css" rel="stylesheet" type="text/css" /> | ||||
| 	<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" /> | ||||
| 	<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||||
| 	<link href="../../css/sweetalert2-material.min.css" type="text/css" rel="stylesheet"> | ||||
| 	<link href="../../css/acct.css" rel="stylesheet" type="text/css" /> | ||||
| 	<meta charset="utf-8" /> | ||||
| 	@@comment-start@@ | ||||
| 	<script type="text/javascript"> | ||||
| 		var _jipt = [] | ||||
| 		_jipt.push(['project', 'thedesk']) | ||||
| 	</script> | ||||
| 	<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> | ||||
| 	@@comment-end@@ | ||||
| 	@@pwa@@ @@store@@ | ||||
|     <title>Account Manager - TheDesk</title> | ||||
|     <meta content="width=device-width,initial-scale=1.0" name="viewport" /> | ||||
|     <link href="../../css/themes.css" type="text/css" rel="stylesheet"> | ||||
|     <link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="../../css/master.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="../../css/tl.css" rel="stylesheet" type="text/css" /> | ||||
|     <link href="../../css/userdata.css" rel="stylesheet" type="text/css" /> | ||||
|     <link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" /> | ||||
|     <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> | ||||
|     <link href="../../css/sweetalert2-material.css" type="text/css" rel="stylesheet"> | ||||
|     <link href="../../css/acct.css" rel="stylesheet" type="text/css" /> | ||||
|     <meta charset="utf-8" /> @@comment-start@@ | ||||
|     <script type="text/javascript"> | ||||
|         var _jipt = [] | ||||
|         _jipt.push(['project', 'thedesk']) | ||||
|     </script> | ||||
|     <script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> | ||||
|     @@comment-end@@ @@pwa@@ @@store@@ | ||||
| </head> | ||||
|  | ||||
| <body id="mainView" class="@@pwaClass@@"> | ||||
| 	<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/platform/first.js"></script> | ||||
| 	<script type="text/javascript" src="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script> | ||||
| 	<script type="text/javascript" src="main.js"></script> | ||||
| 	<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script> | ||||
| 	<script> | ||||
| 		var misskeytoken = false | ||||
| 	</script> | ||||
| 	<script type="text/javascript" src="../../js/common/time.js"></script> | ||||
| 	<div class="hide-first"> | ||||
| 		<a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br /> | ||||
| 		<h5>@@list@@</h5> | ||||
| 		<div id="acct-list"></div> | ||||
| 		<div class="divider"></div> | ||||
| 	</div> | ||||
| 	<div> | ||||
| 		<h5>@@add@@</h5> | ||||
|     <script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script> | ||||
|     <script type="text/javascript" src="../../js/platform/first.js"></script> | ||||
|     <script type="text/javascript" src="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script> | ||||
|     <script type="text/javascript" src="main.js"></script> | ||||
|     <script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script> | ||||
|     <script> | ||||
|         var misskeytoken = false | ||||
|     </script> | ||||
|     <script type="text/javascript" src="../../js/common/time.js"></script> | ||||
|     <div class="hide-first"> | ||||
|         <a href="index.html" class="btn waves-effect orange nex" style="width:100%; max-width:200px;">@@back@@</a><br /> | ||||
|         <h5>@@list@@</h5> | ||||
|         <div id="acct-list"></div> | ||||
|         <div class="divider"></div> | ||||
|     </div> | ||||
|     <div> | ||||
|         <h5>@@add@@</h5> | ||||
|  | ||||
| 		<div class="hide-second"> | ||||
| 			<a href="setting.html">@@haveExported@@</a> | ||||
| 		</div> | ||||
| 		<br /> | ||||
| 		<div id="add"> | ||||
| 			<div class="row"> | ||||
| 				<div class="col s8"> | ||||
| 					@@addAcct@@ | ||||
| 					<div class="row"> | ||||
| 						<div class="input-field col s6"> | ||||
| 							<input type="text" id="autocomplete-input" class="autocomplete" placeholder="eg) mstdn.jp"> | ||||
| 							<label for="autocomplete-input">URL</label> | ||||
| 						</div> | ||||
| 						<div class="col s4 loginBtnWrap"> | ||||
| 							<button class="btn waves-effect" onclick="instance()"><i | ||||
|         <div class="hide-second"> | ||||
|             <a href="setting.html">@@haveExported@@</a> | ||||
|         </div> | ||||
|         <br /> | ||||
|         <div id="add"> | ||||
|             <div class="row"> | ||||
|                 <div class="col s8"> | ||||
|                     @@addAcct@@ | ||||
|                     <div class="row"> | ||||
|                         <div class="input-field col s6"> | ||||
|                             <input type="text" id="autocomplete-input" class="autocomplete" placeholder="eg) mstdn.jp"> | ||||
|                             <label for="autocomplete-input">URL</label> | ||||
|                         </div> | ||||
|                         <div class="col s4 loginBtnWrap"> | ||||
|                             <button class="btn waves-effect" onclick="instance()"><i | ||||
| 									class="material-icons left">login</i>Login</button> | ||||
| 						</div> | ||||
| 					</div> | ||||
|                         </div> | ||||
|                     </div> | ||||
|  | ||||
| 					<div class="pwa"> | ||||
| 						@@codesetupwarn@@<br /> | ||||
| 						<label> | ||||
|                     <div class="pwa"> | ||||
|                         @@codesetupwarn@@<br /> | ||||
|                         <label> | ||||
| 							<input type="checkbox" class="filled-in" id="linux" /> | ||||
| 							<span>@@codesetup@@</span> | ||||
| 						</label> | ||||
| 						<br /> | ||||
| 					</div> | ||||
| 					<label> | ||||
|                         <br /> | ||||
|                     </div> | ||||
|                     <label> | ||||
| 						<input type="checkbox" class="filled-in" id="misskey" /> | ||||
| 						<span>@@thisismisskey@@</span> </label><br /> | ||||
| 				</div> | ||||
| 				<div class="col s4 scr" aria-hidden="true"> | ||||
| 					<span style="font-family:Open Sans;">Supports</span> | ||||
| 					<div id="support" class="collection transparent"></div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		<div id="auth" style="display:none"> | ||||
| 			@@codepastewarn@@<br /> | ||||
| 			<input type="text" id="code" placeholder="@@codepaste@@" required /> | ||||
| 			<button class="btn waves-effect" onclick="code()">Auth</button><br /> | ||||
| 			<br /> | ||||
| 			<a onclick="atSetup()" class="pointer">@@accessTokenSetup@@</a> | ||||
| 			<div id="compt" style="display:none" class="scr"> | ||||
| 				<h5>ログイン前に必ずご確認ください</h5> | ||||
| 				<span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span>のため以下の機能がご利用いただけません。 | ||||
| 				<span id="compt-warn" | ||||
| 					style="display:none">また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span> | ||||
| 				<ul id="compt-list"></ul> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		<div id="misskeylogin" style="display:none"> | ||||
| 			<h5>AppSecret</h5> | ||||
| 			@@misskeylogin@@<br /> | ||||
| 			<input type="hidden" id="misskey-url" /> | ||||
| 			<input type="text" id="misskey-key" placeholder="@@codepaste@@" required /> | ||||
| 			<button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br /> | ||||
| 			<br /> | ||||
| 			<a onclick="atSetup('misskey')" class="pointer">@@accessTokenSetup@@</a> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<div class="hide-first"> | ||||
| 		<h5>@@mainacct@@</h5> | ||||
| 		<div class="input-field" style="width:300px"> | ||||
| 			<span data-trans="your_acct">@@selacct@@</span> | ||||
| 			<br /> | ||||
| 			<select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select> | ||||
| 			<label></label> | ||||
| 		</div> | ||||
| 		<ul id="domain-list" class="collection transparent"></ul> | ||||
| 		<div id="instance-data"> | ||||
| 			Some instance data by | ||||
| 			<a href="https://instances.social" target="_blank">instances.social API</a><br /> | ||||
| 			<h5 id="ins-title"></h5> | ||||
| 			Administered by:<a id="ins-admin"></a><br /> | ||||
| 			<span id="ins-desc"></span><br /> | ||||
| 			<img src="../../img/loading.svg" id="ins-prof" width="200" /><br /> | ||||
| 			<br /> | ||||
| 			@@domain@@:<span id="ins-name"></span><br /> | ||||
| 			@@connect@@:<span id="ins-connect"></span>@@ko@@<br /> | ||||
| 			@@toots@@:<span id="ins-toot"></span>@@ko@@<br /> | ||||
| 			@@users@@:<span id="ins-user"></span>@@users@@<br /> | ||||
| 			@@safety@@:<span id="ins-per"></span>%<br /> | ||||
| 			@@ver@@:<span id="ins-ver"></span>@<span id="ins-upd"></span><br /> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<script type="text/javascript" src="../../js/ui/theme.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/ui/tips.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/platform/end.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/common/sha256.js"></script> | ||||
| 	<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/login/instance.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/login/manager.js"></script> | ||||
| 	<script type="text/javascript" src="../../js/tl/date.js"></script> | ||||
| 	<script>$('body').addClass(localStorage.getItem('platform'))</script> | ||||
|                 </div> | ||||
|                 <div class="col s4 scr" aria-hidden="true"> | ||||
|                     <span style="font-family:Open Sans;">Supports</span> | ||||
|                     <div id="support" class="collection transparent"></div> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div id="auth" style="display:none"> | ||||
|             @@codepastewarn@@<br /> | ||||
|             <input type="text" id="code" placeholder="@@codepaste@@" required /> | ||||
|             <button class="btn waves-effect" onclick="code()">Auth</button><br /> | ||||
|             <br /> | ||||
|             <a onclick="atSetup()" class="pointer">@@accessTokenSetup@@</a> | ||||
|             <div id="compt" style="display:none" class="scr"> | ||||
|                 <h5>ログイン前に必ずご確認ください</h5> | ||||
|                 <span id="compt-instance"></span>はバージョンが<span id="compt-ver"></span>のため以下の機能がご利用いただけません。 | ||||
|                 <span id="compt-warn" style="display:none">また、このインスタンスはMastodonではなくそのAPI上の互換実装であり、TheDeskでは利用を想定していないため非保証となります。</span> | ||||
|                 <ul id="compt-list"></ul> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div id="misskeylogin" style="display:none"> | ||||
|             <h5>AppSecret</h5> | ||||
|             @@misskeylogin@@<br /> | ||||
|             <input type="hidden" id="misskey-url" /> | ||||
|             <input type="text" id="misskey-key" placeholder="@@codepaste@@" required /> | ||||
|             <button class="btn waves-effect" onclick="misskeyLogin()">Auth</button><br /> | ||||
|             <br /> | ||||
|             <a onclick="atSetup('misskey')" class="pointer">@@accessTokenSetup@@</a> | ||||
|         </div> | ||||
|     </div> | ||||
|     <div class="hide-first"> | ||||
|         <h5>@@mainacct@@</h5> | ||||
|         <div class="input-field" style="width:300px"> | ||||
|             <span data-trans="your_acct">@@selacct@@</span> | ||||
|             <br /> | ||||
|             <select id="main-acct-sel" class="acct-sel" style="color:black" onchange="mainacct()"></select> | ||||
|             <label></label> | ||||
|         </div> | ||||
|         <ul id="domain-list" class="collection transparent"></ul> | ||||
|         <div id="instance-data"> | ||||
|             Some instance data by | ||||
|             <a href="https://instances.social" target="_blank">instances.social API</a><br /> | ||||
|             <h5 id="ins-title"></h5> | ||||
|             Administered by: | ||||
|             <a id="ins-admin"></a><br /> | ||||
|             <span id="ins-desc"></span><br /> | ||||
|             <img src="../../img/loading.svg" id="ins-prof" width="200" /><br /> | ||||
|             <br /> @@domain@@: | ||||
|             <span id="ins-name"></span><br /> @@connect@@: | ||||
|             <span id="ins-connect"></span>@@ko@@<br /> @@toots@@: | ||||
|             <span id="ins-toot"></span>@@ko@@<br /> @@users@@: | ||||
|             <span id="ins-user"></span>@@users@@<br /> @@safety@@: | ||||
|             <span id="ins-per"></span>%<br /> @@ver@@: | ||||
|             <span id="ins-ver"></span>@<span id="ins-upd"></span><br /> | ||||
|         </div> | ||||
|     </div> | ||||
|     <script type="text/javascript" src="../../js/ui/theme.js"></script> | ||||
|     <script type="text/javascript" src="../../js/ui/tips.js"></script> | ||||
|     <script type="text/javascript" src="../../js/platform/end.js"></script> | ||||
|     <script type="text/javascript" src="../../js/common/sha256.js"></script> | ||||
|     <script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script> | ||||
|     <script type="text/javascript" src="../../js/login/instance.js"></script> | ||||
|     <script type="text/javascript" src="../../js/login/manager.js"></script> | ||||
|     <script type="text/javascript" src="../../js/tl/date.js"></script> | ||||
|     <script> | ||||
|         $('body').addClass(localStorage.getItem('platform')) | ||||
|     </script> | ||||
|  | ||||
| </body> | ||||
|  | ||||
|   | ||||
							
								
								
									
										56
									
								
								app/view/make/components/bottomBarHtml.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								app/view/make/components/bottomBarHtml.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| <!--bottom--> | ||||
| <div id="bottom" class="reverse hide"> | ||||
|     <div class="leftside reverse"> | ||||
|         <div id="dambox"> | ||||
|             <button id="posttgl" class="btn waves-effect" style="width: 100%; height: 2.5rem; line-height: 0; margin: 0"> | ||||
|                     <i class="material-icons" style="position: relative; top: 0.38rem; font-size: 1.5rem; text-align: center; margin-right: 0.76rem">edit</i>@@toot@@ | ||||
|                 </button> | ||||
|         </div> | ||||
|         <div class="leftside reverse" id="group"> | ||||
|             <div class="btnsgroup"> | ||||
|                 <a href="acct.html" class="nex waves-effect"> | ||||
|                     <i class="material-icons nex big-icon" title="@@acctMan@@(Ctrl+Shift+M)">account_circle</i> | ||||
|                 </a> | ||||
|                 <a href="setting.html" class="nex waves-effect"> | ||||
|                     <i class="material-icons nex" title="@@setting@@(Ctrl+Shift+S)">settings</i> | ||||
|                 </a> | ||||
|                 <a onclick="nano()" class="nex waves-effect pwa"> | ||||
|                     <i class="material-icons" title="@@nanoDes@@TheDesk Nano" data-trans-title="nano_desp">remove_from_queue</i> | ||||
|                 </a> | ||||
|                 <a onclick="menu()" class="nex waves-effect"> | ||||
|                     <i class="material-icons" title="@@menu@@">apps</i> | ||||
|                 </a> | ||||
|                 <span id="fukidashi">@@hereAddColumns@@</span> | ||||
|             </div> | ||||
|             <a href="https://thedesk.top/bugs/?lang=@@lang@@" target="_blank" class="waves-effect bgReport" draggable="false" title="Feeling unlucky"> @@foundBug@@ </a> | ||||
|         </div> | ||||
|     </div> | ||||
|     <div> | ||||
|         <div id="tips-menu"> | ||||
|             <div class="btnsgroup" style="height: 2.61rem"> | ||||
|                 <span class="grouptitle">Tips:</span> | ||||
|                 <a onclick="tips('ver')" class="nex waves-effect"> | ||||
|                     <i class="material-icons nex" title="@@verTips@@" data-trans-title="ver">info</i> | ||||
|                 </a> | ||||
|                 <a onclick="tips('clock')" class="nex waves-effect"> | ||||
|                     <i class="material-icons nex" title="@@clockTips@@" data-trans-title="clock">access_time</i> | ||||
|                 </a> | ||||
|                 <a onclick="tips('memory')" class="nex waves-effect pwa"> | ||||
|                     <i class="material-icons nex" title="@@ramTips@@" data-trans-title="memory">memory</i> | ||||
|                 </a> | ||||
|                 <a onclick="tips('trend')" class="nex waves-effect imasonly" style="display: none"> | ||||
|                     <i class="material-icons nex" title="アイマストドントレンド" data-trans-title="trendtip">whatshot</i> | ||||
|                 </a> | ||||
|                 <a onclick="tips('spotify')" class="nex waves-effect"> | ||||
|                     <i class="fab fa-spotify nex" title="Spotify" data-trans-title="spotifytips"></i> | ||||
|                 </a> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div id="tips" class="hide"> | ||||
|             <a onclick="tipsToggle()" class="nex waves-effect"> | ||||
|                 <i class="material-icons nex" title="@@changeTips@@" data-trans-title="tips">bubble_chart</i> | ||||
|             </a> | ||||
|             <div id="tips-text" style="width: 23rem; line-height: 1rem"></div> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										121
									
								
								app/view/make/components/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								app/view/make/components/index.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,121 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="@@lang@@"> | ||||
| 	<head> | ||||
| 		<script type="text/javascript" src="../../js/ui/theme.js"></script> | ||||
| 		<link href="../../css/themes.css" type="text/css" rel="stylesheet" /> | ||||
| 		<meta content="width=device-width,initial-scale=1.0" name="viewport" /> | ||||
| 		<link href="../../@@node_base@@/materialize-css/dist/css/materialize.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="../../@@node_base@@/jquery-ui-dist/jquery-ui.min.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="../../css/tl.css" rel="stylesheet" type="text/css" /> | ||||
| 		<link href="../../css/userdata.css" rel="stylesheet" type="text/css" /> | ||||
| 		<link href="../../css/post.css" rel="stylesheet" type="text/css" /> | ||||
| 		<link href="../../css/master.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="../../css/sort.css" rel="stylesheet" type="text/css" /> | ||||
| 		<link href="../../css/sweetalert2-material.css" type="text/css" rel="stylesheet" /> | ||||
| 		<link href="../../@@node_base@@/@fortawesome/fontawesome-free/css/all.min.css" type="text/css" rel="stylesheet" /> | ||||
| 		<meta charset="utf-8" /> | ||||
| 		@@comment-start@@ | ||||
| 		<script type="text/javascript"> | ||||
| 			var _jipt = [] | ||||
| 			_jipt.push(['project', 'thedesk']) | ||||
| 		</script> | ||||
| 		<script type="text/javascript" src="https://cdn.crowdin.com/jipt/jipt.js"></script> | ||||
| 		@@comment-end@@ @@pwa@@ @@store@@ | ||||
| 	</head> | ||||
|  | ||||
| 	<body class="@@pwaClass@@"> | ||||
| 		<script> | ||||
| 			var ver = '@@versionLetter@@' | ||||
| 			var gitHash = '@@gitHash@@' | ||||
| 			//betaを入れるとバージョンチェックしない | ||||
| 			//var ver="beta"; | ||||
| 			var acct_id = 0 | ||||
| 			var tlid = 0 | ||||
| 		</script> | ||||
| 		@@preTL@@ @@starterAndDragHandler@@ @@postBox@@ @@tootModal@@ @@userDataModal@@ @@mediaModal@@ @@releaseNote@@ | ||||
| 		<!--PiP--> | ||||
| 		<div id="pip" class="hide pip-bottom pip-left"> | ||||
| 			<i class="material-icons pip-horiz pointer" onclick="pipHoriz()">chevron_right</i> | ||||
| 			<i class="material-icons pip-vert pointer" onclick="pipVert()">expand_less</i> | ||||
| 			<i class="material-icons pointer" onclick="endPip()">close</i> | ||||
| 			<div id="pip-content"></div> | ||||
| 		</div> | ||||
| 		@@menuHtml@@ | ||||
| 		<div id="main"> | ||||
| 			<!--TLのTL--> | ||||
| 			<div id="timeline-container"> | ||||
| 				<div id="something-wrong"> | ||||
| 					<img src="../../img/thinking.svg" style="width: 150px; margin: 5px; display: none" draggable="false" /> | ||||
| 					<div class="stw" style="display: none">@@helloTheDesk@@</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		@@bottomBarHtml@@ @@supportMe@@ | ||||
| 		<!--左下メッセージ--> | ||||
| 		<div id="message"></div> | ||||
| 		<!--Radio Happy(Yui) Taku Inoue--> | ||||
| 		<audio src="" id="radio"></audio> | ||||
| 		<!--JS--> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/jquery/dist/jquery.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/platform/first.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/platform/native.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/platform/plugin.js"></script> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/materialize-css/dist/js/materialize.js"></script> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/grapheme-splitter/index.js"></script> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/lodash/lodash.min.js"></script> | ||||
| 		<script type="text/javascript" src="main.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/time.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/blurhash.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/version.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/keyshortcut.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/modal.js"></script> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/jquery-ui-dist/jquery-ui.min.js"></script> | ||||
| 		<script type="text/javascript" src="../../@@node_base@@/sweetalert2/dist/sweetalert2.min.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/platform/punycode.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/tips.js"></script> | ||||
| 		<script src="https://twemoji.maxcdn.com/2/twemoji.min.js?2.7"></script> | ||||
| 		<script type="text/javascript" src="../../js/common/about.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/misskeyparse.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/dm.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/scroll.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/announParse.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/tl.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/card.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/parse.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/poll.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/date.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/notification.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/datails.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/mix.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/src.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/directory.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/filter.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/tag.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/list.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/tl/speech.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/post-box.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/layout.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/emoji.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/login/instance.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/login/login.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/img.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/pip.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/sort.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/spotify.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/post.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/use-txtbox.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/secure.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/img.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/status.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/misskeystatus.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/suggest.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/post/bb-md.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/userdata/showOnTL.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/userdata/his-data.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/userdata/prof-edit.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/emoji/emojipack.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/emoji/default-emoji.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/platform/end.js"></script> | ||||
| 		<script type="text/javascript" src="../../js/ui/menu.js"></script> | ||||
| 	</body> | ||||
| </html> | ||||
							
								
								
									
										12
									
								
								app/view/make/components/index.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								app/view/make/components/index.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| [ | ||||
|     "bottomBarHtml", | ||||
|     "mediaModal", | ||||
|     "menuHtml", | ||||
|     "postBox", | ||||
|     "preTL", | ||||
|     "releaseNote", | ||||
|     "starterAndDragHandler", | ||||
|     "supportMe", | ||||
|     "tootModal", | ||||
|     "userDataModal" | ||||
| ] | ||||
							
								
								
									
										54
									
								
								app/view/make/components/mediaModal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								app/view/make/components/mediaModal.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| <!-- Modal Structure Image--> | ||||
| <div id="imagemodal" class="modal modal-fixed-footer"> | ||||
|     <div class="modal-content"> | ||||
|         <div id="imagewrap"> | ||||
|             <img src="" id="imgmodal" /> | ||||
|         </div> | ||||
|         <div class="progress nomargin hide transparent" id="imgmodal-progress"> | ||||
|             <div class="indeterminate"></div> | ||||
|         </div> | ||||
|         <br /> | ||||
|     </div> | ||||
|     <div class="modal-footer"> | ||||
|         <div id="imginfo"> | ||||
|             <span id="imgprog"></span>% <br /> | ||||
|             <span id="imgsec"></span>ms <br /><span id="imgbyte"></span>KB | ||||
|         </div> | ||||
|         <a class="waves-effect white-text" onclick="zoom(2)"> | ||||
|             <i class="material-icons">zoom_in</i> | ||||
|         </a> | ||||
|         <a class="waves-effect white-text" onclick="zoom(0.5)"> | ||||
|             <i class="material-icons">zoom_out</i> | ||||
|         </a> | ||||
|         <a class="waves-effect white-text" onclick="rotate(false)"> | ||||
|             <i class="material-icons">rotate_90_degrees_ccw</i> | ||||
|         </a> | ||||
|         <button class="btn waves-effect blue" onclick="copyImgUrl()" title="@@copyURL@@"> | ||||
|                 <i class="material-icons">link</i> | ||||
|             </button> | ||||
|         <button class="btn waves-effect purple" onclick="dlImg()"> | ||||
|                 <i class="material-icons">file_download</i> | ||||
|             </button> | ||||
|         <button class="btn waves-effect brown" onclick="detFromImg()" title="@@thisToot@@"> | ||||
|                 <i class="material-icons">pageview</i> | ||||
|             </button> | ||||
|         <button class="btn waves-effect orange" onclick="imgCont('prev')" id="image-prev"> | ||||
|                 <i class="material-icons">keyboard_arrow_left</i> | ||||
|             </button> | ||||
|         <button class="btn waves-effect orange" onclick="imgCont('next')" id="image-next"> | ||||
|                 <i class="material-icons">keyboard_arrow_right</i> | ||||
|             </button> | ||||
|         <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat"> | ||||
|             <i class="material-icons">close</i> | ||||
|         </a> | ||||
|     </div> | ||||
| </div> | ||||
| <!-- Modal Structure Video--> | ||||
| <div id="videomodal" class="modal modal-fixed-footer"> | ||||
|     <div class="modal-content"> | ||||
|         <video src="" id="video" style="max-width: 100%; max-height: 100%" controls loop="true" autoplay="true" /> | ||||
|     </div> | ||||
|     <div class="modal-footer"> | ||||
|         <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">@@close@@</a> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										229
									
								
								app/view/make/components/menuHtml.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										229
									
								
								app/view/make/components/menuHtml.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,229 @@ | ||||
| <!--menu--> | ||||
| <div id="menu" class="z-depth-5" style="display: none"> | ||||
|     <div id="menu-bar" class="drag-bar"></div> | ||||
|     <span class="cancel"> | ||||
|             <i class="material-icons waves-effect" onclick="menu()" title="@@closeThisBox@@(X)">cancel</i> | ||||
|         </span> | ||||
|     <div id="menu-wrapper"> | ||||
|         <div id="left-menu"> | ||||
|             <a class="waves-effect active" onclick="addColumnMenu()" id="addColumnMenu"> <i class="material-icons" aria-hidden="true">add</i><span>@@addColumn@@</span> </a> | ||||
|             <a class="waves-effect" onclick="sortMenu()" id="sortMenu"> <i class="material-icons" aria-hidden="true">sort</i><span>@@sortColumns@@</span> </a> | ||||
|             <a class="waves-effect" onclick="searchMenu()" id="searchMenu"> <i class="material-icons" aria-hidden="true">search</i><span>@@search@@</span> </a> | ||||
|             <a class="waves-effect" onclick="listMenu()" id="listMenu"> <i class="material-icons" aria-hidden="true">view_headline</i><span>@@list@@</span> </a> | ||||
|             <a class="waves-effect" onclick="dirMenu()" id="dirMenu"> <i class="material-icons" aria-hidden="true">recent_actors</i><span>@@discover@@</span> </a> | ||||
|             <a class="waves-effect" onclick="filterMenu()" id="filterMenu"> <i class="material-icons" aria-hidden="true">filter_list</i><span>@@filter@@</span> </a> | ||||
|             <a class="waves-effect" onclick="help()" id="helpMenu"> <i class="material-icons" aria-hidden="true">help_outline</i><span>@@helpAndLogs@@</span> </a> | ||||
|             <a class="waves-effect" onclick="location.href='index.html'"> <i class="material-icons" aria-hidden="true">refresh</i><span>@@f5@@</span> </a> | ||||
|         </div> | ||||
|         <div id="right-menu"> | ||||
|             <!--カラム追加--> | ||||
|             <div id="add-box" class="hide menu-content"> | ||||
|                 <div class="input-field"> | ||||
|                     <span data-trans="your_acct">@@selectAcct@@</span> | ||||
|                     <br /> | ||||
|                     <select id="add-acct-sel" class="acct-sel" style="color: black" onchange="addselCk()"></select> | ||||
|                     <label></label> | ||||
|                 </div> | ||||
|                 <div class="input-field"> | ||||
|                     <div id="auth"> | ||||
|                         <input type="hidden" value="local" id="type-sel" /> @@showThisTL@@ | ||||
|                         <div id="tltype"> | ||||
|                             <a class="type waves-effect active" data-type="local" title="@@local@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">people_outline</i></div> | ||||
|                                 <span>@@local@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="local-media" title="@@localMedia@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">perm_media</i></div> | ||||
|                                 <span>@@localMedia@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="home" title="@@home@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">home</i></div> | ||||
|                                 <span>@@home@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="pub" title="@@fed@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">language</i></div> | ||||
|                                 <span>@@fed@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="pub-media" title="@@fedMedia@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">perm_media</i></div> | ||||
|                                 <span>@@fedMedia@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="dm" title="@@dm@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">mail_outline</i></div> | ||||
|                                 <span>@@dm@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="mix" title="@@integratedTLDes@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">merge_type</i></div> | ||||
|                                 <span>@@integratedTLDes@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="plus" title="@@localPlusDes@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">reply</i></div> | ||||
|                                 <span>@@localPlusDes@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="notf" title="@@notf@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">notifications</i></div> | ||||
|                                 <span>@@notf@@</span> | ||||
|                             </a> | ||||
|                             <a class="type waves-effect" data-type="bookmark" title="@@bookmark@@"> | ||||
|                                 <div><i class="material-icons" aria-hidden="true">bookmark</i></div> | ||||
|                                 <span>@@bookmark@@</span> | ||||
|                             </a> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     <div id="noauth" class="hide"> | ||||
|                         @@showThisTL@@ | ||||
|                         <input id="noauth-url" type="text" class="validate" style="width: calc(70% - 3rem)" placeholder="e.g:mstdn.jp" /> | ||||
|                     </div> | ||||
|                     <div id="webview-add" class="hide">@@webviewWarn@@</div> | ||||
|                 </div> | ||||
|                 <button class="btn waves-effect blue" style="width: calc(100% - 0.7rem)" onclick="addColumn()" data-trans-i="add"><i class="material-icons left">add</i>@@add@@</button> | ||||
|                 <br /> | ||||
|                 <br /> | ||||
|             </div> | ||||
|             <!--検索--> | ||||
|             <div id="src-box" class="hide menu-content"> | ||||
|                 <div class="input-field"> | ||||
|                     <select id="src-acct-sel" class="acct-sel" onchange="trend()"></select> | ||||
|                 </div> | ||||
|                 <div class="input-field"> | ||||
|                     <input id="src" type="text" class="validate" style="width: calc(100% - 150px)" /> | ||||
|                     <label for="src" data-trans="src">@@search@@</label> | ||||
|                     <button class="btn waves-effect indigo" style="width: 36%; padding: 0; padding-left: 1.15rem" onclick="src()" data-trans-i="src"> | ||||
|                             <i class="material-icons left" style="margin: 0">search</i>@@search@@ | ||||
|                         </button> | ||||
|                     <br /> | ||||
|                     <br /> | ||||
|                 </div> | ||||
|                 <div id="search"> | ||||
|                     <div id="src-contents"></div> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <!--ディレクトリ--> | ||||
|             <div id="dir-box" class="hide menu-content"> | ||||
|                 <label> | ||||
|                         <input class="with-gap" onchange="dirChange('directory')" name="dirsug" type="radio" value="directory" checked /> | ||||
|                         <span>@@directory@@</span> | ||||
|                     </label> | ||||
|                 <label> | ||||
|                         <input class="with-gap" onchange="dirChange('suggest')" name="dirsug" type="radio" value="suggest" /> | ||||
|                         <span>@@frc@@</span> | ||||
|                     </label> | ||||
|                 <div class="input-field"> | ||||
|                     <select id="dir-acct-sel" class="acct-sel" onchange="dirselCk()"></select> | ||||
|                 </div> | ||||
|                 <div id="dirNoAuth" class="hide"> | ||||
|                     <input id="dirNoAuth-url" type="text" class="validate" style="width: calc(70% - 3rem)" placeholder="e.g:mastodon.social" /> | ||||
|                     <button class="btn waves-effect indigo" style="width: 9.23rem; padding: 0; padding-left: 1.15rem" onclick="directory('directory')"> | ||||
|                             <i class="material-icons left" style="margin: 0">search</i>@@show@@ | ||||
|                         </button> | ||||
|                 </div> | ||||
|                 <div id="directoryConfig"> | ||||
|                     <label> | ||||
|                             <input class="with-gap" onchange="directory('directory')" name="sort" type="radio" value="active" checked /> | ||||
|                             <span>@@active@@</span> | ||||
|                         </label> | ||||
|                     <label> | ||||
|                             <input class="with-gap" onchange="directory('directory')" name="sort" type="radio" value="new" /> | ||||
|                             <span>@@newcomer@@</span> </label | ||||
|                         ><br /> | ||||
|                         <label> | ||||
|                             <input type="checkbox" class="filled-in" id="local_only" value="true" onchange="directory('directory')" /> | ||||
|                             <span>@@local_only@@</span> | ||||
|                         </label> | ||||
|                 </div> | ||||
|  | ||||
|                 <div id="dir-contents"></div> | ||||
|                 <button class="btn waves-effect teal disabled" style="width: 100%" id="moreDir" onclick="directory('check', 'more')">@@more@@</button> | ||||
|             </div> | ||||
|             <!--並べ替え--> | ||||
|             <div id="sort-box" class="hide menu-content"> | ||||
|                 <ul id="sort"></ul> | ||||
|                 <div> | ||||
|                     <button onclick="sort()" class="btn waves-effect nex" style="width: 97.5%" data-trans-i="sort"><i class="material-icons left">sort</i>@@sortSet@@</button> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <!--リスト--> | ||||
|             <div id="list-box" class="hide menu-content"> | ||||
|                 <div class="input-field" style="width: calc(100% - 100px); float: left"> | ||||
|                     <select id="list-acct-sel" class="acct-sel"></select> | ||||
|                     <label>@@selectAcct@@</label> | ||||
|                 </div> | ||||
|                 <div style="float: left; padding-top: 8px; padding-bottom: 28px"> | ||||
|                     <button class="btn waves-effect indigo" style="width: 80px" onclick="list()" data-trans-i="lists">@@listLocale@@</button> | ||||
|                 </div> | ||||
|                 <br /><br /> | ||||
|                 <div id="lists"></div> | ||||
|                 <div id="lists-user"></div> | ||||
|                 <input type="text" style="width: calc(100% - 143px)" id="list-add" placeholder="@@name@@" /> | ||||
|                 <button class="btn waves-effect" style="width: 120px" onclick="makeNewList()">@@makeNew@@</button> | ||||
|             </div> | ||||
|             <!--フィルター--> | ||||
|             <div id="filter-box" class="hide menu-content"> | ||||
|                 <div class="input-field" style="width: calc(100% - 100px); float: left"> | ||||
|                     <select id="filter-acct-sel" class="acct-sel"></select> | ||||
|                     <label>@@selectAcct@@</label> | ||||
|                 </div> | ||||
|                 <div style="float: left; padding-top: 8px; padding-bottom: 28px"> | ||||
|                     <button class="btn waves-effect indigo" style="width: 80px" onclick="filter()" data-trans-i="filters">@@listLocale@@</button> | ||||
|                 </div> | ||||
|                 <div id="filtered-words"></div> | ||||
|                 <input type="hidden" id="filter-edit-id" /> | ||||
|                 <input type="text" style="width: 150px" id="filter-add-word" placeholder="@@filterWord@@" /><br /> @@degree@@ | ||||
|                 <br /> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="home_filter" value="home" /> | ||||
|                         <span>@@home@@</span> | ||||
|                     </label> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="local_filter" value="public" /> | ||||
|                         <span>@@local@@</span> | ||||
|                     </label> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="notf_filter" value="notifications" /> | ||||
|                         <span>@@notf@@</span> | ||||
|                     </label> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="conv_filter" value="thread" /> | ||||
|                         <span>@@conver@@</span> | ||||
|                     </label> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="prof_filter" value="profiles" /> | ||||
|                         <span>@@prof@@</span> </label | ||||
|                     ><br /> | ||||
|                     @@option@@ | ||||
|                     <br /> | ||||
|                     <label> | ||||
|                         <input type="checkbox" class="filled-in" id="wholeword_filter" value="1" /> | ||||
|                         <span>@@matchWord@@</span> | ||||
|                     </label> | ||||
|                 <br /> | ||||
|                 <span class="sml">@@warnMatchWord@@</span><br /> | ||||
|                 <label> | ||||
|                         <input type="checkbox" class="filled-in" id="except_filter" value="1" /> | ||||
|                         <span>@@except@@</span> | ||||
|                     </label> | ||||
|                 <br /> | ||||
|                 <span class="sml">@@exceptWorn@@</span><br /> @@avalableBefore@@ <span class="sml">@@warnAvBefore@@<b>@@warnAvBefore2@@</b></span | ||||
|                     ><br /><br /> | ||||
|                     <input type="number" style="width: 50px" id="days_filter" placeholder="d" value="0" />@@days@@ | ||||
|                     <input type="number" style="width: 50px" id="hours_filter" placeholder="h" value="0" />@@hours@@ | ||||
|                     <input type="number" style="width: 50px" id="mins_filter" placeholder="m" value="0" />@@mins@@<br /> | ||||
|                     Quick: <a onclick="filterTime(0,0,30)" class="pointer">30@@mins@@</a>/ <a onclick="filterTime(0,1,0)" class="pointer">1@@hours@@</a>/ | ||||
|                     <a onclick="filterTime(0,6,0)" class="pointer">6@@hours@@</a>/ <a onclick="filterTime(0,12,0)" class="pointer">12@@hours@@</a>/ | ||||
|                     <a onclick="filterTime(1,0,0)" class="pointer">1@@days@@</a>/ <a onclick="filterTime(7,0,0)" class="pointer">7@@days@@</a>/ | ||||
|                     <a onclick="filterTime(0,0,0)" class="pointer">@@unlimited@@</a><br /> | ||||
|                     <button class="btn waves-effect" style="width: 120px" onclick="makeNewFilter()" id="add-filter-btn">@@add@@</button><br /> | ||||
|                     <span class="sml">@@warnOnIntegratedTL@@</span> | ||||
|             </div> | ||||
|             <!--ヘルプとログ--> | ||||
|             <div id="help-box" class="hide menu-content"> | ||||
|                 <a href="https://docs.thedesk.top" class="btn waves-effect" style="width: 97.5%">@@help@@</a><br /> @@contactwithlog@@ | ||||
|                 <br /> | ||||
|                 <textarea id="logs" style="height: 250px"></textarea><br /> | ||||
|             </div> | ||||
|         </div> | ||||
|     </div> | ||||
|     <a onclick="about()" class="nex waves-effect pwa"> <i class="material-icons menu-icon">info</i>@@about@@ </a> |  | ||||
|     <a onclick="bottomReverse()" class="nex waves-effect"> <i class="material-icons menu-icon">swap_horiz</i>@@reverse@@ </a> |  | ||||
|     <a onclick="openRN()" class="nex waves-effect"> <i class="material-icons menu-icon">new_releases</i>Release Note </a> | ||||
| </div> | ||||
							
								
								
									
										247
									
								
								app/view/make/components/postBox.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										247
									
								
								app/view/make/components/postBox.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,247 @@ | ||||
| <div id="post-box" class="z-depth-5"> | ||||
| 	<div id="post-bar" class="drag-bar"><span id="unreact">@@post-new@@</span><span id="addreact" class="hide">Reaction</span></div> | ||||
| 	<!--トゥートボックス--> | ||||
| 	<div id="left-side"> | ||||
| 		<div class="row" style="margin-bottom: 0"> | ||||
| 			<div class="" style="float: left"> | ||||
| 				<a onclick="profShow()" style="vertical-align: -1.7rem" class="pointer mize"> | ||||
| 					<img src="../../img/missing.svg" id="acct-sel-prof" title="@@showSelectProf@@(Ctrl+Shift+P)" data-trans-title="post_box_prof" style="width: 1.8rem" /> | ||||
| 				</a> | ||||
| 			</div> | ||||
| 			<div class="input-field mize" style="float: left; width: calc(100% - 1.8rem); margin-top: 0"> | ||||
| 				<select id="post-acct-sel" class="acct-sel" onchange="mdCheck()"></select> | ||||
| 			</div> | ||||
| 			<span class="cancel"> | ||||
| 				<i class="material-icons waves-effect" onclick="hide()" title="@@closeThisBox@@(X)" data-trans-title="post_box_close">cancel</i> | ||||
| 			</span> | ||||
| 			<!--Markdown--> | ||||
| 			<div class="row" style="margin-bottom: 0"> | ||||
| 				<div class="markdown mize hide"> | ||||
| 					<div class="col s12"> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('b')" title="太字(Ctrl+B)テキストボックス内を選択してから押すと囲みます。">format_bold</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('i')" title="斜字(Ctrl+I)テキストボックス内を選択してから押すと囲みます。">format_italic</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('u')" title="下線(Ctrl+U)テキストボックス内を選択してから押すと囲みます。">format_underlined</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('s')" title="取り消し(Ctrl+S)テキストボックス内を選択してから押すと囲みます。">strikethrough_s</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdown('>','no','yes')" title="引用">format_quote</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdown('#','no','yes')" title="見出し">short_text</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdown('`','yes','no')" title="コード挿入 テキストボックス内を選択してから押すと囲みます。">code</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdown('- ','yes','yes')" title="箇条書きリスト">format_list_bulleted</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdown('1. ','yes','yes')" title="番号付きリスト">format_list_numbered</i> | ||||
| 						<i | ||||
| 							class="pointer setting fa fa-subscript waves-effect" | ||||
| 							onclick="markdown('__','yes','no','before')" | ||||
| 							title="下付き文字 テキストボックス内を選択してから押すと囲みます。" | ||||
| 							style="font-size: 1.5rem" | ||||
| 						></i> | ||||
| 						<i | ||||
| 							class="pointer setting fa fa-superscript waves-effect" | ||||
| 							onclick="markdown('_','yes','no','before')" | ||||
| 							title="上付き文字 テキストボックス内を選択してから押すと囲みます。" | ||||
| 							style="font-size: 1.5rem" | ||||
| 						></i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('spin')" title="回転 テキストボックス内を選択してから押すと囲みます。">autorenew</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('pulse')" title="点滅 テキストボックス内を選択してから押すと囲みます。">flare</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=vertical')" title="上下反転 テキストボックス内を選択してから押すと囲みます。">swap_vert</i> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('flip=horizontal')" title="左右反転 テキストボックス内を選択してから押すと囲みます。">swap_horiz</i> | ||||
| 						<span class="sml gray pointer waves-effect"> | ||||
| 							<a onclick="mdToggle()">Markdownエディタを隠す</a> | ||||
| 						</span> | ||||
| 						<br /> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('size')" title="文字サイズ変更 テキストボックス内を選択してから押すと囲みます。">format_size</i> | ||||
| 						<input id="size" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem" value="12" />px | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="tagsel('colorhex')" title="文字色変更 テキストボックス内を選択してから押すと囲みます。">color_lens</i> | ||||
| 						<input id="colorhex" style="width: calc(50% - 3.8rem); margin: 0; height: 1.8rem" type="color" /> | ||||
| 						<br /> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdownLink()" title="リンク挿入">link</i> | ||||
| 						<input id="linkt" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem" placeholder="リンクテキスト" />  | ||||
| 						<input id="link2" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem" placeholder="リンクアドレス" /> | ||||
| 						<br /> | ||||
| 						<i class="material-icons pointer setting waves-effect" onclick="markdownImage()" title="インライン画像挿入">image</i> | ||||
| 						<input id="image" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem" placeholder="代替テキスト" />  | ||||
| 						<input id="image2" style="width: calc(50% - 1.5rem); margin: 0; height: 1.8rem" placeholder="画像アドレス" /> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 				<div class="input-field col s12" id="preview-field" style="margin-top: 0"> | ||||
| 					<div id="md-preview"></div> | ||||
| 					<span class="sml gray pointer"> | ||||
| 						<a onclick="previewEdit()">Edit</a> | ||||
| 					</span> | ||||
| 				</div> | ||||
| 				<div class="input-field col s12" id="toot-field" style="margin-top: 0; margin-bottom: 0"> | ||||
| 					<textarea id="textarea" class="materialize-textarea unmize" style="margin-bottom: 0" data-length="500"></textarea> | ||||
|  | ||||
| 					<div id="suggest"></div> | ||||
| 					<label for="textarea" data-trans="toot">@@toot@@</label> | ||||
| 					<br /> | ||||
| 					<span class="sml gray pointer markdown mize" id="preview-btn"> | ||||
| 						<a onclick="preview()">Preview</a> | ||||
| 					</span> | ||||
| 					<span class="sml gray pointer anti-markdown mize"> | ||||
| 						<a onclick="mdToggle()">Markdownエディタを表示</a> | ||||
| 					</span> | ||||
| 				</div> | ||||
| 				<div class="col s12 mize" style="margin-top: 0; display: flex; justify-content: space-between"> | ||||
| 					<i class="waves-effect gray material-icons" id="nsfw" title="@@nsfwDes@@" onclick="nsfw()">visibility_off</i> | ||||
| 					<i class="waves-effect gray material-icons purple-text dropdown-trigger" data-target="dropdown1" id="vis-icon">public</i> | ||||
| 					<a class="waves-effect gray" id="cw" onclick="cw()" title="@@cwDes@@">CW</a> | ||||
| 					<span | ||||
| 						><span id="imgup"></span><span id="imgsel" class="pwa"><i class="waves-effect material-icons gray" onclick="fileselect()" title="@@selfile@@">photo_library</i></span></span | ||||
| 					> | ||||
| 					<i class="waves-effect gray material-icons" onclick="emojiToggle()" id="emojibtn" title="@@insertEmoji@@">tag_faces</i> | ||||
| 					<i class="waves-effect gray material-icons dropdown-trigger" data-target="dropdown2">more_vert</i> | ||||
| 					<i class="material-icons nex gray waves-effect" title="@@clearToot@@(Ctrl+Shit+C)" data-trans-title="post_box_clear" id="clear">clear</i> | ||||
| 				</div> | ||||
| 				<div class="col s12 mize" style="margin-bottom: 0.4rem; padding: 0"> | ||||
| 					<div id="taglist"></div> | ||||
| 					<div id="preview" class="mize"></div> | ||||
| 					<span class="sml mize" | ||||
| 						><span>@@replyMode@@</span>: <span id="rec">@@no@@</span>/<span>@@temp@@</span>: | ||||
| 						<span id="mec">@@nothing@@</span> | ||||
| 						<a onclick="stamp()" class="pointer pwa" title="@@stampWarn@@">@@stamp@@: <span id="stamp">Off</span></a> /@@poll@@: | ||||
| 						<span id="pollsta">@@no@@</span> | ||||
| 						<span id="vis" class="hide">public</span> | ||||
| 					</span> | ||||
| 					<br /> | ||||
| 					<input type="text" id="cw-text" placeholder="@@cwtext@@" class="mize" style="margin: 0" /> | ||||
| 					<div id="sch-box"> | ||||
| 						@@postat@@<br /><span class="sml">@@scheduleWarn@@</span><a onclick="expPostMode()">Expire mode(beta)</a><br /> | ||||
| 						<input type="datetime-local" id="sch-date" placeholder="@@schedule@@" class="datepicker" style="margin: 0" /> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 			<!-- 公開範囲 Dropdown Structure --> | ||||
| 			<ul id="dropdown1" class="dropdown-content"> | ||||
| 				<li> | ||||
| 					<a onclick="vis('public')">@@publicJP@@(Public)</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="vis('unlisted')">@@unlistedJP@@(Unlisted)</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="vis('private')" id="private-button">@@privateJP@@(Private)</a> | ||||
| 				</li> | ||||
| 				<li id="limited-button" class="hide"> | ||||
| 					<a onclick="vis('limited')">限定公開(Limited)</a> | ||||
| 				</li> | ||||
| 				<li id="local-button" class="hide"> | ||||
| 					<a onclick="vis('local')">@@localJP@@(Local)</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="vis('direct')" class="disabled direct">@@directJP@@(Direct)</a> | ||||
| 				</li> | ||||
| 			</ul> | ||||
| 			<!-- その他 Dropdown Structure --> | ||||
| 			<ul id="dropdown2" class="dropdown-content"> | ||||
| 				<li> | ||||
| 					<a onclick="nowplaying('spotify');">NowPlaying (Spotify)</a> | ||||
| 				</li> | ||||
| 				<li class="mac"> | ||||
| 					<a onclick="nowplaying('itunes');">NowPlaying (iTunes macOS)</a> | ||||
| 				</li> | ||||
| 				<li class="mac hide" id="ccnp"> | ||||
| 					<a onclick="nowplaying('anynp');">NowPlaying (コントロールセンター)</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="nowplaying('lastFm');">NowPlaying (Last.fm)</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="schedule();">@@schedule@@</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="pollToggle();">@@poll@@</a> | ||||
| 				</li> | ||||
| 				<li> | ||||
| 					<a onclick="draftToggle();">@@draft@@</a> | ||||
| 				</li> | ||||
| 			</ul> | ||||
| 			<!--hidden area--> | ||||
| 			<input type="hidden" id="reply" /> | ||||
| 			<input type="hidden" id="ideKey" /> | ||||
| 			<input type="hidden" id="quote" /> | ||||
| 			<input type="hidden" id="media" /> | ||||
| 			<!--END hidden area--> | ||||
| 		</div> | ||||
| 		<div id="toot-btn-field"> | ||||
| 			<button class="btn waves-effect unmize toot-btn-group" onclick="post()" id="toot-post-btn">@@toot@@</button> | ||||
| 			<button class="btn waves-effect darken-3 unmize hide toot-btn-group" onclick="sec()" id="toot-sec-btn"> | ||||
| 				<i class="material-icons" id="toot-sec-icon" title="@@sectoot@@">lock_open</i> | ||||
| 			</button> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<div id="right-side"> | ||||
| 		<div id="draft" class="hide right-side-content"></div> | ||||
| 		<!--絵文字ピッカー--> | ||||
| 		<div id="emoji" class="hide right-side-content"> | ||||
| 			<span class="gray sml" | ||||
| 				>@@emojiWarn@@ | ||||
| 				<a onclick="emojiGet('true')" class="pointer">@@refreshEmoji@@</a> | ||||
| 				<br /> | ||||
| 			</span> | ||||
| 			<div id="emoji-list" class="" style=""></div> | ||||
| 			<div class="emoji-control center"> | ||||
| 				<button class="btn waves-effect blue" style="width: 30%; padding: 0" onclick="emojiList('before')" id="emoji-before"> | ||||
| 					<i class="material-icons">navigate_before</i> | ||||
| 				</button> | ||||
| 				<span id="emoji-count"></span>/ | ||||
| 				<span id="emoji-sum"></span> | ||||
| 				<button class="btn waves-effect blue" style="width: 30%; padding: 0" onclick="emojiList('next')" id="emoji-next"> | ||||
| 					<i class="material-icons">navigate_next</i> | ||||
| 				</button> | ||||
| 			</div> | ||||
| 			<div id="default-emoji"> | ||||
| 				<span id="now-emoji"></span>@@showThisEmoji@@<br /><span class="gray sml">@@emojiInsertWarn@@</span> | ||||
| 				<br /> | ||||
| 				<a onclick="customEmoji()" class="pointer waves-effect" title="@@customEmoji@@"> | ||||
| 					<i class="material-icons">add</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('people')" class="pointer waves-effect" title="@@peopleEmoji@@"> | ||||
| 					<i class="material-icons">people</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('nature')" class="pointer waves-effect" title="@@natureEmoji@@"> | ||||
| 					<i class="material-icons">local_florist</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('food')" class="pointer waves-effect" title="@@foodEmoji@@"> | ||||
| 					<i class="material-icons">restaurant</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('activity')" class="pointer waves-effect" title="@@activityEmoji@@"> | ||||
| 					<i class="material-icons">directions_run</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('place')" class="pointer waves-effect" title="@@placeEmoji@@"> | ||||
| 					<i class="material-icons">directions_car</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('object')" class="pointer waves-effect" title="@@thingsEmoji@@"> | ||||
| 					<i class="material-icons">attach_file</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('symbol')" class="pointer waves-effect" title="@@symbolEmoji@@"> | ||||
| 					<i class="material-icons">gesture</i> | ||||
| 				</a> | ||||
| 				<a onclick="defaultEmoji('flag')" class="pointer waves-effect" title="@@flagsEmoji@@"> | ||||
| 					<i class="material-icons">flag</i> | ||||
| 				</a> | ||||
| 				<a onclick="faicon()" class="pointer waves-effect" title="faicon" id="faicon-btn"> | ||||
| 					<i class="fab fa-fort-awesome"></i> | ||||
| 				</a> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 		<!--Poll UI--> | ||||
| 		<div id="poll" class="hide right-side-content"> | ||||
| 			<div id="mastodon-poll" class="poll-provider"> | ||||
| 				<input type="text" class="mastodon-choice" placeholder="@@choice@@1" /> | ||||
| 				<input type="text" class="mastodon-choice" placeholder="@@choice@@2" /> | ||||
| 				<input type="text" class="mastodon-choice" placeholder="@@choice@@3" /> | ||||
| 				<input type="text" class="mastodon-choice" placeholder="@@choice@@4" /> | ||||
| 				<label> | ||||
| 					<input type="checkbox" class="filled-in" id="poll-multiple" value="1" /> | ||||
| 					<span>@@pollmulti@@</span> | ||||
| 				</label> | ||||
| 				<label> | ||||
| 					<input type="checkbox" class="filled-in" id="poll-until" value="1" /> | ||||
| 					<span>@@polluntil@@</span> | ||||
| 				</label> | ||||
| 				<input type="number" style="width: 50px" id="days_poll" placeholder="d" value="0" />@@days@@ | ||||
| 				<input type="number" style="width: 50px" id="hours_poll" placeholder="h" value="0" />@@hours@@ | ||||
| 				<input type="number" style="width: 50px" id="mins_poll" placeholder="m" value="6" />@@mins@@ | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </div> | ||||
							
								
								
									
										17
									
								
								app/view/make/components/preTL.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								app/view/make/components/preTL.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| <textarea id="copy" style="top: -100px; position: fixed"></textarea> | ||||
| <canvas id="canvas" style="top: -100px; position: fixed; width: 32px; height: 32px" width="32" height="32"></canvas> | ||||
| <div id="pageSrc" class="hide z-depth-2"> | ||||
|     <div class="srcQ"></div> | ||||
|     <div class="pageSrcBtn pointer" onclick="doSrc('web')">@@webSrc@@</div> | ||||
|     <div class="pageSrcBtn pointer" onclick="doSrc('ts')">@@tsSrc@@</div> | ||||
|     <div class="pageSrcBtn pointer" onclick="doSrc('copy')">@@copy@@</div> | ||||
|     <div class="pageSrcBtn pointer lastPSB" onclick="doSrc('toot')">@@toot@@</div> | ||||
| </div> | ||||
| <div class="hide z-depth-2" id="tagContextMenu"> | ||||
|     <a onclick="doTShowBox('tl')" class="pointer firstTCM" id="tagCMTL"></a> | ||||
|     <a onclick="doTShowBox('toot')" class="pointer" id="tagCMToot"></a> | ||||
|     <a onclick="doTShowBox('pin')" class="pointer" id="tagCMPin"></a> | ||||
|     <a onclick="doTShowBox('f')" class="pointer lastTCM" title="add it to Featured tags" id="tagCMFeature">Feature</a> | ||||
| </div> | ||||
| <div id="offline" class="hide">@@nowOffline@@</div> | ||||
| <div id="re-online" class="hide">@@reOnline@@</div> | ||||
							
								
								
									
										34
									
								
								app/view/make/components/releaseNote.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								app/view/make/components/releaseNote.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| <!-- Modal Structure Release Note--> | ||||
| <div id="releasenote" class="modal modal-fixed-footer scr"> | ||||
|     <div class="modal-content"> | ||||
|         <h3>TheDesk</h3> | ||||
|         <a href="https://thedesk.top" target="_blank">HP</a><br /> | ||||
|         <a href="https://github.com/cutls/TheDesk" target="_blank">GitHub</a><br /> | ||||
|         <br /> | ||||
|         <div id="release-22-3-1_Koume" class="release-do" style="display: none"> | ||||
|             Pixiv FanboxやPatreonでは支援者様限定で様々なTheDeskに関する記事をご覧いただけます。最低月一更新。<br /> 困ったときは、 <a href="https://docs.thedesk.top">TheDesk Docs</a>をご覧ください。 | ||||
|             <h5>Release Note 22.3.1 (Koume)</h5> | ||||
|             <!--上のdivのidや1行上のところも変えてね--> | ||||
|             ・時限ミュートに対応した | ||||
|             <a onclick="udgEx('Cutls@1m.cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png" />cutls</a><br /> ・軽微なバグの修正 | ||||
|             <a onclick="udgEx('Cutls@1m.cutls.com','main')" class="contributor"><img src="https://media.thedesk.top/accounts/avatars/000/000/001/original/d34ef8bb49d5e011.png" />cutls</a><br /> | ||||
|         </div> | ||||
|         <div id="release-en" style="display: none"> | ||||
|             <h5>Let's make it native!</h5> | ||||
|             <a href="https://translate.thedesk.top">Crowdin translation project</a> | ||||
|         </div> | ||||
|         <br /><br /> | ||||
|         <h3>@@supportme@@</h3> | ||||
|         @@TheDeskDes@@<br /> | ||||
|         <a class="btn-share btn waves-effect waves-light red lighten-2" href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank"> @@PixivSupport@@ </a> | ||||
|         <a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls" target="_blank"> @@PatreonSupport@@ </a> | ||||
|         <a class="btn-share btn waves-effect waves-light black-text" href="https://liberapay.com/cutls" target="_blank" style="background-color: #f6c915"> Liberapay </a> | ||||
|         <a class="btn-share btn waves-effect waves-light blue" href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank"> @@AWLSupport@@ </a> | ||||
|         <br /> @@SendAmazonGift1@@ <a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>@@SendAmazonGift2@@<br /> Kyash | ||||
|         <br /> | ||||
|         <img src="../../img/kyash.png" width="100" /><br /> | ||||
|     </div> | ||||
|     <div class="modal-footer"> | ||||
|         <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">@@close@@</a> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										50
									
								
								app/view/make/components/starterAndDragHandler.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								app/view/make/components/starterAndDragHandler.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| <div id="tl"> | ||||
|     <!--TL--> | ||||
|     <!--スターター--> | ||||
|     <div id="start" class="scr"> | ||||
|         <div id="start-content"> | ||||
|             <h3 class="center">@@demoBottomBtns@@</h3> | ||||
|             @@lookAtBottom@@ | ||||
|             <div id="demobottom"> | ||||
|                 <button class="btn waves-effect" style="width: 23rem; height: 2.5rem; line-height: 0; margin: 0; background-color: var(--active)"> | ||||
|                         <i class="material-icons" style="position: relative; top: 0.4rem; font-size: 1.5rem; text-align: center; margin-right: 0.7rem">edit</i>@@toot@@ | ||||
|                     </button> | ||||
|                 <div class="leftside reverse" id="demogroup"> | ||||
|                     <div class="btnsgroup" style="margin-left: 0.4rem"> | ||||
|                         <a href="#" class="nex waves-effect"> | ||||
|                             <i class="material-icons nex big-icon" title="@@acctMan@@(Ctrl+Shift+M)">account_circle</i> | ||||
|                         </a> | ||||
|                         <a href="#" class="nex waves-effect"> | ||||
|                             <i class="material-icons nex" title="@@setting@@(Ctrl+Shift+S)">settings</i> | ||||
|                         </a> | ||||
|                         <a class="nex waves-effect"> | ||||
|                             <i class="material-icons" title="@@nanoDes@@TheDesk Nano">remove_from_queue</i> | ||||
|                         </a> | ||||
|                         <a class="nex waves-effect" id="list-tgl"> | ||||
|                             <i class="material-icons" title="@@menu@@">apps</i> | ||||
|                         </a> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <br /> | ||||
|             <i class="material-icons nex big-icon">account_circle</i>: @@acctMan@@<br /> @@acctManDesc@@ | ||||
|             <hr /> | ||||
|             <i class="material-icons nex">settings</i>: @@setting@@<br /> @@settingDesc@@ | ||||
|             <hr /> | ||||
|             <i class="material-icons nex">remove_from_queue</i>: TheDesk Nano @@nanoDes@@<br /> @@nanoDescPlus@@ | ||||
|             <hr /> | ||||
|             <i class="material-icons nex">apps</i>: @@menu@@<br /> @@menuDesc@@ | ||||
|             <br /> | ||||
|             <br /> | ||||
|             <button class="btn waves-effect" onclick="closeStart()" style="width: 300px">@@close@@</button> | ||||
|         </div> | ||||
|     </div> | ||||
|     <!--ドラッグハンドラ--> | ||||
|     <div id="drag"> | ||||
|         <div id="drag-content"> | ||||
|             @@draghere@@ | ||||
|             <br /> | ||||
|             <button class="btn waves-effect" onclick="closedrop()">@@close@@</button> | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										33
									
								
								app/view/make/components/supportMe.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								app/view/make/components/supportMe.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <!--Support me--> | ||||
| <div id="support-btm" class="z-depth-4 hide scr"> | ||||
|     <div id="support-btm-ja"> | ||||
|         <h5>ご支援いただけませんか?</h5> | ||||
|         (これは支援の有無に関わらず定期的に出ます。過去のバージョン等で何度も表示される等のバグを確認しております。)<br /> あなたのMastodon, Misskeyライフを邪魔してしまって申し訳ありません。<br /> 乞食のようなマネをしてご支援をお願いするのもどうかと思いますが、少々お時間をください。 | ||||
|         <br /> | ||||
|         <br /> TheDeskになぜ金銭が発生するかについて: 詳細は省きますが、開発者から緊急の連絡をしたりするのに使われます。 | ||||
|         <br /> | ||||
|         <b>全てのユーザーが安心してTheDeskを使っていただける環境のため</b>にも、ぜひご支援をご検討ください。ご支援いただけなくても使用不可能になることは全くありません。<br /> | ||||
|         <b>@@TheDeskDes@@</b> | ||||
|     </div> | ||||
|     <div id="support-btm-en" class="hide"> | ||||
|         <h5>Support me</h5> | ||||
|         It may disturb your Mastodon life, but your support is required to keep TheDesk awesome!<br /> | ||||
|         <b>@@TheDeskDes@@</b> | ||||
|     </div> | ||||
|     <div id="support-btm-middle"> | ||||
|         <h5>@@monthly@@</h5> | ||||
|         <a class="btn-share btn waves-effect waves-light red lighten-2" href="https://www.pixiv.net/fanbox/creator/28105985" target="_blank"> @@PixivSupport@@ </a> | ||||
|         <a class="btn-share btn waves-effect waves-light red darken-2" href="https://www.patreon.com/cutls" target="_blank"> @@PatreonSupport@@ </a> | ||||
|         <a class="btn-share btn waves-effect waves-light black-text" href="https://liberapay.com/cutls" target="_blank" style="background-color: #f6c915"> Liberapay </a> | ||||
|     </div> | ||||
|     <div id="support-btm-right"> | ||||
|         <h5>@@once@@</h5> | ||||
|         <a class="btn-share btn waves-effect waves-light blue" href="https://www.amazon.co.jp/registry/wishlist/2TV35ZHHJPDSB" target="_blank"> @@AWLSupport@@ </a> | ||||
|         <br /> @@SendAmazonGift1@@ <a href="mailto:web-pro@cutls.com" target="_blank">web-pro@cutls.com</a>@@SendAmazonGift2@@<br /> Kyash | ||||
|         <br /> | ||||
|         <img src="../../img/kyash.png" width="100" /><br /> | ||||
|     </div> | ||||
|     <div id="support-btm-close"> | ||||
|         <button class="btn waves-effect" style="width: 100%" onclick="closeSupport()" id="add-filter-btn">@@close@@</button> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										96
									
								
								app/view/make/components/tootModal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								app/view/make/components/tootModal.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| <!-- Modal Structure Tootdata--> | ||||
| <div id="tootmodal" class="modal modal-fixed-footer"> | ||||
|     <div class="modal-content"> | ||||
|         <ul class="collapsible" id="det-col"> | ||||
|             <li class="dm-hide contextTool"> | ||||
|                 <div class="collapsible-header"><i class="material-icons">people_outline</i>@@afterLTL@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="ltl-after"></div> | ||||
|             </li> | ||||
|             <li class="dm-hide contextTool"> | ||||
|                 <div class="collapsible-header"><i class="material-icons">person_outline</i>@@afterUTL@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="user-after"></div> | ||||
|             </li> | ||||
|             <li class="dm-hide contextTool"> | ||||
|                 <div class="collapsible-header"><i class="material-icons">language</i>@@afterFTL@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="ftl-after"></div> | ||||
|             </li> | ||||
|             <li> | ||||
|                 <div class="collapsible-header"> | ||||
|                     <i class="material-icons">arrow_upward</i>@@contextBefore@@ | ||||
|                     <i class="material-icons red-text hide" id="toot-reply-new">new_releases</i> | ||||
|                 </div> | ||||
|                 <div class="collapsible-body toot-reset" id="toot-reply"></div> | ||||
|             </li> | ||||
|             <li> | ||||
|                 <div class="collapsible-header" id="activator"><i class="material-icons">more_horiz</i>@@thisToot@@</div> | ||||
|                 <div class="collapsible-body"> | ||||
|                     <div class="toot-reset" id="toot-this"></div> | ||||
|                 </div> | ||||
|             </li> | ||||
|             <li> | ||||
|                 <div class="collapsible-header"> | ||||
|                     <i class="material-icons">arrow_downward</i>@@contextAfter@@ | ||||
|                     <i class="material-icons red-text hide" id="toot-after-new">new_releases</i> | ||||
|                 </div> | ||||
|                 <div class="collapsible-body toot-reset" id="toot-after"></div> | ||||
|             </li> | ||||
|             <li class="dm-hide contextTool"> | ||||
|                 <div class="collapsible-header"><i class="material-icons">people_outline</i>@@beforeLTL@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="toot-before"></div> | ||||
|             </li> | ||||
|             <li class="dm-hide contextTool"> | ||||
|                 <div class="collapsible-header"><i class="material-icons">person_outline</i>@@beforeUTL@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="user-before"></div> | ||||
|             </li> | ||||
|             <li> | ||||
|                 <div class="collapsible-header"><i class="material-icons">star</i>@@favedPeople@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="toot-fav"></div> | ||||
|             </li> | ||||
|             <li class="dm-hide"> | ||||
|                 <div class="collapsible-header"><i class="text-darken-3 false fas fa-retweet"></i>@@btedPeople@@</div> | ||||
|                 <div class="collapsible-body toot-reset" id="toot-rt"></div> | ||||
|             </li> | ||||
|         </ul> | ||||
|         <div class="dm-hide" style="max-width: 450px"> | ||||
|             @@useOtherAcct1@@(<i class="fas fa-retweet"></i>/<i class="fas fa-star"></i>@@useOtherAcct2@@)<br /> | ||||
|             <div class="row"> | ||||
|                 <div class="col s6"> | ||||
|                     <select id="status-acct-sel" class="acct-sel"></select> | ||||
|                 </div> | ||||
|                 <div class="col s2"> | ||||
|                     <button class="dropdown-button btn waves-effect" style="width: 100%" onclick="staEx('reply')"> | ||||
|                             <i class="fas fa-share"></i> | ||||
|                         </button> | ||||
|                 </div> | ||||
|                 <div class="col s2"> | ||||
|                     <button class="dropdown-button btn waves-effect indigo" style="width: 100%" onclick="staEx('rt')"> | ||||
|                             <i class="fas fa-retweet"></i> | ||||
|                         </button> | ||||
|                 </div> | ||||
|                 <div class="col s2"> | ||||
|                     <button class="dropdown-button btn waves-effect orange" style="width: 100%" onclick="staEx('fav')"> | ||||
|                             <i class="fas fa-star"></i> | ||||
|                         </button> | ||||
|                 </div> | ||||
|             </div> | ||||
|             @@btWithVis@@<br /> | ||||
|             <button class="btn waves-effect darken-3 toot-btn-group purple" onclick="boostWith('public')"> | ||||
|                     <i class="material-icons">public</i> | ||||
|                 </button> | ||||
|             <button class="btn waves-effect darken-3 toot-btn-group blue" onclick="boostWith('unlisted')"> | ||||
|                     <i class="material-icons">lock_open</i> | ||||
|                 </button> | ||||
|             <button class="btn waves-effect darken-3 toot-btn-group orange" onclick="boostWith('private')"> | ||||
|                     <i class="material-icons">lock</i> | ||||
|                 </button> | ||||
|             <div id="toot-tools"></div> | ||||
|             <div id="toot-after"></div> | ||||
|         </div> | ||||
|     </div> | ||||
|     <div class="modal-footer"> | ||||
|         <a href="#!" class="waves-effect waves-green btn-flat dm-hide" onclick="brws()">@@openBrowser@@</a> | ||||
|         <a href="#!" class="waves-effect waves-green btn-flat dm-hide" onclick="cbCopy()">@@copyURL@@</a> | ||||
|         <a href="#!" class="waves-effect waves-green btn-flat dm-hide" onclick="cbCopy('emb')">@@embed@@</a> | ||||
|         <a href="#!" class="modal-action modal-close waves-effect waves-green btn-flat">@@close@@</a> | ||||
|     </div> | ||||
| </div> | ||||
							
								
								
									
										210
									
								
								app/view/make/components/userDataModal.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								app/view/make/components/userDataModal.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | ||||
| <!-- Modal Structure Userdata --> | ||||
| <div id="his-data" class="modal bottom-sheet modal-fixed-footer" style="max-height: 750px; height: 90%"> | ||||
| 	<div id="his-data-content" class="modal-content" style="padding-bottom: 0; overflow-y: hidden"> | ||||
| 		<div id="his-data-show"> | ||||
| 			<div id="his-data-wrap"> | ||||
| 				<div class="his-float" id="his-float-data"> | ||||
| 					<div id="his-leftside"> | ||||
| 						<div id="his-basic-prof"> | ||||
| 							<div> | ||||
| 								<img src="../../img/loading.svg" id="his-prof" draggable="false" /> | ||||
| 							</div> | ||||
| 							<div> | ||||
| 								<span id="his-name">Loading...</span> | ||||
| 								<span class="gray">@</span><span id="his-acct" class="gray"></span><br /> | ||||
| 								<span class="gray" id="his-relation"></span> | ||||
| 								<br /> | ||||
| 								<span class="cbadge"> <span id="his-sta"></span>@@toots@@ </span> | ||||
| 								<span class="cbadge" | ||||
| 									>@@follow@@: | ||||
| 									<span id="his-follow"></span> | ||||
| 								</span> | ||||
| 								<span class="cbadge">@@follower@@: <span id="his-follower"></span> </span><br /> | ||||
| 								<span class="cbadge" style="max-width: 11.5rem; width: 11.5rem" | ||||
| 									>Since: | ||||
| 									<span id="his-since"></span> | ||||
| 								</span> | ||||
| 								<span class="cbadge" id="his-bot">[bot]</span> | ||||
| 							</div> | ||||
| 						</div> | ||||
| 						<div id="his-proof-prof"></div> | ||||
| 						<div id="his-des" data-acct=""></div> | ||||
| 						<br /> | ||||
| 						<div id="his-table"></div> | ||||
| 						<br /> | ||||
| 						<div id="his-sign-action"> | ||||
| 							<a href="#!" class="waves-effect waves-green btn" onclick="follow()" style="flex-basis: 100%" id="his-follow-btn" | ||||
| 								><i class="material-icons">people</i><span id="his-follow-btn-text">@@follow@@</span></a | ||||
| 							> | ||||
| 							<a href="#!" class="waves-effect waves-green btn blue shrinker" onclick="muteMenu()" id="his-mute-btn" | ||||
| 								><i class="material-icons">voice_over_off</i><span id="his-mute-btn-text">@@mute@@</span> | ||||
| 							</a> | ||||
| 							<a href="#!" class="waves-effect waves-green btn red shrinker" onclick="block()" id="his-block-btn" | ||||
| 								><i class="material-icons">block</i><span id="his-block-btn-text">@@block@@</span></a | ||||
| 							> | ||||
| 							<a class="dropdown-trigger btn waves-effect grey" href="#" data-target="actiondropdown"> <i class="material-icons">more_vert</i>@@more@@</a> | ||||
| 						</div> | ||||
| 						<div id="muteDuration" class="hide"> | ||||
| 							<label> | ||||
| 								<input type="checkbox" class="filled-in" id="notf_mute" value="1" /> | ||||
| 								<span>@@notfMute@@</span> | ||||
| 							</label> | ||||
| 							<br /> | ||||
| 							@@zeroSetToInfinity@@<br /> | ||||
| 							Quick: <a onclick="muteTime(0,0,5)" class="pointer">5@@mins@@</a>/ <a onclick="muteTime(0,0,30)" class="pointer">30@@mins@@</a>/ <a onclick="muteTime(0,1,0)" class="pointer">1@@hours@@</a>/ | ||||
| 							<a onclick="muteTime(0,6,0)" class="pointer">6@@hours@@</a>/ <a onclick="muteTime(1,0,0)" class="pointer">1@@days@@</a>/  | ||||
|                             <a onclick="muteTime(3,0,0)" class="pointer">3@@days@@</a>/ <a onclick="muteTime(7,0,0)" class="pointer">7@@days@@</a> | ||||
| 							<a onclick="muteTime(0,0,0)" class="pointer">@@unlimited@@</a><br /> | ||||
| 							<input type="number" style="width: 62px" id="days_mute" placeholder="d" value="0" />@@days@@ | ||||
| 							<input type="number" style="width: 62px" id="hours_mute" placeholder="h" value="0" />@@hours@@ | ||||
| 							<input type="number" style="width: 62px" id="mins_mute" placeholder="m" value="0" />@@mins@@ | ||||
| 							<a href="#!" class="waves-effect waves-green btn blue" onclick="muteDo()" id="his-mute-btn" | ||||
| 								><i class="material-icons">voice_over_off</i><span id="his-mute-btn-text">@@mute@@</span> | ||||
| 							</a> | ||||
| 						</div> | ||||
| 						<!-- Dropdown Structure --> | ||||
| 						<ul id="actiondropdown" class="dropdown-content"> | ||||
| 							<li onclick="empUser()"> | ||||
| 								<a title="@@empUser@@"><i class="material-icons">highlight</i>@@empUser@@</a> | ||||
| 							</li> | ||||
| 							<li onclick="pinUser()" class="only-his-data"> | ||||
| 								<a title="@@endorse@@"><i class="material-icons">thumb_up</i>@@endorse@@</a> | ||||
| 							</li> | ||||
| 							<li onclick="profbrws()" id="his-openin"> | ||||
| 								<a title="@@openinbrowser@@"><i class="material-icons">open_in_browser</i>@@openinbrowser@@</a> | ||||
| 							</li> | ||||
| 							<li onclick="setMain()" class="only-my-data" id="his-main-acct"> | ||||
| 								<a title="@@mainacct@@"><i class="material-icons">grade</i>@@mainacct@@</a> | ||||
| 							</li> | ||||
| 						</ul> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 				<div class="his-float" id="his-float-timeline"> | ||||
| 					<div id="my-data-nav"> | ||||
| 						<a go="#his-tl" title="@@timeline@@" class="btn active-back column-first anc-link waves-effect"><i class="material-icons">timeline</i>@@timeline@@</a> | ||||
| 						<a go="#his-follow-list" title="@@follow@@" class="btn anc-link waves-effect"><i class="material-icons">people</i>→@@follow@@</a> | ||||
| 						<a go="#his-follower-list" title="@@follower@@" class="btn anc-link waves-effect"><i class="material-icons">people</i>←@@follower@@</a> | ||||
| 						<a go="#his-fav-list" title="@@favRegist@@" class="btn only-my-data anc-link waves-effect"> <i class="material-icons">star</i>@@favRegist@@</a> | ||||
| 						<a class="dropdown-trigger btn waves-effect" href="#" data-target="hisdropdown"><i class="material-icons">more_vert</i>@@more@@</a> | ||||
| 						<div id="his-data-title-wrap"> | ||||
| 							<span id="his-data-title"><i class="material-icons">timeline</i>@@timeline@@</span> | ||||
| 							<button class="btn waves-effect grey darken-2" style="width: 180px" id="util-add" onclick="utlAdd()"> | ||||
| 								<i class="material-icons">add</i> | ||||
| 								@@utlColumn@@ | ||||
| 							</button> | ||||
| 						</div> | ||||
| 						<!-- Dropdown Structure --> | ||||
| 						<ul id="hisdropdown" class="dropdown-content"> | ||||
| 							<li class="anc-link only-his-data" go="#his-list"> | ||||
| 								<a href="#" title="@@list@@"> <i class="material-icons">list</i>@@list@@ </a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-blocking-list"> | ||||
| 								<a href="#" title="@@blocks@@"><i class="material-icons">block</i>@@blocks@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-muting-list"> | ||||
| 								<a href="#" title="@@mute@@"><i class="material-icons">voice_over_off</i>@@mute@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-domain-list"> | ||||
| 								<a href="#" title="@@domainBlock@@"><i class="material-icons">cancel_schedule_send</i>@@domainBlock@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-prof-list"> | ||||
| 								<a href="#" title="@@editProf@@"><i class="material-icons">create</i>@@editProf@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-request-list"> | ||||
| 								<a href="#" title="@@followReq@@"><i class="material-icons">how_to_reg</i>@@followReq@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-my-data" go="#his-follow-recom-list"> | ||||
| 								<a href="#" title="@@frc@@"><i class="material-icons">recent_actors</i>@@frc@@</a> | ||||
| 							</li> | ||||
| 							<li class="anc-link only-his-data" go="#his-action"> | ||||
| 								<a href="#" title="@@operateOtherAcct@@"><i class="material-icons">account_box</i>@@operateOtherAcct@@</a> | ||||
| 							</li> | ||||
| 						</ul> | ||||
| 					</div> | ||||
| 					<div id="his-tl" class="his-var-content"> | ||||
| 						<div id="his-tl-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="utlShow('--now','more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-follow-list" class="his-var-content"> | ||||
| 						<div id="his-follow-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="flw('--now','more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-follower-list" class="his-var-content"> | ||||
| 						<div id="his-follower-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="fer('--now','more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-action" class="his-var-content"> | ||||
| 						@@useOtherAcct1@@@@revoverJP@@@@follow@@(@@warnUseOtherAcct@@)<br /> | ||||
| 						<div style="max-width: 500px"> | ||||
| 							<select id="user-acct-sel" class="acct-sel"></select> | ||||
| 						</div> | ||||
| 						@@revoverJPde@@ | ||||
| 						<a href="#!" class="waves-effect btn" onclick="follow('selector','selector')">@@follow@@</a><br /> | ||||
| 						@@or@@ | ||||
| 						<br /> | ||||
| 						<a href="#!" class="waves-effect btn" onclick="udgEx('selector', 'selector')">@@openProf@@</a><br /> | ||||
| 					</div> | ||||
| 					<div id="his-list" class="his-var-content"> | ||||
| 						<div id="his-lists-a">@@warnListRegist@@</div> | ||||
|  | ||||
| 						<div id="his-lists-b"></div> | ||||
| 					</div> | ||||
| 					<div id="his-fav-list" class="his-var-content"> | ||||
| 						<div id="his-fav-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="showFav('more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-blocking-list" class="his-var-content"> | ||||
| 						<div id="his-blocking-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="showBlo('more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-muting-list" class="his-var-content"> | ||||
| 						<div id="his-muting-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="showMut('more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-domain-list" class="his-var-content"> | ||||
| 						<div id="his-domain-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="showDom('more')">@@more@@</button>@@blockDomain@@ | ||||
| 						<br /> | ||||
| 						<input type="text" placeholder="example.com" id="domainblock" /> | ||||
| 						<button class="btn waves-effect" onclick="addDomainblock()">@@add@@</button> | ||||
| 						<br /> | ||||
| 					</div> | ||||
| 					<div id="his-prof-list" class="his-var-content"> | ||||
| 						@@name@@ | ||||
| 						<br /> | ||||
| 						<input type="text" placeholder="@@name@@" id="his-name-val" style="max-width: 250px" /> | ||||
| 						<br />@@note@@ | ||||
| 						<br /> | ||||
| 						<div class="input-field col s12"> | ||||
| 							<textarea placeholder="@@note@@" id="his-des-val" class="materialize-textarea"></textarea> | ||||
| 							<label for="his-des-val">@@note@@</label> | ||||
| 						</div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="profedit()">@@change@@</button> | ||||
| 						<br />@@editProfImg@@: | ||||
| 						<span id="prof-change"> | ||||
| 							<input type="file" onchange="imgChange(this,'avatar')" /> | ||||
| 						</span> | ||||
| 						<br />@@editHeader@@: | ||||
| 						<span id="header-change"> | ||||
| 							<input type="file" onchange="imgChange(this,'header')" /> | ||||
| 						</span> | ||||
| 					</div> | ||||
| 					<div id="his-request-list" class="his-var-content"> | ||||
| 						<div id="his-request-list-contents" class="cont-series"></div> | ||||
| 						<button class="btn waves-effect" style="width: 100%; padding: 0" onclick="showReq('more')">@@more@@</button> | ||||
| 					</div> | ||||
| 					<div id="his-follow-recom-list" class="his-var-content"> | ||||
| 						<div id="his-follow-recom-contents" class="cont-series"></div> | ||||
| 					</div> | ||||
| 					<div id="his-float-blocked"> | ||||
| 						<div>@@blocked@@</div> | ||||
| 					</div> | ||||
| 				</div> | ||||
| 			</div> | ||||
| 		</div> | ||||
| 	</div> | ||||
| 	<div class="modal-footer"> | ||||
| 		<button class="modal-action waves-effect waves-green btn-flat" id="his-history-btn" onclick="historyShow()">@@historyBack@@</button> | ||||
| 		<a href="#!" class="modal-action waves-effect waves-green btn-flat" onclick="hisclose()">@@close@@</a> | ||||
| 	</div> | ||||
| </div> | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Отваряне в браузъра", | ||||
|     "screenshot": "Направете снимка на екрана", | ||||
|     "copyURL": "Копирай URL адреса на този тоот", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Закрепи", | ||||
|     "toots": "Тоот", | ||||
|     "follow": "Следвам", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "Намерена е грешка", | ||||
|     "show": "Покажи", | ||||
|     "directory": "Директория", | ||||
|     "discover": "Discover", | ||||
|     "active": "Наскоро активен", | ||||
|     "newcomer": "Новодошли", | ||||
|     "local_only": "Само местно", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "Вграденият HTML е изрязан.", | ||||
|     "lang_details_url": "URL адресът на този toot е изрязан.", | ||||
|     "lang_details_txt": "Съдържанието на този toot е изрязано.", | ||||
|     "lang_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Няма данни", | ||||
|     "lang_filter_errordegree": "Моля, проверете контекстта", | ||||
|     "lang_list_nodata": "Няма данни", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "Относно тази тема", | ||||
|   "customImport": "Импортиране на персонализирани теми", | ||||
|   "delete": "Изтрий", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Предпочитания за времевата линия", | ||||
|   "timemode": "Времеви формат", | ||||
|   "relativetime": "Относителен формат: „преди 1 минута“, „преди 3 дни“", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Звук (Отговор)", | ||||
|   "favSound": "Звук(Фаворит)", | ||||
|   "btSound": "Звук(Подсилване)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Otevřít v prohlížeči", | ||||
|     "screenshot": "Vytvořit snímek obrazovky", | ||||
|     "copyURL": "Kopírovat URL tohoto tootu", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Vložit", | ||||
|     "toots": "Tooty", | ||||
|     "follow": "Sledovat", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "HTML pro vložení je zkopírován.", | ||||
|     "lang_details_url": "URL adresa tohoto tootu je zkopírována.", | ||||
|     "lang_details_txt": "Obsah tohoto tootu je zkopírován.", | ||||
|     "lang_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Žádná data", | ||||
|     "lang_filter_errordegree": "Prosím zkontrolujte kontext", | ||||
|     "lang_list_nodata": "Žádná data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Časový formát", | ||||
|   "relativetime": "Relativní formát: „před 1 minutou“, „před 3 dny“", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| { | ||||
|     "draghere": "Zum Hochladen hier her ziehen", | ||||
|     "nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet", | ||||
|     "reOnline": "Now we are in the Internet, you should reload...", | ||||
|     "nowOffline": "OFFLINE: Ihr gesamter Beiträge befinden sich in Entwürfen und du solltest nach einer erneuten Internetverbindung neu laden", | ||||
|     "reOnline": "Jetzt haben wir wieder Internet. Du solltest neuladen...", | ||||
|     "close": "Schließen", | ||||
|     "webSrc": "Suche im Internet", | ||||
|     "tsSrc": "Bei Tootsearch suchen", | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Im Browser öffnen", | ||||
|     "screenshot": "Bildschirmfoto aufnehmen", | ||||
|     "copyURL": "URL dieses Tröts kopieren", | ||||
|     "copy": "Kopieren", | ||||
|     "embed": "Einbinden", | ||||
|     "toots": "Tröts", | ||||
|     "follow": "Folgen", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "Ich habe einen Fehler gefunden", | ||||
|     "show": "Zeige", | ||||
|     "directory": "Verzeichnis", | ||||
|     "discover": "Entdecken", | ||||
|     "active": "Kürzlich aktiv", | ||||
|     "newcomer": "Neu eingetroffen", | ||||
|     "local_only": "Nur lokal", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "Eingefügtes HTML wurde entfernt.", | ||||
|     "lang_details_url": "URL dieses Tröts wurde entfernt.", | ||||
|     "lang_details_txt": "Inhalt dieses Tröts wurde entfernt.", | ||||
|     "lang_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Keine Daten", | ||||
|     "lang_filter_errordegree": "Bitte überprüfen Sie den Kontext", | ||||
|     "lang_list_nodata": "Keine Daten", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "Über dieses Design", | ||||
|   "customImport": "Import von eigenen Designs", | ||||
|   "delete": "Löschen", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Verlaufseinstellungen", | ||||
|   "timemode": "Zeitformat", | ||||
|   "relativetime": "Relatives Format:\"vor 1 Minuten\",\"vor 3 Tagen\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Ton bei Antwort", | ||||
|   "favSound": "Ton bei Favorit", | ||||
|   "btSound": "Ton bei Verstärkung", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "crwdns3190:0crwdne3190:0", | ||||
|     "screenshot": "crwdns3192:0crwdne3192:0", | ||||
|     "copyURL": "crwdns3194:0crwdne3194:0", | ||||
|     "copy": "crwdns4586:0crwdne4586:0", | ||||
|     "embed": "crwdns3196:0crwdne3196:0", | ||||
|     "toots": "crwdns3198:0crwdne3198:0", | ||||
|     "follow": "crwdns3200:0crwdne3200:0", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "crwdns4431:0crwdne4431:0", | ||||
|     "show": "crwdns3388:0crwdne3388:0", | ||||
|     "directory": "crwdns3390:0crwdne3390:0", | ||||
|     "discover": "crwdns4590:0crwdne4590:0", | ||||
|     "active": "crwdns3392:0crwdne3392:0", | ||||
|     "newcomer": "crwdns3394:0crwdne3394:0", | ||||
|     "local_only": "crwdns3396:0crwdne3396:0", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "crwdns3584:0crwdne3584:0", | ||||
|     "lang_details_url": "crwdns3586:0crwdne3586:0", | ||||
|     "lang_details_txt": "crwdns3588:0crwdne3588:0", | ||||
|     "lang_details_fetch": "crwdns4588:0crwdne4588:0", | ||||
|     "lang_filter_nodata": "crwdns3590:0crwdne3590:0", | ||||
|     "lang_filter_errordegree": "crwdns3592:0crwdne3592:0", | ||||
|     "lang_list_nodata": "crwdns3594:0crwdne3594:0", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "crwdns3992:0crwdne3992:0", | ||||
|   "customImport": "crwdns3996:0crwdne3996:0", | ||||
|   "delete": "crwdns3998:0crwdne3998:0", | ||||
|   "preview": "crwdns4584:0crwdne4584:0", | ||||
|   "timeline": "crwdns4002:0crwdne4002:0", | ||||
|   "timemode": "crwdns4004:0crwdne4004:0", | ||||
|   "relativetime": "crwdns4006:0crwdne4006:0", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "crwdns4384:0crwdne4384:0", | ||||
|   "moreContextMode": "crwdns4572:0crwdne4572:0", | ||||
|   "moreContextModeWarn": "crwdns4574:0crwdne4574:0", | ||||
|   "smallHeader": "crwdns4582:0crwdne4582:0", | ||||
|   "replySound": "crwdns4088:0crwdne4088:0", | ||||
|   "favSound": "crwdns4090:0crwdne4090:0", | ||||
|   "btSound": "crwdns4092:0crwdne4092:0", | ||||
|   | ||||
| @@ -1,184 +1,187 @@ | ||||
| { | ||||
|     "draghere":"Drag here to upload", | ||||
|     "nowOffline":"OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet", | ||||
|     "reOnline":"Now we are in the Internet, you should reload...", | ||||
|     "close":"Close", | ||||
|     "draghere": "Drag here to upload", | ||||
|     "nowOffline": "OFFLINE: all of your post is in the draft box and you should reload after re-connect to the Internet", | ||||
|     "reOnline": "Now we are in the Internet, you should reload...", | ||||
|     "close": "Close", | ||||
|     "webSrc": "Search on Web", | ||||
|     "tsSrc": "Search on tootsearch", | ||||
|     "showSelectProf":"Show profile of the selecting account", | ||||
|     "closethisbox":"Close this box", | ||||
|     "toot":"Toot", | ||||
|     "post-new":"Post new", | ||||
|     "nsfwDes":"Mark media as sensitive", | ||||
|     "cwDes":"Hide text behind warning", | ||||
|     "selfile":"Attach..", | ||||
|     "insertEmoji":"Emojis", | ||||
|     "schedule":"Scheduled toot", | ||||
|     "postat":"Post at", | ||||
|     "scheduleWarn":"2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", | ||||
|     "clearToot":"Clear toot box", | ||||
|     "replyMode":"Reply", | ||||
|     "no":"No", | ||||
|     "yes":"Yes", | ||||
|     "temp":"Attaching files", | ||||
|     "nothing":"None", | ||||
|     "showSelectProf": "Show profile of the selecting account", | ||||
|     "closethisbox": "Close this box", | ||||
|     "toot": "Toot", | ||||
|     "post-new": "Post new", | ||||
|     "nsfwDes": "Mark media as sensitive", | ||||
|     "cwDes": "Hide text behind warning", | ||||
|     "selfile": "Attach..", | ||||
|     "insertEmoji": "Emojis", | ||||
|     "schedule": "Scheduled toot", | ||||
|     "postat": "Post at", | ||||
|     "scheduleWarn": "2.7.0~ Minimum time gap:5min(clock on the server may not be accurate.)", | ||||
|     "clearToot": "Clear toot box", | ||||
|     "replyMode": "Reply", | ||||
|     "no": "No", | ||||
|     "yes": "Yes", | ||||
|     "temp": "Attaching files", | ||||
|     "nothing": "None", | ||||
|     "stamp": "Stamp", | ||||
|     "stampWarn": "Your acct(aa@bb.cc) is printed on the right-bottom of the uploaded image", | ||||
|     "vis":"Adjust status privacy", | ||||
|     "cwtext":"Warning text", | ||||
|     "selectVis":"Adjust status privacy", | ||||
|     "publicJP":"", | ||||
|     "unlistedJP":"", | ||||
|     "privateJP":"", | ||||
|     "localJP":"Local only", | ||||
|     "sectoot":"Secondary Toot", | ||||
|     "directJP":"", | ||||
|     "emojiWarn":"", | ||||
|     "emojiInsertWarn":"Some emojis are not able to be inserted.", | ||||
|     "refreshEmoji":"Refresh emojis list", | ||||
|     "closeThisBox":"Close this box", | ||||
|     "showThisEmoji":" are shown.", | ||||
|     "customEmoji":"Custom emojis", | ||||
|     "peopleEmoji":"Emojis of people", | ||||
|     "natureEmoji":"Emojis of nature", | ||||
|     "foodEmoji":"Emojis of foods", | ||||
|     "activityEmoji":"Emojis of activities", | ||||
|     "placeEmoji":"Emojis of places", | ||||
|     "thingsEmoji":"Emojis of tools", | ||||
|     "symbolEmoji":"Emojis of symbols", | ||||
|     "flagsEmoji":"Emojis of flags", | ||||
|     "vis": "Adjust status privacy", | ||||
|     "cwtext": "Warning text", | ||||
|     "selectVis": "Adjust status privacy", | ||||
|     "publicJP": "", | ||||
|     "unlistedJP": "", | ||||
|     "privateJP": "", | ||||
|     "localJP": "Local only", | ||||
|     "sectoot": "Secondary Toot", | ||||
|     "directJP": "", | ||||
|     "emojiWarn": "", | ||||
|     "emojiInsertWarn": "Some emojis are not able to be inserted.", | ||||
|     "refreshEmoji": "Refresh emojis list", | ||||
|     "closeThisBox": "Close this box", | ||||
|     "showThisEmoji": " are shown.", | ||||
|     "customEmoji": "Custom emojis", | ||||
|     "peopleEmoji": "Emojis of people", | ||||
|     "natureEmoji": "Emojis of nature", | ||||
|     "foodEmoji": "Emojis of foods", | ||||
|     "activityEmoji": "Emojis of activities", | ||||
|     "placeEmoji": "Emojis of places", | ||||
|     "thingsEmoji": "Emojis of tools", | ||||
|     "symbolEmoji": "Emojis of symbols", | ||||
|     "flagsEmoji": "Emojis of flags", | ||||
|     "draft": "Draft", | ||||
|     "poll":"Poll", | ||||
|     "pollDdisabled":"Polls: Disabled", | ||||
|     "pollProvider":"Provider of Poll", | ||||
|     "polluntil":"Hide 'votes' count until people vote it.", | ||||
|     "choice":"Choice", | ||||
|     "pollmulti":"Multiple select", | ||||
|     "expires_in":"Expires in...(sec)", | ||||
|     "contextBefore":"Context before this toot", | ||||
|     "thisToot":"This toot", | ||||
|     "contextAfter":"Context after this toot", | ||||
|     "beforeLTL":"Local TL before this toot", | ||||
|     "beforeUTL":"User TL before this toot", | ||||
|     "afterLTL":"Local TL after this toot)", | ||||
|     "afterUTL":"User TL before this toot", | ||||
|     "afterFTL":"Federated TL after this toot", | ||||
|     "favedPeople":"People who favourited it", | ||||
|     "btedPeople":"People who boosted it", | ||||
|     "useOtherAcct1":"Use other account", | ||||
|     "useOtherAcct2":":unfav and unBT are disabled.", | ||||
|     "poll": "Poll", | ||||
|     "pollDdisabled": "Polls: Disabled", | ||||
|     "pollProvider": "Provider of Poll", | ||||
|     "polluntil": "Hide 'votes' count until people vote it.", | ||||
|     "choice": "Choice", | ||||
|     "pollmulti": "Multiple select", | ||||
|     "expires_in": "Expires in...(sec)", | ||||
|     "contextBefore": "Context before this toot", | ||||
|     "thisToot": "This toot", | ||||
|     "contextAfter": "Context after this toot", | ||||
|     "beforeLTL": "Local TL before this toot", | ||||
|     "beforeUTL": "User TL before this toot", | ||||
|     "afterLTL": "Local TL after this toot)", | ||||
|     "afterUTL": "User TL before this toot", | ||||
|     "afterFTL": "Federated TL after this toot", | ||||
|     "favedPeople": "People who favourited it", | ||||
|     "btedPeople": "People who boosted it", | ||||
|     "useOtherAcct1": "Use other account", | ||||
|     "useOtherAcct2": ":unfav and unBT are disabled.", | ||||
|     "btWithVis": "Boost with visibility", | ||||
|     "reply":"Reply", | ||||
|     "bt":"Boost", | ||||
|     "favRegist":"Favourite", | ||||
|     "openBrowser":"Open in browser", | ||||
|     "screenshot":"Take a screenshot", | ||||
|     "copyURL":"Copy the URL", | ||||
|     "copy":"Copy", | ||||
|     "embed":"Embed", | ||||
|     "toots":"Toots", | ||||
|     "follow":"Follow", | ||||
|     "follower":"Follower", | ||||
|     "utlColumn":"Show as a column", | ||||
|     "timeline":"Timeline", | ||||
|     "operateOtherAcct":"Cross-account", | ||||
|     "list":"List", | ||||
|     "makeNew":"Save", | ||||
|     "blocks":"Blocks", | ||||
|     "mutes":"Mutes", | ||||
|     "block":"Block", | ||||
|     "mute":"Mute", | ||||
|     "domainBlock":"Domain block", | ||||
|     "editProf":"Edit profile", | ||||
|     "change":"Save", | ||||
|     "followReq":"Follow requests", | ||||
|     "likeHimOrHer":"Resembling", | ||||
|     "endorse":"Feature on profile", | ||||
|     "openinbrowser":"Open in browser", | ||||
|     "mainacct":"Set it an main account", | ||||
|     "frc":"Suggest", | ||||
|     "more":"More", | ||||
|     "revoverJP":" to ", | ||||
|     "warnUseOtherAcct":"(Unable to unfollow)", | ||||
|     "revoverJPde":"", | ||||
|     "or":"or", | ||||
|     "openProf":"Show profile", | ||||
|     "warnListRegist":"Follow to add this user to lists.", | ||||
|     "blockDomain":"Add blocking domain", | ||||
|     "name":"Display name", | ||||
|     "note":"Note", | ||||
|     "editProfImg":"Change avataor", | ||||
|     "editHeader":"Change header image", | ||||
|     "blocked":"You are blocked. Why?", | ||||
|     "likeUserDes":"Get people resembling this user.", | ||||
|     "get":"Get", | ||||
|     "historyBack":"Back", | ||||
|     "empUser":"Emphasize this user", | ||||
|     "supportme":"Support TheDesk!", | ||||
|     "TheDeskDes":"TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!", | ||||
|     "PatreonSupport":"Support on Patreon", | ||||
|     "PixivSupport":"Support on Pixiv FANBOX", | ||||
|     "AWLSupport":"Amazon Wish List", | ||||
|     "SendAmazonGift1":"Give me Amazon Gift Card:", | ||||
|     "SendAmazonGift2":"", | ||||
|     "monthly":"Monthly", | ||||
|     "once":"Once", | ||||
|     "local":"Local", | ||||
|     "localMedia":"Local(Media)", | ||||
|     "home":"Home", | ||||
|     "fed":"Federated", | ||||
|     "fedMedia":"Federated(Media)", | ||||
|     "dm":"Direct Message", | ||||
|     "integratedTLDes":"Integrated(Local/Home)", | ||||
|     "localPlusDes":"LTL+Reply+BT", | ||||
|     "notf":"Notifications", | ||||
|     "reply": "Reply", | ||||
|     "bt": "Boost", | ||||
|     "favRegist": "Favourite", | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
|     "follower": "Follower", | ||||
|     "utlColumn": "Show as a column", | ||||
|     "timeline": "Timeline", | ||||
|     "operateOtherAcct": "Cross-account", | ||||
|     "list": "List", | ||||
|     "makeNew": "Save", | ||||
|     "blocks": "Blocks", | ||||
|     "mutes": "Mutes", | ||||
|     "notfMute": "Mute their notifications too", | ||||
|     "zeroSetToInfinity": "Mute duration: 0 min to set Infinity", | ||||
|     "block": "Block", | ||||
|     "mute": "Mute", | ||||
|     "domainBlock": "Domain block", | ||||
|     "editProf": "Edit profile", | ||||
|     "change": "Save", | ||||
|     "followReq": "Follow requests", | ||||
|     "likeHimOrHer": "Resembling", | ||||
|     "endorse": "Feature on profile", | ||||
|     "openinbrowser": "Open in browser", | ||||
|     "mainacct": "Set it an main account", | ||||
|     "frc": "Suggest", | ||||
|     "more": "More", | ||||
|     "revoverJP": " to ", | ||||
|     "warnUseOtherAcct": "(Unable to unfollow)", | ||||
|     "revoverJPde": "", | ||||
|     "or": "or", | ||||
|     "openProf": "Show profile", | ||||
|     "warnListRegist": "Follow to add this user to lists.", | ||||
|     "blockDomain": "Add blocking domain", | ||||
|     "name": "Display name", | ||||
|     "note": "Note", | ||||
|     "editProfImg": "Change avataor", | ||||
|     "editHeader": "Change header image", | ||||
|     "blocked": "You are blocked. Why?", | ||||
|     "likeUserDes": "Get people resembling this user.", | ||||
|     "get": "Get", | ||||
|     "historyBack": "Back", | ||||
|     "empUser": "Emphasize this user", | ||||
|     "supportme": "Support TheDesk!", | ||||
|     "TheDeskDes": "TheDesk has no ad, you need no charge to unlock premium features. We need your friendly support!", | ||||
|     "PatreonSupport": "Support on Patreon", | ||||
|     "PixivSupport": "Support on Pixiv FANBOX", | ||||
|     "AWLSupport": "Amazon Wish List", | ||||
|     "SendAmazonGift1": "Give me Amazon Gift Card:", | ||||
|     "SendAmazonGift2": "", | ||||
|     "monthly": "Monthly", | ||||
|     "once": "Once", | ||||
|     "local": "Local", | ||||
|     "localMedia": "Local(Media)", | ||||
|     "home": "Home", | ||||
|     "fed": "Federated", | ||||
|     "fedMedia": "Federated(Media)", | ||||
|     "dm": "Direct Message", | ||||
|     "integratedTLDes": "Integrated(Local/Home)", | ||||
|     "localPlusDes": "LTL+Reply+BT", | ||||
|     "notf": "Notifications", | ||||
|     "bookmark": "Bookmarks", | ||||
|     "showThisTL":"Show this TL:", | ||||
|     "webviewWarn":"TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).", | ||||
|     "add":"Add", | ||||
|     "search":"Search", | ||||
|     "sortSet":"Sort", | ||||
|     "selectAcct":"Account(Scroll to show all)", | ||||
|     "listLocale":"List", | ||||
|     "filterWord":"Filtering words", | ||||
|     "degree":"Filter contexts", | ||||
|     "conver":"Conversations", | ||||
|     "prof":"Profiles", | ||||
|     "option":"Options", | ||||
|     "matchWord":"Whole word", | ||||
|     "warnMatchWord":"Nice for Latin language", | ||||
|     "except":"Drop instead of hide", | ||||
|     "exceptWorn":"Filtered toots will disappear irreversibly, even if filter is later removed", | ||||
|     "avalableBefore":"Expire after", | ||||
|     "warnAvBefore":"Unset or \"0\" means \"Never\"", | ||||
|     "warnAvBefore2":"This value may contain some error", | ||||
|     "unlimited":"Never", | ||||
|     "days":"day(s)", | ||||
|     "hours":"hour(s)", | ||||
|     "mins":"minute(s)", | ||||
|     "secs":"second(s)", | ||||
|     "warnOnIntegratedTL":"Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.", | ||||
|     "helloTheDesk":"Internal error: please clear all data(at setting page) <b>All data will be deleted.</b>", | ||||
|     "addColumn":"Add a column", | ||||
|     "sortColumns":"Sort", | ||||
|     "acctMan":"Account Manager", | ||||
|     "filter":"Filter", | ||||
|     "setting":"Preferences", | ||||
|     "reverse":"Toot button layout reverse", | ||||
|     "f5":"Reload TL", | ||||
|     "nanoDes":"The smallest Mastodon,", | ||||
|     "verTips":"Version", | ||||
|     "clockTips":"Clock", | ||||
|     "ramTips":"RAM status", | ||||
|     "changeTips":"Change Tips", | ||||
|     "helpAndLogs":"Help & Log", | ||||
|     "help":"Help", | ||||
|     "contactwithlog":"If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.", | ||||
|     "about":"About TheDesk", | ||||
|     "hereAddColumns":"<- Add TL", | ||||
|     "showThisTL": "Show this TL:", | ||||
|     "webviewWarn": "TweetDeck with customed TJDeck(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>).", | ||||
|     "add": "Add", | ||||
|     "search": "Search", | ||||
|     "sortSet": "Sort", | ||||
|     "selectAcct": "Account(Scroll to show all)", | ||||
|     "listLocale": "List", | ||||
|     "filterWord": "Filtering words", | ||||
|     "degree": "Filter contexts", | ||||
|     "conver": "Conversations", | ||||
|     "prof": "Profiles", | ||||
|     "option": "Options", | ||||
|     "matchWord": "Whole word", | ||||
|     "warnMatchWord": "Nice for Latin language", | ||||
|     "except": "Drop instead of hide", | ||||
|     "exceptWorn": "Filtered toots will disappear irreversibly, even if filter is later removed", | ||||
|     "avalableBefore": "Expire after", | ||||
|     "warnAvBefore": "Unset or \"0\" means \"Never\"", | ||||
|     "warnAvBefore2": "This value may contain some error", | ||||
|     "unlimited": "Never", | ||||
|     "days": "day(s)", | ||||
|     "hours": "hour(s)", | ||||
|     "mins": "minute(s)", | ||||
|     "secs": "second(s)", | ||||
|     "warnOnIntegratedTL": "Integrated TL/Plus TL will hide both Home-filtering words and Local-filtering words.", | ||||
|     "helloTheDesk": "Internal error: please clear all data(at setting page) <b>All data will be deleted.</b>", | ||||
|     "addColumn": "Add a column", | ||||
|     "sortColumns": "Sort", | ||||
|     "acctMan": "Account Manager", | ||||
|     "filter": "Filter", | ||||
|     "setting": "Preferences", | ||||
|     "reverse": "Toot button layout reverse", | ||||
|     "f5": "Reload TL", | ||||
|     "nanoDes": "The smallest Mastodon,", | ||||
|     "verTips": "Version", | ||||
|     "clockTips": "Clock", | ||||
|     "ramTips": "RAM status", | ||||
|     "changeTips": "Change Tips", | ||||
|     "helpAndLogs": "Help & Log", | ||||
|     "help": "Help", | ||||
|     "contactwithlog": "If you tell me bugs(not working or something) with this log, I can detect what is wrong more easily.", | ||||
|     "about": "About TheDesk", | ||||
|     "hereAddColumns": "<- Add TL", | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Abrir en navegador web", | ||||
|     "screenshot": "Tomar captura de pantalla", | ||||
|     "copyURL": "Copiar dirección web de este toot", | ||||
|     "copy": "Copiar", | ||||
|     "embed": "Insertar", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Seguir", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "Encontré un error", | ||||
|     "show": "Mostrar", | ||||
|     "directory": "Directorio", | ||||
|     "discover": "Descubrí", | ||||
|     "active": "Recientemente activo", | ||||
|     "newcomer": "Recién llegados", | ||||
|     "local_only": "Sólo local", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "El código HTML de inserción se copió al portapapeles.", | ||||
|     "lang_details_url": "La dirección web de este toot se copió al portapapeles.", | ||||
|     "lang_details_txt": "El contenido de este toot se copió al portapapeles.", | ||||
|     "lang_details_fetch": "Obteniendo datos del mensaje…", | ||||
|     "lang_filter_nodata": "Sin datos", | ||||
|     "lang_filter_errordegree": "Por favor, comprobá un contexto", | ||||
|     "lang_list_nodata": "Sin datos", | ||||
|   | ||||
| @@ -9,7 +9,7 @@ | ||||
|   "default": "Predeterminado", | ||||
|   "change": "Cambiar", | ||||
|   "select": "Seleccionar", | ||||
|   "exec": "Exec", | ||||
|   "exec": "Ejec", | ||||
|   "env": "Configuración del sistema", | ||||
|   "setlang": "Idiomas", | ||||
|   "backup": "Importación y exportación de la configuración", | ||||
| @@ -18,8 +18,8 @@ | ||||
|   "export": "Exportar", | ||||
|   "hardwareAcceleration": "Deshabilitar la aceleración por hardware", | ||||
|   "hardwareAccelerationWarn": "Inicio automático", | ||||
|   "webview": "Webview Integration", | ||||
|   "webviewWarn": "To use TweetDeck Integration, please turn on. You should understand it may lessen security level.", | ||||
|   "webview": "Integración de Webview", | ||||
|   "webviewWarn": "Para usar Integración de TweetDeck, por favor activalo. Tené en cuenta que puede reducir el nivel de seguridad.", | ||||
|   "theme": "Temas", | ||||
|   "popup": "Ventana emergente de notificaciones (en Windows)", | ||||
|   "popupwarn": "Establecer \"0\" para ocultar", | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "Acerca de este tema", | ||||
|   "customImport": "Importación de temas personalizados", | ||||
|   "delete": "Eliminar", | ||||
|   "preview": "Previsualización", | ||||
|   "timeline": "Configuración de la línea temporal", | ||||
|   "timemode": "Formato del tiempo", | ||||
|   "relativetime": "Formato relativo: \"hace 1 minuto\", \"hace 3 días\"", | ||||
| @@ -117,8 +118,9 @@ | ||||
|   "markerswarn": "Mastodon 3.0~. Compartido en interface web y clientes de terceros soportados.", | ||||
|   "remote_img": "Obtener imágenes del servidor remoto", | ||||
|   "remote_imgWarn": "Todas las previsualizaciones se obtienen de tu servidor de caché conectado.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "moreContextMode": "Herramienta de contexto", | ||||
|   "moreContextModeWarn": "En detalle de la modal de toot, mostrar toots antes / después del toot en LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimizar cabeceras de columna", | ||||
|   "replySound": "Sonido (respuesta)", | ||||
|   "favSound": "Sonido (marcado como favorito)", | ||||
|   "btSound": "Sonido (retoot)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Sin datos", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "Sin datos", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Ouvrir dans un navigateur", | ||||
|     "screenshot": "Prendre une capture d'écran", | ||||
|     "copyURL": "Copier l'URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embarquer", | ||||
|     "toots": "Pouets", | ||||
|     "follow": "Suivre", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "J'ai trouvé un bug", | ||||
|     "show": "Afficher", | ||||
|     "directory": "Répertoire", | ||||
|     "discover": "Discover", | ||||
|     "active": "Actif récemment", | ||||
|     "newcomer": "Nouveautés", | ||||
|     "local_only": "Local uniquement", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "Le code HTML intégré est tronqué.", | ||||
|     "lang_details_url": "L'URL de ce pouet est tronqué.", | ||||
|     "lang_details_txt": "Le contenu de ce pouet est tronqué.", | ||||
|     "lang_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Aucune donnée", | ||||
|     "lang_filter_errordegree": "Veuillez vérifier le contexte", | ||||
|     "lang_list_nodata": "Aucune donnée", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "À propos de ce thème", | ||||
|   "customImport": "Importer des thèmes personnalisés", | ||||
|   "delete": "Supprimer", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Préférence de la TimeLine", | ||||
|   "timemode": "Format de l’heure", | ||||
|   "relativetime": "Format relatif:\"Il y a 1 minutes\",\"3 jours\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "Toutes les prévisualisations sont obtenues depuis le serveur où vous êtes connecté.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Son (Réponse)", | ||||
|   "favSound": "Son (Fav)", | ||||
|   "btSound": "Son (Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Open in browser", | ||||
|     "screenshot": "Take a screenshot", | ||||
|     "copyURL": "Copy the URL", | ||||
|     "copy": "Copy", | ||||
|     "embed": "Embed", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Follow", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "I found a bug", | ||||
|     "show": "Show", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recently active", | ||||
|     "newcomer": "New arrivals", | ||||
|     "local_only": "Local only", | ||||
|   | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "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_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "No data", | ||||
|     "lang_filter_errordegree": "Please check a context", | ||||
|     "lang_list_nodata": "No data", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "About this theme", | ||||
|   "customImport": "Import of custom themes", | ||||
|   "delete": "Delete", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Timeline Preferences", | ||||
|   "timemode": "Time format", | ||||
|   "relativetime": "Relative format:\"1 minutes ago\",\"3 days ago\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "All previews are got from your loginned cache server.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Sound(Reply)", | ||||
|   "favSound": "Sound(Fav)", | ||||
|   "btSound": "Sound(Boost)", | ||||
|   | ||||
| @@ -47,7 +47,7 @@ | ||||
|     "thingsEmoji": "Emoji di strumenti", | ||||
|     "symbolEmoji": "Emoji di simboli", | ||||
|     "flagsEmoji": "Emoji delle bandiere", | ||||
|     "draft": "Draft", | ||||
|     "draft": "Bozza", | ||||
|     "poll": "Sondaggio", | ||||
|     "pollDdisabled": "Sondaggi: Disabilitato", | ||||
|     "pollProvider": "Fornitore del sondaggio", | ||||
| @@ -74,6 +74,7 @@ | ||||
|     "openBrowser": "Apri nel browser", | ||||
|     "screenshot": "Cattura una schermata", | ||||
|     "copyURL": "Copia l'URL", | ||||
|     "copy": "Copia", | ||||
|     "embed": "Incorpora", | ||||
|     "toots": "Toots", | ||||
|     "follow": "Segui", | ||||
| @@ -178,6 +179,7 @@ | ||||
|     "foundBug": "Ho trovato un bug", | ||||
|     "show": "Mostra", | ||||
|     "directory": "Directory", | ||||
|     "discover": "Discover", | ||||
|     "active": "Recentemente attivo", | ||||
|     "newcomer": "Nuovi arrivi", | ||||
|     "local_only": "Solo locale", | ||||
|   | ||||
| @@ -49,7 +49,7 @@ | ||||
|     "lang_manager_godev": "Apri DevCenter di Misskey. Mostriamo anche un documento ufficiale da riferire.", | ||||
|     "lang_manager_logout": "Esci", | ||||
|     "lang_manager_maxChars": "Max caratteri dei toot", | ||||
|     "lang_manager_refreshAt": "Login with this domain", | ||||
|     "lang_manager_refreshAt": "Accedi con questo dominio", | ||||
|     "lang_bbmd_misskey": "TheDesk considera \"@\" come risposta, ma mettere altri parametri. Non elencato su Mastodon significa Home su Misskey.", | ||||
|     "lang_emoji_get": "Ottieni emoji", | ||||
|     "lang_emoji_custom": "Emoji personalizzate", | ||||
| @@ -89,7 +89,7 @@ | ||||
|     "lang_status_endorse": "Caratteristica sul profilo", | ||||
|     "lang_status_followers": "Follower", | ||||
|     "lang_status_active": "Ultimo stato", | ||||
|     "lang_secure_draft": "Add to draft", | ||||
|     "lang_secure_draft": "Aggiungi alla bozza", | ||||
|     "lang_secure_useThis": "Usa questo", | ||||
|     "lang_secure_deleteThis": "Elimina questo", | ||||
|     "lang_suggest_nodata": "Si prega di ottenere l'elenco delle emoji per mostrare il suggerimento.", | ||||
| @@ -103,6 +103,7 @@ | ||||
|     "lang_details_embed": "HTML incorporato è sotto la lente.", | ||||
|     "lang_details_url": "L'URL di questo toot è sotto la lente.", | ||||
|     "lang_details_txt": "Il contenuto di questo toot è ritagliato.", | ||||
|     "lang_details_fetch": "Fetcging toot data...", | ||||
|     "lang_filter_nodata": "Nessun dato", | ||||
|     "lang_filter_errordegree": "Si prega di controllare un contesto", | ||||
|     "lang_list_nodata": "Nessun dato", | ||||
| @@ -154,7 +155,7 @@ | ||||
|     "lang_layout_unread": "Non Letta", | ||||
|     "lang_layout_tagManager": "Gestore timeline tag", | ||||
|     "lang_layout_announ": "Annuncio: il contatore è il numero dei tuoi annunci non letti. Se non mostrato, significa che gli annunci sono tutti contrassegnati come letti.", | ||||
|     "lang_layout_resetWidth": "Stretch this column", | ||||
|     "lang_layout_resetWidth": "Allunga questa colonna", | ||||
|     "lang_sort_gothis": "Vai a questa colonna", | ||||
|     "lang_sort_remthis": "Elimina questa colonna", | ||||
|     "lang_spotify_img": "Allega una copertina album", | ||||
|   | ||||
| @@ -72,6 +72,7 @@ | ||||
|   "desc": "Informazioni su questo tema", | ||||
|   "customImport": "Importa temi personalizzati", | ||||
|   "delete": "Elimina", | ||||
|   "preview": "Preview", | ||||
|   "timeline": "Preferenze Della Timeline", | ||||
|   "timemode": "Formato orario", | ||||
|   "relativetime": "Formato relativo:\"1 minuti fa\",\"3 giorni fa\"", | ||||
| @@ -119,6 +120,7 @@ | ||||
|   "remote_imgWarn": "Tutte le anteprime sono ottenute dal server cache loginato.", | ||||
|   "moreContextMode": "Context Tool", | ||||
|   "moreContextModeWarn": "On detail of the toot modal, show toots before / after the toot on LTL, FTL, UTL", | ||||
|   "smallHeader": "Minimize column headers", | ||||
|   "replySound": "Suono(Rispondi)", | ||||
|   "favSound": "Suono (Fav)", | ||||
|   "btSound": "Suono (Boost)", | ||||
|   | ||||
| @@ -1,182 +1,185 @@ | ||||
| { | ||||
|     "draghere":"ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)", | ||||
|     "nowOffline":"オフラインやで。投稿は全部下書きに行くし、もしオンラインなったら再読み込みしたらええで。", | ||||
|     "reOnline":"オンライン戻ったから再読み込みしてな。", | ||||
|     "close":"Close", | ||||
|     "draghere": "ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)", | ||||
|     "nowOffline": "オフラインやで。投稿は全部下書きに行くし、もしオンラインなったら再読み込みしたらええで。", | ||||
|     "reOnline": "オンライン戻ったから再読み込みしてな。", | ||||
|     "close": "Close", | ||||
|     "webSrc": "Webでさがす", | ||||
|     "tsSrc": "tootsearchでさがす", | ||||
|     "showSelectProf":"このアカウントのプロフィール出す", | ||||
|     "closethisbox":"このボックスなおす", | ||||
|     "post-new":"投稿", | ||||
|     "toot":"トゥート", | ||||
|     "nsfwDes":"画像を見たらあかんやつにする", | ||||
|     "cwDes":"コンテンツワーニング(ほんまに見るんか?って聞く)", | ||||
|     "selfile":"ファイル選ぶ", | ||||
|     "insertEmoji":"絵文字入れる", | ||||
|     "schedule":"時間指定投稿", | ||||
|     "postat":"時間指定投稿", | ||||
|     "scheduleWarn":"2.7.0~ 5分は待ってな。サーバーの時計おうてるかは知らんで。", | ||||
|     "clearToot":"トゥートボックスのクリア", | ||||
|     "replyMode":"返信モード", | ||||
|     "no":"いいえ", | ||||
|     "yes":"はい", | ||||
|     "temp":"添付ファイル", | ||||
|     "nothing":"なし", | ||||
|     "vis":"公開範囲", | ||||
|     "cwtext":"警告文", | ||||
|     "selectVis":"公開範囲指定", | ||||
|     "publicJP":"公開", | ||||
|     "unlistedJP":"未収載", | ||||
|     "privateJP":"非公開", | ||||
|     "localJP":"ローカル限定", | ||||
|     "directJP":"ダイレクト", | ||||
|     "sectoot":"こっちでもトゥート", | ||||
|     "emojiWarn":"サーバーちゃうかったら絵文字もちゃうで。", | ||||
|     "emojiInsertWarn":"入力できん絵文字もあるけどしゃーない。", | ||||
|     "refreshEmoji":"絵文字更新", | ||||
|     "closeThisBox":"ボックスなおす", | ||||
|     "showThisEmoji":"一覧を表示中", | ||||
|     "customEmoji":"カスタム絵文字", | ||||
|     "peopleEmoji":"ひと", | ||||
|     "natureEmoji":"自然", | ||||
|     "foodEmoji":"食べ物", | ||||
|     "activityEmoji":"活動", | ||||
|     "placeEmoji":"場所", | ||||
|     "thingsEmoji":"もの", | ||||
|     "symbolEmoji":"記号", | ||||
|     "flagsEmoji":"国旗", | ||||
|     "showSelectProf": "このアカウントのプロフィール出す", | ||||
|     "closethisbox": "このボックスなおす", | ||||
|     "post-new": "投稿", | ||||
|     "toot": "トゥート", | ||||
|     "nsfwDes": "画像を見たらあかんやつにする", | ||||
|     "cwDes": "コンテンツワーニング(ほんまに見るんか?って聞く)", | ||||
|     "selfile": "ファイル選ぶ", | ||||
|     "insertEmoji": "絵文字入れる", | ||||
|     "schedule": "時間指定投稿", | ||||
|     "postat": "時間指定投稿", | ||||
|     "scheduleWarn": "2.7.0~ 5分は待ってな。サーバーの時計おうてるかは知らんで。", | ||||
|     "clearToot": "トゥートボックスのクリア", | ||||
|     "replyMode": "返信モード", | ||||
|     "no": "いいえ", | ||||
|     "yes": "はい", | ||||
|     "temp": "添付ファイル", | ||||
|     "nothing": "なし", | ||||
|     "vis": "公開範囲", | ||||
|     "cwtext": "警告文", | ||||
|     "selectVis": "公開範囲指定", | ||||
|     "publicJP": "公開", | ||||
|     "unlistedJP": "未収載", | ||||
|     "privateJP": "非公開", | ||||
|     "localJP": "ローカル限定", | ||||
|     "directJP": "ダイレクト", | ||||
|     "sectoot": "こっちでもトゥート", | ||||
|     "emojiWarn": "サーバーちゃうかったら絵文字もちゃうで。", | ||||
|     "emojiInsertWarn": "入力できん絵文字もあるけどしゃーない。", | ||||
|     "refreshEmoji": "絵文字更新", | ||||
|     "closeThisBox": "ボックスなおす", | ||||
|     "showThisEmoji": "一覧を表示中", | ||||
|     "customEmoji": "カスタム絵文字", | ||||
|     "peopleEmoji": "ひと", | ||||
|     "natureEmoji": "自然", | ||||
|     "foodEmoji": "食べ物", | ||||
|     "activityEmoji": "活動", | ||||
|     "placeEmoji": "場所", | ||||
|     "thingsEmoji": "もの", | ||||
|     "symbolEmoji": "記号", | ||||
|     "flagsEmoji": "国旗", | ||||
|     "draft": "下書き(タンス)", | ||||
|     "poll":"アンケート", | ||||
|     "pollDdisabled":"アンケート付けへん", | ||||
|     "pollProvider":"アンケートのプロバイダ", | ||||
|     "choice":"選択肢", | ||||
|     "polluntil":"あんたが投票するまで票数教えへん", | ||||
|     "pollmulti":"複数選択を許可", | ||||
|     "expires_in":"有効期限(秒)", | ||||
|     "contextBefore":"これより前の会話", | ||||
|     "thisToot":"対象のトゥート", | ||||
|     "contextAfter":"これより後の会話", | ||||
|     "beforeLTL":"これより前のLocal TL(誰にエアリプしてん)", | ||||
|     "beforeUTL":"これより前のユーザーTL(誰のトゥート言及してんねん)", | ||||
|     "afterLTL":"これより後のLocal TL(誰のトゥート言及してんねん)", | ||||
|     "afterUTL":"これより後のユーザーTL(誰のトゥート言及してんねん)", | ||||
|     "afterFTL":"これより後の連合TL(誰のトゥート言及してんねん)", | ||||
|     "favedPeople":"誰がお気に入りに登録してるんや", | ||||
|     "btedPeople":"誰がお気に入りブーストしたんや", | ||||
|     "useOtherAcct1":"他のアカウント使う", | ||||
|     "useOtherAcct2":"の解除はできひん", | ||||
|     "poll": "アンケート", | ||||
|     "pollDdisabled": "アンケート付けへん", | ||||
|     "pollProvider": "アンケートのプロバイダ", | ||||
|     "choice": "選択肢", | ||||
|     "polluntil": "あんたが投票するまで票数教えへん", | ||||
|     "pollmulti": "複数選択を許可", | ||||
|     "expires_in": "有効期限(秒)", | ||||
|     "contextBefore": "これより前の会話", | ||||
|     "thisToot": "対象のトゥート", | ||||
|     "contextAfter": "これより後の会話", | ||||
|     "beforeLTL": "これより前のLocal TL(誰にエアリプしてん)", | ||||
|     "beforeUTL": "これより前のユーザーTL(誰のトゥート言及してんねん)", | ||||
|     "afterLTL": "これより後のLocal TL(誰のトゥート言及してんねん)", | ||||
|     "afterUTL": "これより後のユーザーTL(誰のトゥート言及してんねん)", | ||||
|     "afterFTL": "これより後の連合TL(誰のトゥート言及してんねん)", | ||||
|     "favedPeople": "誰がお気に入りに登録してるんや", | ||||
|     "btedPeople": "誰がお気に入りブーストしたんや", | ||||
|     "useOtherAcct1": "他のアカウント使う", | ||||
|     "useOtherAcct2": "の解除はできひん", | ||||
|     "btWithVis": "公開範囲も決めてからブースト", | ||||
|     "reply":"返信", | ||||
|     "bt":"ブースト", | ||||
|     "favRegist":"お気に入り", | ||||
|     "openBrowser":"ブラウザで開く", | ||||
|     "screenshot":"スクリーンショット", | ||||
|     "copyURL":"URLをコピー", | ||||
|     "copy":"コピー", | ||||
|     "embed":"埋め込む", | ||||
|     "toots":"トゥート", | ||||
|     "follow":"フォロー", | ||||
|     "follower":"フォロワー", | ||||
|     "utlColumn":"カラムとして追加", | ||||
|     "timeline":"タイムライン", | ||||
|     "operateOtherAcct":"他のアカウント使うて何かする", | ||||
|     "list":"リスト", | ||||
|     "makeNew":"新しいやつ", | ||||
|     "blocks":"ブロック", | ||||
|     "mutes":"ミュート", | ||||
|     "block":"ブロック", | ||||
|     "mute":"ミュート", | ||||
|     "domainBlock":"ドメインブロック", | ||||
|     "editProf":"プロフィールいらう", | ||||
|     "change":"変更", | ||||
|     "followReq":"フォローリクエスト", | ||||
|     "likeHimOrHer":"似とうユーザー", | ||||
|     "frc":"あんたにおすすめ", | ||||
|     "more":"他無いんか?", | ||||
|     "endorse":"紹介したる", | ||||
|     "openinbrowser":"ブラウザで開く", | ||||
|     "mainacct":"メインアカウントに設定", | ||||
|     "revoverJP":"する", | ||||
|     "warnUseOtherAcct":"(解除はでけへん。)", | ||||
|     "revoverJPde":"で", | ||||
|     "or":"それか", | ||||
|     "openProf":"プロフィール出す", | ||||
|     "warnListRegist":"リストに入れたかったらまずフォローせなあかん。", | ||||
|     "blockDomain":"ブロックするドメイン", | ||||
|     "name":"名前", | ||||
|     "note":"自己紹介", | ||||
|     "editProfImg":"アバター変える", | ||||
|     "editHeader":"ヘッダー変える", | ||||
|     "blocked":"なんでか知らんけどブロックされとるわ", | ||||
|     "likeUserDes":"あんたと似とうユーザーを発掘すんで。", | ||||
|     "get":"取得", | ||||
|     "historyBack":"一つ前のユーザーデータ", | ||||
|     "empUser":"ユーザー強調", | ||||
|     "supportme":"支援してくれんか?", | ||||
|     "TheDeskDes":"TheDeskは営利目的ちゃうし、有料機能や広告は一切あらへん。<br>せやけど君らが支援してくれとうからTheDeskは続いてるんや。ほんまありがとうな。", | ||||
|     "PatreonSupport":"Patreonで支援", | ||||
|     "PixivSupport":"Pixiv FANBOXで支援", | ||||
|     "AWLSupport":"Amazonほしいものリスト", | ||||
|     "SendAmazonGift1":"", | ||||
|     "SendAmazonGift2":"にAmazonギフトカードを送る", | ||||
|     "monthly":"月額支援(大歓迎)", | ||||
|     "once":"一度限りの支援(めっちゃ歓迎)", | ||||
|     "local":"ローカル", | ||||
|     "localMedia":"ローカル(メディア)", | ||||
|     "home":"ホーム", | ||||
|     "fed":"連合", | ||||
|     "fedMedia":"連合(メディア)", | ||||
|     "dm":"ダイレクトメッセージ", | ||||
|     "integratedTLDes":"統合(ローカルとホーム)", | ||||
|     "localPlusDes":"統合(LTL+BT+返信)", | ||||
|     "notf":"通知", | ||||
|     "reply": "返信", | ||||
|     "bt": "ブースト", | ||||
|     "favRegist": "お気に入り", | ||||
|     "openBrowser": "ブラウザで開く", | ||||
|     "screenshot": "スクリーンショット", | ||||
|     "copyURL": "URLをコピー", | ||||
|     "copy": "コピー", | ||||
|     "embed": "埋め込む", | ||||
|     "toots": "トゥート", | ||||
|     "follow": "フォロー", | ||||
|     "follower": "フォロワー", | ||||
|     "utlColumn": "カラムとして追加", | ||||
|     "timeline": "タイムライン", | ||||
|     "operateOtherAcct": "他のアカウント使うて何かする", | ||||
|     "list": "リスト", | ||||
|     "makeNew": "新しいやつ", | ||||
|     "blocks": "ブロック", | ||||
|     "mutes": "ミュート", | ||||
|     "notfMute": "通知もミュート", | ||||
|     "zeroSetToInfinity": "ミュート期間: 0分にしたらずっとミュートするで。", | ||||
|     "block": "ブロック", | ||||
|     "mute": "ミュート", | ||||
|     "domainBlock": "ドメインブロック", | ||||
|     "editProf": "プロフィールいらう", | ||||
|     "change": "変更", | ||||
|     "followReq": "フォローリクエスト", | ||||
|     "likeHimOrHer": "似とうユーザー", | ||||
|     "frc": "あんたにおすすめ", | ||||
|     "more": "他無いんか?", | ||||
|     "endorse": "紹介したる", | ||||
|     "openinbrowser": "ブラウザで開く", | ||||
|     "mainacct": "メインアカウントに設定", | ||||
|     "revoverJP": "する", | ||||
|     "warnUseOtherAcct": "(解除はでけへん。)", | ||||
|     "revoverJPde": "で", | ||||
|     "or": "それか", | ||||
|     "openProf": "プロフィール出す", | ||||
|     "warnListRegist": "リストに入れたかったらまずフォローせなあかん。", | ||||
|     "blockDomain": "ブロックするドメイン", | ||||
|     "name": "名前", | ||||
|     "note": "自己紹介", | ||||
|     "editProfImg": "アバター変える", | ||||
|     "editHeader": "ヘッダー変える", | ||||
|     "blocked": "なんでか知らんけどブロックされとるわ", | ||||
|     "likeUserDes": "あんたと似とうユーザーを発掘すんで。", | ||||
|     "get": "取得", | ||||
|     "historyBack": "一つ前のユーザーデータ", | ||||
|     "empUser": "ユーザー強調", | ||||
|     "supportme": "支援してくれんか?", | ||||
|     "TheDeskDes": "TheDeskは営利目的ちゃうし、有料機能や広告は一切あらへん。<br>せやけど君らが支援してくれとうからTheDeskは続いてるんや。ほんまありがとうな。", | ||||
|     "PatreonSupport": "Patreonで支援", | ||||
|     "PixivSupport": "Pixiv FANBOXで支援", | ||||
|     "AWLSupport": "Amazonほしいものリスト", | ||||
|     "SendAmazonGift1": "", | ||||
|     "SendAmazonGift2": "にAmazonギフトカードを送る", | ||||
|     "monthly": "月額支援(大歓迎)", | ||||
|     "once": "一度限りの支援(めっちゃ歓迎)", | ||||
|     "local": "ローカル", | ||||
|     "localMedia": "ローカル(メディア)", | ||||
|     "home": "ホーム", | ||||
|     "fed": "連合", | ||||
|     "fedMedia": "連合(メディア)", | ||||
|     "dm": "ダイレクトメッセージ", | ||||
|     "integratedTLDes": "統合(ローカルとホーム)", | ||||
|     "localPlusDes": "統合(LTL+BT+返信)", | ||||
|     "notf": "通知", | ||||
|     "bookmark": "ブックマーク", | ||||
|     "showThisTL":"表示するタイムライン", | ||||
|     "webviewWarn":"TweetDeckを出すで。TJDeckをカスタムしたものが読み込まれる(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。", | ||||
|     "add":"追加", | ||||
|     "search":"検索", | ||||
|     "sortSet":"並べ替え設定", | ||||
|     "selectAcct":"選択(スクロールして全選択肢表示)", | ||||
|     "filterWord":"フィルターワード", | ||||
|     "listLocale":"一覧", | ||||
|     "degree":"適応範囲", | ||||
|     "conver":"会話", | ||||
|     "prof":"プロフィール", | ||||
|     "option":"オプション", | ||||
|     "matchWord":"単語マッチ", | ||||
|     "warnMatchWord":"非ラテン系の文字列では「単語マッチ」はせん方がええで。(これはフリかも知れん)", | ||||
|     "except":"除外", | ||||
|     "exceptWorn":"「除外」にしてもうたらマッチしたトゥートはフィルター解除しても二度と表示されへん。", | ||||
|     "avalableBefore":"有効期限(あと)", | ||||
|     "warnAvBefore":"未指定(または0分)で「無期限」や", | ||||
|     "warnAvBefore2":"この数字はそんなに正確ちゃうで", | ||||
|     "unlimited":"無期限", | ||||
|     "days":"日", | ||||
|     "hours":"時間", | ||||
|     "mins":"分", | ||||
|     "secs":"秒", | ||||
|     "warnOnIntegratedTL":"Integrated TL/Plus TLは、公開/ホームのフィルターワードをどっちも合わせて処理するで", | ||||
|     "helloTheDesk":"やってもうた…再読込して治らんかったら初期化(全データ削除)してな…(予め設定をエクスポートしとくんやで)", | ||||
|     "addColumn":"カラム追加", | ||||
|     "sortColumns":"カラム一覧/並べ替え", | ||||
|     "acctMan":"アカウントマネージャー", | ||||
|     "filter":"フィルター", | ||||
|     "setting":"設定", | ||||
|     "reverse":"トゥートボタンの左右入れ替え", | ||||
|     "f5":"TL再読込", | ||||
|     "nanoDes":"めっちゃ小さいマストドン。", | ||||
|     "verTips":"バージョン", | ||||
|     "clockTips":"時計", | ||||
|     "ramTips":"システムメモリ容量", | ||||
|     "changeTips":"Tips変更", | ||||
|     "helpAndLogs":"ヘルプとログ", | ||||
|     "help":"ヘルプ", | ||||
|     "contactwithlog":"なんか知らんけど動かんとかそういうのを開発者のお兄さんお姉さんに言うときは下のログのそこらへんの時間に起きたなぁってのを拾って連絡するとなんかの助けになるかも知れん。ついでやけどこのウィンドウ全体を横に引き伸ばしたらいい感じに見れるで", | ||||
|     "about":"このソフトについて", | ||||
|     "hereAddColumns":"←ここからTL追加", | ||||
|     "showThisTL": "表示するタイムライン", | ||||
|     "webviewWarn": "TweetDeckを出すで。TJDeckをカスタムしたものが読み込まれる(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。", | ||||
|     "add": "追加", | ||||
|     "search": "検索", | ||||
|     "sortSet": "並べ替え設定", | ||||
|     "selectAcct": "選択(スクロールして全選択肢表示)", | ||||
|     "filterWord": "フィルターワード", | ||||
|     "listLocale": "一覧", | ||||
|     "degree": "適応範囲", | ||||
|     "conver": "会話", | ||||
|     "prof": "プロフィール", | ||||
|     "option": "オプション", | ||||
|     "matchWord": "単語マッチ", | ||||
|     "warnMatchWord": "非ラテン系の文字列では「単語マッチ」はせん方がええで。(これはフリかも知れん)", | ||||
|     "except": "除外", | ||||
|     "exceptWorn": "「除外」にしてもうたらマッチしたトゥートはフィルター解除しても二度と表示されへん。", | ||||
|     "avalableBefore": "有効期限(あと)", | ||||
|     "warnAvBefore": "未指定(または0分)で「無期限」や", | ||||
|     "warnAvBefore2": "この数字はそんなに正確ちゃうで", | ||||
|     "unlimited": "無期限", | ||||
|     "days": "日", | ||||
|     "hours": "時間", | ||||
|     "mins": "分", | ||||
|     "secs": "秒", | ||||
|     "warnOnIntegratedTL": "Integrated TL/Plus TLは、公開/ホームのフィルターワードをどっちも合わせて処理するで", | ||||
|     "helloTheDesk": "やってもうた…再読込して治らんかったら初期化(全データ削除)してな…(予め設定をエクスポートしとくんやで)", | ||||
|     "addColumn": "カラム追加", | ||||
|     "sortColumns": "カラム一覧/並べ替え", | ||||
|     "acctMan": "アカウントマネージャー", | ||||
|     "filter": "フィルター", | ||||
|     "setting": "設定", | ||||
|     "reverse": "トゥートボタンの左右入れ替え", | ||||
|     "f5": "TL再読込", | ||||
|     "nanoDes": "めっちゃ小さいマストドン。", | ||||
|     "verTips": "バージョン", | ||||
|     "clockTips": "時計", | ||||
|     "ramTips": "システムメモリ容量", | ||||
|     "changeTips": "Tips変更", | ||||
|     "helpAndLogs": "ヘルプとログ", | ||||
|     "help": "ヘルプ", | ||||
|     "contactwithlog": "なんか知らんけど動かんとかそういうのを開発者のお兄さんお姉さんに言うときは下のログのそこらへんの時間に起きたなぁってのを拾って連絡するとなんかの助けになるかも知れん。ついでやけどこのウィンドウ全体を横に引き伸ばしたらいい感じに見れるで", | ||||
|     "about": "このソフトについて", | ||||
|     "hereAddColumns": "←ここからTL追加", | ||||
|     "foundBug": "バグあるんやけど", | ||||
|     "show": "表示", | ||||
|     "directory": "ディレクトリ", | ||||
|     "discover": "見つける", | ||||
|     "active": "最新活動順", | ||||
|     "newcomer": "新規順", | ||||
|     "local_only": "ローカルだけ", | ||||
|   | ||||
| @@ -102,6 +102,7 @@ | ||||
|     "lang_details_embed": "埋め込みHTMLがコピーされたで。", | ||||
|     "lang_details_url": "トゥートURLがコピーされたで。", | ||||
|     "lang_details_txt": "トゥート本文がコピーされたで。", | ||||
|     "lang_details_fetch": "トゥートの情報を引っ張って来とるで…", | ||||
|     "lang_filter_nodata": "フィルターは無いで", | ||||
|     "lang_filter_errordegree": "適応範囲は一つ以上チェックせなあかんで。", | ||||
|     "lang_list_nodata": "リストは無いで", | ||||
|   | ||||
| @@ -1,184 +1,187 @@ | ||||
| { | ||||
|     "draghere":"ここにドラッグして添付(ドラッグと同時にアップロードされます)", | ||||
|     "nowOffline":"オフラインです。投稿はすべて下書きに追加されます。オンライン復帰時には再読み込みを推奨します。", | ||||
|     "draghere": "ここにドラッグして添付(ドラッグと同時にアップロードされます)", | ||||
|     "nowOffline": "オフラインです。投稿はすべて下書きに追加されます。オンライン復帰時には再読み込みを推奨します。", | ||||
|     "reOnline": "オンラインに復帰しました。再読み込みを推奨します。", | ||||
|     "webSrc": "Webで検索", | ||||
|     "tsSrc": "tootsearchで検索", | ||||
|     "close":"Close", | ||||
|     "showSelectProf":"選択したアカウントのプロフィールを表示", | ||||
|     "closethisbox":"このボックスを閉じる", | ||||
|     "post-new":"投稿", | ||||
|     "toot":"トゥート", | ||||
|     "nsfwDes":"画像に制限を付与", | ||||
|     "cwDes":"コンテンツワーニング(トゥートを表示する前にメッセージで隠す)", | ||||
|     "selfile":"ファイルを選択", | ||||
|     "insertEmoji":"絵文字を挿入", | ||||
|     "schedule":"時間指定投稿", | ||||
|     "postat":"時間指定投稿", | ||||
|     "scheduleWarn":"2.7.0~ 5分以内には投稿できません。サーバーの時計が正確とは限りません。", | ||||
|     "clearToot":"トゥートボックスのクリア", | ||||
|     "replyMode":"返信モード", | ||||
|     "no":"いいえ", | ||||
|     "yes":"はい", | ||||
|     "temp":"添付ファイル", | ||||
|     "nothing":"なし", | ||||
|     "close": "Close", | ||||
|     "showSelectProf": "選択したアカウントのプロフィールを表示", | ||||
|     "closethisbox": "このボックスを閉じる", | ||||
|     "post-new": "投稿", | ||||
|     "toot": "トゥート", | ||||
|     "nsfwDes": "画像に制限を付与", | ||||
|     "cwDes": "コンテンツワーニング(トゥートを表示する前にメッセージで隠す)", | ||||
|     "selfile": "ファイルを選択", | ||||
|     "insertEmoji": "絵文字を挿入", | ||||
|     "schedule": "時間指定投稿", | ||||
|     "postat": "時間指定投稿", | ||||
|     "scheduleWarn": "2.7.0~ 5分以内には投稿できません。サーバーの時計が正確とは限りません。", | ||||
|     "clearToot": "トゥートボックスのクリア", | ||||
|     "replyMode": "返信モード", | ||||
|     "no": "いいえ", | ||||
|     "yes": "はい", | ||||
|     "temp": "添付ファイル", | ||||
|     "nothing": "なし", | ||||
|     "stamp": "スタンプ", | ||||
|     "stampWarn": "画像右下にアカウント名(aa@bb.cc)テキストを挿入します", | ||||
|     "vis":"公開範囲", | ||||
|     "cwtext":"警告文", | ||||
|     "selectVis":"公開範囲指定", | ||||
|     "publicJP":"公開", | ||||
|     "unlistedJP":"未収載", | ||||
|     "privateJP":"非公開", | ||||
|     "localJP":"ローカル限定", | ||||
|     "directJP":"ダイレクト", | ||||
|     "sectoot":"セカンダリートゥート", | ||||
|     "emojiWarn":"サーバーによって実装が異なります。", | ||||
|     "emojiInsertWarn":"一部絵文字は入力できません。", | ||||
|     "refreshEmoji":"絵文字更新", | ||||
|     "closeThisBox":"このボックスを閉じる", | ||||
|     "showThisEmoji":"一覧を表示中", | ||||
|     "customEmoji":"カスタム絵文字", | ||||
|     "peopleEmoji":"ひと", | ||||
|     "natureEmoji":"自然", | ||||
|     "foodEmoji":"食べ物", | ||||
|     "activityEmoji":"活動", | ||||
|     "placeEmoji":"場所", | ||||
|     "thingsEmoji":"もの", | ||||
|     "symbolEmoji":"記号", | ||||
|     "flagsEmoji":"国旗", | ||||
|     "vis": "公開範囲", | ||||
|     "cwtext": "警告文", | ||||
|     "selectVis": "公開範囲指定", | ||||
|     "publicJP": "公開", | ||||
|     "unlistedJP": "未収載", | ||||
|     "privateJP": "非公開", | ||||
|     "localJP": "ローカル限定", | ||||
|     "directJP": "ダイレクト", | ||||
|     "sectoot": "セカンダリートゥート", | ||||
|     "emojiWarn": "サーバーによって実装が異なります。", | ||||
|     "emojiInsertWarn": "一部絵文字は入力できません。", | ||||
|     "refreshEmoji": "絵文字更新", | ||||
|     "closeThisBox": "このボックスを閉じる", | ||||
|     "showThisEmoji": "一覧を表示中", | ||||
|     "customEmoji": "カスタム絵文字", | ||||
|     "peopleEmoji": "ひと", | ||||
|     "natureEmoji": "自然", | ||||
|     "foodEmoji": "食べ物", | ||||
|     "activityEmoji": "活動", | ||||
|     "placeEmoji": "場所", | ||||
|     "thingsEmoji": "もの", | ||||
|     "symbolEmoji": "記号", | ||||
|     "flagsEmoji": "国旗", | ||||
|     "draft": "下書き", | ||||
|     "poll":"アンケート", | ||||
|     "pollDdisabled":"アンケートを使用しない", | ||||
|     "pollProvider":"アンケートのプロバイダ", | ||||
|     "choice":"選択肢", | ||||
|     "polluntil":"投票するまで票数を隠す", | ||||
|     "pollmulti":"複数選択を許可", | ||||
|     "expires_in":"有効期限(秒)", | ||||
|     "contextBefore":"これより前の会話", | ||||
|     "thisToot":"対象のトゥート", | ||||
|     "contextAfter":"これより後の会話", | ||||
|     "beforeLTL":"これより前のLocal TL(エアリプソース確認)", | ||||
|     "beforeUTL":"これより前のユーザーTL(BTソース確認)", | ||||
|     "afterLTL":"これより後のLocal TL(言及確認)", | ||||
|     "afterUTL":"これより後のユーザーTL(言及確認)", | ||||
|     "afterFTL":"これより後の連合TL(言及確認)", | ||||
|     "favedPeople":"このトゥートをお気に入りに登録した人", | ||||
|     "btedPeople":"このトゥートをブーストした人", | ||||
|     "useOtherAcct1":"他のアカウントを使用", | ||||
|     "useOtherAcct2":"の解除はできません", | ||||
|     "poll": "アンケート", | ||||
|     "pollDdisabled": "アンケートを使用しない", | ||||
|     "pollProvider": "アンケートのプロバイダ", | ||||
|     "choice": "選択肢", | ||||
|     "polluntil": "投票するまで票数を隠す", | ||||
|     "pollmulti": "複数選択を許可", | ||||
|     "expires_in": "有効期限(秒)", | ||||
|     "contextBefore": "これより前の会話", | ||||
|     "thisToot": "対象のトゥート", | ||||
|     "contextAfter": "これより後の会話", | ||||
|     "beforeLTL": "これより前のLocal TL(エアリプソース確認)", | ||||
|     "beforeUTL": "これより前のユーザーTL(BTソース確認)", | ||||
|     "afterLTL": "これより後のLocal TL(言及確認)", | ||||
|     "afterUTL": "これより後のユーザーTL(言及確認)", | ||||
|     "afterFTL": "これより後の連合TL(言及確認)", | ||||
|     "favedPeople": "このトゥートをお気に入りに登録した人", | ||||
|     "btedPeople": "このトゥートをブーストした人", | ||||
|     "useOtherAcct1": "他のアカウントを使用", | ||||
|     "useOtherAcct2": "の解除はできません", | ||||
|     "btWithVis": "公開範囲を指定してブースト", | ||||
|     "reply":"返信", | ||||
|     "bt":"ブースト", | ||||
|     "favRegist":"お気に入り", | ||||
|     "openBrowser":"ブラウザで開く", | ||||
|     "screenshot":"スクリーンショット", | ||||
|     "copyURL":"URLをコピー", | ||||
|     "copy":"コピー", | ||||
|     "embed":"埋め込む", | ||||
|     "toots":"トゥート", | ||||
|     "follow":"フォロー", | ||||
|     "follower":"フォロワー", | ||||
|     "utlColumn":"カラムとして追加", | ||||
|     "timeline":"タイムライン", | ||||
|     "operateOtherAcct":"他のアカウントで操作", | ||||
|     "list":"リスト", | ||||
|     "makeNew":"新規作成", | ||||
|     "blocks":"ブロック", | ||||
|     "mutes":"ミュート", | ||||
|     "block":"ブロック", | ||||
|     "mute":"ミュート", | ||||
|     "domainBlock":"ドメインブロック", | ||||
|     "editProf":"プロフィール編集", | ||||
|     "change":"変更", | ||||
|     "followReq":"フォローリクエスト", | ||||
|     "likeHimOrHer":"似てる", | ||||
|     "frc":"おすすめ", | ||||
|     "more":"もっと", | ||||
|     "endorse":"紹介する", | ||||
|     "openinbrowser":"ブラウザで開く", | ||||
|     "mainacct":"メインアカウントに設定", | ||||
|     "revoverJP":"する", | ||||
|     "warnUseOtherAcct":"(解除はできません。)", | ||||
|     "revoverJPde":"で", | ||||
|     "or":"または", | ||||
|     "openProf":"プロフィールを表示", | ||||
|     "warnListRegist":"リストに追加するためにはフォローが必要です。", | ||||
|     "blockDomain":"ブロックするドメイン", | ||||
|     "name":"名前", | ||||
|     "note":"自己紹介", | ||||
|     "editProfImg":"アバターを変更", | ||||
|     "editHeader":"ヘッダーを変更", | ||||
|     "blocked":"ブロックされています。なぜでしょう?", | ||||
|     "likeUserDes":"似ているユーザーを取得できます。", | ||||
|     "get":"取得", | ||||
|     "historyBack":"一つ前のユーザーデータ", | ||||
|     "empUser":"ユーザー強調", | ||||
|     "supportme":"ご支援ください。", | ||||
|     "TheDeskDes":"TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。", | ||||
|     "PatreonSupport":"Patreonで支援", | ||||
|     "PixivSupport":"Pixiv FANBOXで支援", | ||||
|     "AWLSupport":"Amazonほしいものリスト", | ||||
|     "SendAmazonGift1":"", | ||||
|     "SendAmazonGift2":"にAmazonギフトカードを送る", | ||||
|     "monthly":"月額支援(大歓迎)", | ||||
|     "once":"一度限りの支援(もちろん歓迎)", | ||||
|     "local":"ローカル", | ||||
|     "localMedia":"ローカル(メディア)", | ||||
|     "home":"ホーム", | ||||
|     "fed":"連合", | ||||
|     "fedMedia":"連合(メディア)", | ||||
|     "dm":"ダイレクトメッセージ", | ||||
|     "integratedTLDes":"統合(ローカルとホーム)", | ||||
|     "localPlusDes":"統合(LTL+BT+返信)", | ||||
|     "notf":"通知", | ||||
|     "reply": "返信", | ||||
|     "bt": "ブースト", | ||||
|     "favRegist": "お気に入り", | ||||
|     "openBrowser": "ブラウザで開く", | ||||
|     "screenshot": "スクリーンショット", | ||||
|     "copyURL": "URLをコピー", | ||||
|     "copy": "コピー", | ||||
|     "embed": "埋め込む", | ||||
|     "toots": "トゥート", | ||||
|     "follow": "フォロー", | ||||
|     "follower": "フォロワー", | ||||
|     "utlColumn": "カラムとして追加", | ||||
|     "timeline": "タイムライン", | ||||
|     "operateOtherAcct": "他のアカウントで操作", | ||||
|     "list": "リスト", | ||||
|     "makeNew": "新規作成", | ||||
|     "blocks": "ブロック", | ||||
|     "mutes": "ミュート", | ||||
|     "notfMute": "通知もミュート", | ||||
|     "zeroSetToInfinity": "ミュート期間: 0分に設定すると無制限にミュートします。", | ||||
|     "block": "ブロック", | ||||
|     "mute": "ミュート", | ||||
|     "domainBlock": "ドメインブロック", | ||||
|     "editProf": "プロフィール編集", | ||||
|     "change": "変更", | ||||
|     "followReq": "フォローリクエスト", | ||||
|     "likeHimOrHer": "似てる", | ||||
|     "frc": "おすすめフォロー", | ||||
|     "more": "もっと", | ||||
|     "endorse": "紹介する", | ||||
|     "openinbrowser": "ブラウザで開く", | ||||
|     "mainacct": "メインアカウントに設定", | ||||
|     "revoverJP": "する", | ||||
|     "warnUseOtherAcct": "(解除はできません。)", | ||||
|     "revoverJPde": "で", | ||||
|     "or": "または", | ||||
|     "openProf": "プロフィールを表示", | ||||
|     "warnListRegist": "リストに追加するためにはフォローが必要です。", | ||||
|     "blockDomain": "ブロックするドメイン", | ||||
|     "name": "名前", | ||||
|     "note": "自己紹介", | ||||
|     "editProfImg": "アバターを変更", | ||||
|     "editHeader": "ヘッダーを変更", | ||||
|     "blocked": "ブロックされています。なぜでしょう?", | ||||
|     "likeUserDes": "似ているユーザーを取得できます。", | ||||
|     "get": "取得", | ||||
|     "historyBack": "一つ前のユーザーデータ", | ||||
|     "empUser": "ユーザー強調", | ||||
|     "supportme": "ご支援ください。", | ||||
|     "TheDeskDes": "TheDeskは営利目的ではないため、有料機能や広告は一切ありません。<br>皆様のあたたかいご支援のもとで製作されています。", | ||||
|     "PatreonSupport": "Patreonで支援", | ||||
|     "PixivSupport": "Pixiv FANBOXで支援", | ||||
|     "AWLSupport": "Amazonほしいものリスト", | ||||
|     "SendAmazonGift1": "", | ||||
|     "SendAmazonGift2": "にAmazonギフトカードを送る", | ||||
|     "monthly": "月額支援(大歓迎)", | ||||
|     "once": "一度限りの支援(もちろん歓迎)", | ||||
|     "local": "ローカル", | ||||
|     "localMedia": "ローカル(メディア)", | ||||
|     "home": "ホーム", | ||||
|     "fed": "連合", | ||||
|     "fedMedia": "連合(メディア)", | ||||
|     "dm": "ダイレクトメッセージ", | ||||
|     "integratedTLDes": "統合(ローカルとホーム)", | ||||
|     "localPlusDes": "統合(LTL+BT+返信)", | ||||
|     "notf": "通知", | ||||
|     "bookmark": "ブックマーク", | ||||
|     "showThisTL":"表示するタイムライン", | ||||
|     "webviewWarn":"TweetDeckを表示します。TJDeckをカスタムしたものが読み込まれます(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。", | ||||
|     "add":"追加", | ||||
|     "search":"検索", | ||||
|     "sortSet":"並べ替え設定", | ||||
|     "selectAcct":"選択(スクロールで全選択肢表示)", | ||||
|     "filterWord":"フィルターワード", | ||||
|     "listLocale":"一覧", | ||||
|     "degree":"適応範囲", | ||||
|     "conver":"会話", | ||||
|     "prof":"プロフィール", | ||||
|     "option":"オプション", | ||||
|     "matchWord":"単語マッチ", | ||||
|     "warnMatchWord":"非ラテン系の文字列では「単語マッチ」は推奨されません。", | ||||
|     "except":"除外", | ||||
|     "exceptWorn":"「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。", | ||||
|     "avalableBefore":"有効期限(あと)", | ||||
|     "warnAvBefore":"未指定(または0分)で「無期限」になります。", | ||||
|     "warnAvBefore2":"仕様上数値の正確性を保証できません。", | ||||
|     "unlimited":"無期限", | ||||
|     "days":"日", | ||||
|     "hours":"時間", | ||||
|     "mins":"分", | ||||
|     "secs":"秒", | ||||
|     "warnOnIntegratedTL":"Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。", | ||||
|     "helloTheDesk":"内部エラーです。再読込して治らない場合は初期化(全データ削除)をしてください。(事前に設定をエクスポートしておくことをおすすめします。)", | ||||
|     "addColumn":"カラム追加", | ||||
|     "sortColumns":"カラム一覧/並べ替え", | ||||
|     "acctMan":"アカウントマネージャー", | ||||
|     "filter":"フィルター", | ||||
|     "setting":"設定", | ||||
|     "reverse":"トゥートボタンの左右入れ替え", | ||||
|     "f5":"TL再読込", | ||||
|     "nanoDes":"最小のマストドン。", | ||||
|     "verTips":"バージョン", | ||||
|     "clockTips":"時計", | ||||
|     "ramTips":"システムメモリ容量", | ||||
|     "changeTips":"Tips変更", | ||||
|     "helpAndLogs":"ヘルプとログ", | ||||
|     "help":"ヘルプ", | ||||
|     "contactwithlog":"不具合等のお問合わせは以下のログから発生時刻付近のものを集めてご連絡いただけるとスムーズになるかもしれません。また、このメニューウィンドウ全体を横に引き伸ばすとログが見やすくなります。", | ||||
|     "about":"このソフトについて", | ||||
|     "hereAddColumns":"←ここからTL追加", | ||||
|     "showThisTL": "表示するタイムライン", | ||||
|     "webviewWarn": "TweetDeckを表示します。TJDeckをカスタムしたものが読み込まれます(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。", | ||||
|     "add": "追加", | ||||
|     "search": "検索", | ||||
|     "sortSet": "並べ替え設定", | ||||
|     "selectAcct": "選択(スクロールで全選択肢表示)", | ||||
|     "filterWord": "フィルターワード", | ||||
|     "listLocale": "一覧", | ||||
|     "degree": "適応範囲", | ||||
|     "conver": "会話", | ||||
|     "prof": "プロフィール", | ||||
|     "option": "オプション", | ||||
|     "matchWord": "単語マッチ", | ||||
|     "warnMatchWord": "非ラテン系の文字列では「単語マッチ」は推奨されません。", | ||||
|     "except": "除外", | ||||
|     "exceptWorn": "「除外」時マッチしたトゥートは非可逆的に除外され、削除後も閲覧できません。", | ||||
|     "avalableBefore": "有効期限(あと)", | ||||
|     "warnAvBefore": "未指定(または0分)で「無期限」になります。", | ||||
|     "warnAvBefore2": "仕様上数値の正確性を保証できません。", | ||||
|     "unlimited": "無期限", | ||||
|     "days": "日", | ||||
|     "hours": "時間", | ||||
|     "mins": "分", | ||||
|     "secs": "秒", | ||||
|     "warnOnIntegratedTL": "Integrated TL/Plus TLは、公開/ホームのフィルターワードが合算されて適応されます。どちらか一方の指定でも非表示になります。", | ||||
|     "helloTheDesk": "内部エラーです。再読込して治らない場合は初期化(全データ削除)をしてください。(事前に設定をエクスポートしておくことをおすすめします。)", | ||||
|     "addColumn": "カラム追加", | ||||
|     "sortColumns": "カラム一覧/並べ替え", | ||||
|     "acctMan": "アカウントマネージャー", | ||||
|     "filter": "フィルター", | ||||
|     "setting": "設定", | ||||
|     "reverse": "トゥートボタンの左右入れ替え", | ||||
|     "f5": "TL再読込", | ||||
|     "nanoDes": "最小のマストドン。", | ||||
|     "verTips": "バージョン", | ||||
|     "clockTips": "時計", | ||||
|     "ramTips": "システムメモリ容量", | ||||
|     "changeTips": "Tips変更", | ||||
|     "helpAndLogs": "ヘルプとログ", | ||||
|     "help": "ヘルプ", | ||||
|     "contactwithlog": "不具合等のお問合わせは以下のログから発生時刻付近のものを集めてご連絡いただけるとスムーズになるかもしれません。また、このメニューウィンドウ全体を横に引き伸ばすとログが見やすくなります。", | ||||
|     "about": "このソフトについて", | ||||
|     "hereAddColumns": "←ここからTL追加", | ||||
|     "foundBug": "バグを見つけた", | ||||
|     "show": "表示", | ||||
|     "directory": "ディレクトリ", | ||||
|     "discover": "見つける", | ||||
|     "active": "最新活動順", | ||||
|     "newcomer": "新規順", | ||||
|     "local_only": "ローカルのみ", | ||||
|   | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user
	