diff --git a/FAQ.md b/FAQ.md
index f56b898d..78ff897c 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -952,11 +952,12 @@ Note: the tip about adding the group_add came from the user `binarypancakes` in
### Advanced: How to extend the GUID parser to support more GUIDs or custom ones?
-You can extend the parser by creating new file at `/config/config/guid.yaml` with the following content.
+By going to `More > Custom GUIDs` in the WebUI, you can add custom GUIDs to the parser. We know not all people,
+like using GUI, as such You can extend the parser by creating new file at `/config/config/guid.yaml` with the following content.
```yaml
-# The version of the guid file. right now in beta so it's 0.0. not required to be present.
-version: 0.0
+# (Optional) The version of the guid file. If omitted, it will default to the latest version.
+version: 1.0
# The key must be in lower case. and it's an array.
guids:
@@ -982,10 +983,6 @@ links:
type: plex # the client to link the guid to. plex, jellyfin, emby.
options: # options used by the client.
legacy: true # Tag the mapper as legacy GUID for mapping.
- # Required map object. to map the new guid to WatchState guid.
- map:
- from: com.plexapp.agents.foo # map.from this string.
- to: guid_mydb # map.to this guid.
# (Optional) Replace helper. Sometimes you need to replace the guid identifier to another.
# The replacement happens before the mapping, so if you replace the guid identifier, you should also
# update the map.from to match the new identifier.
@@ -993,6 +990,10 @@ links:
replace:
from: com.plexapp.agents.foobar:// # Replace from this string
to: com.plexapp.agents.foo:// # Into this string.
+ # Required map object. to map the new guid to WatchState guid.
+ map:
+ from: com.plexapp.agents.foo # map.from this string.
+ to: guid_mydb # map.to this guid.
# mapping the foo guid from jellyfin backends into the guid_mydb in WatchState.
- id: universally-unique-identifier # the link id. example, 1ef83f5d-1686-60f0-96d6-3eb5c18f2aed
@@ -1010,11 +1011,11 @@ links:
```
As you can see from the config, it's roughly how we expected it to be. The `guids` array is where you define your new
-guids. the `links` array is where you map from backends guids to the new guid into the WatchState guid.
+custom GUIDs. the `links` array is where you map from client/backends GUIDs to the custom GUID in `WatchState`.
Everything in this file should be in lower case. If error occurs, the tool will log a warning and ignore the guid,
By default, we only show `ERROR` levels in log file, You can lower it by setting `WS_LOGGER_FILE_LEVEL` environment variable
to `WARNING`.
-If you added or removed a guid from the `guid.yaml` file, you should run `system:reindex --force-reindex` command to update the
+If you added or removed a guid from the `guid.yaml` file, you should run `system:index --force-reindex` command to update the
database indexes with the new guids.
diff --git a/NEWS.md b/NEWS.md
index 59dd6bf9..bbfdcb03 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,5 +1,17 @@
# Old Updates
+### 2024-08-19
+
+We have migrated the `state:push` task into the new events system, as such the old task `state:push` is now gone.
+To enable the new event handler for push events, use the new environment variable `WS_PUSH_ENABLED` and set it to `true`.
+Right now, it's disabled by default. However, for people who had the old task enabled, it will reuse that setting.
+
+Keep in mind, the new event handler is more efficient and will only push data when there is a change in the play state. And it's much faster
+than the old task. This event handler will push data within a minute of the change.
+
+PS: Please enable the task by setting its new environment variable `WS_PUSH_ENABLED` to `true`. The old `WS_CRON_PUSH` is now gone.
+and will be removed in the future releases.
+
### 2024-08-18
We have started migrating the old events system to a new one, so far we have migrated the `progress` and `requests` to it. As such,
diff --git a/README.md b/README.md
index 0eb0fd37..17981e4c 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,13 @@ out of the box, this tool support `Jellyfin`, `Plex` and `Emby` media servers.
## Updates
+### 2024-10-07
+
+We have added a WebUI page for Custom GUIDs and stabilized on `v1.0` for the `guid.yaml` file spec. We strongly recommend
+to use the `WebUI` to manage the GUIDs, as it's much easier to use than editing the `guid.yaml` file directly. and both the
+`WebUI` and `API` have safeguards to prevent you from breaking the parser. For more information please check out the associated
+FAQ entry about it at [this link](FAQ.md#advanced-how-to-extend-the-guid-parser-to-support-more-guids-or-custom-ones).
+
### 2024-09-14
We have recently added support for extending WatchState with more GUIDs, as of now, the support for it is done via
@@ -18,18 +25,6 @@ FAQ entry about it at [this link](FAQ.md#advanced-how-to-extend-the-guid-parser-
The mapping should work for all officially supported clients. If you have a client that is not supported, you have to manually add support for that client,
or request the maintainer to add support for it.
-### 2024-08-19
-
-We have migrated the `state:push` task into the new events system, as such the old task `state:push` is now gone.
-To enable the new event handler for push events, use the new environment variable `WS_PUSH_ENABLED` and set it to `true`.
-Right now, it's disabled by default. However, for people who had the old task enabled, it will reuse that setting.
-
-Keep in mind, the new event handler is more efficient and will only push data when there is a change in the play state. And it's much faster
-than the old task. This event handler will push data within a minute of the change.
-
-PS: Please enable the task by setting its new environment variable `WS_PUSH_ENABLED` to `true`. The old `WS_CRON_PUSH` is now gone.
-and will be removed in the future releases.
-
---
Refer to [NEWS](NEWS.md) for old updates.
diff --git a/frontend/layouts/default.vue b/frontend/layouts/default.vue
index 0b991712..dcf75e91 100644
--- a/frontend/layouts/default.vue
+++ b/frontend/layouts/default.vue
@@ -99,10 +99,18 @@
Log Suppression
+
WatchState GUID parser with your custom GUIDs. Using this
+ feature, You are able to use more metadata databases for references between the backends.
+
@@ -58,7 +56,8 @@
WatchState to support more less known or regional
+ specific metadata databases. We cannot add support directly to all databases, so this feature instead
+ allow you to manually do it yourself.
+ jellyfin:foobar ->
+ WatchState:guid_foobar and another for jellyfin:foobar -> guid_imdb.
+ guid.yaml file directly is unsupported and might lead to unexpected behavior.
+ Please use the WebUI to manage the GUIDs. as we expose the entire functionality via the WebUI. with
+ safeguards to prevent you from doing something that might break the system.
+ FAQ.md page, or directly via
+