├── .editorconfig ├── .gitignore ├── LICENSE ├── README.md ├── css ├── linelikefromstand_4u_.css └── serveronly.css ├── img ├── favicon.svg └── ss.png ├── index.html └── js └── main.js /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | insert_final_newline = true 7 | indent_size = 4 8 | indent_style = space 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = true 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /data 2 | /*.txt 3 | .DS_Store 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 hidao80 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LINE風LINEバックアップテキストデータビュアー 2 | 3 | [](LICENSE.md) 4 | [](https://nodejs.org/ja/) 5 |  6 |  7 | 8 | 9 | LINEで「トーク履歴を送信」で取得できる味気ないトーク履歴をLINEのトーク画面風の見た目に変換するWebアプリケーションです。 10 | 11 | トーク履歴のテキストファイルをアップロードするとプレビューされるので、「ダウンロード」ボタンを押すと、プレビューされた内容をそのまま単一の HTML ファイルにして保存することができます。 12 | 13 | また、アップロードされるのはご利用のブラウザまでで、サーバにトーク履歴が保存されることはありません。 14 | 15 | ご利用は http://hidao80.github.io/LINEBackupViewer/ からどうぞ。 16 | 17 |  18 | 19 | ※画面は開発中のものです 20 | 21 | ## ToDo 22 | 23 | - [x] デフォルト画面のダウンロード(仮)ができる 24 | - [x] ダウンロードボタンをクックすると、画面に描画されているメッセージをHTMLファイルとしてダウンロードする 25 | - [x] ログのアップロードすると、画面にLINE風に描画する 26 | - [x] グループLINEのトークで本人を識別する 27 | - [x] 日付の区切りが入る 28 | - [x] 各投稿時刻を表示する 29 | - [x] OS によるフォントとボタンスタイルの違いを統一 30 | -------------------------------------------------------------------------------- /css/linelikefromstand_4u_.css: -------------------------------------------------------------------------------- 1 | html { 2 | width: 100vw; 3 | font-family: sans-serif; 4 | } 5 | 6 | body { 7 | max-width: 800px; 8 | margin: 0 auto; 9 | background: rgb(113,147,193);/*色は任意*/ 10 | } 11 | 12 | /*吹き出し*/ 13 | .balloon_l { 14 | width: 100%; 15 | margin: 10px 0; 16 | display: flex; 17 | justify-content: flex-start; 18 | } 19 | 20 | .balloon_r { 21 | width: 100%; 22 | margin: 10px 0; 23 | display: flex; 24 | justify-content: flex-end; 25 | } 26 | 27 | .balloon_l .says { 28 | max-width:calc(80% - 50px); /*最大幅は任意*/ 29 | position: relative; 30 | padding: 17px 13px 15px 18px; 31 | border-radius: 12px; 32 | background: white;/*色は任意*/ 33 | line-height:1.5; 34 | font-size: smaller; 35 | display: inline-block; 36 | } 37 | 38 | .balloon_r .says { 39 | max-width:calc(80% - 50px); /*最大幅は任意*/ 40 | position: relative; 41 | padding: 17px 13px 15px 18px; 42 | border-radius: 12px; 43 | background: #85e249;/*色は任意*/ 44 | line-height:1.5; 45 | font-size: smaller; 46 | display: inline-block; 47 | } 48 | 49 | .says p{ 50 | display: inline; 51 | margin:8px 0 0 !important; 52 | } 53 | 54 | .says p:first-child{ 55 | margin-top:0 !important; 56 | } 57 | 58 | .says:after { 59 | content: ""; 60 | position: absolute; 61 | border: 10px solid transparent; 62 | top: 13px; 63 | } 64 | 65 | .balloon_l .says:after { 66 | left: -26px; 67 | border-right: 22px solid white; 68 | } 69 | 70 | .balloon_r .says:after { 71 | right: -26px; 72 | border-left: 22px solid #85e249; 73 | } 74 | 75 | .balloon_l-before { 76 | display: inline-block; 77 | width: 50px; /*任意のサイズ*/ 78 | height: 50px; 79 | margin-right: 25px; 80 | content: ''; 81 | text-align: center; 82 | border-radius: 25px; 83 | } 84 | 85 | .balloon_l-before > div, 86 | .balloon_r-after > div { 87 | color: white; 88 | font-size: 1.25rem; 89 | text-shadow: 0 0 2px black; 90 | display: inline-block; 91 | line-height: 50px; 92 | } 93 | 94 | .balloon_r-after { 95 | display: inline-block; 96 | width: 50px; /*任意のサイズ*/ 97 | height: 50px; 98 | margin-left: 25px; 99 | content: ''; 100 | text-align: center; 101 | vertical-align: top; 102 | border-radius: 25px; 103 | } 104 | 105 | div.prop { 106 | padding-left: 5px; 107 | padding-right: 5px; 108 | color: white; 109 | font-size: xx-small; 110 | align-self: flex-end; /*縦位置を下揃え*/ 111 | display: inline-block; 112 | vertical-align: bottom; 113 | margin-bottom: 1rem; 114 | } 115 | 116 | div.title { 117 | text-align: center; 118 | color: white; 119 | vertical-align: bottom; 120 | } 121 | 122 | div.date { 123 | text-align: center; 124 | color: lightgray; 125 | vertical-align: bottom; 126 | font-size: xx-small; 127 | } 128 | 129 | div.date:before, 130 | div.date:after { 131 | content: ' ─── '; 132 | } 133 | -------------------------------------------------------------------------------- /css/serveronly.css: -------------------------------------------------------------------------------- 1 | .hidden { 2 | display: none; 3 | } 4 | 5 | #menu_bar { 6 | width : 100%; 7 | display: flex; 8 | } 9 | 10 | #menu_bar>button { 11 | flex : 1; 12 | margin-right: 1px; 13 | } 14 | -------------------------------------------------------------------------------- /img/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | -------------------------------------------------------------------------------- /img/ss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hidao80/LINEBackupViewer/128d6ed399a9600a103d731b76e738a76e5bee3d/img/ss.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |使い方は?
25 |まず、上のメニューの「アップロード」ボタンを押して、LINEトークのバックアップファイルをアップロードします。
28 |ファイル名が「[LINE] <相手の名前>とのトーク.txt」となっているものです。
31 |「ダウンロード」ボタンが有効になったら、「ダウンロード」ボタンをタップします。
34 |バックアップファイルの内容をLINEのトーク画面風に変換したHTMLファイルがダウンロードされます。
37 |ふーん
40 |ありがとう!
使ってみる!
81 | ダウンロードできるようになりました。
82 | ファイルサイズが大きすぎるため、プレビューできません。
83 |
${msg.trim()}
224 |${msg.trim()}
233 |