Merge branch 'master' into patch-1

This commit is contained in:
Monty
2021-11-15 19:08:37 +01:00
committed by GitHub
23 changed files with 292 additions and 38 deletions

44
blogposts/11-14-21.md Normal file
View File

@@ -0,0 +1,44 @@
---
title: "[Recap] October-November"
author: "Jon"
author_image: "https://www.github.com/jonbarrow.png"
date: "November 14, 2021"
caption: "Progress made in the month of October"
cover_image: "/assets/images/blogposts/11-14-21.jpg"
---
### If you want to see more frequent updates, consider supporting us on [**Patreon**](https://patreon.com/PretendoNetwork)
# Introduction
Welcome to the October monthly recap. While not a lot of updates happened, the ones which did were important!
## RSS
Small update to the website, we now have an RSS feed for blog posts! Use your favorite reader to keep up to date on all our blog posts
## Stability
Both `nex-go` and `nex-protocols-go` recieved several stability, code quality, and feature updates. These include, but are not limited to, RMC Request creation, fixing packet fragment IDs not being used, many new types being supported in our `StreamIn` and `StreamOut` structs, and a server ping timeout to properly close connections when a client leaves. These all make the network work much better and feel much more cohesive
## Where is everyone?
The core of online multiplayer is connecting users together. On the Wii U and 3DS, multiplayer is handled via a p2p (peer-to-peer) connection, where one use is assigned as the "host" allowing other users to directly connect to their game session. The technology behind allowing users to connect to other users using arbitrary ports is called `NAT Traversal`. Until now, `NAT Traversal` was not working correctly and clients needed to open all ports to connect. Thanks to developer [shutterbug](https://github.com/shutterbug2000) `NAT` now properly works!
![Screenshot of shutterbug showing off NAT traversal using mario kart 7](/assets/images/blogposts/screenshot-of-shutterbug-showing-off-nat-traversal-using-mario-kart-7.png)
## Rev your engines!
Both Mario Kart 7 and Mario Kart 8 have started going online and can play matches. These games are far from complete but this is a great stepping stone. Patrons can access the beta servers for Mario Kart 8 right now, Mario Kart 7 has no servers available however. [CTGP-7](https://ctgp-7.github.io/) is also confirmed working for Mario Kart 7, and [CTGP-Café](https://rambo6glaz.github.io/CTGP-Cafe/) being planned for testing as well with full integration planned for both
![Screenshot of Billy showing off CTGP-7](/assets/images/blogposts/screenshot-of-billy-showing-off-ctgp-7.png)
[yt-iframe](W974FEDIoAA)
## Hello YouTube!
An unintended side effect of working on Miiverse support in Mario Kart 8 was YouTube uploading being re-enabled! You can now upload race clips from Mario Kart 8 to YouTube again. Patrons who run the Miiverse patch can try this feature out right now
[yt-iframe](d3Bq7auupV0)
## Squid Game
Splatoon multiplayer battles now works! As of now only private friend battles have been tested, but they seem to be working without issue
[yt-iframe](d_qFnXrP7a4)
## Friendship is magic
The friends server received some big updates. You can now properly set your privacy settings, add friends, and receive notifications from the server on what your friends are playing

View File

@@ -4,7 +4,7 @@ author: "Jon"
author_image: "https://www.github.com/jonbarrow.png"
date: "September 26, 2021"
caption: "First ever progress recap"
cover_image: "https://cdn.discordapp.com/attachments/881855727830978580/891805956424495105/Frame_1_1.png"
cover_image: "/assets/images/blogposts/9-26-21.png"
---
### If you want to see more frequent updates, consider supporting us on [**Patreon**](https://patreon.com/pretendonetwork)

View File

@@ -4,7 +4,7 @@ author: "Jemma"
author_image: "https://www.github.com/caramelkat.png"
date: "September 29, 2021"
caption: "What's Juxtaposition and where it's headed"
cover_image: "https://cdn.discordapp.com/attachments/881694875391774770/892859459666325534/unknown.png"
cover_image: "/assets/images/blogposts/9-29-21.png"
---
### If you want to see more frequent updates, consider supporting us on [**Patreon**](https://patreon.com/pretendonetwork)

View File

@@ -1,7 +1,7 @@
---
title: "Test"
author: "Monty"
author_image: "https://www.github.com/montylion.png"
author_image: "https://www.github.com/ashmonty.png"
date: "January 20, 2038"
caption: "A post to test the styling of the various elements we might use (rename to _test.md before deploying the blog section)"
cover_image: "https://media.discordapp.net/attachments/413884110667251722/886474243662037062/image1.jpg"

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "مطور الويب",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -24,7 +24,7 @@
"progress": {
"title": "Progresso",
"paragraphs": [
"Atualmente estamos trabalhando no Miiverse, assinm como no nossos servidores de contas e suas integrações com os serviços.",
"Atualmente estamos trabalhando no Miiverse, assim como no nossos servidores de contas e suas integrações com os serviços.",
"Para o Nintendo 3DS também estamos trabalhando no Mario Kart 7, pretendemos trabalhar em outros jogos quando possível."
]
},
@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Desenvolvimento web",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",
@@ -121,8 +121,8 @@
]
},
"specialThanks": {
"title": "Special thanks",
"text": "Without them, Pretendo wouldn't be where it is today.",
"title": "Agradecimentos especiais",
"text": "Sem eles, Pretendo não estaria onde está hoje.",
"people": [
{
"name": "superwhiskers",

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Webentwicklung",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Desarrollo web",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -111,8 +111,8 @@
{
"name": "Monty",
"caption": "Développement Web",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -109,12 +109,12 @@
{
"name": "Monty",
"caption": "Sviluppo web",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",
"caption": "Desigmer",
"caption": "Designer",
"picture": "https://github.com/mrjvs.png",
"github": "https://github.com/mrjvs"
}

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "웹 개발",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -9,7 +9,7 @@
"hero": {
"subtitle": "Servere de Jocuri",
"title": "Recreate",
"text": "Pretendo este un înlocuitor gratuit pentru serverele Nintendo pentru 3DS și Wii U, permițând conectivitate pentru toți, chiar și după ce serverele oficiale sunt oprite",
"text": "Pretendo este un înlocuitor gratuit al serverelor Nintendo pentru 3DS și Wii U, permițând conectivitate pentru toți, chiar și după ce serverele oficiale sunt oprite",
"buttons": {
"readMore": "Citiți mai multe"
}
@@ -34,7 +34,7 @@
"QAs": [
{
"question": "Ce este Pretendo?",
"answer": "Pretendo este un înlocuitor open source al Nintendo Network ce are ca scop să construiască servere private pentru consolele Nintendo 3DS și Wii U. Scopul nostru este să prezervăm funcționalitatea online a acestor console, pentru a permite jucătorilor să joace în continuare jocurile lor preferate de pe Wii U și 3DS la capacitatea lor maximă."
"answer": "Pretendo este un înlocuitor gratuit al Nintendo Network ce are ca scop să construiască servere private pentru consolele Nintendo 3DS și Wii U. Scopul nostru este să prezervăm funcționalitatea online a acestor console, pentru a permite jucătorilor să joace în continuare jocurile lor preferate de pe Wii U și 3DS la capacitatea lor maximă."
},
{
"question": "Va merge NNID-ul meu pe Pretendo?",
@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Dezvoltare web",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Web-разработка",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Web sayfası geliştirme",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

View File

@@ -109,8 +109,8 @@
{
"name": "Monty",
"caption": "Web development",
"picture": "https://github.com/montylion.png",
"github": "https://github.com/montylion"
"picture": "https://github.com/ashmonty.png",
"github": "https://github.com/ashmonty"
},
{
"name": "mrjvs",

205
package-lock.json generated
View File

@@ -156,6 +156,56 @@
"integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==",
"dev": true
},
"@sindresorhus/is": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz",
"integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw=="
},
"@szmarczak/http-timer": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz",
"integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==",
"requires": {
"defer-to-connect": "^2.0.0"
}
},
"@types/cacheable-request": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
"integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==",
"requires": {
"@types/http-cache-semantics": "*",
"@types/keyv": "*",
"@types/node": "*",
"@types/responselike": "*"
}
},
"@types/http-cache-semantics": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
"@types/keyv": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz",
"integrity": "sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==",
"requires": {
"@types/node": "*"
}
},
"@types/node": {
"version": "16.11.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.1.tgz",
"integrity": "sha512-PYGcJHL9mwl1Ek3PLiYgyEKtwTMmkMw4vbiyz/ps3pfdRYLVv+SN7qHVAImrjdAXxgluDEw6Ph4lyv+m9UpRmA=="
},
"@types/responselike": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
"integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
"requires": {
"@types/node": "*"
}
},
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -283,6 +333,25 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"cacheable-lookup": {
"version": "5.0.4",
"resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz",
"integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="
},
"cacheable-request": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
"integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
"requires": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
"keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
"normalize-url": "^6.0.1",
"responselike": "^2.0.0"
}
},
"callsites": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -299,6 +368,14 @@
"supports-color": "^7.1.0"
}
},
"clone-response": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"requires": {
"mimic-response": "^1.0.0"
}
},
"cluster-key-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz",
@@ -386,12 +463,32 @@
"ms": "2.0.0"
}
},
"decompress-response": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"requires": {
"mimic-response": "^3.1.0"
},
"dependencies": {
"mimic-response": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
}
}
},
"deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
"integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
"defer-to-connect": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
"integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
},
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -440,6 +537,14 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"end-of-stream": {
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"requires": {
"once": "^1.4.0"
}
},
"enquirer": {
"version": "2.3.6",
"resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
@@ -794,6 +899,14 @@
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
"dev": true
},
"get-stream": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"requires": {
"pump": "^3.0.0"
}
},
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -825,6 +938,24 @@
"type-fest": "^0.20.2"
}
},
"got": {
"version": "11.8.2",
"resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz",
"integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==",
"requires": {
"@sindresorhus/is": "^4.0.0",
"@szmarczak/http-timer": "^4.0.5",
"@types/cacheable-request": "^6.0.1",
"@types/responselike": "^1.0.0",
"cacheable-lookup": "^5.0.3",
"cacheable-request": "^7.0.1",
"decompress-response": "^6.0.0",
"http2-wrapper": "^1.0.0-beta.5.2",
"lowercase-keys": "^2.0.0",
"p-cancelable": "^2.0.0",
"responselike": "^2.0.0"
}
},
"graceful-fs": {
"version": "4.2.4",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
@@ -864,6 +995,11 @@
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"http-cache-semantics": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
"integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
},
"http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
@@ -876,6 +1012,15 @@
"toidentifier": "1.0.0"
}
},
"http2-wrapper": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz",
"integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==",
"requires": {
"quick-lru": "^5.1.1",
"resolve-alpn": "^1.0.0"
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -1004,6 +1149,11 @@
"esprima": "^4.0.0"
}
},
"json-buffer": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
"integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -1025,6 +1175,14 @@
"universalify": "^2.0.0"
}
},
"keyv": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz",
"integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==",
"requires": {
"json-buffer": "3.0.1"
}
},
"kind-of": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
@@ -1068,6 +1226,11 @@
"integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
"dev": true
},
"lowercase-keys": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
"integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
},
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -1115,6 +1278,11 @@
"mime-db": "1.44.0"
}
},
"mimic-response": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
},
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -1168,6 +1336,11 @@
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
},
"normalize-url": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
"integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
},
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -1224,6 +1397,11 @@
"word-wrap": "^1.2.3"
}
},
"p-cancelable": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz",
"integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="
},
"p-map": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
@@ -1288,6 +1466,15 @@
"ipaddr.js": "1.9.1"
}
},
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
}
},
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@@ -1299,6 +1486,11 @@
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
},
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
@@ -1350,12 +1542,25 @@
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true
},
"resolve-alpn": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
"integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
},
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
"responselike": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz",
"integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==",
"requires": {
"lowercase-keys": "^2.0.0"
}
},
"restler": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/restler/-/restler-3.3.0.tgz",

View File

@@ -23,6 +23,7 @@
"express-handlebars": "^4.0.4",
"express-locale": "^2.0.0",
"fs-extra": "^9.1.0",
"got": "^11.8.2",
"gray-matter": "^4.0.3",
"ioredis": "^4.26.0",
"marked": "^3.0.4",

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

View File

@@ -1,20 +1,20 @@
const Trello =require('trello');
const Redis = require('ioredis');
const JSONCache = require('redis-json');
const got = require('got');
const config = require('../config.json');
const trello = new Trello(config.trello.api_key, config.trello.api_token);
const redis = new Redis();
const trelloCache = new JSONCache(redis, { prefix: 'trello:' });
let cache;
async function getTrelloCache() {
let cache = await trelloCache.get('latest');
if (!cache) {
cache = await updateTrelloCache();
}
if (cache.update_time < Date.now() - (1000 * 60 * 60)) {
cache = await updateTrelloCache();
const available = await trelloAPIAvailable();
if (available) {
cache = await updateTrelloCache();
}
}
return cache;
@@ -60,10 +60,14 @@ async function updateTrelloCache() {
}
}
await trelloCache.set('latest', progressData);
return progressData;
}
async function trelloAPIAvailable() {
const { status } = await got('https://trello.status.atlassian.com/api/v2/status.json').json();
return status.description === 'All Systems Operational';
}
module.exports = {
getTrelloCache,
updateTrelloCache