Skip to content
Extraits de code Groupes Projets
Valider 5d3c7d1e rédigé par S1m's avatar S1m
Parcourir les fichiers

Allow using external index.json and stickerpack

parent ec8eeeea
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -21,6 +21,14 @@ import * as frequent from "./frequently-used.js" ...@@ -21,6 +21,14 @@ import * as frequent from "./frequently-used.js"
// The base URL for fetching packs. The app will first fetch ${PACK_BASE_URL}/index.json, // The base URL for fetching packs. The app will first fetch ${PACK_BASE_URL}/index.json,
// then ${PACK_BASE_URL}/${packFile} for each packFile in the packs object of the index.json file. // then ${PACK_BASE_URL}/${packFile} for each packFile in the packs object of the index.json file.
const PACKS_BASE_URL = "packs" const PACKS_BASE_URL = "packs"
let INDEX = `${PACKS_BASE_URL}/index.json`;
let params = new URLSearchParams(document.location.search);
let REMOTE = false;
if (params.has('config')) {
INDEX = params.get("config");
REMOTE = true;
}
// This is updated from packs/index.json // This is updated from packs/index.json
let HOMESERVER_URL = "https://matrix-client.matrix.org" let HOMESERVER_URL = "https://matrix-client.matrix.org"
...@@ -117,7 +125,7 @@ class App extends Component { ...@@ -117,7 +125,7 @@ class App extends Component {
_loadPacks(disableCache = false) { _loadPacks(disableCache = false) {
const cache = disableCache ? "no-cache" : undefined const cache = disableCache ? "no-cache" : undefined
fetch(`${PACKS_BASE_URL}/index.json`, { cache }).then(async indexRes => { fetch(INDEX, { cache }).then(async indexRes => {
if (indexRes.status >= 400) { if (indexRes.status >= 400) {
this.setState({ this.setState({
loading: false, loading: false,
...@@ -129,7 +137,12 @@ class App extends Component { ...@@ -129,7 +137,12 @@ class App extends Component {
HOMESERVER_URL = indexData.homeserver_url || HOMESERVER_URL HOMESERVER_URL = indexData.homeserver_url || HOMESERVER_URL
// TODO only load pack metadata when scrolled into view? // TODO only load pack metadata when scrolled into view?
for (const packFile of indexData.packs) { for (const packFile of indexData.packs) {
const packRes = await fetch(`${PACKS_BASE_URL}/${packFile}`, { cache }) let packRes;
if (REMOTE) {
packRes = await fetch(packFile, { cache })
} else {
packRes = await fetch(`${PACKS_BASE_URL}/${packFile}`, { cache })
}
const packData = await packRes.json() const packData = await packRes.json()
for (const sticker of packData.stickers) { for (const sticker of packData.stickers) {
this.stickersByID.set(sticker.id, sticker) this.stickersByID.set(sticker.id, sticker)
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter