diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml
index 649d5d2..7b60d2b 100644
--- a/.github/workflows/pr-ci.yml
+++ b/.github/workflows/pr-ci.yml
@@ -11,10 +11,10 @@ jobs:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- - name: Use Node.js 18.x
+ - name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
- node-version: 18.x
+ node-version: 20.x
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: yarn install
@@ -39,10 +39,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Use Node.js 18.x
+ - name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
- node-version: 18.x
+ node-version: 20.x
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: yarn install
@@ -67,10 +67,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- - name: Use Node.js 18.x
+ - name: Use Node.js 20.x
uses: actions/setup-node@v3
with:
- node-version: 18.x
+ node-version: 20.x
cache: 'yarn'
cache-dependency-path: '**/yarn.lock'
- name: yarn install
diff --git a/Dockerfile b/Dockerfile
index ae72b59..4c57895 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -75,6 +75,7 @@ COPY --from=run_server_prod /home/node/app/server/node_modules ./server/node_mod
WORKDIR /home/node/app/server/settings
COPY --chown=node:node server/settings/*.example.json .
+COPY --chown=node:node server/settings/*.example.txt .
WORKDIR /home/node/app/server/env
COPY --chown=node:node server/env/production.env.example .
diff --git a/README.md b/README.md
index 19c7535..c16ead2 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,8 @@ To get started:
3. YouTube API setup:
1. Scroll down to the bottom of the page to connect your YouTube channel. **Note:** This step can only be completed when the app is hosted on `localhost` or with a valid top-level domain due to Google OAuth2 app restrictions.
4. YouTube playlist mappings: If you have playlists that you'd like match videos added to, follow the instructions in this section to set this up.
+ 5. Video description template: While no warning appears for this, you should double-check that the default video
+ description template fits your needs and adjust it as needed.
### Docker Compose setup in-depth
@@ -121,7 +123,7 @@ Project organization:
- [`client`](client) contains all frontend code (Vue3, Typescript)
Install some baseline dependencies:
- - nodejs (v18 recommended)
+ - nodejs (version >= 20.0 required; Node 20 (LTS) is recommended)
- yarn
- To run the server: `cd server && yarn run dev`
diff --git a/client/src/components/form/AutosavingTextInput.vue b/client/src/components/form/AutosavingTextInput.vue
index 1b2284f..7394932 100644
--- a/client/src/components/form/AutosavingTextInput.vue
+++ b/client/src/components/form/AutosavingTextInput.vue
@@ -1,5 +1,28 @@
-
+
+
+
+ mdi-alert-circle-outline
+
+ mdi-check
+
+
+
+ {
return "password";
}
- return "text";
+ return props.inputType;
});
function togglePlaintext() {
diff --git a/client/src/components/matches/MatchDescription.vue b/client/src/components/matches/MatchDescription.vue
index 4600805..6123398 100644
--- a/client/src/components/matches/MatchDescription.vue
+++ b/client/src/components/matches/MatchDescription.vue
@@ -5,31 +5,37 @@
>
{{ matchStore.descriptionFetchError }}
-
- Regenerate description
-
+
+
+ Regenerate description
+
+
+ If you edit the description now, it'll only apply to the current match's videos. To revert your changes, press
+ Regenerate description above.
+
+
+
- Careful! If you enter a description before selecting a match, it will be overwritten by the
- auto-generated description.
+
+ A custom description is generated for each match's videos using the template defined in
+ Settings. You'll see a preview here after you select a match above.
+