mirror of
https://github.com/maunium/stickerpicker.git
synced 2024-11-10 05:37:22 +01:00
Allow using external index.json and stickerpack
This commit is contained in:
parent
ec8eeeeaf5
commit
5d3c7d1e2f
@ -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,
|
||||
// then ${PACK_BASE_URL}/${packFile} for each packFile in the packs object of the index.json file.
|
||||
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
|
||||
let HOMESERVER_URL = "https://matrix-client.matrix.org"
|
||||
|
||||
@ -117,7 +125,7 @@ class App extends Component {
|
||||
|
||||
_loadPacks(disableCache = false) {
|
||||
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) {
|
||||
this.setState({
|
||||
loading: false,
|
||||
@ -129,7 +137,12 @@ class App extends Component {
|
||||
HOMESERVER_URL = indexData.homeserver_url || HOMESERVER_URL
|
||||
// TODO only load pack metadata when scrolled into view?
|
||||
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()
|
||||
for (const sticker of packData.stickers) {
|
||||
this.stickersByID.set(sticker.id, sticker)
|
||||
|
Loading…
Reference in New Issue
Block a user