Skip to content
Snippets Groups Projects
Commit c8809729 authored by syuilo's avatar syuilo
Browse files

Display Exif

parent 303ccaa2
No related branches found
No related tags found
No related merge requests found
......@@ -3,6 +3,7 @@
*/
import * as childProcess from 'child_process';
import * as fs from 'fs';
import * as Path from 'path';
import * as gulp from 'gulp';
import * as gutil from 'gulp-util';
......@@ -180,7 +181,9 @@ gulp.task('build:client:pug', [
.pipe(pug({
locals: {
themeColor: constants.themeColor,
facss: fontawesome.dom.css()
facss: fontawesome.dom.css(),
//hljscss: fs.readFileSync('./node_modules/highlight.js/styles/default.css', 'utf8')
hljscss: fs.readFileSync('./src/web/assets/code-highlight.css', 'utf8')
}
}))
.pipe(htmlmin({
......
......@@ -441,6 +441,7 @@ mobile:
rename: "Rename"
move: "Move"
hash: "Hash (md5)"
exif: "EXIF"
mk-entrance-signin:
signup: "Sign up"
......
......@@ -441,6 +441,7 @@ mobile:
rename: "名前を変更"
move: "移動"
hash: "ハッシュ (md5)"
exif: "EXIF"
mk-entrance-signin:
signup: "新規登録"
......
......@@ -97,6 +97,7 @@
"escape-regexp": "0.0.1",
"event-stream": "3.3.4",
"eventemitter3": "3.0.0",
"exif-js": "^2.3.0",
"express": "4.16.2",
"file-type": "7.4.0",
"fuckadblock": "3.2.1",
......@@ -113,6 +114,7 @@
"gulp-typescript": "3.2.3",
"gulp-uglify": "3.0.0",
"gulp-util": "3.0.8",
"highlight.js": "^9.12.0",
"inquirer": "4.0.1",
"is-root": "1.0.0",
"is-url": "1.2.2",
......
......@@ -24,6 +24,9 @@ html
//- FontAwesome style
style #{facss}
//- highlight.js style
style #{hljscss}
body
noscript: p
| JavaScriptを有効にしてください
......
<mk-drive-file-viewer>
<div class="preview">
<img if={ kind == 'image' } src={ file.url } alt={ file.name } title={ file.name }>
<img if={ kind == 'image' } src={ file.url } alt={ file.name } title={ file.name } onload={ onImageLoaded } ref="img">
<virtual if={ kind != 'image' }>%fa:file%</virtual>
<footer if={ kind == 'image' && file.properties && file.properties.width && file.properties.height }>
<span class="size">
......@@ -39,6 +39,14 @@
</button>
</div>
</div>
<div class="exif" show={ exif }>
<div>
<p>
%fa:camera%%i18n:mobile.tags.mk-drive-file-viewer.exif%
</p>
<pre ref="exif" class="json">{ exif ? JSON.stringify(exif, null, 2) : '' }</pre>
</div>
</div>
<div class="hash">
<div>
<p>
......@@ -178,12 +186,45 @@
white-space nowrap
overflow auto
font-size 0.8em
color #222
border solid 1px #dfdfdf
border-radius 2px
background #f5f5f5
> .exif
padding 14px
border-top solid 1px #dfdfdf
> div
max-width 500px
margin 0 auto
> p
display block
margin 0
padding 0
color #555
font-size 0.9em
> [data-fa]
margin-right 4px
> pre
display block
width 100%
margin 6px 0 0 0
padding 8px
height 128px
overflow auto
font-size 0.9em
border solid 1px #dfdfdf
border-radius 2px
background #f5f5f5
</style>
<script>
import EXIF from 'exif-js';
import hljs from 'highlight.js';
import bytesToSize from '../../../common/scripts/bytes-to-size';
import gcd from '../../../common/scripts/gcd';
......@@ -195,6 +236,17 @@
this.file = this.opts.file;
this.kind = this.file.type.split('/')[0];
this.onImageLoaded = () => {
const self = this;
EXIF.getData(this.refs.img, function() {
const allMetaData = EXIF.getAllTags(this);
self.update({
exif: allMetaData
});
hljs.highlightBlock(self.refs.exif);
});
};
this.rename = () => {
const name = window.prompt('名前を変更', this.file.name);
if (name == null || name == '' || name == this.file.name) return;
......
.hljs {
font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
}
.hljs,
.hljs-subst {
color: #444;
}
.hljs-comment {
color: #888888;
}
.hljs-keyword {
color: #2973b7;
}
.hljs-number {
color: #ae81ff;
}
.hljs-string {
color: #e96900;
}
.hljs-regexp {
color: #e9003f;
}
.hljs-attribute,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
.hljs-name {
font-weight: bold;
}
.hljs-type,
.hljs-selector-id,
.hljs-selector-class,
.hljs-quote,
.hljs-template-tag,
.hljs-deletion {
color: #880000;
}
.hljs-title,
.hljs-section {
color: #880000;
font-weight: bold;
}
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #BC6060;
}
/* Language color: hue: 90; */
.hljs-literal {
color: #78A960;
}
.hljs-built_in,
.hljs-bullet,
.hljs-code,
.hljs-addition {
color: #397300;
}
/* Meta color: hue: 200 */
.hljs-meta {
color: #1f7199;
}
.hljs-meta-string {
color: #4d99bf;
}
/* Misc effects */
.hljs-emphasis {
font-style: italic;
}
.hljs-strong {
font-weight: bold;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment