update 25/06
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
16302c0348
commit
6d3a648bac
@ -1,144 +0,0 @@
|
|||||||
docker-compose^
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
networks:
|
|
||||||
direct_net:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
plextraktsync:
|
|
||||||
image: ghcr.io/taxel/plextraktsync
|
|
||||||
container_name: plextraktsync
|
|
||||||
restart: on-failure:2
|
|
||||||
volumes:
|
|
||||||
- /opt/appdata/plextraktsync/config:/app/config
|
|
||||||
networks:
|
|
||||||
- direct_net
|
|
||||||
environment:
|
|
||||||
- PUID=$PUID
|
|
||||||
- PGID=$PGID
|
|
||||||
- TZ=$TZ
|
|
||||||
command: sync
|
|
||||||
```
|
|
||||||
|
|
||||||
конфиг config.yml
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
cache:
|
|
||||||
path: $PTS_CACHE_DIR/trakt_cache
|
|
||||||
|
|
||||||
excluded-libraries:
|
|
||||||
- Private
|
|
||||||
- Family Holidays
|
|
||||||
|
|
||||||
config:
|
|
||||||
dotenv_override: true
|
|
||||||
|
|
||||||
plex:
|
|
||||||
timeout: 30
|
|
||||||
|
|
||||||
logging:
|
|
||||||
append: true
|
|
||||||
# Whether to show timestamps in console messages
|
|
||||||
console_time: false
|
|
||||||
debug: false
|
|
||||||
filename: plextraktsync.log
|
|
||||||
# Additional logger names to apply filtering
|
|
||||||
filter_loggers:
|
|
||||||
# - plexapi
|
|
||||||
# - requests_cache.backends
|
|
||||||
# - requests_cache.backends.base
|
|
||||||
# - requests_cache.backends.sqlite
|
|
||||||
# - requests_cache.policy.actions
|
|
||||||
# - requests_cache.session
|
|
||||||
# - trakt.core
|
|
||||||
# - urllib3.connectionpool
|
|
||||||
filter:
|
|
||||||
# # Filter out all messages with level WARNING
|
|
||||||
# - level: WARNING
|
|
||||||
# # Filter out message with level WARNING and containing a text
|
|
||||||
# - level: WARNING
|
|
||||||
# message: "not found on Trakt"
|
|
||||||
# - message: "because provider local has no external Id"
|
|
||||||
# - message: "because provider none has no external Id"
|
|
||||||
# - message: "Retry using search for specific Plex Episode"
|
|
||||||
# # Filter out messages by requests_cache
|
|
||||||
# - name: requests_cache.backends
|
|
||||||
# - name: requests_cache.backends.base
|
|
||||||
# - name: requests_cache.backends.sqlite
|
|
||||||
# - name: requests_cache.policy.actions
|
|
||||||
# - name: requests_cache.session
|
|
||||||
|
|
||||||
# settings for 'sync' command (default)
|
|
||||||
sync:
|
|
||||||
plex_to_trakt:
|
|
||||||
collection: false
|
|
||||||
# Clear collected state of items not present in Plex
|
|
||||||
clear_collected: false
|
|
||||||
ratings: true
|
|
||||||
watched_status: true
|
|
||||||
# If plex_to_trakt watchlist=false and trakt_to_plex watchlist=true
|
|
||||||
# the Plex watchlist will be overwritten by Trakt watchlist
|
|
||||||
watchlist: true
|
|
||||||
trakt_to_plex:
|
|
||||||
liked_lists: false
|
|
||||||
ratings: true
|
|
||||||
watched_status: true
|
|
||||||
# If trakt_to_plex watchlist=false and plex_to_trakt watchlist=true
|
|
||||||
# the Trakt watchlist will be overwritten by Plex watchlist
|
|
||||||
watchlist: false
|
|
||||||
# If you prefer to fetch trakt watchlist as a playlist instead of
|
|
||||||
# plex watchlist, toggle this to true (is read only if watchlist=true)
|
|
||||||
watchlist_as_playlist: false
|
|
||||||
|
|
||||||
# settings for 'watch' command
|
|
||||||
watch:
|
|
||||||
add_collection: false
|
|
||||||
remove_collection: false
|
|
||||||
# what video watched percentage (0 to 100) triggers the watched status
|
|
||||||
scrobble_threshold: 80
|
|
||||||
# true to scrobble only what's watched by you, false for all your PMS users
|
|
||||||
username_filter: true
|
|
||||||
# Show the progress bar of played media in terminal
|
|
||||||
media_progressbar: true
|
|
||||||
|
|
||||||
xbmc-providers:
|
|
||||||
movies: imdb
|
|
||||||
shows: tvdb
|
|
||||||
|
|
||||||
##### Advanced settings below this line, don't edit unless you know what you're doing #####
|
|
||||||
#http_cache:
|
|
||||||
# https://requests-cache.readthedocs.io/en/main/user_guide/expiration.html#url-patterns
|
|
||||||
# https://requests-cache.readthedocs.io/en/main/user_guide/expiration.html#expiration-values
|
|
||||||
#
|
|
||||||
# The value is seconds to cache.
|
|
||||||
# Or one of the following special values:
|
|
||||||
# - DO_NOT_CACHE: Skip both reading from and writing to the cache
|
|
||||||
# - EXPIRE_IMMEDIATELY: Consider the response already expired, but potentially usable
|
|
||||||
# - NEVER_EXPIRE: Store responses indefinitely
|
|
||||||
#
|
|
||||||
# The value can be also suffixed with a time unit:
|
|
||||||
# - 5m, 1h, 3d
|
|
||||||
# See full documentation at:
|
|
||||||
# - https://github.com/wroberts/pytimeparse#pytimeparse-time-expression-parser
|
|
||||||
#
|
|
||||||
# NOTE: If there is more than one match, the first match will be used in the order they are defined
|
|
||||||
# policy:
|
|
||||||
# "*.trakt.tv/users/me": 1d
|
|
||||||
# "*.trakt.tv/users/likes/lists": DO_NOT_CACHE
|
|
||||||
|
|
||||||
# vim:ts=2:sw=2:et
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
в servers.yml указать сервер плекса
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
servers:
|
|
||||||
default:
|
|
||||||
token: token
|
|
||||||
urls:
|
|
||||||
- http://plex:32400
|
|
||||||
```
|
|
@ -0,0 +1,72 @@
|
|||||||
|
Сервис добавляет двустороннюю сихронизацию между trakt.tv и Plex Media Server. Для этого требуется учетная запись trakt.tv, но без премиум-подписки Plex или VIP-подписки Trakt, в отличие от приложения Plex, предоставляемого Trakt.
|
||||||
|
|
||||||
|
## Функции
|
||||||
|
- Медиа из Plex добавлено в коллекцию Trakt
|
||||||
|
- Сихронизация рейтингов
|
||||||
|
- Сихронизация статуса просмотра (даты не синхронизируются от Trakt до Plex)
|
||||||
|
- Списки понравившегося в Trakt загружаются, все фильмы в Plex, принадлежащие к этому списку, объединяются в коллекцию
|
||||||
|
- Сихронизация списков налюдения
|
||||||
|
- Можно отредактировать файл конфигурации, чтобы выбрать, что синхронизировать
|
||||||
|
|
||||||
|
Ни одно из вышеперечисленных действий не требует членства в Plex Pass или Trakt VIP. Недостаток: необходимо выполнять вручную или через cronjob, нельзя использовать оперативные данные через веб-хуки.
|
||||||
|
|
||||||
|
## Установка через docker-compose
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: "3.7"
|
||||||
|
|
||||||
|
services:
|
||||||
|
plextraktsync:
|
||||||
|
image: ghcr.io/taxel/plextraktsync
|
||||||
|
container_name: plextraktsync
|
||||||
|
restart: on-failure:2
|
||||||
|
volumes:
|
||||||
|
- ./config:/app/config
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=Asia/Yekaterinburg
|
||||||
|
command: sync
|
||||||
|
```
|
||||||
|
|
||||||
|
Запустить синхронизацию: `docker-compose run --rm plextraktsync sync`
|
||||||
|
|
||||||
|
Для запуска автоматически по расписанию можно использовать crontab или sheduler:
|
||||||
|
|
||||||
|
=== "Crontab"
|
||||||
|
```
|
||||||
|
$ crontab -e
|
||||||
|
0 */2 * * * $HOME/.local/bin/plextraktsync sync
|
||||||
|
```
|
||||||
|
|
||||||
|
=== "Sheduler"
|
||||||
|
```yaml
|
||||||
|
version: '2'
|
||||||
|
services:
|
||||||
|
scheduler:
|
||||||
|
image: mcuadros/ofelia:latest
|
||||||
|
container_name: scheduler
|
||||||
|
depends_on:
|
||||||
|
- plextraktsync
|
||||||
|
command: daemon --docker
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
labels:
|
||||||
|
ofelia.job-run.plextraktsync.schedule: "@every 6h"
|
||||||
|
ofelia.job-run.plextraktsync.container: "plextraktsync"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Настройки
|
||||||
|
|
||||||
|
Если будет ошибка, что не найден сервер Plex, то надо в ручную прописать сервер в файле `servers.yml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
servers:
|
||||||
|
default:
|
||||||
|
token: token
|
||||||
|
urls:
|
||||||
|
- http://plex:32400
|
||||||
|
```
|
||||||
|
|
||||||
|
[Github :fontawesome-brands-github:](https://github.com/Taxel/PlexTraktSync){ .md-button .md-button--primary }
|
||||||
|
Github
|
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Loading…
Reference in New Issue