198 Commits

Author SHA1 Message Date
41690f84c7 Custom endpoints
- minor change to customise textures & session server host for custom yggdrasil server
2025-12-08 21:02:48 +01:00
jomo
bba004acc7 improve URL parsing
uses `new URL()` and `decodeURI()` instead of `url.parse()`
also checks that the requested file is in a subdirectory of `public/` before serving the file

fixes path traversal vulnerability GHSA-5cxq-25mp-q5f2
2024-02-01 22:24:29 +01:00
jomo
9cb32a843f strip dashes from uuids before handling them 2024-02-01 22:19:02 +01:00
jomo
e44ebda56f periodically log number of current skin and cape requests 2024-02-01 22:00:44 +01:00
Jonathan Madeley
59f27f0769 mcuuid.net -> minecraftuuid.com 2020-12-12 23:39:13 +01:00
jomo
ef4b2f8005 fix an issue with rate limiting 2020-12-12 22:49:31 +01:00
jomo
29955a1765 improve mojang status message
as Mojang has removed their status page and their status API is no longer updating,
status information is now fetched from https://mc-heads.net/json/mc_status
and the warning message links to https://mc-heads.net/mcstatus

see #271, closes #272
2020-09-10 22:32:23 +02:00
jomo
265a98d404 pass on caching status information foor 3D renders
this was falsely always set to 2, indicating the skin was downloaded, even when it was cached
2020-07-13 00:41:21 +02:00
jomo
624bf0e338 don't count session_requests when SESSIONS_RATE_LIMIT is not set 2020-07-13 00:14:27 +02:00
jomo
e69b3f38fb new logo \o/ 2020-04-05 05:15:59 +02:00
jomo
22309efba9 show quotes on frontpage 2020-04-05 05:15:27 +02:00
jomo
3bd76ad918 update popular users and tools 2020-04-05 05:14:02 +02:00
jomo
22448c098b use 500 instead of 502 when using Cloudflare
Otherwise Cloudflare will replace images served with 502
with their own error page. This can only be turned off
in paid plans of Cloudflare.
2020-04-05 02:42:14 +02:00
jomo
7ad6f85aec improve regex 2020-03-30 01:23:16 +02:00
jomo
e0233f2899 document undocumented functions 2020-03-29 20:13:24 +02:00
jomo
eae7745758 add Content-Length, fixes #238 2020-03-29 07:43:23 +02:00
jomo
7f95a34e29 simplify http status codes, update website info 2020-03-29 07:43:23 +02:00
jomo
15a4f17560 add rate limit option for sessionserver
any outgoing requests to the sessionserver
that would exceed the configured rate limit are skipped
to prevent being blocked by CloudFront

if a texture hash is cached but outdated, the cache ttl will be bumped
as if the request succeeded, in order to lower requests in the near future
2020-03-29 07:43:23 +02:00
jomo
d967db3ad4 use environment variables for configuration 2020-03-29 07:32:39 +02:00
jomo
d81e2777d2 delete unused function 2020-03-28 23:38:20 +01:00
jomo
ea1ae64283 add 403 to expected response codes 2020-03-28 23:37:08 +01:00
jomo
424a4ab93b remove notice from website 2020-03-24 18:51:20 +01:00
jomo
16948de18d don't warn about closed connections 2020-03-24 18:50:58 +01:00
jomo
c975cc793b remove cleaner.js 2020-03-24 18:49:42 +01:00
jomo
b3a9793b87 add note about rate limit 2020-03-21 12:10:13 +01:00
jomo
168457dfd9 update to node 12 2020-03-21 01:50:50 +01:00
jomo
1816b18b12 update deps 2018-02-16 18:45:56 +01:00
jomo
dff58c66e7 drop support for usernames
Mojang has disabled their legacy skins API:
https://twitter.com/MojangSupport/status/964511258601865216

With their API rate limits, it's now practially impossible
for us to support usernames.

Fixes #142. The default parameter allows using:

- UUID
- URL
- MHF_Alex
- MHF_Steve
- Alex
- Steve

Contrary to UUIDs, using alex/steve doesn't redirect
and instead provides the skin from a locally stored file.
2018-02-16 18:01:41 +01:00
jomo
4fdbfb442b use pajk-lwip as a temporary workaround for EyalAr/lwip#297 2017-07-13 13:03:32 +02:00
jomo
305ed1c65f update sponsor info 2017-02-12 18:31:48 +01:00
jomo
a65cc63ec8 remove alex faces from website
kappe and minecraftchick decided to delete their skins
welcome @aikar and @ammaraskar!
2016-11-08 01:07:18 +01:00
jomo
4a2226be12 update Crafatar Tools & Plugins 2016-11-08 00:41:37 +01:00
jomo
3b7b42a2f6 update Popular Crafatar users
- NameMC now has its own interactive renders, so long, and thanks for all the fish!
- PlayMindCrack has shut down
2016-11-08 00:36:46 +01:00
jomo
24cfc03811 print 'Not found' on invalid path 2016-11-08 00:21:33 +01:00
jomo
c02d3d33e9 don't respond with 304 on error when debugging is enabled 2016-11-07 04:08:19 +01:00
jomo
f1f3ba6709 use response.js for all responses
results in:
1) less duplicated code
2) default response headers being used at all times
3) *all* requests being logged properly

- adds documentation for result.code
- allows using result.code to override HTTP 500
- uses response.js for too-busy, server error, method not allowed
2016-11-07 03:59:07 +01:00
jomo
57115202d2 don't rely on hasOwnProperty to exist
from MDN:
JavaScript does not protect the property name hasOwnProperty; thus, if the possibility exists that an object might have a property with this name, it is necessary to use an external hasOwnProperty to get correct results
2016-11-04 16:19:12 +01:00
jomo
23948afae5 catch ExtremelyRare™ 502 response from CloudFront
happens occasionally when they can't reach the mojang upstream server
2016-07-05 01:04:34 +02:00
jomo
6c132f5c51 fix Shotbow server name 2016-04-24 12:18:11 +02:00
jomo
159060df77 fix typo in Crafatar users 2016-03-26 22:02:56 +01:00
jomo
96b277b806 add missing documentation 2016-02-19 19:24:27 +01:00
jomo
3620a63d14 fs.exists is deprecated, switch to fs.access 2016-02-14 20:17:09 +01:00
jomo
22ecc6f8aa make User-Agent RFC1945 compliant
This is the product name without the optional '/' + version.
The parens are a comment, the '+' preceding the URL is common practice

https://tools.ietf.org/html/rfc1945#section-10.15
2016-02-14 17:37:41 +01:00
jomo
0940b50f2c networking.save_texture should return image buffer, not lwip image object
This led to a crash when a cape or skin was not stored on disk.
The function caled skins.save_image and returned that function's lwip image object instead of the expected buffer.
skins.save_image also no longer returns the image object because it's not used anywhere
2016-02-14 17:04:33 +01:00
jomo
f088c27012 use '201 Created' when 'status' is 'downloaded' 2016-02-03 02:49:43 +01:00
jomo
f2dda3b939 check for transparency in hat transparency-bounding-box for avatars, fixes #117 2016-02-02 23:57:40 +01:00
jomo
29fa734148 remove 'public' part from Cache-Control, not required 2016-01-23 06:26:41 +01:00
jomo
5654d51eec renders are no longer beta 2016-01-23 06:24:28 +01:00
jomo
c9f04e470b update crafatar users list 2016-01-21 23:23:04 +01:00
jomo
c39019074b use cache lookup for username skin types
fixes steve-model renders for usernames on first request after uuid request was made before
2016-01-21 22:12:23 +01:00