From 8f2bc6d5cdef24d6f9722329a408ceea7d1b882e Mon Sep 17 00:00:00 2001 From: Matt Isenhower Date: Fri, 27 Jul 2018 11:08:37 -0700 Subject: [PATCH] Reorganize source files in preparation for transition to vue-cli The biggest changes here include splitting the server-side JS into multiple directories (under /src/app), moving all web content to /src/web, and compiling the web app to /dist instead of /public. This layout makes more sense overall, and more closely mirrors what is used for vue-cli v3 projects. --- .gitignore | 2 +- docker-compose.yml | 2 +- package.json | 17 +++++-- .../android-chrome-192x192.png | Bin .../android-chrome-512x512.png | Bin .../icons/public => public}/browserconfig.xml | 0 {src/html => public}/index.html | 12 ++--- {src/icons/public => public}/manifest.json | 0 .../public => public}/mstile-144x144.png | Bin .../public => public}/mstile-150x150.png | Bin .../public => public}/mstile-310x150.png | Bin .../public => public}/mstile-310x310.png | Bin {src/icons/public => public}/mstile-70x70.png | Bin {src/html => public}/screenshots.html | 0 src/{updater => app}/cron.js | 6 +-- src/app/index.js | 9 ++++ src/app/screenshots/index.js | 3 ++ .../screenshots}/screenshots.js | 3 +- src/{updater => app}/twitter/client.js | 1 - src/app/twitter/index.js | 3 ++ .../twitter/tweets}/GearTweet.js | 4 +- .../twitter/tweets}/NewStageTweet.js | 4 +- .../twitter/tweets}/NewWeaponTweet.js | 4 +- .../twitter/tweets}/SalmonRunGearTweet.js | 4 +- .../twitter/tweets}/SalmonRunTweet.js | 4 +- .../twitter/tweets}/ScheduleTweet.js | 4 +- .../twitter/tweets}/SplatfestTweet.js | 6 +-- .../twitter/tweets}/TwitterPostBase.js | 4 +- src/app/twitter/tweets/index.js | 19 ++++++++ src/app/twitter/twitter.js | 22 +++++++++ .../updater/LocalizationProcessor.js | 4 +- src/app/updater/index.js | 3 ++ .../update.js => app/updater/updateAll.js} | 9 +--- .../updater/updaters/CoopSchedulesUpdater.js | 0 .../updater/updaters/FestivalsUpdater.js | 4 +- .../updater/updaters/MerchandisesUpdater.js | 4 +- .../updaters/OriginalGearImageUpdater.js | 2 +- .../updater/updaters/SchedulesUpdater.js | 4 +- .../updater/updaters/TimelineUpdater.js | 0 src/{ => app}/updater/updaters/Updater.js | 14 ++---- src/{updater => common}/bootstrap.js | 1 + src/{js => common}/data/brands.json | 0 .../data/gear.json} | 0 src/{js => common}/data/skills.json | 0 src/{js => common}/regions.js | 0 src/{updater => common}/splatnet.js | 0 src/{js => common}/splatoon.js | 2 +- src/{updater => common}/utilities.js | 2 +- src/updater/twitter.js | 43 ------------------ .../copyTranslation.js} | 16 ++----- .../getSplatNetLanguageFiles.js | 15 +++--- src/utility/index.js | 9 ++++ src/{updater => utility}/retrieveGearData.js | 2 +- src/{updater => utility}/updateGear.js | 16 +++---- src/{js => web}/analytics.js | 0 src/{ => web/assets}/css/_backgrounds.scss | 0 src/{ => web/assets}/css/_boxes.scss | 0 src/{ => web/assets}/css/_fonts.scss | 0 src/{ => web/assets}/css/_modifiers.scss | 0 src/{ => web/assets}/css/_variables.scss | 0 src/{ => web/assets}/css/main.scss | 0 src/{ => web/assets}/css/screenshots.scss | 0 .../0e12b13c359d4803021dc4e17cecc311.woff2 | Bin .../5476b40d543260503fbccbbab305b1f9.woff2 | Bin .../61f6c62eb1065d00c9a2bcf85e090fe4.woff2 | Bin .../b426a8e06ebdfcb82b481ab57922d6b4.woff | Bin .../b4fab2f6ac35a758f6aeb5b7054ab121.woff | Bin .../eb82d017016045bf998cade4dac1ec22.woff2 | Bin .../f25982b8ab52a929938cd63f15656ecf.woff | Bin .../f85b6b75e658c1758ee0b3f2262c9522.woff | Bin .../assets}/icons/apple-touch-icon.png | Bin src/{ => web/assets}/icons/favicon-16x16.png | Bin src/{ => web/assets}/icons/favicon-32x32.png | Bin src/{ => web/assets}/icons/favicon.ico | Bin .../assets}/icons/safari-pinned-tab.svg | 0 src/{ => web/assets}/img/404.jpg | Bin src/{ => web/assets}/img/battle-league.png | Bin src/{ => web/assets}/img/battle-ranked.png | Bin src/{ => web/assets}/img/battle-regular.png | Bin src/{ => web/assets}/img/bg-circles.png | Bin src/{ => web/assets}/img/bg-dots.png | Bin src/{ => web/assets}/img/bg-mask-banner.png | Bin src/{ => web/assets}/img/bg-mask-hook.png | Bin .../assets}/img/bg-mask-ink-splat.svg | 0 src/{ => web/assets}/img/bg-mask-product.png | Bin .../assets}/img/bg-mask-title-squid.png | Bin src/{ => web/assets}/img/bg-spots.png | Bin src/{ => web/assets}/img/bg-squids-light.png | Bin src/{ => web/assets}/img/bg-squids.png | Bin src/{ => web/assets}/img/bg-stripes.png | Bin src/{ => web/assets}/img/bg-wavy.png | Bin src/{ => web/assets}/img/blank-skill-slot.png | Bin src/{ => web/assets}/img/cash.png | Bin src/{ => web/assets}/img/favicon.svg | 0 src/{ => web/assets}/img/hero-char-2.png | Bin src/{ => web/assets}/img/hero-char.png | Bin src/{ => web/assets}/img/mr-grizz.png | Bin src/{ => web/assets}/img/salmon-run-mini.png | Bin .../assets}/img/salmon-run-random-weapon.png | Bin src/{ => web/assets}/img/salmon-run.png | Bin .../assets}/img/stages/lost-outpost.jpg | Bin .../assets}/img/stages/marooners-bay.jpg | Bin .../img/stages/turf-wars-stage-1_2x.jpg | Bin .../img/stages/turf-wars-stage-2_2x.jpg | Bin .../img/stages/turf-wars-stage-3_2x.jpg | Bin .../img/stages/turf-wars-stage-4_2x.jpg | Bin .../img/stages/turf-wars-stage-5_2x.jpg | Bin .../img/stages/turf-wars-stage-6_2x.jpg | Bin .../img/stages/turf-wars-stage-7_2x.jpg | Bin .../img/stages/turf-wars-stage-8_2x.jpg | Bin .../img/stages/turf-wars-stage-9_2x.jpg | Bin src/{ => web/assets}/img/twitter-white.png | Bin src/{js => web}/components/404.vue | 2 +- src/{js => web}/components/AboutDialog.vue | 4 +- src/{js => web}/components/App.vue | 0 src/{js => web}/components/CalendarDialog.vue | 4 +- src/{js => web}/components/CalendarLink.vue | 0 src/{js => web}/components/Dropdown.vue | 0 src/{js => web}/components/Main.vue | 2 +- src/{js => web}/components/Modal.vue | 0 src/{js => web}/components/Screenshots.vue | 0 .../screenshots/ScreenshotHelper.vue | 0 .../components/screenshots/Wrapper.vue | 2 +- .../screenshots/newweapon/NewWeapon.vue | 4 +- .../screenshots/salmonrun/SalmonRun.vue | 4 +- .../screenshots/salmonrun/SalmonRunGear.vue | 4 +- .../screenshots/schedules/ScheduleBox.vue | 8 ++-- .../screenshots/schedules/Schedules.vue | 2 +- .../screenshots/splatfest/Splatfest.vue | 10 ++-- .../screenshots/splatnetgear/SplatNetGear.vue | 4 +- .../components/splatoon/GameModeHeader.vue | 6 +-- .../components/splatoon/MerchandiseBox.vue | 8 ++-- .../components/splatoon/NewWeaponBox.vue | 0 .../components/splatoon/SalmonRunBox.vue | 4 +- .../splatoon/SalmonRunDetailsBar.vue | 2 +- .../splatoon/SalmonRunGearDialog.vue | 2 +- .../components/splatoon/ScheduleBox.vue | 0 .../components/splatoon/ScheduleDialog.vue | 4 +- .../components/splatoon/ScheduleList.vue | 0 .../components/splatoon/ScheduleRow.vue | 0 .../splatoon/SplatNetGearDialog.vue | 4 +- .../components/splatoon/SplatfestBox.vue | 0 .../splatoon/SplatfestHistoryDialog.vue | 8 ++-- .../splatoon/SplatfestResultsBox.vue | 0 .../splatoon/SplatfestResultsRow.vue | 0 .../splatoon/SplatfestWinnerBar.vue | 0 src/{js => web}/components/splatoon/Stage.vue | 4 +- src/{js => web}/directives.js | 0 src/{js => web}/filters.js | 0 src/{js => web}/i18n/index.js | 2 +- src/{ => web}/locale/de.json | 0 src/{ => web}/locale/en.json | 0 src/{ => web}/locale/es-MX.json | 0 src/{ => web}/locale/es.json | 0 src/{ => web}/locale/fr-CA.json | 0 src/{ => web}/locale/fr.json | 0 src/{ => web}/locale/it.json | 0 src/{ => web}/locale/ja.json | 0 src/{ => web}/locale/nl.json | 0 src/{ => web}/locale/ru.json | 0 src/{js => web}/main.js | 0 src/{js => web}/router.js | 0 src/{js => web}/screenshots.js | 0 src/{js => web}/splatoonStages.js | 16 +++---- src/{js => web}/store/actions.js | 2 +- src/{js => web}/store/index.js | 0 webpack.config.js | 24 +++++----- yarn.lock | 4 ++ 168 files changed, 216 insertions(+), 207 deletions(-) rename {src/icons/public => public}/android-chrome-192x192.png (100%) rename {src/icons/public => public}/android-chrome-512x512.png (100%) rename {src/icons/public => public}/browserconfig.xml (100%) rename {src/html => public}/index.html (77%) rename {src/icons/public => public}/manifest.json (100%) rename {src/icons/public => public}/mstile-144x144.png (100%) rename {src/icons/public => public}/mstile-150x150.png (100%) rename {src/icons/public => public}/mstile-310x150.png (100%) rename {src/icons/public => public}/mstile-310x310.png (100%) rename {src/icons/public => public}/mstile-70x70.png (100%) rename {src/html => public}/screenshots.html (100%) rename src/{updater => app}/cron.js (72%) create mode 100644 src/app/index.js create mode 100644 src/app/screenshots/index.js rename src/{updater => app/screenshots}/screenshots.js (96%) rename src/{updater => app}/twitter/client.js (98%) create mode 100644 src/app/twitter/index.js rename src/{updater/twitter => app/twitter/tweets}/GearTweet.js (88%) rename src/{updater/twitter => app/twitter/tweets}/NewStageTweet.js (88%) rename src/{updater/twitter => app/twitter/tweets}/NewWeaponTweet.js (92%) rename src/{updater/twitter => app/twitter/tweets}/SalmonRunGearTweet.js (88%) rename src/{updater/twitter => app/twitter/tweets}/SalmonRunTweet.js (90%) rename src/{updater/twitter => app/twitter/tweets}/ScheduleTweet.js (93%) rename src/{updater/twitter => app/twitter/tweets}/SplatfestTweet.js (96%) rename src/{updater/twitter => app/twitter/tweets}/TwitterPostBase.js (96%) create mode 100644 src/app/twitter/tweets/index.js create mode 100644 src/app/twitter/twitter.js rename src/{ => app}/updater/LocalizationProcessor.js (95%) create mode 100644 src/app/updater/index.js rename src/{updater/update.js => app/updater/updateAll.js} (83%) rename src/{ => app}/updater/updaters/CoopSchedulesUpdater.js (100%) rename src/{ => app}/updater/updaters/FestivalsUpdater.js (96%) rename src/{ => app}/updater/updaters/MerchandisesUpdater.js (94%) rename src/{ => app}/updater/updaters/OriginalGearImageUpdater.js (91%) rename src/{ => app}/updater/updaters/SchedulesUpdater.js (95%) rename src/{ => app}/updater/updaters/TimelineUpdater.js (100%) rename src/{ => app}/updater/updaters/Updater.js (93%) rename src/{updater => common}/bootstrap.js (83%) rename src/{js => common}/data/brands.json (100%) rename src/{js/data/inkipediaGear.json => common/data/gear.json} (100%) rename src/{js => common}/data/skills.json (100%) rename src/{js => common}/regions.js (100%) rename src/{updater => common}/splatnet.js (100%) rename src/{js => common}/splatoon.js (91%) rename src/{updater => common}/utilities.js (95%) delete mode 100644 src/updater/twitter.js rename src/{updater/translationHelper.js => utility/copyTranslation.js} (64%) rename src/{updater => utility}/getSplatNetLanguageFiles.js (81%) create mode 100644 src/utility/index.js rename src/{updater => utility}/retrieveGearData.js (97%) rename src/{updater => utility}/updateGear.js (93%) rename src/{js => web}/analytics.js (100%) rename src/{ => web/assets}/css/_backgrounds.scss (100%) rename src/{ => web/assets}/css/_boxes.scss (100%) rename src/{ => web/assets}/css/_fonts.scss (100%) rename src/{ => web/assets}/css/_modifiers.scss (100%) rename src/{ => web/assets}/css/_variables.scss (100%) rename src/{ => web/assets}/css/main.scss (100%) rename src/{ => web/assets}/css/screenshots.scss (100%) rename src/{ => web/assets}/fonts/0e12b13c359d4803021dc4e17cecc311.woff2 (100%) rename src/{ => web/assets}/fonts/5476b40d543260503fbccbbab305b1f9.woff2 (100%) rename src/{ => web/assets}/fonts/61f6c62eb1065d00c9a2bcf85e090fe4.woff2 (100%) rename src/{ => web/assets}/fonts/b426a8e06ebdfcb82b481ab57922d6b4.woff (100%) rename src/{ => web/assets}/fonts/b4fab2f6ac35a758f6aeb5b7054ab121.woff (100%) rename src/{ => web/assets}/fonts/eb82d017016045bf998cade4dac1ec22.woff2 (100%) rename src/{ => web/assets}/fonts/f25982b8ab52a929938cd63f15656ecf.woff (100%) rename src/{ => web/assets}/fonts/f85b6b75e658c1758ee0b3f2262c9522.woff (100%) rename src/{ => web/assets}/icons/apple-touch-icon.png (100%) rename src/{ => web/assets}/icons/favicon-16x16.png (100%) rename src/{ => web/assets}/icons/favicon-32x32.png (100%) rename src/{ => web/assets}/icons/favicon.ico (100%) rename src/{ => web/assets}/icons/safari-pinned-tab.svg (100%) rename src/{ => web/assets}/img/404.jpg (100%) rename src/{ => web/assets}/img/battle-league.png (100%) rename src/{ => web/assets}/img/battle-ranked.png (100%) rename src/{ => web/assets}/img/battle-regular.png (100%) rename src/{ => web/assets}/img/bg-circles.png (100%) rename src/{ => web/assets}/img/bg-dots.png (100%) rename src/{ => web/assets}/img/bg-mask-banner.png (100%) rename src/{ => web/assets}/img/bg-mask-hook.png (100%) rename src/{ => web/assets}/img/bg-mask-ink-splat.svg (100%) rename src/{ => web/assets}/img/bg-mask-product.png (100%) rename src/{ => web/assets}/img/bg-mask-title-squid.png (100%) rename src/{ => web/assets}/img/bg-spots.png (100%) rename src/{ => web/assets}/img/bg-squids-light.png (100%) rename src/{ => web/assets}/img/bg-squids.png (100%) rename src/{ => web/assets}/img/bg-stripes.png (100%) rename src/{ => web/assets}/img/bg-wavy.png (100%) rename src/{ => web/assets}/img/blank-skill-slot.png (100%) rename src/{ => web/assets}/img/cash.png (100%) rename src/{ => web/assets}/img/favicon.svg (100%) rename src/{ => web/assets}/img/hero-char-2.png (100%) rename src/{ => web/assets}/img/hero-char.png (100%) rename src/{ => web/assets}/img/mr-grizz.png (100%) rename src/{ => web/assets}/img/salmon-run-mini.png (100%) rename src/{ => web/assets}/img/salmon-run-random-weapon.png (100%) rename src/{ => web/assets}/img/salmon-run.png (100%) rename src/{ => web/assets}/img/stages/lost-outpost.jpg (100%) rename src/{ => web/assets}/img/stages/marooners-bay.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-1_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-2_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-3_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-4_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-5_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-6_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-7_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-8_2x.jpg (100%) rename src/{ => web/assets}/img/stages/turf-wars-stage-9_2x.jpg (100%) rename src/{ => web/assets}/img/twitter-white.png (100%) rename src/{js => web}/components/404.vue (94%) rename src/{js => web}/components/AboutDialog.vue (96%) rename src/{js => web}/components/App.vue (100%) rename src/{js => web}/components/CalendarDialog.vue (96%) rename src/{js => web}/components/CalendarLink.vue (100%) rename src/{js => web}/components/Dropdown.vue (100%) rename src/{js => web}/components/Main.vue (99%) rename src/{js => web}/components/Modal.vue (100%) rename src/{js => web}/components/Screenshots.vue (100%) rename src/{js => web}/components/screenshots/ScreenshotHelper.vue (100%) rename src/{js => web}/components/screenshots/Wrapper.vue (96%) rename src/{js => web}/components/screenshots/newweapon/NewWeapon.vue (92%) rename src/{js => web}/components/screenshots/salmonrun/SalmonRun.vue (91%) rename src/{js => web}/components/screenshots/salmonrun/SalmonRunGear.vue (85%) rename src/{js => web}/components/screenshots/schedules/ScheduleBox.vue (81%) rename src/{js => web}/components/screenshots/schedules/Schedules.vue (95%) rename src/{js => web}/components/screenshots/splatfest/Splatfest.vue (86%) rename src/{js => web}/components/screenshots/splatnetgear/SplatNetGear.vue (94%) rename src/{js => web}/components/splatoon/GameModeHeader.vue (90%) rename src/{js => web}/components/splatoon/MerchandiseBox.vue (92%) rename src/{js => web}/components/splatoon/NewWeaponBox.vue (100%) rename src/{js => web}/components/splatoon/SalmonRunBox.vue (97%) rename src/{js => web}/components/splatoon/SalmonRunDetailsBar.vue (93%) rename src/{js => web}/components/splatoon/SalmonRunGearDialog.vue (92%) rename src/{js => web}/components/splatoon/ScheduleBox.vue (100%) rename src/{js => web}/components/splatoon/ScheduleDialog.vue (90%) rename src/{js => web}/components/splatoon/ScheduleList.vue (100%) rename src/{js => web}/components/splatoon/ScheduleRow.vue (100%) rename src/{js => web}/components/splatoon/SplatNetGearDialog.vue (92%) rename src/{js => web}/components/splatoon/SplatfestBox.vue (100%) rename src/{js => web}/components/splatoon/SplatfestHistoryDialog.vue (95%) rename src/{js => web}/components/splatoon/SplatfestResultsBox.vue (100%) rename src/{js => web}/components/splatoon/SplatfestResultsRow.vue (100%) rename src/{js => web}/components/splatoon/SplatfestWinnerBar.vue (100%) rename src/{js => web}/components/splatoon/Stage.vue (95%) rename src/{js => web}/directives.js (100%) rename src/{js => web}/filters.js (100%) rename src/{js => web}/i18n/index.js (81%) rename src/{ => web}/locale/de.json (100%) rename src/{ => web}/locale/en.json (100%) rename src/{ => web}/locale/es-MX.json (100%) rename src/{ => web}/locale/es.json (100%) rename src/{ => web}/locale/fr-CA.json (100%) rename src/{ => web}/locale/fr.json (100%) rename src/{ => web}/locale/it.json (100%) rename src/{ => web}/locale/ja.json (100%) rename src/{ => web}/locale/nl.json (100%) rename src/{ => web}/locale/ru.json (100%) rename src/{js => web}/main.js (100%) rename src/{js => web}/router.js (100%) rename src/{js => web}/screenshots.js (100%) rename src/{js => web}/splatoonStages.js (63%) rename src/{js => web}/store/actions.js (64%) rename src/{js => web}/store/index.js (100%) diff --git a/.gitignore b/.gitignore index 352bd8c..340eef1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ node_modules .env docker-compose.override.yml -public/* +/dist logs test-screenshot-* /storage diff --git a/docker-compose.yml b/docker-compose.yml index 76189b8..8da8cb1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,4 +14,4 @@ services: volumes: - ./docker/nginx/conf.d:/etc/nginx/conf.d:ro - ./logs:/logs - - ./public:/usr/share/nginx/html:ro + - ./dist:/usr/share/nginx/html:ro diff --git a/package.json b/package.json index 4678a0d..5fb018d 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,14 @@ "dev": "webpack", "watch": "npm run dev -- --watch", "build": "webpack -p --env production", - "serve": "webpack-dev-server --hot --content-base public/", - "splatnet": "node src/updater/update.js updateAll", - "twitter": "node src/updater/twitter.js maybePostTweets", - "twitter-test": "node src/updater/twitter.js testScreenshots", - "cron": "node src/updater/cron.js", + "serve": "webpack-dev-server --hot --content-base dist/", + "splatnet": "node src/app splatnet", + "twitter": "node src/app twitter", + "twitter:test": "node src/app twitterTest", + "cron": "node src/app/cron", + "utility:updateGear": "node src/utility updateGear", + "utility:getSplatNetLanguageFiles": "node src/utility getSplatNetLanguageFiles", + "utility:copyTranslation": "node src/utility copyTranslation", "locale-man": "node node_modules/locale-man/ -l en,es,es-MX,fr,fr-CA,de,nl,it,ru,ja -o src/locale" }, "dependencies": { @@ -39,6 +42,7 @@ "lodash": "^4.17.4", "make-runnable": "^1.3.6", "mkdirp": "^0.5.1", + "module-alias": "^2.1.0", "moment-timezone": "^0.5.13", "node-sass": "^4.5.3", "postcss-loader": "^2.0.6", @@ -63,5 +67,8 @@ "devDependencies": { "locale-man": "^0.0.5", "shipit-cli": "^3.0.0" + }, + "_moduleAliases": { + "@": "src" } } diff --git a/src/icons/public/android-chrome-192x192.png b/public/android-chrome-192x192.png similarity index 100% rename from src/icons/public/android-chrome-192x192.png rename to public/android-chrome-192x192.png diff --git a/src/icons/public/android-chrome-512x512.png b/public/android-chrome-512x512.png similarity index 100% rename from src/icons/public/android-chrome-512x512.png rename to public/android-chrome-512x512.png diff --git a/src/icons/public/browserconfig.xml b/public/browserconfig.xml similarity index 100% rename from src/icons/public/browserconfig.xml rename to public/browserconfig.xml diff --git a/src/html/index.html b/public/index.html similarity index 77% rename from src/html/index.html rename to public/index.html index 0a6ee0b..7b57cd7 100644 --- a/src/html/index.html +++ b/public/index.html @@ -8,20 +8,20 @@ - + <% for (var css in htmlWebpackPlugin.files.chunks.main.css) { %> <% } %> - - - + + + - - + + diff --git a/src/icons/public/manifest.json b/public/manifest.json similarity index 100% rename from src/icons/public/manifest.json rename to public/manifest.json diff --git a/src/icons/public/mstile-144x144.png b/public/mstile-144x144.png similarity index 100% rename from src/icons/public/mstile-144x144.png rename to public/mstile-144x144.png diff --git a/src/icons/public/mstile-150x150.png b/public/mstile-150x150.png similarity index 100% rename from src/icons/public/mstile-150x150.png rename to public/mstile-150x150.png diff --git a/src/icons/public/mstile-310x150.png b/public/mstile-310x150.png similarity index 100% rename from src/icons/public/mstile-310x150.png rename to public/mstile-310x150.png diff --git a/src/icons/public/mstile-310x310.png b/public/mstile-310x310.png similarity index 100% rename from src/icons/public/mstile-310x310.png rename to public/mstile-310x310.png diff --git a/src/icons/public/mstile-70x70.png b/public/mstile-70x70.png similarity index 100% rename from src/icons/public/mstile-70x70.png rename to public/mstile-70x70.png diff --git a/src/html/screenshots.html b/public/screenshots.html similarity index 100% rename from src/html/screenshots.html rename to public/screenshots.html diff --git a/src/updater/cron.js b/src/app/cron.js similarity index 72% rename from src/updater/cron.js rename to src/app/cron.js index 3849056..375e5c4 100644 --- a/src/updater/cron.js +++ b/src/app/cron.js @@ -1,12 +1,12 @@ -require('./bootstrap'); +require('../common/bootstrap'); const CronJob = require('cron').CronJob; -const update = require('./update'); +const updater = require('./updater'); const twitter = require('./twitter'); console.info('Starting periodic tasks...'); // Run every hour at 10sec after the hour new CronJob('10 0 * * * *', async () => { - await update.updateAll(); + await updater.updateAll(); await twitter.maybePostTweets(); }, null, true); diff --git a/src/app/index.js b/src/app/index.js new file mode 100644 index 0000000..cc3fc49 --- /dev/null +++ b/src/app/index.js @@ -0,0 +1,9 @@ +require('../common/bootstrap'); + +module.exports = { + splatnet: require('./updater').updateAll, + twitter: require('./twitter').maybePostTweets, + twitterTest: require('./twitter').testScreenshots, +}; + +require('make-runnable/custom')({ printOutputFrame: false }); diff --git a/src/app/screenshots/index.js b/src/app/screenshots/index.js new file mode 100644 index 0000000..a0aa01e --- /dev/null +++ b/src/app/screenshots/index.js @@ -0,0 +1,3 @@ +const screenshots = require('./screenshots'); + +module.exports = screenshots; diff --git a/src/updater/screenshots.js b/src/app/screenshots/screenshots.js similarity index 96% rename from src/updater/screenshots.js rename to src/app/screenshots/screenshots.js index c19f3f3..b8b00f0 100644 --- a/src/updater/screenshots.js +++ b/src/app/screenshots/screenshots.js @@ -1,9 +1,8 @@ -require('./bootstrap'); const path = require('path'); const { URL } = require('url'); const puppeteer = require('puppeteer'); -const htmlPath = path.resolve('./public/screenshots.html'); +const htmlPath = path.resolve('./dist/screenshots.html'); const htmlUrl = new URL('file://'+htmlPath); const viewport = { width: 1012, // Twitter's in-stream image width is 506px, 506*2 = 1012 diff --git a/src/updater/twitter/client.js b/src/app/twitter/client.js similarity index 98% rename from src/updater/twitter/client.js rename to src/app/twitter/client.js index 30c55bb..7a318e4 100644 --- a/src/updater/twitter/client.js +++ b/src/app/twitter/client.js @@ -1,4 +1,3 @@ -require('../bootstrap'); const Twitter = require('twitter'); // Twitter API parameters diff --git a/src/app/twitter/index.js b/src/app/twitter/index.js new file mode 100644 index 0000000..238fa2c --- /dev/null +++ b/src/app/twitter/index.js @@ -0,0 +1,3 @@ +const twitter = require('./twitter'); + +module.exports = twitter; diff --git a/src/updater/twitter/GearTweet.js b/src/app/twitter/tweets/GearTweet.js similarity index 88% rename from src/updater/twitter/GearTweet.js rename to src/app/twitter/tweets/GearTweet.js index ee97de4..893b139 100644 --- a/src/updater/twitter/GearTweet.js +++ b/src/app/twitter/tweets/GearTweet.js @@ -1,6 +1,6 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureGearScreenshot } = require('../screenshots'); -const { readData, getTopOfCurrentHour } = require('../utilities'); +const { captureGearScreenshot } = require('@/app/screenshots'); +const { readData, getTopOfCurrentHour } = require('@/common/utilities'); class GearTweet extends TwitterPostBase { getKey() { return 'gear'; } diff --git a/src/updater/twitter/NewStageTweet.js b/src/app/twitter/tweets/NewStageTweet.js similarity index 88% rename from src/updater/twitter/NewStageTweet.js rename to src/app/twitter/tweets/NewStageTweet.js index c28434d..3a13b54 100644 --- a/src/updater/twitter/NewStageTweet.js +++ b/src/app/twitter/tweets/NewStageTweet.js @@ -1,10 +1,10 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { readJson } = require('../utilities'); +const { readJson } = require('@/common/utilities'); const path = require('path'); const fs = require('fs'); const stagesPath = path.resolve('storage/stages.json'); -const splatnetAssetPath = path.resolve('public/assets/splatnet'); +const splatnetAssetPath = path.resolve('dist/assets/splatnet'); class NewStageTweet extends TwitterPostBase { getKey() { return 'newstage'; } diff --git a/src/updater/twitter/NewWeaponTweet.js b/src/app/twitter/tweets/NewWeaponTweet.js similarity index 92% rename from src/updater/twitter/NewWeaponTweet.js rename to src/app/twitter/tweets/NewWeaponTweet.js index 616e08a..fce61a7 100644 --- a/src/updater/twitter/NewWeaponTweet.js +++ b/src/app/twitter/tweets/NewWeaponTweet.js @@ -1,6 +1,6 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureNewWeaponScreenshot } = require('../screenshots'); -const { readData } = require('../utilities'); +const { captureNewWeaponScreenshot } = require('@/app/screenshots'); +const { readData } = require('@/common/utilities'); class NewWeaponTweet extends TwitterPostBase { getKey() { return 'weapon'; } diff --git a/src/updater/twitter/SalmonRunGearTweet.js b/src/app/twitter/tweets/SalmonRunGearTweet.js similarity index 88% rename from src/updater/twitter/SalmonRunGearTweet.js rename to src/app/twitter/tweets/SalmonRunGearTweet.js index 607b57b..ad22661 100644 --- a/src/updater/twitter/SalmonRunGearTweet.js +++ b/src/app/twitter/tweets/SalmonRunGearTweet.js @@ -1,6 +1,6 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureSalmonRunGearScreenshot } = require('../screenshots'); -const { readData } = require('../utilities'); +const { captureSalmonRunGearScreenshot } = require('@/app/screenshots'); +const { readData } = require('@/common/utilities'); const moment = require('moment-timezone'); class SalmonRunTweet extends TwitterPostBase { diff --git a/src/updater/twitter/SalmonRunTweet.js b/src/app/twitter/tweets/SalmonRunTweet.js similarity index 90% rename from src/updater/twitter/SalmonRunTweet.js rename to src/app/twitter/tweets/SalmonRunTweet.js index ab15795..c0004e8 100644 --- a/src/updater/twitter/SalmonRunTweet.js +++ b/src/app/twitter/tweets/SalmonRunTweet.js @@ -1,6 +1,6 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureSalmonRunScreenshot } = require('../screenshots'); -const { readData } = require('../utilities'); +const { captureSalmonRunScreenshot } = require('@/app/screenshots'); +const { readData } = require('@/common/utilities'); class SalmonRunTweet extends TwitterPostBase { getKey() { return 'salmonrun'; } diff --git a/src/updater/twitter/ScheduleTweet.js b/src/app/twitter/tweets/ScheduleTweet.js similarity index 93% rename from src/updater/twitter/ScheduleTweet.js rename to src/app/twitter/tweets/ScheduleTweet.js index e54376c..ba54903 100644 --- a/src/updater/twitter/ScheduleTweet.js +++ b/src/app/twitter/tweets/ScheduleTweet.js @@ -1,6 +1,6 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureScheduleScreenshot } = require('../screenshots'); -const { readData, readJson } = require('../utilities'); +const { captureScheduleScreenshot } = require('@/app/screenshots'); +const { readData, readJson } = require('@/common/utilities'); const path = require('path'); const stagesPath = path.resolve('storage/stages.json'); diff --git a/src/updater/twitter/SplatfestTweet.js b/src/app/twitter/tweets/SplatfestTweet.js similarity index 96% rename from src/updater/twitter/SplatfestTweet.js rename to src/app/twitter/tweets/SplatfestTweet.js index 24ea37f..cd0051b 100644 --- a/src/updater/twitter/SplatfestTweet.js +++ b/src/app/twitter/tweets/SplatfestTweet.js @@ -1,7 +1,7 @@ const TwitterPostBase = require('./TwitterPostBase'); -const { captureSplatfestScreenshot } = require('../screenshots'); -const { readData } = require('../utilities'); -const { splatoonRegions } = require('../../js/regions'); +const { captureSplatfestScreenshot } = require('@/app/screenshots'); +const { readData } = require('@/common/utilities'); +const { splatoonRegions } = require('@/common/regions'); class SplatfestTweet extends TwitterPostBase { constructor(region) { diff --git a/src/updater/twitter/TwitterPostBase.js b/src/app/twitter/tweets/TwitterPostBase.js similarity index 96% rename from src/updater/twitter/TwitterPostBase.js rename to src/app/twitter/tweets/TwitterPostBase.js index a11e5d6..2538996 100644 --- a/src/updater/twitter/TwitterPostBase.js +++ b/src/app/twitter/tweets/TwitterPostBase.js @@ -1,7 +1,7 @@ const path = require('path'); const fs = require('fs'); -const { postMediaTweet } = require('./client'); -const { getTopOfCurrentHour, readJson, writeJson } = require('../utilities'); +const { postMediaTweet } = require('../client'); +const { getTopOfCurrentHour, readJson, writeJson } = require('@/common/utilities'); const lastTweetTimesPath = path.resolve('storage/twitter-lastTweetTimes.json'); diff --git a/src/app/twitter/tweets/index.js b/src/app/twitter/tweets/index.js new file mode 100644 index 0000000..c84e11a --- /dev/null +++ b/src/app/twitter/tweets/index.js @@ -0,0 +1,19 @@ +const ScheduleTweet = require('./ScheduleTweet'); +const GearTweet = require('./GearTweet'); +const SalmonRunTweet = require('./SalmonRunTweet'); +const SalmonRunGearTweet = require('./SalmonRunGearTweet'); +const NewWeaponTweet = require('./NewWeaponTweet'); +const NewStageTweet = require('./NewStageTweet'); +const SplatfestTweet = require('./SplatfestTweet'); + +module.exports = [ + new ScheduleTweet, + new GearTweet, + new SalmonRunTweet, + new SalmonRunGearTweet, + new NewWeaponTweet, + new NewStageTweet, + new SplatfestTweet('na'), + new SplatfestTweet('eu'), + new SplatfestTweet('jp'), +]; diff --git a/src/app/twitter/twitter.js b/src/app/twitter/twitter.js new file mode 100644 index 0000000..6e7d7d2 --- /dev/null +++ b/src/app/twitter/twitter.js @@ -0,0 +1,22 @@ +const { canTweet } = require('./client'); +const tweets = require('./tweets'); + +async function maybePostTweets() { + if (!canTweet()) { + console.warn('Twitter API parameters not specified'); + return; + } + + for (let tweet of tweets) + await tweet.maybePostTweet(); +} + +async function testScreenshots() { + for (let tweet of tweets) + await tweet.saveTestScreenshot(); +} + +module.exports = { + maybePostTweets, + testScreenshots, +} diff --git a/src/updater/LocalizationProcessor.js b/src/app/updater/LocalizationProcessor.js similarity index 95% rename from src/updater/LocalizationProcessor.js rename to src/app/updater/LocalizationProcessor.js index 77d92fd..9751ac4 100644 --- a/src/updater/LocalizationProcessor.js +++ b/src/app/updater/LocalizationProcessor.js @@ -3,9 +3,9 @@ const fs = require('fs'); const mkdirp = require('mkdirp'); const jsonpath = require('jsonpath'); const _ = require('lodash'); -const { readJson, writeJson } = require('./utilities'); +const { readJson, writeJson } = require('@/common/utilities'); -const localizationsPath = path.resolve('public/data/locale'); +const localizationsPath = path.resolve('dist/data/locale'); class LocalizationProcessor { constructor(ruleset, languageInfo) { diff --git a/src/app/updater/index.js b/src/app/updater/index.js new file mode 100644 index 0000000..97a280a --- /dev/null +++ b/src/app/updater/index.js @@ -0,0 +1,3 @@ +module.exports = { + updateAll: require('./updateAll'), +}; diff --git a/src/updater/update.js b/src/app/updater/updateAll.js similarity index 83% rename from src/updater/update.js rename to src/app/updater/updateAll.js index fbd5c4e..affcbb8 100644 --- a/src/updater/update.js +++ b/src/app/updater/updateAll.js @@ -1,6 +1,3 @@ -require('./bootstrap'); - -const Updater = require('./updaters/Updater'); const SchedulesUpdater = require('./updaters/SchedulesUpdater'); const CoopSchedulesUpdater = require('./updaters/CoopSchedulesUpdater'); const TimelineUpdater = require('./updaters/TimelineUpdater'); @@ -31,8 +28,4 @@ async function updateAll() { return 'Done'; } -module.exports = { - updateAll, -} - -require('make-runnable/custom')({ printOutputFrame: false }); +module.exports = updateAll; diff --git a/src/updater/updaters/CoopSchedulesUpdater.js b/src/app/updater/updaters/CoopSchedulesUpdater.js similarity index 100% rename from src/updater/updaters/CoopSchedulesUpdater.js rename to src/app/updater/updaters/CoopSchedulesUpdater.js diff --git a/src/updater/updaters/FestivalsUpdater.js b/src/app/updater/updaters/FestivalsUpdater.js similarity index 96% rename from src/updater/updaters/FestivalsUpdater.js rename to src/app/updater/updaters/FestivalsUpdater.js index bae7ab2..37f34c8 100644 --- a/src/updater/updaters/FestivalsUpdater.js +++ b/src/app/updater/updaters/FestivalsUpdater.js @@ -4,8 +4,8 @@ const fs = require('fs'); const path = require('path'); const _ = require('lodash'); const jsonpath = require('jsonpath'); -const { readJson } = require('../utilities'); -const { languages } = require('../../js/regions'); +const { readJson } = require('@/common/utilities'); +const { languages } = require('@/common/regions'); class FestivalsUpdater extends Updater { constructor(region) { diff --git a/src/updater/updaters/MerchandisesUpdater.js b/src/app/updater/updaters/MerchandisesUpdater.js similarity index 94% rename from src/updater/updaters/MerchandisesUpdater.js rename to src/app/updater/updaters/MerchandisesUpdater.js index 6ff5e9b..a23f5ae 100644 --- a/src/updater/updaters/MerchandisesUpdater.js +++ b/src/app/updater/updaters/MerchandisesUpdater.js @@ -1,6 +1,6 @@ const Updater = require('./Updater'); -const SplatNet = require('../splatnet'); -const { getOriginalGear } = require('../../js/splatoon'); +const SplatNet = require('@/common/splatnet'); +const { getOriginalGear } = require('@/common/splatoon'); class MerchandisesUpdater extends Updater { constructor() { diff --git a/src/updater/updaters/OriginalGearImageUpdater.js b/src/app/updater/updaters/OriginalGearImageUpdater.js similarity index 91% rename from src/updater/updaters/OriginalGearImageUpdater.js rename to src/app/updater/updaters/OriginalGearImageUpdater.js index ba33f7a..2706d3a 100644 --- a/src/updater/updaters/OriginalGearImageUpdater.js +++ b/src/app/updater/updaters/OriginalGearImageUpdater.js @@ -1,7 +1,7 @@ const Updater = require('./Updater'); const path = require('path'); const fs = require('fs'); -const dataPath = path.resolve('src/js/data'); +const dataPath = path.resolve('src/common/data'); class OriginalGearImageUpdater extends Updater { constructor() { diff --git a/src/updater/updaters/SchedulesUpdater.js b/src/app/updater/updaters/SchedulesUpdater.js similarity index 95% rename from src/updater/updaters/SchedulesUpdater.js rename to src/app/updater/updaters/SchedulesUpdater.js index 8c02928..6113bce 100644 --- a/src/updater/updaters/SchedulesUpdater.js +++ b/src/app/updater/updaters/SchedulesUpdater.js @@ -1,8 +1,8 @@ const Updater = require('./Updater'); -const SplatNet = require('../splatnet'); +const SplatNet = require('@/common/splatnet'); const path = require('path'); const fs = require('fs'); -const { getTopOfCurrentHour, readJson } = require('../utilities'); +const { getTopOfCurrentHour, readJson } = require('@/common/utilities'); const stagesPath = path.resolve('storage/stages.json'); diff --git a/src/updater/updaters/TimelineUpdater.js b/src/app/updater/updaters/TimelineUpdater.js similarity index 100% rename from src/updater/updaters/TimelineUpdater.js rename to src/app/updater/updaters/TimelineUpdater.js diff --git a/src/updater/updaters/Updater.js b/src/app/updater/updaters/Updater.js similarity index 93% rename from src/updater/updaters/Updater.js rename to src/app/updater/updaters/Updater.js index 0b74e40..22bcb4f 100644 --- a/src/updater/updaters/Updater.js +++ b/src/app/updater/updaters/Updater.js @@ -3,15 +3,15 @@ const fs = require('fs'); const mkdirp = require('mkdirp'); const _ = require('lodash'); const jsonpath = require('jsonpath'); -const SplatNet = require('../splatnet'); +const SplatNet = require('@/common/splatnet'); const iCal = require('cozy-ical'); const moment = require('moment-timezone'); const raven = require('raven'); -const { languages } = require('../../js/regions'); +const { languages } = require('@/common/regions'); const LocalizationProcessor = require('../LocalizationProcessor'); -const dataPath = path.resolve('public/data'); -const splatnetAssetPath = path.resolve('public/assets/splatnet'); +const dataPath = path.resolve('dist/data'); +const splatnetAssetPath = path.resolve('dist/assets/splatnet'); class Updater { constructor(options = {}) { @@ -184,13 +184,7 @@ class Updater { this.info(`Downloading image: ${imagePath}`); let splatnet = new SplatNet; let image = await this.handleRequest(splatnet.getImage(imagePath)); - // console.log(image.length) this.writeFile(localPath, image); - - // Temporary: Also save the file to the old path for now - // This allows for old versions of the site to continue downloading images - let oldPath = path.resolve('public/assets/img/splatnet') + '/' + path.basename(imagePath); - this.writeFile(oldPath, image); } /** diff --git a/src/updater/bootstrap.js b/src/common/bootstrap.js similarity index 83% rename from src/updater/bootstrap.js rename to src/common/bootstrap.js index f9aac1a..e86bc7e 100644 --- a/src/updater/bootstrap.js +++ b/src/common/bootstrap.js @@ -1,5 +1,6 @@ require('dotenv').config(); require('console-stamp')(console); +require('module-alias/register'); // Sentry error reporting const raven = require('raven'); diff --git a/src/js/data/brands.json b/src/common/data/brands.json similarity index 100% rename from src/js/data/brands.json rename to src/common/data/brands.json diff --git a/src/js/data/inkipediaGear.json b/src/common/data/gear.json similarity index 100% rename from src/js/data/inkipediaGear.json rename to src/common/data/gear.json diff --git a/src/js/data/skills.json b/src/common/data/skills.json similarity index 100% rename from src/js/data/skills.json rename to src/common/data/skills.json diff --git a/src/js/regions.js b/src/common/regions.js similarity index 100% rename from src/js/regions.js rename to src/common/regions.js diff --git a/src/updater/splatnet.js b/src/common/splatnet.js similarity index 100% rename from src/updater/splatnet.js rename to src/common/splatnet.js diff --git a/src/js/splatoon.js b/src/common/splatoon.js similarity index 91% rename from src/js/splatoon.js rename to src/common/splatoon.js index 2898ea0..fc4b4d0 100644 --- a/src/js/splatoon.js +++ b/src/common/splatoon.js @@ -1,6 +1,6 @@ const brands = require('./data/brands'); const skills = require('./data/skills'); -const inkipediaGear = require('./data/inkipediaGear'); +const inkipediaGear = require('./data/gear'); function getOriginalGear(gear) { if (!gear || !gear.name) diff --git a/src/updater/utilities.js b/src/common/utilities.js similarity index 95% rename from src/updater/utilities.js rename to src/common/utilities.js index 4a3c91a..b9c9116 100644 --- a/src/updater/utilities.js +++ b/src/common/utilities.js @@ -3,7 +3,7 @@ const path = require('path'); const mkdirp = require('mkdirp'); const stringify = require('json-stable-stringify'); -const dataPath = path.resolve('public/data'); +const dataPath = path.resolve('dist/data'); function getTopOfCurrentHour() { let date = new Date; diff --git a/src/updater/twitter.js b/src/updater/twitter.js deleted file mode 100644 index a2c027b..0000000 --- a/src/updater/twitter.js +++ /dev/null @@ -1,43 +0,0 @@ -require('./bootstrap'); -const { canTweet } = require('./twitter/client'); -const ScheduleTweet = require('./twitter/ScheduleTweet'); -const GearTweet = require('./twitter/GearTweet'); -const SalmonRunTweet = require('./twitter/SalmonRunTweet'); -const SalmonRunGearTweet = require('./twitter/SalmonRunGearTweet'); -const NewWeaponTweet = require('./twitter/NewWeaponTweet'); -const NewStageTweet = require('./twitter/NewStageTweet'); -const SplatfestTweet = require('./twitter/SplatfestTweet'); - -let tweets = [ - new ScheduleTweet, - new GearTweet, - new SalmonRunTweet, - new SalmonRunGearTweet, - new NewWeaponTweet, - new NewStageTweet, - new SplatfestTweet('na'), - new SplatfestTweet('eu'), - new SplatfestTweet('jp'), -]; - -async function maybePostTweets() { - if (!canTweet()) { - console.warn('Twitter API parameters not specified'); - return; - } - - for (let tweet of tweets) - await tweet.maybePostTweet(); -} - -async function testScreenshots() { - for (let tweet of tweets) - await tweet.saveTestScreenshot(); -} - -module.exports = { - maybePostTweets, - testScreenshots, -} - -require('make-runnable/custom')({ printOutputFrame: false }); diff --git a/src/updater/translationHelper.js b/src/utility/copyTranslation.js similarity index 64% rename from src/updater/translationHelper.js rename to src/utility/copyTranslation.js index 898f4cd..fd5f5a6 100644 --- a/src/updater/translationHelper.js +++ b/src/utility/copyTranslation.js @@ -1,17 +1,15 @@ // This file copies translations from SplatNet language files to our own language files -require('./bootstrap'); const path = require('path'); const fs = require('fs'); const _ = require('lodash'); -const { readJson } = require('./utilities'); -const { languages } = require('../js/regions'); -const SplatNet = require('./splatnet'); +const { readJson } = require('@/common/utilities'); +const { languages } = require('@/common/regions'); const sourcePath = path.resolve('storage/lang'); -const destinationPath = path.resolve('src/locale'); +const destinationPath = path.resolve('src/web/locale'); -function copyTranslation(source, destination) { +module.exports = function (source, destination) { for (let { region, language } of languages) { let sourceLang = readJson(`${sourcePath}/${region}-${language}.json`); let outputFile = `${destinationPath}/${language}.json`; @@ -21,9 +19,3 @@ function copyTranslation(source, destination) { fs.writeFileSync(outputFile, JSON.stringify(output, null, 4) + '\n'); } } - -module.exports = { - copyTranslation, -}; - -require('make-runnable/custom')({ printOutputFrame: false }); diff --git a/src/updater/getSplatNetLanguageFiles.js b/src/utility/getSplatNetLanguageFiles.js similarity index 81% rename from src/updater/getSplatNetLanguageFiles.js rename to src/utility/getSplatNetLanguageFiles.js index 73e3821..0536213 100644 --- a/src/updater/getSplatNetLanguageFiles.js +++ b/src/utility/getSplatNetLanguageFiles.js @@ -1,20 +1,17 @@ // This is a helper used to retrieve language files from SplatNet. // These files aren't used directly, but are just downloaded for help with updating manual translation files. -require('./bootstrap'); const path = require('path'); -const fs = require('fs'); const mkdirp = require('mkdirp'); -const axios = require('axios'); -const { writeFormattedJson } = require('./utilities'); -const { languages } = require('../js/regions'); -const SplatNet = require('./splatnet'); +const { writeFormattedJson } = require('@/common/utilities'); +const { languages } = require('@/common/regions'); +const SplatNet = require('@/common/splatnet'); const outputPath = path.resolve('storage/lang'); -mkdirp(outputPath); +module.exports = async () => { + mkdirp(outputPath); -(async () => { for (let { region, language } of languages) { let splatnet = new SplatNet(region, language); let client = splatnet.getClient(); @@ -33,4 +30,4 @@ mkdirp(outputPath); // Store the data to a JSON file writeFormattedJson(`${outputPath}/${region}-${language}.json`, window.LocalizedMessage); } -})(); +}; diff --git a/src/utility/index.js b/src/utility/index.js new file mode 100644 index 0000000..94806c5 --- /dev/null +++ b/src/utility/index.js @@ -0,0 +1,9 @@ +require('../common/bootstrap'); + +module.exports = { + updateGear: require('./updateGear'), + getSplatNetLanguageFiles: require('./getSplatNetLanguageFiles'), + copyTranslation: require('./copyTranslation'), +}; + +require('make-runnable/custom')({ printOutputFrame: false }); diff --git a/src/updater/retrieveGearData.js b/src/utility/retrieveGearData.js similarity index 97% rename from src/updater/retrieveGearData.js rename to src/utility/retrieveGearData.js index 83836f9..51a63cf 100644 --- a/src/updater/retrieveGearData.js +++ b/src/utility/retrieveGearData.js @@ -1,5 +1,5 @@ const delay = require('delay'); -const splatnet = require('./splatnet'); +const splatnet = require('@/common/splatnet'); /** * We can't retrieve gear/brand/skill data directly. diff --git a/src/updater/updateGear.js b/src/utility/updateGear.js similarity index 93% rename from src/updater/updateGear.js rename to src/utility/updateGear.js index dcc0b03..052594a 100644 --- a/src/updater/updateGear.js +++ b/src/utility/updateGear.js @@ -1,21 +1,18 @@ // Note: this script is intended to be run during development (not in production). // It updates the gear/brand/skill data located at /src/js/data/. -require('./bootstrap'); const path = require('path'); const fs = require('fs'); const mkdirp = require('mkdirp'); const axios = require('axios'); const retrieveGearData = require('./retrieveGearData'); -const { writeFormattedJson } = require('./utilities'); +const { writeFormattedJson } = require('@/common/utilities'); const he = require('he'); -const dataPath = path.resolve('src/js/data'); +const dataPath = path.resolve('src/common/data'); const brandsFilename = `${dataPath}/brands.json`; const skillsFilename = `${dataPath}/skills.json`; -const inkipediaGearFilename = `${dataPath}/inkipediaGear.json`; - -mkdirp(dataPath); +const inkipediaGearFilename = `${dataPath}/gear.json`; function applyData(oldData, newData) { if (!Array.isArray(newData)) @@ -29,7 +26,9 @@ function applyData(oldData, newData) { } } -(async () => { +module.exports = async () => { + mkdirp(dataPath); + let brands = {}; let skills = {}; @@ -73,7 +72,6 @@ function applyData(oldData, newData) { .reduce((map, kvp) => { kvp = kvp.split('='); map[kvp[0]] = kvp[1]; return map; }, {}); // Make sure we have the necessary info - // console.log(details); if (details.category && details.name && details.brand && details.ability && details.rarity) { let key; switch (details.category) { @@ -112,4 +110,4 @@ function applyData(oldData, newData) { writeFormattedJson(brandsFilename, brands); writeFormattedJson(skillsFilename, skills); writeFormattedJson(inkipediaGearFilename, inkipediaGear); -})(); +}; diff --git a/src/js/analytics.js b/src/web/analytics.js similarity index 100% rename from src/js/analytics.js rename to src/web/analytics.js diff --git a/src/css/_backgrounds.scss b/src/web/assets/css/_backgrounds.scss similarity index 100% rename from src/css/_backgrounds.scss rename to src/web/assets/css/_backgrounds.scss diff --git a/src/css/_boxes.scss b/src/web/assets/css/_boxes.scss similarity index 100% rename from src/css/_boxes.scss rename to src/web/assets/css/_boxes.scss diff --git a/src/css/_fonts.scss b/src/web/assets/css/_fonts.scss similarity index 100% rename from src/css/_fonts.scss rename to src/web/assets/css/_fonts.scss diff --git a/src/css/_modifiers.scss b/src/web/assets/css/_modifiers.scss similarity index 100% rename from src/css/_modifiers.scss rename to src/web/assets/css/_modifiers.scss diff --git a/src/css/_variables.scss b/src/web/assets/css/_variables.scss similarity index 100% rename from src/css/_variables.scss rename to src/web/assets/css/_variables.scss diff --git a/src/css/main.scss b/src/web/assets/css/main.scss similarity index 100% rename from src/css/main.scss rename to src/web/assets/css/main.scss diff --git a/src/css/screenshots.scss b/src/web/assets/css/screenshots.scss similarity index 100% rename from src/css/screenshots.scss rename to src/web/assets/css/screenshots.scss diff --git a/src/fonts/0e12b13c359d4803021dc4e17cecc311.woff2 b/src/web/assets/fonts/0e12b13c359d4803021dc4e17cecc311.woff2 similarity index 100% rename from src/fonts/0e12b13c359d4803021dc4e17cecc311.woff2 rename to src/web/assets/fonts/0e12b13c359d4803021dc4e17cecc311.woff2 diff --git a/src/fonts/5476b40d543260503fbccbbab305b1f9.woff2 b/src/web/assets/fonts/5476b40d543260503fbccbbab305b1f9.woff2 similarity index 100% rename from src/fonts/5476b40d543260503fbccbbab305b1f9.woff2 rename to src/web/assets/fonts/5476b40d543260503fbccbbab305b1f9.woff2 diff --git a/src/fonts/61f6c62eb1065d00c9a2bcf85e090fe4.woff2 b/src/web/assets/fonts/61f6c62eb1065d00c9a2bcf85e090fe4.woff2 similarity index 100% rename from src/fonts/61f6c62eb1065d00c9a2bcf85e090fe4.woff2 rename to src/web/assets/fonts/61f6c62eb1065d00c9a2bcf85e090fe4.woff2 diff --git a/src/fonts/b426a8e06ebdfcb82b481ab57922d6b4.woff b/src/web/assets/fonts/b426a8e06ebdfcb82b481ab57922d6b4.woff similarity index 100% rename from src/fonts/b426a8e06ebdfcb82b481ab57922d6b4.woff rename to src/web/assets/fonts/b426a8e06ebdfcb82b481ab57922d6b4.woff diff --git a/src/fonts/b4fab2f6ac35a758f6aeb5b7054ab121.woff b/src/web/assets/fonts/b4fab2f6ac35a758f6aeb5b7054ab121.woff similarity index 100% rename from src/fonts/b4fab2f6ac35a758f6aeb5b7054ab121.woff rename to src/web/assets/fonts/b4fab2f6ac35a758f6aeb5b7054ab121.woff diff --git a/src/fonts/eb82d017016045bf998cade4dac1ec22.woff2 b/src/web/assets/fonts/eb82d017016045bf998cade4dac1ec22.woff2 similarity index 100% rename from src/fonts/eb82d017016045bf998cade4dac1ec22.woff2 rename to src/web/assets/fonts/eb82d017016045bf998cade4dac1ec22.woff2 diff --git a/src/fonts/f25982b8ab52a929938cd63f15656ecf.woff b/src/web/assets/fonts/f25982b8ab52a929938cd63f15656ecf.woff similarity index 100% rename from src/fonts/f25982b8ab52a929938cd63f15656ecf.woff rename to src/web/assets/fonts/f25982b8ab52a929938cd63f15656ecf.woff diff --git a/src/fonts/f85b6b75e658c1758ee0b3f2262c9522.woff b/src/web/assets/fonts/f85b6b75e658c1758ee0b3f2262c9522.woff similarity index 100% rename from src/fonts/f85b6b75e658c1758ee0b3f2262c9522.woff rename to src/web/assets/fonts/f85b6b75e658c1758ee0b3f2262c9522.woff diff --git a/src/icons/apple-touch-icon.png b/src/web/assets/icons/apple-touch-icon.png similarity index 100% rename from src/icons/apple-touch-icon.png rename to src/web/assets/icons/apple-touch-icon.png diff --git a/src/icons/favicon-16x16.png b/src/web/assets/icons/favicon-16x16.png similarity index 100% rename from src/icons/favicon-16x16.png rename to src/web/assets/icons/favicon-16x16.png diff --git a/src/icons/favicon-32x32.png b/src/web/assets/icons/favicon-32x32.png similarity index 100% rename from src/icons/favicon-32x32.png rename to src/web/assets/icons/favicon-32x32.png diff --git a/src/icons/favicon.ico b/src/web/assets/icons/favicon.ico similarity index 100% rename from src/icons/favicon.ico rename to src/web/assets/icons/favicon.ico diff --git a/src/icons/safari-pinned-tab.svg b/src/web/assets/icons/safari-pinned-tab.svg similarity index 100% rename from src/icons/safari-pinned-tab.svg rename to src/web/assets/icons/safari-pinned-tab.svg diff --git a/src/img/404.jpg b/src/web/assets/img/404.jpg similarity index 100% rename from src/img/404.jpg rename to src/web/assets/img/404.jpg diff --git a/src/img/battle-league.png b/src/web/assets/img/battle-league.png similarity index 100% rename from src/img/battle-league.png rename to src/web/assets/img/battle-league.png diff --git a/src/img/battle-ranked.png b/src/web/assets/img/battle-ranked.png similarity index 100% rename from src/img/battle-ranked.png rename to src/web/assets/img/battle-ranked.png diff --git a/src/img/battle-regular.png b/src/web/assets/img/battle-regular.png similarity index 100% rename from src/img/battle-regular.png rename to src/web/assets/img/battle-regular.png diff --git a/src/img/bg-circles.png b/src/web/assets/img/bg-circles.png similarity index 100% rename from src/img/bg-circles.png rename to src/web/assets/img/bg-circles.png diff --git a/src/img/bg-dots.png b/src/web/assets/img/bg-dots.png similarity index 100% rename from src/img/bg-dots.png rename to src/web/assets/img/bg-dots.png diff --git a/src/img/bg-mask-banner.png b/src/web/assets/img/bg-mask-banner.png similarity index 100% rename from src/img/bg-mask-banner.png rename to src/web/assets/img/bg-mask-banner.png diff --git a/src/img/bg-mask-hook.png b/src/web/assets/img/bg-mask-hook.png similarity index 100% rename from src/img/bg-mask-hook.png rename to src/web/assets/img/bg-mask-hook.png diff --git a/src/img/bg-mask-ink-splat.svg b/src/web/assets/img/bg-mask-ink-splat.svg similarity index 100% rename from src/img/bg-mask-ink-splat.svg rename to src/web/assets/img/bg-mask-ink-splat.svg diff --git a/src/img/bg-mask-product.png b/src/web/assets/img/bg-mask-product.png similarity index 100% rename from src/img/bg-mask-product.png rename to src/web/assets/img/bg-mask-product.png diff --git a/src/img/bg-mask-title-squid.png b/src/web/assets/img/bg-mask-title-squid.png similarity index 100% rename from src/img/bg-mask-title-squid.png rename to src/web/assets/img/bg-mask-title-squid.png diff --git a/src/img/bg-spots.png b/src/web/assets/img/bg-spots.png similarity index 100% rename from src/img/bg-spots.png rename to src/web/assets/img/bg-spots.png diff --git a/src/img/bg-squids-light.png b/src/web/assets/img/bg-squids-light.png similarity index 100% rename from src/img/bg-squids-light.png rename to src/web/assets/img/bg-squids-light.png diff --git a/src/img/bg-squids.png b/src/web/assets/img/bg-squids.png similarity index 100% rename from src/img/bg-squids.png rename to src/web/assets/img/bg-squids.png diff --git a/src/img/bg-stripes.png b/src/web/assets/img/bg-stripes.png similarity index 100% rename from src/img/bg-stripes.png rename to src/web/assets/img/bg-stripes.png diff --git a/src/img/bg-wavy.png b/src/web/assets/img/bg-wavy.png similarity index 100% rename from src/img/bg-wavy.png rename to src/web/assets/img/bg-wavy.png diff --git a/src/img/blank-skill-slot.png b/src/web/assets/img/blank-skill-slot.png similarity index 100% rename from src/img/blank-skill-slot.png rename to src/web/assets/img/blank-skill-slot.png diff --git a/src/img/cash.png b/src/web/assets/img/cash.png similarity index 100% rename from src/img/cash.png rename to src/web/assets/img/cash.png diff --git a/src/img/favicon.svg b/src/web/assets/img/favicon.svg similarity index 100% rename from src/img/favicon.svg rename to src/web/assets/img/favicon.svg diff --git a/src/img/hero-char-2.png b/src/web/assets/img/hero-char-2.png similarity index 100% rename from src/img/hero-char-2.png rename to src/web/assets/img/hero-char-2.png diff --git a/src/img/hero-char.png b/src/web/assets/img/hero-char.png similarity index 100% rename from src/img/hero-char.png rename to src/web/assets/img/hero-char.png diff --git a/src/img/mr-grizz.png b/src/web/assets/img/mr-grizz.png similarity index 100% rename from src/img/mr-grizz.png rename to src/web/assets/img/mr-grizz.png diff --git a/src/img/salmon-run-mini.png b/src/web/assets/img/salmon-run-mini.png similarity index 100% rename from src/img/salmon-run-mini.png rename to src/web/assets/img/salmon-run-mini.png diff --git a/src/img/salmon-run-random-weapon.png b/src/web/assets/img/salmon-run-random-weapon.png similarity index 100% rename from src/img/salmon-run-random-weapon.png rename to src/web/assets/img/salmon-run-random-weapon.png diff --git a/src/img/salmon-run.png b/src/web/assets/img/salmon-run.png similarity index 100% rename from src/img/salmon-run.png rename to src/web/assets/img/salmon-run.png diff --git a/src/img/stages/lost-outpost.jpg b/src/web/assets/img/stages/lost-outpost.jpg similarity index 100% rename from src/img/stages/lost-outpost.jpg rename to src/web/assets/img/stages/lost-outpost.jpg diff --git a/src/img/stages/marooners-bay.jpg b/src/web/assets/img/stages/marooners-bay.jpg similarity index 100% rename from src/img/stages/marooners-bay.jpg rename to src/web/assets/img/stages/marooners-bay.jpg diff --git a/src/img/stages/turf-wars-stage-1_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-1_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-1_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-1_2x.jpg diff --git a/src/img/stages/turf-wars-stage-2_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-2_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-2_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-2_2x.jpg diff --git a/src/img/stages/turf-wars-stage-3_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-3_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-3_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-3_2x.jpg diff --git a/src/img/stages/turf-wars-stage-4_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-4_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-4_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-4_2x.jpg diff --git a/src/img/stages/turf-wars-stage-5_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-5_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-5_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-5_2x.jpg diff --git a/src/img/stages/turf-wars-stage-6_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-6_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-6_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-6_2x.jpg diff --git a/src/img/stages/turf-wars-stage-7_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-7_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-7_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-7_2x.jpg diff --git a/src/img/stages/turf-wars-stage-8_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-8_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-8_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-8_2x.jpg diff --git a/src/img/stages/turf-wars-stage-9_2x.jpg b/src/web/assets/img/stages/turf-wars-stage-9_2x.jpg similarity index 100% rename from src/img/stages/turf-wars-stage-9_2x.jpg rename to src/web/assets/img/stages/turf-wars-stage-9_2x.jpg diff --git a/src/img/twitter-white.png b/src/web/assets/img/twitter-white.png similarity index 100% rename from src/img/twitter-white.png rename to src/web/assets/img/twitter-white.png diff --git a/src/js/components/404.vue b/src/web/components/404.vue similarity index 94% rename from src/js/components/404.vue rename to src/web/components/404.vue index eccba47..d321d39 100644 --- a/src/js/components/404.vue +++ b/src/web/components/404.vue @@ -10,7 +10,7 @@ - +