diff --git a/.babelrc b/.babelrc index f9732321e..3d54b13f8 100644 --- a/.babelrc +++ b/.babelrc @@ -4,5 +4,5 @@ "@babel/preset-env" ] ], - "plugins": ["@babel/plugin-proposal-optional-chaining"] + "plugins": ["@babel/plugin-proposal-optional-chaining"], } diff --git a/.eslintrc b/.eslintrc index 6bdfb36e5..2447901d9 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,7 +9,8 @@ "rules": { "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], "no-console": 0, - "indent": ["error", 4], + "indent": "off", + "template-curly-spacing": "off", "max-len": [2, { "code": 300, "tabWidth": 4, @@ -21,7 +22,7 @@ "no-param-reassign": ["error", { "props": true, "ignorePropertyModificationsFor": ["state", "acc"] - }] + }], }, "globals": { "CONFIG": true diff --git a/package-lock.json b/package-lock.json index 15ea48d93..ab383d1ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10307,9 +10307,9 @@ } }, "source-map-support": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", - "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" diff --git a/package.json b/package.json index c37344774..2b8e76d22 100644 --- a/package.json +++ b/package.json @@ -5,12 +5,13 @@ "main": "src/app.js", "scripts": { "postinstall": "npm run migrate && npm run seed", - "start": "node dist/init.js", + "start": "node -r source-map-support/register dist/init.js", "webpack": "webpack --env=production --mode=production", "webpack-dev": "webpack --env=development --mode=development", "webpack-watch": "webpack --progress --colors --watch --env=development --mode=development", - "babel": "babel src -d dist", - "babel-watch": "babel src -w -d dist", + "babel": "babel src --source-maps -d dist", + "babel-watch": "babel src -w --source-maps -d dist", + "build": "babel src --source-maps -d dist && webpack --env=production --mode=production", "eslint": "eslint src/", "eslint-watch": "esw --watch src/", "knex": "knex", @@ -91,6 +92,7 @@ "react-dom": "^16.12.0", "sharp": "^0.23.4", "showdown": "^1.9.1", + "source-map-support": "^0.5.16", "tough-cookie": "^3.0.1", "tty-table": "^2.8.3", "url-pattern": "^1.0.3", diff --git a/src/.eslintrc b/src/.eslintrc index 364690ce8..ed3064446 100644 --- a/src/.eslintrc +++ b/src/.eslintrc @@ -9,7 +9,7 @@ "no-unused-vars": ["error", {"argsIgnorePattern": "^_"}], "no-console": 0, "indent": "off", + "template-curly-spacing": "off", "max-len": [2, {"code": 300, "tabWidth": 4, "ignoreUrls": true}], - "template-curly-spacing": "off" } } diff --git a/src/actors.js b/src/actors.js index 84eca75a1..7de45948b 100644 --- a/src/actors.js +++ b/src/actors.js @@ -271,8 +271,6 @@ async function updateActor(actor, scraped = false, scrapeSuccess = false) { } async function mergeProfiles(profiles, actor) { - console.log(profiles); - const mergedProfile = profiles.reduce((prevProfile, profile) => { if (profile === null) { return prevProfile; diff --git a/src/media.js b/src/media.js index 0f9a7d358..6365ebc29 100644 --- a/src/media.js +++ b/src/media.js @@ -189,7 +189,7 @@ async function storePhotos(release, releaseId) { const metaFiles = await Promise.map(newPhotos, async (photoUrl, index) => fetchPhoto(photoUrl, index, `(${release.site.name}, ${releaseId}) "${release.title}"`), { concurrency: 10, - }); + }).filter(photo => photo); const uniquePhotos = await filterHashDuplicates(metaFiles, 'releases', 'photo', `(${release.site.name}, ${releaseId}) "${release.title}"`); const savedPhotos = await savePhotos(uniquePhotos, release, releaseId); @@ -244,7 +244,7 @@ async function storeAvatars(profile, actor) { const metaFiles = await Promise.map(newPhotos, async (photoUrl, index) => fetchPhoto(photoUrl, index, actor.name), { concurrency: 10, - }); + }).filter(photo => photo); const uniquePhotos = await filterHashDuplicates(metaFiles, 'actors', ['avatar', 'photo'], actor.name); const [savedPhotos, avatarEntry] = await Promise.all([ diff --git a/src/scrapers/ddfnetwork.js b/src/scrapers/ddfnetwork.js index 0b1cf55dd..2981fd841 100644 --- a/src/scrapers/ddfnetwork.js +++ b/src/scrapers/ddfnetwork.js @@ -149,7 +149,7 @@ async function scrapeProfile(html, _url, actorName) { if (bio['Shoe size']) profile.shoes = Number(bio['Shoe size'].split('|')[1]); if (descriptionEl) profile.description = descriptionEl.textContent.trim(); - if (avatarEl) profile.avatar = `https:${avatarEl.dataset.src}`; + if (avatarEl && avatarEl.dataset.src.match('^//')) profile.avatar = `https:${avatarEl.dataset.src}`; return profile; } diff --git a/traxxx b/traxxx index 81c5f03cd..7ddacead7 100755 --- a/traxxx +++ b/traxxx @@ -1,2 +1,2 @@ #!/usr/bin/bash -node ./dist/init.js "$@"; +node -r source-map-support/register ./dist/init.js "$@";