diff --git a/index.js b/index.js index ce033e7..48b6918 100644 --- a/index.js +++ b/index.js @@ -24,6 +24,7 @@ express.use(Express.json()); express.use(Express.urlencoded({ extended: true })); express.use(Express.static('public')); +express.use(require("./structure/discovery.js")) express.use(require("./structure/privacy.js")); express.use(require("./structure/timeline.js")); express.use(require("./structure/user.js")); diff --git a/responses/discovery_frontend.json b/responses/discovery_frontend.json new file mode 100644 index 0000000..72fcd4e --- /dev/null +++ b/responses/discovery_frontend.json @@ -0,0 +1,383 @@ +{ + "Panels": [ + { + "PanelName": "Recently Played", + "Pages": [ + { + "results": [ + { + "lastVisited": "2022-02-16T07:06:02.763Z", + "linkData": { + "mnemonic": "campaign", + "linkType": "SubGame", + "active": true, + "version": 5, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [ + "pve" + ], + "metadata": { + "ownership_token": "Token:campaignaccess", + "alt_title": { + "de": "Rette die Welt", + "ru": "Сражение с Бурей", + "ko": "세이브 더 월드", + "pt-BR": "Salve o Mundo", + "it": "Salva il mondo", + "fr": "Sauver le monde", + "zh-CN": "", + "es": "Salvar el mundo", + "es-MX": "Salva el mundo", + "zh": "", + "ar": "أنقِذ العالم", + "zh-Hant": "", + "ja": "世界を救え", + "pl": "Ratowanie Świata", + "es-419": "Salva el mundo", + "tr": "Dünyayı Kurtar" + }, + "alt_tagline": { + "de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!", + "ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.", + "ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ", + "pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.", + "it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.", + "fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.", + "zh-CN": "", + "es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.", + "es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "zh": "", + "ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.", + "zh-Hant": "", + "ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つけてレベルアップしよう。", + "pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj.", + "es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla." + }, + "image_url": "https://static-assets-prod.s3.amazonaws.com/fn/static/creative/Fortnite_STW.jpg", + "alt_introduction": { + "de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!", + "ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.", + "ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ", + "pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.", + "it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.", + "fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.", + "zh-CN": "", + "es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.", + "es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "zh": "", + "ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.", + "zh-Hant": "", + "ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つてレベルアップしよう。", + "pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj.", + "es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla." + }, + "tagline": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up.", + "dynamicXp": { + "uniqueGameVersion": "5", + "calibrationPhase": "LiveXp" + }, + "locale": "en", + "title": "Save The World", + "matchmaking": { + "joinInProgressType": "JoinImmediately", + "playersPerTeam": 4, + "maximumNumberOfPlayers": 4, + "override_Playlist": "", + "playerCount": 4, + "mmsType": "keep_full", + "mmsPrivacy": "Public", + "numberOfTeams": 1, + "bAllowJoinInProgress": true, + "minimumNumberOfPlayers": 1, + "joinInProgressTeam": 1 + }, + "introduction": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up.", + "disallowedPlatforms": [ + "IOS", + "Android", + "Switch" + ] + } + }, + "isFavorite": true + }, + { + "lastVisited": "2022-01-18T13:48:02.375Z", + "linkData": { + "mnemonic": "playlist_defaultsolo", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_defaultsolo" + } + } + }, + "isFavorite": false + }, + { + "lastVisited": "2022-01-18T13:37:26.178Z", + "linkData": { + "mnemonic": "playlist_battlelab", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_battlelab" + } + } + }, + "isFavorite": false + }, + { + "lastVisited": "2021-12-19T15:39:56.161Z", + "linkData": { + "mnemonic": "playlist_playgroundv2", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_playgroundv2" + } + } + }, + "isFavorite": false + } + ], + "hasMore": true + } + ] + }, + { + "PanelName": "ByEpicSTW", + "Pages": [ + { + "results": [ + { + "lastVisited": "2022-02-16T07:06:02.763Z", + "linkData": { + "mnemonic": "campaign", + "linkType": "SubGame", + "active": true, + "version": 5, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [ + "pve" + ], + "metadata": { + "ownership_token": "Token:campaignaccess", + "alt_title": { + "de": "Rette die Welt", + "ru": "Сражение с Бурей", + "ko": "세이브 더 월드", + "pt-BR": "Salve o Mundo", + "it": "Salva il mondo", + "fr": "Sauver le monde", + "zh-CN": "", + "es": "Salvar el mundo", + "es-MX": "Salva el mundo", + "zh": "", + "ar": "أنقِذ العالم", + "zh-Hant": "", + "ja": "世界を救え", + "pl": "Ratowanie Świata", + "es-419": "Salva el mundo", + "tr": "Dünyayı Kurtar" + }, + "alt_tagline": { + "de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!", + "ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.", + "ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ", + "pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.", + "it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.", + "fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.", + "zh-CN": "", + "es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.", + "es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "zh": "", + "ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.", + "zh-Hant": "", + "ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つけてレベルアップしよう。", + "pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj.", + "es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla." + }, + "image_url": "https://static-assets-prod.s3.amazonaws.com/fn/static/creative/Fortnite_STW.jpg", + "alt_introduction": { + "de": "Dränge die anstürmenden Monsterhorden zurück und erforsche eine weitläufige, zerstörbare Welt. Baue riesige Festungen, stelle Waffen her, finde Beute und steige im Level auf!", + "ru": "Сдерживайте боем полчища монстров и исследуйте обширный разрушаемый мир. Отстраивайте огромные форты, создавайте оружие, находите добычу и повышайте уровень.", + "ko": "몬스터 호드에 맞서 싸우고, 광활하고 파괴적인 세상을 탐험해 보세요. 거대한 요새를 짓고, 무기를 제작하고, 전리품을 찾으면서 레벨을 올리세요! ", + "pt-BR": "Lute para conter hordas de monstros e explorar um vasto mundo destrutível. Construa fortes enormes, crie armas, encontre saques e suba de nível.", + "it": "Lotta per respingere orde di mostri ed esplorare un vasto mondo distruttibile. Costruisci fortezze, crea armi, raccogli bottino e sali di livello.", + "fr": "Repoussez des hordes de monstres et explorez un immense terrain destructible. Bâtissez des forts énormes, fabriquez des armes, dénichez du butin et montez en niveau.", + "zh-CN": "", + "es": "Lucha para contener las hordas de monstruos y recorre un mundo inmenso y destructible. Construye fuertes enormes, fabrica armas exóticas, busca botín y sube de nivel.", + "es-MX": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "zh": "", + "ar": "قاتل لكبح جماح الوحوش واستكشاف عالم شاسع قابل للتدمير. ابنِ حصونًا ضخمة واصنع الأسلحة واعثر على الغنائم وارتقِ بالمستوى.", + "zh-Hant": "", + "ja": "モンスターの群れを食い止め、壊すこともできる広大な世界を探索しよう。巨大な要塞を築き、武器をクラフトし、戦利品を見つてレベルアップしよう。", + "pl": "Walcz, by powstrzymać hordy potworów i odkrywaj wielki świat podlegający destrukcji. Buduj olbrzymie forty, twórz broń, zbieraj łupy, awansuj.", + "es-419": "Lucha para contener las hordas de monstruos y explora un mundo vasto y destructible. Construye fuertes enormes, fabrica armas, encuentra botín y sube de nivel.", + "tr": "Canavar sürüsünü geri püskürtmek için savaş ve yıkılabilir geniş bir dünyayı keşfet. Devasa kaleler inşa et, silahlar üret, ganimetleri topla ve seviye atla." + }, + "tagline": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up.", + "dynamicXp": { + "uniqueGameVersion": "5", + "calibrationPhase": "LiveXp" + }, + "locale": "en", + "title": "Save The World", + "matchmaking": { + "joinInProgressType": "JoinImmediately", + "playersPerTeam": 4, + "maximumNumberOfPlayers": 4, + "override_Playlist": "", + "playerCount": 4, + "mmsType": "keep_full", + "mmsPrivacy": "Public", + "numberOfTeams": 1, + "bAllowJoinInProgress": true, + "minimumNumberOfPlayers": 1, + "joinInProgressTeam": 1 + }, + "introduction": "Battle to hold back the monster hordes and explore a vast, destructible world. Build huge forts, craft weapons, find loot and level up.", + "disallowedPlatforms": [ + "IOS", + "Android", + "Switch" + ] + } + }, + "isFavorite": true + }, + { + "lastVisited": "2022-01-18T13:48:02.375Z", + "linkData": { + "mnemonic": "playlist_defaultsolo", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_defaultsolo" + } + } + }, + "isFavorite": false + }, + { + "linkData": { + "mnemonic": "playlist_defaultduo", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_defaultduo" + } + } + }, + "isFavorite": false + }, + { + "linkData": { + "mnemonic": "playlist_trios", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_trios" + } + } + }, + "isFavorite": false + }, + { + "linkData": { + "mnemonic": "playlist_defaultsquad", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_defaultsquad" + } + } + }, + "isFavorite": false + }, + { + "lastVisited": "2021-12-19T15:39:56.161Z", + "linkData": { + "mnemonic": "playlist_playgroundv2", + "linkType": "BR:Playlist", + "active": true, + "version": 95, + "moderationStatus": "Unmoderated", + "accountId": "epic", + "creatorName": "Epic", + "descriptionTags": [], + "metadata": { + "matchmaking": { + "override_playlist": "playlist_playgroundv2" + } + } + }, + "isFavorite": false + } + ], + "hasMore": true + } + ] + }, + { + "PanelName": "PlayerFavorites", + "Pages": [ + { + "results": [], + "hasMore": false + } + ] + } + ], + "TestCohorts": [] +} \ No newline at end of file diff --git a/structure/discovery.js b/structure/discovery.js new file mode 100644 index 0000000..44c77fd --- /dev/null +++ b/structure/discovery.js @@ -0,0 +1,24 @@ +const Express = require("express"); +const express = Express.Router(); +const discovery = require("./../responses/discovery_frontend.json"); + +express.post("/fortnite/api/game/v2/creative/discovery/surface/*", async (req, res) => { + switch (req.body.surfaceName) { + case "CreativeDiscoverySurface_Frontend": + if (req.body.panelName) { + for (var i in discovery.Panels) { + if (discovery.Panels[i].PanelName == req.body.panelName) { + res.json(discovery.Panels[i].Pages[req.body.pageIndex || 0]) + } + } + } else { + res.json(discovery); + } + break; + + default: + res.json({}); + } +}) + +module.exports = express; \ No newline at end of file diff --git a/structure/main.js b/structure/main.js index bc2df52..3ee7797 100644 --- a/structure/main.js +++ b/structure/main.js @@ -195,4 +195,65 @@ express.post("/datarouter/api/v1/public/data", async (req, res) => { res.end(); }) +express.post("/api/v1/assets/Fortnite/*/*", async (req, res) => { + res.json({"FortCreativeDiscoverySurface":{"meta":{"promotion":1},"assets":{}}}) +}) + +express.get("/region", async (req, res) => { + res.json({ + "continent": { + "code": "EU", + "geoname_id": 6255148, + "names": { + "de": "Europa", + "en": "Europe", + "es": "Europa", + "fr": "Europe", + "ja": "ヨーロッパ", + "pt-BR": "Europa", + "ru": "Европа", + "zh-CN": "欧洲" + } + }, + "country": { + "geoname_id": 2635167, + "is_in_european_union": false, + "iso_code": "GB", + "names": { + "de": "UK", + "en": "United Kingdom", + "es": "RU", + "fr": "Royaume Uni", + "ja": "英国", + "pt-BR": "Reino Unido", + "ru": "Британия", + "zh-CN": "英国" + } + }, + "subdivisions": [ + { + "geoname_id": 6269131, + "iso_code": "ENG", + "names": { + "de": "England", + "en": "England", + "es": "Inglaterra", + "fr": "Angleterre", + "ja": "イングランド", + "pt-BR": "Inglaterra", + "ru": "Англия", + "zh-CN": "英格兰" + } + }, + { + "geoname_id": 3333157, + "iso_code": "KEC", + "names": { + "en": "Royal Kensington and Chelsea" + } + } + ] + }) +}) + module.exports = express;