Compare commits
No commits in common. "0b3d6df117a39541184c9d625e523fb89452d3ca" and "527f1849444356336397016e28b42067299bb527" have entirely different histories.
0b3d6df117
...
527f184944
|
@ -1,43 +0,0 @@
|
||||||
real triangleRadius = 100;
|
|
||||||
real borderInset = 6;
|
|
||||||
|
|
||||||
real circleRadius = 12;
|
|
||||||
real bigBeamRadius = 36;
|
|
||||||
real smallBeamRadius = 25;
|
|
||||||
real beamCount = 12;
|
|
||||||
real beamAngle = 7;
|
|
||||||
real starterBeamAngle = 16;
|
|
||||||
|
|
||||||
pen transBlue = rgb("55cdfc");
|
|
||||||
pen transPink = rgb("f7a8b8");
|
|
||||||
|
|
||||||
pen bigBeamColor = transPink;
|
|
||||||
pen smallBeamColor = transBlue;
|
|
||||||
|
|
||||||
path borderTriangle = dir(90)--dir(210)--dir(330)--cycle;
|
|
||||||
path outerBorder = scale(triangleRadius)*borderTriangle;
|
|
||||||
fill(outerBorder, white);
|
|
||||||
|
|
||||||
path beam(real angle, real innerRadius, real outerRadius) {
|
|
||||||
return arc((0,0), outerRadius, angle/2, -angle/2)--arc((0,0), innerRadius, -angle/2, angle/2)--cycle;
|
|
||||||
}
|
|
||||||
|
|
||||||
path bigBeam = beam(beamAngle, circleRadius, bigBeamRadius);
|
|
||||||
path smallBeam = beam(beamAngle, circleRadius, smallBeamRadius);
|
|
||||||
|
|
||||||
for (int i = 0; i < beamCount; ++i) {
|
|
||||||
if (i > 0) {
|
|
||||||
fill(rotate(360*i/beamCount)*bigBeam, bigBeamColor);
|
|
||||||
}
|
|
||||||
fill(rotate(360*(i+0.5)/beamCount)*smallBeam, smallBeamColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
pair starterBeamTrianglePoint(real angle) {
|
|
||||||
pair circlePoint = circleRadius*dir(angle);
|
|
||||||
return intersectionpoint(circlePoint--(circlePoint+(triangleRadius,0)), outerBorder);
|
|
||||||
}
|
|
||||||
|
|
||||||
fill(starterBeamTrianglePoint(-starterBeamAngle/2)--arc((0,0), circleRadius, -starterBeamAngle/2, starterBeamAngle/2)--starterBeamTrianglePoint(starterBeamAngle/2)--cycle, bigBeamColor);
|
|
||||||
|
|
||||||
draw(outerBorder, transPink+(2*borderInset));
|
|
||||||
draw(scale(triangleRadius-borderInset)*borderTriangle, transBlue+borderInset);
|
|
23
src/zip.rs
23
src/zip.rs
|
@ -136,13 +136,24 @@ impl UploadedFile {
|
||||||
|
|
||||||
fn central_directory_header(&self, local_header_offset: usize, hash: u32) -> Vec<u8> {
|
fn central_directory_header(&self, local_header_offset: usize, hash: u32) -> Vec<u8> {
|
||||||
let mut header = vec![
|
let mut header = vec![
|
||||||
0x50, 0x4b, 0x01, 0x02, // Central directory file header signature
|
// Central directory file header signature
|
||||||
45, 3, // Made by a Unix system supporting version 4.5
|
0x50, 0x4b, 0x01, 0x02,
|
||||||
|
// Made by a "DOS" system supporting version 4.5 - if we
|
||||||
|
// say it's made by a Unix system, then unzip will expect
|
||||||
|
// it to have embedded Unix permission information, and
|
||||||
|
// will set all the files to mode 000 when that's not
|
||||||
|
// present :/
|
||||||
|
45, 0,
|
||||||
];
|
];
|
||||||
header.append(&mut self.shared_header_fields(Some(hash)));
|
header.append(&mut self.shared_header_fields(Some(hash)));
|
||||||
append_0(&mut header, 8); // Comment length, disk number, internal attributes, DOS external attributes
|
header.append(&mut vec![
|
||||||
append_value(&mut header, 0o100644, 2); // Unix external file attributes: -rw-r--r--
|
0, 0, // File comment length: 0
|
||||||
append_ff(&mut header, 4); // Relative offset of local file header: placeholder, see ZIP64 data
|
0, 0, // Disk number where file starts: 0
|
||||||
|
0, 0, // Internal file attributes: nothing
|
||||||
|
0, 0, 0, 0, // External file attributes: nothing
|
||||||
|
0xff, 0xff, 0xff,
|
||||||
|
0xff, // Relative offset of local file header: placeholder, see ZIP64 data
|
||||||
|
]);
|
||||||
header.append(&mut self.name.clone().into_bytes());
|
header.append(&mut self.name.clone().into_bytes());
|
||||||
header.append(&mut self.extra_field(local_header_offset));
|
header.append(&mut self.extra_field(local_header_offset));
|
||||||
header
|
header
|
||||||
|
@ -168,7 +179,7 @@ fn end_of_central_directory(files: &[UploadedFile]) -> Vec<u8> {
|
||||||
];
|
];
|
||||||
append_0(&mut eocd, 7); // pad out the rest of the size field
|
append_0(&mut eocd, 7); // pad out the rest of the size field
|
||||||
eocd.append(&mut vec![
|
eocd.append(&mut vec![
|
||||||
45, 3, // Made by a Unix system supporting version 4.5
|
45, 0, // Made by a "DOS" system supporting version 4.5, see above
|
||||||
45, 0, // Minimum version 4.5 to extract
|
45, 0, // Minimum version 4.5 to extract
|
||||||
]);
|
]);
|
||||||
append_0(&mut eocd, 8); // Two 4-byte disk numbers, both 0
|
append_0(&mut eocd, 8); // Two 4-byte disk numbers, both 0
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
<h2>Files selected:</h2>
|
<h2>Files selected:</h2>
|
||||||
<ul id="file_list">
|
<ul id="file_list">
|
||||||
</ul>
|
</ul>
|
||||||
<div id="download_link"></div>
|
|
||||||
<div id="progress"></div>
|
|
||||||
<script src="upload.js"></script>
|
<script src="upload.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -17,7 +17,7 @@ button:hover, .fake_button:hover {
|
||||||
background-color: #aaa;
|
background-color: #aaa;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:disabled, button:disabled:hover, .fake_button:disabled, .fake_button:disabled:hover {
|
button:disabled, button:disabled:hover {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
border-color: #ddd;
|
border-color: #ddd;
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
|
||||||
<!-- This file was generated by dvisvgm 2.11.1 -->
|
|
||||||
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='185.205pt' height='162pt' viewBox='149.012 159.858 185.205 162'>
|
|
||||||
<g id='page1'>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 92.9498 6.0225L 6.0225 156.585L 179.877 156.585L 92.9498 6.0225Z' fill='#ffffff'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 116.748 98.4349C 116.908 98.9165 117.055 99.4059 117.189 99.9028C 117.322 100.4 117.439 100.897 117.541 101.394L 104.753 103.996C 104.705 103.757 104.648 103.519 104.584 103.28C 104.52 103.042 104.45 102.807 104.373 102.575L 116.748 98.4349Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 123.083 86.4526C 123.486 87.0626 123.873 87.6885 124.244 88.33C 124.614 88.9715 124.962 89.6197 125.289 90.2736L 103.73 101.023C 103.621 100.805 103.505 100.589 103.381 100.375C 103.258 100.161 103.129 99.9525 102.994 99.7492L 123.083 86.4526Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 109.578 87.6028C 109.958 87.9395 110.33 88.2898 110.694 88.6535C 111.058 89.0173 111.408 89.3894 111.745 89.7693L 101.971 98.416C 101.81 98.2336 101.642 98.055 101.467 97.8804C 101.292 97.7058 101.114 97.5377 100.931 97.376L 109.578 87.6028Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 109.074 74.058C 109.728 74.3848 110.376 74.7333 111.017 75.1037C 111.659 75.4741 112.285 75.8611 112.895 76.2641L 99.5981 96.353C 99.3948 96.2187 99.1861 96.0897 98.9723 95.9662C 98.7585 95.8428 98.5424 95.7266 98.3244 95.6177L 109.074 74.058Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 97.9529 81.8067C 98.4502 81.9084 98.9476 82.0257 99.4445 82.1588C 99.9414 82.2919 100.431 82.4391 100.912 82.5997L 96.7719 94.9746C 96.5407 94.8975 96.3058 94.8268 96.0673 94.7629C 95.8288 94.699 95.59 94.6427 95.3513 94.5939L 97.9529 81.8067Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 90.7437 70.3287C 91.4735 70.2848 92.209 70.2625 92.9498 70.2625C 93.6906 70.2625 94.4261 70.2848 95.1559 70.3287L 93.6852 94.3746C 93.4419 94.3599 93.1967 94.3525 92.9498 94.3525C 92.7029 94.3525 92.4577 94.3599 92.2144 94.3746L 90.7437 70.3287Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 84.9872 82.5997C 85.4688 82.4391 85.9582 82.2919 86.4551 82.1588C 86.952 82.0257 87.4494 81.9084 87.9467 81.8067L 90.5483 94.5939C 90.3096 94.6427 90.0708 94.699 89.8323 94.7629C 89.5938 94.8268 89.3589 94.8975 89.1277 94.9746L 84.9872 82.5997Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 73.0049 76.2641C 73.6149 75.8611 74.2408 75.4741 74.8823 75.1037C 75.5238 74.7333 76.172 74.3848 76.8259 74.058L 87.5752 95.6177C 87.3572 95.7266 87.1411 95.8428 86.9273 95.9662C 86.7135 96.0897 86.5048 96.2187 86.3015 96.353L 73.0049 76.2641Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 74.1551 89.7693C 74.4918 89.3894 74.8421 89.0173 75.2058 88.6535C 75.5696 88.2898 75.9417 87.9395 76.3216 87.6028L 84.9683 97.376C 84.7859 97.5377 84.6073 97.7058 84.4327 97.8804C 84.2581 98.055 84.09 98.2336 83.9283 98.416L 74.1551 89.7693Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 60.6103 90.2736C 60.9371 89.6197 61.2856 88.9715 61.656 88.33C 62.0264 87.6885 62.4134 87.0626 62.8164 86.4526L 82.9053 99.7492C 82.771 99.9525 82.642 100.161 82.5185 100.375C 82.3951 100.589 82.2789 100.805 82.17 101.023L 60.6103 90.2736Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 68.359 101.394C 68.4607 100.897 68.578 100.4 68.7111 99.9028C 68.8442 99.4059 68.9914 98.9165 69.152 98.4349L 81.5269 102.575C 81.4498 102.807 81.3791 103.042 81.3152 103.28C 81.2513 103.519 81.195 103.757 81.1462 103.996L 68.359 101.394Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 56.881 108.604C 56.8371 107.874 56.8148 107.138 56.8148 106.397C 56.8148 105.657 56.8371 104.921 56.881 104.191L 80.9269 105.662C 80.9122 105.905 80.9048 106.151 80.9048 106.397C 80.9048 106.644 80.9122 106.89 80.9269 107.133L 56.881 108.604Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 69.152 114.36C 68.9914 113.879 68.8442 113.389 68.7111 112.892C 68.578 112.395 68.4607 111.898 68.359 111.401L 81.1462 108.799C 81.195 109.038 81.2513 109.276 81.3152 109.515C 81.3791 109.753 81.4498 109.988 81.5269 110.22L 69.152 114.36Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 62.8164 126.342C 62.4134 125.732 62.0264 125.107 61.656 124.465C 61.2856 123.823 60.9371 123.175 60.6103 122.521L 82.17 111.772C 82.2789 111.99 82.3951 112.206 82.5185 112.42C 82.642 112.634 82.771 112.842 82.9053 113.046L 62.8164 126.342Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 76.3216 125.192C 75.9417 124.855 75.5696 124.505 75.2058 124.141C 74.8421 123.778 74.4918 123.406 74.1551 123.026L 83.9283 114.379C 84.09 114.561 84.2581 114.74 84.4327 114.915C 84.6073 115.089 84.7859 115.257 84.9683 115.419L 76.3216 125.192Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 76.8259 138.737C 76.172 138.41 75.5238 138.062 74.8823 137.691C 74.2408 137.321 73.6149 136.934 73.0049 136.531L 86.3015 116.442C 86.5048 116.576 86.7135 116.705 86.9273 116.829C 87.1411 116.952 87.3572 117.068 87.5752 117.177L 76.8259 138.737Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 87.9467 130.988C 87.4494 130.887 86.952 130.769 86.4551 130.636C 85.9582 130.503 85.4688 130.356 84.9872 130.195L 89.1277 117.82C 89.3589 117.898 89.5938 117.968 89.8323 118.032C 90.0708 118.096 90.3096 118.152 90.5483 118.201L 87.9467 130.988Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 95.1559 142.466C 94.4261 142.51 93.6906 142.532 92.9498 142.532C 92.209 142.532 91.4735 142.51 90.7437 142.466L 92.2144 118.42C 92.4577 118.435 92.7029 118.442 92.9498 118.442C 93.1967 118.442 93.4419 118.435 93.6852 118.42L 95.1559 142.466Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 100.912 130.195C 100.431 130.356 99.9414 130.503 99.4445 130.636C 98.9476 130.769 98.4502 130.887 97.9529 130.988L 95.3513 118.201C 95.59 118.152 95.8288 118.096 96.0673 118.032C 96.3058 117.968 96.5407 117.898 96.7719 117.82L 100.912 130.195Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 112.895 136.531C 112.285 136.934 111.659 137.321 111.017 137.691C 110.376 138.062 109.728 138.41 109.074 138.737L 98.3244 117.177C 98.5424 117.068 98.7585 116.952 98.9723 116.829C 99.1861 116.705 99.3948 116.576 99.5981 116.442L 112.895 136.531Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 111.745 123.026C 111.408 123.406 111.058 123.778 110.694 124.141C 110.33 124.505 109.958 124.855 109.578 125.192L 100.931 115.419C 101.114 115.257 101.292 115.089 101.467 114.915C 101.642 114.74 101.81 114.561 101.971 114.379L 111.745 123.026Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 125.289 122.521C 124.962 123.175 124.614 123.823 124.244 124.465C 123.873 125.107 123.486 125.732 123.083 126.342L 102.994 113.046C 103.129 112.842 103.258 112.634 103.381 112.42C 103.505 112.206 103.621 111.99 103.73 111.772L 125.289 122.521Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 117.541 111.401C 117.439 111.898 117.322 112.395 117.189 112.892C 117.055 113.389 116.908 113.879 116.748 114.36L 104.373 110.22C 104.45 109.988 104.52 109.753 104.584 109.515C 104.648 109.276 104.705 109.038 104.753 108.799L 117.541 111.401Z' fill='#55cdfc'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 151.869 108.074L 104.879 108.074C 104.955 107.526 104.995 106.966 104.995 106.397C 104.995 105.829 104.955 105.269 104.879 104.721L 149.933 104.721L 151.869 108.074Z' fill='#f7a8b8'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 92.9498 6.0225L 6.0225 156.585L 179.877 156.585L 92.9498 6.0225Z' fill='none' stroke='#f7a8b8' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='12.045'/>
|
|
||||||
</g>
|
|
||||||
<g transform='matrix(0.996264 0 0 0.996264 149.012 159.858)'>
|
|
||||||
<path d='M 92.9498 12.045L 11.2381 153.574L 174.661 153.574L 92.9498 12.045Z' fill='none' stroke='#55cdfc' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10.0375' stroke-width='6.0225'/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.8 KiB |
|
@ -3,8 +3,6 @@ let files = [];
|
||||||
let socket = null;
|
let socket = null;
|
||||||
let fileIndex = 0;
|
let fileIndex = 0;
|
||||||
let byteIndex = 0;
|
let byteIndex = 0;
|
||||||
let bytesSent = 0;
|
|
||||||
let totalBytes = 0;
|
|
||||||
|
|
||||||
function sendMetadata() {
|
function sendMetadata() {
|
||||||
const metadata = files.map((file) => ({
|
const metadata = files.map((file) => ({
|
||||||
|
@ -27,7 +25,6 @@ function finishSending() {
|
||||||
function sendData() {
|
function sendData() {
|
||||||
if (fileIndex >= files.length) {
|
if (fileIndex >= files.length) {
|
||||||
finishSending();
|
finishSending();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
const currentFile = files[fileIndex];
|
const currentFile = files[fileIndex];
|
||||||
if (byteIndex < currentFile.size) {
|
if (byteIndex < currentFile.size) {
|
||||||
|
@ -35,8 +32,6 @@ function sendData() {
|
||||||
const data = currentFile.slice(byteIndex, endpoint);
|
const data = currentFile.slice(byteIndex, endpoint);
|
||||||
socket.send(data);
|
socket.send(data);
|
||||||
byteIndex = endpoint;
|
byteIndex = endpoint;
|
||||||
bytesSent += data.size;
|
|
||||||
progress.textContent = `${Math.floor(bytesSent * 100 / totalBytes)}%`;
|
|
||||||
} else {
|
} else {
|
||||||
fileIndex += 1;
|
fileIndex += 1;
|
||||||
byteIndex = 0;
|
byteIndex = 0;
|
||||||
|
@ -48,8 +43,6 @@ const fileInput = document.getElementById('file_input');
|
||||||
const fileInputMessage = document.getElementById('file_input_message');
|
const fileInputMessage = document.getElementById('file_input_message');
|
||||||
const fileList = document.getElementById('file_list');
|
const fileList = document.getElementById('file_list');
|
||||||
const uploadButton = document.getElementById('upload');
|
const uploadButton = document.getElementById('upload');
|
||||||
const downloadLink = document.getElementById('download_link');
|
|
||||||
const progress = document.getElementById('progress');
|
|
||||||
|
|
||||||
function updateButtons() {
|
function updateButtons() {
|
||||||
if (files.length === 0) {
|
if (files.length === 0) {
|
||||||
|
@ -102,15 +95,10 @@ uploadButton.addEventListener('click', (e) => {
|
||||||
button.disabled = true;
|
button.disabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
totalBytes = files.reduce((acc, file) => acc + file.size, 0);
|
socket = new WebSocket('ws://localhost:3000/upload');
|
||||||
|
|
||||||
socket = new WebSocket(`ws://${window.location.host}/upload`);
|
|
||||||
socket.addEventListener('open', sendMetadata);
|
socket.addEventListener('open', sendMetadata);
|
||||||
socket.addEventListener('message', (msg) => {
|
socket.addEventListener('message', (msg) => {
|
||||||
if (bytesSent === 0 && msg.data.match(/^[A-Za-z0-9]+$/)) {
|
if (msg.data === 'ack') {
|
||||||
downloadLink.textContent = msg.data;
|
|
||||||
sendData();
|
|
||||||
} else if (msg.data === 'ack') {
|
|
||||||
sendData();
|
sendData();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue