Skip to content

Commit

Permalink
demo funcional
Browse files Browse the repository at this point in the history
  • Loading branch information
Heitor-Santos committed Aug 17, 2020
1 parent d60c80b commit 4b7af98
Show file tree
Hide file tree
Showing 14 changed files with 212 additions and 166 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Procurar torrent ou qualquer outra forma de fazer download de um álbum que não
Você pode conferir as configurações do servidor [aqui](/server/README.md).
Você pode conferir as configurações da interface gráfica [aqui](/gui/README.md).

## Live preview
Um preview funcional está disponível [aqui](https://yt-album-downloader.web.app).
## Live demo
Uma demo funcional está disponível [aqui](https://yt-album-downloader.web.app).

## last.fm
Me siga no [last.fm](https://www.last.fm/pt/user/tuto_) ;)))
114 changes: 57 additions & 57 deletions gui/.firebase/hosting.YnVpbGQ.cache
Original file line number Diff line number Diff line change
@@ -1,57 +1,57 @@
asset-manifest.json,1597416017486,ba96b6e20112325007bf61b4808d1784d1e94becaca18b22f3469f96a234f84d
favicon.ico,1597415998425,d52725447d459e45091e1b11067fae1b25546e108c13e7107747e75bf5bd2569
index.html,1597416017482,991c85a241bbd93abf245fc18130b55ac71067275e51f1ba3335618ddb7022e4
logo192.png,1597415998425,76c449ccb9cd117c2f2338f091b18f7050f3210e249b2228f5c81b23f34377cd
logo512.png,1597415998425,7779210d56c1f3741e2e487799fe3092def4fa6ac450a60532b807c3a8971205
manifest.json,1597415998425,0958a5e0c831126100c8c2d06a6bbaa665a3900f21aaff4130238a6f5a113aa1
precache-manifest.5af7e2e114bf01760c6891f9a3a11a49.js,1597416017482,1935ed565d3fc89e04e7939287593077e2288f4e7e41b2c83e097335cf681560
robots.txt,1597415998425,2544ca049f223a42bff01f72ad930a5edba75bbb7199d0f8430a02ff5aca16ec
service-worker.js,1597416017482,1ebe5b074d363f129188e744adb425e23a638cceab1676b40b75da06340f0764
static/css/2.20981966.chunk.css,1597416017478,b3915336a86902669d21e2dd90f335e99ee32c31dbea8403542bd5d45f09dd42
static/css/2.20981966.chunk.css.map,1597416017482,cfd9cde86e032c03f377b07f1c10f25bcdecfd247f4627e64536ec2752c54cb5
static/css/main.5f361e03.chunk.css,1597416017474,1225945381892d813e90efe1c2bf85dad429fb1fce6829657a852a833b2081a3
static/css/main.5f361e03.chunk.css.map,1597416017482,598f7972010d8f32c864cacf97d3770434b6aaf52e74a00c2e8b1b13faf78d9f
static/js/2.afc5c31b.chunk.js.LICENSE.txt,1597416017482,ae8a54d8149cbb465d0d7e0a0bedafe6841abbf0ee2d87190fee047131a493be
static/js/main.9c432a26.chunk.js,1597416017474,5d15f78f2213107cad8696a6ae562f4341b4d87322f58e738979f4fddfde196d
static/js/runtime-main.b0b4fd9f.js,1597416017478,cc168bdc9a35edc5b35c91a8646b14151f1498045c6a935bb8f556a0695a4545
static/js/runtime-main.b0b4fd9f.js.map,1597416017486,28c171a19b5c9415cd40dfbffab745b136a2051a242758d1029cc47e5646b312
static/js/main.9c432a26.chunk.js.map,1597416017482,e54f1fe13cde5c1fb484e27d5c16e923dd936f067935e34ba095aaaa1fd1cbff
static/media/roboto-latin-100-normal.7370c367.woff2,1597416017474,fec1f81d4ad7c52951fa69630695f911167ca2182ee60858664bf3239fc8d3bc
static/media/roboto-latin-300-normal.ef7c6637.woff2,1597416017474,114b542bde3aa86f6fea7a4cf49d463b1e3bcda88a00d4434667af8361270298
static/media/roboto-latin-400-normal.479970ff.woff2,1597416017474,9055258e9962f719df7bbe9ed52aa8132005255601dde210dd6124f5b449514a
static/media/roboto-latin-500-normal.020c97dc.woff2,1597416017474,094a4ce2dbbc4b1813a386c48bb8fb701fe9f3f40cd105df5ffd696fdfbfefa0
static/media/roboto-latin-700-normal.2735a3a6.woff2,1597416017474,632a58ff64f17e9214748c60cbc770c559f635014ec22a17de324ba83f28d495
static/media/roboto-latin-100-italic.f8b1df51.woff2,1597416017470,e32390e627531ef59ed32c7473c58f927c97f3d28cd136961ac4dda2b8b97652
static/media/roboto-latin-100-italic.f9e8e590.woff,1597416017474,d64942962daed8e4d38eee11ef999167fded841a4b2021b50e895fa5ee0e40c7
static/media/roboto-latin-100-normal.5cb7edfc.woff,1597416017474,bfdd187beb4585e2823f2fd75eeda9cb86fe41a291f8533d71eaf9ba1b98725e
static/media/roboto-latin-300-italic.14286f3b.woff2,1597416017474,2e0ef454ba011860ed1f3d92b0fcd312b05e09708ecc34157163bf51db1bad3f
static/media/roboto-latin-300-italic.4df32891.woff,1597416017474,b898f53b4d504dea5e7cbae7b658db2b8827aa2cda5b8d3ff0d6f66f7c49a031
static/media/roboto-latin-100-italic.a90b3053.ttf,1597416017474,73443290a8f77ef8e4ae3b9f3cb1d39e7245ce3c177ab4803e679f06769a6efc
static/media/roboto-latin-100-normal.ff1e90ce.ttf,1597416017474,4799491747e828e3b32e6b7d5ff21d6508b46ac9815323759329aa5d39324dbb
static/media/roboto-latin-300-normal.b00849e0.woff,1597416017474,020782eb2d471746f1ca9efdf1a41f0f837d8d81d7924b44d298acd1e16afc01
static/media/roboto-latin-400-italic.51521a2a.woff2,1597416017474,be1f6c65d7205341be4c77384e2691dc4a86fbdabb9ae74fbf6814b62183426e
static/media/roboto-latin-400-italic.fe65b833.woff,1597416017474,17272cd004d39375bcaf98c2b5b567078f104936c46235ca156766ccb898be93
static/media/roboto-latin-300-italic.51c5bffe.ttf,1597416017474,f59efd96fce20fb7af1eb57ed709e2c46ea62a228c6927205518d98caa97357e
static/media/roboto-latin-400-normal.60fa3c06.woff,1597416017474,3461a62ccac1bd91ed5a6b58ac6a2dd9f6a3f02b775735fb9c2afcdb2c5d7c43
static/media/roboto-latin-300-normal.806854d4.ttf,1597416017474,d56c9e1c0deeb0d35b7991efb8db24a5acb0d2e2b9d1d6704cd9357e3970dfb3
static/media/roboto-latin-400-normal.329ae1c3.ttf,1597416017474,fe33ef7623205405482522ef2e936e666d655757ea0f2ee1d9157cbc729d53fd
static/media/roboto-latin-400-italic.d4ad1feb.ttf,1597416017474,b498e5a40b84cfb1acee784810b454bfd6b63c2b4c187207f1dcfa106fdca97a
static/media/roboto-latin-500-italic.288ad9c6.woff,1597416017474,9cf7c604f57d195a58ec797ff7a2b900d42203139c75c5a0a4fb1bdac5fc1307
static/media/roboto-latin-500-italic.db4a2a23.woff2,1597416017474,08c1b0f33fcfa0bae8ff81e98b138e8539fbf25f67919591baa8ea212590922c
static/media/roboto-latin-500-normal.87284894.woff,1597416017474,46d28a430ded7eb1064edea34d60703ce55f8f8ec9c9f19b61529d36c994a77e
static/media/roboto-latin-500-italic.0a36c77f.ttf,1597416017474,fd36d319b3f568dae4e87dc6187ced38415074f8425a40101a276afcfc84bf7a
static/media/roboto-latin-700-italic.81f57861.woff,1597416017474,351d0b02e9f44cad55d01a00963980d31cf020693d18b540ac568be6e08776d0
static/media/roboto-latin-700-italic.da0e7178.woff2,1597416017474,9683ae99c43ee14b9e9bfb43f8464c425bcac3af98337523a0a993a7c4614b99
static/media/roboto-latin-700-normal.96559ffb.ttf,1597416017474,a5d74319c45098e8293999c8034b896c571811125ce7473f6b56e79f9fd42092
static/media/roboto-latin-500-normal.8c608256.ttf,1597416017474,89c98e4526e06a12c403213245061c351809eafbe2488ea2c5685c3088e2ce95
static/media/roboto-latin-700-italic.4c13d18a.ttf,1597416017474,0f1d6e09ea5eabfd2899a2d9586833d5ae16b7f75e4f1abdd8880f3e42753dac
static/media/roboto-latin-900-normal.9b3766ef.woff2,1597416017478,a54d7bb08369a07ab7e79f0518147f13779033dfb7c99dbf3dbac9badf99bd03
static/media/roboto-latin-700-normal.adcde98f.woff,1597416017474,5fadec1a270aa87a50eb16ff4b467c2c55b267e7081f05ca4e8669b8dcb1c922
static/media/roboto-latin-900-italic.28f91510.woff,1597416017478,006196b0dcdd5db5e8b008cf9a6df8213300197caf068e518122266062b090b9
static/media/roboto-latin-900-italic.ebf6d164.woff2,1597416017474,c53303d6c9a7bfeb19e9721a542d9a86600e4d9ea805a5509a51cc8916eaf8d8
static/media/roboto-latin-900-normal.bb1e4dc6.woff,1597416017478,3463e8e5358ce304e48621fec7e4a102b24189d8bdbb03a08a05513e82dee018
static/media/roboto-latin-900-italic.a3f8594c.ttf,1597416017478,73c32d5a2b6f5adebe0caf756e228235deaba3ad3eb8fdc04b36cd298297dbd8
static/media/roboto-latin-900-normal.22acb397.ttf,1597416017478,ade5923ee1c60925ca74adff8cbd4d0da3f057b3022e51720ed19df14b3d8c01
static/js/2.afc5c31b.chunk.js,1597416017478,5166373e3fc56d419ed9da335b04d2014dacec8c357e35633ec22671bdbcc2b3
static/media/error.7b7ac30d.png,1597416017478,7bd2a101ef843c890c2103517238994ce856805e835c38e2016a5f0a64378169
static/js/2.afc5c31b.chunk.js.map,1597416017486,5b7048606cd0112db970c53bd825413b6d7ae7c964689990befd0c2262d0f5b2
asset-manifest.json,1597703535660,a42d4e55248dd5d149fa832a81a96978d3ba63c69cdda6eeb982252e30472bcc
index.html,1597703535660,da04a44e40a31e4d9fbfd7b789af1c729404c9f8ce4b3312a9f2ae7b208fe380
logo192.png,1597703522904,6b864e24be74755c309551788c9f603c3ee23d55b255357257e0c2d08092fa89
logo512.png,1597703522904,5246d90f104f6ad8f190cc2fab5e117face6561a3b51a80327b5c96cb0123fe5
manifest.json,1597703522904,0958a5e0c831126100c8c2d06a6bbaa665a3900f21aaff4130238a6f5a113aa1
robots.txt,1597703522904,2544ca049f223a42bff01f72ad930a5edba75bbb7199d0f8430a02ff5aca16ec
precache-manifest.99ff5a13df9a50d5c445b179dc351b08.js,1597703535660,9fba49d2237b4bccb6c2b12e3bbf55105c709ce3f87f2fb2c5493541c7c1f1ee
service-worker.js,1597703535660,c3f91298897fff0a4089964cbcf03676879debf27dd878a1463b3ae4304a6d51
static/css/2.20981966.chunk.css,1597703535660,b3915336a86902669d21e2dd90f335e99ee32c31dbea8403542bd5d45f09dd42
static/css/2.20981966.chunk.css.map,1597703535660,cfd9cde86e032c03f377b07f1c10f25bcdecfd247f4627e64536ec2752c54cb5
static/css/main.5f361e03.chunk.css,1597703535656,1225945381892d813e90efe1c2bf85dad429fb1fce6829657a852a833b2081a3
static/css/main.5f361e03.chunk.css.map,1597703535660,598f7972010d8f32c864cacf97d3770434b6aaf52e74a00c2e8b1b13faf78d9f
static/js/2.f1b5a4e6.chunk.js.LICENSE.txt,1597703535660,ae8a54d8149cbb465d0d7e0a0bedafe6841abbf0ee2d87190fee047131a493be
static/js/main.462fe02c.chunk.js,1597703535656,69cff0bdedf561feec47d1cfc56a591037a3ef9b7ae9c7bd51a182f6d6be29ee
favicon.ico,1597703522904,d52725447d459e45091e1b11067fae1b25546e108c13e7107747e75bf5bd2569
static/js/runtime-main.b0b4fd9f.js,1597703535660,cc168bdc9a35edc5b35c91a8646b14151f1498045c6a935bb8f556a0695a4545
static/js/runtime-main.b0b4fd9f.js.map,1597703535668,28c171a19b5c9415cd40dfbffab745b136a2051a242758d1029cc47e5646b312
static/media/roboto-latin-100-normal.7370c367.woff2,1597703535656,fec1f81d4ad7c52951fa69630695f911167ca2182ee60858664bf3239fc8d3bc
static/js/main.462fe02c.chunk.js.map,1597703535660,815de3aa234de81f1ff45dcbf1fedc6c216210e1b1c7887d5d44cafd2d49b23d
static/media/roboto-latin-300-normal.ef7c6637.woff2,1597703535656,114b542bde3aa86f6fea7a4cf49d463b1e3bcda88a00d4434667af8361270298
static/media/roboto-latin-400-normal.479970ff.woff2,1597703535656,9055258e9962f719df7bbe9ed52aa8132005255601dde210dd6124f5b449514a
static/media/roboto-latin-500-normal.020c97dc.woff2,1597703535656,094a4ce2dbbc4b1813a386c48bb8fb701fe9f3f40cd105df5ffd696fdfbfefa0
static/media/roboto-latin-700-normal.2735a3a6.woff2,1597703535656,632a58ff64f17e9214748c60cbc770c559f635014ec22a17de324ba83f28d495
static/media/roboto-latin-100-italic.a90b3053.ttf,1597703535656,73443290a8f77ef8e4ae3b9f3cb1d39e7245ce3c177ab4803e679f06769a6efc
static/media/roboto-latin-100-italic.f8b1df51.woff2,1597703535652,e32390e627531ef59ed32c7473c58f927c97f3d28cd136961ac4dda2b8b97652
static/media/roboto-latin-100-italic.f9e8e590.woff,1597703535656,d64942962daed8e4d38eee11ef999167fded841a4b2021b50e895fa5ee0e40c7
static/media/roboto-latin-300-italic.14286f3b.woff2,1597703535656,2e0ef454ba011860ed1f3d92b0fcd312b05e09708ecc34157163bf51db1bad3f
static/media/roboto-latin-300-italic.4df32891.woff,1597703535656,b898f53b4d504dea5e7cbae7b658db2b8827aa2cda5b8d3ff0d6f66f7c49a031
static/media/roboto-latin-100-normal.5cb7edfc.woff,1597703535656,bfdd187beb4585e2823f2fd75eeda9cb86fe41a291f8533d71eaf9ba1b98725e
static/media/roboto-latin-300-normal.b00849e0.woff,1597703535656,020782eb2d471746f1ca9efdf1a41f0f837d8d81d7924b44d298acd1e16afc01
static/media/roboto-latin-400-italic.51521a2a.woff2,1597703535656,be1f6c65d7205341be4c77384e2691dc4a86fbdabb9ae74fbf6814b62183426e
static/media/roboto-latin-300-normal.806854d4.ttf,1597703535656,d56c9e1c0deeb0d35b7991efb8db24a5acb0d2e2b9d1d6704cd9357e3970dfb3
static/media/roboto-latin-100-normal.ff1e90ce.ttf,1597703535656,4799491747e828e3b32e6b7d5ff21d6508b46ac9815323759329aa5d39324dbb
static/media/roboto-latin-400-italic.fe65b833.woff,1597703535656,17272cd004d39375bcaf98c2b5b567078f104936c46235ca156766ccb898be93
static/media/roboto-latin-400-normal.60fa3c06.woff,1597703535656,3461a62ccac1bd91ed5a6b58ac6a2dd9f6a3f02b775735fb9c2afcdb2c5d7c43
static/media/roboto-latin-300-italic.51c5bffe.ttf,1597703535656,f59efd96fce20fb7af1eb57ed709e2c46ea62a228c6927205518d98caa97357e
static/media/roboto-latin-400-italic.d4ad1feb.ttf,1597703535656,b498e5a40b84cfb1acee784810b454bfd6b63c2b4c187207f1dcfa106fdca97a
static/media/roboto-latin-500-italic.288ad9c6.woff,1597703535656,9cf7c604f57d195a58ec797ff7a2b900d42203139c75c5a0a4fb1bdac5fc1307
static/media/roboto-latin-500-italic.db4a2a23.woff2,1597703535656,08c1b0f33fcfa0bae8ff81e98b138e8539fbf25f67919591baa8ea212590922c
static/media/roboto-latin-400-normal.329ae1c3.ttf,1597703535656,fe33ef7623205405482522ef2e936e666d655757ea0f2ee1d9157cbc729d53fd
static/media/roboto-latin-700-italic.81f57861.woff,1597703535656,351d0b02e9f44cad55d01a00963980d31cf020693d18b540ac568be6e08776d0
static/media/roboto-latin-700-italic.da0e7178.woff2,1597703535656,9683ae99c43ee14b9e9bfb43f8464c425bcac3af98337523a0a993a7c4614b99
static/media/roboto-latin-500-italic.0a36c77f.ttf,1597703535656,fd36d319b3f568dae4e87dc6187ced38415074f8425a40101a276afcfc84bf7a
static/media/roboto-latin-700-italic.4c13d18a.ttf,1597703535656,0f1d6e09ea5eabfd2899a2d9586833d5ae16b7f75e4f1abdd8880f3e42753dac
static/media/roboto-latin-500-normal.8c608256.ttf,1597703535656,89c98e4526e06a12c403213245061c351809eafbe2488ea2c5685c3088e2ce95
static/media/roboto-latin-700-normal.96559ffb.ttf,1597703535656,a5d74319c45098e8293999c8034b896c571811125ce7473f6b56e79f9fd42092
static/media/roboto-latin-500-normal.87284894.woff,1597703535656,46d28a430ded7eb1064edea34d60703ce55f8f8ec9c9f19b61529d36c994a77e
static/media/roboto-latin-900-normal.9b3766ef.woff2,1597703535656,a54d7bb08369a07ab7e79f0518147f13779033dfb7c99dbf3dbac9badf99bd03
static/media/roboto-latin-700-normal.adcde98f.woff,1597703535656,5fadec1a270aa87a50eb16ff4b467c2c55b267e7081f05ca4e8669b8dcb1c922
static/media/roboto-latin-900-italic.28f91510.woff,1597703535656,006196b0dcdd5db5e8b008cf9a6df8213300197caf068e518122266062b090b9
static/media/roboto-latin-900-italic.ebf6d164.woff2,1597703535656,c53303d6c9a7bfeb19e9721a542d9a86600e4d9ea805a5509a51cc8916eaf8d8
static/media/roboto-latin-900-normal.bb1e4dc6.woff,1597703535660,3463e8e5358ce304e48621fec7e4a102b24189d8bdbb03a08a05513e82dee018
static/media/roboto-latin-900-normal.22acb397.ttf,1597703535660,ade5923ee1c60925ca74adff8cbd4d0da3f057b3022e51720ed19df14b3d8c01
static/media/roboto-latin-900-italic.a3f8594c.ttf,1597703535656,73c32d5a2b6f5adebe0caf756e228235deaba3ad3eb8fdc04b36cd298297dbd8
static/js/2.f1b5a4e6.chunk.js,1597703535660,5c608c007efdd37a97347cf1d7fa9032446063f91ab16fc929f6d3c22c761992
static/media/error.7b7ac30d.png,1597703535660,7bd2a101ef843c890c2103517238994ce856805e835c38e2016a5f0a64378169
static/js/2.f1b5a4e6.chunk.js.map,1597703535668,d6da86a723b382eb8fffae5cd1368939bcecd64637189d907e7e8d2a8d8f0de3
6 changes: 3 additions & 3 deletions gui/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion gui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
"react-scripts": "3.4.1",
"socket.io-client": "^2.3.0",
"typescript": "^3.7.5",
"ytdl-core": "^3.1.3"
"ytdl-core": "^3.2.1"
},
"scripts": {
"start": "PORT=process.env.PORT react-scripts start",
Expand Down
2 changes: 1 addition & 1 deletion gui/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
content="Baixe álbuns vindos do YouTube em várias faixas MP3!"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
Expand Down
Binary file modified gui/public/logo192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified gui/public/logo512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 14 additions & 10 deletions gui/src/AlbumInfo.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ import Paper from '@material-ui/core/Paper';
import CloudDownloadIcon from '@material-ui/icons/CloudDownload';
import { TablePagination, Typography, Grid, Button, Container, Box, Divider, CircularProgress } from '@material-ui/core';
import { AlbumInfoColumn, Song, InfoProps, createSong } from './interfaces'
import { getAlbumInfo, downloadAlbum } from './requests'
import { getAlbumInfo, downloadAlbum, prepareAlbum} from './requests'
import useStyles from './styles'
import { sec2time, labelRows } from './util'
import socket from 'socket.io-client'
let io;
let io: SocketIOClient.Socket;

function AlbumInfo(props: InfoProps) {
const [rows, setRows] = useState<Array<Song>>([])
Expand Down Expand Up @@ -66,21 +66,25 @@ function AlbumInfo(props: InfoProps) {
async function download() {
setDownloading(true)
setDisabled(true)
io = socket('https://corsytad.herokuapp.com/https://ytadserver.herokuapp.com/')
io.on('connect',()=>{console.log('conectou')})
io.on('step',(step: string)=>{setStep(step)})
io.on('prdwn',(progress:number)=>progressDownload(progress))
setTimeout(async()=>{
const download = await downloadAlbum(props.videoURL,props.match.params.artist,
props.match.params.albumName, rows, cover)
let info :{album:string, dir:string}
io = socket('https://ytadserver.herokuapp.com/')
io.on('socketReady', async (resp:boolean)=>{
info = await prepareAlbum(props.videoURL,props.match.params.artist,
props.match.params.albumName, rows, cover)
})
io.on('readyToDownload',async (resp:boolean)=>{
const download = await downloadAlbum(info.album, info.dir)
const url = window.URL.createObjectURL(new Blob([download]))
const link = document.createElement('a')
link.href = url
link.setAttribute('download', `${props.match.params.albumName}.zip`)
document.body.appendChild(link)
link.click()
setStep('Download finalizado!')
},5000)
io.disconnect()
})
io.on('step',(step: string)=>{setStep(step)})
io.on('prdwn',(progress:number)=>progressDownload(progress))
}
function progressDownload(progress:number){
if(progress===100){
Expand Down
2 changes: 1 addition & 1 deletion gui/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function App() {
console.log(resp)
if (resp?.videoDetails?.title !== '' && resp?.videoDetails?.lengthSeconds !== '') {
setVideoTitle(resp.videoDetails.title)
setVideoDuration(resp.videoDetails.lengthSeconds)
setVideoDuration(parseInt(resp.videoDetails.lengthSeconds))
}
else
setVideoTitle('Ocorreu um erro')
Expand Down
Loading

0 comments on commit 4b7af98

Please sign in to comment.