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 @@
-
+