Merge branch 'production'

This commit is contained in:
HF 2021-08-21 17:18:44 +02:00
commit 337a2b6d6f
13 changed files with 3836 additions and 3865 deletions

BIN
captchaFonts/Comismsh.ttf Normal file

Binary file not shown.

2
captchaFonts/LICENSE.md Normal file
View File

@ -0,0 +1,2 @@
license: free
website: http://www.moorstation.org/typoasis/designers/gemnew/home.htm

Binary file not shown.

View File

@ -34,6 +34,7 @@ do
echo "---RESTARTING CANVAS---"
cp -r build/*.js "${PFOLDER}/"
cp -r build/public "${PFOLDER}/"
cp -r build/captchaFonts "${PFOLDER}/"
cp -r build/package.json "${PFOLDER}/"
cp -r build/assets.json "${PFOLDER}/"
cp -r build/styleassets.json "${PFOLDER}/"
@ -61,6 +62,7 @@ do
echo "---RESTARTING CANVAS---"
cp -r build/*.js "${DEVFOLDER}/"
cp -r build/public "${DEVFOLDER}/"
cp -r build/captchaFonts "${DEVFOLDER}/"
cp -r build/package.json "${DEVFOLDER}/"
cp -r build/assets.json "${DEVFOLDER}/"
cp -r build/styleassets.json "${DEVFOLDER}/"

View File

@ -3,57 +3,53 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: src/core/ChatProvider.js:287
#: src/core/ChatProvider.js:327
msgid "You can not send chat messages with proxy"
msgstr ""
#: src/core/ChatProvider.js:292
msgid "Couldn't send your message, pls log out and back in again."
msgstr ""
#: src/core/ChatProvider.js:306
#: src/core/ChatProvider.js:341
#, javascript-format
msgid "You are sending messages too fast, you have to wait ${ waitTime }s :("
msgstr ""
#: src/core/ChatProvider.js:310
#: src/core/ChatProvider.js:345
msgid "You don't have access to this channel"
msgstr ""
#: src/core/ChatProvider.js:326
#: src/core/ChatProvider.js:361
msgid "Your mail has to be verified in order to chat"
msgstr ""
#: src/core/ChatProvider.js:331
#: src/core/ChatProvider.js:366
msgid "You are permanently muted, join our guilded to apppeal the mute"
msgstr ""
#: src/core/ChatProvider.js:336
#: src/core/ChatProvider.js:371
#, javascript-format
msgid "You are muted for another ${ timeMin } minutes"
msgstr ""
#: src/core/ChatProvider.js:338
#: src/core/ChatProvider.js:373
msgid "You are muted for another ${ muted } seconds"
msgstr ""
#: src/core/ChatProvider.js:346
#: src/core/ChatProvider.js:381
msgid "Ow no! Spam protection decided to mute you"
msgstr ""
#: src/core/ChatProvider.js:357
#: src/core/ChatProvider.js:392
msgid "You can't send a message this long :("
msgstr ""
#: src/core/ChatProvider.js:361
#: src/core/ChatProvider.js:396
msgid "Please use int channel"
msgstr ""
#: src/core/ChatProvider.js:365
#: src/core/ChatProvider.js:400
msgid "Your country is temporary muted from chat"
msgstr ""
#: src/core/ChatProvider.js:373
#: src/core/ChatProvider.js:408
msgid "Stop flooding."
msgstr ""
@ -73,11 +69,11 @@ msgstr ""
msgid "A 3D globe of our whole map"
msgstr ""
#: src/ssr-components/Main.jsx:73
#: src/ssr-components/Main.jsx:70
msgid "PixelPlanet.fun"
msgstr ""
#: src/ssr-components/Main.jsx:75
#: src/ssr-components/Main.jsx:72
msgid "Place color pixels on an map styled canvas with other players online"
msgstr ""

View File

@ -3,45 +3,45 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: src/controls/keypress.js:39
#: src/controls/keypress.js:41
#, javascript-format
msgid "Switched to ${ canvasName }"
msgstr ""
#: src/controls/keypress.js:61
#: src/controls/keypress.js:64
msgid "Grid ON"
msgstr ""
#: src/controls/keypress.js:62
#: src/controls/keypress.js:65
msgid "Grid OFF"
msgstr ""
#: src/controls/keypress.js:70
#: src/controls/keypress.js:75
msgid "Pixel Notify ON"
msgstr ""
#: src/controls/keypress.js:71
#: src/controls/keypress.js:76
msgid "Pixel Notify OFF"
msgstr ""
#: src/controls/keypress.js:76
#: src/controls/keypress.js:81
msgid "Muted Sound"
msgstr ""
#: src/controls/keypress.js:77
#: src/controls/keypress.js:82
msgid "Unmuted Sound"
msgstr ""
#: src/components/CoordinatesBox.jsx:29
#: src/controls/keypress.js:83
#: src/controls/keypress.js:88
msgid "Copied!"
msgstr ""
#: src/controls/keypress.js:89
#: src/controls/keypress.js:94
msgid "Show Hidden Canvases"
msgstr ""
#: src/controls/keypress.js:90
#: src/controls/keypress.js:95
msgid "Hide Hidden Canvases"
msgstr ""
@ -138,6 +138,14 @@ msgstr ""
msgid "Error ${ retCode }"
msgstr ""
#: src/ui/renderer.js:36
msgid "Canvas Error"
msgstr ""
#: src/ui/renderer.js:37
msgid "Can't render 3D canvas, do you have WebGL2 disabled?"
msgstr ""
#: src/actions/index.js:627
msgid "Register New Account"
msgstr ""
@ -178,9 +186,12 @@ msgstr ""
msgid "Restore"
msgstr ""
#: src/components/buttons/CanvasSwitchButton.jsx:23
#: src/components/windows/index.js:22
msgid "Canvas Selection"
#: src/components/buttons/ExpandMenuButton.jsx:23
msgid "Close Menu"
msgstr ""
#: src/components/buttons/ExpandMenuButton.jsx:23
msgid "Open Menu"
msgstr ""
#: src/components/buttons/ChatButton.jsx:92
@ -191,12 +202,9 @@ msgstr ""
msgid "Open Chat"
msgstr ""
#: src/components/buttons/ExpandMenuButton.jsx:23
msgid "Close Menu"
msgstr ""
#: src/components/buttons/ExpandMenuButton.jsx:23
msgid "Open Menu"
#: src/components/buttons/CanvasSwitchButton.jsx:23
#: src/components/windows/index.js:22
msgid "Canvas Selection"
msgstr ""
#: src/actions/fetch.js:40
@ -283,10 +291,6 @@ msgstr ""
msgid "Open Palette"
msgstr ""
#: src/components/contextmenus/ChannelContextMenu.jsx:55
msgid "Mute"
msgstr ""
#: src/components/contextmenus/UserContextMenu.jsx:53
msgid "Ping"
msgstr ""
@ -299,6 +303,10 @@ msgstr ""
msgid "Block"
msgstr ""
#: src/components/contextmenus/ChannelContextMenu.jsx:55
msgid "Mute"
msgstr ""
#: src/components/windows/index.js:19
msgid "Registration"
msgstr ""
@ -623,6 +631,17 @@ msgstr ""
msgid "Select Language"
msgstr ""
#: src/components/windows/CanvasSelect.jsx:32
msgid ""
"Select the canvas you want to use. Every canvas is unique and has "
"different palettes, cooldown and requirements. Archive of closed canvases "
"can be accessed here:"
msgstr ""
#: src/components/windows/CanvasSelect.jsx:40
msgid "Archive"
msgstr ""
#: src/components/windows/UserArea.jsx:27
msgid "Profile"
msgstr ""
@ -651,51 +670,6 @@ msgstr ""
msgid "Consider joining us on Guilded:"
msgstr ""
#: src/components/windows/Register.jsx:81
msgid "Register new account here"
msgstr ""
#: src/components/windows/Register.jsx:92
msgid "Name"
msgstr ""
#: src/components/windows/ForgotPassword.jsx:82
#: src/components/windows/Register.jsx:100
msgid "Email"
msgstr ""
#: src/components/ChangeMail.jsx:80
#: src/components/DeleteAccount.jsx:62
#: src/components/LogInForm.jsx:83
#: src/components/windows/Register.jsx:108
msgid "Password"
msgstr ""
#: src/components/windows/Register.jsx:116
msgid "Confirm Password"
msgstr ""
#: src/components/Admintools.jsx:311
#: src/components/Admintools.jsx:392
#: src/components/Admintools.jsx:466
#: src/components/Admintools.jsx:510
#: src/components/Admintools.jsx:594
#: src/components/windows/ForgotPassword.jsx:86
#: src/components/windows/Register.jsx:119
msgid "Submit"
msgstr ""
#: src/components/windows/CanvasSelect.jsx:32
msgid ""
"Select the canvas you want to use. Every canvas is unique and has "
"different palettes, cooldown and requirements. Archive of closed canvases "
"can be accessed here:"
msgstr ""
#: src/components/windows/CanvasSelect.jsx:40
msgid "Archive"
msgstr ""
#: src/components/windows/Archive.jsx:20
msgid ""
"While we tend to not delete canvases, some canvases are started for fun or "
@ -729,12 +703,38 @@ msgid ""
"how the canvas was at that time."
msgstr ""
#: src/components/windows/ForgotPassword.jsx:60
msgid "Sent you a mail with instructions to reset your password."
#: src/components/windows/Register.jsx:81
msgid "Register new account here"
msgstr ""
#: src/components/windows/ForgotPassword.jsx:71
msgid "Enter your mail address and we will send you a new password:"
#: src/components/windows/Register.jsx:92
msgid "Name"
msgstr ""
#: src/components/windows/ForgotPassword.jsx:82
#: src/components/windows/Register.jsx:100
msgid "Email"
msgstr ""
#: src/components/ChangeMail.jsx:80
#: src/components/DeleteAccount.jsx:62
#: src/components/LogInForm.jsx:83
#: src/components/windows/Register.jsx:108
msgid "Password"
msgstr ""
#: src/components/windows/Register.jsx:116
msgid "Confirm Password"
msgstr ""
#: src/components/Admintools.jsx:311
#: src/components/Admintools.jsx:392
#: src/components/Admintools.jsx:467
#: src/components/Admintools.jsx:512
#: src/components/Admintools.jsx:595
#: src/components/windows/ForgotPassword.jsx:86
#: src/components/windows/Register.jsx:119
msgid "Submit"
msgstr ""
#: src/components/windows/Chat.jsx:146
@ -753,6 +753,14 @@ msgstr ""
msgid "You must be logged in to chat"
msgstr ""
#: src/components/windows/ForgotPassword.jsx:60
msgid "Sent you a mail with instructions to reset your password."
msgstr ""
#: src/components/windows/ForgotPassword.jsx:71
msgid "Enter your mail address and we will send you a new password:"
msgstr ""
#: src/utils/validation.js:18
msgid "Email can't be empty."
msgstr ""
@ -801,13 +809,6 @@ msgstr ""
msgid "Password must be shorter than 60 characters."
msgstr ""
#: src/components/ChangeMail.jsx:91
#: src/components/ChangeName.jsx:68
#: src/components/ChangePassword.jsx:110
#: src/components/LanguageSelect.jsx:73
msgid "Save"
msgstr ""
#: src/components/LogInArea.jsx:21
msgid "Login to access more features and stats."
msgstr ""
@ -832,94 +833,40 @@ msgstr ""
msgid "Register"
msgstr ""
#: src/components/Admintools.jsx:184
msgid "Build image on canvas."
#: src/components/ChangeMail.jsx:91
#: src/components/ChangeName.jsx:68
#: src/components/ChangePassword.jsx:110
#: src/components/LanguageSelect.jsx:73
msgid "Save"
msgstr ""
#: src/components/Admintools.jsx:187
msgid "Build image and set it to protected."
#: src/components/CanvasItem.jsx:27
msgid "Cooldown"
msgstr ""
#: src/components/Admintools.jsx:190
msgid "Build image, but reset cooldown to unset-pixel cd."
#: src/components/CanvasItem.jsx:33
msgid "Stacking till"
msgstr ""
#: src/components/Admintools.jsx:253
msgid "Image Upload"
#: src/components/CanvasItem.jsx:35
msgid "Ranked"
msgstr ""
#: src/components/Admintools.jsx:254
msgid "Upload images to canvas"
#: src/components/CanvasItem.jsx:37
msgid "Requirements"
msgstr ""
#: src/components/Admintools.jsx:256
msgid "File"
#: src/components/CanvasItem.jsx:39
msgid "User Account"
msgstr ""
#: src/components/Admintools.jsx:276
msgid "Coordinates in X_Y format:"
#: src/components/CanvasItem.jsx:41
#, javascript-format
msgid "and ${ canvas.req } Pixels set"
msgstr ""
#: src/components/Admintools.jsx:316
msgid "Pixel Protection"
msgstr ""
#: src/components/Admintools.jsx:318
msgid ""
"Set protection of areas (if you need finer grained control, "
"use protect with image upload and alpha layers)"
msgstr ""
#: src/components/Admintools.jsx:397
msgid "Rollback to Date"
msgstr ""
#: src/components/Admintools.jsx:399
msgid "Rollback an area of the canvas to a set date (00:00 UTC)"
msgstr ""
#: src/components/Admintools.jsx:473
msgid "IP Actions"
msgstr ""
#: src/components/Admintools.jsx:475
msgid "Do stuff with IPs (one IP per line)"
msgstr ""
#: src/components/Admintools.jsx:515
msgid "Manage Moderators"
msgstr ""
#: src/components/Admintools.jsx:517
msgid "Remove Moderator"
msgstr ""
#: src/components/Admintools.jsx:549
msgid "There are no mods"
msgstr ""
#: src/components/Admintools.jsx:554
msgid "Assign new Mod"
msgstr ""
#: src/components/Admintools.jsx:557
msgid "Enter UserName of new Mod"
msgstr ""
#: src/components/Admintools.jsx:566
msgid "User Name"
msgstr ""
#: src/components/Rankings.jsx:28
msgid "Total"
msgstr ""
#: src/components/Rankings.jsx:36
msgid "Daily"
msgstr ""
#: src/components/Rankings.jsx:40
msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC."
#: src/components/CanvasItem.jsx:45
msgid "Dimensions"
msgstr ""
#: src/components/UserAreaContent.jsx:63
@ -967,6 +914,18 @@ msgstr ""
msgid "Social Settings"
msgstr ""
#: src/components/Rankings.jsx:28
msgid "Total"
msgstr ""
#: src/components/Rankings.jsx:36
msgid "Daily"
msgstr ""
#: src/components/Rankings.jsx:40
msgid "Ranking updates every 5 min. Daily rankings get reset at midnight UTC."
msgstr ""
#: src/components/Converter.jsx:280
msgid "Choose Canvas"
msgstr ""
@ -1038,33 +997,82 @@ msgstr ""
msgid "Download Template"
msgstr ""
#: src/components/CanvasItem.jsx:27
msgid "Cooldown"
#: src/components/Admintools.jsx:184
msgid "Build image on canvas."
msgstr ""
#: src/components/CanvasItem.jsx:33
msgid "Stacking till"
#: src/components/Admintools.jsx:187
msgid "Build image and set it to protected."
msgstr ""
#: src/components/CanvasItem.jsx:35
msgid "Ranked"
#: src/components/Admintools.jsx:190
msgid "Build image, but reset cooldown to unset-pixel cd."
msgstr ""
#: src/components/CanvasItem.jsx:37
msgid "Requirements"
#: src/components/Admintools.jsx:253
msgid "Image Upload"
msgstr ""
#: src/components/CanvasItem.jsx:39
msgid "User Account"
#: src/components/Admintools.jsx:254
msgid "Upload images to canvas"
msgstr ""
#: src/components/CanvasItem.jsx:41
#, javascript-format
msgid "and ${ canvas.req } Pixels set"
#: src/components/Admintools.jsx:256
msgid "File"
msgstr ""
#: src/components/CanvasItem.jsx:45
msgid "Dimensions"
#: src/components/Admintools.jsx:276
msgid "Coordinates in X_Y format:"
msgstr ""
#: src/components/Admintools.jsx:316
msgid "Pixel Protection"
msgstr ""
#: src/components/Admintools.jsx:318
msgid ""
"Set protection of areas (if you need finer grained control, "
"use protect with image upload and alpha layers)"
msgstr ""
#: src/components/Admintools.jsx:398
msgid "Rollback to Date"
msgstr ""
#: src/components/Admintools.jsx:400
msgid "Rollback an area of the canvas to a set date (00:00 UTC)"
msgstr ""
#: src/components/Admintools.jsx:475
msgid "IP Actions"
msgstr ""
#: src/components/Admintools.jsx:477
msgid "Do stuff with IPs (one IP per line)"
msgstr ""
#: src/components/Admintools.jsx:516
msgid "Manage Moderators"
msgstr ""
#: src/components/Admintools.jsx:518
msgid "Remove Moderator"
msgstr ""
#: src/components/Admintools.jsx:550
msgid "There are no mods"
msgstr ""
#: src/components/Admintools.jsx:555
msgid "Assign new Mod"
msgstr ""
#: src/components/Admintools.jsx:558
msgid "Enter UserName of new Mod"
msgstr ""
#: src/components/Admintools.jsx:567
msgid "User Name"
msgstr ""
#: src/components/LogInForm.jsx:76
@ -1113,6 +1121,10 @@ msgstr ""
msgid "New Username"
msgstr ""
#: src/components/DeleteAccount.jsx:66
msgid "Yes, Delete My Account!"
msgstr ""
#: src/components/ChangeMail.jsx:59
msgid ""
"Changed Mail successfully. We sent you a verification mail, "
@ -1123,10 +1135,6 @@ msgstr ""
msgid "New Mail"
msgstr ""
#: src/components/DeleteAccount.jsx:66
msgid "Yes, Delete My Account!"
msgstr ""
#: src/components/SocialSettings.jsx:38
msgid "Block all Private Messages"
msgstr ""

7174
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -34,25 +34,25 @@
"bufferutil": "^4.0.3",
"commonmark": "^0.29.3",
"compression": "^1.7.3",
"connect-redis": "^5.1.0",
"connect-redis": "^6.0.0",
"cookie": "^0.4.1",
"core-js": "^3.9.1",
"core-js": "^3.16.2",
"cors": "^2.8.4",
"etag": "^1.8.1",
"express": "^4.15.3",
"express-limiter": "^1.6.0",
"express-session": "^1.17.1",
"express-session": "^1.17.2",
"global": "^4.3.2",
"http-proxy-agent": "^4.0.1",
"image-q": "^2.1.2",
"ip-address": "^7.1.0",
"isomorphic-fetch": "^3.0.0",
"js-file-download": "^0.4.12",
"localforage": "^1.9.0",
"localforage": "^1.10.0",
"morgan": "^1.10.0",
"multer": "^1.4.1",
"mysql2": "^2.2.5",
"nodemailer": "^6.5.0",
"multer": "^1.4.3",
"mysql2": "^2.3.0",
"nodemailer": "^6.6.3",
"passport": "^0.4.0",
"passport-discord": "^0.1.4",
"passport-facebook": "^3.0.0",
@ -60,80 +60,80 @@
"passport-json": "^1.2.0",
"passport-reddit": "^0.2.4",
"passport-vkontakte": "^0.5.0",
"ppfun-captcha": "^1.6.4",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"ppfun-captcha": "^1.6.5",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-icons": "^4.2.0",
"react-redux": "^7.2.1",
"react-redux": "^7.2.4",
"react-responsive": "^8.2.0",
"react-stay-scrolled": "^7.3.0",
"react-stay-scrolled": "^7.3.1",
"react-toggle-button": "^2.1.0",
"redis": "^3.0.2",
"redis": "^3.1.2",
"redlock": "^4.0.0",
"redux": "^4.0.4",
"redux": "^4.1.1",
"redux-logger": "^3.0.6",
"redux-persist": "^6.0.0",
"redux-thunk": "^2.2.0",
"sequelize": "^6.5.1",
"sequelize": "^6.6.5",
"sharp": "^0.27.2",
"startaudiocontext": "^1.2.1",
"three": "^0.125.2",
"three-trackballcontrols": "^0.9.0",
"ttag": "^1.7.24",
"ttag-po-loader": "0.0.2",
"url-search-params-polyfill": "^8.1.0",
"url-search-params-polyfill": "^8.1.1",
"winston": "^3.3.3",
"winston-daily-rotate-file": "^4.5.1",
"ws": "^7.4.4"
"winston-daily-rotate-file": "^4.5.5",
"ws": "^7.5.3"
},
"devDependencies": {
"@babel/cli": "^7.14.3",
"@babel/core": "^7.13.10",
"@babel/node": "^7.13.10",
"@babel/plugin-proposal-class-properties": "^7.13.0",
"@babel/plugin-proposal-decorators": "^7.13.5",
"@babel/plugin-proposal-do-expressions": "^7.12.13",
"@babel/plugin-proposal-export-default-from": "^7.12.13",
"@babel/plugin-proposal-export-namespace-from": "^7.12.13",
"@babel/plugin-proposal-function-bind": "^7.12.13",
"@babel/plugin-proposal-function-sent": "^7.12.13",
"@babel/plugin-proposal-json-strings": "^7.13.8",
"@babel/plugin-proposal-logical-assignment-operators": "^7.13.8",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8",
"@babel/plugin-proposal-numeric-separator": "^7.12.13",
"@babel/plugin-proposal-object-rest-spread": "^7.13.8",
"@babel/plugin-proposal-optional-chaining": "^7.13.8",
"@babel/plugin-proposal-pipeline-operator": "^7.12.13",
"@babel/plugin-proposal-throw-expressions": "^7.12.13",
"@babel/cli": "^7.14.8",
"@babel/core": "^7.15.0",
"@babel/node": "^7.14.9",
"@babel/plugin-proposal-class-properties": "^7.14.5",
"@babel/plugin-proposal-decorators": "^7.14.5",
"@babel/plugin-proposal-do-expressions": "^7.14.5",
"@babel/plugin-proposal-export-default-from": "^7.14.5",
"@babel/plugin-proposal-export-namespace-from": "^7.14.5",
"@babel/plugin-proposal-function-bind": "^7.14.5",
"@babel/plugin-proposal-function-sent": "^7.14.5",
"@babel/plugin-proposal-json-strings": "^7.14.5",
"@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
"@babel/plugin-proposal-numeric-separator": "^7.14.5",
"@babel/plugin-proposal-object-rest-spread": "^7.14.7",
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
"@babel/plugin-proposal-pipeline-operator": "^7.15.0",
"@babel/plugin-proposal-throw-expressions": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-transform-flow-strip-types": "^7.13.0",
"@babel/plugin-transform-react-constant-elements": "^7.13.10",
"@babel/plugin-transform-react-inline-elements": "^7.12.13",
"@babel/plugin-transform-flow-strip-types": "^7.14.5",
"@babel/plugin-transform-react-constant-elements": "^7.14.5",
"@babel/plugin-transform-react-inline-elements": "^7.14.5",
"@babel/polyfill": "^7.11.5",
"@babel/preset-env": "^7.13.10",
"@babel/preset-flow": "^7.12.13",
"@babel/preset-react": "^7.12.13",
"@babel/preset-typescript": "^7.13.0",
"assets-webpack-plugin": "^7.0.0",
"@babel/preset-env": "^7.15.0",
"@babel/preset-flow": "^7.14.5",
"@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.15.0",
"assets-webpack-plugin": "^7.1.1",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.2.2",
"babel-plugin-transform-react-pure-class-to-function": "^1.0.1",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-plugin-ttag": "^1.7.30",
"clean-css": "^5.1.1",
"copy-webpack-plugin": "^8.0.0",
"css-loader": "^5.1.3",
"eslint": "^7.22.0",
"clean-css": "^5.1.5",
"copy-webpack-plugin": "^8.1.1",
"css-loader": "^5.2.7",
"eslint": "^7.32.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-plugin-flowtype": "^5.4.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-flowtype": "^5.9.0",
"eslint-plugin-import": "^2.24.1",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react": "^7.24.0",
"flow-bin": "^0.143.1",
"generate-package-json-webpack-plugin": "^2.1.2",
"glob": "^7.1.6",
"generate-package-json-webpack-plugin": "^2.1.3",
"glob": "^7.1.7",
"json-loader": "^0.5.4",
"mkdirp": "^1.0.4",
"npm-check": "^5.9.2",
@ -142,11 +142,11 @@
"react-svg-loader": "^3.0.3",
"rimraf": "^3.0.2",
"style-loader": "^2.0.0",
"ttag-cli": "^1.9.1",
"webpack": "^5.26.3",
"webpack-bundle-analyzer": "^4.4.0",
"webpack-cli": "^4.5.0",
"webpack-dev-middleware": "^4.1.0",
"ttag-cli": "^1.9.3",
"webpack": "^5.51.1",
"webpack-bundle-analyzer": "^4.4.2",
"webpack-cli": "^4.8.0",
"webpack-dev-middleware": "^4.3.0",
"webpack-hot-middleware": "^2.18.0",
"webpack-node-externals": "^2.5.2",
"write-file-webpack-plugin": "^4.0.2"

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -4,6 +4,8 @@
/* eslint-disable no-console */
import path from 'path';
import fs from 'fs';
import process from 'process';
import http from 'http';
import ppfunCaptcha from 'ppfun-captcha';
@ -14,17 +16,24 @@ import { setCaptchaSolution } from './utils/captcha';
const PORT = process.env.PORT || 8080;
const HOST = process.env.HOST || 'localhost';
const font = fs.readdirSync(path.resolve(__dirname, 'captchaFonts'))
.filter((e) => e.endsWith('.ttf'))
.map((e) => ppfunCaptcha.loadFont(
path.resolve(__dirname, 'captchaFonts', e),
));
const server = http.createServer((req, res) => {
const captcha = ppfunCaptcha.create({
width: 500,
height: 300,
fontSize: 220,
fontSize: 180,
stroke: 'black',
fill: 'none',
nodeDeviation: 3.0,
connectionPathDeviation: 3.0,
nodeDeviation: 2.5,
connectionPathDeviation: 10.0,
style: 'stroke-width: 4;',
background: '#EFEFEF',
font,
});
const ip = getIPFromRequest(req);

View File

@ -343,7 +343,9 @@ export async function drawByCoords(
setPixelByCoords(canvasId, color, x, y, z);
user.setWait(waitLeft, canvasId);
if (canvas.ranked) {
/* hardcode to not count pixels in antarctica */
// eslint-disable-next-line eqeqeq
if (canvas.ranked && (canvasId != 0 || y < 14450)) {
user.incrementPixelcount();
}
return {

View File

@ -168,6 +168,10 @@ export default ({
__dirname, 'build', 'ecosystem-backup.yml'
),
},
{
from: path.resolve(__dirname, 'captchaFonts'),
to: path.resolve(__dirname, 'build', 'captchaFonts'),
},
{
from: path.resolve(
__dirname, 'deployment', 'example-ecosystem-captchas.yml'