]> id.pley.net Git - movie_parser.git/blobdiff - GapFinder.html
Upload Dropbox.com versions of everything
[movie_parser.git] / GapFinder.html
diff --git a/GapFinder.html b/GapFinder.html
new file mode 100755 (executable)
index 0000000..e3307bf
--- /dev/null
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<head>
+    <title>GapFinder</title>
+    <script src=Atom.js></script>
+    <script>
+        // Add Blob.prototype.slice if it does not already exist:
+        if (typeof(Blob.prototype.slice) == 'undefined' && typeof(Blob.prototype.webkitSlice) != 'undefined')
+            Blob.prototype.slice = Blob.prototype.webkitSlice;
+
+               function readAtoms(file, offset, length) {
+                       function tryToReadAtom(file, offset) {
+                               return new Promise((resolve, reject) => {
+                                       var reader = new FileReader();
+                                       reader.onload = (event) => {
+                                               var atom = new Atom();
+                        atom.parse(reader.result, 0);
+                        resolve(atom);
+                                       };
+                                       reader.onerror = (error) => {
+                                               reject(error);  
+                                       };
+                    var subset = file.slice(offset, offset + 36);
+                    reader.readAsArrayBuffer(subset);
+                               });
+                       }
+                       
+                       return new Promise((resolve, reject) => {
+                var atoms = [];
+                var offset = 0;
+                tryToReadAtom(file, offset).then((atom) => {
+                    var reader = new FileReader();
+                    reader.onload = function(e) {
+                        var atom = Atom.create(reader.result);
+                        resolve(atom);
+                    };
+                    reader.onerror = (error) => { 
+                        reject(error);
+                    };
+                    var subset = file.slice(offset, offset + length);
+                    reader.readAsArrayBuffer(subset);
+                }, (error) {
+                    reject(error);
+                })
+                       })
+               }
+
+
+               
+        function onFileSelect(e) {
+            var file = e.target.files[0];
+
+            
+            readAtom(file, 0, file.size).then((atom) => {
+                console.log(atom);
+            }, () => {
+                               // do some failed stuff
+                       });
+        }
+        
+        function setup() {
+            document.getElementById('file').addEventListener('change', onFileSelect, false);
+        }
+    </script>
+    <style>
+        dl { border: 1px solid black; padding: 1px; }
+        dt, dd { display: inline; }
+        dt:after { content:": " }
+        dd:after { content:"\A"; white-space:pre; }
+        dd dl { margin: 0; vertical-align: top }
+        dd span { display: inline-block; vertical-align: top; }
+
+        dt, dd { display: inline-block; min-width: 14em; }
+        dd { margin-left: 1em; }
+        dd th { font-weight: normal; text-align: right; }
+        .description { text-align: center; font-weight: bold; }
+        
+        /* make the output display as a table */
+        /*
+        dl { display: table; }
+        dl div { display: table-row; }
+        dt, dd { display: table-cell; }
+        */
+    </style>
+</head>
+<body id="atomtester" onload="setup()">
+    <input type="file" id="file" name="file" />
+    <div id=output>
+</body>
\ No newline at end of file