Compare commits

...

2448 commits

Author SHA1 Message Date
JonnyWong16
1144bba580
v2.15.3
Some checks failed
Publish Snap / Build Snap Package (armhf) (push) Has been cancelled
Publish Docker / Build Docker Image (push) Has been cancelled
Publish Snap / Build Snap Package (arm64) (push) Has been cancelled
CodeQL / CodeQL Analysis (push) Has been cancelled
Publish Snap / Build Snap Package (amd64) (push) Has been cancelled
Publish Installers / Build MacOS Installer (push) Has been cancelled
Publish Installers / Build Windows Installer (push) Has been cancelled
Publish Snap / Discord Notification (push) Has been cancelled
Publish Docker / Discord Notification (push) Has been cancelled
Publish Installers / Discord Notification (push) Has been cancelled
Publish Installers / VirusTotal Scan (push) Has been cancelled
Publish Installers / Release Installers (push) Has been cancelled
2025-08-03 10:17:15 -07:00
JonnyWong16
443eb8da15
Disable browser autocomplete in notification and newsletter configs
Fixes #2557
2025-08-03 10:10:01 -07:00
Komu Wairagu
5ecd570f95
Allow users to set config values through environment variables. (#2543)
* - Allow users to set config values through environment variables.
- Fixes: https://github.com/Tautulli/Tautulli/issues/2309

* Prefix environment variables with `TAUTULLI_`
For: https://github.com/Tautulli/Tautulli/issues/2309

* Update handling Tautulli environment variables

* Add log message when environment variable not saved to config

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2025-08-03 09:42:58 -07:00
Tom Niget
b8589513c1
Remove duplicate "Total" entry in graph tooltips (#2534) 2025-08-03 09:42:44 -07:00
JonnyWong16
d46710962c
Add ability to return svg files using pms_image_proxy 2025-08-03 09:35:06 -07:00
JonnyWong16
5921a7d83f
Fix rounding of minutes in global stats play duration
Some checks failed
CodeQL / CodeQL Analysis (push) Has been cancelled
Publish Docker / Build Docker Image (push) Has been cancelled
Publish Installers / Build MacOS Installer (push) Has been cancelled
Publish Installers / Build Windows Installer (push) Has been cancelled
Publish Snap / Build Snap Package (amd64) (push) Has been cancelled
Publish Snap / Build Snap Package (arm64) (push) Has been cancelled
Publish Snap / Build Snap Package (armhf) (push) Has been cancelled
Publish Docker / Discord Notification (push) Has been cancelled
Publish Installers / VirusTotal Scan (push) Has been cancelled
Publish Installers / Release Installers (push) Has been cancelled
Publish Installers / Discord Notification (push) Has been cancelled
Publish Snap / Discord Notification (push) Has been cancelled
2025-07-14 19:54:45 -07:00
JonnyWong16
9a6253d775
Enable jquery.scrollbar on macosx and webkit
Fixes #2221

Ref: gromo/jquery.scrollbar#134
2025-05-10 16:30:02 -07:00
JonnyWong16
43fc7eebfe
Update is_hdr helper function 2025-05-10 16:26:12 -07:00
JonnyWong16
c4f8a81190
Add hearingImpaired and visualImparied to exporter fields
* `hearingImpaired` for `SubtitleStreams`
* `visualImpaired` for `AudioStreams`
2025-05-10 16:25:39 -07:00
JonnyWong16
f6bffe1850
Update plexapi==4.17.0 2025-05-10 16:13:23 -07:00
dependabot[bot]
3cb71f94a3
Bump plexapi from 4.16.1 to 4.17.0 (#2538)
Bumps [plexapi](https://github.com/pushingkarmaorg/python-plexapi) from 4.16.1 to 4.17.0.
- [Release notes](https://github.com/pushingkarmaorg/python-plexapi/releases)
- [Commits](https://github.com/pushingkarmaorg/python-plexapi/compare/4.16.1...4.17.0)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-version: 4.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2025-05-10 16:10:03 -07:00
JonnyWong16
ff5edc06fe
Update crypto donation 2025-05-10 15:56:52 -07:00
JonnyWong16
cc88cffc1f
Fix retrieving history for collections/playlists with over 1000 items 2025-05-03 16:08:17 -07:00
JonnyWong16
e735294e1c
Uppercase ZIP archive export download tooltip 2025-04-18 18:21:27 -07:00
JonnyWong16
889026b092
Add auto sync winget fork to workflow 2025-04-12 16:56:10 -07:00
JonnyWong16
76f6a2da6b
v2.15.2 2025-04-12 16:02:46 -07:00
Tom Niget
d2a14ea6c0
Add hidden-by-default Total curve to the daily stream graph (#2497)
* Add hidden-by-default Total curve to the daily stream graph

* Update curve color

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2025-04-12 15:58:28 -07:00
JonnyWong16
e6c0a12dd5
Add stream count to tab title on homepage
Closes #2517
2025-03-30 20:30:01 -07:00
JonnyWong16
24dd403a72
Activity card only link to library if section_id available 2025-03-29 20:42:53 -07:00
JonnyWong16
a876e006d6
Fix Trakt URL redirect to media page
Fixes #2513
2025-03-29 20:42:44 -07:00
dependabot[bot]
74786f0ed1
Bump cryptography from 43.0.3 to 44.0.2 (#2519)
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.3 to 44.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/43.0.3...44.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-24 14:05:05 -07:00
dependabot[bot]
99e575383c
Bump pyopenssl from 24.2.1 to 25.0.0 (#2482)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 24.2.1 to 25.0.0.
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/24.2.1...25.0.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2025-03-24 14:04:46 -07:00
JonnyWong16
3e784c7495
Check stream watched status before stopped status
Fixes #2506
2025-03-23 20:41:30 -07:00
JonnyWong16
68dc095c83
Do not redirect API requests to login page
Fixes #2490
2025-03-23 20:10:43 -07:00
JonnyWong16
ad2ec0e2bf
Fix CherryPy CORS response headers
Fixes #2279
2025-03-23 19:44:10 -07:00
JonnyWong16
09c28e434d
Check Pushover attachment under 5MB limit
Fixes #2396
2025-03-23 18:12:08 -07:00
JonnyWong16
cfc7b817b3
Downgrade pyinstaller to 6.10.0 2025-03-23 16:19:54 -07:00
JonnyWong16
b3aa29c677
Swap source and stream columns in steam info modal 2025-03-23 16:05:01 -07:00
JonnyWong16
e4d181ba5b
Add PATCH method for webhooks 2025-03-16 12:26:34 -07:00
JonnyWong16
53e5f89725
Add audio profile notification parameters 2025-03-16 12:26:33 -07:00
JonnyWong16
0879b848b9
Add link to library page from activity card media type icon 2025-03-16 12:26:32 -07:00
JonnyWong16
c70381c3ff
Fix ntfy notifications not sending if provider link is blank 2025-03-16 12:26:30 -07:00
JonnyWong16
f23d3eb81c
Fix changelog username 2025-03-16 12:26:28 -07:00
luzpaz
2ed603f288
Fix typos (#2520)
Found via codespell
2025-03-16 12:25:29 -07:00
JonnyWong16
a96fd23d72
v2.15.1 2025-01-11 15:27:24 -08:00
JonnyWong16
65dc466c07
Add Github token to release virus scan 2025-01-09 15:13:20 -08:00
JonnyWong16
0a4730625c
Update copyright year 2025-01-09 15:12:49 -08:00
JonnyWong16
67fa4ca645
Add logos to season and episode exports 2025-01-09 10:45:49 -08:00
JonnyWong16
078c293bd7
Update plexapi=4.16.1 2025-01-09 10:45:29 -08:00
JonnyWong16
85e9237608
Update pyjwt==2.10.1 2025-01-09 10:16:47 -08:00
dependabot[bot]
f9b3631745
Bump pyjwt from 2.10.0 to 2.10.1 (#2445)
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.10.0 to 2.10.1.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2025-01-09 10:14:37 -08:00
JonnyWong16
8f03e27617
Add VirusTotal scan to installer build CI 2025-01-09 09:57:58 -08:00
JonnyWong16
63fe386057
Disable basic auth for /newsletter and /image endpoints
Fixes #2472
2025-01-09 09:13:57 -08:00
chrisdecker08
b7c4f2eefe
detect HDR transcodes via colorTrc attribute (#2466) 2024-12-14 12:24:08 -08:00
JonnyWong16
37ef098718
Flip docker container healthcheck https first 2024-11-28 16:36:03 -08:00
JonnyWong16
78864d7a97
v2.15.0 2024-11-24 14:57:29 -08:00
JonnyWong16
62a05712f8
Add logos to exporter 2024-11-24 14:55:51 -08:00
JonnyWong16
ca0e1c321d
Convert CustomArrow to string in newsletter raw json 2024-11-24 14:17:35 -08:00
JonnyWong16
b9cb7102c4
Add plex_slug and plex_watch_url to nofication parameters 2024-11-19 10:58:55 -08:00
JonnyWong16
6e6fe1fb65
Add slugs to metadata details 2024-11-19 10:36:34 -08:00
peagravel
9c473c6528
Add friendly name to the top bar of config modals (#2432) 2024-11-19 10:14:45 -08:00
Castle
5c38de0dfb
Allow Telegram blockquote expandable (#2427)
* Allow Telegram blockquote expandable

Blockquote is not yet supported, this feature adds support along with expandable functionality.

* Add support for tg-emoji in Telegram HTML

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-11-19 10:12:00 -08:00
JonnyWong16
ea66f6713b
Add hasVoiceActivity to exporter fields 2024-11-19 10:09:02 -08:00
dependabot[bot]
dd9a35df51
Bump pyjwt from 2.9.0 to 2.10.0 (#2441)
* Bump pyjwt from 2.9.0 to 2.10.0

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyjwt==2.10.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 10:01:27 -08:00
dependabot[bot]
feca713b76
Bump dnspython from 2.6.1 to 2.7.0 (#2440)
* Bump dnspython from 2.6.1 to 2.7.0

Bumps [dnspython](https://github.com/rthalley/dnspython) from 2.6.1 to 2.7.0.
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.6.1...v2.7.0)

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.7.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 10:00:50 -08:00
dependabot[bot]
0836fb902c
Bump plexapi from 4.15.16 to 4.16.0 (#2439)
* Bump plexapi from 4.15.16 to 4.16.0

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.15.16 to 4.16.0.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.15.16...4.16.0)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.16.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 10:00:37 -08:00
dependabot[bot]
eb2c372d82
Bump bleach from 6.1.0 to 6.2.0 (#2438)
* Bump bleach from 6.1.0 to 6.2.0

Bumps [bleach](https://github.com/mozilla/bleach) from 6.1.0 to 6.2.0.
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.1.0...v6.2.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update bleach==6.2.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 10:00:24 -08:00
dependabot[bot]
be2e63e7e0
Bump pyparsing from 3.1.4 to 3.2.0 (#2437)
* Bump pyparsing from 3.1.4 to 3.2.0

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.1.4 to 3.2.0.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/3.1.4...3.2.0)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.2.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 10:00:11 -08:00
dependabot[bot]
2fe3f039cc
Bump tokenize-rt from 6.0.0 to 6.1.0 (#2436)
* Bump tokenize-rt from 6.0.0 to 6.1.0

Bumps [tokenize-rt](https://github.com/asottile/tokenize-rt) from 6.0.0 to 6.1.0.
- [Commits](https://github.com/asottile/tokenize-rt/compare/v6.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: tokenize-rt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tokenize-rt==6.1.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-19 09:59:58 -08:00
dependabot[bot]
baf926e5db
Bump markupsafe from 2.1.5 to 3.0.2 (#2435)
Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.5 to 3.0.2.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.5...3.0.2)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-11-19 09:59:40 -08:00
JonnyWong16
85b63fb61a
Remove backports.zoneinfo 2024-11-19 09:34:49 -08:00
JonnyWong16
afc29604cc
Bump zipp==3.21.0
Closes #2433
2024-11-19 09:34:48 -08:00
JonnyWong16
5b47cebdc7
Bump minimum Python version to 3.9 2024-11-16 15:21:41 -08:00
JonnyWong16
d9f38f9390
Fix artist title for fixing metadata match
Fixes #2429
2024-11-16 15:19:57 -08:00
JonnyWong16
86d775a586
Update OneSignal API calls 2024-11-16 15:19:56 -08:00
dependabot[bot]
ddb4f6131b
Bump pyinstaller from 6.8.0 to 6.11.1 (#2431)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 6.8.0 to 6.11.1.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v6.8.0...v6.11.1)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-16 15:02:52 -08:00
dependabot[bot]
599e52de6a
Bump cryptography from 43.0.0 to 43.0.3 (#2421)
Bumps [cryptography](https://github.com/pyca/cryptography) from 43.0.0 to 43.0.3.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/43.0.0...43.0.3)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-11-16 14:53:44 -08:00
dependabot[bot]
84be60cb36
Bump pywin32 from 306 to 308 (#2417)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 306 to 308.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-11-16 14:53:33 -08:00
dependabot[bot]
d9a87f9726
Bump packaging from 24.1 to 24.2 (#2428)
* Bump packaging from 24.1 to 24.2

Bumps [packaging](https://github.com/pypa/packaging) from 24.1 to 24.2.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/24.1...24.2)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==24.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:52:11 -08:00
dependabot[bot]
9289ead996
Bump mako from 1.3.5 to 1.3.6 (#2423)
* Bump mako from 1.3.5 to 1.3.6

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.3.5 to 1.3.6.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.3.6

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:51:58 -08:00
dependabot[bot]
af752e0acc
Bump xmltodict from 0.13.0 to 0.14.2 (#2418)
* Bump xmltodict from 0.13.0 to 0.14.2

Bumps [xmltodict](https://github.com/martinblech/xmltodict) from 0.13.0 to 0.14.2.
- [Changelog](https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md)
- [Commits](https://github.com/martinblech/xmltodict/compare/v0.13.0...v0.14.2)

---
updated-dependencies:
- dependency-name: xmltodict
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update xmltodict==0.14.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:51:45 -08:00
dependabot[bot]
86abd130b0
Bump profilehooks from 1.12.0 to 1.13.0 (#2414)
* Bump profilehooks from 1.12.0 to 1.13.0

Bumps [profilehooks](https://github.com/mgedmin/profilehooks) from 1.12.0 to 1.13.0.
- [Changelog](https://github.com/mgedmin/profilehooks/blob/master/CHANGES.rst)
- [Commits](https://github.com/mgedmin/profilehooks/compare/1.12.0...1.13.0)

---
updated-dependencies:
- dependency-name: profilehooks
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update profilehooks==1.13.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:51:34 -08:00
dependabot[bot]
fc2c7cc871
Bump tzdata from 2024.1 to 2024.2 (#2409)
* Bump tzdata from 2024.1 to 2024.2

Bumps [tzdata](https://github.com/python/tzdata) from 2024.1 to 2024.2.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2024.1...2024.2)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tzdata==2024.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:51:22 -08:00
dependabot[bot]
025e8bcf58
Bump platformdirs from 4.2.2 to 4.3.6 (#2403)
* Bump platformdirs from 4.2.2 to 4.3.6

Bumps [platformdirs](https://github.com/tox-dev/platformdirs) from 4.2.2 to 4.3.6.
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/tox-dev/platformdirs/compare/4.2.2...4.3.6)

---
updated-dependencies:
- dependency-name: platformdirs
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update platformdirs==4.3.6

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:51:10 -08:00
dependabot[bot]
bf07912711
Bump idna from 3.7 to 3.10 (#2400)
* Bump idna from 3.7 to 3.10

Bumps [idna](https://github.com/kjd/idna) from 3.7 to 3.10.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.7...v3.10)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update idna==3.10

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:50:57 -08:00
dependabot[bot]
48b1c7b522
Bump pytz from 2024.1 to 2024.2 (#2398)
* Bump pytz from 2024.1 to 2024.2

Bumps [pytz](https://github.com/stub42/pytz) from 2024.1 to 2024.2.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2024.1...release_2024.2)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2024.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:49:08 -08:00
dependabot[bot]
e69852fa0e
Bump importlib-metadata from 8.2.0 to 8.5.0 (#2397)
* Bump importlib-metadata from 8.2.0 to 8.5.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.2.0 to 8.5.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.2.0...v8.5.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==8.5.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:48:53 -08:00
dependabot[bot]
01589cb8b0
Bump importlib-resources from 6.4.0 to 6.4.5 (#2394)
* Bump importlib-resources from 6.4.0 to 6.4.5

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.4.0 to 6.4.5.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v6.4.0...v6.4.5)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==6.4.5

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:48:10 -08:00
dependabot[bot]
f3a2c02e96
Bump certifi from 2024.7.4 to 2024.8.30 (#2391)
* Bump certifi from 2024.7.4 to 2024.8.30

Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.7.4 to 2024.8.30.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2024.8.30

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:47:58 -08:00
dependabot[bot]
d3f7eef84f
Bump pyparsing from 3.1.2 to 3.1.4 (#2388)
* Bump pyparsing from 3.1.2 to 3.1.4

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.1.2 to 3.1.4.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_3.1.2...3.1.4)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.1.4

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:47:48 -08:00
dependabot[bot]
2f3d24a0e7
Bump simplejson from 3.19.2 to 3.19.3 (#2379)
* Bump simplejson from 3.19.2 to 3.19.3

Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.19.2 to 3.19.3.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.19.2...v3.19.3)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update simplejson==3.19.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-11-16 14:47:38 -08:00
JonnyWong16
2d3271376b
Remove unused cache_image function
Fixes #2426
2024-11-02 11:13:37 -07:00
JonnyWong16
940c2ae6cd
v2.14.6 2024-10-12 16:55:38 -07:00
JonnyWong16
1cdfd5f30a
Refactor scroller code 2024-09-28 14:30:40 -07:00
JonnyWong16
e3f4851883
Make recent rows touch scrollable 2024-09-28 13:17:09 -07:00
JonnyWong16
1353247b55
Allow formatting newsletter date parameters 2024-09-25 15:11:21 -07:00
JonnyWong16
3cf6560de3
Support apscheduler cron expressions 2024-09-25 11:54:55 -07:00
JonnyWong16
9ca8d59372
Fix auto-update not running 2024-09-23 16:52:17 -07:00
JonnyWong16
921a3a0af9
Round human duration to nearest significant base 2024-09-22 18:03:28 -07:00
JonnyWong16
3bb53f480e
Change snap package to cryptography 2024-09-21 14:17:08 -07:00
JonnyWong16
6979a4025f
v2.14.5 2024-09-20 20:29:15 -07:00
dependabot[bot]
cc1a325eac
Bump plexapi from 4.15.15 to 4.15.16 (#2383)
* Bump plexapi from 4.15.15 to 4.15.16

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.15.15 to 4.15.16.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.15.15...4.15.16)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.15.16

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-09-20 20:24:00 -07:00
JonnyWong16
de697cb2ca
Add 2k resolution override 2024-09-15 14:27:05 -07:00
JonnyWong16
596cf57d61
Do no initialize db connection in ActivityProcessor 2024-09-15 14:26:45 -07:00
JonnyWong16
ac32297160
Close database connection on garbage collection 2024-09-04 13:28:54 -07:00
JonnyWong16
330b8a3a82
Encode ntfy payload 2024-08-31 16:10:00 -07:00
JonnyWong16
5cf39cb097
Add Docker image labels 2024-08-17 11:27:17 -07:00
JonnyWong16
14c9c7a393
Replace PyCryptodome with Cryptography 2024-08-16 20:40:31 -07:00
JonnyWong16
cf8fb2e65d
Catch exception trying to remove PID file 2024-08-16 19:32:53 -07:00
JonnyWong16
623a9f2919
v2.14.4 2024-08-10 19:41:23 -07:00
JonnyWong16
3fb46a9ab7
Update workflow snapcraft actions branch 2024-08-10 19:30:12 -07:00
Teodor-Stelian Baltaretu
cfd81684b7
Removed deprecated getdefaultlocale (#2345) (#2364)
* Removed deprecated getdefaultlocale (#2345)

* Added Special Case For Windows (#2345)

* Refactored the changes into a cleaner code with comments (#2345)

* Changed the encoding method used and the selection of language

* Removed hardcoded encoding in Windows handling
2024-08-10 19:24:06 -07:00
dependabot[bot]
fb4f0046f3
Bump pyopenssl from 24.1.0 to 24.2.1 (#2368)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 24.1.0 to 24.2.1.
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/24.1.0...24.2.1)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-08-10 19:20:21 -07:00
dependabot[bot]
7d4efac75d
Bump tokenize-rt from 5.2.0 to 6.0.0 (#2376)
* Bump tokenize-rt from 5.2.0 to 6.0.0

Bumps [tokenize-rt](https://github.com/asottile/tokenize-rt) from 5.2.0 to 6.0.0.
- [Commits](https://github.com/asottile/tokenize-rt/compare/v5.2.0...v6.0.0)

---
updated-dependencies:
- dependency-name: tokenize-rt
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tokenize-rt==6.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-08-10 19:19:28 -07:00
dependabot[bot]
509d18801b
Bump cloudinary from 1.40.0 to 1.41.0 (#2375)
* Bump cloudinary from 1.40.0 to 1.41.0

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.40.0 to 1.41.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.40.0...1.41.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.41.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-08-10 19:18:37 -07:00
dependabot[bot]
da501df846
Bump pyjwt from 2.8.0 to 2.9.0 (#2374)
* Bump pyjwt from 2.8.0 to 2.9.0

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.8.0...2.9.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyjwt==2.9.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-08-10 19:18:24 -07:00
dependabot[bot]
43cb027592
Bump tempora from 5.6.0 to 5.7.0 (#2371)
* Bump tempora from 5.6.0 to 5.7.0

Bumps [tempora](https://github.com/jaraco/tempora) from 5.6.0 to 5.7.0.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.6.0...v5.7.0)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.7.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-08-10 19:16:20 -07:00
dependabot[bot]
2e6f541ec2
Bump importlib-metadata from 8.0.0 to 8.2.0 (#2370)
* Bump importlib-metadata from 8.0.0 to 8.2.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 8.0.0 to 8.2.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v8.0.0...v8.2.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==8.2.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-08-10 19:16:03 -07:00
JonnyWong16
822d5a452c
Capitalize macOS platform 2024-08-10 19:13:56 -07:00
dependabot[bot]
7696d031d3
Bump certifi from 2024.6.2 to 2024.7.4 (#2361)
* Bump certifi from 2024.6.2 to 2024.7.4

Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.6.2 to 2024.7.4.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.06.02...2024.07.04)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2024.7.4

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-07-06 11:05:03 -07:00
dependabot[bot]
50ced86ba5
Bump importlib-metadata from 7.1.0 to 8.0.0 (#2360)
* Bump importlib-metadata from 7.1.0 to 8.0.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 7.1.0 to 8.0.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v7.1.0...v8.0.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==8.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-07-06 11:04:54 -07:00
JonnyWong16
e934d09eff
Update plexapi==4.15.15 requirements.txt 2024-07-06 11:03:05 -07:00
JonnyWong16
96c5cb216c
Update plexapi==4.15.15 2024-07-06 11:02:21 -07:00
Nate Harris
2ee2ab652c
[FEAT] Add ntfy as a notifier (#2356)
* - Add ntfy as a notifier

* - Fix media poster attachment in ntfy
2024-07-06 10:02:36 -07:00
JonnyWong16
193b82c54a
Update Slack notification attachment 2024-06-30 14:15:11 -07:00
JonnyWong16
7d00383d1c
v2.14.3 2024-06-19 19:14:20 -07:00
dependabot[bot]
6f84ce8048
Bump docker/build-push-action from 5 to 6 (#2354)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 00:06:18 -07:00
dependabot[bot]
709db66b10
Bump pyinstaller from 6.6.0 to 6.8.0 (#2346)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 6.6.0 to 6.8.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v6.6.0...v6.8.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-06-19 00:06:02 -07:00
dependabot[bot]
2f1607b96b
Bump packaging from 24.0 to 24.1 (#2347)
* Bump packaging from 24.0 to 24.1

Bumps [packaging](https://github.com/pypa/packaging) from 24.0 to 24.1.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/24.0...24.1)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==24.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:04:34 -07:00
dependabot[bot]
28ad2716ba
Bump pyobjc-framework-cocoa from 10.2 to 10.3.1 (#2348)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 10.2 to 10.3.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v10.2...v10.3.1)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:04:15 -07:00
dependabot[bot]
f1a8164b94
Bump pyobjc-core from 10.2 to 10.3.1 (#2349)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 10.2 to 10.3.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v10.2...v10.3.1)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-06-19 00:03:23 -07:00
dependabot[bot]
3bc94cad6c
Bump tempora from 5.5.1 to 5.6.0 (#2355)
* Bump tempora from 5.5.1 to 5.6.0

Bumps [tempora](https://github.com/jaraco/tempora) from 5.5.1 to 5.6.0.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.5.1...v5.6.0)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.6.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:02:54 -07:00
dependabot[bot]
a528f052b9
Bump cherrypy from 18.9.0 to 18.10.0 (#2353)
* Bump cherrypy from 18.9.0 to 18.10.0

Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.9.0 to 18.10.0.
- [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cherrypy/compare/v18.9.0...v18.10.0)

---
updated-dependencies:
- dependency-name: cherrypy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cherrypy==18.10.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:02:35 -07:00
dependabot[bot]
5e977c044a
Bump zipp from 3.18.2 to 3.19.2 (#2343)
* Bump zipp from 3.18.2 to 3.19.2

Bumps [zipp](https://github.com/jaraco/zipp) from 3.18.2 to 3.19.2.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.18.2...v3.19.2)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.19.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:02:06 -07:00
dependabot[bot]
afa25d45f6
Bump certifi from 2024.2.2 to 2024.6.2 (#2342)
* Bump certifi from 2024.2.2 to 2024.6.2

Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.2.2 to 2024.6.2.
- [Commits](https://github.com/certifi/python-certifi/compare/2024.02.02...2024.06.02)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2024.6.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:01:47 -07:00
dependabot[bot]
43e71d836a
Bump requests from 2.31.0 to 2.32.3 (#2338)
* Bump requests from 2.31.0 to 2.32.3

Bumps [requests](https://github.com/psf/requests) from 2.31.0 to 2.32.3.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.31.0...v2.32.3)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.32.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-06-19 00:01:34 -07:00
JonnyWong16
55573d26ea
Ignore shutdown exception in cheroot 2024-06-18 19:19:18 -07:00
JonnyWong16
f1d44c051d
Fix loading of scheduled tasks when tasks are disabled 2024-06-06 21:39:33 -07:00
JonnyWong16
a3af8ed362
Fix width of use secure connection checkbox in wizard 2024-06-03 23:14:19 -07:00
JonnyWong16
912fd75a2f
Remove pms_is_remote setting
* Automatically determine if a server is local or remote
2024-06-03 23:14:19 -07:00
JonnyWong16
5778672dab
Fix webserver restarting 2024-05-25 18:41:17 -07:00
JonnyWong16
dcdf5a2992
Fix SQLite quotes for history date filters 2024-05-21 10:40:00 -07:00
JonnyWong16
73cfa8e0c0
Add git clean to reset git install 2024-05-18 14:29:53 -07:00
JonnyWong16
795d568df2
v2.14.2 2024-05-18 13:56:06 -07:00
JonnyWong16
8396a04ce8
Update plexapi==4.15.13 2024-05-18 13:52:52 -07:00
JonnyWong16
8419eee4b2
Catch exception when decoding server response message 2024-05-18 13:50:37 -07:00
dependabot[bot]
c505e26656
Bump zipp from 3.18.1 to 3.18.2 (#2326)
* Bump zipp from 3.18.1 to 3.18.2

Bumps [zipp](https://github.com/jaraco/zipp) from 3.18.1 to 3.18.2.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.18.1...v3.18.2)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.18.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-18 11:17:26 -07:00
dependabot[bot]
37ffe68ce2
Bump mako from 1.3.3 to 1.3.5 (#2325)
* Bump mako from 1.3.3 to 1.3.5

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.3.3 to 1.3.5.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.3.5

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-18 11:17:13 -07:00
dependabot[bot]
dc9e778111
Bump platformdirs from 4.2.1 to 4.2.2 (#2324)
* Bump platformdirs from 4.2.1 to 4.2.2

Bumps [platformdirs](https://github.com/platformdirs/platformdirs) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/platformdirs/platformdirs/releases)
- [Changelog](https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/platformdirs/platformdirs/compare/4.2.1...4.2.2)

---
updated-dependencies:
- dependency-name: platformdirs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update platformdirs==4.2.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-18 11:17:01 -07:00
JonnyWong16
68bf1c70f7
Overwrite image provider export field for uploaded assets 2024-05-13 20:56:40 -07:00
JonnyWong16
ee0b4c0602
Add artProvider and thumbProvider to exporter fields 2024-05-12 22:38:05 -07:00
JonnyWong16
5c115dec68
Fix uploading MacOS installer release asset 2024-05-11 09:51:05 -07:00
JonnyWong16
1d77f32665
v2.14.1-beta 2024-05-11 09:33:49 -07:00
JonnyWong16
af01b8c6cc
Fix appending user ids 2024-05-09 22:43:57 -07:00
JonnyWong16
dd9d3b97a2
Update workflow joncloud/makensis-action@v4.1
[skip ci]
2024-05-09 22:41:07 -07:00
JonnyWong16
96c20ad893
Update cloudinary==1.40.0 2024-05-09 22:31:06 -07:00
dependabot[bot]
5e90f3bb31
Bump paho-mqtt from 2.0.0 to 2.1.0 (#2316)
* Bump paho-mqtt from 2.0.0 to 2.1.0

Bumps [paho-mqtt](https://github.com/eclipse/paho.mqtt.python) from 2.0.0 to 2.1.0.
- [Release notes](https://github.com/eclipse/paho.mqtt.python/releases)
- [Changelog](https://github.com/eclipse/paho.mqtt.python/blob/master/ChangeLog.txt)
- [Commits](https://github.com/eclipse/paho.mqtt.python/compare/v2.0.0...v2.1.0)

---
updated-dependencies:
- dependency-name: paho-mqtt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update paho-mqtt==2.1.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-09 22:28:50 -07:00
dependabot[bot]
dab46249f2
Bump websocket-client from 1.7.0 to 1.8.0 (#2313)
* Bump websocket-client from 1.7.0 to 1.8.0

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.8.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-09 22:28:14 -07:00
dependabot[bot]
5d0ba8b222
Bump platformdirs from 4.2.0 to 4.2.1 (#2312)
* Bump platformdirs from 4.2.0 to 4.2.1

Bumps [platformdirs](https://github.com/platformdirs/platformdirs) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/platformdirs/platformdirs/releases)
- [Changelog](https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/platformdirs/platformdirs/compare/4.2.0...4.2.1)

---
updated-dependencies:
- dependency-name: platformdirs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update platformdirs==4.2.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-09 22:27:59 -07:00
dependabot[bot]
3e8a5663a3
Bump plexapi from 4.15.11 to 4.15.12 (#2311)
* Bump plexapi from 4.15.11 to 4.15.12

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.15.11 to 4.15.12.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.15.11...4.15.12)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.15.12

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-09 22:27:15 -07:00
dependabot[bot]
6414a0ba12
Bump cheroot from 10.0.0 to 10.0.1 (#2310)
* Bump cheroot from 10.0.0 to 10.0.1

Bumps [cheroot](https://github.com/cherrypy/cheroot) from 10.0.0 to 10.0.1.
- [Release notes](https://github.com/cherrypy/cheroot/releases)
- [Changelog](https://github.com/cherrypy/cheroot/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cheroot/compare/v10.0.0...v10.0.1)

---
updated-dependencies:
- dependency-name: cheroot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cheroot==10.0.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-05-09 22:27:04 -07:00
dependabot[bot]
bcac5b7897
Bump cloudinary from 1.39.1 to 1.40.0 (#2308)
Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.39.1 to 1.40.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.39.1...1.40.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-05-09 22:20:53 -07:00
Tom Niget
de3393d62b
Remove Python 2 handling code (#2098)
* Remove Python 2 update modal

* Remove Python 2 handling code

* Remove backports dependencies

* Remove uses of future and __future__

* Fix import

* Remove requirements

* Update lib folder

* Clean up imports and blank lines

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2024-05-09 22:18:08 -07:00
JonnyWong16
dcec1f6f5f
Update snapcraft git data folder 2024-05-09 21:55:26 -07:00
JonnyWong16
65905a6647
Fix escaping regex string 2024-05-09 21:52:39 -07:00
JonnyWong16
5de2cf85c3
Workaround users remaining in friends list without shared libraries 2024-05-09 20:49:06 -07:00
JonnyWong16
a7660d5c03
v2.14.0-beta 2024-04-18 22:41:23 -07:00
JonnyWong16
5e02db897f
Remove anonymous redirect 2024-04-18 13:12:56 -07:00
JonnyWong16
52e2950aa9
Add no-referrer policy 2024-04-18 13:12:47 -07:00
dependabot[bot]
acf1b2384a
Bump pyinstaller from 6.5.0 to 6.6.0 (#2307)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v6.5.0...v6.6.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-18 13:03:30 -07:00
dependabot[bot]
07166ae6b2
Bump idna from 3.6 to 3.7 (#2304)
* Bump idna from 3.6 to 3.7

Bumps [idna](https://github.com/kjd/idna) from 3.6 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.6...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update idna==3.7

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-04-18 13:01:25 -07:00
dependabot[bot]
80984bd296
Bump mako from 1.3.2 to 1.3.3 (#2303)
* Bump mako from 1.3.2 to 1.3.3

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.3.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-04-18 13:01:09 -07:00
JonnyWong16
6a9e532805
Change path join for session metadata cache 2024-04-07 15:58:28 -07:00
JonnyWong16
2258a88168
Use metadata from session for stale live tv sessions 2024-04-07 15:58:01 -07:00
JonnyWong16
282810e9ca
Increase Remote app PBKDF2 iterations to 600,000 and SHA256 hash
OWASP Cheat Sheet recommends 600,000 iterations for SHA256.

https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2
2024-04-04 22:57:17 -07:00
JonnyWong16
4582ff4a56
Fix grouping live tv history 2024-04-01 21:47:33 -07:00
JonnyWong16
10e62ca42d
Fix stats on live tv info pages 2024-04-01 19:02:52 -07:00
JonnyWong16
e3245bc126
Add live tv channel keys notification parameters 2024-04-01 19:02:52 -07:00
JonnyWong16
3dc6d226f8
Add live tv channel keys to database 2024-04-01 19:02:52 -07:00
JonnyWong16
177962d626
Change live tv text to channel title 2024-04-01 19:02:52 -07:00
JonnyWong16
5e4f656155
Add space to session start live tv log message 2024-04-01 19:02:52 -07:00
JonnyWong16
980fc8a43f
Fix live tv history watched status 2024-04-01 19:02:52 -07:00
JonnyWong16
458e89b8d7
Get live TV metadata from epg 2024-04-01 19:02:52 -07:00
JonnyWong16
b8185afdf9
Temporary fix for live tv session missing duration 2024-03-31 17:09:35 -07:00
JonnyWong16
85519b1b45
Update plexapi==4.15.11 2024-03-31 16:11:00 -07:00
dependabot[bot]
653a6d5c12
Bump pyinstaller from 6.4.0 to 6.5.0 (#2298)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v6.4.0...v6.5.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-30 15:46:44 -07:00
dependabot[bot]
b2a8601c70
Bump pyobjc-framework-cocoa from 10.1 to 10.2 (#2299)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 10.1 to 10.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v10.1...v10.2)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:30:09 -07:00
dependabot[bot]
938b48c5aa
Bump pyobjc-core from 10.1 to 10.2 (#2294)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 10.1 to 10.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v10.1...v10.2)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:29:37 -07:00
dependabot[bot]
cdfffda877
Bump pyopenssl from 24.0.0 to 24.1.0 (#2290)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 24.0.0 to 24.1.0.
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/24.0.0...24.1.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:29:25 -07:00
dependabot[bot]
b6eca379fa
Bump idna from 3.4 to 3.6 (#2300)
* Bump idna from 3.4 to 3.6

Bumps [idna](https://github.com/kjd/idna) from 3.4 to 3.6.
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.4...v3.6)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update idna==3.6

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-30 15:29:14 -07:00
dependabot[bot]
aa2006c2cc
Bump markupsafe from 2.1.3 to 2.1.5 (#2297)
Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.3 to 2.1.5.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.3...2.1.5)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:29:02 -07:00
dependabot[bot]
26358427ce
Bump pyparsing from 3.1.1 to 3.1.2 (#2296)
* Bump pyparsing from 3.1.1 to 3.1.2

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/3.1.1...pyparsing_3.1.2)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.1.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-30 15:28:45 -07:00
dependabot[bot]
1d96e0f859
Bump tzdata from 2023.3 to 2024.1 (#2295)
* Bump tzdata from 2023.3 to 2024.1

Bumps [tzdata](https://github.com/python/tzdata) from 2023.3 to 2024.1.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2023.3...2024.1)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tzdata==2024.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-30 15:28:14 -07:00
dependabot[bot]
0d1d2a3e6b
Bump requests-oauthlib from 1.3.1 to 2.0.0 (#2293)
* Bump requests-oauthlib from 1.3.1 to 2.0.0

Bumps [requests-oauthlib](https://github.com/requests/requests-oauthlib) from 1.3.1 to 2.0.0.
- [Release notes](https://github.com/requests/requests-oauthlib/releases)
- [Changelog](https://github.com/requests/requests-oauthlib/blob/master/HISTORY.rst)
- [Commits](https://github.com/requests/requests-oauthlib/compare/v1.3.1...v2.0.0)

---
updated-dependencies:
- dependency-name: requests-oauthlib
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests-oauthlib==2.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-30 15:28:02 -07:00
dependabot[bot]
452a4afdcf
Bump tempora from 5.5.0 to 5.5.1 (#2292)
Bumps [tempora](https://github.com/jaraco/tempora) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.5.0...v5.5.1)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:27:42 -07:00
dependabot[bot]
bfc4f66739
Bump python-dateutil from 2.8.2 to 2.9.0.post0 (#2291)
Bumps [python-dateutil](https://github.com/dateutil/dateutil) from 2.8.2 to 2.9.0.post0.
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](https://github.com/dateutil/dateutil/compare/2.8.2...2.9.0.post0)

---
updated-dependencies:
- dependency-name: python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-30 15:27:31 -07:00
dependabot[bot]
f82aecb88c
Bump paho-mqtt from 1.6.1 to 2.0.0 (#2288)
* Bump paho-mqtt from 1.6.1 to 2.0.0

Bumps [paho-mqtt](https://github.com/eclipse/paho.mqtt.python) from 1.6.1 to 2.0.0.
- [Release notes](https://github.com/eclipse/paho.mqtt.python/releases)
- [Changelog](https://github.com/eclipse/paho.mqtt.python/blob/master/ChangeLog.txt)
- [Commits](https://github.com/eclipse/paho.mqtt.python/compare/v1.6.1...v2.0.0)

---
updated-dependencies:
- dependency-name: paho-mqtt
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update paho-mqtt==2.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-30 15:27:16 -07:00
dependabot[bot]
75a1750a4e
Bump cherrypy from 18.8.0 to 18.9.0 (#2289)
Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0.
- [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0)

---
updated-dependencies:
- dependency-name: cherrypy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-26 15:10:51 -07:00
JonnyWong16
51196a7fb1
Update cherrypy==18.9.0 2024-03-24 17:55:28 -07:00
JonnyWong16
2fc618c01f
Revert "Bump cherrypy from 18.8.0 to 18.9.0 (#2266)"
This reverts commit faef9a94c4.
2024-03-24 17:55:28 -07:00
JonnyWong16
fcd8ef11f4
Add before and after parameters to get_home_stats API
Closes #2231
2024-03-24 17:26:18 -07:00
JonnyWong16
c737161164
Add dovi notification parameters
Closes #2240
2024-03-24 16:37:46 -07:00
JonnyWong16
de3121cba9
Add Dolby Vision info to media info 2024-03-24 16:36:18 -07:00
JonnyWong16
9fe58a6d86
Add lan streams and wan streams notification parameters
Closes #2276
2024-03-24 16:09:41 -07:00
JonnyWong16
cfdb6975f0
Add platform version and product version notification parameters
Closes #2244
2024-03-24 16:09:21 -07:00
JonnyWong16
41693ee5f1
Remove synced items from UI 2024-03-24 15:46:57 -07:00
JonnyWong16
7a11b10947
Fix Cloudinary delete all limit of 1000 2024-03-24 15:44:43 -07:00
JonnyWong16
4430c14374
Fix incorrect reachability websocket event key 2024-03-24 15:31:14 -07:00
dependabot[bot]
e248c13c15
Bump importlib-metadata from 6.8.0 to 7.1.0 (#2286)
* Bump importlib-metadata from 6.8.0 to 7.1.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 6.8.0 to 7.1.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v6.8.0...v7.1.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==7.1.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:29:52 -07:00
dependabot[bot]
b01b21ae05
Bump importlib-resources from 6.0.1 to 6.4.0 (#2285)
* Bump importlib-resources from 6.0.1 to 6.4.0

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 6.0.1 to 6.4.0.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v6.0.1...v6.4.0)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==6.4.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:27:55 -07:00
dependabot[bot]
6c6fa34ba4
Bump cloudinary from 1.34.0 to 1.39.1 (#2283)
* Bump cloudinary from 1.34.0 to 1.39.1

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.34.0 to 1.39.1.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.34.0...1.39.1)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.39.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:27:42 -07:00
dependabot[bot]
24fff60ed4
Bump zipp from 3.16.2 to 3.18.1 (#2281)
* Bump zipp from 3.16.2 to 3.18.1

Bumps [zipp](https://github.com/jaraco/zipp) from 3.16.2 to 3.18.1.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.16.2...v3.18.1)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.18.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:27:03 -07:00
dependabot[bot]
4398dfa821
Bump packaging from 23.1 to 24.0 (#2274)
* Bump packaging from 23.1 to 24.0

Bumps [packaging](https://github.com/pypa/packaging) from 23.1 to 24.0.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/23.1...24.0)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==24.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:26:46 -07:00
dependabot[bot]
a0170a6f3d
Bump beautifulsoup4 from 4.12.2 to 4.12.3 (#2267)
* Bump beautifulsoup4 from 4.12.2 to 4.12.3

Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.12.2 to 4.12.3.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update beautifulsoup4==4.12.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:26:22 -07:00
dependabot[bot]
faef9a94c4
Bump cherrypy from 18.8.0 to 18.9.0 (#2266)
* Bump cherrypy from 18.8.0 to 18.9.0

Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0.
- [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0)

---
updated-dependencies:
- dependency-name: cherrypy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cherrypy==18.9.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:25:44 -07:00
dependabot[bot]
cfefa928be
Bump dnspython from 2.4.2 to 2.6.1 (#2264)
* Bump dnspython from 2.4.2 to 2.6.1

Bumps [dnspython](https://github.com/rthalley/dnspython) from 2.4.2 to 2.6.1.
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/main/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.4.2...v2.6.1)

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.6.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:25:23 -07:00
dependabot[bot]
aca7e72715
Bump distro from 1.8.0 to 1.9.0 (#2262)
* Bump distro from 1.8.0 to 1.9.0

Bumps [distro](https://github.com/python-distro/distro) from 1.8.0 to 1.9.0.
- [Release notes](https://github.com/python-distro/distro/releases)
- [Changelog](https://github.com/python-distro/distro/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-distro/distro/compare/v1.8.0...v1.9.0)

---
updated-dependencies:
- dependency-name: distro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update distro==1.9.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:24:31 -07:00
dependabot[bot]
b7836102a9
Bump backports-functools-lru-cache from 1.6.6 to 2.0.0 (#2263)
* Bump backports-functools-lru-cache from 1.6.6 to 2.0.0

Bumps [backports-functools-lru-cache](https://github.com/jaraco/backports.functools_lru_cache) from 1.6.6 to 2.0.0.
- [Release notes](https://github.com/jaraco/backports.functools_lru_cache/releases)
- [Changelog](https://github.com/jaraco/backports.functools_lru_cache/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/backports.functools_lru_cache/compare/v1.6.6...v2.0.0)

---
updated-dependencies:
- dependency-name: backports-functools-lru-cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update backports-functools-lru-cache==2.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:24:05 -07:00
dependabot[bot]
13eb0fd6db
Bump platformdirs from 3.11.0 to 4.2.0 (#2258)
* Bump platformdirs from 3.11.0 to 4.2.0

Bumps [platformdirs](https://github.com/platformdirs/platformdirs) from 3.11.0 to 4.2.0.
- [Release notes](https://github.com/platformdirs/platformdirs/releases)
- [Changelog](https://github.com/platformdirs/platformdirs/blob/main/CHANGES.rst)
- [Commits](https://github.com/platformdirs/platformdirs/compare/3.11.0...4.2.0)

---
updated-dependencies:
- dependency-name: platformdirs
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update platformdirs==4.2.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:23:44 -07:00
dependabot[bot]
a4cfc6323d
Bump certifi from 2023.7.22 to 2024.2.2 (#2257)
* Bump certifi from 2023.7.22 to 2024.2.2

Bumps [certifi](https://github.com/certifi/python-certifi) from 2023.7.22 to 2024.2.2.
- [Commits](https://github.com/certifi/python-certifi/compare/2023.07.22...2024.02.02)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2024.2.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:23:15 -07:00
dependabot[bot]
4468c3e4af
Bump mako from 1.2.4 to 1.3.2 (#2256)
* Bump mako from 1.2.4 to 1.3.2

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.2.4 to 1.3.2.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.3.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:22:16 -07:00
dependabot[bot]
52819f7da6
Bump pytz from 2023.3 to 2024.1 (#2254)
* Bump pytz from 2023.3 to 2024.1

Bumps [pytz](https://github.com/stub42/pytz) from 2023.3 to 2024.1.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2023.3...release_2024.1)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2024.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:22:05 -07:00
dependabot[bot]
24b6d37bbe
Bump websocket-client from 1.6.2 to 1.7.0 (#2207)
* Bump websocket-client from 1.6.2 to 1.7.0

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.6.2 to 1.7.0.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.6.2...v1.7.0)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.7.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:21:51 -07:00
dependabot[bot]
dbffb519f5
Bump bleach from 6.0.0 to 6.1.0 (#2177)
* Bump bleach from 6.0.0 to 6.1.0

Bumps [bleach](https://github.com/mozilla/bleach) from 6.0.0 to 6.1.0.
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.0.0...v6.1.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update bleach==6.1.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:21:33 -07:00
dependabot[bot]
e307796475
Bump simplejson from 3.19.1 to 3.19.2 (#2176)
* Bump simplejson from 3.19.1 to 3.19.2

Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.19.1 to 3.19.2.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.19.1...v3.19.2)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update simplejson==3.19.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:21:17 -07:00
dependabot[bot]
c1b8be0227
Bump arrow from 1.2.3 to 1.3.0 (#2172)
* Bump arrow from 1.2.3 to 1.3.0

Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.3 to 1.3.0.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.3...1.3.0)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update arrow==1.3.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-24 15:20:52 -07:00
dependabot[bot]
d3504e8a3c
Bump softprops/action-gh-release from 1 to 2 (#2273)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-24 14:53:44 -07:00
dependabot[bot]
344f19c9d6
Bump actions/cache from 3 to 4 (#2261)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-24 14:53:10 -07:00
JonnyWong16
901c484f89
Include deleted usernames in log filter 2024-03-14 12:15:02 -07:00
JonnyWong16
149c7fa7a0
Bump snap to core22 2024-03-02 17:03:56 -08:00
JonnyWong16
b73a2e9acc
Update workflow statuses 2024-03-02 16:29:01 -08:00
JonnyWong16
b48e9f4074
Update installer workflow for universal macOS binary
Bump python to 3.11
2024-03-02 16:29:01 -08:00
dependabot[bot]
36fbff5503
Bump actions/download-artifact from 3 to 4 (#2223)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:35:56 -08:00
dependabot[bot]
355be99512
Bump actions/upload-artifact from 3 to 4 (#2224)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:35:43 -08:00
dependabot[bot]
a397b90c23
Bump github/codeql-action from 2 to 3 (#2222)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:35:11 -08:00
dependabot[bot]
6a19beb476
Bump actions/stale from 8 to 9 (#2214)
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:34:58 -08:00
dependabot[bot]
71e6ea00c9
Bump actions/setup-python from 4 to 5 (#2211)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:34:18 -08:00
dependabot[bot]
7e4f7c0c56
Bump dessant/label-actions from 3 to 4 (#2195)
Bumps [dessant/label-actions](https://github.com/dessant/label-actions) from 3 to 4.
- [Release notes](https://github.com/dessant/label-actions/releases)
- [Changelog](https://github.com/dessant/label-actions/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dessant/label-actions/compare/v3...v4)

---
updated-dependencies:
- dependency-name: dessant/label-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:33:52 -08:00
JonnyWong16
36ed4bfa3c
Set pyinstaller --contents-directory
Revert back to old one-dir behaviour

Ref.: pyinstaller/pyinstaller#7713
2024-03-02 14:31:44 -08:00
JonnyWong16
7ee2c59075
Add playlist sourceURI to exporter 2024-03-02 14:10:31 -08:00
JonnyWong16
82089fdb7b
Add track genres to exporter 2024-03-02 14:10:31 -08:00
JonnyWong16
cc070cfc6b
Add slug attribute to exporter 2024-03-02 14:10:31 -08:00
dependabot[bot]
78a7a48587
Bump pyinstaller from 5.13.0 to 6.4.0 (#2253)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.13.0 to 6.4.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.13.0...v6.4.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:10:17 -08:00
dependabot[bot]
f403fdcc5b
Bump pyobjc-framework-cocoa from 9.2 to 10.1 (#2218)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 9.2 to 10.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v9.2...v10.1)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:10:07 -08:00
dependabot[bot]
50dba6bf19
Bump pyobjc-core from 9.2 to 10.1 (#2219)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 9.2 to 10.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v9.2...v10.1)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:08:25 -08:00
dependabot[bot]
23591a0435
Bump pyopenssl from 23.2.0 to 24.0.0 (#2252)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 23.2.0 to 24.0.0.
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/23.2.0...24.0.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:07:39 -08:00
dependabot[bot]
60f29b0fa4
Bump pycryptodomex from 3.18.0 to 3.20.0 (#2237)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.18.0 to 3.20.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.18.0...v3.20.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2024-03-02 14:02:24 -08:00
dependabot[bot]
b1c0972077
Bump plexapi from 4.15.4 to 4.15.10 (#2251)
* Bump plexapi from 4.15.4 to 4.15.10

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.15.4 to 4.15.10.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.15.4...4.15.10)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.15.10

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2024-03-02 13:52:45 -08:00
JonnyWong16
040972bcba
Increase PBKDF2 iterations to 600,000
OWASP Cheat Sheet recommends 600,000 iterations.

https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html#pbkdf2
2024-02-19 17:31:28 -08:00
JonnyWong16
c172965ec8
Don't need to refresh Pushover config after entering token 2024-02-17 15:23:14 -08:00
JonnyWong16
d0c07326ab
Change cookie expires to max-age 2023-12-07 23:05:34 -08:00
JonnyWong16
d019efcf91
v2.13.4 2023-12-06 23:18:16 -08:00
JonnyWong16
fe7a59c7f9
Fix use UTC for JWT expiry and max-age for cookie 2023-12-06 23:09:32 -08:00
JonnyWong16
e3113ebd30
Fix configuration table None system language 2023-12-06 13:20:33 -08:00
JonnyWong16
5525b9851c
Fix issue number in changelog 2023-12-03 14:02:51 -08:00
JonnyWong16
8cb74f7480
v2.13.3 2023-12-03 13:49:55 -08:00
JonnyWong16
98ceb0a81d
Add time formats to order of notification text modifiers 2023-12-03 13:45:13 -08:00
JonnyWong16
325271a88e
Update the stream duration on activity cards
* Fixes #2206

Some clients like Plexamp use the same sessionKey when the track changes.
2023-12-03 13:33:37 -08:00
JonnyWong16
ddc8a08fc7
Replace usage of utcnow()
`datetime.utcnow()` deprecated in Python 3.12
2023-11-21 11:36:08 -08:00
JonnyWong16
d0c1e467bd
Add support for thetvdb_url for movies 2023-11-19 13:46:57 -08:00
JonnyWong16
380cbd232c
Add file_size_bytes notification parameter
* Change type of file_size parameter and update description to indicate it is in human readable format.
2023-11-19 13:05:16 -08:00
JonnyWong16
98c363f559
Update Notification Text Modifiers modal with Time Formats 2023-11-13 11:28:53 -08:00
JonnyWong16
5abdfd7377
Make datestamp and timestamp formattable 2023-11-13 11:25:39 -08:00
JonnyWong16
8fd62e30b3
Fix duration_time typo 2023-11-09 17:17:24 -08:00
JonnyWong16
89aad6952b
Fix activity card overflow due to screen scaling
* Fixes #2033
2023-11-09 16:43:41 -08:00
JonnyWong16
2da3714dd1
Add CustomArrow date/time formatter 2023-11-07 17:18:48 -08:00
JonnyWong16
ab5836a65b
Add duration_time notification parameter 2023-11-07 17:12:19 -08:00
JonnyWong16
ae17d2dde0
Switch actions/create-release to softprops/action-gh-release
* actions/create-release deprecated
2023-11-04 13:44:49 -07:00
JonnyWong16
f1c12c0bbe
Switch appdirs to platformdirs 2023-11-04 13:29:40 -07:00
JonnyWong16
32cf26884b
Add system language and sqlite version to configuration table 2023-10-26 11:05:51 -07:00
JonnyWong16
dd380b583f
Add system language to startup logs 2023-10-26 11:05:34 -07:00
JonnyWong16
c215afbf84
v2.13.2 2023-10-26 09:27:31 -07:00
JonnyWong16
d63c0cb469
Guard against None transcode_key 2023-10-26 09:24:48 -07:00
JonnyWong16
98583d139a
Add config override for PMS_LANGUAGE 2023-10-26 09:05:47 -07:00
JonnyWong16
ab16adcffc
Add link from concurrent stream stats card to graphs page 2023-10-23 16:04:29 -07:00
herby2212
a31dcb5508
Quater values for History Watch Status (#2179)
* initial release

* change fillup orientation to clockwise

* fix indentation for css

* fix 50 percent circle orientation

* optimize colors and padding
2023-10-23 15:51:35 -07:00
JonnyWong16
1e4fc05ecf
Add ping method to refresh token 2023-10-17 11:23:04 -07:00
JonnyWong16
efdd4156d8
Update IP helper function 2023-10-16 15:04:19 -07:00
JonnyWong16
7245e97726
Fix concurrent streams graph query 2023-10-10 21:27:13 -07:00
JonnyWong16
d8d1f75605
Use group_by_keys helper for library stats 2023-10-10 19:32:30 -07:00
JonnyWong16
b32183b7b6
Speed up graphs data lookup 2023-10-10 19:18:47 -07:00
JonnyWong16
a59e07c07d
Add metadataDirectory to exporter fields 2023-10-10 14:23:26 -07:00
dependabot[bot]
aa4d98ee34
Bump plexapi from 4.15.0 to 4.15.4 (#2175)
* Bump plexapi from 4.15.0 to 4.15.4

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.15.0 to 4.15.4.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.15.0...4.15.4)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.15.4

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-10-10 14:22:10 -07:00
JonnyWong16
fdc1dd3525
Add trigger time to notification and newsletter tables 2023-10-09 11:37:56 -07:00
JonnyWong16
62be48df9c
Change colour of max. concurrent stream series 2023-10-09 11:33:40 -07:00
JonnyWong16
982c893c49
Use helper function to cast play duration to int 2023-10-09 11:27:46 -07:00
JonnyWong16
0fa7553d97
Fix right float cog icon on mobile devices table 2023-10-09 11:27:46 -07:00
JonnyWong16
b18c31f431
Update table right flow overflow 2023-10-09 11:27:46 -07:00
JonnyWong16
a668932ea8
Remove banners from exports 2023-10-09 11:27:46 -07:00
herby2212
59fe34982e
Concurrent Streams per Day Graph (#2046)
* initial commit

* fix grouping in webserve

* remove event handler and adapt cursor

* optimize most concurrent calculation

* update branch from nightly and user filter

* max concurrent streams in graph

* made several changes mentioned in review
2023-10-07 13:45:11 -07:00
dependabot[bot]
4938954c61
Bump docker/setup-buildx-action from 2 to 3 (#2152)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-09-18 12:59:23 -07:00
dependabot[bot]
76f1335a55
Bump docker/build-push-action from 4 to 5 (#2151)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-09-18 12:57:59 -07:00
dependabot[bot]
5e75d0ce73
Bump docker/setup-qemu-action from 2 to 3 (#2150)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-09-18 12:57:43 -07:00
dependabot[bot]
26419f4610
Bump docker/login-action from 2 to 3 (#2149)
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-09-18 12:57:32 -07:00
dependabot[bot]
aaea924aaa
Bump actions/checkout from 3 to 4 (#2145)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-09-18 12:57:18 -07:00
JonnyWong16
6d858367a4
v2.13.1 2023-08-25 11:49:55 -07:00
JonnyWong16
85bc9c39ae
Update tzlocal==5.0.1 2023-08-25 11:33:56 -07:00
dependabot[bot]
80e6131a0d
Revert "Bump apscheduler from 3.10.1 to 3.10.4 (#2133)"
This reverts commit 2c42150799.
2023-08-25 11:23:49 -07:00
JonnyWong16
1b26775ec6
Revert "Remove importlib-metadata and importlib-resources"
This reverts commit 38435ae81c.
2023-08-25 11:05:53 -07:00
JonnyWong16
fa510792f1
Revert "Remove importlib-metadata and importlib-resources"
This reverts commit 47b2f55c97.
2023-08-25 11:05:46 -07:00
JonnyWong16
289a8a2334
v2.13.0 2023-08-25 09:11:08 -07:00
JonnyWong16
47b2f55c97
Remove importlib-metadata and importlib-resources 2023-08-24 14:18:46 -07:00
JonnyWong16
38435ae81c
Remove importlib-metadata and importlib-resources 2023-08-24 13:49:16 -07:00
JonnyWong16
b133904b48
Drop support for Python 3.7 2023-08-24 12:20:50 -07:00
JonnyWong16
67842cfa02
Add subtitleStream exporter fields for on-demand subtitles 2023-08-24 12:17:53 -07:00
JonnyWong16
24fbc9a17a
Add track chapter exporter fields 2023-08-24 12:17:21 -07:00
dependabot[bot]
b2c16eba07
Bump plexapi from 4.13.4 to 4.15.0 (#2132)
* Bump plexapi from 4.13.4 to 4.15.0

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.13.4 to 4.15.0.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.13.4...4.15.0)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.15.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:10:56 -07:00
dependabot[bot]
2c42150799
Bump apscheduler from 3.10.1 to 3.10.4 (#2133)
* Bump apscheduler from 3.10.1 to 3.10.4

Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.10.1 to 3.10.4.
- [Changelog](https://github.com/agronholm/apscheduler/blob/3.10.4/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.10.1...3.10.4)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update apscheduler==3.10.4

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:10:08 -07:00
dependabot[bot]
3debeada2a
Bump pyparsing from 3.0.9 to 3.1.1 (#2131)
* Bump pyparsing from 3.0.9 to 3.1.1

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.0.9 to 3.1.1.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_3.0.9...3.1.1)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.1.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:09:51 -07:00
dependabot[bot]
d0c7f25a3f
Bump markupsafe from 2.1.2 to 2.1.3 (#2130)
* Bump markupsafe from 2.1.2 to 2.1.3

Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.2...2.1.3)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update markupsave==2.1.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:09:39 -07:00
dependabot[bot]
371d35433c
Bump tokenize-rt from 5.0.0 to 5.2.0 (#2129)
* Bump tokenize-rt from 5.0.0 to 5.2.0

Bumps [tokenize-rt](https://github.com/asottile/tokenize-rt) from 5.0.0 to 5.2.0.
- [Commits](https://github.com/asottile/tokenize-rt/compare/v5.0.0...v5.2.0)

---
updated-dependencies:
- dependency-name: tokenize-rt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tokenize-rt==5.2.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:09:28 -07:00
dependabot[bot]
4033114175
Bump cheroot from 9.0.0 to 10.0.0 (#2128)
* Bump cheroot from 9.0.0 to 10.0.0

Bumps [cheroot](https://github.com/cherrypy/cheroot) from 9.0.0 to 10.0.0.
- [Release notes](https://github.com/cherrypy/cheroot/releases)
- [Changelog](https://github.com/cherrypy/cheroot/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cheroot/compare/v9.0.0...v10.0.0)

---
updated-dependencies:
- dependency-name: cheroot
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cheroot==10.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:09:15 -07:00
dependabot[bot]
9423f65a90
Bump backports-functools-lru-cache from 1.6.4 to 1.6.6 (#2127)
* Bump backports-functools-lru-cache from 1.6.4 to 1.6.6

Bumps [backports-functools-lru-cache](https://github.com/jaraco/backports.functools_lru_cache) from 1.6.4 to 1.6.6.
- [Release notes](https://github.com/jaraco/backports.functools_lru_cache/releases)
- [Changelog](https://github.com/jaraco/backports.functools_lru_cache/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/backports.functools_lru_cache/compare/v1.6.4...v1.6.6)

---
updated-dependencies:
- dependency-name: backports-functools-lru-cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update backports-functools-lru-cache==1.6.6

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:06:08 -07:00
dependabot[bot]
72f1ce7865
Bump importlib-resources from 5.12.0 to 6.0.1 (#2126)
* Bump importlib-resources from 5.12.0 to 6.0.1

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.12.0 to 6.0.1.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.12.0...v6.0.1)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==6.0.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:05:53 -07:00
dependabot[bot]
9383d5120c
Bump portend from 3.1.0 to 3.2.0 (#2125)
Bumps [portend](https://github.com/jaraco/portend) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/jaraco/portend/releases)
- [Changelog](https://github.com/jaraco/portend/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/portend/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: portend
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-24 12:05:41 -07:00
dependabot[bot]
69d052f758
Bump zipp from 3.15.0 to 3.16.2 (#2124)
* Bump zipp from 3.15.0 to 3.16.2

Bumps [zipp](https://github.com/jaraco/zipp) from 3.15.0 to 3.16.2.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.15.0...v3.16.2)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.16.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:05:25 -07:00
dependabot[bot]
c0aa4e4996
Bump dnspython from 2.3.0 to 2.4.2 (#2123)
* Bump dnspython from 2.3.0 to 2.4.2

Bumps [dnspython](https://github.com/rthalley/dnspython) from 2.3.0 to 2.4.2.
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/master/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.3.0...v2.4.2)

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.4.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-24 12:05:11 -07:00
JonnyWong16
9f00f5dafa
Fix watched notification trigger description
Fixes #2104
2023-08-23 22:04:27 -07:00
dependabot[bot]
7266a60343
Bump cloudinary from 1.32.0 to 1.34.0 (#2109)
* Bump cloudinary from 1.32.0 to 1.34.0

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.32.0 to 1.34.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.32.0...1.34.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.34.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:56:41 -07:00
JonnyWong16
edd8c5fdc3
Pin urllib3<2 in requirements.txt
[skip ci]
2023-08-23 21:54:59 -07:00
JonnyWong16
d6b3ed178e
Downgraade urllib3==1.26.16 2023-08-23 21:52:33 -07:00
dependabot[bot]
eac78a3047
Bump websocket-client from 1.5.1 to 1.6.2 (#2122)
* Bump websocket-client from 1.5.1 to 1.6.2

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.5.1 to 1.6.2.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.5.1...v1.6.2)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.6.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:45:28 -07:00
dependabot[bot]
c93f470371
Bump pyjwt from 2.6.0 to 2.8.0 (#2115)
* Bump pyjwt from 2.6.0 to 2.8.0

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.6.0 to 2.8.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.6.0...2.8.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyjwt==2.8.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:45:15 -07:00
dependabot[bot]
77f38bbf93 Bump urllib3 from 1.26.15 to 2.0.4 (#2113)
* Bump urllib3 from 1.26.15 to 2.0.4

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.15 to 2.0.4.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.15...2.0.4)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==2.0.4

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:44:36 -07:00
dependabot[bot]
1e903b164b
Bump tempora from 5.2.1 to 5.5.0 (#2111)
* Bump tempora from 5.2.1 to 5.5.0

Bumps [tempora](https://github.com/jaraco/tempora) from 5.2.1 to 5.5.0.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/NEWS.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.2.1...v5.5.0)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.5.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:43:27 -07:00
dependabot[bot]
9a196f3dca
Bump certifi from 2022.12.7 to 2023.7.22 (#2110)
* Bump certifi from 2022.12.7 to 2023.7.22

Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.12.7 to 2023.7.22.
- [Commits](https://github.com/certifi/python-certifi/compare/2022.12.07...2023.07.22)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2023.7.22

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:42:53 -07:00
dependabot[bot]
6b6d43ef43
Bump requests from 2.28.2 to 2.31.0 (#2078)
* Bump requests from 2.28.2 to 2.31.0

Bumps [requests](https://github.com/psf/requests) from 2.28.2 to 2.31.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.2...v2.31.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.31.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:40:02 -07:00
dependabot[bot]
478d9e6aa5
Bump soupsieve from 2.4 to 2.4.1 (#2051)
* Bump soupsieve from 2.4 to 2.4.1

Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.4 to 2.4.1.
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.4...2.4.1)

---
updated-dependencies:
- dependency-name: soupsieve
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Remove soupsieve

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:39:21 -07:00
dependabot[bot]
c5bbaaf39c
Bump packaging from 23.0 to 23.1 (#2043)
* Bump packaging from 23.0 to 23.1

Bumps [packaging](https://github.com/pypa/packaging) from 23.0 to 23.1.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/23.0...23.1)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==23.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:38:59 -07:00
dependabot[bot]
e70e08c3f5
Bump beautifulsoup4 from 4.11.2 to 4.12.2 (#2037)
* Bump beautifulsoup4 from 4.11.2 to 4.12.2

Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.11.2 to 4.12.2.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update beautifulsoup4==4.12.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:38:49 -07:00
dependabot[bot]
1798594569
Bump simplejson from 3.18.3 to 3.19.1 (#2036)
* Bump simplejson from 3.18.3 to 3.19.1

Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.18.3 to 3.19.1.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.18.3...v3.19.1)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update simplejson==3.19.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:38:39 -07:00
dependabot[bot]
70fb00280b
Bump tzdata from 2022.7 to 2023.3 (#2032)
* Bump tzdata from 2022.7 to 2023.3

Bumps [tzdata](https://github.com/python/tzdata) from 2022.7 to 2023.3.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2022.7...2023.3)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tzdata==2023.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:38:28 -07:00
dependabot[bot]
835ea34bea
Bump pytz from 2022.7.1 to 2023.3 (#2031)
* Bump pytz from 2022.7.1 to 2023.3

Bumps [pytz](https://github.com/stub42/pytz) from 2022.7.1 to 2023.3.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2022.7.1...release_2023.3)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2023.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:38:17 -07:00
dependabot[bot]
a21fffd227
Bump pyinstaller from 5.8.0 to 5.13.0 (#2114)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.8.0 to 5.13.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.8.0...v5.13.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-23 21:23:35 -07:00
dependabot[bot]
f80cd73982
Bump importlib-metadata from 6.0.0 to 6.8.0 (#2112)
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 6.0.0 to 6.8.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/NEWS.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v6.0.0...v6.8.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-23 21:22:24 -07:00
dependabot[bot]
e11a4c50ba
Bump pyobjc-framework-cocoa from 9.0.1 to 9.2 (#2083)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 9.0.1 to 9.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v9.0.1...v9.2)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:21:55 -07:00
dependabot[bot]
a84b5b51ed
Bump pyobjc-core from 9.0.1 to 9.2 (#2082)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 9.0.1 to 9.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v9.0.1...v9.2)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-23 21:21:16 -07:00
dependabot[bot]
b7c0b104e9
Bump pycryptodomex from 3.17 to 3.18.0 (#2076)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.17 to 3.18.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.17.0...v3.18.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-08-23 21:20:54 -07:00
dependabot[bot]
6fa8bb3768
Bump pyopenssl from 23.0.0 to 23.2.0 (#2081)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 23.0.0 to 23.2.0.
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/23.0.0...23.2.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-23 21:20:05 -07:00
dependabot[bot]
31543d267f
Bump pywin32 from 305 to 306 (#2028)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 305 to 306.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-23 21:19:39 -07:00
dependabot[bot]
842e36485a
Bump actions/stale from 7 to 8 (#2025)
Bumps [actions/stale](https://github.com/actions/stale) from 7 to 8.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-08-15 08:42:01 -07:00
JonnyWong16
e2cb15ef49
Add notification image option for iOS Tautulli Remote App 2023-08-02 16:51:20 -07:00
JonnyWong16
b984a99d51
Update workflows action version refs 2023-07-27 20:04:37 -07:00
JonnyWong16
d701d18a81
Update workflows action version refs 2023-07-27 20:04:03 -07:00
JonnyWong16
765804c93b
Don't expose do_state_change 2023-07-20 14:19:05 -07:00
JonnyWong16
b953b951fb
v2.12.6 2023-07-13 15:50:39 -07:00
JonnyWong16
571a6b6d2d
Cast view_offset to int for regrouping history 2023-07-10 08:58:03 -07:00
David Pooley
6010e406c8
Fix simultaneous streams per IP not behaving as expected with IPv6 (#2096)
* Fix IPv6 comparisson for concurrent streams

* Update regex to allow numbers in config variables

* Remove additional logging for local testing

* Update plexpy/notification_handler.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-07-08 16:32:42 -07:00
JonnyWong16
d91e561a56
Regroup history in separate thread and improve logging 2023-07-07 17:47:38 -07:00
Tom Niget
343a3e9281
Multiselect user filters (#2090)
* Extract user filter generation code into method

* Extend make_user_cond to allow lists of user IDs

* Update documentation for stats APIs to indicate handling of ID lists

* Use multiselect dropdown for user filter on graphs page

Use standard concatenation

Fix select style

Move settings to JS constructor

Change text for no users checked

Don't call selectAll on page init

Add it back

Remove attributes

Fix emptiness check

Allow deselect all

Only refresh if user id changed

* Show "N users" starting at 2 users

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Use helper function split_strip

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

* Move make_user_cond at bottom and make private

* Add new user picker to history page

* Fix copy-paste error

* Again

* Add CSS for bootstrap-select

---------

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2023-07-07 17:15:16 -07:00
JonnyWong16
b144e6527f
Add button to regroup play history 2023-07-07 14:36:44 -07:00
JonnyWong16
1fe6d1505f
Add method to regroup history 2023-07-07 14:36:44 -07:00
JonnyWong16
085cfa4bef
Fix history grouping incorrect for watched content 2023-07-07 14:36:44 -07:00
JonnyWong16
c761e6e8d0
Fix template_name argument for login page 2023-06-29 00:07:43 -07:00
JonnyWong16
7ff3abe8b7
Rename template_name argument 2023-06-27 17:20:21 -07:00
JonnyWong16
d9b3b311b9
Only initialize mako TemplateLookup once
* Ref: sqlalchemy/mako#378
2023-06-27 14:23:09 -07:00
JonnyWong16
2a48e3375a
Add d3d11va hardware decoder 2023-06-25 17:35:16 -07:00
JonnyWong16
ea6c6078df
v2.12.4 2023-05-23 10:03:36 -07:00
JonnyWong16
f39b9f9087
Fix SQLite Double-Quoted Strings (#2057)
* Fix __init__.py

* Fix activity_pinger.py

* Fix activity_processor.py

* Fix database.py

* Fix datafactory.py

* Fix exporter.py

* Fix graphs.py

* Fix libraries.py

* Fix mobile_app.py

* Fix newsletter_handler.py

* Fix newsletters.py

* Fix notification_handler.py

* Fix notifiers.py

* Fix plexivity_import.py

* Fix plexwatch_import.py

* Fix users.py

* Fix webauth.py
2023-05-15 11:03:26 -07:00
JonnyWong16
3a1d6322ae
Add return ID for async API calls
* export_id, notification_id, and newsletter_notification_d
2023-05-05 15:57:33 -07:00
JonnyWong16
fe4fba353e
Catch KeyError on import db version 2023-04-20 08:50:41 -07:00
JonnyWong16
3b3c59c4bb
Set view offset equal to duration if stopped within the last 10 sec
* Plex reports the view offset every 10 seconds, so the view offset at the end of stream can be short by up to 10 seconds.
2023-04-17 12:50:52 -07:00
JonnyWong16
e9b1db139e
v2.12.3 2023-04-14 11:50:55 -07:00
JonnyWong16
99afb7392b
Use separate log file for script PlexAPI 2023-04-14 11:29:53 -07:00
JonnyWong16
14648a4604
Fix live tv thumb hover on top libraries statistics card 2023-04-13 21:48:31 -07:00
JonnyWong16
07715c6a49
Rename API get_history response duration to play_duration 2023-04-13 15:17:41 -07:00
JonnyWong16
b0921b5f4a
Fix history table sorting by play duration 2023-04-13 15:17:22 -07:00
JonnyWong16
2921c1fc30
Fix live tv thumb and art for top libraries statistics card 2023-04-13 14:48:19 -07:00
JonnyWong16
fa8b51bfd9
Add .vscode to .gitignore 2023-04-13 14:46:30 -07:00
JonnyWong16
eb7a4fb4bf
Fix calculating media info file sizes 2023-03-22 16:48:42 -07:00
JonnyWong16
18110206d6
Fallback subtitle decision if transcoding subtitles 2023-03-16 22:02:44 -07:00
JonnyWong16
7836dc8403
v2.12.2 2023-03-16 18:29:42 -07:00
JonnyWong16
ab7e559f39
Limit platform version to 100 characters 2023-03-15 17:14:53 -07:00
JonnyWong16
710dd7955f
v2.12.1 2023-03-14 13:05:49 -07:00
JonnyWong16
93081e3f6d
Trim analytic event platform version for macOS 2023-03-14 13:02:49 -07:00
JonnyWong16
8664570a78
Don't show audio language for music on activity card 2023-03-14 12:21:45 -07:00
JonnyWong16
e5f55d7fe7
Remove checking for synced items for sessions 2023-03-14 11:19:50 -07:00
JonnyWong16
41f935e1ed
v2.12.0 2023-03-13 12:16:44 -07:00
JonnyWong16
ea5b43419d
Add last_refreshed to get_library_media_info doc string 2023-03-13 12:16:44 -07:00
JonnyWong16
2dd9272f56
Remove extra space in doc strings 2023-03-13 12:05:40 -07:00
dependabot[bot]
705fd2d3e8
Bump urllib3 from 1.26.14 to 1.26.15 (#2017)
* Bump urllib3 from 1.26.14 to 1.26.15

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.14 to 1.26.15.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.14...1.26.15)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==1.26.15

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-13 11:53:56 -07:00
JonnyWong16
93d1f10ad3
Add credits markers and audio/subtitle settings to exporter fields 2023-03-10 11:06:44 -08:00
JonnyWong16
eb7495e930
Update plexapi==4.13.4 2023-03-10 11:06:44 -08:00
JonnyWong16
b7da2dedf3
Add hidden setting to override server name 2023-03-07 20:25:49 -08:00
JonnyWong16
000656be00
Add last_refreshed time to get_library_media_info response 2023-03-07 20:16:08 -08:00
JonnyWong16
c90469b0b7
URI encode download logfile parameter 2023-03-03 22:37:57 -08:00
JonnyWong16
3d2959ee51
Use .setAttribute() for QR code address parser 2023-03-03 22:25:01 -08:00
JonnyWong16
4274a29bd6
Use .text() instead of .html() to set graph range values 2023-03-03 22:22:29 -08:00
JonnyWong16
22c5e59ee9
Only run CodeQL on nightly branch 2023-03-03 11:20:29 -08:00
JonnyWong16
39047ea7c3
Add codeql config file
[skip ci]
2023-03-03 11:17:59 -08:00
JonnyWong16
0925234f06
Create .github/workflows/codeql.yml 2023-03-03 11:07:45 -08:00
JonnyWong16
d240984c27
Fix multiline changelog in publish installer workflow
* Ref: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings

[skip ci]
2023-03-03 10:59:43 -08:00
JonnyWong16
8f06b39a07
Fix submit winget workflow
[skip ci]
2023-03-03 10:59:22 -08:00
JonnyWong16
aa7606d576
v2.12.0-beta 2023-03-03 10:26:31 -08:00
JonnyWong16
78a3d15039
Add history table to collection and playlist info pages 2023-03-03 10:22:02 -08:00
dependabot[bot]
ec323abb92
Bump apscheduler from 3.10.0 to 3.10.1 (#2013)
* Bump apscheduler from 3.10.0 to 3.10.1

Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.10.0 to 3.10.1.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/3.10.1/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.10.0...3.10.1)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update apscheduler==3.10.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-03 10:21:48 -08:00
dependabot[bot]
69e1b43aa1
Bump soupsieve from 2.3.2.post1 to 2.4 (#2014)
Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.3.2.post1 to 2.4.
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.3.2.post1...2.4)

---
updated-dependencies:
- dependency-name: soupsieve
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-03-03 10:21:35 -08:00
JonnyWong16
dffa353966
Don't submit to winget for pre-release (beta)
[skip ci]
2023-03-02 22:59:58 -08:00
dependabot[bot]
a241de6dc2
Bump pyinstaller from 5.7.0 to 5.8.0 (#1998)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.7.0...v5.8.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 21:10:48 -08:00
dependabot[bot]
3ba3ea9b7e
Bump pycryptodomex from 3.16.0 to 3.17 (#1983)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.16.0 to 3.17.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.16.0...v3.17.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-03-02 21:04:49 -08:00
dependabot[bot]
33f9c70181
Bump urllib3 from 1.26.13 to 1.26.14 (#1965)
* Bump urllib3 from 1.26.13 to 1.26.14

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.13 to 1.26.14.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.14/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.13...1.26.14)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==1.26.14

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:58:20 -08:00
dependabot[bot]
eb9c9ffd4e
Bump pyopenssl from 22.1.0 to 23.0.0 (#1955)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 22.1.0 to 23.0.0.
- [Release notes](https://github.com/pyca/pyopenssl/releases)
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/22.1.0...23.0.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-03-02 20:57:58 -08:00
dependabot[bot]
133c8a3363
Bump cloudinary from 1.30.0 to 1.32.0 (#1996)
* Bump cloudinary from 1.30.0 to 1.32.0

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.30.0 to 1.32.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.30.0...1.32.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.32.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:57:02 -08:00
dependabot[bot]
66fa93cfaf
Bump websocket-client from 1.4.2 to 1.5.1 (#1993)
* Bump websocket-client from 1.4.2 to 1.5.1

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.4.2 to 1.5.1.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.4.2...v1.5.1)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.5.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:56:49 -08:00
dependabot[bot]
d0f3f96709
Bump simplejson from 3.18.0 to 3.18.3 (#1992)
* Bump simplejson from 3.18.0 to 3.18.3

Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.18.0 to 3.18.3.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.18.0...v3.18.3)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update simplejson==3.18.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:56:39 -08:00
dependabot[bot]
8e42757b2d
Bump beautifulsoup4 from 4.11.1 to 4.11.2 (#1987)
* Bump beautifulsoup4 from 4.11.1 to 4.11.2

Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.11.1 to 4.11.2.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update beautifulsoup4==4.11.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:56:24 -08:00
dependabot[bot]
ded93ef2f5
Bump apscheduler from 3.9.1.post1 to 3.10.0 (#1986)
* Bump apscheduler from 3.9.1.post1 to 3.10.0

Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.9.1.post1 to 3.10.0.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/3.10.0/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.9.1.post1...3.10.0)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update apscheduler==3.10.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:55:46 -08:00
dependabot[bot]
1466a391d1
Bump bleach from 5.0.1 to 6.0.0 (#1979)
* Bump bleach from 5.0.1 to 6.0.0

Bumps [bleach](https://github.com/mozilla/bleach) from 5.0.1 to 6.0.0.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v5.0.1...v6.0.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update bleach==6.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:55:01 -08:00
dependabot[bot]
6b1b6d0f32
Bump tempora from 5.1.0 to 5.2.1 (#1977)
* Bump tempora from 5.1.0 to 5.2.1

Bumps [tempora](https://github.com/jaraco/tempora) from 5.1.0 to 5.2.1.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.1.0...v5.2.1)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.2.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:54:54 -08:00
dependabot[bot]
2fda916331
Bump markupsafe from 2.1.1 to 2.1.2 (#1976)
* Bump markupsafe from 2.1.1 to 2.1.2

Bumps [markupsafe](https://github.com/pallets/markupsafe) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/pallets/markupsafe/releases)
- [Changelog](https://github.com/pallets/markupsafe/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/markupsafe/compare/2.1.1...2.1.2)

---
updated-dependencies:
- dependency-name: markupsafe
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update markupsafe==2.1.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:54:41 -08:00
dependabot[bot]
32c06a8b72
Bump dnspython from 2.2.1 to 2.3.0 (#1975)
* Bump dnspython from 2.2.1 to 2.3.0

Bumps [dnspython](https://github.com/rthalley/dnspython) from 2.2.1 to 2.3.0.
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/master/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.2.1...v2.3.0)

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.3.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:54:32 -08:00
dependabot[bot]
6910079330
Bump pytz from 2022.7 to 2022.7.1 (#1974)
* Bump pytz from 2022.7 to 2022.7.1

Bumps [pytz](https://github.com/stub42/pytz) from 2022.7 to 2022.7.1.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2022.7...release_2022.7.1)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2022.7.1

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:54:08 -08:00
dependabot[bot]
9f727d0086
Bump future from 0.18.2 to 0.18.3 (#1970)
* Bump future from 0.18.2 to 0.18.3

Bumps [future](https://github.com/PythonCharmers/python-future) from 0.18.2 to 0.18.3.
- [Release notes](https://github.com/PythonCharmers/python-future/releases)
- [Changelog](https://github.com/PythonCharmers/python-future/blob/master/docs/changelog.rst)
- [Commits](https://github.com/PythonCharmers/python-future/compare/v0.18.2...v0.18.3)

---
updated-dependencies:
- dependency-name: future
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update future==0.18.3

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:53:26 -08:00
dependabot[bot]
cc78f17be5
Bump requests from 2.28.1 to 2.28.2 (#1968)
* Bump requests from 2.28.1 to 2.28.2

Bumps [requests](https://github.com/psf/requests) from 2.28.1 to 2.28.2.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.28.1...v2.28.2)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.28.2

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:53:15 -08:00
dependabot[bot]
70e09582da
Bump packaging from 22.0 to 23.0 (#1964)
* Bump packaging from 22.0 to 23.0

Bumps [packaging](https://github.com/pypa/packaging) from 22.0 to 23.0.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/22.0...23.0)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==23.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:53:00 -08:00
dependabot[bot]
1f59171dcb
Bump zipp from 3.11.0 to 3.15.0 (#2011)
* Bump zipp from 3.11.0 to 3.15.0

Bumps [zipp](https://github.com/jaraco/zipp) from 3.11.0 to 3.15.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.11.0...v3.15.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.15.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:50:33 -08:00
dependabot[bot]
c8f43825f9
Bump importlib-resources from 5.10.1 to 5.12.0 (#2004)
* Bump importlib-resources from 5.10.1 to 5.12.0

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.10.1 to 5.12.0.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.10.1...v5.12.0)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==5.12.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:50:15 -08:00
dependabot[bot]
eaa294b2a2
Bump importlib-metadata from 5.2.0 to 6.0.0 (#1954)
* Bump importlib-metadata from 5.2.0 to 6.0.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v5.2.0...v6.0.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==6.0.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2023-03-02 20:49:14 -08:00
dependabot[bot]
5c43daf067
Bump docker/build-push-action from 3 to 4 (#1985)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2023-03-02 20:01:45 -08:00
herby2212
0522253194
Add watch time & user stats for playlists (#2012) 2023-02-28 17:33:13 -08:00
herby2212
ae3d75bbe3
watch time & user stats for collections (#1982)
* user_stats for collection

* watch_time_stats for collection

* check for media_type to be compatible with API

* update API and datafactory optimizations

* beautify webserve class

* fix sql query build

* filter on suitable collections

* stats for collections of sub media type

* optimize array creation
2023-02-26 17:32:50 -08:00
JonnyWong16
993909fa08
Use private shared-memory for Snap 2023-02-26 16:17:58 -08:00
JonnyWong16
ce45321e3f
Revert "Add multiprocessing semaphore prefix"
This reverts commit 731d5c9baf.
2023-02-26 16:13:25 -08:00
JonnyWong16
cd3ff6eed7
Remove extra pass 2023-02-26 16:06:44 -08:00
JonnyWong16
731d5c9baf
Add multiprocessing semaphore prefix
* Fixes #2007
2023-02-26 15:17:04 -08:00
JonnyWong16
af3e5574f5
Migrate to Google Analytics 4 2023-02-26 15:09:51 -08:00
JonnyWong16
42eeb90532
Add ga4mp library
* Remove UniversalAnalytics
2023-02-26 15:09:12 -08:00
JonnyWong16
ecb6d8b743
Move track artist to details tag on info page 2023-02-25 16:43:14 -08:00
JonnyWong16
e6d1712afd
Fix styling on collection info pages 2023-02-25 16:35:48 -08:00
JonnyWong16
ebe570d42f
Allow setting a custom Pushover sound
* Closes #2005
2023-02-21 11:12:56 -08:00
JonnyWong16
2a1bf7847b
Last watched statistics card based on credits markers 2023-02-20 18:36:15 -08:00
JonnyWong16
928e1d4b5e
History table watched status based on credits markers 2023-02-20 18:36:15 -08:00
JonnyWong16
c5005c1ea9
Group watched history sessions based on credits markers 2023-02-20 18:36:15 -08:00
JonnyWong16
b2b12044e3
Trigger on_watched based on credits markers 2023-02-20 18:36:15 -08:00
JonnyWong16
b1dd28e39b
Add setting to change video watched completion behaviour 2023-02-20 16:33:19 -08:00
JonnyWong16
c2abfce8e1
Save credits markers offsets to session history 2023-02-19 17:41:48 -08:00
JonnyWong16
6807cebe51
Strip whitespace from condition values 2023-02-17 18:55:28 -08:00
JonnyWong16
87d3c0ae81
Fix missing on_commercial columns in database 2023-02-17 18:54:52 -08:00
JonnyWong16
6b0b3a476f
Add support for commercial marker triggers 2023-02-17 10:01:57 -08:00
JonnyWong16
32bb98e8c1
Update get_metadata_details docs 2023-02-17 09:29:08 -08:00
JonnyWong16
9c6b8f1af5
Simplify metadata credits marker first flag 2023-02-17 09:28:44 -08:00
JonnyWong16
7cc78d448d
Simplify set marker in database 2023-02-16 17:06:46 -08:00
JonnyWong16
599c54c9e1
Refactor activity handler 2023-02-16 17:02:30 -08:00
JonnyWong16
9be3bbbf0f
Update marker notification parameters 2023-02-16 16:20:25 -08:00
JonnyWong16
97af214ac1
Handle seeking through intro/credits markers 2023-02-16 16:19:29 -08:00
JonnyWong16
71bc063155
Add notification triggers for intro/credit markers 2023-02-16 11:31:35 -08:00
JonnyWong16
9a152932ee
Monitor stream intro/credits marker activity 2023-02-16 11:30:33 -08:00
JonnyWong16
a8539b2927
Retrieve intro/credits markers for metadata details 2023-02-16 11:30:33 -08:00
JonnyWong16
0db9548995
Revert "Add prvenance: false to docker/build-push-action"
This reverts commit 548264d51a.
2023-02-14 18:26:50 -08:00
JonnyWong16
e263f0b8a3
Refactor notification image upload code 2023-02-14 18:21:19 -08:00
JonnyWong16
5ab9315f16
Upload notification images directly to Discord 2023-02-14 18:19:35 -08:00
JonnyWong16
b6ff45138f
Add section_id and user_id parameters to get_home_stats API command
* Closes #1944
2023-01-28 14:10:47 -08:00
JonnyWong16
b0a55df862
Add anidb_id and anidb_url notification parameters
* Closes #1973
2023-01-28 14:10:47 -08:00
JonnyWong16
c51ee673e8
Add support for Telegram group topics
* Closes #1980
2023-01-28 14:10:47 -08:00
herby2212
0959f28e95
Add edition detail field for movie info (#1957)
* edition addition for movie info

* swap position to match plex order
2023-01-28 14:09:11 -08:00
JonnyWong16
1e02c26a9a
Relax workflow action versions 2023-01-20 17:09:20 -08:00
JonnyWong16
548264d51a
Add prvenance: false to docker/build-push-action
Ref: docker/buildx#1533
2023-01-20 17:09:20 -08:00
JonnyWong16
460a463be1
Update notification parameter description for Plex API image paths 2023-01-19 13:54:55 -08:00
JonnyWong16
2f6869ed2a
Update CI badges in README
* Ref: badges/shields#8671

[skip ci]
2022-12-23 11:11:04 -08:00
JonnyWong16
3c996f01a9
v2.11.1 2022-12-22 17:58:38 -08:00
JonnyWong16
d9343730da
Downgrade snap to core20 2022-12-22 17:50:24 -08:00
JonnyWong16
7386ca1c42
Add backports.cached-property==1.0.2 2022-12-22 17:28:28 -08:00
James Tufarelli
2a0e07aca5
Fix update check failing when git is not found (#1943)
* Update versioncheck to cast commit_hash to string

After the most recent v2.11.0 update, Tautulli would not start until I made this change to the codebase.

* Update plexpy/versioncheck.py

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-12-22 17:28:09 -08:00
JonnyWong16
1e58847bcd
Update snap to core22
* Fixes #1941
2022-12-22 16:24:51 -08:00
JonnyWong16
b0ba73cf46
Fix no started parameter for recently added notifications
* Fixes #1940
2022-12-22 13:52:11 -08:00
JonnyWong16
6181aa178d
Fix publish installer changelog sed command 2022-12-22 12:01:52 -08:00
JonnyWong16
680c8f1ee3
Update publish installer workflow token 2022-12-22 11:44:48 -08:00
JonnyWong16
e8af221e99
Rename submit winget job name 2022-12-22 11:44:30 -08:00
JonnyWong16
808ca348e8
Use source language instead of stream language on activity cards 2022-12-22 11:24:41 -08:00
JonnyWong16
f6dd38ad12
v2.11.0 2022-12-22 11:15:59 -08:00
dependabot[bot]
4064ac083e
Bump actions/setup-python from 4.3.1 to 4.4.0 (#1938)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.3.1...v4.4.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-22 10:45:05 -08:00
dependabot[bot]
31f6b02149
Bump plexapi from 4.13.1 to 4.13.2 (#1939)
* Bump plexapi from 4.13.1 to 4.13.2

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.13.1 to 4.13.2.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.13.1...4.13.2)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.13.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-22 10:44:51 -08:00
JonnyWong16
8cd5b0b775
Use system language for requests 2022-12-21 17:25:40 -08:00
JonnyWong16
d426c3e12e
Don't capitalize language and display "Unknown" on activity cards 2022-12-21 17:25:18 -08:00
JonnyWong16
8eed162367
Override direct play subtitle decision in stream data modal 2022-12-21 17:24:41 -08:00
JonnyWong16
fe1d850e1c
Display "Unknown" language in stream data modal 2022-12-21 17:24:14 -08:00
JonnyWong16
bcb9a9d6c6
Display subtitle forced in stream data modal 2022-12-21 17:02:10 -08:00
JonnyWong16
5a9ace0b19
Log subtitle forced 2022-12-21 17:01:50 -08:00
JonnyWong16
185a5cb0ea
Add subtitle_forced to database 2022-12-21 17:01:24 -08:00
JonnyWong16
44419fb0bf
Display subtitle language in stream data modal 2022-12-21 16:35:15 -08:00
JonnyWong16
c00dfca2f0
Log subtitle language 2022-12-21 16:35:15 -08:00
JonnyWong16
023fde7a84
Add subtitle_language to database 2022-12-21 16:35:15 -08:00
JonnyWong16
7c030ef362
Link watch statistics to info page using history metadata
* Closes #1882
2022-12-21 16:35:15 -08:00
FSCorrupt
8664b95ca1
Adding stream audio/sub language to activity card. (#1900)
* Update current_activity_instance.html

* Update index.html

* Make sure language is capitalized on activity card

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-12-21 16:26:32 -08:00
Jagandeep Brar
74d8bc15ca
Add session_key to LunaSea notifier payload (#1929) 2022-12-21 16:08:14 -08:00
dependabot[bot]
cbe33e93c9
Bump pyinstaller from 5.6.2 to 5.7.0 (#1917)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.6.2 to 5.7.0.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.6.2...v5.7.0)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-21 16:06:32 -08:00
Eric Nemchik
8cf12a2ab5
backports.zoneinfo environment marker (#1926)
https://github.com/pganssle/zoneinfo#installation-and-depending-on-this-library notes:
> Support for `backports.zoneinfo` in Python 3.9+ is currently minimal, since it is expected that you would use the standard library `zoneinfo` module instead.
2022-12-21 16:05:55 -08:00
dependabot[bot]
497ceb8cbb
Bump pyobjc-core from 9.0 to 9.0.1 (#1935)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 9.0 to 9.0.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:05:11 -08:00
dependabot[bot]
18a5962026
Bump pyobjc-framework-cocoa from 9.0 to 9.0.1 (#1933)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 9.0 to 9.0.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 16:03:50 -08:00
dependabot[bot]
d8150813f1
Bump pycryptodomex from 3.15.0 to 3.16.0 (#1911)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.15.0 to 3.16.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.15.0...v3.16.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 16:03:24 -08:00
dependabot[bot]
4398ece2da
Bump pytz from 2022.6 to 2022.7 (#1934)
* Bump pytz from 2022.6 to 2022.7

Bumps [pytz](https://github.com/stub42/pytz) from 2022.6 to 2022.7.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2022.6...release_2022.7)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2022.7

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:02:40 -08:00
dependabot[bot]
8159bf456c
Bump importlib-metadata from 5.0.0 to 5.2.0 (#1932)
* Bump importlib-metadata from 5.0.0 to 5.2.0

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 5.0.0 to 5.2.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v5.0.0...v5.2.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==5.2.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:02:25 -08:00
dependabot[bot]
56780677fb
Bump packaging from 21.3 to 22.0 (#1922)
* Bump packaging from 21.3 to 22.0

Bumps [packaging](https://github.com/pypa/packaging) from 21.3 to 22.0.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/21.3...22.0)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update packaging==22.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:01:24 -08:00
dependabot[bot]
dbe0018e24
Bump certifi from 2022.9.24 to 2022.12.7 (#1920)
* Bump certifi from 2022.9.24 to 2022.12.7

Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.9.24 to 2022.12.7.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2022.09.24...2022.12.07)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2022.12.7

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:00:56 -08:00
dependabot[bot]
483245506b
Bump importlib-resources from 5.10.0 to 5.10.1 (#1918)
* Bump importlib-resources from 5.10.0 to 5.10.1

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.10.0...v5.10.1)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==5.10.1

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 16:00:12 -08:00
dependabot[bot]
c61f854318
Bump tzdata from 2022.6 to 2022.7 (#1915)
* Bump tzdata from 2022.6 to 2022.7

Bumps [tzdata](https://github.com/python/tzdata) from 2022.6 to 2022.7.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2022.6...2022.7)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tzdata==2022.7

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 15:59:53 -08:00
dependabot[bot]
e646c0e6eb
Bump zipp from 3.10.0 to 3.11.0 (#1912)
* Bump zipp from 3.10.0 to 3.11.0

Bumps [zipp](https://github.com/jaraco/zipp) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.10.0...v3.11.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.11.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 15:59:38 -08:00
dependabot[bot]
d596b86c8d
Bump urllib3 from 1.26.12 to 1.26.13 (#1908)
* Bump urllib3 from 1.26.12 to 1.26.13

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.12 to 1.26.13.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.13/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.12...1.26.13)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==1.26.13

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 15:59:10 -08:00
dependabot[bot]
3d378eb583
Bump cheroot from 8.6.0 to 9.0.0 (#1903)
* Bump cheroot from 8.6.0 to 9.0.0

Bumps [cheroot](https://github.com/cherrypy/cheroot) from 8.6.0 to 9.0.0.
- [Release notes](https://github.com/cherrypy/cheroot/releases)
- [Changelog](https://github.com/cherrypy/cheroot/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cheroot/compare/v8.6.0...v9.0.0)

---
updated-dependencies:
- dependency-name: cheroot
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cheroot==9.0.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 15:58:54 -08:00
dependabot[bot]
0a5edebea3
Bump tempora from 5.0.2 to 5.1.0 (#1902)
* Bump tempora from 5.0.2 to 5.1.0

Bumps [tempora](https://github.com/jaraco/tempora) from 5.0.2 to 5.1.0.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.0.2...v5.1.0)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.1.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-12-21 15:58:39 -08:00
dependabot[bot]
d736fab432
Bump actions/stale from 6 to 7 (#1937)
Bumps [actions/stale](https://github.com/actions/stale) from 6 to 7.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 15:42:30 -08:00
dependabot[bot]
ff81b08491
Bump actions/cache from 3.0.11 to 3.2.0 (#1936)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.11 to 3.2.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.11...v3.2.0)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 15:42:02 -08:00
dependabot[bot]
d00916331d
Bump actions/checkout from 3.1.0 to 3.2.0 (#1924)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.1.0...v3.2.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 15:41:48 -08:00
dependabot[bot]
ec08c887f4
Bump actions/setup-python from 4.3.0 to 4.3.1 (#1921)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.3.0...v4.3.1)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 15:41:32 -08:00
dependabot[bot]
d7aa1ced53
Bump dessant/label-actions from 2 to 3 (#1916)
Bumps [dessant/label-actions](https://github.com/dessant/label-actions) from 2 to 3.
- [Release notes](https://github.com/dessant/label-actions/releases)
- [Changelog](https://github.com/dessant/label-actions/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dessant/label-actions/compare/v2...v3)

---
updated-dependencies:
- dependency-name: dessant/label-actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-12-21 15:41:04 -08:00
JonnyWong16
8a1cd2841b
Revert "Pin diddlesnaps/snapcraft-multiarch-action@v1.5.0"
This reverts commit 6156edf5fe.
2022-12-21 15:14:22 -08:00
JonnyWong16
5f8fbe1230
Add meta color-scheme to newsletter template
* Allows CSS to support light and dark themes
2022-12-21 15:13:14 -08:00
JonnyWong16
8cfe60b485
Add started and stopped notification parameters
* Closes #1931
2022-12-21 14:55:33 -08:00
JonnyWong16
6156edf5fe
Pin diddlesnaps/snapcraft-multiarch-action@v1.5.0 2022-11-29 20:55:14 -08:00
JonnyWong16
e2326cd06a
Mask more user and metadata fields for guest access
Fixes #1913
2022-11-29 14:04:24 -08:00
JonnyWong16
94eb5cdef3
Add movie editionTitle to exporter 2022-11-24 09:15:07 -08:00
JonnyWong16
8c552d3086
Only validate condition operator if parameter is present 2022-11-21 20:48:47 -08:00
JonnyWong16
5a8797a6dd
Shorten TLS log message 2022-11-15 15:56:11 -08:00
dependabot[bot]
192dd64dbe
Bump mako from 1.2.3 to 1.2.4 (#1899)
* Bump mako from 1.2.3 to 1.2.4

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.2.4

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-15 15:56:03 -08:00
dependabot[bot]
259a96995a
Bump simplejson from 3.17.6 to 3.18.0 (#1898)
* Bump simplejson from 3.17.6 to 3.18.0

Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.17.6 to 3.18.0.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.17.6...v3.18.0)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update simplejson==3.18.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-15 15:55:50 -08:00
dependabot[bot]
60da559332
Bump pyjwt from 2.4.0 to 2.6.0 (#1897)
* Bump pyjwt from 2.4.0 to 2.6.0

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.4.0 to 2.6.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.4.0...2.6.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyjwt==2.6.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-14 11:27:25 -08:00
dependabot[bot]
79cf61c53e
Bump rumps from 0.3.0 to 0.4.0 (#1896)
* Bump rumps from 0.3.0 to 0.4.0

Bumps [rumps](https://github.com/jaredks/rumps) from 0.3.0 to 0.4.0.
- [Release notes](https://github.com/jaredks/rumps/releases)
- [Changelog](https://github.com/jaredks/rumps/blob/master/CHANGES.rst)
- [Commits](https://github.com/jaredks/rumps/commits)

---
updated-dependencies:
- dependency-name: rumps
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update rumps==0.4.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-14 11:27:16 -08:00
dependabot[bot]
b31d75aeee
Bump distro from 1.7.0 to 1.8.0 (#1895)
* Bump distro from 1.7.0 to 1.8.0

Bumps [distro](https://github.com/python-distro/distro) from 1.7.0 to 1.8.0.
- [Release notes](https://github.com/python-distro/distro/releases)
- [Changelog](https://github.com/python-distro/distro/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-distro/distro/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: distro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update distro==1.8.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-14 11:27:01 -08:00
dependabot[bot]
6b835226cd
Bump cloudinary from 1.29.0 to 1.30.0 (#1890)
* Bump cloudinary from 1.29.0 to 1.30.0

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.29.0 to 1.30.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.29.0...1.30.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.30.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-14 11:26:24 -08:00
dependabot[bot]
7f132439be
Bump tokenize-rt from 4.2.1 to 5.0.0 (#1889)
* Bump tokenize-rt from 4.2.1 to 5.0.0

Bumps [tokenize-rt](https://github.com/asottile/tokenize-rt) from 4.2.1 to 5.0.0.
- [Release notes](https://github.com/asottile/tokenize-rt/releases)
- [Commits](https://github.com/asottile/tokenize-rt/compare/v4.2.1...v5.0.0)

---
updated-dependencies:
- dependency-name: tokenize-rt
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tokenize-rt==5.0.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-14 11:26:09 -08:00
dependabot[bot]
6365327595
Bump pyopenssl from 22.0.0 to 22.1.0 (#1893)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 22.0.0 to 22.1.0.
- [Release notes](https://github.com/pyca/pyopenssl/releases)
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/22.0.0...22.1.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-14 11:25:40 -08:00
dependabot[bot]
8d40224d61
Bump pywin32 from 304 to 305 (#1894)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 304 to 305.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-14 11:24:36 -08:00
dependabot[bot]
b3091d7366
Bump pyobjc-framework-cocoa from 8.5 to 9.0 (#1891)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 8.5 to 9.0.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v8.5...v9.0)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-14 11:24:22 -08:00
dependabot[bot]
fb21815ca0
Bump apscheduler from 3.9.1 to 3.9.1.post1 (#1892)
Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.9.1 to 3.9.1.post1.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/master/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.9.1...3.9.1.post1)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-14 11:24:06 -08:00
JonnyWong16
0f39171f93
Make webserver TLS version advanced config
Ref: #1870
2022-11-14 11:09:22 -08:00
JonnyWong16
100fdd1df1
Change export m3u8 to m3u extension
* m3u files are still encoded using UTF-8
2022-11-13 19:09:58 -08:00
JonnyWong16
1cdb55a6a9
Set SSLContext.minimum_version to TLSv1.2
`ssl.OP_NO_TLSv1` and `ssl.OP_NO_TLSv1_1` deprecated since Python 3.7 and OpenSSL 1.1.0.

Ref: #1870
2022-11-13 01:03:36 -08:00
JonnyWong16
977eec8a66
Disable TLS 1.0 and TLS 1.1 in webserver
Fixes #1870
2022-11-13 00:19:02 -08:00
JonnyWong16
05739ea959
pyOpenSSL only required for generating self-signed certificates 2022-11-13 00:17:28 -08:00
JonnyWong16
ed735e5fa3
Shorten winget workflow name 2022-11-12 17:57:44 -08:00
dependabot[bot]
76cc56a215
Bump cherrypy from 18.6.1 to 18.8.0 (#1796)
* Bump cherrypy from 18.6.1 to 18.8.0

Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.6.1 to 18.8.0.
- [Release notes](https://github.com/cherrypy/cherrypy/releases)
- [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cherrypy/compare/v18.6.1...v18.8.0)

---
updated-dependencies:
- dependency-name: cherrypy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cherrypy==18.8.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-11-12 17:53:03 -08:00
dependabot[bot]
e79da07973
Bump plexapi from 4.12.1 to 4.13.1 (#1888)
Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.12.1 to 4.13.1.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.12.1...4.13.1)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 17:29:35 -08:00
dependabot[bot]
3af08f0d07
Bump websocket-client from 1.3.2 to 1.4.2 (#1886)
* Bump websocket-client from 1.3.2 to 1.4.2

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.3.2 to 1.4.2.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.3.2...v1.4.2)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.4.2

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:29:02 -08:00
dependabot[bot]
a5ccc9a1a3
Bump pytz from 2022.1 to 2022.6 (#1880)
* Bump pytz from 2022.1 to 2022.6

Bumps [pytz](https://github.com/stub42/pytz) from 2022.1 to 2022.6.
- [Release notes](https://github.com/stub42/pytz/releases)
- [Commits](https://github.com/stub42/pytz/compare/release_2022.1...release_2022.6)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pytz==2022.6

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:26:45 -08:00
dependabot[bot]
8a4cb13b18
Bump tzdata from 2022.1 to 2022.6 (#1878)
* Bump tzdata from 2022.1 to 2022.6

Bumps [tzdata](https://github.com/python/tzdata) from 2022.1 to 2022.6.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2022.1...2022.6)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tzdata==2022.6

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:25:54 -08:00
dependabot[bot]
c2f47a52b4
Bump httpagentparser from 1.9.2 to 1.9.5 (#1869)
* Bump httpagentparser from 1.9.2 to 1.9.5

Bumps [httpagentparser](https://github.com/shon/httpagentparser) from 1.9.2 to 1.9.5.
- [Release notes](https://github.com/shon/httpagentparser/releases)
- [Commits](https://github.com/shon/httpagentparser/commits)

---
updated-dependencies:
- dependency-name: httpagentparser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update httpagentparser==1.9.5

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:23:34 -08:00
dependabot[bot]
d26ce224ce
Bump mako from 1.2.0 to 1.2.3 (#1845)
* Bump mako from 1.2.0 to 1.2.3

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.2.0 to 1.2.3.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.2.3

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:19:17 -08:00
dependabot[bot]
58aab24c28
Bump arrow from 1.2.2 to 1.2.3 (#1829)
* Bump arrow from 1.2.2 to 1.2.3

Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.2...1.2.3)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update arrow==1.2.3

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:18:11 -08:00
dependabot[bot]
76649be6e4
Bump tempora from 5.0.1 to 5.0.2 (#1795)
Bumps [tempora](https://github.com/jaraco/tempora) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 17:14:13 -08:00
dependabot[bot]
af1aed0b6b
Bump requests from 2.27.1 to 2.28.1 (#1781)
* Bump requests from 2.27.1 to 2.28.1

Bumps [requests](https://github.com/psf/requests) from 2.27.1 to 2.28.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.27.1...v2.28.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.28.1

* Update urllib3==1.26.12

* Update certifi==2022.9.24

* Update idna==3.4

* Update charset-normalizer==2.1.1

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:12:19 -08:00
dependabot[bot]
baa0e08c2a
Bump zipp from 3.8.0 to 3.10.0 (#1872)
* Bump zipp from 3.8.0 to 3.10.0

Bumps [zipp](https://github.com/jaraco/zipp) from 3.8.0 to 3.10.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.8.0...v3.10.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.10.0

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:12:06 -08:00
dependabot[bot]
d889e810f4
Bump bleach from 5.0.0 to 5.0.1 (#1777)
* Bump bleach from 5.0.0 to 5.0.1

Bumps [bleach](https://github.com/mozilla/bleach) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/commits)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update bleach==5.0.1

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:11:49 -08:00
dependabot[bot]
21f5fee403
Bump idna from 3.3 to 3.4 (#1835)
Bumps [idna](https://github.com/kjd/idna) from 3.3 to 3.4.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](https://github.com/kjd/idna/compare/v3.3...v3.4)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:11:08 -08:00
dependabot[bot]
fbb016a7fd
Bump certifi from 2022.5.18.1 to 2022.9.24 (#1849)
Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.5.18.1 to 2022.9.24.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2022.05.18.1...2022.09.24)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 17:10:37 -08:00
dependabot[bot]
cc0c4b638d
Bump urllib3 from 1.26.9 to 1.26.12 (#1823)
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.9 to 1.26.12.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.9...1.26.12)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 17:10:26 -08:00
JonnyWong16
c73450c0db
Update importlib-resources==5.10.0
[skip ci]
2022-11-12 17:05:05 -08:00
JonnyWong16
5bb9dbd0f6
Update importlib-metadata==5.0.0
[skip ci]
2022-11-12 17:04:54 -08:00
dependabot[bot]
20be945e8c
Bump mshick/add-pr-comment from 1 to 2 (#1885)
Bumps [mshick/add-pr-comment](https://github.com/mshick/add-pr-comment) from 1 to 2.
- [Release notes](https://github.com/mshick/add-pr-comment/releases)
- [Commits](https://github.com/mshick/add-pr-comment/compare/v1...v2)

---
updated-dependencies:
- dependency-name: mshick/add-pr-comment
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 17:03:24 -08:00
dependabot[bot]
b11b7e62e9
Bump pyinstaller from 5.1 to 5.6.2 (#1879)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.1 to 5.6.2.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.1...v5.6.2)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-11-12 17:00:58 -08:00
dependabot[bot]
76a3b3d2a5
Bump importlib-resources from 5.7.1 to 5.10.0 (#1862)
Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.7.1 to 5.10.0.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.7.1...v5.10.0)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-11-12 17:00:33 -08:00
dependabot[bot]
65452f08ce
Bump importlib-metadata from 4.11.4 to 5.0.0 (#1856)
Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 4.11.4 to 5.0.0.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v4.11.4...v5.0.0)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-12 16:52:22 -08:00
dependabot[bot]
75e492556b
Bump pyobjc-core from 8.5 to 9.0 (#1887)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 8.5 to 9.0.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v8.5...v9.0)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 16:52:16 -08:00
dependabot[bot]
a58a4ed632
Bump pycryptodomex from 3.14.1 to 3.15.0 (#1773)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.14.1 to 3.15.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.14.1...v3.15.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-12 16:51:59 -08:00
Paarth Shah
2ea85f31e7
Bump minimum python version in CONTRIBUTING.md. (#1854)
* Bump minimum python version in CONTRIBUTING.md.

* Fix random typo.

* More touch-ups.

[skip ci]
2022-11-12 16:48:40 -08:00
JonnyWong16
38cc3bc7f2
Update winget workflow token
[skip ci]
2022-11-07 13:34:25 -08:00
JonnyWong16
04d6bfbd78
Fix publish installer changelog 2022-11-07 13:22:37 -08:00
JonnyWong16
d7f6a1b186
v2.10.5 2022-11-07 13:14:21 -08:00
JonnyWong16
b1e2a30dc1
Fix publish installer workflow 2022-11-07 12:31:17 -08:00
JonnyWong16
defbbbff92
Patch set-output to environment files in GitHub workflow
* https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2022-11-07 12:22:30 -08:00
JonnyWong16
7c8cea74e4
Fix padding on condition operator dropdown on small screens 2022-11-07 12:05:04 -08:00
JonnyWong16
a3ad40122d
Add months timeframe for newsletters
* Closes #1876
2022-11-07 11:26:13 -08:00
JonnyWong16
b74a1a3c32
Separate stdout and stderr console logging
* Closes #1874
2022-11-07 10:41:49 -08:00
JonnyWong16
894eaf0365
Check IPv6 HTTP host when retrieving app URL 2022-11-07 10:41:49 -08:00
JonnyWong16
ed53d66aa7
Launch browser with IPv6 http_host 2022-11-07 10:41:49 -08:00
dependabot[bot]
c53566225c
Bump actions/cache from 3.0.8 to 3.0.11 (#1864)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.8 to 3.0.11.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.8...v3.0.11)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-07 09:30:51 -08:00
dependabot[bot]
a1b6c35bd2
Bump actions/setup-python from 4.2.0 to 4.3.0 (#1859)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-07 09:30:40 -08:00
dependabot[bot]
1977ca7db2
Bump actions/checkout from 3.0.2 to 3.1.0 (#1858)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.1.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-07 09:30:30 -08:00
dependabot[bot]
4b97382b7c
Bump actions/stale from 5 to 6 (#1844)
Bumps [actions/stale](https://github.com/actions/stale) from 5 to 6.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-11-07 09:30:19 -08:00
JonnyWong16
5975b59c93
Add user_thumb to get_history response 2022-11-05 20:03:48 +00:00
JonnyWong16
571bbb2db1
Fallback season thumb to show thumb in get_metadata 2022-11-01 16:37:36 +00:00
JonnyWong16
08bc365a7c
Add collections to get_children_metadata API data 2022-10-25 16:11:37 +00:00
JonnyWong16
e6829310ad
Validate notifier custom conditions before saving
* Fixes #1846
2022-10-10 19:05:13 +00:00
JonnyWong16
a9949a07da
Update filterer
* Clear condition operator if type changes
2022-10-10 18:05:14 +00:00
JonnyWong16
5faeafedd5
Fix API 400 response code 2022-10-01 19:24:57 +00:00
JonnyWong16
0f872ab440
Fix broken link on library stats cards 2022-09-27 23:41:27 +00:00
JonnyWong16
15afbe3001
Add edition_title notification parameter 2022-09-27 23:28:48 +00:00
JonnyWong16
a8be53e0dc
Add edition_title to metadata details 2022-09-27 21:18:52 +00:00
JonnyWong16
90cf863305
Update pip cache in publish-installers workflow 2022-09-15 10:05:57 -07:00
JonnyWong16
5ace9e163d
Set default library count to 0 2022-09-12 16:47:06 -07:00
JonnyWong16
54af528f6c
Add submit-winget.yml workflow 2022-09-10 09:17:01 -07:00
JonnyWong16
0a6b12329c
Link to MusicBrainz track for notifications 2022-09-09 16:14:31 -07:00
JonnyWong16
41b796e007
v2.10.4 2022-09-05 11:07:25 -07:00
dependabot[bot]
925efe0db7
Bump actions/cache from 3.0.6 to 3.0.8 (#1822)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.6 to 3.0.8.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.6...v3.0.8)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-08-26 09:17:13 -07:00
JonnyWong16
806c8814b6
Unpin QEMU in snap workflow 2022-08-23 11:22:54 -07:00
JonnyWong16
70256dd0b9
Update snap login in workflow 2022-08-23 10:48:01 -07:00
JonnyWong16
ac520d656b
Add "does not begin with" and "does not end with" condition operators 2022-08-19 10:41:02 -07:00
JonnyWong16
3c40f83738
Update filterer.jquery.js 2022-08-19 10:36:10 -07:00
JonnyWong16
b2777e30f2
Add git safe directory to snapcraft.yml 2022-08-18 16:40:38 -07:00
JonnyWong16
84fb1a2dc2
Add quality profile tooltip 2022-08-18 16:35:06 -07:00
JonnyWong16
b73f8cc30e
Remove unused architectures in snap workflow 2022-08-18 10:14:14 -07:00
JonnyWong16
c3572f3212
Add workflow dispatch to workflows
[skip ci]
2022-08-18 10:11:47 -07:00
JonnyWong16
85dda97e52
Fix library stats not shown for libraries without history
* Fixes #1818
2022-08-18 10:02:32 -07:00
JonnyWong16
8114079eac
Fix album count showing 0 2022-08-11 09:46:15 -07:00
JonnyWong16
444b138e97
Update v2.10.3 changelog 2022-08-09 17:22:49 -07:00
JonnyWong16
24f05a03c0
v2.10.3 2022-08-09 17:20:12 -07:00
JonnyWong16
b83e9e3257
Fix channel identifier overflow on activity card
* Fixes #1802
2022-08-09 17:16:07 -07:00
JonnyWong16
2a83502ca1
Username log filter longer than 3 characters 2022-08-09 17:02:47 -07:00
JonnyWong16
0bf1329d03
Add guides to Artist, Album, and Track export attributes 2022-08-09 17:02:47 -07:00
JonnyWong16
c1f433ab60
Add languageTag to export attribute 2022-08-09 16:44:41 -07:00
dependabot[bot]
23c881f4d1
Bump plexapi from 4.11.2 to 4.12.1 (#1811)
Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.11.2 to 4.12.1.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.11.2...4.12.1)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-09 16:38:19 -07:00
dependabot[bot]
e85834706a
Bump actions/cache from 3.0.5 to 3.0.6 (#1808)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.5 to 3.0.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.5...v3.0.6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-08-09 16:36:16 -07:00
dependabot[bot]
8327c48111
Bump actions/setup-python from 4.1.0 to 4.2.0 (#1805)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-08-09 16:36:03 -07:00
JonnyWong16
e7b96ed9ae
Only filter usernames >= 3 characters
* Fixes #1806
2022-08-03 10:52:58 -07:00
JonnyWong16
3ab0c8fe22
Use last played artwork on library stats cards 2022-08-01 15:02:51 -07:00
JonnyWong16
4ae1f6cef9
Allow fallback to another pms image 2022-08-01 14:48:35 -07:00
JonnyWong16
3631e723bc
Add last played metadata to library stats 2022-08-01 14:47:16 -07:00
JonnyWong16
ddcf350353
Add last played metadata to home stats top_libraries and top_users 2022-08-01 14:46:32 -07:00
JonnyWong16
2b339f60bc
Update PayPal URL 2022-07-29 20:04:08 -07:00
JonnyWong16
52e399144a
Add Stripe donation 2022-07-29 19:40:50 -07:00
JonnyWong16
c45ded5a98
Implement X-Plex-Container-Size for retrieving library items
PMS 1.28 log warning
```
Missing X-Plex-Container-Size header. This will fail with status code 400 in the future.
```
2022-07-24 14:13:22 -07:00
JonnyWong16
85eaed57e0
Clean up lookup table unique constraints on start up 2022-07-18 15:33:37 -07:00
JonnyWong16
6e6de11aaa
Cache usernames for log filter
* Fixes #1705
2022-07-18 15:31:23 -07:00
JonnyWong16
9f1b7de623
Add show_year notification parameter 2022-07-14 18:45:00 -07:00
JonnyWong16
aeb572f211
Add parent_year and grandparent_year to get_metadata_details 2022-07-14 18:39:59 -07:00
JonnyWong16
b598e9fc0c
Make sure token is saved before populating server dropdown list 2022-07-14 16:14:10 -07:00
JonnyWong16
b6cb946ae2
Add json support for MQTT notifications 2022-07-14 12:29:12 -07:00
dependabot[bot]
39afabf1b7
Bump actions/cache from 3.0.4 to 3.0.5 (#1792)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.4...v3.0.5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-07-14 12:14:34 -07:00
dependabot[bot]
8cbf93fda4
Bump actions/setup-python from 4.0.0 to 4.1.0 (#1788)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4.0.0...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-07-14 12:14:16 -07:00
dependabot[bot]
03938ebf2c
Bump actions/setup-python from 3.1.2 to 4.0.0 (#1760)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.2 to 4.0.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3.1.2...v4.0.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-03 15:41:07 -07:00
dependabot[bot]
167a914e20
Bump joncloud/makensis-action from 3.6 to 3.7 (#1775)
Bumps [joncloud/makensis-action](https://github.com/joncloud/makensis-action) from 3.6 to 3.7.
- [Release notes](https://github.com/joncloud/makensis-action/releases)
- [Commits](https://github.com/joncloud/makensis-action/compare/v3.6...v3.7)

---
updated-dependencies:
- dependency-name: joncloud/makensis-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-07-03 15:40:56 -07:00
dependabot[bot]
7f15c00f7e
Bump actions/cache from 3.0.3 to 3.0.4 (#1759)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-07-03 15:40:36 -07:00
dependabot[bot]
22070ea549
Bump technote-space/workflow-conclusion-action from 2.2 to 3.0 (#1758)
Bumps [technote-space/workflow-conclusion-action](https://github.com/technote-space/workflow-conclusion-action) from 2.2 to 3.0.
- [Release notes](https://github.com/technote-space/workflow-conclusion-action/releases)
- [Changelog](https://github.com/technote-space/workflow-conclusion-action/blob/main/.releasegarc)
- [Commits](https://github.com/technote-space/workflow-conclusion-action/compare/v2.2...v3.0)

---
updated-dependencies:
- dependency-name: technote-space/workflow-conclusion-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-07-03 15:40:24 -07:00
JonnyWong16
746d44922e
v2.10.2 2022-07-03 15:32:18 -07:00
JonnyWong16
ec99a2f3d9
Fix updating cron default value in newsletter table 2022-07-03 15:22:25 -07:00
JonnyWong16
d482177342
Update Python version in readme 2022-07-03 15:22:25 -07:00
JonnyWong16
285fa3a0f5
Clear user friendly name if equal to username 2022-07-03 15:22:25 -07:00
JonnyWong16
98433a7c54
Fix username not showing on home stats cards 2022-07-03 15:22:25 -07:00
JonnyWong16
d4def8e5ae
Fix cover size on info page 2022-07-03 15:22:25 -07:00
TheMeanCanEHdian
ed103bc5de
Update library icons to latest Plex style. (#1779)
* Update library icons to latest Plex style.

* Add back mistakenly removed live icons.

* Update live icon to match new style.

* Adjust icon size.

* Better center icon.
2022-07-03 13:31:33 -07:00
JonnyWong16
15fb052716
Fix stream audio info when playing a secondary track 2022-06-04 17:57:57 -07:00
JonnyWong16
ebbd66d056
Fix empty recently added error message 2022-06-03 09:41:36 -07:00
JonnyWong16
a2c589fca4
v2.10.1 2022-06-01 10:18:41 -07:00
JonnyWong16
1bd5168156
Fix OneSignal device validation
* OneSignal changed to only accept `app_id` as a query parameter instead of in the payload
2022-06-01 09:42:47 -07:00
JonnyWong16
0576920b89
Add support for mbid:// guids in notification parameters
* Requires PMS 1.27.0.5849
2022-05-31 10:57:44 -07:00
JonnyWong16
ca3c2b09cf
Add grandparent_guids and parent_guids to get_metadata_details 2022-05-31 10:57:44 -07:00
dependabot[bot]
695a00350b
Bump actions/cache from 3.0.2 to 3.0.3 (#1755)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-31 10:52:15 -07:00
dependabot[bot]
b7ca9c3502
Bump plexapi from 4.11.1 to 4.11.2 (#1753)
* Bump plexapi from 4.11.1 to 4.11.2

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.11.1 to 4.11.2.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.11.1...4.11.2)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.11.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-31 10:51:53 -07:00
JonnyWong16
fffd936b0f
Change shared_libraries to list for get_user 2022-05-28 15:03:52 -07:00
JonnyWong16
bd83c8d55c
Remove server_token from get_users 2022-05-28 15:03:24 -07:00
JonnyWong16
b905e0139c
Add continent to geoip lookup 2022-05-28 08:51:10 -07:00
JonnyWong16
b9b844dd38
Check for a blank user_id when retrieving user details 2022-05-25 11:37:32 -07:00
JonnyWong16
e9d370a4b4
v2.10.0 2022-05-23 10:57:21 -07:00
dependabot[bot]
248fb6724a
Bump importlib-metadata from 4.11.3 to 4.11.4 (#1750)
* Bump importlib-metadata from 4.11.3 to 4.11.4

Bumps [importlib-metadata](https://github.com/python/importlib_metadata) from 4.11.3 to 4.11.4.
- [Release notes](https://github.com/python/importlib_metadata/releases)
- [Changelog](https://github.com/python/importlib_metadata/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_metadata/compare/v4.11.3...v4.11.4)

---
updated-dependencies:
- dependency-name: importlib-metadata
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-metadata==4.11.4

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-23 10:45:11 -07:00
JonnyWong16
bb01141cfc
Fix parsing Windows path on Linux for notification filename parameter 2022-05-20 10:57:58 -07:00
dependabot[bot]
775375b8b4
Bump plexapi from 4.11.0 to 4.11.1 (#1749)
* Bump plexapi from 4.11.0 to 4.11.1

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.11.0 to 4.11.1.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.11.0...4.11.1)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.11.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-20 10:57:35 -07:00
dependabot[bot]
010377870d
Bump certifi from 2021.10.8 to 2022.5.18.1 (#1748)
* Bump certifi from 2021.10.8 to 2022.5.18.1

Bumps [certifi](https://github.com/certifi/python-certifi) from 2021.10.8 to 2022.5.18.1.
- [Release notes](https://github.com/certifi/python-certifi/releases)
- [Commits](https://github.com/certifi/python-certifi/compare/2021.10.08...2022.05.18.1)

---
updated-dependencies:
- dependency-name: certifi
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update certifi==2022.5.18.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-20 10:57:24 -07:00
JonnyWong16
9967786997
Add new exporter fields for PlexAPI 4.11.0 2022-05-18 11:25:25 -07:00
JonnyWong16
07eba40096
Update default user thumb image 2022-05-18 11:24:41 -07:00
dependabot[bot]
399fd6ff91
Bump plexapi from 4.9.2 to 4.11.0 (#1690)
* Bump plexapi from 4.9.2 to 4.10.1

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.9.2 to 4.10.1.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.9.2...4.10.1)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.11.0

* Update requirements.txt

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-18 11:24:15 -07:00
dependabot[bot]
f1b95f5837
Bump pyinstaller from 5.0.1 to 5.1 (#1746)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 5.0.1 to 5.1.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v5.0.1...v5.1)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-18 10:54:11 -07:00
dependabot[bot]
abc01bb64d
Bump actions/cache from 3.0.1 to 3.0.2 (#1745)
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3.0.1...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-18 10:45:00 -07:00
dependabot[bot]
bdc907ee67
Bump actions/setup-python from 3.1.1 to 3.1.2 (#1744)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3.1.1...v3.1.2)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-18 10:44:47 -07:00
JonnyWong16
1e99d51fe2
Add importlib-metadata to requirements-package.txt 2022-05-16 22:37:28 -07:00
JonnyWong16
27b72663d4
Fix platform in get_home_stats and get_user_player_stats API docs 2022-05-16 21:25:18 -07:00
dependabot[bot]
bff4a3f6ba
Bump pyinstaller from 4.9 to 5.0.1 (#1730)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 4.9 to 5.0.1.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v4.9...v5.0.1)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:24:56 -07:00
dependabot[bot]
ba3275fed7
Bump pywin32 from 303 to 304 (#1732)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 303 to 304.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:23:40 -07:00
dependabot[bot]
df58950585
Bump pyobjc-core from 8.2 to 8.5 (#1725)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 8.2 to 8.5.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v8.2...v8.5)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:23:21 -07:00
dependabot[bot]
fbf22b5ea2
Bump pyobjc-framework-cocoa from 8.2 to 8.5 (#1724)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 8.2 to 8.5.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v8.2...v8.5)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:21:44 -07:00
dependabot[bot]
1af3c43320
Bump docker/login-action from 1 to 2 (#1738)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:21:18 -07:00
dependabot[bot]
228101fd48
Bump docker/setup-buildx-action from 1 to 2 (#1737)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:21:09 -07:00
dependabot[bot]
54a878f7b1
Bump docker/setup-qemu-action from 1 to 2 (#1736)
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:21:01 -07:00
dependabot[bot]
9df184d7f4
Bump docker/build-push-action from 2 to 3 (#1735)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Upgrade guide](https://github.com/docker/build-push-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:20:50 -07:00
dependabot[bot]
86dd3f0db7
Bump actions/checkout from 2 to 3.0.2 (#1726)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:20:39 -07:00
dependabot[bot]
89d9fcac66
Bump actions/stale from 4 to 5 (#1714)
Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:20:19 -07:00
dependabot[bot]
f6214c9a98
Bump actions/upload-artifact from 2 to 3 (#1712)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:20:05 -07:00
dependabot[bot]
988c6750aa
Bump actions/download-artifact from 2 to 3 (#1711)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:19:54 -07:00
dependabot[bot]
04b745b584
Bump actions/setup-python from 2 to 3.1.1 (#1709)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.1.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...v3.1.1)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:19:14 -07:00
dependabot[bot]
f068bcca01
Bump actions/cache from 2 to 3.0.1 (#1701)
Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v2...v3.0.1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-05-16 21:17:59 -07:00
dependabot[bot]
b3aeaafd00
Bump pyjwt from 2.3.0 to 2.4.0 (#1743)
* Bump pyjwt from 2.3.0 to 2.4.0

Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.3.0...2.4.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyjwt==2.4.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:56:13 -07:00
dependabot[bot]
d17015de44
Bump pyparsing from 3.0.7 to 3.0.9 (#1741)
* Bump pyparsing from 3.0.7 to 3.0.9

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.0.7 to 3.0.9.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_3.0.7...pyparsing_3.0.9)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.0.9

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:55:40 -07:00
dependabot[bot]
93b6370759
Bump xmltodict from 0.12.0 to 0.13.0 (#1739)
* Bump xmltodict from 0.12.0 to 0.13.0

Bumps [xmltodict](https://github.com/martinblech/xmltodict) from 0.12.0 to 0.13.0.
- [Release notes](https://github.com/martinblech/xmltodict/releases)
- [Changelog](https://github.com/martinblech/xmltodict/blob/master/CHANGELOG.md)
- [Commits](https://github.com/martinblech/xmltodict/compare/v0.12.0...v0.13.0)

---
updated-dependencies:
- dependency-name: xmltodict
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update xmltodict==0.13.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:55:30 -07:00
dependabot[bot]
55812ce2f0
Bump importlib-resources from 5.6.0 to 5.7.1 (#1723)
* Bump importlib-resources from 5.6.0 to 5.7.1

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.6.0 to 5.7.1.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.6.0...v5.7.1)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==5.7.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:48:17 -07:00
dependabot[bot]
467ae352f5
Bump beautifulsoup4 from 4.10.0 to 4.11.1 (#1717)
* Bump beautifulsoup4 from 4.10.0 to 4.11.1

Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.10.0 to 4.11.1.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update beautifulsoup4==4.11.1

* Update soupsieve==2.3.2.post1

* Update requirements.txt

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:46:21 -07:00
dependabot[bot]
a1fe0b04d7
Bump bleach from 4.1.0 to 5.0.0 (#1708)
* Bump bleach from 4.1.0 to 5.0.0

Bumps [bleach](https://github.com/mozilla/bleach) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v5.0.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update bleach==5.0.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:41:47 -07:00
dependabot[bot]
d510e0f600
Bump websocket-client from 1.2.3 to 1.3.2 (#1700)
* Bump websocket-client from 1.2.3 to 1.3.2

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.2.3 to 1.3.2.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.2.3...v1.3.2)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.3.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:40:13 -07:00
dependabot[bot]
67baf9a260
Bump urllib3 from 1.26.8 to 1.26.9 (#1688)
* Bump urllib3 from 1.26.8 to 1.26.9

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.8 to 1.26.9.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.9/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.8...1.26.9)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==1.26.9

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:35:58 -07:00
dependabot[bot]
238afb4794
Bump mako from 1.1.6 to 1.2.0 (#1684)
* Bump mako from 1.1.6 to 1.2.0

Bumps [mako](https://github.com/sqlalchemy/mako) from 1.1.6 to 1.2.0.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update mako==1.2.0

* Update MarkupSafe==2.1.1

* Add importlib-metadata==4.11.3

* Update requirements.txt

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:33:50 -07:00
dependabot[bot]
aa0c58ef0e
Bump dnspython from 2.2.0 to 2.2.1 (#1679)
* Bump dnspython from 2.2.0 to 2.2.1

Bumps [dnspython](https://github.com/rthalley/dnspython) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/rthalley/dnspython/releases)
- [Changelog](https://github.com/rthalley/dnspython/blob/master/doc/whatsnew.rst)
- [Commits](https://github.com/rthalley/dnspython/compare/v2.2.0...v2.2.1)

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.2.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:33:29 -07:00
dependabot[bot]
54c9214b03
Bump apscheduler from 3.8.0 to 3.9.1 (#1675)
* Bump apscheduler from 3.8.0 to 3.9.1

Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.8.0 to 3.9.1.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/3.9.1/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.8.0...3.9.1)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update apscheduler==3.9.1

* Update pytz==2022.1

* Add pytz-deprecation-shim==0.1.0.post0

* Update tzdata==2022.1

* Update tzlocal==4.2

* Update requirements.txt

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:32:37 -07:00
dependabot[bot]
942e09e59e
Bump distro from 1.6.0 to 1.7.0 (#1658)
* Bump distro from 1.6.0 to 1.7.0

Bumps [distro](https://github.com/python-distro/distro) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/python-distro/distro/releases)
- [Changelog](https://github.com/python-distro/distro/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python-distro/distro/compare/v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: distro
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update distro==1.7.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-05-16 20:32:27 -07:00
JonnyWong16
f08687b960
Fix Dolby Vision detection
* Plex renamed "Dolby Vision" to "DoVi" in the display title.
2022-05-12 13:11:14 -07:00
JonnyWong16
1f7ddd4d01
Disable PlexAPI auto-reloading when fetching collections/playlists 2022-05-12 13:11:14 -07:00
JonnyWong16
df54df5e65
Set PlexAPI log level to debug 2022-04-26 11:02:07 -07:00
JonnyWong16
1371cfa889
Trigger on_stop notification after successful db write
* Prevent race condition from querying the db using the notification trigger
2022-04-14 20:54:07 -07:00
dependabot[bot]
dd59a79005
Bump zipp from 3.7.0 to 3.8.0 (#1706)
* Bump zipp from 3.7.0 to 3.8.0

Bumps [zipp](https://github.com/jaraco/zipp) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.7.0...v3.8.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update zipp==3.8.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-04-12 18:42:59 -07:00
dependabot[bot]
fa52d99691
Bump importlib-resources from 5.4.0 to 5.6.0 (#1699)
* Bump importlib-resources from 5.4.0 to 5.6.0

Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.4.0 to 5.6.0.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.4.0...v5.6.0)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update importlib-resources==5.6.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-04-12 18:42:48 -07:00
JonnyWong16
c54c811eec
Update jaraco.text==3.7.0
[skip ci]
2022-04-12 18:41:08 -07:00
JonnyWong16
d5afac4104
Add jaraco.context==4.1.1
[skip ci]
2022-04-12 18:40:59 -07:00
JonnyWong16
3e8ef3c1b4
Update jaraco.collections==3.5.1
[skip ci]
2022-04-12 18:40:47 -07:00
JonnyWong16
addf9ea324
Update jaraco.classes==3.2.1
[skip ci]
2022-04-12 18:40:33 -07:00
JonnyWong16
ab24116b1b
Fix get_users_table API docs 2022-04-12 13:28:13 -07:00
JonnyWong16
d4002b2e2b
Change values to int instead of "Checked" in users and libraries table
* get_users_table: allow_guest, do_notify, keep_history
* get_libraries_table: do_notify, do_notify_created, keep_history
2022-04-12 12:43:12 -07:00
JonnyWong16
b0950abdd9
v2.9.7 2022-04-11 15:26:25 -07:00
JonnyWong16
a9860fe62a
Fix managed users no username 2022-04-11 15:10:53 -07:00
JonnyWong16
dd389b0f94
v2.9.6 2022-04-10 15:48:32 -07:00
JonnyWong16
1ce292a0b6
Only build snap on amd64, arm64, armhf 2022-04-10 15:40:57 -07:00
JonnyWong16
a2fac2b11c
Improve display of dynamic range on activity cards
* Ref #1654. Thanks @herby2212.
2022-04-09 17:52:17 -07:00
JonnyWong16
4862aee9a1
Add hidden user title (Full Name) column to users table 2022-04-08 20:03:05 -07:00
JonnyWong16
aa6592eec7
Fix importing Plex usernames
* Fixes #1710
* Also import the user title (Full Name)
2022-04-08 20:03:05 -07:00
JonnyWong16
e996c4b375
Change default update check interval to hours instead of minutes 2022-04-04 21:06:25 -07:00
JonnyWong16
73b94782f9
Add hidden username and email columns to users table 2022-04-01 21:31:06 -07:00
JonnyWong16
b737ab96b4
Change include summary option for Discord and Slack for all media types 2022-04-01 21:08:10 -07:00
JonnyWong16
5c06accca0
Mask emails and longer usernames first 2022-04-01 10:19:41 -07:00
JonnyWong16
3cd98457c2
Apply PMS_TIMEOUT setting to websocket connection 2022-03-26 15:47:53 -07:00
JonnyWong16
944a231e5b
Change websocket header to a dict 2022-03-26 15:47:17 -07:00
JonnyWong16
5d84587ee2
Fix validating Plex login in setup wizard
* Fixes #1697
2022-03-26 15:40:28 -07:00
JonnyWong16
9a4ca69590
v2.9.5 2022-03-26 15:11:20 -07:00
JonnyWong16
9c8e8b4351
Simplify default settings in setup wizard 2022-03-26 14:57:44 -07:00
JonnyWong16
87389320fb
Fix live tv filter in history query
* Fixes #1691
2022-03-18 15:50:01 -07:00
JonnyWong16
eb1d724417
Add Tautulli to X-Plex-Device-Name header 2022-03-16 16:59:58 -07:00
JonnyWong16
50d90d16bf
Update App Store link to specify iphone 2022-03-11 20:18:10 -08:00
JonnyWong16
35aca11feb
Escape characters in username log filter
* Remove filter for friendly names
2022-02-27 17:03:11 -08:00
JonnyWong16
84a14c0f25
Colour active filter buttons 2022-02-27 16:50:29 -08:00
JonnyWong16
bd9fe54fd7
Enable dynamic anonymous redirect by default in setup wizard 2022-02-24 19:11:30 -08:00
JonnyWong16
74cd494162
Pass media_type when retrieving show and artist children for newsletter
* Fix different album types not shown on newsletter. (#1559)
2022-02-21 12:14:14 -08:00
JonnyWong16
297620f4a9
Reorder db migrations 2022-02-21 09:42:50 -08:00
JonnyWong16
d657a609ff
Reschedule tasks after changing backup interval
* Fixes #1662
2022-02-19 16:37:03 -08:00
JonnyWong16
3c48ea49f3
Retrieve season summary and fallback to show summary
* Fixes #1657
2022-02-18 23:27:02 -08:00
JonnyWong16
ec363b2ef3
Add transcode offset keys to get_activity API docs 2022-02-13 12:17:57 -08:00
JonnyWong16
6d84d1b4c9
Improve calculation for transcode progress bar 2022-02-13 11:59:06 -08:00
JonnyWong16
cfd1bf445f
v2.9.4 2022-02-12 19:17:01 -08:00
JonnyWong16
b4600c8306
Bump config version to set first_run_complete flag 2022-02-12 18:56:08 -08:00
JonnyWong16
636806ae17
Fix Tautulli starting multiple instances on Windows 2022-02-12 18:05:17 -08:00
JonnyWong16
40dc6e08ef
Fix first_run_complete config flag 2022-02-12 17:59:14 -08:00
JonnyWong16
ee43f001e4
v2.9.3 2022-02-09 09:30:19 -08:00
JonnyWong16
3eef2b7f21
Fix missing first run complete flag causing setup wizard loop 2022-02-09 09:22:50 -08:00
JonnyWong16
51d701521a
Fix username logger blacklist preventing Tautulli from starting 2022-02-09 09:22:13 -08:00
JonnyWong16
b73aa888c2
v2.9.2 2022-02-08 10:35:23 -08:00
JonnyWong16
6d092b4984
Add additional Telegram HTML tags 2022-02-08 10:29:22 -08:00
JonnyWong16
32ef43fe6e
Revert "Default Telegram to MarkdownV2 when HTML disabled"
This reverts commit b9f04ac71a.

Ref #1635
2022-02-08 10:29:22 -08:00
JonnyWong16
088bbd3bb6
Skip Local user when masking logs 2022-02-07 23:36:03 -08:00
JonnyWong16
e970a260a1
v2.9.1 2022-02-07 23:18:18 -08:00
JonnyWong16
17800df0aa
v2.9.0 2022-02-07 22:59:20 -08:00
JonnyWong16
31aa9965d1
Fix screen rotation in PWA
* Fixes #1633
2022-02-07 22:46:52 -08:00
dependabot[bot]
97ef7c4981
Bump pyinstaller from 4.8 to 4.9 (#1644)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 4.8 to 4.9.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/v4.9/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v4.8...v4.9)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-07 22:23:02 -08:00
dependabot[bot]
922ab07ff1
Bump pycryptodomex from 3.13.0 to 3.14.1 (#1646)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.13.0 to 3.14.1.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.13.0...v3.14.1)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-02-07 22:22:00 -08:00
dependabot[bot]
8170244812
Bump pyopenssl from 21.0.0 to 22.0.0 (#1638)
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 21.0.0 to 22.0.0.
- [Release notes](https://github.com/pyca/pyopenssl/releases)
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/21.0.0...22.0.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-02-07 22:21:23 -08:00
dependabot[bot]
9a9c98d0a0
Bump plexapi from 4.9.1 to 4.9.2 (#1647)
* Bump plexapi from 4.9.1 to 4.9.2

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.9.1 to 4.9.2.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.9.1...4.9.2)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.9.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-02-07 21:58:50 -08:00
dependabot[bot]
44e65952f9
Bump cloudinary from 1.28.1 to 1.29.0 (#1643)
* Bump cloudinary from 1.28.1 to 1.29.0

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.28.1 to 1.29.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.28.1...1.29.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.29.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-02-07 21:58:28 -08:00
dependabot[bot]
9c3d700584
Bump tempora from 5.0.0 to 5.0.1 (#1642)
Bumps [tempora](https://github.com/jaraco/tempora) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v5.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-02-07 21:58:10 -08:00
dependabot[bot]
61960aa744
Bump requests-oauthlib from 1.3.0 to 1.3.1 (#1636)
* Bump requests-oauthlib from 1.3.0 to 1.3.1

Bumps [requests-oauthlib](https://github.com/requests/requests-oauthlib) from 1.3.0 to 1.3.1.
- [Release notes](https://github.com/requests/requests-oauthlib/releases)
- [Changelog](https://github.com/requests/requests-oauthlib/blob/master/HISTORY.rst)
- [Commits](https://github.com/requests/requests-oauthlib/compare/v1.3.0...v1.3.1)

---
updated-dependencies:
- dependency-name: requests-oauthlib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests-oauthlib==1.3.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-02-07 21:57:50 -08:00
dependabot[bot]
5523d4ba88
Bump httpagentparser from 1.9.1 to 1.9.2 (#1631)
* Bump httpagentparser from 1.9.1 to 1.9.2

Bumps [httpagentparser](https://github.com/shon/httpagentparser) from 1.9.1 to 1.9.2.
- [Release notes](https://github.com/shon/httpagentparser/releases)
- [Commits](https://github.com/shon/httpagentparser/commits)

---
updated-dependencies:
- dependency-name: httpagentparser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update httpagentparser==1.9.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-02-07 21:57:29 -08:00
dependabot[bot]
2d9e109f97
Bump arrow from 1.2.1 to 1.2.2 (#1630)
* Bump arrow from 1.2.1 to 1.2.2

Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.1...1.2.2)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update arrow==1.2.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-02-07 21:57:11 -08:00
JonnyWong16
8e6f8d7735
Remove unnecessary insert statement 2022-02-07 09:12:07 -08:00
JonnyWong16
c3d09d34f8
Prevent rating_key collisions when updating metadata 2022-02-06 23:18:53 -08:00
JonnyWong16
cba746920a
Add Telegram channel ID to config label and description 2022-02-03 12:22:23 -08:00
JonnyWong16
e33767de9b
Fix updating section_id when updating metadata 2022-02-01 22:06:53 -08:00
JonnyWong16
636d2fe43e
Add disc number notification parameter 2022-01-31 15:04:41 -08:00
JonnyWong16
fe388e903d
Fix export download not including images 2022-01-30 17:26:08 -08:00
JonnyWong16
b9f04ac71a
Default Telegram to MarkdownV2 when HTML disabled 2022-01-30 16:50:23 -08:00
JonnyWong16
96025c839d
Separate out plex.direct IP address log filter 2022-01-27 10:52:07 -08:00
JonnyWong16
2145f1e272
Check for local IPv6 addresses 2022-01-26 22:26:25 -08:00
JonnyWong16
f2a664953c
Assume IPv6 is public address
* Fixes #1629
2022-01-26 21:33:27 -08:00
JonnyWong16
994ebfc680
v2.9.0-beta 2022-01-26 14:49:48 -08:00
JonnyWong16
e7a4cb9233
Add connection details to IP address modal 2022-01-25 16:06:52 -08:00
JonnyWong16
12dddc2d89
Add location, relayed, and secure to get_history response 2022-01-25 14:08:55 -08:00
dependabot[bot]
484c7ed4a2
Bump pyinstaller from 4.7 to 4.8 (#1614)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 4.7 to 4.8.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES-3.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v4.7...v4.8)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-25 12:57:59 -08:00
dependabot[bot]
f3638909cd
Bump pyobjc-framework-cocoa from 8.1 to 8.2 (#1624)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 8.1 to 8.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits/v8.2)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-01-25 12:50:22 -08:00
dependabot[bot]
4323a77d12
Bump pyobjc-core from 8.1 to 8.2 (#1626)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 8.1 to 8.2.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits/v8.2)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-01-25 12:49:08 -08:00
dependabot[bot]
32951488e0
Bump pycryptodomex from 3.12.0 to 3.13.0 (#1623)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.12.0 to 3.13.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.12.0...v3.13.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2022-01-25 12:47:16 -08:00
JonnyWong16
113043d9bc
Add setting to mask usernames in logs 2022-01-25 12:44:49 -08:00
JonnyWong16
2331c76326
Add fee note to donation methods 2022-01-25 12:03:47 -08:00
dependabot[bot]
7f0abe0fe6
Bump plexapi from 4.8.0 to 4.9.1 (#1627)
* Bump plexapi from 4.8.0 to 4.9.1

Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.8.0 to 4.9.1.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.8.0...4.9.1)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update plexapi==4.9.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-01-25 11:08:49 -08:00
dependabot[bot]
a4ab5ab9be
Bump pyparsing from 3.0.6 to 3.0.7 (#1620)
* Bump pyparsing from 3.0.6 to 3.0.7

Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 3.0.6 to 3.0.7.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_3.0.6...pyparsing_3.0.7)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update pyparsing==3.0.7

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:08:37 -08:00
dependabot[bot]
3c93b5600f
Bump dnspython from 2.0.0 to 2.2.0 (#1618)
* Bump dnspython from 2.0.0 to 2.2.0

Bumps [dnspython]() from 2.0.0 to 2.2.0.

---
updated-dependencies:
- dependency-name: dnspython
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dnspython==2.2.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:08:24 -08:00
dependabot[bot]
515a5d42d3
Bump cloudinary from 1.28.0 to 1.28.1 (#1615)
* Bump cloudinary from 1.28.0 to 1.28.1

Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.28.0 to 1.28.1.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.28.0...1.28.1)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cloudinary==1.28.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:08:12 -08:00
dependabot[bot]
2829041dc3
Bump tempora from 4.1.2 to 5.0.0 (#1609)
* Bump tempora from 4.1.2 to 5.0.0

Bumps [tempora](https://github.com/jaraco/tempora) from 4.1.2 to 5.0.0.
- [Release notes](https://github.com/jaraco/tempora/releases)
- [Changelog](https://github.com/jaraco/tempora/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/tempora/compare/v4.1.2...v5.0.0)

---
updated-dependencies:
- dependency-name: tempora
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update tempora==5.0.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:07:56 -08:00
dependabot[bot]
c03edf6893
Bump urllib3 from 1.26.7 to 1.26.8 (#1607)
* Bump urllib3 from 1.26.7 to 1.26.8

Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.7 to 1.26.8.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/1.26.8/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.7...1.26.8)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update urllib3==1.26.8

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:07:41 -08:00
dependabot[bot]
fe32b31d7a
Bump requests from 2.27.0 to 2.27.1 (#1605)
* Bump requests from 2.27.0 to 2.27.1

Bumps [requests](https://github.com/psf/requests) from 2.27.0 to 2.27.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.27.0...v2.27.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.27.1

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2022-01-25 11:07:16 -08:00
JonnyWong16
3f3c3aab11
Update ipwhois==1.2.0 fork
* ipwhois fork with support for dnspython 2.2.0 and namedtuple patch
2022-01-22 21:12:16 -08:00
JonnyWong16
8bb83cff64
Save client id with token 2022-01-20 23:11:21 -08:00
JonnyWong16
654ff7bdb6
Improve logger regex 2022-01-20 13:46:32 -08:00
JonnyWong16
1eb58ba864
Add get_tautulli_info API command 2022-01-20 10:17:51 -08:00
JonnyWong16
de8fa32557
Add feedback message for saving new Plex token 2022-01-20 10:11:06 -08:00
JonnyWong16
1be7375a49
Add favicons to newsletter auth page 2022-01-16 12:21:04 -08:00
JonnyWong16
66e6b9499a
Add intermediary login page to view Plex XML 2022-01-16 12:20:48 -08:00
JonnyWong16
86cf872595
Clean up getattr and setattr for configs 2022-01-16 11:23:10 -08:00
JonnyWong16
c78bef851e
Null do not download keys for get_settings API command 2022-01-16 11:22:40 -08:00
JonnyWong16
71d64a4b3f
Add do not download keys to config 2022-01-16 11:22:07 -08:00
JonnyWong16
81dc790a0c
Revert "Remove get_settings API command"
This reverts commit c39f89356c.
2022-01-15 16:16:24 -08:00
JonnyWong16
c35cbb06e2
Remove tokens from downloaded config 2022-01-15 16:14:20 -08:00
JonnyWong16
ce0cdf9ce6
Remove tokens from downloaded database 2022-01-15 16:13:53 -08:00
JonnyWong16
6742ce613a
Do not import pms_token or jwt_secret 2022-01-15 16:12:14 -08:00
JonnyWong16
3de0a84882
Increase verify server timeout 2022-01-12 09:59:08 -08:00
JonnyWong16
a6e568ea5d
Fix Crypto donation referrer link 2022-01-09 16:53:02 -08:00
JonnyWong16
206a175839
Add logger warning message when authentication is disabled 2022-01-05 15:56:23 -08:00
JonnyWong16
16f20c941c
Add advanced config setting to enable Plex XML shortcuts 2022-01-05 15:56:01 -08:00
JonnyWong16
f8048a01a6
Validate settings when saving config 2022-01-05 15:52:09 -08:00
JonnyWong16
3c3d72850f
Remove PMS token from UI 2022-01-05 14:04:33 -08:00
JonnyWong16
b7937b8740
Proxy PMS downloads json through server 2022-01-05 14:04:33 -08:00
JonnyWong16
d943877e76
Proxy token check through server 2022-01-05 11:17:35 -08:00
JonnyWong16
c39f89356c
Remove get_settings API command 2022-01-05 10:53:25 -08:00
JonnyWong16
2410eb3380
v2.8.1 2022-01-04 13:43:43 -08:00
dependabot[bot]
754f93816c
Bump zipp from 3.6.0 to 3.7.0 (#1601)
Bumps [zipp](https://github.com/jaraco/zipp) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 13:31:34 -08:00
dependabot[bot]
3689834051
Bump cheroot from 8.5.2 to 8.6.0 (#1603)
* Bump cheroot from 8.5.2 to 8.6.0

Bumps [cheroot](https://github.com/cherrypy/cheroot) from 8.5.2 to 8.6.0.
- [Release notes](https://github.com/cherrypy/cheroot/releases)
- [Changelog](https://github.com/cherrypy/cheroot/blob/master/CHANGES.rst)
- [Commits](https://github.com/cherrypy/cheroot/compare/v8.5.2...v8.6.0)

---
updated-dependencies:
- dependency-name: cheroot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update cheroot==8.6.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-01-04 13:20:50 -08:00
dependabot[bot]
bb5ebe0fa5
Bump requests from 2.26.0 to 2.27.0 (#1602)
* Bump requests from 2.26.0 to 2.27.0

Bumps [requests](https://github.com/psf/requests) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.26.0...v2.27.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update requests==2.27.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-01-04 13:20:40 -08:00
dependabot[bot]
2c7a3934cb
Bump websocket-client from 1.2.1 to 1.2.3 (#1587)
* Bump websocket-client from 1.2.1 to 1.2.3

Bumps [websocket-client](https://github.com/websocket-client/websocket-client) from 1.2.1 to 1.2.3.
- [Release notes](https://github.com/websocket-client/websocket-client/releases)
- [Changelog](https://github.com/websocket-client/websocket-client/blob/master/ChangeLog)
- [Commits](https://github.com/websocket-client/websocket-client/compare/v1.2.1...v1.2.3)

---
updated-dependencies:
- dependency-name: websocket-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update websocket-client==1.2.3

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2022-01-04 13:20:22 -08:00
dependabot[bot]
d652067ca5
Bump pywin32 from 302 to 303 (#1599)
Bumps [pywin32](https://github.com/mhammond/pywin32) from 302 to 303.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 12:39:58 -08:00
dependabot[bot]
2198d819c1
Bump pyobjc-framework-cocoa from 8.0 to 8.1 (#1580)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 8.0 to 8.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 12:38:28 -08:00
dependabot[bot]
e5e643a0c6
Bump pyobjc-core from 8.0 to 8.1 (#1579)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 8.0 to 8.1.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/commits)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 12:36:41 -08:00
dependabot[bot]
6df1b7dc87
Bump pycryptodomex from 3.11.0 to 3.12.0 (#1585)
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.11.0...v3.12.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-04 12:33:41 -08:00
JonnyWong16
925a16e66d
Add total time result to user player stats 2022-01-03 12:55:42 -08:00
JonnyWong16
cd59e1d4c4
Remove media_type argument from item stats API call 2022-01-03 12:53:21 -08:00
JonnyWong16
3fc2368078
Add total time result to library user stats 2022-01-03 12:45:25 -08:00
JonnyWong16
094b2211c3
Add grouping and query_days parameters for item stats API 2022-01-03 12:45:25 -08:00
JonnyWong16
93940b710b
Add removable media plug to snap 2021-12-26 11:50:47 -08:00
JonnyWong16
1e61f1332e
Clean __pycache__ and .pyc after update 2021-12-16 11:07:35 -08:00
JonnyWong16
8d832730f2
Update exporter docs collection/playlist note 2021-12-16 10:13:04 -08:00
JonnyWong16
7b061f49c5
Make clean_pyc scripts executable 2021-12-15 20:25:14 -08:00
JonnyWong16
a944f5ae06
v2.8.0 2021-12-15 20:16:36 -08:00
JonnyWong16
9432fee1ba
Fix get_history when media_type == 'all' 2021-12-04 13:06:53 -08:00
JonnyWong16
d5d3766f90
Improve Plex log reader 2021-11-29 21:25:48 -08:00
JonnyWong16
eee5402c80
Add before and after parameter to get_history API command 2021-11-29 20:00:31 -08:00
JonnyWong16
98fe7d7a0f
Pin apscheduler==3.8.0 requirement 2021-11-29 10:19:19 -08:00
JonnyWong16
0a570e7772
Update tzdata==2021.5 2021-11-29 10:14:40 -08:00
JonnyWong16
c0fb1dbbdc
Revert "Update apscheduler==3.8.1"
This reverts commit 973cad264f.
2021-11-29 10:11:05 -08:00
JonnyWong16
045bfb9502
v2.8.0-beta 2021-11-28 14:32:14 -08:00
JonnyWong16
ae3135e66e
Update dependabot pull request limit 2021-11-28 14:24:52 -08:00
JonnyWong16
3a50981976
Update plexapi==4.8.0 2021-11-28 14:23:21 -08:00
JonnyWong16
36b55398a8
Update soupsieve==2.3.1 2021-11-28 14:23:21 -08:00
JonnyWong16
dcfd8abddd
Update cloudinary==1.28.0 2021-11-28 14:23:21 -08:00
JonnyWong16
0325e9327f
Update portend==3.1.0 2021-11-28 14:23:21 -08:00
JonnyWong16
5f43c4c890
Update mako==1.1.6 2021-11-28 14:14:57 -08:00
JonnyWong16
5dbc15ce4b
Update simplejson==3.17.6 2021-11-28 14:14:57 -08:00
JonnyWong16
f52d985f8c
Update packaging==21.3 2021-11-28 14:14:57 -08:00
JonnyWong16
0ec2d70e4b
Update pyparsing==3.0.6 2021-11-28 14:14:57 -08:00
JonnyWong16
563f697563
Update importlib-resources==5.4.0 2021-11-28 14:14:57 -08:00
JonnyWong16
c79c48fcca
Update arrow==1.2.1 2021-11-28 14:14:57 -08:00
JonnyWong16
03012cd2b2
Update tokenize-rt==4.2.1 2021-11-28 14:14:57 -08:00
JonnyWong16
966a6696d1
Update paho-mqtt==1.6.1 2021-11-28 14:14:57 -08:00
JonnyWong16
d981f6e51f
Update pyjwt==2.3.0 2021-11-28 14:14:57 -08:00
JonnyWong16
973cad264f
Update apscheduler==3.8.1 2021-11-28 14:14:57 -08:00
dependabot[bot]
a6c933cfce
Bump plexapi from 4.7.2 to 4.8.0 (#1573)
Bumps [plexapi](https://github.com/pkkid/python-plexapi) from 4.7.2 to 4.8.0.
- [Release notes](https://github.com/pkkid/python-plexapi/releases)
- [Commits](https://github.com/pkkid/python-plexapi/compare/4.7.2...4.8.0)

---
updated-dependencies:
- dependency-name: plexapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:14:35 -08:00
dependabot[bot]
dc45e503a6
Bump soupsieve from 2.2.1 to 2.3.1 (#1575)
Bumps [soupsieve](https://github.com/facelessuser/soupsieve) from 2.2.1 to 2.3.1.
- [Release notes](https://github.com/facelessuser/soupsieve/releases)
- [Commits](https://github.com/facelessuser/soupsieve/compare/2.2.1...2.3.1)

---
updated-dependencies:
- dependency-name: soupsieve
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:13:13 -08:00
dependabot[bot]
75dc12ff03
Bump cloudinary from 1.26.0 to 1.28.0 (#1568)
Bumps [cloudinary](https://github.com/cloudinary/pycloudinary) from 1.26.0 to 1.28.0.
- [Release notes](https://github.com/cloudinary/pycloudinary/releases)
- [Changelog](https://github.com/cloudinary/pycloudinary/blob/master/CHANGELOG.md)
- [Commits](https://github.com/cloudinary/pycloudinary/compare/1.26.0...1.28.0)

---
updated-dependencies:
- dependency-name: cloudinary
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:12:08 -08:00
dependabot[bot]
66008ca533
Bump tzdata from 2021.2.post0 to 2021.5 (#1542)
Bumps [tzdata](https://github.com/python/tzdata) from 2021.2.post0 to 2021.5.
- [Release notes](https://github.com/python/tzdata/releases)
- [Changelog](https://github.com/python/tzdata/blob/master/NEWS.md)
- [Commits](https://github.com/python/tzdata/compare/2021.2.post0...2021.5)

---
updated-dependencies:
- dependency-name: tzdata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>

[skip ci]
2021-11-28 14:11:40 -08:00
dependabot[bot]
423b76686d
Bump pyobjc-framework-cocoa from 7.3 to 8.0 (#1576)
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 7.3 to 8.0.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v7.3...v8.0)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:10:35 -08:00
dependabot[bot]
d3fdee4dca
Bump pyobjc-core from 7.3 to 8.0 (#1574)
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 7.3 to 8.0.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v7.3...v8.0)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:08:19 -08:00
dependabot[bot]
2f7fb821c2
Bump pyinstaller from 4.5.1 to 4.7 (#1570)
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 4.5.1 to 4.7.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/v4.7/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v4.5.1...v4.7)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:07:28 -08:00
dependabot[bot]
e8e147c063
Bump mako from 1.1.5 to 1.1.6 (#1577)
Bumps [mako](https://github.com/sqlalchemy/mako) from 1.1.5 to 1.1.6.
- [Release notes](https://github.com/sqlalchemy/mako/releases)
- [Changelog](https://github.com/sqlalchemy/mako/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/mako/commits)

---
updated-dependencies:
- dependency-name: mako
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:02:21 -08:00
dependabot[bot]
8f2cf8fe10
Bump portend from 3.0.0 to 3.1.0 (#1572)
Bumps [portend](https://github.com/jaraco/portend) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/jaraco/portend/releases)
- [Changelog](https://github.com/jaraco/portend/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/portend/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: portend
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 14:01:04 -08:00
dependabot[bot]
55a51f79d5
Bump simplejson from 3.17.5 to 3.17.6 (#1569)
Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.17.5 to 3.17.6.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.17.5...v3.17.6)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:59:54 -08:00
dependabot[bot]
3ce250b909
Bump packaging from 21.0 to 21.3 (#1565)
Bumps [packaging](https://github.com/pypa/packaging) from 21.0 to 21.3.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/21.0...21.3)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:58:05 -08:00
dependabot[bot]
e40234b599
Bump pyparsing from 2.4.7 to 3.0.6 (#1564)
Bumps [pyparsing](https://github.com/pyparsing/pyparsing) from 2.4.7 to 3.0.6.
- [Release notes](https://github.com/pyparsing/pyparsing/releases)
- [Changelog](https://github.com/pyparsing/pyparsing/blob/master/CHANGES)
- [Commits](https://github.com/pyparsing/pyparsing/compare/pyparsing_2.4.7...pyparsing_3.0.6)

---
updated-dependencies:
- dependency-name: pyparsing
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:55:05 -08:00
dependabot[bot]
b7489302fd
Bump importlib-resources from 5.2.2 to 5.4.0 (#1554)
Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.2.2 to 5.4.0.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.2.2...v5.4.0)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:53:54 -08:00
dependabot[bot]
1fe1fd6595
Bump arrow from 1.2.0 to 1.2.1 (#1543)
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.0...1.2.1)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:52:26 -08:00
dependabot[bot]
89a265d226
Bump tokenize-rt from 4.1.0 to 4.2.1 (#1539)
Bumps [tokenize-rt](https://github.com/asottile/tokenize-rt) from 4.1.0 to 4.2.1.
- [Release notes](https://github.com/asottile/tokenize-rt/releases)
- [Commits](https://github.com/asottile/tokenize-rt/compare/v4.1.0...v4.2.1)

---
updated-dependencies:
- dependency-name: tokenize-rt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:50:04 -08:00
dependabot[bot]
efb1a7e3b7
Bump paho-mqtt from 1.5.1 to 1.6.1 (#1538)
Bumps [paho-mqtt](https://github.com/eclipse/paho.mqtt.python) from 1.5.1 to 1.6.1.
- [Release notes](https://github.com/eclipse/paho.mqtt.python/releases)
- [Changelog](https://github.com/eclipse/paho.mqtt.python/blob/master/ChangeLog.txt)
- [Commits](https://github.com/eclipse/paho.mqtt.python/compare/v1.5.1...v1.6.1)

---
updated-dependencies:
- dependency-name: paho-mqtt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[skip ci]
2021-11-28 13:49:05 -08:00
JonnyWong16
ebd09e9d3b
Update requirements.txt
[skip ci]
2021-11-28 13:42:07 -08:00
JonnyWong16
bf8aca21e4
Add upload database max file size note 2021-11-28 13:29:18 -08:00
JonnyWong16
d8e581f263
Adjust info page summary margin 2021-11-28 13:29:18 -08:00
dependabot[bot]
4604140ef6
Bump apscheduler from 3.8.0 to 3.8.1 (#1545)
Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/master/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/3.8.0...3.8.1)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-28 13:29:00 -08:00
dependabot[bot]
36a7bee9f0
Bump pyjwt from 2.2.0 to 2.3.0 (#1528)
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.2.0...2.3.0)

---
updated-dependencies:
- dependency-name: pyjwt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-28 13:25:00 -08:00
JonnyWong16
776efbb6a3
Add note passwords not copied when duplicating notifier or newsletters 2021-11-13 22:24:54 -08:00
JonnyWong16
e9762cdef6
Fix confirm modal click handler triggering multiple times 2021-11-13 22:24:12 -08:00
JonnyWong16
876741b40b
Add description toggle to info page
* Fixes #1546
2021-11-13 21:53:32 -08:00
JonnyWong16
98d02d0b89
Add missing column to sessions table 2021-11-13 21:03:34 -08:00
JonnyWong16
0a2cc953c6
Update added issues label action message
[skip ci]
2021-11-13 21:03:34 -08:00
Niccolò Maggioni
90f3e9ac85
Make all calls honor VERIFY_SSL_CERT setting (#1541)
* Make PmsConnect honor VERIFY_SSL_CERT setting

* Make all websockets and WebUI tests honor VERIFY_SSL_CERT setting

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2021-11-13 21:03:12 -08:00
JonnyWong16
93cb067454
Update get_metadata_childern to include all artist album types
* Fixes #1559
2021-11-06 21:44:55 -08:00
JonnyWong16
cd85269fe5
Add Gotify notification agent 2021-11-06 20:48:52 -08:00
JonnyWong16
274801ee0b
Add note for music provider 3rd party API 2021-11-06 19:53:29 -08:00
JonnyWong16
ef60ce5bb0
Add Microsoft Teams webhook notification agent
* Closes #1514
2021-11-06 19:53:29 -08:00
JonnyWong16
3fffbcbe36
Fix expanding child DataTables 2021-10-25 17:23:29 -07:00
JonnyWong16
ecb66f39c9
Add dynamic anonymous redirect service setting 2021-10-24 21:27:27 -07:00
JonnyWong16
c13b1a67f2
Don't save table search or page state
* Fixes #1532
2021-10-24 20:42:37 -07:00
JonnyWong16
acef75f10a
Fix arrow.timestamp() method 2021-10-22 11:07:05 -07:00
JonnyWong16
5a5e6b2f4e
Only set z-index for docker mount warning on welcome page 2021-10-21 19:59:29 -07:00
herby2212
c6ff8940b4
Add watch time and user stats to info pages (#1471)
* watch time stats for show

* watch time stats for movie

* User Stats for movies and shows

* implementation for missing media types

* cleanup

* no data + rescrict guest access implementation

Co-authored-by: herby2212 <jannes.nagel@gmx.de>
2021-10-21 17:33:29 -07:00
reloxx13
22f4b33087
Add clean_pyc.bat (#1527)
* Create clean_pyc.bat

Add pyc cleaner script for windows to clear all pyc cache files.
https://github.com/Tautulli/Tautulli/issues/1523#issuecomment-944938745

* Update clean_pyc.bat

fix comment

* Remove __pycache__ folders in clean_pyc scripts

Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com>
2021-10-21 17:30:17 -07:00
JonnyWong16
14d1ff65f4
Fix history Direct Stream filter button not selected on reloading page 2021-10-19 17:55:09 -07:00
JonnyWong16
b9d4f57a4e
Fix history Live TV filter when combined with other filters 2021-10-19 17:54:28 -07:00
JonnyWong16
d041c8a03b
Fix dataTables css capitalization 2021-10-19 11:59:42 -07:00
JonnyWong16
f4e1b762e9
Update all css and js references 2021-10-17 11:33:51 -07:00
JonnyWong16
73a4bb7640
Update Highcharts-9.2.2 2021-10-17 11:33:15 -07:00
JonnyWong16
a888b1818f
Update DataTables-1.11.3 2021-10-17 11:27:00 -07:00
JonnyWong16
3112f3dcad
Update jquery-3.6.0 2021-10-17 11:25:18 -07:00
JonnyWong16
5fd17040be
Fix total plays graph
* arrow.timestamp() function instead of attribute
2021-10-16 11:30:03 -07:00
JonnyWong16
2916749360
Revert "Remove MarkupSafe-2.0.1"
This reverts commit 5eb5fe8fba.
2021-10-16 09:55:35 -07:00
JonnyWong16
eb18b24bd6
Remove sgmllib3 2021-10-15 18:56:55 -07:00
JonnyWong16
bb45062fde
Fix Windows systray import 2021-10-15 18:56:43 -07:00
JonnyWong16
0888e58e5f
Update requirements.txt
* infi.systray from fork
2021-10-15 18:56:27 -07:00
JonnyWong16
c01b4da33d
Update infi.systray fork
From https://github.com/JonnyWong16/infi.systray.git@develop
2021-10-15 18:55:53 -07:00
JonnyWong16
94ef9b30c7
Add album and track exporter fields
* album.formats and album.subformats
* album.hasSonicAnalysis and track.hasSonicAnalysis
2021-10-15 18:14:36 -07:00
JonnyWong16
91e0d4b403
Revert "Restrict plexapi to Python>=3.7"
This reverts commit fdde2c6143.
2021-10-15 18:01:23 -07:00
JonnyWong16
c9675b2fde
Update package installers to Python 3.9 2021-10-15 17:33:34 -07:00
JonnyWong16
81d8d5e1ae
Combine package requirements into single file 2021-10-15 17:24:07 -07:00
JonnyWong16
60920101bf
Add importlib-resources==5.2.2 to package requirements 2021-10-15 17:22:57 -07:00
JonnyWong16
5eb5fe8fba
Remove MarkupSafe-2.0.1 2021-10-15 09:17:52 -07:00
JonnyWong16
ea398827cb
Downgrade tzlocal-2.1 2021-10-15 09:17:52 -07:00
JonnyWong16
5d46655507
Merge pull request #1521 from Tautulli/dependabot/pip/nightly/pywin32-302
Bump pywin32 from 301 to 302
2021-10-15 02:16:28 -07:00
dependabot[bot]
90f79fc4f9
Bump pywin32 from 301 to 302
Bumps [pywin32](https://github.com/mhammond/pywin32) from 301 to 302.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-15 09:11:47 +00:00
JonnyWong16
85e082b48b
Merge pull request #1519 from Tautulli/dependabot/pip/nightly/pycryptodomex-3.11.0
Bump pycryptodomex from 3.10.1 to 3.11.0
2021-10-15 02:10:57 -07:00
dependabot[bot]
df3882817a
Bump pycryptodomex from 3.10.1 to 3.11.0
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.10.1 to 3.11.0.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.10.1...v3.11.0)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-15 09:06:40 +00:00
JonnyWong16
274677a182
Merge pull request #1515 from Tautulli/dependabot/pip/nightly/pyopenssl-21.0.0
Bump pyopenssl from 20.0.1 to 21.0.0
2021-10-15 02:06:11 -07:00
JonnyWong16
0f07d42426
Merge pull request #1510 from Tautulli/dependabot/pip/nightly/apscheduler-3.8.0
Bump apscheduler from 3.7.0 to 3.8.0
2021-10-15 02:06:02 -07:00
JonnyWong16
6831174e62
Merge pull request #1502 from Tautulli/dependabot/github_actions/nightly/technote-space/workflow-conclusion-action-2.2
Bump technote-space/workflow-conclusion-action from 2.1.7 to 2.2
2021-10-15 02:05:54 -07:00
JonnyWong16
fc8448629e
Merge branch 'feature/requirements' into nightly 2021-10-15 02:03:47 -07:00
JonnyWong16
fdde2c6143
Restrict plexapi to Python>=3.7 2021-10-15 02:00:35 -07:00
JonnyWong16
1a70729243
Update MQTT notification agent 2021-10-15 02:00:35 -07:00
JonnyWong16
50aa8faa8d
Fix arrow get timestamp from integer 2021-10-15 02:00:35 -07:00
JonnyWong16
d2e84886f6
Fix jwt encoding 2021-10-15 02:00:35 -07:00
JonnyWong16
6d0fcf0970
Remove unused logger functions 2021-10-15 02:00:35 -07:00
JonnyWong16
5e6126ecbd
Fix system timezone string 2021-10-15 02:00:35 -07:00
JonnyWong16
04c54296fc
Update .gitignore 2021-10-15 02:00:35 -07:00
JonnyWong16
8cb8614911
Add requirements.txt 2021-10-15 02:00:35 -07:00
JonnyWong16
f0b700233f
Remove unused Python 2 libraries 2021-10-15 02:00:35 -07:00
JonnyWong16
53369cd8a6
Remove unnecessary lib files 2021-10-15 01:56:57 -07:00
JonnyWong16
afbfebbe59
Remove contextlib2 2021-10-15 01:56:57 -07:00
JonnyWong16
08faff47ce
Add MarkupSafe-2.0.1 2021-10-15 01:56:57 -07:00
JonnyWong16
7d74869316
Add zipp-3.6.0 2021-10-15 01:56:57 -07:00
JonnyWong16
f238343aa2
Add importlib-resources-5.2.2 2021-10-15 01:56:57 -07:00
JonnyWong16
b09faab852
Add tzdata-2021.2.post0 2021-10-15 01:56:57 -07:00
JonnyWong16
607b6fa250
Update tzlocal windows mappings 2021-10-15 01:56:57 -07:00
JonnyWong16
912912dbf9
Update tokenize-rt-4.1.0 2021-10-15 01:56:57 -07:00
JonnyWong16
41ef595edc
Update xmltodict-0.12.0 2021-10-15 01:56:57 -07:00
JonnyWong16
7dd3963bf2
Update facebook-sdk-3.1.0 2021-10-15 01:56:57 -07:00
JonnyWong16
586f033347
Update python-twitter-3.5 2021-10-15 01:56:57 -07:00
JonnyWong16
cdeff390d9
Update simplejson-3.17.5 2021-10-15 01:56:57 -07:00
JonnyWong16
f165d2d080
Update requests-oauthlib-1.3.0 2021-10-15 01:56:57 -07:00
JonnyWong16
e55576fd80
Update gntp-1.0.3 2021-10-15 01:56:57 -07:00
JonnyWong16
624ae06b35
Add backports.zoneinfo-0.2.1 2021-10-15 01:56:57 -07:00
JonnyWong16
9ba5656ad8
Update backports.functools-lru-cache-1.6.4 2021-10-15 01:56:57 -07:00
JonnyWong16
0770a301c7
Update python-plexapi-4.7.2 2021-10-14 23:18:51 -07:00
JonnyWong16
c8b02b06d6
Update six-1.16.0 2021-10-14 23:18:51 -07:00
JonnyWong16
db79e050c2
Update IPy-1.01 2021-10-14 23:18:51 -07:00
JonnyWong16
f6f6421154
Update distro-1.6.0 2021-10-14 23:18:51 -07:00
JonnyWong16
eca3fac3ea
Update contextlib2-21.6.0 2021-10-14 23:18:51 -07:00
JonnyWong16
aa127ecbda
Update websocket-client-1.2.1 2021-10-14 23:18:51 -07:00
JonnyWong16
c67f18d65c
Update tzlocal-3.0 2021-10-14 23:18:51 -07:00
JonnyWong16
9d78e6ae4c
Update pytz-2021.3 2021-10-14 23:18:51 -07:00
JonnyWong16
d76838a607
Update oauthlib-3.1.1 2021-10-14 23:18:51 -07:00
JonnyWong16
e58aa40099
Update httpagentparser-1.9.1 2021-10-14 23:18:51 -07:00
JonnyWong16
586fd15464
Update html5lib-1.1 2021-10-14 23:18:51 -07:00
JonnyWong16
3a116486e7
Update phao-mqtt-1.5.1 2021-10-14 23:18:51 -07:00
JonnyWong16
d2c14f11ae
Update musicbrainzngs-0.7.1 2021-10-14 23:18:51 -07:00
JonnyWong16
668f6bfbb8
Update Mako-1.1.5 2021-10-14 23:18:51 -07:00
JonnyWong16
4eb0fea423
Update PyJWT-2.2.0 2021-10-14 23:18:51 -07:00
JonnyWong16
b55b053b1e
Patch ipwhois host lookup
* Args need to be unpacked into the namedtuple
2021-10-14 23:18:51 -07:00
JonnyWong16
2c4cc34b2b
Update ipwhois-1.2.0 2021-10-14 23:18:51 -07:00
JonnyWong16
4d62245cf5
Update dnspython-2.2.0 2021-10-14 23:18:51 -07:00
JonnyWong16
4b28040d59
Update cloudinary-1.26.0 2021-10-14 23:18:51 -07:00
JonnyWong16
ebffd124f6
Update cherrypy-18.6.1 2021-10-14 23:18:51 -07:00
JonnyWong16
b3ae6bd695
Update jaraco.functools-3.3.0 2021-10-14 23:18:51 -07:00
JonnyWong16
979c70f129
Add jaraco.collections-3.4.0 2021-10-14 23:18:51 -07:00
JonnyWong16
ff764e1065
Add jaraco.text-3.5.1 2021-10-14 23:18:51 -07:00
JonnyWong16
fed42da9bb
Add jaraco.classes-3.2.1 2021-10-14 23:18:51 -07:00
JonnyWong16
182e5f553e
Update cheroot-8.5.2 2021-10-14 23:18:51 -07:00
JonnyWong16
4ac151d7de
Update more-itertools-8.10.0 2021-10-14 23:18:51 -07:00
JonnyWong16
a94edb4644
Update tempora-4.1.2 2021-10-14 23:18:51 -07:00
JonnyWong16
edd2f21ce1
Update portend-3.0.0 2021-10-14 23:18:51 -07:00
JonnyWong16
f3f4f9edf6
Update requests-2.26.0 2021-10-14 23:18:51 -07:00
JonnyWong16
b6595232d2
Update urllib3-1.26.7 2021-10-14 23:18:51 -07:00
JonnyWong16
a3bfabb5f6
Update idna-3.3 2021-10-14 23:18:51 -07:00
JonnyWong16
2f1a08009f
Add charset_normalizer-2.0.7 2021-10-14 23:18:51 -07:00
JonnyWong16
4c25cc3cc2
Remove chardet-3.0.4 2021-10-14 23:18:51 -07:00
JonnyWong16
41df696772
Update certifi-2021.10.8 2021-10-14 23:18:51 -07:00
JonnyWong16
a4130d6c56
Update bleach-4.1.0 2021-10-14 23:18:51 -07:00
JonnyWong16
4086529906
Add packaging-21.0 2021-10-14 23:18:51 -07:00
JonnyWong16
d6f94aaa8b
Add webencodings-0.5.1 2021-10-14 23:18:51 -07:00
JonnyWong16
82ed09cac9
Add pyparsing-2.4.7 2021-10-14 23:18:51 -07:00
JonnyWong16
ab8fa4d5b3
Update beautifulsoup4-4.10.0 2021-10-14 23:18:51 -07:00
JonnyWong16
b581460b51
Update soupsieve-2.2.1 2021-10-14 23:18:51 -07:00
JonnyWong16
9a54fb9a44
Update arrow-1.2.0 2021-10-14 23:18:51 -07:00
JonnyWong16
3b645cf6c3
Update datutil-2.8.2 2021-10-14 23:18:51 -07:00
JonnyWong16
439ca8ebb8
Add typing-extensions-3.10.0.2 2021-10-14 23:18:51 -07:00
JonnyWong16
dd32f1e5b4
Update apshceduler-3.8.0 2021-10-14 23:18:51 -07:00
JonnyWong16
ec3702c358
Update appdirs-1.4.4 2021-10-14 23:18:51 -07:00
JonnyWong16
5f22ad26ad
v2.7.7 2021-10-14 23:15:26 -07:00
JonnyWong16
9850025eef
Uncenter manual recently added notification agent selection dropdown 2021-10-14 22:52:43 -07:00
JonnyWong16
e34e775f41
Set different client ID when fetching a new Plex token 2021-10-11 21:24:58 -07:00
JonnyWong16
ef8557b50a
Keep docker mount log message when check is disabled 2021-10-09 16:51:18 -07:00
JonnyWong16
a49175b3b1
Add advanced setting to disable docker mount check 2021-10-09 16:42:35 -07:00
JonnyWong16
f4073c30ac
Move docker mount log message 2021-10-09 16:35:10 -07:00
JonnyWong16
9d4d740e8a
Add docker mount warning log message on startup 2021-10-09 16:15:38 -07:00
JonnyWong16
8f3a108f3b
Add docker mount warning message 2021-10-09 16:11:21 -07:00
JonnyWong16
92440224de
Add Android and Apple icon to Tautulli Remote App settings tab 2021-10-04 18:31:01 -07:00
dependabot[bot]
1eeddc876c
Bump pyopenssl from 20.0.1 to 21.0.0
Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 20.0.1 to 21.0.0.
- [Release notes](https://github.com/pyca/pyopenssl/releases)
- [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/pyopenssl/compare/20.0.1...21.0.0)

---
updated-dependencies:
- dependency-name: pyopenssl
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-29 17:12:18 +00:00
JonnyWong16
6ba550531e
Fix star rating on newsletter template
* Plex change from critic rating to audience rating
* Fixes #1511
2021-09-27 10:01:05 -07:00
JonnyWong16
9fddcf3057
Fix replacement of colon and exclamation outside of eval expression 2021-09-27 00:50:25 -07:00
dependabot[bot]
9cb904419f
Bump apscheduler from 3.7.0 to 3.8.0
Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/3.8.0/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/v3.7.0...3.8.0)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-24 17:16:26 +00:00
JonnyWong16
830ef460af
Add LunaSea notification agent 2021-09-19 20:22:29 -07:00
JonnyWong16
3a5bf646ec
Fix dropdown text left aligned 2021-09-14 17:51:54 -07:00
JonnyWong16
11a5075574
Dockerfile make config folder first 2021-09-13 16:59:39 -07:00
JonnyWong16
6a1225925e
Add docker config file to detect bind mount 2021-09-13 16:10:07 -07:00
JonnyWong16
c8d8075830
Change docker base image to ghcr.io 2021-09-13 16:09:32 -07:00
JonnyWong16
8d70c4b9da
Fix return value of get_recently_added_details when exception 2021-09-13 16:05:49 -07:00
JonnyWong16
0fe422b71d
Fix sorting of mobile devices table 2021-09-10 10:05:02 -07:00
dependabot[bot]
b82b1cdfd5
Bump technote-space/workflow-conclusion-action from 2.1.7 to 2.2
Bumps [technote-space/workflow-conclusion-action](https://github.com/technote-space/workflow-conclusion-action) from 2.1.7 to 2.2.
- [Release notes](https://github.com/technote-space/workflow-conclusion-action/releases)
- [Changelog](https://github.com/technote-space/workflow-conclusion-action/blob/main/.releasegarc)
- [Commits](https://github.com/technote-space/workflow-conclusion-action/compare/v2.1.7...v2.2)

---
updated-dependencies:
- dependency-name: technote-space/workflow-conclusion-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-09-06 17:12:43 +00:00
JonnyWong16
db90b8ad18
v2.7.6 2021-08-31 13:46:21 -07:00
JonnyWong16
1a18d63ea5
Update Tautulli Remote App Store link 2021-08-31 09:32:26 -07:00
JonnyWong16
09eba5d8b5
Add startup error alert message 2021-08-27 14:17:16 -07:00
JonnyWong16
0fbb28eca2
Don't stale PRs in review
[skip ci]
2021-08-27 12:49:51 -07:00
JonnyWong16
fd2c23a016
Speed up docker startup
* Only chown files with incorrect permissions
2021-08-25 17:34:33 -07:00
JonnyWong16
9bfcde3abb
Change QR background to "not-white" 2021-08-19 11:35:25 -07:00
JonnyWong16
fee25a6aea
Update QR code generation with kjua 2021-08-19 09:51:26 -07:00
JonnyWong16
27cacb7a8f
Add kjua for QR code 2021-08-19 09:50:04 -07:00
JonnyWong16
c1cf18ad24
Remove jquery.qrcode 2021-08-19 09:49:54 -07:00
JonnyWong16
3a68080a26
Remove x264 from HW encoders 2021-08-19 09:19:04 -07:00
JonnyWong16
a1a340f4e8
Merge pull request #1463 from Tautulli/dependabot/pip/nightly/pyobjc-framework-cocoa-7.3
Bump pyobjc-framework-cocoa from 6.2.2 to 7.3
2021-08-15 18:12:56 -07:00
dependabot[bot]
b5de25f8a4
Bump pyobjc-framework-cocoa from 6.2.2 to 7.3
Bumps [pyobjc-framework-cocoa](https://github.com/ronaldoussoren/pyobjc) from 6.2.2 to 7.3.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v6.2.2...v7.3)

---
updated-dependencies:
- dependency-name: pyobjc-framework-cocoa
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 01:06:29 +00:00
JonnyWong16
6b27b673cb
Merge pull request #1458 from Tautulli/dependabot/pip/nightly/pyobjc-core-7.3
Bump pyobjc-core from 6.2.2 to 7.3
2021-08-15 17:16:04 -07:00
JonnyWong16
36bab1785f
Merge pull request #1485 from Tautulli/dependabot/pip/nightly/pyinstaller-4.5.1
Bump pyinstaller from 4.2 to 4.5.1
2021-08-15 17:11:24 -07:00
dependabot[bot]
855bf2334e
Bump pyinstaller from 4.2 to 4.5.1
Bumps [pyinstaller](https://github.com/pyinstaller/pyinstaller) from 4.2 to 4.5.1.
- [Release notes](https://github.com/pyinstaller/pyinstaller/releases)
- [Changelog](https://github.com/pyinstaller/pyinstaller/blob/v4.5.1/doc/CHANGES.rst)
- [Commits](https://github.com/pyinstaller/pyinstaller/compare/v4.2...v4.5.1)

---
updated-dependencies:
- dependency-name: pyinstaller
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-16 00:09:36 +00:00
JonnyWong16
998630d40c
Merge pull request #1466 from Tautulli/dependabot/pip/nightly/apscheduler-3.7.0
Bump apscheduler from 3.6.3 to 3.7.0
2021-08-15 17:00:27 -07:00
dependabot[bot]
70d7a307d6
Bump pyobjc-core from 6.2.2 to 7.3
Bumps [pyobjc-core](https://github.com/ronaldoussoren/pyobjc) from 6.2.2 to 7.3.
- [Release notes](https://github.com/ronaldoussoren/pyobjc/releases)
- [Changelog](https://github.com/ronaldoussoren/pyobjc/blob/master/docs/changelog.rst)
- [Commits](https://github.com/ronaldoussoren/pyobjc/compare/v6.2.2...v7.3)

---
updated-dependencies:
- dependency-name: pyobjc-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-15 23:57:44 +00:00
dependabot[bot]
e44d69316f
Bump apscheduler from 3.6.3 to 3.7.0
Bumps [apscheduler](https://github.com/agronholm/apscheduler) from 3.6.3 to 3.7.0.
- [Release notes](https://github.com/agronholm/apscheduler/releases)
- [Changelog](https://github.com/agronholm/apscheduler/blob/master/docs/versionhistory.rst)
- [Commits](https://github.com/agronholm/apscheduler/compare/v3.6.3...v3.7.0)

---
updated-dependencies:
- dependency-name: apscheduler
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-15 23:57:44 +00:00
JonnyWong16
474b4f3cfe
Merge pull request #1464 from Tautulli/dependabot/pip/nightly/pycryptodomex-3.10.1
Bump pycryptodomex from 3.9.9 to 3.10.1
2021-08-15 16:57:07 -07:00
JonnyWong16
f92587c4f9
Merge pull request #1465 from Tautulli/dependabot/github_actions/nightly/actions/stale-4
Bump actions/stale from 3 to 4
2021-08-15 16:55:21 -07:00
JonnyWong16
ebb82eaecc
Merge branch 'nightly' into dependabot/github_actions/nightly/actions/stale-4 2021-08-15 16:54:27 -07:00
JonnyWong16
d17432460d
Remove skip-stale-issue-message and skip-stale-pr-message 2021-08-15 16:53:43 -07:00
JonnyWong16
4e0bb34d6c
Merge pull request #1462 from Tautulli/dependabot/github_actions/nightly/technote-space/workflow-conclusion-action-2.1.7
Bump technote-space/workflow-conclusion-action from 1 to 2.1.7
2021-08-15 16:50:19 -07:00
JonnyWong16
9410f46446
Merge pull request #1460 from Tautulli/dependabot/github_actions/nightly/joncloud/makensis-action-3.6
Bump joncloud/makensis-action from 3.4 to 3.6
2021-08-15 16:46:36 -07:00
dependabot[bot]
f02820a2c1
Bump pycryptodomex from 3.9.9 to 3.10.1
Bumps [pycryptodomex](https://github.com/Legrandin/pycryptodome) from 3.9.9 to 3.10.1.
- [Release notes](https://github.com/Legrandin/pycryptodome/releases)
- [Changelog](https://github.com/Legrandin/pycryptodome/blob/master/Changelog.rst)
- [Commits](https://github.com/Legrandin/pycryptodome/compare/v3.9.9...v3.10.1)

---
updated-dependencies:
- dependency-name: pycryptodomex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-15 23:40:29 +00:00
JonnyWong16
cafce3afe1
Merge pull request #1486 from Tautulli/dependabot/pip/package/pywin32-301
Bump pywin32 from 300 to 301 in /package
2021-08-15 16:39:46 -07:00
JonnyWong16
4d230e3a6b
Merge pull request #1483 from TheMeanCanEHdian/nightly
Convert issue templates to forms.
[skip ci]
2021-08-15 16:39:18 -07:00
JonnyWong16
5d05f6826a
Add new episode exporter fields 2021-08-15 15:28:01 -07:00
JonnyWong16
3fe77932a0
Update PlexAPI to 4.6.3 2021-08-15 15:23:53 -07:00
JonnyWong16
4ec8ef3ab3
Fix exporting collections and playlists
Fixes #1484
2021-08-15 15:17:20 -07:00
JonnyWong16
fd9ed1291d
Ignore dependencies for stale workflow
[skip ci]
2021-08-15 15:10:01 -07:00
dependabot[bot]
d5ea507bac
Bump pywin32 from 300 to 301 in /package
Bumps [pywin32](https://github.com/mhammond/pywin32) from 300 to 301.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/master/CHANGES.txt)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-09 20:57:11 +00:00
TheMeanCanEHdian
f28a4e92b4 Update various formatting items.
- Change `ex.` to `eg.`
- Move non-example placeholders to descriptions
- Add description to Steps to Reproduce & Relevant Settings
2021-08-07 11:17:23 -05:00
TheMeanCanEHdian
2aaa15793a Fix formatting of placeholders and use descriptions. 2021-08-07 10:25:14 -05:00
TheMeanCanEHdian
c06c046c48 Convert issue templates to forms. 2021-08-07 10:12:30 -05:00
JonnyWong16
670d2b31f7
Replace colon and exclamation in notification eval expression 2021-07-28 18:15:51 -07:00
JonnyWong16
05a00e9872
Fix colon in notification text eval being parsed as format specifier 2021-07-28 17:43:21 -07:00
JonnyWong16
3c1417108d
Use hmac compare_digest to check password 2021-07-22 17:47:27 -07:00
JonnyWong16
81ff471149
Fix typo in newsletter config 2021-07-22 17:46:52 -07:00
JonnyWong16
e0077f9386
Fix changelog headers 2021-07-15 13:33:24 -07:00
dependabot[bot]
608232a195
Bump actions/stale from 3 to 4
Bumps [actions/stale](https://github.com/actions/stale) from 3 to 4.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-15 20:24:13 +00:00
dependabot[bot]
150aa7b2e7
Bump technote-space/workflow-conclusion-action from 1 to 2.1.7
Bumps [technote-space/workflow-conclusion-action](https://github.com/technote-space/workflow-conclusion-action) from 1 to 2.1.7.
- [Release notes](https://github.com/technote-space/workflow-conclusion-action/releases)
- [Changelog](https://github.com/technote-space/workflow-conclusion-action/blob/master/.releasegarc)
- [Commits](https://github.com/technote-space/workflow-conclusion-action/compare/v1...v2.1.7)

---
updated-dependencies:
- dependency-name: technote-space/workflow-conclusion-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-15 20:24:08 +00:00
dependabot[bot]
6a408ea12a
Bump joncloud/makensis-action from 3.4 to 3.6
Bumps [joncloud/makensis-action](https://github.com/joncloud/makensis-action) from 3.4 to 3.6.
- [Release notes](https://github.com/joncloud/makensis-action/releases)
- [Commits](https://github.com/joncloud/makensis-action/compare/v3.4...v3.6)

---
updated-dependencies:
- dependency-name: joncloud/makensis-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-15 20:24:03 +00:00
JonnyWong16
5fbe9d476b
v2.7.5 2021-07-15 13:22:54 -07:00
JonnyWong16
73001a4427
Check for HTTP Basic Auth in AuthController 2021-07-15 13:21:09 -07:00
JonnyWong16
cc1092a8a2
Add Tautulli Remote iOS TestFlight badge 2021-07-15 13:05:17 -07:00
JonnyWong16
9f3ece4279
Add dependabot
[skip ci]
2021-07-08 20:48:21 -07:00
JonnyWong16
2ea4b6b63d
Remove basic auth setting 2021-07-08 20:22:02 -07:00
JonnyWong16
fe765f7827
Update fixed label comment action
[skip ci]
2021-07-03 18:48:23 -07:00
JonnyWong16
5c885a7e57
Remove clear logs button from settings 2021-07-02 15:14:31 -07:00
JonnyWong16
3422a99fc5
Remove duplicates from Imgur and Cloudinary lookup tables 2021-07-01 16:58:18 -07:00
JonnyWong16
c6548c80b3
Fix deleted libraries adding to watch statistics
* Fixes #1456
2021-07-01 16:31:50 -07:00
JonnyWong16
f7fc16a1d8
Don't hash a blank password when removing authentication
* Fixes #1455
2021-07-01 10:52:22 -07:00
JonnyWong16
5a4ee2179a
Fix guest session user ID in history query
* Fixes #1454
2021-07-01 10:41:33 -07:00
JonnyWong16
1f87799e57
Improve token security for Python 3 2021-07-01 09:21:46 -07:00
JonnyWong16
b4598dca20
Update remote app notification agent platform specific settings 2021-06-30 18:01:39 -07:00
JonnyWong16
15c7212031
Add option group type to notifier and newsletter config modal 2021-06-30 17:43:48 -07:00
JonnyWong16
741f3d836a
Rename Tautulli android app to remote app 2021-06-27 12:45:32 -07:00
JonnyWong16
bde2372d90
Add platform and version to mobile devices 2021-06-27 11:46:47 -07:00
JonnyWong16
c0837defed
Fix padding on newsletter config modal 2021-06-27 10:51:04 -07:00
JonnyWong16
9476897527
v2.7.4 2021-06-19 11:45:57 -07:00
JonnyWong16
eb46ff41fc
Show search bar in collapsed navbar
* Fixes #1446
2021-06-18 11:05:10 -07:00
JonnyWong16
fe034d97b1
Fix blank columns not added to csv / json export 2021-06-18 10:01:06 -07:00
JonnyWong16
e99063d6c0
Test data folder writable with file
* Fixes #1441
2021-06-18 09:40:17 -07:00
JonnyWong16
394a411167
Don't hash a blank password 2021-06-17 09:29:02 -07:00
JonnyWong16
6085eec8c2
Update exporter fields 2021-06-15 22:25:59 -07:00
JonnyWong16
fec17a7344
Update PlexAPI to 4.6.1 2021-06-15 22:12:59 -07:00
JonnyWong16
b0a395ad0b
Always hash http password 2021-06-15 21:09:37 -07:00
JonnyWong16
dff9a56950
Add len function to notification expressions 2021-06-09 15:40:35 -07:00
JonnyWong16
9ca5d81b60
Update graphs SQL queries to match homepage 2021-06-05 12:25:12 -07:00
JonnyWong16
98b4fa41a7
Don't show seconds in users / libraries total duration 2021-06-05 10:29:09 -07:00
JonnyWong16
fcc70a9b74
Fix rounding of seconds in user / library watch time stats 2021-06-05 10:28:45 -07:00
JonnyWong16
b9c1dccf48
Fix rounding of seconds on home stats 2021-06-05 09:48:39 -07:00
JonnyWong16
092d858b12
Update library and user watch time query to match homepage 2021-06-05 08:54:13 -07:00
JonnyWong16
895d67fad3
Patch ipwhois host lookup
* Args need to be unpacked into the namedtuple
2021-06-02 11:31:14 -07:00
JonnyWong16
1d0ece57c9
Fix notification agent help text tab links 2021-06-02 11:30:30 -07:00
JonnyWong16
41dfd27ff7
Add reveal button to setup wizard password field 2021-05-28 18:21:06 -07:00
JonnyWong16
80a836e3e0
Don't append notification children if failed to retrieve metadata 2021-05-26 17:54:49 -07:00
JonnyWong16
45879d0049
Add documentation for notification text expressions 2021-05-25 12:22:48 -07:00
JonnyWong16
93ed5c5eb8
Helper round ndigits is optional 2021-05-25 11:54:17 -07:00
JonnyWong16
843f7bcabe
Fix article typo in condition tilde help text 2021-05-25 11:28:06 -07:00
JonnyWong16
4fa0aafcc1 Fix limit quality profile to source bitrate 2021-05-25 11:25:18 -07:00
JonnyWong16
70e88a9013 Add tilde for blank condition values 2021-05-25 11:25:18 -07:00
JonnyWong16
a2b2d1d227 Replace eval functions with helpers to catch exceptions 2021-05-25 11:25:18 -07:00
JonnyWong16
3510224cde
Fix notification param prefix/suffix without literal text 2021-05-24 16:52:33 -07:00
JonnyWong16
006cfd1ffa
Allow < and > in string eval 2021-05-24 13:22:19 -07:00
JonnyWong16
d9f702e7f2
Add ability to evaluate math in notification text 2021-05-24 12:53:41 -07:00
JonnyWong16
be86ddbec0
v2.7.3 2021-05-22 21:16:41 -07:00
JonnyWong16
fc2ab8be25
Set themoviedb lookup rating key 2021-05-19 21:43:32 -07:00
JonnyWong16
2ea8ac133a Fix hidden and advanced settings css 2021-05-16 16:32:13 -07:00
JonnyWong16
cf0cc36b15 Expose Tautulli update check interval setting 2021-05-16 16:32:13 -07:00
JonnyWong16
28439b5042 Change check GitHub interval to hours 2021-05-16 16:32:13 -07:00
JonnyWong16
b8d0bbe930 Add settings to toggle repeat update notifications 2021-05-16 16:32:13 -07:00
JonnyWong16
0659e60720 Check for existing notify tag for PMS and Tautulli update notifications 2021-05-16 16:32:13 -07:00
JonnyWong16
e0a85e2391 Add tag to notify_log database table 2021-05-16 16:32:13 -07:00
JonnyWong16
2bc25c459f Fix incorrect quality profile when transcoding increases bitrate 2021-05-16 16:32:13 -07:00
JonnyWong16
e5da3423e9
Add duration in seconds to notification parameters
Fixes #1434
2021-05-14 16:23:13 -07:00
JonnyWong16
35b69b8cfc
Update label workflows
[skip ci]
2021-05-14 16:00:02 -07:00
JonnyWong16
40b1aa0737
Update pull request template
[skip ci]
2021-05-14 14:43:20 -07:00
JonnyWong16
f6083b12ba
Redirect to logout when clearing login logs 2021-05-14 14:10:28 -07:00
JonnyWong16
add1b4ec54 Add expiry and sign out button to login logs 2021-05-14 14:03:05 -07:00
JonnyWong16
8db75cf718 Add method to logout user sessions 2021-05-14 14:03:05 -07:00
JonnyWong16
da1c342971 Store JWT token in database 2021-05-14 14:03:05 -07:00
JonnyWong16
6c34e2cb22
Update doc strings for edit_user and edit_library for required params
* Fixes #1432
2021-05-06 18:46:32 -07:00
JonnyWong16
897f415695
Restore title argument to recently added queue jobs
* Fixes #1429
2021-05-06 18:43:22 -07:00
JonnyWong16
29637fe5cc
Add do not upload attachments to issues template
[skip ci]
2021-05-06 13:26:47 -07:00
JonnyWong16
5f8b99e7ef
Merge pull request #1425 from psaab/thread_pool
Add config for CheryPy Thread Pool Size
2021-05-03 10:20:56 -07:00
Paul Saab
5becbd91d4 Config for CheryPy Thread Pool Size
In some instances, a static thread pool size of 10 is too small.
Provide a way to modify this via the config.
2021-05-03 10:17:03 -07:00
JonnyWong16
bb44341535
Quote strings in stale issues workflow
[skip ci]
2021-05-01 23:00:11 -07:00
JonnyWong16
bc921e6f34
Add stale issues workflow
[skip ci]
2021-05-01 22:54:20 -07:00
JonnyWong16
18b4084ae1
Remove stale issues bot
[skip ci]
2021-05-01 22:54:07 -07:00
JonnyWong16
b87bd1dab2
Add stale issues bot
[skip ci]
2021-04-29 12:00:34 -07:00
JonnyWong16
fc3a81a622
Prevent closing modals when mouse drags outside 2021-04-29 10:01:54 -07:00
JonnyWong16
6a575824ef
Show collections tab for music libraries
* Hide collections tab for photo libraries
* Fixes #1421
2021-04-28 12:38:42 -07:00
JonnyWong16
613f70886e
Change date calculation for watch statistics 2021-04-28 12:24:02 -07:00
JonnyWong16
23e177d1d3
Update graph headers 2021-04-25 14:09:58 -07:00
JonnyWong16
1a48829d23
Add check for release commit hash 2021-04-24 08:56:18 -07:00
JonnyWong16
39ad3f9047
v2.7.2 2021-04-24 08:24:02 -07:00
JonnyWong16
7b08e3a2a7
Update info pages for smart collections 2021-04-23 14:56:59 -07:00
JonnyWong16
cc18b1b177
Display smart collection cog icon in collections table 2021-04-23 14:56:42 -07:00
JonnyWong16
feb8d355c7
Patch PlexAPI for displaying smart collections 2021-04-23 14:55:44 -07:00
JonnyWong16
0f9fb9deb7
Retrieve collection thumb instead of composite 2021-04-23 14:29:07 -07:00
JonnyWong16
bd53c19bf3
v2.7.1 2021-04-22 18:13:58 -07:00
JonnyWong16
b692389736
Cast rating keys to int for recently added queue
Fixes #1420
2021-04-22 18:01:21 -07:00
JonnyWong16
07ccd2af96
Ignore items with future added at dates in newsletter 2021-04-22 17:40:59 -07:00
JonnyWong16
abdde65c2e
Remove clear logs button from UI 2021-04-22 15:55:09 -07:00
JonnyWong16
b6ccce89bc
Fix graph tabs button css on mobile layout 2021-04-22 15:53:49 -07:00
JonnyWong16
f5fc07f192
Rename graph tabs and headers 2021-04-22 15:53:49 -07:00
JonnyWong16
653be526de
Update issues label action 2021-04-11 17:03:58 -07:00
JonnyWong16
c88083aef2
Rename PlexServer attribute 2021-04-11 12:58:37 -07:00
JonnyWong16
dae6c075d1
Remove all unused Plex token functions 2021-04-10 18:50:27 -07:00
JonnyWong16
4ed22d96d0
Add Issue ref # to changelog 2021-04-10 11:41:21 -07:00
JonnyWong16
c780f1fd6c
v2.7.0 2021-04-10 10:44:17 -07:00
JonnyWong16
40e0db4f70
Reveal token input fields if blank 2021-04-10 10:35:58 -07:00
JonnyWong16
74b4e45915
Update PlexAPI to 4.5.2 2021-04-05 13:57:16 -07:00
JonnyWong16
f6ca1dfa28
Add reveal button to GitHub API Token setting 2021-04-05 13:55:22 -07:00
JonnyWong16
e6c193772c
Fix sorting episodes in newsletter with missing season number 2021-04-05 12:19:21 -07:00
JonnyWong16
5cd0d31b00
Fix activity card progress bar width
* Fixes #1404
2021-04-04 19:37:32 -07:00
JonnyWong16
1eaf7ca151
v2.7.0-beta 2021-04-03 11:41:56 -07:00
JonnyWong16
7045597c61
Add Plex server down notification threshold setting 2021-04-03 11:34:53 -07:00
JonnyWong16
802dfe10be
Change all delete/edit warnings to tooltips 2021-04-02 20:55:12 -07:00
JonnyWong16
dfb2853dc5
Adjust button bar on mobile layout 2021-04-02 20:21:28 -07:00
JonnyWong16
76e8523ae4
Make history filter multi-select on other pages 2021-04-02 16:25:26 -07:00
JonnyWong16
73496c5075
Change history filters to multi-select 2021-04-02 12:35:24 -07:00
JonnyWong16
57d3be6f69
Allow comma separated parameters for get_history 2021-04-02 12:02:00 -07:00
JonnyWong16
1311f688f2
Add split strip helper function 2021-04-02 12:02:00 -07:00
JonnyWong16
5197418cb8
Use datatables helper for total_duration query 2021-04-02 11:43:23 -07:00
JonnyWong16
9b4f4b8ae4
Refactor datatables static methods 2021-04-02 11:42:48 -07:00
JonnyWong16
b32b1bae7c
Fix direct stream filter on history tables 2021-04-02 10:51:28 -07:00
JonnyWong16
1615a73da9
Don't retrieve metadata for recently added before it is available
* Fixes #1392
2021-04-02 10:33:37 -07:00
JonnyWong16
0ff2fd91d5
Update Microsoft Edge platform icon 2021-04-01 16:43:18 -07:00
JonnyWong16
5e03d6b922
Add Alexa rgba colour 2021-04-01 16:31:11 -07:00
JonnyWong16
25db370f9d
Add Amazon Alexa platform icon 2021-04-01 15:32:55 -07:00
JonnyWong16
63b363dfe4
Make update metadata music match case insensitive 2021-04-01 15:31:38 -07:00
JonnyWong16
7d509b2e8e
Add logging for update metadata 2021-04-01 10:36:18 -07:00
JonnyWong16
a3ff434f2d
Move section_id in update_metadata_details 2021-03-31 19:55:17 -07:00
JonnyWong16
323a13ae17
Add Plex token check and error message to settings page 2021-03-29 16:15:40 -07:00
JonnyWong16
bb1d324ac2
Add all raw unexposed notification parameters 2021-03-29 15:21:21 -07:00
JonnyWong16
5d09a5352d
Rename use ssl to use secure connection 2021-03-29 15:00:43 -07:00
JonnyWong16
c74b380f99
Add transcode decision selection to history tables 2021-03-29 13:22:43 -07:00
JonnyWong16
0b1c4691dc
Trim trailing slash on base url setting 2021-03-29 11:23:44 -07:00
JonnyWong16
bd6dd74518
Add guid notification parameter 2021-03-29 10:59:11 -07:00
JonnyWong16
98ad8693b0
Skip importing version_info table 2021-03-29 00:22:53 -07:00
JonnyWong16
5ca5f24a66
Copy database path to cache and delete after importing 2021-03-29 00:20:55 -07:00
JonnyWong16
0f2dbf2c94
Migrate database on import 2021-03-29 00:20:55 -07:00
JonnyWong16
b3a7850b55
Add version info to database 2021-03-29 00:20:55 -07:00
JonnyWong16
01c4f45b77
Exclude activity from history table modal 2021-03-28 19:07:25 -07:00
JonnyWong16
8928a3c901
Fix history table modal loading 2021-03-28 18:52:41 -07:00
JonnyWong16
31144c1ed4
Patch bootstrap tooltips
* https://github.com/twbs/bootstrap/issues/21830#issuecomment-298294889
2021-03-28 17:45:51 -07:00
JonnyWong16
9b519ac884
Update most active libraries query 2021-03-27 22:33:59 -07:00
JonnyWong16
62fe591d19
Update session_history table indices stopped asc 2021-03-27 21:54:08 -07:00
JonnyWong16
3136e0c82f
Add more database indices 2021-03-27 21:37:05 -07:00
JonnyWong16
6086e84630
Migrate section_id to session_history table 2021-03-27 21:35:05 -07:00
JonnyWong16
6d13051b1e
Optimize library watch time query 2021-03-27 19:54:21 -07:00
JonnyWong16
7442e53c6c
Optimize user watch time query 2021-03-27 19:54:12 -07:00
JonnyWong16
dca5a534fd
Optimize home stats queries 2021-03-27 19:49:44 -07:00
JonnyWong16
6b9cbc0a7a
Create session_history database indices 2021-03-27 19:49:03 -07:00
JonnyWong16
3db0a07fd2
Add optional include_last_accessed parameter to get_library 2021-03-27 18:03:36 -07:00
JonnyWong16
88cae2b0dc
Add optional include_last_seen parameter to get_user 2021-03-27 18:03:07 -07:00
JonnyWong16
c3f9072e21
Update readme header 2021-03-26 12:08:38 -07:00
JonnyWong16
adc11bc232
Fix get_library when last_accessed is null 2021-03-26 08:41:09 -07:00
JonnyWong16
52fad05feb
Fix get_user when last_seen is null 2021-03-26 08:40:57 -07:00
JonnyWong16
1413733271
Remove unused jquery cachedScript 2021-03-25 23:48:04 -07:00
JonnyWong16
4530e816b0
Add last_accessed to get_library response 2021-03-25 19:21:58 -07:00
JonnyWong16
b6f4c2e945
Add last_seen to get_user response 2021-03-25 19:07:46 -07:00
JonnyWong16
d46d0900cb
Update all user thumbs to pms_image_proxy 2021-03-25 18:14:26 -07:00
JonnyWong16
8ade73fa35
Fix refreshing images in browser 2021-03-25 18:13:01 -07:00
JonnyWong16
3a520405c4
Add image type option to remote app notifications 2021-03-25 16:39:52 -07:00
JonnyWong16
7ebed4ffd7
Reorganize get user/library details 2021-03-22 10:29:35 -07:00
JonnyWong16
1ff6a54d70
Also check for linkLocal IP addresses 2021-03-22 10:27:25 -07:00
JonnyWong16
bc47f9abd7
Update pms_image_proxy docs with user fallback 2021-03-22 10:05:38 -07:00
JonnyWong16
db1ba94578
Simplify isPrivateIP check 2021-03-22 10:05:14 -07:00
JonnyWong16
12350d6b54
Update ipaddr.js 2021-03-22 10:04:36 -07:00
JonnyWong16
ace9f7c294
Fix spacing of rating images on media page 2021-03-21 17:50:45 -07:00
JonnyWong16
cba4c00ca0
Add valid OneSignal ID note in Android App notification settings 2021-03-20 13:15:21 -07:00
JonnyWong16
5f2e3f58e7
Accept disabled OneSignal id 2021-03-20 12:38:01 -07:00
JonnyWong16
f31f1f1a17
Fix default cron value in database newsletters table 2021-03-19 21:02:55 -07:00
JonnyWong16
407af0450f
Cache GitHub data with release version 2021-03-19 18:11:10 -07:00
JonnyWong16
74d6b18b47
Add blurhash user background for Most Active Users card 2021-03-19 11:10:30 -07:00
JonnyWong16
b19b9a70be
Add pms_image_proxy fallback for user thumb 2021-03-19 11:10:01 -07:00
JonnyWong16
58606885aa
Add blurhash js 2021-03-19 11:08:18 -07:00
JonnyWong16
d93d9b7d4f
Add SSL/TLS support for email 2021-03-18 18:11:35 -07:00
JonnyWong16
53121adfee
v2.6.10 2021-03-17 12:13:48 -07:00
JonnyWong16
e7e5d205a4
Fix upgrading config with top_libraries if the top_users card is missing 2021-03-17 12:10:27 -07:00
JonnyWong16
59b41e862b
v2.6.9 2021-03-17 08:55:54 -07:00
JonnyWong16
0c59592c0f
Merge branch 'master' into nightly 2021-03-17 08:55:41 -07:00
JonnyWong16
6b5b09e723
Merge branch 'beta' into nightly 2021-03-17 08:55:35 -07:00
jonny
387e52becd
Revert "GitBook: [master] 11 pages modified"
This reverts commit 276e41adfd.
2021-03-16 15:17:42 -07:00
jonny
238590f6d0
Revert "GitBook: [beta] 11 pages modified"
This reverts commit ae088a170b.
2021-03-16 15:17:13 -07:00
jonny
490b15b9a3
Revert "GitBook: [nightly] 11 pages modified"
This reverts commit 2acb220f3e.
2021-03-16 15:14:46 -07:00
JonnyWong16
036c574600
Hide sensitive notification agent text fields 2021-03-16 15:11:17 -07:00
JonnyWong16
fab279e3ad
Hide mobile device token text field 2021-03-16 15:11:17 -07:00
JonnyWong16
22d312758d
Hide sensitive setting text fields with button to reveal 2021-03-16 15:11:17 -07:00
JonnyWong16
f3bd1bb80d
Keep invalid device tokens in logger blacklist 2021-03-16 15:11:17 -07:00
JonnyWong16
d20d2b5155
Fix remove newsletter calendar days note 2021-03-16 15:11:17 -07:00
jonny
2acb220f3e
GitBook: [nightly] 11 pages modified 2021-03-16 22:06:28 +00:00
jonny
ae088a170b
GitBook: [beta] 11 pages modified 2021-03-16 22:06:27 +00:00
jonny
276e41adfd
GitBook: [master] 11 pages modified 2021-03-16 22:04:01 +00:00
JonnyWong16
d965d3c36e
Reorganize home stats order 2021-03-15 17:16:17 -07:00
JonnyWong16
a5491eb58e
Use grandparent_rating_key for home stats images, fallback to rating_key 2021-03-15 17:13:32 -07:00
JonnyWong16
c5aba43b68
Add grandparent_rating_key to home stats 2021-03-15 17:12:57 -07:00
JonnyWong16
db6d5da414
Remove HTTP Host setting from UI 2021-03-15 15:49:17 -07:00
JonnyWong16
c0f7f1a409
Update get_home_stats API docs 2021-03-15 14:06:17 -07:00
JonnyWong16
7b920208a4
Add limit 1 when retrieving library last play 2021-03-15 14:01:23 -07:00
JonnyWong16
1e3905f47f
Fix top libraries stats using API commands 2021-03-15 13:58:09 -07:00
JonnyWong16
a1e0b2483d
Add blank keys to top_libraries stats 2021-03-15 13:30:35 -07:00
JonnyWong16
e4bf0fb1c1
Make sure query days is a string before splitting 2021-03-15 13:14:53 -07:00
JonnyWong16
5cc510616f
Fix popovers with images
Fixes #1391
2021-03-15 12:04:45 -07:00
JonnyWong16
b7d0a466e7
Add tautulli_update_exe and tautulli_update_pkg notification parameters 2021-03-15 12:04:45 -07:00
JonnyWong16
5b38b919c4
Update count notification parameter descriptions 2021-03-15 12:04:45 -07:00
JonnyWong16
3dd9dfa48b
Merge pull request #1389 from herby2212/nightly
Add most active libraries card and total plays to home stats
2021-03-15 12:03:55 -07:00
JonnyWong16
5609960d6a
Formatting cleanup 2021-03-15 12:01:49 -07:00
JonnyWong16
e25c18bb20
Fix if library watch time stats are blocked for guest access 2021-03-15 12:01:41 -07:00
herby2212
2949fd4079 add row limit 2021-03-15 19:29:04 +01:00
herby2212
bd65e75cf4 fix music library fallback and update code style 2021-03-14 23:59:03 +01:00
JonnyWong16
4c47501687
Fix pms_image_proxy with http images 2021-03-14 14:27:33 -07:00
JonnyWong16
a2f661df0d
Update exporter fields for new Plex TV agent 2021-03-11 17:17:48 -08:00
JonnyWong16
32ca522c32
Update PlexAPI to 4.4.1 2021-03-11 17:17:33 -08:00
JonnyWong16
9d94b137ce
Add logging for OneSignal validation 2021-03-11 13:53:56 -08:00
JonnyWong16
c59a052b48
Add flag for OneSignal validation failed 2021-03-11 13:53:56 -08:00
JonnyWong16
23b70bb24e
Async validation of OneSignal ID when registering a device 2021-03-11 13:53:56 -08:00
herby2212
bd2517e190 include dynamic library background and thumbnail 2021-03-10 19:55:55 +01:00
JonnyWong16
15f90ea433
Improve temporary device token flow 2021-03-09 23:09:57 -08:00
JonnyWong16
f7e1dc97d8
v2.6.8 2021-03-08 10:59:45 -08:00
JonnyWong16
06a9bb10cc
Fix API return error for HTTP status 500 2021-03-08 10:55:31 -08:00
JonnyWong16
4585057a9e
Catch exception validating OneSignal ID 2021-03-08 10:41:04 -08:00
JonnyWong16
5adb6ca19a
Update wiki links 2021-03-07 14:53:06 -08:00
JonnyWong16
2204da6d9f
v2.6.7 2021-03-07 14:24:11 -08:00
JonnyWong16
133a7896c8
Add originalTitle and bannerFile to show export fields 2021-03-07 12:23:51 -08:00
JonnyWong16
6fb4b35076
Update PlexAPI to 4.4.0 2021-03-07 12:06:56 -08:00
JonnyWong16
0e4de17853
Fix popover poster in tables 2021-03-07 12:04:48 -08:00
JonnyWong16
5454a27ec0
Update bootstrap to 3.4.1 2021-03-07 12:04:17 -08:00
herby2212
a772fc0bcf naming, values, config und library link update 2021-03-07 02:54:28 +01:00
JonnyWong16
a87e14f132
Update remote app Google Play link 2021-03-06 15:22:54 -08:00
JonnyWong16
6089d44ed0
Update pull_request_template.md
[skip ci]
2021-03-06 12:19:51 -08:00
JonnyWong16
02986e946f
Fix exception handling in http_handler 2021-03-05 19:41:59 -08:00
JonnyWong16
8549306a7b
Stop showing entire changelog on new install
[skip ci]
2021-03-05 19:33:01 -08:00
JonnyWong16
41ee863d2a
Don't include skip ci commits for Docker/Snap update check 2021-03-05 19:19:12 -08:00
JonnyWong16
834ce9448d
Fix typos in readme
[skip ci]
2021-03-05 18:41:30 -08:00
JonnyWong16
6b6ed3417f
Update newsletters to support season titles 2021-03-05 17:01:56 -08:00
JonnyWong16
1bb4b4a08d
Update workflows 2021-03-05 10:55:13 -08:00
JonnyWong16
eb728a0d54
Update tables to support season titles 2021-03-04 18:30:16 -08:00
JonnyWong16
f92ba453c8
Update UI to support season titles 2021-03-04 18:19:51 -08:00
JonnyWong16
84448600d2
Add helper function for short season number 2021-03-04 18:00:25 -08:00
JonnyWong16
390391c750
Add season_name notification parameter 2021-03-04 17:26:48 -08:00
JonnyWong16
b45de48019
Add TVDB rating image to info page 2021-03-04 17:12:01 -08:00
JonnyWong16
9847360dc6
Update issues and wiki links 2021-03-04 16:54:46 -08:00
JonnyWong16
a22078eb95
Update Python version in CONTRIBUTING.md
[skip ci]
2021-03-04 16:53:22 -08:00
JonnyWong16
097b4a9e78
Add feature request template
[skip ci]
2021-03-02 19:20:54 -08:00
JonnyWong16
fa850aa4c3
Update readme
[skip ci]
2021-03-02 19:13:15 -08:00
JonnyWong16
5491b96491
Update readme
[skip ci]
2021-03-02 19:10:32 -08:00
JonnyWong16
f75012b640
Update readme
[skip ci]
2021-03-02 18:46:40 -08:00
JonnyWong16
83ba14cbd3
Revert "Move pull request template"
This reverts commit c1d77c21eb.
[skip ci]
2021-03-02 17:40:37 -08:00
JonnyWong16
c1d77c21eb
Move pull request template
[skip ci]
2021-03-02 17:35:03 -08:00
JonnyWong16
ba20f950cd
Add issues workflow
[skip ci]
2021-03-02 17:28:27 -08:00
JonnyWong16
b481d6d119
Add issues template
[skip ci]
2021-03-02 17:19:37 -08:00
JonnyWong16
d297e77d31
Manually trigger lock issues workflow
[skip ci]
2021-03-02 16:44:35 -08:00
JonnyWong16
f11200af72
Lock all issues
[skip ci]
2021-03-02 16:11:15 -08:00
JonnyWong16
ffabd79479
Add [skip ci] to workflows 2021-03-02 16:07:40 -08:00
herby2212
9fa72c64b8 remove total plays from library statistics 2021-03-02 01:37:20 +01:00
herby2212
4e959be84d add most active libraries and total plays to home 2021-03-01 21:54:14 +01:00
JonnyWong16
6ee9e99c23
Bit of cleanup 2021-02-28 15:24:34 -08:00
JonnyWong16
63866e8b52
Merge pull request #1388 from herby2212/master
add audio language to stream data
2021-02-28 15:23:11 -08:00
JonnyWong16
9adb2ef7b1
Update workflows 2021-02-28 15:07:34 -08:00
herby2212
d854ea0d13 fix syntax 2021-02-28 21:52:44 +01:00
herby2212
bb767deb7d add audio language code and format code 2021-02-28 21:46:01 +01:00
JonnyWong16
8b9dee1984
Update workflows 2021-02-28 09:53:00 -08:00
herby2212
d4986a5018 add audio language to stream data 2021-02-28 17:48:25 +01:00
JonnyWong16
3b5801a2cd
Add function to initialize plexapi 2021-02-27 19:17:33 -08:00
JonnyWong16
af8a5342fb
Return error result for terminate_session 2021-02-27 13:21:12 -08:00
JonnyWong16
0868fa749d
Return error result for delete_synced_item 2021-02-27 13:11:02 -08:00
JonnyWong16
775616b52d
Add option to return response from http_handler 2021-02-27 13:10:11 -08:00
JonnyWong16
166d30b3ee
Revert QEMU image for snap builds 2021-02-22 19:50:47 -08:00
JonnyWong16
18dd4951f7
Update pms_image_proxy for playlist images 2021-02-22 18:13:21 -08:00
JonnyWong16
358d44f1af
Disable sync table links if multiple rating keys 2021-02-22 17:35:22 -08:00
JonnyWong16
e9e8fd31a4
Reload plexapi module after changing environment variables 2021-02-22 17:34:29 -08:00
JonnyWong16
dda9d76843
String synced playlist rating key 2021-02-22 17:06:14 -08:00
JonnyWong16
676a797f21
Bump snap package to python3.8 2021-02-20 13:54:46 -08:00
JonnyWong16
947892c93f
Return a sync_media_type for synced collections/playlists 2021-02-20 13:42:39 -08:00
JonnyWong16
ea199178b2
get_synced_items API machine_id is optional 2021-02-20 13:34:17 -08:00
JonnyWong16
c6e663b542
Fix synced items rating key for collections/playlists 2021-02-20 13:32:17 -08:00
JonnyWong16
dd64a4a3d7
Set default url and token in Plex object 2021-02-20 13:28:31 -08:00
JonnyWong16
1cc98e7f7d
Remove plexapi warnings 2021-02-15 16:45:38 -08:00
JonnyWong16
ab74a0da9b
Update spec files 2021-02-12 19:13:52 -08:00
JonnyWong16
6e160bb8f8
Remove Windows exe auto updater 2021-02-12 19:11:46 -08:00
JonnyWong16
2cc5bf812f
v2.6.6 2021-02-06 12:32:25 -08:00
JonnyWong16
3a71b10c6a
Update pyinstaller to 4.2 2021-02-05 10:14:23 -08:00
JonnyWong16
46c1a1be93
Add more metadata to get_home_stats API command 2021-02-04 17:22:40 -08:00
JonnyWong16
8c96a09bc6
Fix plexapi config path 2021-02-03 15:42:18 -08:00
JonnyWong16
553b615481
Set plexapi config path to Tautulli data dir 2021-02-03 15:33:16 -08:00
JonnyWong16
5c63308441
Update plexapi to 4.3.1 2021-02-03 15:31:34 -08:00
JonnyWong16
270af26b82
Add get_children_metadata API command 2021-02-02 13:39:14 -08:00
JonnyWong16
5b5ccee23b
Strip HTTP root on login redirect 2021-01-29 10:32:44 -08:00
JonnyWong16
6a534ade9f
Redirect internally after login instead of client side
* Fixes Tautulli/Tautulli-Issues#300
2021-01-29 10:04:34 -08:00
JonnyWong16
674966510d
Return empty list for datatable errors 2021-01-27 11:51:27 -08:00
JonnyWong16
5ca8184948
Create DummyObject to not crash when starting with Python 2
* This disables the collections, playlists, and exporter features
2021-01-25 18:30:47 -08:00
JonnyWong16
4a463f04f1
Add thumbUrl and artUrl to plexapi Collections
* pkkid/python-plexapi#651
2021-01-25 09:23:08 -08:00
JonnyWong16
d5fd5778dd
Fix plexapi Photoalbum key
* pkkid/python-plexapi#650
2021-01-24 21:34:09 -08:00
JonnyWong16
08e08293fe
Update requests to 2.25.1 2021-01-24 21:16:27 -08:00
JonnyWong16
140a725950
Update library collections and playlist methods 2021-01-24 21:14:45 -08:00
JonnyWong16
d8196bf63c
Fix exporter docs for collection items 2021-01-24 21:14:30 -08:00
JonnyWong16
f8e94224cf
Update export fields 2021-01-24 21:10:29 -08:00
JonnyWong16
f497c11d73
Update plexapi to 4.3.0 2021-01-24 19:53:39 -08:00
JonnyWong16
6b013da697
Fix trailing slash in public domain suffix 2021-01-21 17:50:12 -08:00
JonnyWong16
eb0e3f5afe
Rename fix metadata to fix match 2021-01-20 22:18:14 -08:00
JonnyWong16
ce7d7169f9
Update pull request workflow 2021-01-18 08:50:03 -08:00
JonnyWong16
22dadfd845
Fix Plex API media audioProfile 2021-01-18 08:47:49 -08:00
JonnyWong16
97f80adf0b
v2.6.5 2021-01-09 14:24:27 -08:00
JonnyWong16
2fc7b08909
Add misfire grace time to scheduled tasks 2021-01-09 14:15:32 -08:00
JonnyWong16
defceed696
Fix homepage server status when sections are disabled 2021-01-06 17:24:53 -08:00
JonnyWong16
249533ac51
Migrate snap user data 2021-01-05 17:56:53 -08:00
JonnyWong16
12aee8762e
Allow snap package to access home directory 2021-01-05 10:19:41 -08:00
JonnyWong16
d9325b7adf
Add Crypto link to funding 2020-12-28 14:16:16 -08:00
JonnyWong16
4975cad4fa
Keep news open for longer 2020-12-27 14:53:33 -08:00
JonnyWong16
33fc079318
More logger blacklist improvements 2020-12-27 14:52:18 -08:00
JonnyWong16
b3b2752554
Fix regex masking in logger args 2020-12-27 13:15:06 -08:00
JonnyWong16
505cf25ca3
Add back crypto donation 2020-12-25 14:01:04 -08:00
JonnyWong16
9747e3ba98
Add pull request workflow 2020-12-24 18:23:06 -08:00
JonnyWong16
729191722a
Fix typo 2020-12-24 17:00:39 -08:00
JonnyWong16
ff2cf73f23
Update .gitignore 2020-12-24 16:43:00 -08:00
JonnyWong16
9c4d97c0f8
Update installer workflow 2020-12-24 16:43:00 -08:00
JonnyWong16
be911e7700
Move nsis plugin folder 2020-12-24 16:42:37 -08:00
JonnyWong16
00629c0983
Use updater to modify Task Scheduler XML 2020-12-24 16:41:28 -08:00
JonnyWong16
52ebc9a908
Move Tautulli to Program Files x64 2020-12-24 16:41:21 -08:00
JonnyWong16
a029d6a931
Restart Tautulli process if Windows installer failed 2020-12-22 19:26:53 -08:00
JonnyWong16
7641e3b081
Add logger function to Windows updater 2020-12-22 19:18:45 -08:00
JonnyWong16
b54210480f
Don't shutdown for Windows installer update 2020-12-22 19:09:27 -08:00
JonnyWong16
0d9c1c640e
Update Windows updater 2020-12-22 19:09:06 -08:00
JonnyWong16
7f84353c69
Disable console window when running task scheduler 2020-12-22 16:24:21 -08:00
JonnyWong16
c319a4a5cc
Don't auto restart when updating Windows install 2020-12-22 16:22:45 -08:00
JonnyWong16
60f13df992
Add auto update for Windows exe install 2020-12-22 15:59:19 -08:00
JonnyWong16
dea51e32a5
Strip branch and version when reading text file in Windows updater 2020-12-22 15:46:11 -08:00
JonnyWong16
7019f5618b
Update Windows powershell command to move updater 2020-12-22 15:36:21 -08:00
JonnyWong16
9106c068ac
Update Windows installer workflow 2020-12-22 15:26:37 -08:00
JonnyWong16
0b845294fb
Add Tautulli Windows exe updater 2020-12-22 15:21:06 -08:00
JonnyWong16
7e850dd88d
Fix typo in apscheduler in package requirements file 2020-12-22 12:33:52 -08:00
JonnyWong16
877bf7060e
Missing = sign in package requirements file 2020-12-22 12:31:22 -08:00
JonnyWong16
9326d03a57
Update PyInstaller to 4.1
* APScheduler needs to be installed from PyPI due to the way it retrieves it's own version number using pkg_resources.get_distribution
2020-12-22 12:29:43 -08:00
JonnyWong16
4787f42d2e
Add args to Windows and MacOS auto startup 2020-12-21 13:39:53 -08:00
JonnyWong16
56a9ccd818
Make Windows registry key unique to allow more than one instance 2020-12-21 13:39:29 -08:00
JonnyWong16
1019fecc9e
v2.6.4 2020-12-20 08:59:41 -08:00
JonnyWong16
1855f93c1c
Revert Snap data folder
* Fixes Tautulli/Tautulli-Issues#294
2020-12-20 08:58:02 -08:00
JonnyWong16
52e6a44aa4
Put Discord notification after release 2020-12-19 16:18:29 -08:00
JonnyWong16
0b77808af6
Fix release changelog 2020-12-19 16:18:13 -08:00
JonnyWong16
9233ed5c53
Revert "Also publish snap to beta for full release"
This reverts commit 366823cee9.
2020-12-19 15:56:09 -08:00
JonnyWong16
ee68c0f622
Fix release installer path 2020-12-19 15:42:23 -08:00
JonnyWong16
366823cee9
Also publish snap to beta for full release 2020-12-19 15:30:02 -08:00
JonnyWong16
40e1eb9a49
Revert "Build snap based on branch instead of tag"
This reverts commit 2e5dd05a6c.
2020-12-19 15:22:30 -08:00
JonnyWong16
1af419a860
v2.6.3 2020-12-19 15:09:56 -08:00
JonnyWong16
397f18c435
Disable updater if using Python 2 2020-12-19 14:59:05 -08:00
JonnyWong16
2e5dd05a6c
Build snap based on branch instead of tag 2020-12-19 12:11:03 -08:00
JonnyWong16
a9fb8ddfb8
Separate Discord notification jobs 2020-12-18 14:31:15 -08:00
JonnyWong16
562c726787
Merge pull request #1385 from elpollodiablo/master
Change http_handler to use requests instead of urllib3
2020-12-18 14:11:53 -08:00
JonnyWong16
5f82c1dc17
Add python3-pycryptodome to snap package 2020-12-17 20:48:23 -08:00
JonnyWong16
222800bdb6
Update README with Snap badges 2020-12-17 20:27:41 -08:00
JonnyWong16
5dd3636571
Fix typo in Snap architecture 2020-12-17 19:02:00 -08:00
JonnyWong16
2296a9fbb3
Merge pull request #1375 from capruro/master
Snap Package integration
2020-12-17 18:53:25 -08:00
JonnyWong16
63b5a7c036
Update workflows 2020-12-17 18:46:02 -08:00
JonnyWong16
b74ca2670e
Update Publish Snap workflow 2020-12-17 18:44:29 -08:00
JonnyWong16
393f4e0e58
Add multi-architecture build to Publish Snap workflow 2020-12-17 18:38:04 -08:00
JonnyWong16
3a9ca29e99
Add pull request to workflows 2020-12-17 18:28:50 -08:00
JonnyWong16
32995fef24
Update snapcraft.yml 2020-12-17 17:47:28 -08:00
JonnyWong16
a73c99fc64
Disable updated for Snap package 2020-12-17 17:47:28 -08:00
JonnyWong16
a5834470ba
Update Publish Docker workflow 2020-12-17 17:41:12 -08:00
JonnyWong16
da3bc127dc
Add TAUTULLI_SNAP environment variable 2020-12-17 12:48:12 -08:00
JonnyWong16
0dddc4d58f
Fix typo in Publish Snap workflow 2020-12-16 17:56:39 -08:00
JonnyWong16
a4d5d9157b
Add snap to .dockerignore 2020-12-16 17:49:17 -08:00
JonnyWong16
c70d5d4398
Add Publish Snap GitHub workflow 2020-12-16 17:49:17 -08:00
JonnyWong16
7c08b07ef5
Update snapcraft.yaml 2020-12-16 17:49:17 -08:00
capruro
e426b5dd35
add PyOpenSSL package 2020-12-16 17:46:50 -08:00
capruro
2fdf619582
Delete .editorconfig
NOT required to be implemented :)
2020-12-16 17:46:50 -08:00
Marcello Franco
d9eed14b7a
Initial commit 2020-12-16 17:46:40 -08:00
JonnyWong16
8230ffb8a4
Update readme installer build badges 2020-12-16 00:01:00 -08:00
JonnyWong16
7098930b19
Update build installer workflow with matrix 2020-12-15 23:54:30 -08:00
JonnyWong16
56244245a4
Fix export accessible and exists for media info level 9 2020-12-15 22:49:51 -08:00
JonnyWong16
dd2f12fa8e
Fix typo in notifier error log message 2020-12-15 22:49:51 -08:00
JonnyWong16
9598247a0d
Merge pull request #1384 from krowvin/patch-1
Update reference link to CherryPy auth tool
2020-12-15 22:48:46 -08:00
JonnyWong16
230ee90b1c
Remove link to web.archive.org for CherryPy auth tool 2020-12-15 22:47:11 -08:00
JonnyWong16
e705bedc91
Clean up http_handler using requests
* Restore ThreadPool for multiple requests
* Use a requests.Session()
* Update requests.exceptions
2020-12-15 22:38:43 -08:00
JonnyWong16
b5ebe7590c
Create pull_request_template.md 2020-12-12 12:16:46 -08:00
Philip Poten
6d0831ceaa replace urllib3 with requests, remove unused session logic 2020-12-12 16:03:18 +01:00
JonnyWong16
19e00ee2f2
Set template icon for macOS menu bar 2020-12-06 11:13:21 -08:00
JonnyWong16
80723d224e
Add username to masked session info for guests 2020-12-05 18:44:06 -08:00
JonnyWong16
0c82bb023a
v2.6.2 2020-12-05 10:33:13 -08:00
JonnyWong16
0a86f24095
Fix plexapi.library.Collections.children()
* Fixes Tautulli/Tautulli-Issues#290
2020-12-04 19:16:40 -08:00
JonnyWong16
b41249cfa8
Put update status in tray menu 2020-12-04 18:48:39 -08:00
JonnyWong16
6659802689
Remove tray update icon 2020-12-04 18:30:56 -08:00
JonnyWong16
964c503223
Add flat white logo and icon 2020-12-04 17:54:15 -08:00
JonnyWong16
15568bf20a
Pin macOS requirement pyobjc-core==6.2.2 2020-12-04 13:28:51 -08:00
JonnyWong16
d10cd324bb
Pin requirements dependencies versions 2020-12-02 20:17:39 -08:00
JonnyWong16
2a22ab8c33
Remove LSBackgroundOnly from macOS app plist file 2020-11-27 21:43:48 -08:00
JonnyWong16
ca736cdae2
Remove accessible and exists from media info export level 2
* Only reload export object with checkFiles=True if accessible and exists are requested.
2020-11-27 21:31:21 -08:00
JonnyWong16
d589c57dd2
Update plexapi 3.6.0-tautulli 2020-11-27 21:07:30 -08:00
JonnyWong16
9b0caf2a47
Fix export custom child fields failing without included parent field 2020-11-27 20:33:04 -08:00
JonnyWong16
f8b00bbd67
codecID only for video streams and remove dialogNorm from audio streams 2020-11-25 22:13:49 -08:00
JonnyWong16
91a8c0e7a0
Add transient to subtitle stream export 2020-11-25 21:46:24 -08:00
JonnyWong16
2089172384
Add streamIdentifier to audio stream export 2020-11-25 21:27:58 -08:00
JonnyWong16
1ab87e5334
Enable high resolution in macOS app 2020-11-21 21:04:22 -08:00
JonnyWong16
b5e6861032
Update certifi 2020.11.08 2020-11-21 15:05:58 -08:00
JonnyWong16
189930918a
Fix entering / in Public Tautulli Domain setting 2020-11-15 11:29:11 -08:00
krowvin
ff1bd0a4b8
Update webauth.py
Link is broken. Added two alternate links to the same information.
2020-11-12 17:03:04 -06:00
JonnyWong16
e544d0dd07
Improve login rate limit 2020-11-09 09:43:09 -08:00
JonnyWong16
3e0b240154
Add rate limiting to login page 2020-11-08 15:36:40 -08:00
JonnyWong16
199119cafb
Reword notification settings help text 2020-11-08 13:17:14 -08:00
JonnyWong16
89ab665923
Add user new device notification setting for initial stream only 2020-11-08 13:16:49 -08:00
JonnyWong16
dfb60de6d2
Add machine_id to get_history API response 2020-11-08 12:34:03 -08:00
JonnyWong16
da8d41868d
v2.6.1 2020-11-03 17:51:38 -08:00
JonnyWong16
e9db43ebf6
Remove tqdm 2020-11-02 23:06:59 -08:00
JonnyWong16
c0453eae47
Fix unique img_hash in database 2020-11-02 19:49:33 -08:00
JonnyWong16
a8863a5aeb
Remove cherrypy engine log filter 2020-11-02 18:39:50 -08:00
JonnyWong16
a8adad7dbb
v2.6.0 2020-10-31 17:05:51 -07:00
JonnyWong16
4cfa5ac10b
Remove encoding from Growl message body 2020-10-30 21:37:30 -07:00
JonnyWong16
55090ddeaa
Clean up start.sh 2020-10-30 21:30:28 -07:00
JonnyWong16
14346b0e69
Improve Docker exec user 2020-10-30 21:27:39 -07:00
JonnyWong16
ac24acf9ce
Publish Docker image to GitHub Container Registry 2020-10-29 21:44:27 -07:00
JonnyWong16
4cde62fde9
Update Android platform icon 2020-10-27 18:34:21 -07:00
JonnyWong16
7489bc8d98
Merge pull request #1383 from zheileman/apple-data-detectors
Fix styling of Apple data-detectors in newsletters
2020-10-25 14:00:15 -07:00
JonnyWong16
cde9287d85
Update favicon to circle logo 2020-10-25 13:42:00 -07:00
JonnyWong16
558023e18e
Improve startup speed by refreshing on a separate thread 2020-10-25 13:07:42 -07:00
JonnyWong16
8157ee7811
Cache GitHub update check on startup
* Fixes Tautulli/Tautulli-Issues#184
2020-10-25 11:39:48 -07:00
JonnyWong16
d746d2913f
Fix mobile device table migration 2020-10-25 10:51:32 -07:00
JonnyWong16
0136fc6436
Update plexapi.LibrarySection subclasses 2020-10-23 23:29:53 -07:00
JonnyWong16
7ce280cb92
Fix ratings on info page for new Plex Movie agent 2020-10-23 17:51:48 -07:00
JonnyWong16
0209fa87aa
Update rating notification parameters for new Plex Movie agent 2020-10-23 17:46:11 -07:00
JonnyWong16
62cc2f769f
Fix docker build args 2020-10-21 19:37:14 -07:00
JonnyWong16
a49d44c880
Add logger message for missing server identifier when refreshing users 2020-10-21 19:33:38 -07:00
JonnyWong16
dab288380a
Change jquery .width to .css for activity progress bar
* For some reason jquery 3.5 isn't accepting `.width(progress + '%')`
2020-10-21 14:26:05 -07:00
Jesus Laiz
2ac5c35065 Fix styling of Apple data-detectors in newsletters
The existing style was not properly targetting the links Apple inject when (wrongly, in this case) detecting phone numbers in newsletters.

This has no effect in any other platform or device.
The numbers are still clickable, couldn't fine a way to disable the functionality completely (tried the `format-detection` meta tag with no luck), but at least the styles are not changed anymore.

I tested this on iPhone and iPad and you can see how it looks before and after the change below.
2020-10-21 11:47:04 +01:00
JonnyWong16
ec9e2fe0f0
Patch plexapi.library.Collections to PlexPartialObject 2020-10-20 15:49:29 -07:00
JonnyWong16
ecbe79b5b9
Add intro markers to exporter 2020-10-19 09:23:50 -07:00
JonnyWong16
c4ac03738b
Add plexapi.media.Marker to plexapi.video.Episode 2020-10-19 09:21:40 -07:00
JonnyWong16
352dbd9bc8
Update brand logo colours 2020-10-17 21:25:17 -07:00
JonnyWong16
393b395df0
Add delete_synced_item to the API 2020-10-16 19:49:34 -07:00
JonnyWong16
1a96da04a1
Add sync_id parameter to get_metadata 2020-10-16 14:03:02 -07:00
JonnyWong16
615b98955a
v2.6.0-beta 2020-10-16 13:27:04 -07:00
JonnyWong16
11b2b67f9d
Remove set-env from release workflow 2020-10-16 13:18:52 -07:00
JonnyWong16
0e44255e6a
Export photo locations 2020-10-16 12:31:34 -07:00
JonnyWong16
a649d2ec12
Add locations for plexapi.photo.Photo and plexapi.video.Clip 2020-10-16 12:31:18 -07:00
JonnyWong16
8a953e789c
Add all locations to m3u8 playlists 2020-10-16 11:47:44 -07:00
JonnyWong16
317d32eb0c
Merge pull request #1381 from MichaIng/patch-1
Avoid daemon forking with systemd
2020-10-16 11:40:14 -07:00
JonnyWong16
b2ddedc0ae
Update API register device doc string 2020-10-15 22:47:56 -07:00
JonnyWong16
620d2cf730
Merge pull request #1382 from dotsam/margin-fix-better
Fix margins on dashboard cards
2020-10-15 22:47:21 -07:00
JonnyWong16
2578592cc7
Move ratingKey, title, and titleSort to front of csv headers 2020-10-15 22:10:42 -07:00
JonnyWong16
44c643d7da
Add progress percent to export table 2020-10-15 21:56:20 -07:00
JonnyWong16
39d6edd581
Fix memory leak in exporter 2020-10-15 21:19:42 -07:00
JonnyWong16
5a14b5bc35
Add all Plex server and Tautulli info to register device response 2020-10-15 11:16:15 -07:00
JonnyWong16
82d9719eee
Fix default library export type 2020-10-15 10:56:28 -07:00
JonnyWong16
401b75a76b
Update docker build workflow 2020-10-15 10:15:08 -07:00
JonnyWong16
ab75628cf7
Make export threads advanced config setting 2020-10-14 23:48:58 -07:00
JonnyWong16
57d08e231c
Fix typo in plexapi includeBandwidths 2020-10-14 23:25:41 -07:00
JonnyWong16
f6b800c372
Remove horizontal rule in exporter docs 2020-10-14 20:01:28 -07:00
JonnyWong16
26773ac67f
Reword export individual files in export modal 2020-10-14 20:01:10 -07:00
JonnyWong16
5b63cb38ae
Timestamp required for checking if export exists 2020-10-14 14:13:55 -07:00
JonnyWong16
30b655a32a
Refactor saving xml and m3u8 files 2020-10-14 14:02:08 -07:00
JonnyWong16
f3fa9601c0
Rework exporter to allow exporting individual files from library 2020-10-14 12:48:08 -07:00
JonnyWong16
034ad05383
Add some more metadata to m3u8 exports 2020-10-13 18:48:21 -07:00
JonnyWong16
7b936fd664
Add include_activity parameter to get_history API 2020-10-13 16:26:35 -07:00
JonnyWong16
a120f52e0d
Add grandparentTitle to m3u8 export 2020-10-13 09:15:45 -07:00
Sam Edwards
58f2d22ef4
Swap left/right margin on cards and make cards fit better on mobile 2020-10-12 23:55:13 -07:00
JonnyWong16
962777284a
Add collectionSort value for custom sort 2020-10-12 21:32:16 -07:00
JonnyWong16
d4c8066209
Cast plexapi.Collections.collectionMode and collectionSort to int 2020-10-12 21:31:46 -07:00
JonnyWong16
9a9db88efd
Add Dolby vision to export attributes 2020-10-12 21:13:29 -07:00
JonnyWong16
f5ad9cfe14
Add Dolby vision attributes to plexapi.media.VideoStream 2020-10-12 21:13:10 -07:00
JonnyWong16
d268a7aa23
Add back in tautulli_version to register device 2020-10-12 14:33:43 -07:00
JonnyWong16
1896239bd3
Add link to exporter guide in export modal 2020-10-12 13:08:53 -07:00
JonnyWong16
07c71750d5
Move API docs to the wiki 2020-10-12 12:53:16 -07:00
JonnyWong16
d5171109f5
Add anchor to children / item in exporter docs 2020-10-12 12:09:49 -07:00
JonnyWong16
36aa795c52
Add min_version parameter to register_device API command 2020-10-12 11:56:55 -07:00
JonnyWong16
7914f56ec3
Always close mobile device QR modal on successful registration 2020-10-12 11:54:36 -07:00
JonnyWong16
a39c6c1047
Improve sorting of json and xml export attributes 2020-10-11 16:03:16 -07:00
JonnyWong16
270e07341a
Add m3u8 to export API docs 2020-10-11 14:53:09 -07:00
JonnyWong16
da7c66f414
Add stat_id and stats_start options to get_home_stats API 2020-10-11 14:31:34 -07:00
JonnyWong16
d97b87d9cc
Allow deleting mobile device using the registered device_id 2020-10-11 13:55:50 -07:00
JonnyWong16
bee3361ace
Return Tautulli version in register device API 2020-10-11 13:54:24 -07:00
JonnyWong16
276ea4dd98
Only build tables for exporter docs 2020-10-10 10:06:25 -07:00
JonnyWong16
dd45b47032
Filter out Cherrypy engine serving log message 2020-10-10 10:05:06 -07:00
JonnyWong16
1fd4ec3ca3
Add moment-duration-format.js plugin for graphs 2020-10-10 09:49:29 -07:00
JonnyWong16
1e807af2d4
Fix graphs tab not saving 2020-10-10 09:48:55 -07:00
JonnyWong16
88a5db05b7
Move file format to top of export modal 2020-10-09 01:24:21 -07:00
JonnyWong16
e6c8bd0c13
Add auto-generation of exporter docs 2020-10-09 00:49:17 -07:00
JonnyWong16
3be9c84f2b
Add attribute sort helper function 2020-10-08 19:53:57 -07:00
JonnyWong16
881f37f731
Change default sig of human duration function 2020-10-08 19:53:32 -07:00
JonnyWong16
4d37f2bab2
Add none to export level 0 description 2020-10-08 16:14:48 -07:00
JonnyWong16
3217c2da0b
Enable export of season/album artwork if selected 2020-10-08 13:33:51 -07:00
JonnyWong16
280ae04b3d
Set art to None for plexapi.video.Season/Episode 2020-10-08 13:32:25 -07:00
JonnyWong16
d5705a52e9
Use collection.title if collection.sortTitle is None 2020-10-08 12:41:47 -07:00
JonnyWong16
43ab2f22a8
Update wording on image export levels 2020-10-08 11:57:41 -07:00
JonnyWong16
8bb40036bc
Update API docs for export thumb_level and art_level 2020-10-08 11:21:58 -07:00
JonnyWong16
8ee934404f
Reword image levels in export modal 2020-10-08 11:21:39 -07:00
JonnyWong16
aa9dbafa28
Check images exported after export 2020-10-08 11:13:00 -07:00
JonnyWong16
2b8fea8bf8
Allow addition custom export image fields 2020-10-08 11:12:09 -07:00
JonnyWong16
985f4293b3
Export images based on level 2020-10-08 10:12:28 -07:00
JonnyWong16
22b162b3c4
Cast plexapi.media.Poster selected to bool 2020-10-08 10:12:28 -07:00
JonnyWong16
7f3d8cfb8d
Change thumb_level and art_level to int 2020-10-08 10:12:28 -07:00
JonnyWong16
9a7627e35e
Rename include_thumb/art to thumb/art_level 2020-10-08 09:14:37 -07:00
JonnyWong16
f141c67ceb
Load key before _details_key for plexapi.audio.Artist 2020-10-07 22:01:01 -07:00
JonnyWong16
e4372644e1
Better csv fields sorting 2020-10-07 20:42:04 -07:00
JonnyWong16
8552b00be4
Always try to delete export images folder 2020-10-07 20:42:04 -07:00
JonnyWong16
978fea5dde
Hide collections tab for music libraries 2020-10-07 18:50:22 -07:00
JonnyWong16
b3eeaeeda5
Don't return the main child attribute as a custom field 2020-10-07 18:29:16 -07:00
JonnyWong16
0f2ac5104e
Fix parsing custom fields 2020-10-07 18:25:48 -07:00
JonnyWong16
f7766fff14
Log cherrypy errors 2020-10-07 00:06:23 -07:00
JonnyWong16
b7c2e42190
Fix overflow in track list/playlist 2020-10-06 21:24:35 -07:00
JonnyWong16
56472f8dd5
Fix loading custom fields for show/artist 2020-10-06 21:18:11 -07:00
JonnyWong16
969934b8c0
Update bootstrap.min.css 2020-10-04 19:42:30 -07:00
JonnyWong16
62f153acd2
Update jquery on other pages 2020-10-04 19:37:17 -07:00
JonnyWong16
b53f16645c
Set Patreon image width 2020-10-04 16:52:37 -07:00
JonnyWong16
6c2786dd78
Add noreferrer to all external links 2020-10-04 16:52:37 -07:00
JonnyWong16
64a9b0e622
Update bootstrap to v3.3.7
* Partially addresses Tautulli/Tautulli-Issues#127. Updating to bootstrap 4 requires a major rewrite.
2020-10-04 16:30:11 -07:00
JonnyWong16
3d05a74ef4
Update moment.js to 2.29.0
* Addresses Tautulli/Tautulli-Issues#127
2020-10-04 16:17:04 -07:00
JonnyWong16
3a1c92944f
Update navigation tabs to work with jquery update 2020-10-04 16:10:51 -07:00
JonnyWong16
6b34b82f52
Update jquery to 3.5.1
* Fixes Tautulli/Tautulli-Issues#280
* Addresses Tautulli/Tautulli-Issues#127
2020-10-04 16:07:55 -07:00
JonnyWong16
322c090d8a
Automatically show HTTP root in Public Tautulli Domain input box 2020-10-04 14:15:06 -07:00
JonnyWong16
4bb49f9836
Add jquery InputAffix 2020-10-04 14:14:20 -07:00
JonnyWong16
20566168a1
Improve photoalbum export 2020-10-04 13:01:05 -07:00
JonnyWong16
03bf4a9ef8
Add default stream state icon 2020-10-04 12:11:05 -07:00
JonnyWong16
842a76aae1
Update dict_to_xml helper function 2020-10-04 01:35:11 -07:00
JonnyWong16
e3214946a3
Fix exporter for photo albums and clips 2020-10-04 01:21:44 -07:00
JonnyWong16
36f877c7ff
Update plexapi.video.Clip and plexapi.photo.Photoalbum 2020-10-04 01:18:05 -07:00
JonnyWong16
6e41b7ef3d
Hide tab bar on info page for guests 2020-10-03 11:29:28 -07:00
JonnyWong16
1fc9a9bcea
Add downloads badge to readme 2020-10-03 10:57:42 -07:00
JonnyWong16
3a439cb81c
Update API docs 2020-10-03 10:29:50 -07:00
JonnyWong16
e8b0de0320
Improve image export help text on export modal 2020-10-03 10:27:40 -07:00
JonnyWong16
4d033bb379
Add custom fields for manually exporting season/episode images 2020-10-03 10:04:43 -07:00
JonnyWong16
fffd1ffda3
Fix missing select columns button for user IP address table 2020-10-02 23:41:16 -07:00
JonnyWong16
151f23fd92
Move common buttons to nav bar on info page 2020-10-02 23:34:30 -07:00
JonnyWong16
25572d6a5b
Change key for plexapi.LibrarySection.collection 2020-10-02 23:25:50 -07:00
JonnyWong16
e27efb3946
Add kwargs to plexapi playlists fetchItems 2020-10-02 23:25:23 -07:00
JonnyWong16
ca69293d8b
Fix footer text on collections and playlists tables 2020-10-02 23:19:36 -07:00
JonnyWong16
f7fa773ec7
Add thumb popover to collections and playlists tables 2020-10-02 22:03:33 -07:00
JonnyWong16
f84c4ca73c
Add thumb popover to lists on info page 2020-10-02 21:58:13 -07:00
JonnyWong16
f9d828ea67
Fix import statement 2020-10-02 21:35:23 -07:00
JonnyWong16
739c977cd7
Merge branch 'v2.5-export' into nightly 2020-10-02 20:45:11 -07:00
JonnyWong16
14b98a32e0
v2.5.6 2020-10-02 20:35:06 -07:00
JonnyWong16
34c9ede9c9
Add m3u8 export file format 2020-10-02 19:42:24 -07:00
JonnyWong16
be9f06795d
Fix loading playlists for user not on Plex server 2020-10-02 13:05:14 -07:00
JonnyWong16
ea9904bd56
Add playlist export for users 2020-10-02 12:54:07 -07:00
JonnyWong16
501f08dd5e
Add Playlist tab to user page 2020-10-02 11:57:13 -07:00
JonnyWong16
a985cec9c2
Fix loading synced items for guest access 2020-10-02 11:16:49 -07:00
JonnyWong16
c8b0ff22f6
Update guest access for collection and playlist changes 2020-10-02 11:11:15 -07:00
JonnyWong16
3cc8c1f8c5
Fix loading Live TV library page 2020-10-02 10:27:59 -07:00
JonnyWong16
5e8b946571
Improve nav pills css 2020-10-02 10:27:45 -07:00
JonnyWong16
dd4c0d24b7
Add tabs for history and export on info pages 2020-10-02 10:14:00 -07:00
JonnyWong16
fc39f1521d
Change library and user tabs to nav pills 2020-10-02 10:13:41 -07:00
JonnyWong16
60cadb1e11
Go to export tab after exporting 2020-10-02 09:56:30 -07:00
JonnyWong16
28c745c19c
Patch DataTables ColVis to fix dropdown extending past bottom of page 2020-10-02 00:22:19 -07:00
JonnyWong16
900b524672
Add hidden Custom Fields column to export table 2020-10-01 21:42:15 -07:00
JonnyWong16
627129dd95
Improve XML export 2020-10-01 21:13:07 -07:00
JonnyWong16
8d18e98ca7
Fix pms_image_proxy for composites 2020-10-01 20:22:52 -07:00
JonnyWong16
0ba755e463
Make collection titles searchable in table 2020-10-01 19:43:10 -07:00
JonnyWong16
72215a9f44
Update library export API docs 2020-10-01 16:15:00 -07:00
JonnyWong16
2803a6095b
Add export for all collections and all playlists 2020-10-01 14:40:28 -07:00
JonnyWong16
d1172f4975
Add playlist method to plexapi.library.LibrarySection 2020-10-01 14:40:12 -07:00
JonnyWong16
478c4540b1
Add browsing photo info pages 2020-10-01 11:46:11 -07:00
JonnyWong16
cc1076e122
Add photo playlist items on info page 2020-10-01 10:38:32 -07:00
JonnyWong16
15e928ecf2
Add items suffix to collections and playlist table 2020-10-01 09:57:01 -07:00
JonnyWong16
2c360b6472
Fix searching in collections and playlist table 2020-09-30 22:41:28 -07:00
JonnyWong16
f5c99f712a
Add get_collections_table and get_playlists_table to API docs 2020-09-30 22:10:06 -07:00
JonnyWong16
f151bb1451
Add datatables processing to collections and playlists tables 2020-09-30 22:09:19 -07:00
JonnyWong16
1061c334ae
Improve look of collections and playlists tables 2020-09-30 21:01:14 -07:00
JonnyWong16
c5ea50d480
Improve playlist view on info page 2020-09-30 15:54:18 -07:00
JonnyWong16
84207effab
Initial collections and playlists table to library page 2020-09-30 15:44:23 -07:00
JonnyWong16
b568af0a90
Add playlist info page 2020-09-30 14:00:57 -07:00
JonnyWong16
11f2f8ff81
Don't convert requiredBandwidths to list 2020-09-30 11:18:12 -07:00
JonnyWong16
454235dd9a
Add XML export format 2020-09-30 00:04:27 -07:00
JonnyWong16
ad8dee3c47
Export locations attribute is media info 2020-09-29 23:21:32 -07:00
JonnyWong16
5dc0d5536d
Also add username hover to most active card 2020-09-29 21:00:47 -07:00
JonnyWong16
86699ece8e
Change custom fields to input instead of select 2020-09-29 20:22:16 -07:00
JonnyWong16
e3eca5af46
Change friendly name hover title text to username 2020-09-29 20:07:23 -07:00
JonnyWong16
e9f464e34d
Add get_export_fields to API docs 2020-09-29 19:41:53 -07:00
JonnyWong16
97775e2a3b
Add custom fields for collections and playlists 2020-09-29 19:40:53 -07:00
JonnyWong16
54433c43e6
Disable custom fields for selected export levels 2020-09-29 19:03:40 -07:00
JonnyWong16
3376908710
Add selectize disable-options plugin
* Modified to add a `disableField` option
2020-09-29 19:02:47 -07:00
JonnyWong16
284f77b9ae
Add custom fields tree for shows and artists 2020-09-29 19:01:21 -07:00
JonnyWong16
2fe49f316f
Fix typo in export table footer 2020-09-29 00:40:52 -07:00
JonnyWong16
1428a2485f
Delay library.section.all() to speed up export return 2020-09-29 00:28:28 -07:00
JonnyWong16
3a1b4e34aa
Don't show export table fetching message when auto-refreshing 2020-09-29 00:18:24 -07:00
JonnyWong16
26fb9a6803
Add option for custom fields to the export modal 2020-09-28 23:47:32 -07:00
JonnyWong16
31e6f4282d
Move selectize.js to base.html 2020-09-28 20:48:00 -07:00
JonnyWong16
6bc7de7a6d
Separate export poster and art 2020-09-28 20:47:28 -07:00
JonnyWong16
d9ece291b7
Fix 1px off dropdown menus 2020-09-28 18:23:07 -07:00
JonnyWong16
0203a1d4dc
Use relative image path for export 2020-09-28 12:21:22 -07:00
JonnyWong16
221d6e136a
Added remote access down notification threshold setting 2020-09-27 19:31:26 -07:00
JonnyWong16
ad6e314343
Don't floor newsletter start date 2020-09-27 17:44:11 -07:00
JonnyWong16
9fc4dbc6d6
Fix parsing custom fields for root media type 2020-09-27 17:17:38 -07:00
JonnyWong16
5dade92221
Add image export for collections and playlists 2020-09-27 17:11:08 -07:00
JonnyWong16
4e29960238
Save metadata and media info export level to database 2020-09-27 16:56:40 -07:00
JonnyWong16
3973c57020
Fix refresh export table button on info page 2020-09-27 16:55:50 -07:00
JonnyWong16
dd1dc00430
Rename API command to get_exports_table 2020-09-27 15:40:11 -07:00
JonnyWong16
9a7d6ea7d7
Hide rating key column on media export table 2020-09-27 15:39:39 -07:00
JonnyWong16
02d4a3b9fe
Improve exporter API error messages 2020-09-27 15:30:10 -07:00
JonnyWong16
0a60d5f2b2
Add custom export level 0 2020-09-27 15:10:08 -07:00
JonnyWong16
13ff8f3a84
Refactor movie export levels 2020-09-27 14:39:22 -07:00
JonnyWong16
3efee000ce
Add external guids to movie export 2020-09-27 14:32:10 -07:00
JonnyWong16
5915937975
Add collection labels to exporter 2020-09-27 14:28:09 -07:00
JonnyWong16
c7621a9e36
Add Guid tags to plexapi.video.Movie 2020-09-27 14:27:02 -07:00
JonnyWong16
28e2463c4f
Add labels to plexapi.library.Collections 2020-09-27 14:26:32 -07:00
JonnyWong16
7016d3feea
Remove extra export metadata button on collection page 2020-09-27 14:10:01 -07:00
JonnyWong16
44b4c10bf9
Update exporter API docs 2020-09-27 14:01:51 -07:00
JonnyWong16
be82c8f6d9
Add export table to info page 2020-09-27 13:59:11 -07:00
JonnyWong16
acebf96d2f
Skip blank custom fields 2020-09-27 13:57:56 -07:00
JonnyWong16
27c5061d17
Add log message for processing custom fields 2020-09-27 13:30:10 -07:00
JonnyWong16
fcd034da00
Set export include_images if custom fields includes images 2020-09-27 13:27:37 -07:00
JonnyWong16
4ee9dbab41
Add ability to export custom fields 2020-09-27 13:26:04 -07:00
JonnyWong16
112811190e
Fix exporting collections 2020-09-27 11:52:24 -07:00
JonnyWong16
746295aa16
Only export images for supported media types 2020-09-27 11:51:27 -07:00
JonnyWong16
693c0ba658
Refactor export get_any_hdr and get_image 2020-09-27 11:41:35 -07:00
JonnyWong16
e9f37d578e
Refactor exporter 2020-09-27 11:27:16 -07:00
JonnyWong16
8f4da14611
Add collection export levels 2020-09-27 00:08:55 -07:00
JonnyWong16
063b7ce7cc
Add note for export image media types 2020-09-26 23:09:18 -07:00
JonnyWong16
b7243271f3
Add photo album and photo export levels 2020-09-26 23:08:59 -07:00
JonnyWong16
395ab97191
Add titleSort to plexapi.photo.Photoalbum and plexapi.photo.Photo 2020-09-26 23:02:15 -07:00
JonnyWong16
76da200794
Add fields to plexapi.photo.Photoalbum and plexapi.photo.Photo 2020-09-26 22:53:39 -07:00
JonnyWong16
47695debdd
Add artist, album, track export levels
* Refactor child levels
2020-09-26 22:48:47 -07:00
JonnyWong16
a5a2ba9d85
Export child images 2020-09-26 22:48:02 -07:00
JonnyWong16
3fa601db3e
Add fields to plexapi.audio.Tracks 2020-09-26 22:40:37 -07:00
JonnyWong16
b60dcb2a23
Check path exists for adding exported image file size 2020-09-26 22:38:48 -07:00
JonnyWong16
1e173c6eeb
Add working export sub media types 2020-09-26 21:42:51 -07:00
JonnyWong16
adb11db317
Use string format for export preview 2020-09-26 20:44:02 -07:00
JonnyWong16
068cb51635
Add zip file download for export with images 2020-09-26 20:36:51 -07:00
JonnyWong16
b1eab8bb0d
Add include images to exporter 2020-09-26 19:26:24 -07:00
JonnyWong16
2a4b48d0fa
Clean up Telegram send poster 2020-09-26 19:03:24 -07:00
JonnyWong16
a8e0502b41
Merge pull request #1377 from JohnnyKing94/master
Added Silent Notification option for Telegram Agent
2020-09-26 18:44:58 -07:00
JonnyWong16
ccf0e0dae7
Add default thumb and art to Live TV library 2020-09-26 18:32:13 -07:00
JonnyWong16
bfa4d3dfec
Add library name to fix metadata modal 2020-09-26 18:03:29 -07:00
JonnyWong16
93997c11dc
Add playback error notification trigger 2020-09-21 18:31:19 -07:00
JonnyWong16
7ce92d5f17
Add error state icon to activity card and history table 2020-09-21 18:30:41 -07:00
JonnyWong16
9740010368
Add container_decision to notification parameters 2020-09-21 18:06:40 -07:00
JonnyWong16
e4e0b765b6
Rename container transcoding to converting on activity cards 2020-09-21 17:57:01 -07:00
MichaIng
51d1dccb42
Avoid daemon forking with systemd
systemd units allow to run processes in foreground while daemonization is done on systemd service level when using Type=simple (default). This allows systemd to reliably track the service state, signals and could catch outputs, i.e. it is possible to remove "--quiet" to have Tautulli logging to systemd journal (journalctl) additionally or alternatively to log files.

In case of Type=forking, a PID file is required to allow system reliably determine the service state, which would be an alternative, but has no real advantage. The solution with "GuessMainPID=no" allows systemd to correctly determine the service active state, but e.g. when it is killed, it is seen as "Succeeded." since systemd cannot track the exit code or signal.
2020-09-21 23:58:30 +02:00
JonnyWong16
6f362ee2ad
Rename export level options 2020-09-20 21:34:33 -07:00
JonnyWong16
f77bbda5ac
Delete exported images folder 2020-09-20 21:31:48 -07:00
JonnyWong16
dceeaa77c5
Add checkbox to export images 2020-09-20 21:22:03 -07:00
JonnyWong16
d7c96d46e0
Refactor export get all metadata attrs 2020-09-20 21:21:37 -07:00
JonnyWong16
b9f5251188
Export art and thumb images 2020-09-20 21:04:57 -07:00
JonnyWong16
75cdc2c5e8
Add art and thumb url to plexapi collections 2020-09-20 21:03:05 -07:00
JonnyWong16
7eedb14834
Refactor exporter into Export class 2020-09-20 20:34:31 -07:00
JonnyWong16
ca06154805
Separate metadata and media export levels 2020-09-20 13:02:02 -07:00
JonnyWong16
35cdef1340
Add hdr attribute to media export 2020-09-20 12:27:42 -07:00
JonnyWong16
d609c0daeb
Add export metadata button to collections 2020-09-20 11:23:19 -07:00
JonnyWong16
db0b157d43
Add admin auth to export modal 2020-09-20 11:23:19 -07:00
JonnyWong16
906aedd2f1
Add movie export levels 2020-09-20 11:23:19 -07:00
JonnyWong16
07a9bdbde3
Add more stream export attributes 2020-09-20 11:23:19 -07:00
JonnyWong16
588b1b1bc3
Add more stream attributes to plexapi 2020-09-20 11:23:19 -07:00
JonnyWong16
eb63f89b1f
Add helper functions for export levels 2020-09-20 11:23:19 -07:00
JonnyWong16
fb81d1b6f3
Add human duration and file size to export attributes 2020-09-20 11:23:19 -07:00
JonnyWong16
b897212050
Update human_file_size helper function 2020-09-20 11:23:19 -07:00
JonnyWong16
3f6612fe9a
Update human_duration helper function 2020-09-20 11:23:19 -07:00
JonnyWong16
bf1a59c5c0
Remove traceback for export 2020-09-20 11:23:19 -07:00
JonnyWong16
6fb3a3a3c8
Update export json and csv for Python 2 2020-09-20 11:23:19 -07:00
JonnyWong16
ed454b2a4a
Add backports.csv 1.0.7 2020-09-20 11:23:19 -07:00
JonnyWong16
27f828e619
Message to view export on library page 2020-09-20 11:23:19 -07:00
JonnyWong16
bde0ce20d8
Fix export modal file format not working on library page 2020-09-20 11:23:19 -07:00
JonnyWong16
28c6163a31
Exporter check rating key first 2020-09-20 11:23:19 -07:00
JonnyWong16
14bb377794
Add link to export filename to view in browser 2020-09-20 11:23:19 -07:00
JonnyWong16
61c692ad4e
Cancel processing exports on startup 2020-09-20 11:23:19 -07:00
JonnyWong16
42856e5ac8
Fix export modal selected file format 2020-09-20 11:23:19 -07:00
JonnyWong16
e82ad09a8d
Rename row_id to exporr_id 2020-09-20 11:23:19 -07:00
JonnyWong16
40fbc55ab3
Add file size to export table 2020-09-20 11:23:19 -07:00
JonnyWong16
a27a5b023b
Add file format to export modal 2020-09-20 11:23:19 -07:00
JonnyWong16
a7eb563c2e
Move export thread so table can be refreshed 2020-09-20 11:23:19 -07:00
JonnyWong16
43fefcf748
Add export modal and buttons to library and info page 2020-09-20 11:23:19 -07:00
JonnyWong16
621fb95227
Auto-refresh export table if an item is processing 2020-09-20 11:23:19 -07:00
JonnyWong16
d3704fcee6
Add ability for custom calculated attributes for exporting 2020-09-20 11:23:19 -07:00
JonnyWong16
55100dfb7a
Fix select columns button not showing for export table 2020-09-20 11:23:19 -07:00
JonnyWong16
010fefcbbc
Link rating key in export table to info page 2020-09-20 11:23:19 -07:00
JonnyWong16
7627f025ed
Change button colours on export table 2020-09-20 11:23:19 -07:00
JonnyWong16
e256d2080d
Make export work on Python 2 and set failed state 2020-09-20 11:23:19 -07:00
JonnyWong16
58292067f0
Fix export csv missing dict keys 2020-09-20 11:23:19 -07:00
JonnyWong16
d5e91801d6
Fix downloading export file 2020-09-20 11:23:19 -07:00
JonnyWong16
91d545f480
Disable export delete button if still processing 2020-09-20 11:23:19 -07:00
JonnyWong16
9c2599acbe
No export section_id for playlists 2020-09-20 11:23:19 -07:00
JonnyWong16
06341ee632
Fix export doc strings 2020-09-20 11:23:19 -07:00
JonnyWong16
bcc693e4c7
Add error message for failed export download 2020-09-20 11:23:19 -07:00
JonnyWong16
8b8afacaea
Add function to delete exported files 2020-09-20 11:23:19 -07:00
JonnyWong16
deb49d7ff9
Add function to download exported files 2020-09-20 11:23:19 -07:00
JonnyWong16
6334ffa197
Add export directory 2020-09-20 11:23:19 -07:00
JonnyWong16
b872cce2a4
Check exported file exists 2020-09-20 11:23:19 -07:00
JonnyWong16
de2e2ee962
Add file_format to exports table 2020-09-20 11:23:19 -07:00
JonnyWong16
5468676811
Add table to list exported items 2020-09-20 11:23:19 -07:00
JonnyWong16
c102020698
Add metadata export function 2020-09-20 11:23:19 -07:00
JonnyWong16
0ff363b6ee
Add export helper functions 2020-09-20 11:23:19 -07:00
JonnyWong16
c324cf69ed
Merge custom plexapi 3.6.0-tautulli 2020-09-20 11:23:19 -07:00
Gianfranco
721cf5c930 Renamed 'silent_message' to 'silent_notification.'
Signed-off-by: Gianfranco <gianfry94@hotmail.it>
2020-09-14 20:46:22 +02:00
Gianfranco
f07bcca96a Wording changes
Signed-off-by: Gianfranco <gianfry94@hotmail.it>
2020-09-14 20:26:27 +02:00
JonnyWong16
056d0d81ac
Improve activity monitor session start log message 2020-09-14 09:19:33 -07:00
JonnyWong16
38ccd37867
Fix QR code not showing up for localhost address 2020-09-14 08:51:22 -07:00
Gianfranco
21799116c5 Reworked the Telegram Agent code to include the "silent_message" option. Both cases are now managed and the alerts are being respected.
Signed-off-by: Gianfranco <gianfry94@hotmail.it>
2020-09-14 12:46:45 +02:00
JonnyWong16
60bdf1d1ce
Schedule database pragma optimize 2020-09-12 14:18:31 -07:00
JonnyWong16
02658759ea
Fix purge library from the edit modal 2020-09-10 08:35:26 -07:00
JonnyWong16
68946ceede
Add uninstall before installing to Windows installer 2020-09-06 19:03:47 -07:00
JonnyWong16
9184ae4608
v2.5.5 2020-09-06 14:43:16 -07:00
JonnyWong16
de64b5ddfa
Revert "Add negative margin to sections with fixed cards"
This reverts commit 668c9e6045.

* Revert #1378
2020-09-06 14:18:25 -07:00
JonnyWong16
b3ffbbf3ea
Patch osxnotify for Python 3 compatibility
* Fixes Tautulli/Tautulli-Issues#276
2020-09-06 14:14:08 -07:00
JonnyWong16
aa80fdf738
Merge pull request #1380 from mvanbaak/issue_277_update_ipaddr
Upgrade ipaddr from 2.1.11 to 2.2.0. Its now python 3 compatible

* Fixes Tautulli/Tautulli-Issues#277
2020-09-06 13:59:13 -07:00
JonnyWong16
9ad95f51d4
Fix whois lookup failing in some instances 2020-09-06 13:57:42 -07:00
JonnyWong16
0902a61341
Update profilehooks to 1.12.0
* Fixes Tautulli/Tautulli-Issues#275
2020-09-06 13:45:01 -07:00
JonnyWong16
55ffd54e5b
Filter out background theme music sessions 2020-09-04 18:29:37 -07:00
JonnyWong16
e014bfa63e
Log selected Plex server 2020-09-04 18:27:28 -07:00
JonnyWong16
687672e9c1
Fix plural seasons in recently added 2020-09-04 08:01:51 -07:00
Michiel van Baak
137889dc9c Upgrade ipaddr from 2.1.11 to 2.2.0. Its now python 3 compatible 2020-09-03 16:46:37 +02:00
JonnyWong16
f24f4a4250
Fix checking pid file on startup 2020-08-29 12:35:04 -07:00
JonnyWong16
95fc108d57
Merge pull request #1378 from dotsam/margin-fix
Add negative margin to sections with fixed cards
2020-08-29 12:31:58 -07:00
JonnyWong16
95f48ba9f6
Return empty results for API instead of null error
* Fixes Tautulli/Tautulli-Issues#274
2020-08-26 18:56:49 -07:00
JonnyWong16
d80cf232c8
Add multi-column sorting to datatables API commands 2020-08-26 18:32:06 -07:00
JonnyWong16
ab3ec875a3
Return custom library art for datatable 2020-08-26 17:53:50 -07:00
Sam Edwards
668c9e6045
Add negative margin to sections with fixed cards 2020-08-23 23:14:45 -07:00
JonnyWong16
67b452a461
Fix user and library recently played sorting order 2020-08-23 18:17:41 -07:00
Gianfranco
81ee44b60f
Added "silent_message" option for Telegram Agent
Added a new checkbox in the notification telegram config in order to send new messages silently. In this way the telegram users will receive a notification with no sound.
2020-08-21 22:49:26 +02:00
JonnyWong16
9b3bfd14db
Check external guids for notification parameters 2020-08-21 11:58:07 -07:00
JonnyWong16
e00c8fb186
Add external guids to metadata 2020-08-21 11:57:43 -07:00
JonnyWong16
a0919e246d
Use pyinstaller==3.6 for package builds 2020-08-21 11:10:14 -07:00
JonnyWong16
003f684f8a
Override thumb for clips using the art rating_key 2020-08-21 10:53:05 -07:00
JonnyWong16
69d55c60c3
Add icon and thumb for clips on history table 2020-08-21 10:53:05 -07:00
JonnyWong16
560094dcf6
Add logger message for generating newsletter 2020-08-21 10:53:05 -07:00
JonnyWong16
4edd6ce911
Add scheduled task to optimize database 2020-08-21 10:52:26 -07:00
JonnyWong16
f76bd2af8e
Merge pull request #1376 from nwithan8/patch-1
Spelling error
2020-08-11 14:32:21 -07:00
Nate Harris
7747503fee
Spelling error 2020-08-09 22:40:47 -04:00
JonnyWong16
1e1a8ddfb0
Fix get_logs API command encoding error
* Fixes Tautulli/Tautulli-Issues#269
2020-08-08 21:37:09 -07:00
JonnyWong16
9bcd18f1b6
Remove revealed characters in masked log 2020-08-08 21:31:50 -07:00
JonnyWong16
50b6f9a8f2
Blacklist password parameter in get_apikey command 2020-08-08 21:26:01 -07:00
JonnyWong16
b4ba88b3e5
Fix get_apikey API command with a hashed password 2020-08-08 21:19:39 -07:00
JonnyWong16
ba9acd6e23
Add auth to some admin endpoints 2020-08-05 21:21:19 -07:00
JonnyWong16
dd9513313b
Don't highlight links in scheduler table 2020-08-05 20:56:44 -07:00
JonnyWong16
288a1c86ab
Replace white with "not white" 2020-08-05 20:54:12 -07:00
JonnyWong16
8e28cb10fa
Rename terminate session to terminate stream 2020-08-05 09:02:18 -07:00
JonnyWong16
3d35a525d3
Make sure json response is encoded to utf-8 2020-08-03 21:45:11 -07:00
JonnyWong16
f7153d0f3b
Fix Local user icon not showing in library user stats 2020-08-03 11:45:43 -07:00
JonnyWong16
4285b55c15
Update timestamp helper functions 2020-08-03 10:29:45 -07:00
JonnyWong16
b54576f08f
Fix download API commands not returning the file
* Fixes Tautulli/Tautulli-Issues#268
2020-08-02 22:09:40 -07:00
JonnyWong16
6b4db681ff
Fix get_synced_items API command returning error with empty result
* Fixes Tautulli/Tautulli-Issues#267
2020-08-02 22:03:35 -07:00
JonnyWong16
f582f781f3
Update helpers.now function 2020-08-02 13:48:10 -07:00
JonnyWong16
9baecb0a41
Change webstart failure error message 2020-08-02 10:29:57 -07:00
JonnyWong16
91a18e1a92
Add get_server_info API command 2020-08-02 10:18:57 -07:00
JonnyWong16
acfbb0e96d
Add import_config to API docs 2020-08-02 10:18:25 -07:00
JonnyWong16
c52292962d
Remove mock 2020-07-31 22:06:23 -07:00
JonnyWong16
6e53743716
Update plexapi to v3.6.0 2020-07-31 22:06:07 -07:00
JonnyWong16
873194b402
Add hidden import pkg_resources.py2_warn to Windows installer 2020-07-31 15:14:31 -07:00
JonnyWong16
21dec5feb3
v2.5.4 2020-07-31 14:24:08 -07:00
JonnyWong16
bee4106af0
Change direct stream icon 2020-07-31 14:23:01 -07:00
JonnyWong16
bbb6e46515
Replace sys.stderr with logger 2020-07-27 18:47:08 -07:00
JonnyWong16
570ebb4f73
Add plex_id to notification parameters 2020-07-27 18:38:04 -07:00
JonnyWong16
d93204af4e
Lookup TVmaze using title 2020-07-27 18:30:00 -07:00
JonnyWong16
702f116db9
Lookup The Movie Database using title and year 2020-07-27 18:20:12 -07:00
JonnyWong16
0c8607b3ec
Fix typo in QR modal 2020-07-25 13:28:39 -07:00
JonnyWong16
3a2cc6efc7
Trim address when generating the QR code 2020-07-25 13:28:39 -07:00
JonnyWong16
1b37ff1655
Mobile device registration temporarily assume device_id is onesignal_id 2020-07-25 13:28:34 -07:00
JonnyWong16
769934c8a5
Add server_id to Andoird App notification data 2020-07-25 13:21:52 -07:00
JonnyWong16
7f1a4ec34a
Add return PMS name and server ID from device registration 2020-07-25 13:21:52 -07:00
JonnyWong16
27438f7915
Don't allow apikey when using an app 2020-07-25 13:21:51 -07:00
JonnyWong16
8651bef9c1
Mask onesignal_id from API logs 2020-07-25 13:21:51 -07:00
JonnyWong16
36324d10dc
Add onesignal_id to register device API 2020-07-25 13:21:46 -07:00
JonnyWong16
0272c35047
Fix parsing request responst message 2020-07-25 11:59:24 -07:00
JonnyWong16
70c0f912e2
Add themoviedb rating image 2020-07-24 09:12:11 -07:00
JonnyWong16
59a6acc088
Fix encoding issue with websocket logging 2020-07-23 17:44:17 -07:00
JonnyWong16
10b0726727
Remove support for .exe from script notifications 2020-07-23 17:33:43 -07:00
JonnyWong16
8f1360d7c2
Check for valid script extension when using a prefix override
* Also removes php, ruby, and perl overrides
2020-07-23 17:33:36 -07:00
JonnyWong16
e0e5ac9ecc
Check for a valid script and script extension 2020-07-22 18:55:14 -07:00
JonnyWong16
c814f219a2
Prevent simultaneous importing of database/config 2020-07-22 18:33:47 -07:00
JonnyWong16
9095fc0c7a
Catch config.ParseError 2020-07-22 18:27:23 -07:00
JonnyWong16
a675202537
Browse path starting from from current value 2020-07-18 15:19:42 -07:00
JonnyWong16
b52ab4885b
Add browser button for script folder 2020-07-18 12:13:42 -07:00
JonnyWong16
43e26c9b56
Add Plex logs folder to config not imported note 2020-07-16 19:38:20 -07:00
JonnyWong16
703a7feed2
Update help text for SSL certificates/key in PEM format 2020-07-16 19:29:11 -07:00
JonnyWong16
7b69ed4cec
Add browse function to settings with a folder or file 2020-07-16 19:27:14 -07:00
JonnyWong16
fcca7f969e
Add filter extension as data property 2020-07-16 19:26:24 -07:00
JonnyWong16
ec34ea2116
Trigger change and unbind after selecting in file browser 2020-07-16 19:05:18 -07:00
JonnyWong16
3dc36c3b92
Refactor browse path function 2020-07-16 18:19:43 -07:00
JonnyWong16
f0d4fd5523
Add placeholder text for database/config import 2020-07-16 18:19:20 -07:00
JonnyWong16
7fe6c72fe2
Do not import PMS logs folder from config 2020-07-16 18:01:47 -07:00
JonnyWong16
d216d0f27f
Reword import help text 2020-07-16 00:02:13 -07:00
JonnyWong16
43a7758acd
Cleanup database import modal 2020-07-15 23:53:01 -07:00
JonnyWong16
3043956dec
Add config import to settings page 2020-07-15 23:51:48 -07:00
JonnyWong16
06665fdd06
Add fucntion to import a config file 2020-07-15 23:26:22 -07:00
JonnyWong16
beff5caaac
Clean shutdown page 2020-07-15 22:53:46 -07:00
JonnyWong16
3859412b2c
Fix database import API docs 2020-07-15 22:10:17 -07:00
JonnyWong16
f7ec476fc0
Remove more unused config keys 2020-07-15 21:25:34 -07:00
JonnyWong16
b97d32671d
Remove unused library update functions 2020-07-15 21:21:17 -07:00
JonnyWong16
01c56ef280
Remove helper bool check in database import status 2020-07-15 21:06:28 -07:00
JonnyWong16
b9422312f3
Remove unused check recently added pinger 2020-07-15 21:05:49 -07:00
JonnyWong16
9a0f83c3e7
Remove old config updates 2020-07-15 21:04:30 -07:00
JonnyWong16
fbfedb2e62
Remove unused config keys 2020-07-15 21:04:22 -07:00
JonnyWong16
4f8a462041
Update chown instructions in systemd script 2020-07-13 19:08:20 -07:00
JonnyWong16
141d043a6a
FreeBSD/FreeNAS python is python3 2020-07-13 19:08:19 -07:00
JonnyWong16
c1266fed12
Update API docs for database import 2020-07-13 19:08:14 -07:00
JonnyWong16
4a4be9798d
Adjust user IP table column widths 2020-07-12 12:54:56 -07:00
JonnyWong16
172692ccca
Fix user IP table showing first played instead of last played 2020-07-12 12:54:42 -07:00
JonnyWong16
50e7c0469f
Merge pull request #1374 from dotsam/ip-first-streamed
Add first_seen to user IP Table
2020-07-12 12:41:46 -07:00
JonnyWong16
44f74e3590
Mask device token and device id from API logs 2020-07-12 10:35:52 -07:00
Sam Edwards
63656b73c2
Add first_seen to user ips and add title attr with full date/time 2020-07-11 15:23:26 -07:00
JonnyWong16
40ecf56904
Fix Cloudinary upload for non-ASCII characters on Python 2 2020-07-10 21:57:53 -07:00
JonnyWong16
b4a10adec2
Merge branch 'v2.5-monitor-remote-access' into nightly 2020-07-10 17:09:58 -07:00
JonnyWong16
1698622d63
v2.5.3 2020-07-10 17:07:18 -07:00
JonnyWong16
fa27271647
Change shebang on contrib scripts 2020-07-10 17:02:23 -07:00
JonnyWong16
d837811c68
Improve start script 2020-07-09 17:13:16 -07:00
JonnyWong16
ad195f0969
Fix deleteing more than 1000 history entries at the same time 2020-07-08 12:27:20 -07:00
JonnyWong16
4a8748e322
Live TV library not being recreated after server identifier is changed
* Fixes Tautulli/Tautulli-Issues#261
2020-07-07 18:14:00 -07:00
JonnyWong16
0f016c83ea
Fix ipwhois data location for macOS package
* Fixes Tautulli/Tautulli-Issues#260
2020-07-07 17:25:46 -07:00
JonnyWong16
061ae44da4
Fix indentation in macOS postinstall script 2020-07-07 17:05:15 -07:00
JonnyWong16
a8b90bf100
Reduce macOS build requirement to pyobjc-framework-Cocoa 2020-07-07 17:05:10 -07:00
JonnyWong16
eb3cd49bc4
Add hidden import pkg_resources.py2_warn to macos.spec
* Fixes build on macOS 10.13 (High Sierra)
2020-07-06 20:57:37 -07:00
JonnyWong16
416d869288
Add python version to Google Analytics 2020-07-06 18:13:33 -07:00
JonnyWong16
a116c26c25
Run python scripts with the same sys.executable as Tautulli 2020-07-06 11:32:16 -07:00
JonnyWong16
cc4ec53dac
Full path to python3 interpreter in FreeBSD startup script 2020-07-06 10:08:36 -07:00
JonnyWong16
63164c7ff5
Quote command in systemd script 2020-07-06 09:37:37 -07:00
JonnyWong16
9815c014e8
Add python interpreter to init-scripts 2020-07-06 09:30:35 -07:00
JonnyWong16
69675151bf
Remove monitor remote access settings
* Tautulli/Tautulli-Issues#251
2020-07-05 20:40:44 -07:00
JonnyWong16
99e395ddfa
Update scheduled tasks table
* Tautulli/Tautulli-Issues#251
2020-07-05 20:39:31 -07:00
JonnyWong16
7fe1e542df
Remove check remote access scheduled task
* Tautulli/Tautulli-Issues#251
2020-07-05 20:38:54 -07:00
JonnyWong16
938134081b
Add remote access monitoring using websockets
* Fixes Tautulli/Tautulli-Issues#251
2020-07-05 20:36:44 -07:00
JonnyWong16
3fd2234a92
Remove refresh reachability 2020-07-05 19:20:52 -07:00
JonnyWong16
41843dc573
Rename some column headers 2020-07-04 12:22:40 -07:00
JonnyWong16
cc6bd528a5
Add architecture to release assets 2020-07-04 11:28:22 -07:00
JonnyWong16
2625ef5fb9
Use Popen to restart on macOS 2020-07-03 19:48:27 -07:00
JonnyWong16
dbd2d28877
Set macOS menu bar icon thread to daemon 2020-07-03 19:47:57 -07:00
JonnyWong16
f70f814c70
Shutdown tray icons last 2020-07-03 19:47:11 -07:00
JonnyWong16
6710e42134
Hide macOS dock icon for pkg install 2020-07-03 19:46:27 -07:00
JonnyWong16
78c5b45e43
Also fix e562ec9 for Python 2 2020-07-03 11:24:47 -07:00
JonnyWong16
e562ec96fa
Fix encoding when reading a newsletter file 2020-07-02 20:46:42 -07:00
JonnyWong16
9b5e01c319
Fix logger for email notification exception 2020-07-02 12:45:45 -07:00
JonnyWong16
0097532f4a
Fix startup script 2020-07-02 12:33:32 -07:00
JonnyWong16
91935c9018
Add hidden import cheroot.ssl.builtin for pyinstaller 2020-07-02 09:20:58 -07:00
JonnyWong16
83df807f7e
Fix typo in eb3db20 2020-07-02 09:15:13 -07:00
JonnyWong16
eb3db20340
Add hidden import chroot.ssl for pyinstaller 2020-07-02 09:11:15 -07:00
JonnyWong16
6dab6194ea
Replace which with command -v in startup script 2020-07-01 22:44:05 -07:00
JonnyWong16
356f64cac0
v2.5.2 2020-07-01 19:49:44 -07:00
JonnyWong16
f77f289125
Move GitHub sponsor first 2020-07-01 15:53:08 -07:00
JonnyWong16
280257477a
Revert "Change shebang to python3"
This reverts commit cd8a899521.
2020-07-01 14:59:18 -07:00
JonnyWong16
660141cb16
Try various python versions in startup script 2020-07-01 14:43:35 -07:00
JonnyWong16
cd8a899521
Change shebang to python3 2020-07-01 14:43:04 -07:00
JonnyWong16
cb577c51b8
v2.5.2-beta 2020-06-27 15:04:06 -07:00
JonnyWong16
1c395ab10c
Patch SameSite support into cookies
* Python 2.7 is missing SameSite cookie attribute
2020-06-27 15:01:16 -07:00
JonnyWong16
07d7170e49
v2.5.1-beta 2020-06-26 18:37:07 -07:00
JonnyWong16
88e23627fd
Fix typo 2020-06-25 19:12:10 -07:00
JonnyWong16
48f846da40
Expire the previous JWT on update if HTTP root is set
* Required for Tautulli/Tautulli-Issues#255
2020-06-24 14:04:07 -07:00
JonnyWong16
ff887d9948
Remove unnecessary x_plex_headers from 805d45b 2020-06-23 20:07:45 -07:00
JonnyWong16
617b0d6fd9
Set JWT cookie path to HTTP root
* Fixes Tautulli/Tautulli-Issues#255
2020-06-23 20:00:50 -07:00
JonnyWong16
805d45bd33
Don't overwrite PMS_UUID when fetching a new token 2020-06-23 19:47:01 -07:00
JonnyWong16
fef428202f
Start Tautulli using different user in Docker container 2020-06-21 12:38:27 -07:00
JonnyWong16
40fd82febd
Only change Docker permissions if PUID/PGID exists 2020-06-21 10:38:26 -07:00
JonnyWong16
45f0001da5
Fix Docker permissions if pre-existing PUID/PGID 2020-06-21 09:58:29 -07:00
JonnyWong16
c7a3e1e3bf
Change Docker default PUID and PGID 2020-06-21 00:27:48 -07:00
JonnyWong16
9dd8cc9e49
Fix Docker container not using PUID and PGID environment variables 2020-06-20 23:51:29 -07:00
JonnyWong16
d252d4cd2d
Update Publish Docker workflow 2020-06-20 23:51:21 -07:00
JonnyWong16
bc1328040c
Update Publish Release workflow 2020-06-20 23:51:20 -07:00
JonnyWong16
82919d3c1d
Fix indent in MacOS postinstall script 2020-06-20 23:51:19 -07:00
JonnyWong16
7c801c2f5e
Add flag for offical mobile app 2020-06-20 16:16:35 -07:00
JonnyWong16
9a932aea12
Fix text wrapping on user player stats 2020-06-20 15:03:51 -07:00
JonnyWong16
5696e75abe
Add LG platform icon 2020-06-20 15:03:32 -07:00
JonnyWong16
efb3f748c2
Improve app registration instructions 2020-06-20 11:36:54 -07:00
JonnyWong16
450b3865a8
Validate OneSignal Player ID when registering device 2020-06-20 10:59:55 -07:00
JonnyWong16
970667adca
Only allow temporary device token access to register app 2020-06-20 10:58:49 -07:00
JonnyWong16
89307dad01
Show missing pyobjc module message on MacOS menu bar setting 2020-06-14 15:22:58 -07:00
JonnyWong16
451feda86b
Rename system tray to menu bar on MacOS 2020-06-14 14:59:37 -07:00
JonnyWong16
4d241fac48
Try import rumps 2020-06-14 14:52:55 -07:00
JonnyWong16
4390f5cbc8
Check for Foundation module for MacOS system track icon
* Fixes Tautulli/Tautulli-Issues#249
2020-06-13 14:36:47 -07:00
JonnyWong16
7f9d46eac3
Fix Cloudinary upload for Python 2 2020-06-03 20:41:57 -07:00
JonnyWong16
d0f28883aa
Remove ability to login using Plex username / password.
* Only login using Plex OAuth
2020-06-02 17:28:24 -07:00
JonnyWong16
48203e64a9
Improve test browser notifications 2020-06-01 22:55:59 -07:00
JonnyWong16
42b17ca495
Change default recently added notification delay to 300s 2020-06-01 16:44:01 -07:00
JonnyWong16
d8080fe506
Fix creating self-signed certificates on Python 3
* Fixes Tautulli/Tautulli-Issues#248
2020-06-01 16:40:25 -07:00
JonnyWong16
be910e24f7
Update release workflow
* Update joncloud/makensis-action@v1.2
2020-05-31 15:35:55 -07:00
JonnyWong16
ce6d70f6fd
Fix CHANGELOG.md 2020-05-31 15:29:40 -07:00
JonnyWong16
827e05e4d7
Update release workflow
* Update joncloud/makensis-action@v2
2020-05-31 15:29:23 -07:00
JonnyWong16
43e40e99f1
v2.5.0-beta 2020-05-31 14:51:18 -07:00
JonnyWong16
d95afa990d
Auto collapse news items after a week 2020-05-31 14:47:08 -07:00
JonnyWong16
e14457da58
Update README.md 2020-05-31 14:31:01 -07:00
JonnyWong16
9613934ae5
Add symlink for init.freenas -> init.freebsd 2020-05-31 14:17:31 -07:00
JonnyWong16
07a48c04d7
Improve PMS verify error message in setup wizard 2020-05-28 19:22:55 -07:00
JonnyWong16
fbcf59abf0
Add database import in progress message 2020-05-24 01:10:52 -07:00
JonnyWong16
2ef40a6a1c
Remove shadow database module name 2020-05-24 01:10:26 -07:00
JonnyWong16
5b5c4d1a8b
Ignore reference_id when deleting duplicate rows 2020-05-24 00:36:41 -07:00
JonnyWong16
5f2a74893a
Fix importing using the overwrite method 2020-05-24 00:18:10 -07:00
JonnyWong16
0741b4021c
Fix database exception 2020-05-24 00:13:29 -07:00
JonnyWong16
f2323b0dff
Sort import database tables 2020-05-24 00:13:17 -07:00
JonnyWong16
0462121f69
Fix deleteing duplicate rows from session history tables after import 2020-05-24 00:01:58 -07:00
JonnyWong16
fe4ddaeb52
Show notification sent when testing Browser notification 2020-05-23 17:54:55 -07:00
JonnyWong16
bdbfafabbd
Append suffix to uploaded database 2020-05-23 16:27:23 -07:00
JonnyWong16
42c6340c06
Delete uploaded file if invalid database 2020-05-23 16:02:45 -07:00
JonnyWong16
39e1caec0f
Add delete file helper function 2020-05-23 16:02:07 -07:00
JonnyWong16
ef72832e5a
Redo importing session history 2020-05-23 15:48:40 -07:00
JonnyWong16
39eb657012
Fix typo when importing session_history table names 2020-05-19 22:41:49 -07:00
JonnyWong16
b8f8d45807
Skip importing table if it doesn't exist 2020-05-19 22:40:53 -07:00
JonnyWong16
b01fefc235
Check for existing column names when importing 2020-05-19 21:57:04 -07:00
JonnyWong16
09f6eb8e19
Fix importing into an empty database 2020-05-19 21:31:22 -07:00
JonnyWong16
e5d4969917
Fix imports for deleting history on Python 2 2020-05-19 20:18:38 -07:00
JonnyWong16
53aa740305
Supress InsecureRequestWarning for requests without ssl verify 2020-05-16 17:30:44 -07:00
JonnyWong16
9a00350ffc
Add option to disable websocket SSL cert verify 2020-05-16 17:30:03 -07:00
JonnyWong16
98ffa3735b
Add verify ssl certificate to websocket connection 2020-05-16 17:16:53 -07:00
JonnyWong16
9073568c0f
Set branch to nightly 2020-05-16 16:26:55 -07:00
JonnyWong16
17a01d65aa
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/version.py
#	plexpy/webserve.py
2020-05-16 16:22:10 -07:00
JonnyWong16
5089575aac
Remove python interpeter from systemd script (Closes #1373) 2020-05-16 16:19:34 -07:00
JonnyWong16
7f178e0913
v2.2.4 2020-05-16 16:13:03 -07:00
JonnyWong16
dcad3017d3
Fix get_history returning incorrect title (Fixes Tautulli/Tautulli-Issues#244) 2020-05-16 16:11:25 -07:00
JonnyWong16
ae88489e55
Remove extra spaces in notifier config text accordion 2020-05-10 14:18:54 -07:00
JonnyWong16
b57065d6ee
Add Tautulli news to settings page 2020-05-10 14:18:36 -07:00
JonnyWong16
71551d3f6d
Show "None" for source subtitle if user selected subtitle 2020-05-09 17:25:46 -07:00
JonnyWong16
cbcad30a6c
Fix guest login filters 2020-05-09 16:19:30 -07:00
JonnyWong16
e2c2f66e97
Update Plex.tv signin to /api/v2 2020-05-09 16:19:12 -07:00
JonnyWong16
eeff665680
Fix form login using Plex.tv credentials 2020-05-09 15:36:20 -07:00
JonnyWong16
6ef9d187ba
Fix remote access check rescheduled when settings are saved 2020-05-09 15:16:07 -07:00
JonnyWong16
6d23ef9105
Decode websocket data 2020-05-09 15:06:26 -07:00
JonnyWong16
6c8b425fb3
Improve browsing for path on Windows 2020-05-08 17:54:14 -07:00
JonnyWong16
d4b46a5721
Get stream user by user_id instead of username 2020-05-07 12:25:23 -07:00
JonnyWong16
9d2be4b939
Fix typo 2020-05-04 14:29:46 -07:00
JonnyWong16
bc017fb010
Fix Plex Android/iOS notification agent settings not opening 2020-05-04 13:43:52 -07:00
JonnyWong16
bfabbe3cdb
Fix library stuck as inactive in the database 2020-05-04 13:03:49 -07:00
JonnyWong16
8a8d47f8e7
Add try again message to database import 2020-05-03 18:39:00 -07:00
JonnyWong16
b01fac9641
Fix loging on Python 2 2020-05-03 18:34:29 -07:00
JonnyWong16
25c850e243
Increase file upload size to 1GB 2020-05-03 18:11:49 -07:00
JonnyWong16
8c7476a670
Only use form data if uploading a database file 2020-05-03 17:49:10 -07:00
JonnyWong16
12effd643f
Sort folders and files in file browser 2020-05-03 17:13:17 -07:00
JonnyWong16
209008e50d
Decode browse path 2020-05-03 17:03:22 -07:00
JonnyWong16
b336f07ff9
Improve database import error messages 2020-05-03 16:52:17 -07:00
JonnyWong16
73f6012507
Clear database file name after uploading 2020-05-03 16:12:26 -07:00
JonnyWong16
b73564d2e0
Add Tautulli database to welcome wizard import message 2020-05-03 15:19:36 -07:00
JonnyWong16
00adb45086
Add launch browser toggle to system tray 2020-05-03 15:16:38 -07:00
JonnyWong16
d604d40e91
Missing comma 2020-05-03 14:53:38 -07:00
JonnyWong16
ba3f6935db
Fix missing ipwhois data in bundle package 2020-05-03 14:52:29 -07:00
JonnyWong16
980c4f7618
Add option to upload or browse for a database file to import 2020-05-03 14:33:25 -07:00
JonnyWong16
a869859491
Improve validating database before import 2020-05-02 23:14:17 -07:00
JonnyWong16
15a638b86e
Keep primary key instead of re-indexing history when overwriting Tautulli database import 2020-05-02 22:06:04 -07:00
JonnyWong16
e999000102
Fix overwrite Tautulli database importing 2020-05-02 21:56:39 -07:00
JonnyWong16
95bdc000ca
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/version.py
2020-05-02 14:05:41 -07:00
JonnyWong16
1d46efe037
Add bundle to status table in readme 2020-05-02 13:00:03 -07:00
JonnyWong16
5499e89058
Don't show deleted library on homepage cards 2020-05-02 12:36:04 -07:00
JonnyWong16
a5653e365e
Improve merge database import method and remove append method 2020-05-01 19:32:19 -07:00
JonnyWong16
35a0242037
v2.2.3 2020-05-01 09:22:35 -07:00
JonnyWong16
e698bcb375
Skip importing temporary sessions table 2020-04-30 22:16:40 -07:00
JonnyWong16
33d5aca6d4
Add note that settings also imported with database 2020-04-30 22:15:44 -07:00
JonnyWong16
058bd32329
Update import_database API docs 2020-04-30 22:11:06 -07:00
JonnyWong16
52d38883dc
Add Tautulli database import to the settings page 2020-04-30 22:06:54 -07:00
JonnyWong16
c1d98ab901
Add method to import a Tautulli database 2020-04-30 22:06:41 -07:00
JonnyWong16
e555b7e456
Add index to sessions_continued database table 2020-04-30 17:55:50 -07:00
JonnyWong16
031bef8c02
Add index to image lookup database tables 2020-04-30 17:44:27 -07:00
JonnyWong16
3bf138e2ad
Add branch build installer workflow 2020-04-30 17:37:06 -07:00
JonnyWong16
4e0563bbf9
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/activity_pinger.py
#	plexpy/webserve.py
2020-04-28 18:44:41 -07:00
JonnyWong16
e2e7063a29
Expose remote access check settings in the UI 2020-04-28 18:39:12 -07:00
JonnyWong16
03035d0eac
Prevent spamming the logs with remote access failures 2020-04-28 18:04:05 -07:00
JonnyWong16
7ce9283421
Fix geopip lookup for IPv6 addresses 2020-04-28 08:42:00 -07:00
JonnyWong16
a8783ac351
Check if Windows registry value exists before trying to delete 2020-04-27 19:49:14 -07:00
JonnyWong16
fb51894fad
Update build installer workflow 2020-04-27 19:35:13 -07:00
JonnyWong16
25d65e8d65
Add temporary test builds 2020-04-27 19:30:32 -07:00
JonnyWong16
3e10e0e511
Python 2 compatible Windows imports 2020-04-27 19:03:45 -07:00
JonnyWong16
c3245c1f03
Remove keep alive from MacOS plist 2020-04-27 18:24:46 -07:00
JonnyWong16
5b022599b4
Add build requirements.txt 2020-04-27 18:24:45 -07:00
JonnyWong16
d5d219d46f
Do not auto-shutdown Tautulli in installers 2020-04-27 18:24:45 -07:00
JonnyWong16
e546689e01
Check if MacOS login item exists before adding 2020-04-27 18:24:44 -07:00
JonnyWong16
cac9e0b164
Add startup scripts 2020-04-27 18:24:44 -07:00
JonnyWong16
4bb5920c04
Fix only MacOS system tray icon on Mac 2020-04-27 18:24:44 -07:00
JonnyWong16
3ea257f8f3
Add MacOS pkg post install script to open Tautulli 2020-04-27 18:24:43 -07:00
JonnyWong16
347db6b770
Update workflow for beta releases 2020-04-27 18:24:43 -07:00
JonnyWong16
fafe28a6d6
Shutdown MacOS system tray icon 2020-04-27 18:24:42 -07:00
JonnyWong16
eb6cb60ee3
Fix toggle startup in MacOS system tray menu 2020-04-27 18:24:42 -07:00
JonnyWong16
8226a14b00
Add dependencies for MacOS system tray icon 2020-04-27 18:24:41 -07:00
JonnyWong16
c6bd1b06f2
Hide auto update setting for bundled app 2020-04-27 18:24:37 -07:00
JonnyWong16
be38028244
Fix MacOS tray icon 2020-04-27 18:23:38 -07:00
JonnyWong16
b8ea04f5a4
Add divder to MacOS system tray menu 2020-04-27 18:23:37 -07:00
JonnyWong16
cd5ed1d748
Update system tray icon 2020-04-27 18:23:37 -07:00
JonnyWong16
00c9fc79f9
Rename sys_tray_icon setting 2020-04-27 18:23:34 -07:00
JonnyWong16
d5373c3992
Add MacOS system tray icon 2020-04-27 18:22:50 -07:00
JonnyWong16
3001ff8c53
Clean up Windows tray icon 2020-04-27 18:22:49 -07:00
JonnyWong16
0571a091f7
Add rumps 0.3.0 2020-04-27 18:22:49 -07:00
JonnyWong16
1bca410bcb
Launch browser on system startup based on setting 2020-04-27 18:22:48 -07:00
JonnyWong16
463ed2f46a
Add launch startup to setup wizard to make sure it's enabled 2020-04-27 18:22:48 -07:00
JonnyWong16
f8f0717913
Refactor Windows system tray code 2020-04-27 18:22:47 -07:00
JonnyWong16
53cd759422
Fix MacOS login items application path 2020-04-27 18:22:47 -07:00
JonnyWong16
7047ac8007
Add to MacOS login item when installed as pkg 2020-04-27 18:22:47 -07:00
JonnyWong16
2efd81dc6a
Add more logging 2020-04-27 18:22:46 -07:00
JonnyWong16
773ee8664c
Fix create MacOS plist file 2020-04-27 18:22:46 -07:00
JonnyWong16
d779e72bcd
Add system launch setting for MacOS 2020-04-27 18:22:45 -07:00
JonnyWong16
2e101dcf7d
Add MacOS set startup plist file 2020-04-27 18:22:44 -07:00
JonnyWong16
e6befab6bb
Change os.name to common.PLATFORM 2020-04-27 18:22:44 -07:00
JonnyWong16
9ee2c1f7a6
Add log message for failed Windows startup registry 2020-04-27 18:22:43 -07:00
JonnyWong16
5b82a86fa8
Always no browser at Windows system startup 2020-04-27 18:22:43 -07:00
JonnyWong16
922bb2760c
Update systray lib 2020-04-27 18:22:42 -07:00
JonnyWong16
315be9f3eb
Update Windows system tray with start at login option 2020-04-27 18:22:42 -07:00
JonnyWong16
7bb9c6c915
Set Windows launch at startup 2020-04-27 18:22:41 -07:00
JonnyWong16
4b5f880ccb
Fix update message on startup for Windows/MacOS 2020-04-27 18:22:40 -07:00
JonnyWong16
5db309d142
Do not inject libs into PYTHONPATH when installed using Windows/MacOS installer 2020-04-27 18:22:40 -07:00
JonnyWong16
5d8a7d80eb
Require manual download and install for Windows / MacOS 2020-04-27 18:22:39 -07:00
JonnyWong16
1394339df6
Use appdata folder 2020-04-27 18:22:39 -07:00
JonnyWong16
801510c61e
Add appdirs 1.4.3 2020-04-27 18:22:38 -07:00
JonnyWong16
6c8d6ed2ca
Add workflow for automated Windows/MacOS builds 2020-04-27 18:22:34 -07:00
JonnyWong16
d8f223327e
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/activity_pinger.py
#	plexpy/activity_processor.py
#	plexpy/helpers.py
#	plexpy/notifiers.py
#	plexpy/version.py
#	plexpy/webserve.py
2020-04-27 18:19:48 -07:00
JonnyWong16
fc2faa247a
v2.2.3-beta 2020-04-27 18:04:27 -07:00
JonnyWong16
9b11fd4f18
Remove all MaxMind/GeoLite2 settings 2020-04-27 17:43:00 -07:00
JonnyWong16
ccac7d1bd4
Remove maxminddb library 2020-04-27 17:34:51 -07:00
JonnyWong16
5494d1e7bf
Remove geoip2 library 2020-04-27 17:33:05 -07:00
JonnyWong16
1ab407eb38
Update API to keep backwards compatibility for geoip lookup 2020-04-27 17:29:48 -07:00
JonnyWong16
82ab732144
Use Plex.tv for geoip lookup instead of MaxMind database 2020-04-27 17:28:44 -07:00
JonnyWong16
0343d47a9d
Fix request return server message 2020-04-25 13:41:19 -07:00
JonnyWong16
2162210393
Add remote access notification parameters 2020-04-24 18:03:27 -07:00
JonnyWong16
54a7839421
Add remote access failure reason 2020-04-24 18:03:05 -07:00
JonnyWong16
576ac88a6a
Add advanced remote access ping interval 2020-04-24 18:01:27 -07:00
JonnyWong16
426fc09b17
Check continued session greater than or equal to 2020-04-23 23:18:55 -07:00
JonnyWong16
22bc0b3f9a
Rename continued session to initial stream 2020-04-23 23:03:20 -07:00
JonnyWong16
4ece976dc8
Add continued session threshold setting and notification parameter 2020-04-23 22:47:19 -07:00
JonnyWong16
3ff0b4a256
Add method to check if a stream is a continued session 2020-04-23 22:34:30 -07:00
JonnyWong16
ecfc3ed74f
Use server_id when retrieving library details 2020-04-23 22:30:32 -07:00
JonnyWong16
976154ed6c
Add episode count to season and year to album Plex Mobile App notifications 2020-04-23 19:05:13 -07:00
JonnyWong16
e527a88a2e
Fix Python 2 compatibility import 2020-04-20 21:00:34 -07:00
JonnyWong16
d6b619934a
Fix Deprecation Warning for logger.warn 2020-04-20 20:55:54 -07:00
JonnyWong16
c108765857
Add id parameter to get_history API for backwards compatibility 2020-04-19 23:01:58 -07:00
JonnyWong16
96438e1e15
Add id parameter to get_stream_data API for backwards compatibility
* Fixes Tautulli/Tautulli-Issues#239
2020-04-19 14:06:05 -07:00
JonnyWong16
0afd77fb2f
Test all Plex mobile app triggers 2020-04-18 20:56:06 -07:00
JonnyWong16
a6cd512ebf
Rename Plex Mobile App to Plex Android / iOS App 2020-04-18 20:27:23 -07:00
JonnyWong16
fb5d97a627
Refactor some notifiers code 2020-04-18 19:59:30 -07:00
JonnyWong16
231d439ef8
Remove plex_logs volume from Dockerfile 2020-04-18 19:24:52 -07:00
JonnyWong16
28e48e6b2f
Fix MusicBrainzlookup missing artist 2020-04-18 19:24:20 -07:00
JonnyWong16
89c1ec8d21
Fix history table refreshing after deleting 2020-04-18 17:11:44 -07:00
JonnyWong16
3270a60bd7
Add Plex Mobile App notification agent 2020-04-18 17:06:23 -07:00
JonnyWong16
6ccf801ee6
Add code to filter available triggers for notification agents 2020-04-18 15:45:44 -07:00
JonnyWong16
79cd2ca9b9
Add user_thumb to notification parameters 2020-04-18 14:30:03 -07:00
JonnyWong16
063271aabb
Fix notification rating key being overwritten when retrieving lookup info 2020-04-18 14:29:49 -07:00
JonnyWong16
e6c2133bf5
Fix auto-updater not working after enabling unless Tautulli was restarted 2020-04-17 18:23:47 -07:00
JonnyWong16
63e056987a
Add bandwidth notification parameters 2020-04-17 18:19:27 -07:00
JonnyWong16
93f070f0ac
Update Publish Docker workflow 2020-04-15 09:48:49 -07:00
JonnyWong16
df35689c35
Fix typo in CHANGELOG 2020-04-13 11:43:23 -07:00
JonnyWong16
b66e845c6e
Fix typo in README 2020-04-13 11:43:04 -07:00
JonnyWong16
3ca4351aeb
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/database.py
#	plexpy/version.py
2020-04-12 21:35:29 -07:00
JonnyWong16
6d5c320701
v2.2.2-beta 2020-04-12 21:27:01 -07:00
JonnyWong16
400a189455
Invalidate temporary mobile app token after 5 minutes 2020-04-12 21:20:14 -07:00
JonnyWong16
b7d03a4f31
Fix refreshing libraries and users table after deleting 2020-04-12 20:51:22 -07:00
JonnyWong16
523e6421be
Don't delete library history if server_id doesn't match 2020-04-12 20:49:45 -07:00
JonnyWong16
0ed4b69b8f
Fix deleting database rows with Python3 list(map()) 2020-04-12 19:17:57 -07:00
JonnyWong16
94f929743c
Merge branch 'nightly' into python3
# Conflicts:
#	.github/workflows/publishdocker-branch.yml
#	Dockerfile
2020-04-12 18:30:34 -07:00
JonnyWong16
e0cd6f7071
Rename docker build arg VERSION to TAG 2020-04-12 18:18:08 -07:00
JonnyWong16
38db0b7a70
Rename VERSION to COMMIT in Dockerfile 2020-04-12 18:15:14 -07:00
JonnyWong16
f39ecd89a7
Docker docker build badges on README 2020-04-12 18:03:40 -07:00
JonnyWong16
f7f76d82b6
Add Docker buildx GitHub workflow 2020-04-12 17:56:15 -07:00
JonnyWong16
9097e79e4f
Change web app manifest start url to relative path 2020-04-12 11:33:23 -07:00
JonnyWong16
88711e7601
Add more info to manifest.json 2020-04-12 10:43:30 -07:00
JonnyWong16
d0fa83bb8c
Use Kodi platform image for xbmc (Fixes Tautulli/Tautulli-Issues##231) 2020-04-11 20:39:39 -07:00
JonnyWong16
1271458f83
Fix web app manifest file (Fixes Tautulli/Tautulli-Issues#232) 2020-04-11 12:40:51 -07:00
JonnyWong16
2ae09a07e6
Some css syntax fixes 2020-04-11 12:39:12 -07:00
JonnyWong16
9e9ad72dc2
Remove past imports 2020-04-10 15:52:55 -07:00
JonnyWong16
422a89c26c
Fix circular helpers import 2020-04-10 15:34:23 -07:00
JonnyWong16
798c17706c
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/database.py
#	plexpy/datafactory.py
#	plexpy/libraries.py
#	plexpy/users.py
2020-04-10 15:25:18 -07:00
JonnyWong16
33d860384c
Add Tautulli database corruption notification trigger 2020-04-10 15:11:32 -07:00
JonnyWong16
a4eda99a4a
Update API docs to mention enabling api_sql while Tautulli is shut down 2020-04-10 14:44:14 -07:00
JonnyWong16
752c7badd2
Make inactive icon larger on library/user page 2020-04-10 14:41:14 -07:00
JonnyWong16
6399c90642
Fix platform icon size on activity card 2020-04-10 14:36:51 -07:00
JonnyWong16
97089846e9
Make inactive user/library triangle always orange 2020-04-10 14:31:12 -07:00
JonnyWong16
4de7884e39
Update API docs with all delete function changes 2020-04-10 14:14:34 -07:00
JonnyWong16
440adfb914
Fix missing page functions in library table 2020-04-10 14:12:38 -07:00
JonnyWong16
5f26d0085d
Simplify library undelete function 2020-04-10 14:07:15 -07:00
JonnyWong16
f484604c69
Simplify user undelete function 2020-04-10 14:07:03 -07:00
JonnyWong16
899d2fbf9d
Make library delete server_id optional 2020-04-10 14:03:32 -07:00
JonnyWong16
6a87dc9c40
Improve library delete/purge function 2020-04-10 14:00:19 -07:00
JonnyWong16
104e2929df
Simplify user delete loop 2020-04-10 13:27:26 -07:00
JonnyWong16
faac6b11c2
Improve user delete/purge function 2020-04-10 13:15:29 -07:00
JonnyWong16
377a23478e
Rename history id to row_id 2020-04-10 12:56:50 -07:00
JonnyWong16
c979e78802
Refactor database delete_session_history_rows ids 2020-04-10 12:40:35 -07:00
JonnyWong16
38f64c7d85
Improve delete history using list of row ids 2020-04-10 11:45:20 -07:00
JonnyWong16
1091a64863
Update API docs with library is_active 2020-04-10 00:20:25 -07:00
JonnyWong16
23de9616f1
Show library active status on Libraries table 2020-04-10 00:17:52 -07:00
JonnyWong16
198e7767dc
Add library is_active to database 2020-04-10 00:12:38 -07:00
JonnyWong16
aa31bf1a19
Update API docs with user is_active 2020-04-10 00:11:43 -07:00
JonnyWong16
f366304c50
Show user active status on Users table 2020-04-10 00:02:30 -07:00
JonnyWong16
ce289995ff
Add user is_active to database 2020-04-09 23:15:08 -07:00
JonnyWong16
ca2b4085c9
Fix if bad query_days passed to API 2020-04-09 18:33:02 -07:00
JonnyWong16
1d08069162
Rename time_queries to query_days 2020-04-09 18:30:46 -07:00
JonnyWong16
bcbfaae630
Merge pull request #1372 from KaasKop97/custom_time_queries
Allow custom time_queries for get_watch_stats (Closes #1345)
2020-04-09 18:21:35 -07:00
JonnyWong16
0886d133a8
Divide file size by 2^10 but display SI units
(cherry picked from commit ae9df92d28)
2020-04-08 22:56:16 -07:00
JonnyWong16
ae9df92d28
Divide file size by 2^10 but display SI units 2020-04-08 22:55:56 -07:00
JonnyWong16
435230711e
Fix middle dot encoding for Discord/Slack notification 2020-04-08 22:46:21 -07:00
JonnyWong16
d75744bb4a
Merge branch 'nightly' into python3 2020-04-07 18:40:01 -07:00
JonnyWong16
47610323b0
Fix API grouping parameter not defaulting to match setting 2020-04-07 18:18:16 -07:00
Mitch
d1f1763919 Allow custom time_queries for get_watch_stats 2020-04-05 20:03:57 +02:00
JonnyWong16
1326ad8708
Add TAUTULLI_PYTHON_VERSION to script environment variables
* Period separated string (e.g. 2.7.17 or 3.8.2)
2020-04-04 08:12:42 -07:00
JonnyWong16
86d737dcf6
Add TAUTULLI_PYTHON_VERSION to script environment variables
* Period separated string (e.g. 2.7.17 or 3.8.2)
2020-04-04 08:06:13 -07:00
JonnyWong16
9e0153e962
Set PYTHON2 global variable 2020-04-04 07:57:51 -07:00
JonnyWong16
fb395fc2e9
Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/datafactory.py
2020-04-03 21:10:32 -07:00
JonnyWong16
6e09e509bd
Remove duplicate dictionary key in top movie stats 2020-04-03 21:07:00 -07:00
JonnyWong16
e8d0557852
Fix typo in send newsletter argument 2020-04-03 21:06:10 -07:00
JonnyWong16
aac705f465
Put import OpenSSL in try/except block for self-signed certificates 2020-04-03 21:05:44 -07:00
JonnyWong16
009971901b
Fix delete lookup info by rating key 2020-04-03 20:53:35 -07:00
JonnyWong16
573ff3f2a6 Fix scripts to work with both Python 2 and 3 2020-04-02 00:03:41 -07:00
JonnyWong16
b9f614c66f Downgrade mock to 3.0.5 for Python 2.7 compatibility
* Only required for plexapi tests
2020-04-01 23:59:20 -07:00
JonnyWong16
e26182c96e Remove list(dict.keys()) --> dict.keys() and list(dict.values()) --> dict.values() 2020-04-01 15:31:15 -07:00
JonnyWong16
f4eff8a8c5 Encode API XML output to UTF-8
(cherry picked from commit 1ffd6c0ea1)
2020-03-30 13:58:08 -07:00
JonnyWong16
1ffd6c0ea1 Encode API XML output to UTF-8 2020-03-30 13:55:17 -07:00
JonnyWong16
b3f8341e0c Fix enable notification grouping by default again
(cherry picked from commit 50ce29cc64)
2020-03-29 21:14:47 -07:00
JonnyWong16
50ce29cc64 Fix enable notification grouping by default again 2020-03-29 21:14:17 -07:00
JonnyWong16
47db4e0559 Fix missing helpers import 2020-03-29 20:57:04 -07:00
JonnyWong16
b8179678c6 Fix Windows system tray icon shortcuts not working 2020-03-29 20:54:20 -07:00
JonnyWong16
c1a7b3753c Merge branch 'nightly' into python3 2020-03-29 10:30:15 -07:00
JonnyWong16
e4ec24be26 Reorder git pull command for update 2020-03-29 10:28:42 -07:00
JonnyWong16
04765288d7 Change default file size on media info tables to SI units 2020-03-29 10:27:56 -07:00
JonnyWong16
8fdd0ba0d9
Merge pull request #1363 from aaronldunlap/master
Change humanFileSize to default to SI notation
2020-03-29 10:18:14 -07:00
JonnyWong16
8b312c8d2d
Merge pull request #1369 from Arcanemagus/update-init
Make init scripts Python version agnostic
2020-03-28 17:10:40 -07:00
Landon Abney
ab36041fef
Add python to systemd script
Skip the extra process calls trying to figure out what to run Tautulli 
with, as well as give an example on how to change the executable in the 
init script.
2020-03-28 17:01:23 -07:00
Landon Abney
3f87996bfc
Remove outdated init scripts
Remove several init scripts for operating systems that are no longer 
supported:
* `init.ubuntu` would only be useful on Ubuntu 14.04 LTS which has been 
in ESM for over a year
* `init.solaris` is for an operating system that hasn't been updated in 
>10 years
* `init.upstart` is for a startup method Ubuntu attempted but abandoned
* `init.fedora.centos.service` is for a version that hasn't recieved 
updates since 2017-05-10
* `init.freenas` is identical to `init.freebsd`
* `init-alt.freebsd` appears to attempt to use the web interface 
directly, and would break with authentication enabled
2020-03-28 16:58:06 -07:00
Landon Abney
4edd2001b3
Make init scripts Python version agnostic
Now that the Tautulli will run on both major versions of Python we can 
remove the specificity in the init scripts and make them simpler, with 
the added advantage that some OS's will now run Tautulli through Python 
3 instead of Python 2.
2020-03-28 16:31:14 -07:00
JonnyWong16
155b98bb0c Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/database.py
#	plexpy/version.py
2020-03-28 15:27:13 -07:00
JonnyWong16
16ffbd9940 v2.2.1 2020-03-28 15:11:02 -07:00
JonnyWong16
f72d93216c Add helper function for timestamp 2020-03-28 14:50:45 -07:00
JonnyWong16
c6cf293b12 Fix duration check for track skipping 2020-03-28 14:49:17 -07:00
JonnyWong16
0f13329ddd Fix saving mobile device with blank friendly name
(cherry picked from commit fa61302954)
2020-03-26 10:12:04 -07:00
JonnyWong16
fa61302954 Fix saving mobile device with blank friendly name 2020-03-26 10:11:33 -07:00
JonnyWong16
1dfbef89ff Add mock 4.0.2 2020-03-24 22:11:26 -07:00
JonnyWong16
c55c00a19e Update PlexAPI to 3.3.0 2020-03-24 22:10:43 -07:00
JonnyWong16
2fa62f71e1 Replace file() with open() 2020-03-24 21:57:52 -07:00
JonnyWong16
846a8cac98 Update Python versions badge on README.md 2020-03-24 21:47:59 -07:00
JonnyWong16
9ee7918e59 Fix Windows system tray icon not enabled by default
(cherry picked from commit 763e5f583a)
2020-03-24 21:25:09 -07:00
JonnyWong16
763e5f583a Fix Windows system tray icon not enabled by default 2020-03-24 21:24:31 -07:00
JonnyWong16
faf5cb0f8d Change jwt_cookie to str 2020-03-24 21:16:14 -07:00
JonnyWong16
bde6309277 Move BaseRedirect to webserve 2020-03-24 21:06:09 -07:00
JonnyWong16
cc05552685 Remove from __future__ import absolute_import 2020-03-24 20:17:44 -07:00
JonnyWong16
465f50666f Fix Tautulli.py import future after lib folder inserted 2020-03-23 23:39:49 -07:00
JonnyWong16
e6d0212604 Remove Python 3 testing from config 2020-03-23 23:32:46 -07:00
JonnyWong16
2eebacc3a6 Improved Mako template exceptions 2020-03-23 23:31:11 -07:00
JonnyWong16
f362880eb6 Fix import for newsletters_table.html 2020-03-23 23:02:28 -07:00
JonnyWong16
68a06d1bbc Remove feedparser 2020-03-23 22:18:54 -07:00
JonnyWong16
82c09570c4 Update all future imports for Python 2 2020-03-23 22:11:42 -07:00
JonnyWong16
58eb426eea Fix UniversalAnalytics import from future 2020-03-23 22:11:42 -07:00
JonnyWong16
1c932057b8 Fix BeautifulSoup imports from future 2020-03-23 22:11:42 -07:00
JonnyWong16
4564623884 Update mako to 1.1.2 2020-03-23 22:11:42 -07:00
JonnyWong16
843a400b2d Fix CustomFormatter for Python 2 2020-03-23 22:11:41 -07:00
JonnyWong16
5b067bd17d Fix opening log file for Python 2 2020-03-23 22:11:41 -07:00
JonnyWong16
ed07bd374c Fix http_handler for Python 2 2020-03-23 22:11:41 -07:00
JonnyWong16
078685a2a3 Fix imports for Python 2 2020-03-23 22:11:41 -07:00
JonnyWong16
2ce5194156 Remove future from Dockerfile 2020-03-23 18:46:54 -07:00
JonnyWong16
fa97d3f88d Add future 0.18.2 2020-03-23 18:45:35 -07:00
JonnyWong16
08c8ee0774 Add ability to flush recently_added database table 2020-03-23 17:50:54 -07:00
JonnyWong16
395fc49087 Add ability to flush recently_added database table 2020-03-23 17:49:51 -07:00
JonnyWong16
9725c82187 Change cron day_of_week for apscheduler 2020-03-23 17:23:42 -07:00
JonnyWong16
24277f1e3c Add favicon to newsletter template
(cherry picked from commit d54794e85f)
2020-03-23 15:22:09 -07:00
JonnyWong16
b58fb1da33 Fix saving newsletter HTML file 2020-03-23 15:21:58 -07:00
JonnyWong16
d54794e85f Add favicon to newsletter template 2020-03-23 15:21:05 -07:00
JonnyWong16
bed1cd8fb5 Fix notification grouping not enabled by default on new install
(cherry picked from commit d5917f89f0)
2020-03-23 10:31:30 -07:00
JonnyWong16
d5917f89f0 Fix notification grouping not enabled by default on new install 2020-03-23 10:28:01 -07:00
JonnyWong16
c2d17c285a Add simplejson 3.17.0
* Needed for requests to encode byte-strings to json
2020-03-21 20:07:36 -07:00
JonnyWong16
42262b0bb6 Android App encrypt requires bytes 2020-03-21 20:05:59 -07:00
JonnyWong16
510dddf724 Remove unused uuid import 2020-03-21 19:46:41 -07:00
JonnyWong16
702b2fe167 Remove Hipchat 2020-03-21 19:22:41 -07:00
JonnyWong16
f24c2a8b77 Don't decode PrettyMetadata episode title dot 2020-03-21 19:13:08 -07:00
JonnyWong16
a675c2c4f2 Fix Cloudinary image upload 2020-03-21 19:12:06 -07:00
JonnyWong16
2984629b39 Update cloudinary to 1.20.0 2020-03-21 19:11:41 -07:00
JonnyWong16
1003aa2df5 Fix related children count 2020-03-21 18:34:04 -07:00
JonnyWong16
1c56d9c513 Fix notification CustomFormatter for Python 3 2020-03-21 18:32:57 -07:00
JonnyWong16
e06210f21c Change notification text format logger to exception 2020-03-21 18:32:38 -07:00
JonnyWong16
ad112e0a44 Remove list(dict.items()) -- >dict.items() 2020-03-21 18:31:55 -07:00
JonnyWong16
2b0e7daf7c Fix error loading removed notification agents configs 2020-03-21 16:28:17 -07:00
JonnyWong16
060dff0162 Update websocket-client to 0.57.0 2020-03-21 12:17:50 -07:00
JonnyWong16
4ae09774f7 Change websocket error to exception to log traceback 2020-03-19 22:54:18 -07:00
JonnyWong16
033a364699 Fix buffer trigger crashing websocket 2020-03-19 21:57:20 -07:00
JonnyWong16
56a66976e6 Fix creating self-signed certificates
* Python 3 does not support tuple unpacking in arguments
2020-03-19 20:57:12 -07:00
JonnyWong16
0f02fab259 Update tzlocal to 2.1b1 2020-03-19 20:38:23 -07:00
JonnyWong16
2917b609c3 Update tzlocal to 2.0.0 2020-03-19 20:30:44 -07:00
JonnyWong16
b9a80d06e4 Automatic python3 Docker workflow 2020-03-19 20:18:57 -07:00
JonnyWong16
af46a02146 python3 branch 2020-03-19 19:56:11 -07:00
JonnyWong16
19d8c1be5a Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/datafactory.py
#	plexpy/libraries.py
#	plexpy/logger.py
#	plexpy/version.py
2020-03-19 19:40:05 -07:00
JonnyWong16
6205af1a9a Fix missing username on sync table 2020-03-17 09:44:10 -07:00
JonnyWong16
d8b1db536c Fix file size notification parameter truncated to integer (Fixes Tautulli/Tautlli-Issues#226) 2020-03-17 09:37:10 -07:00
JonnyWong16
699357ca21 Add transcode decision counts to notification parameters 2020-03-14 15:39:22 -07:00
JonnyWong16
50398049f5 Don't strip tags from webhook agent 2020-03-14 15:31:18 -07:00
JonnyWong16
1f83afc2f4 Update API docs for delete_lookup_info 2020-03-14 14:00:30 -07:00
JonnyWong16
90374bb46f Add buttons to delete all 3rd party metadata lookup info in the settings 2020-03-14 14:00:17 -07:00
JonnyWong16
ccdd410eda Change breadcrumbs on update metadata page to match info page 2020-03-14 13:58:01 -07:00
JonnyWong16
77bb806a01 Add IMDb and Rotten Tomatos rating to info page 2020-03-14 12:07:21 -07:00
JonnyWong16
a952352e1f Get metadata for the info page from the Plex server before database 2020-03-14 12:05:47 -07:00
JonnyWong16
b733ce969a Fix update changelog from beta 2020-03-08 17:03:21 -07:00
JonnyWong16
f4351df302 Combine release workflows 2020-03-08 16:37:19 -07:00
JonnyWong16
76893100fc v2.2.0 2020-03-08 15:37:20 -07:00
JonnyWong16
96e8b808da Fix wording on reset git install note 2020-03-08 15:32:54 -07:00
JonnyWong16
595bff94b4 Add release to reset git install log message 2020-03-08 13:36:29 -07:00
JonnyWong16
5661c00497 Capitalize previous Windows platform in database 2020-03-08 11:26:13 -07:00
JonnyWong16
a98d7bd4eb Remove blank line 2020-03-06 15:43:18 -08:00
JonnyWong16
097203162d Update reset message to show release version 2020-03-06 15:39:15 -08:00
JonnyWong16
823c9b3159 Format git reset release 2020-03-06 15:36:11 -08:00
JonnyWong16
35965a6a1b Add message that Tautulli will restart when resetting git branch 2020-03-06 15:30:47 -08:00
JonnyWong16
8d67cc4c5a Restart after resetting git install 2020-03-06 15:26:26 -08:00
JonnyWong16
42e33a0468 Reset git install to the release version 2020-03-06 15:25:52 -08:00
JonnyWong16
b2529db026 Fix Live TV channel logo cut off in popover 2020-03-05 20:58:32 -08:00
JonnyWong16
e99c4aec4a Substitute after matching hyphenated ip in logs 2020-03-03 20:36:09 -08:00
JonnyWong16
2d0a97f259 Add hyphenated IP address to log filter 2020-03-03 20:20:53 -08:00
JonnyWong16
fabb52763b Fix graphs not loading when history grouping is disabled 2020-03-03 14:00:55 -08:00
JonnyWong16
03dd1a6974 Add note to repair git install setting 2020-03-03 14:00:42 -08:00
JonnyWong16
ecee50a5e4 Add option to change library background art 2020-03-03 12:24:05 -08:00
JonnyWong16
cbab7c4cbf Add clip to notification posters 2020-03-03 10:58:50 -08:00
JonnyWong16
257ea14c59 Add Plex background art to notification parameters 2020-03-03 10:51:27 -08:00
JonnyWong16
11299291b0 Remove ipaddr js XHR 2020-03-03 09:38:22 -08:00
JonnyWong16
f63c1c2f7f Merge branch 'nightly' into python3 2020-03-02 10:12:28 -08:00
JonnyWong16
533b8076e4
Merge pull request #1366 from felixbuenemann/fix-ipv6-display-in-activity
Fix display of IPv6 addresses in activity panes
2020-03-02 10:11:42 -08:00
Felix Bünemann
b0383b4813 Fix display of IPv6 addresses in activity panes
* Fix wrong width of ip-address field, causing it to be displayed as
"…", when exceeding 125px
* Add tooltip with full IP address on hover, if the address is longer
than 20 characters (maximum length that can be shown in 125px)
2020-03-01 16:19:17 +01:00
JonnyWong16
5045e406a1 Update urllib.parse imports 2020-02-29 15:33:30 -08:00
JonnyWong16
8d5bc88fd9 Merge branch 'nightly' into python3
# Conflicts:
#	data/interfaces/default/current_activity_instance.html
#	plexpy/activity_handler.py
#	plexpy/graphs.py
#	plexpy/helpers.py
#	plexpy/pmsconnect.py
#	plexpy/version.py
#	plexpy/webserve.py
2020-02-29 15:26:33 -08:00
JonnyWong16
96500f75b0 Add option to reset Tautulli installation 2020-02-29 14:47:45 -08:00
JonnyWong16
2a3bd3413f Add --ff-only to git pull command 2020-02-29 14:10:20 -08:00
JonnyWong16
8ec136a0ca Fix creating metadata cache when starting session 2020-02-29 13:54:52 -08:00
JonnyWong16
2bead0fc29 Add live tv to log message 2020-02-29 13:54:24 -08:00
JonnyWong16
359776d48a Default webhook notification method to POST 2020-02-28 11:27:03 -08:00
JonnyWong16
05a16bb199 Fix tag in Docker release build workflow 2020-02-27 15:26:52 -08:00
JonnyWong16
f457704105 v2.2.0-beta 2020-02-27 14:53:29 -08:00
JonnyWong16
5aa59b93b0 Update Docker build workflows 2020-02-27 14:53:29 -08:00
JonnyWong16
47d51f92c7 Hide Live TV library from Library Statistics setting 2020-02-25 18:00:02 -08:00
JonnyWong16
068cf17d0a Only show graph series if the library type is present 2020-02-25 16:11:43 -08:00
JonnyWong16
3c1b849a5d Notify Discord on Docker build status 2020-02-25 11:26:27 -08:00
JonnyWong16
8384ec7f15 Add release workflows 2020-02-24 21:08:55 -08:00
JonnyWong16
0e7a3962bb Remove print 2020-02-24 16:20:31 -08:00
JonnyWong16
3d1bb9975c Fix interlaced video media flag on info page 2020-02-24 16:20:01 -08:00
JonnyWong16
eed473be15 Update README.md 2020-02-24 13:42:27 -08:00
JonnyWong16
e23d9bca22 Update README.md 2020-02-24 13:30:58 -08:00
JonnyWong16
85a952a5c9
Merge pull request #1364 from pkoenig10/manifest
Add crossorigin use-credentials attribute to manifest tag
2020-02-24 13:09:10 -08:00
JonnyWong16
5cc36310ba Change repo in workflow files 2020-02-24 12:18:23 -08:00
TheMeanCanEHdian
8690d2ced5 Disable updates when using Docker container 2020-02-24 10:26:52 -08:00
TheMeanCanEHdian
f572943a7b Add items needed to create Docker image 2020-02-24 10:26:50 -08:00
JonnyWong16
89248ad46a Fix typo 2020-02-23 09:35:52 -08:00
JonnyWong16
517db71916 Update API docs 2020-02-22 23:49:48 -08:00
JonnyWong16
ad82de010d Always have channel info in metadata response 2020-02-22 23:15:45 -08:00
JonnyWong16
02fd9edbbf Add value == 1 to helper.bool_true 2020-02-22 22:49:34 -08:00
JonnyWong16
6c84dd7be8 Clean up get_history filter parameters 2020-02-22 22:46:23 -08:00
JonnyWong16
9edbe6af37 Add helper to cast API parameter true to bool 2020-02-22 22:33:49 -08:00
JonnyWong16
37d09e9bad Check Plex guid before retrieving Live TV cloud metadata 2020-02-22 22:09:39 -08:00
JonnyWong16
0d0595e9a0 Add Live TV library icon 2020-02-22 17:21:22 -08:00
JonnyWong16
17477455cb Fix history table modal header for Live TV 2020-02-22 17:20:29 -08:00
JonnyWong16
43f594709d Don't include Live TV with Movies / TV Shows history filter 2020-02-22 17:09:31 -08:00
JonnyWong16
8885b3e7e0 Align library / user name 2020-02-22 16:53:41 -08:00
JonnyWong16
c060638539 Add Live TV to graphs 2020-02-22 16:31:35 -08:00
JonnyWong16
2144d4d7ed Change colours to Plex colours 2020-02-22 14:52:25 -08:00
JonnyWong16
4f2e09d733 Add link to Live TV library on info page 2020-02-22 14:09:04 -08:00
JonnyWong16
9d13c29bf6 Revert "Fix retrieving metadata for info page for Live TV without section_id"
This reverts commit 6fce31e1b9.
2020-02-22 14:08:49 -08:00
JonnyWong16
60d577f95e Revert "Add setting to enable Live TV logging"
This reverts commit 5d1bc3cf9b.
2020-02-22 14:02:34 -08:00
JonnyWong16
1dd1c6f67f Add fake Live TV library 2020-02-22 14:02:03 -08:00
JonnyWong16
bcd0691b33 Fix Live TV poster fallback for notifications 2020-02-22 13:11:27 -08:00
JonnyWong16
24a2559ab5 Fix channel popover on info page 2020-02-22 13:10:59 -08:00
JonnyWong16
22a6bae4cf Add new Live TV art fallback for info page 2020-02-22 12:42:40 -08:00
JonnyWong16
2c45de1fe5 Add Live TV channel notification parameters 2020-02-22 12:12:45 -08:00
JonnyWong16
0ab93d7a7f Fix Live TV roll over metadata caching 2020-02-22 11:39:27 -08:00
JonnyWong16
c8831efb28 Update activity card on Live TV rollover 2020-02-20 20:51:05 -08:00
JonnyWong16
0cbde5a2f5 Fix ambiguous column name in Live TV session grouping 2020-02-20 19:10:12 -08:00
JonnyWong16
7de82d87f7 Update history grouping for Live TV only if the user's last session has a matching guid 2020-02-20 18:59:12 -08:00
JonnyWong16
751b97a39c Stop Live TV session when guid changes 2020-02-20 18:58:36 -08:00
JonnyWong16
7b58bcc279 Check for metadata returned from metadata.provider.plex.tv 2020-02-20 13:18:47 -08:00
JonnyWong16
820a2e688c Add channel icon popover to info page 2020-02-20 12:30:54 -08:00
JonnyWong16
10a7f540ad Fix filtering history using guid 2020-02-20 12:10:51 -08:00
JonnyWong16
31a6c627af Fix incorrect source=history in info page URL for active sessions on history table 2020-02-20 11:30:17 -08:00
JonnyWong16
aba4cbf9e4 Write guid to session table 2020-02-20 11:20:29 -08:00
JonnyWong16
a5624e86e4 Replace single quotes in page query params 2020-02-20 11:09:33 -08:00
JonnyWong16
5480d09a0b Add library and user page helper functions 2020-02-20 10:13:27 -08:00
JonnyWong16
5fad0a1d97 Refactor page helper functions 2020-02-20 09:00:10 -08:00
JonnyWong16
4a7b5bab54 Update all info page links with helper function 2020-02-20 00:01:30 -08:00
JonnyWong16
fe0557dcc1 Add helper function for info page 2020-02-20 00:00:04 -08:00
JonnyWong16
e4b6d61098 Add option to retrieve history using guid 2020-02-19 23:57:55 -08:00
JonnyWong16
73e01ebaaf Use pms_image_proxy helper function for datatables 2020-02-19 21:19:44 -08:00
JonnyWong16
d752d46676 Update pms_image_proxy with helper function and encode URL params 2020-02-19 19:57:56 -08:00
JonnyWong16
3932409fb4 Fix info page redirect with invalid rating key 2020-02-18 15:55:27 -08:00
JonnyWong16
f69d4f1c42 Fix typo in activity bandwidth header 2020-02-18 15:30:02 -08:00
JonnyWong16
96699fc3b0 Remove debug logging 2020-02-18 08:52:19 -08:00
JonnyWong16
97ec8f6828 Add some debug logging 2020-02-18 08:43:48 -08:00
JonnyWong16
df851e67f9 Get additional Live TV metadata from metadata.provider.plex.tv 2020-02-17 20:52:16 -08:00
JonnyWong16
5d1bc3cf9b Add setting to enable Live TV logging 2020-02-17 17:53:13 -08:00
JonnyWong16
81ab9b006d Add Live TV history filter button 2020-02-17 17:41:28 -08:00
JonnyWong16
1699fc09cf Get history using title and year for Live TV info page 2020-02-17 17:32:52 -08:00
JonnyWong16
f8b6a9f1e8 Fix showing Gbps bandwidth on activity card 2020-02-17 17:08:12 -08:00
JonnyWong16
ba465a0d15 Move live key to main metadata dict 2020-02-17 16:11:26 -08:00
JonnyWong16
af521b4058 Fix air date for active sessions on history table 2020-02-17 15:59:02 -08:00
JonnyWong16
27b512611f Change channel popover background and enlarge 2020-02-17 15:57:15 -08:00
JonnyWong16
b79f165a27 More fix for poster/background not showing for Live TV watch statistics 2020-02-17 15:53:56 -08:00
JonnyWong16
716f76baed Fix poster/background not showing for Live TV watch statistics 2020-02-17 15:23:36 -08:00
JonnyWong16
18c57a4fc6 Fix recently watched on user page 2020-02-17 15:04:38 -08:00
JonnyWong16
c26483b4b8 Add channel thumb popover back onto activity card 2020-02-17 13:44:03 -08:00
JonnyWong16
441e39d776 Add air date to tables for non-episodic Live TV 2020-02-17 13:37:58 -08:00
JonnyWong16
7ecc075c7e Correct rating_key link for watch statistics 2020-02-17 12:44:47 -08:00
JonnyWong16
2e42663832 Fix watch statistic links for Live TV 2020-02-17 12:42:00 -08:00
JonnyWong16
075f9f8cbd Fallback to Live TV art/poster for watch statistics 2020-02-17 12:06:24 -08:00
JonnyWong16
f3d42e7b53 Show Gbps bandwidth 2020-02-17 12:00:00 -08:00
JonnyWong16
fa0b547b32 Fix library recenly watched missing live key 2020-02-17 10:51:44 -08:00
JonnyWong16
8f19cdccfd Add rating_key to all uses of pms_image_proxy 2020-02-17 10:51:18 -08:00
JonnyWong16
5c207aeee6 Fix Live TV shown on user page and user tables 2020-02-16 21:04:33 -08:00
JonnyWong16
d48273ef98 Fix "Live TV" in activity card subtitle for episodic tv 2020-02-16 20:43:48 -08:00
JonnyWong16
a7803dcad7 Fix Live TV air date on info page 2020-02-16 20:36:53 -08:00
JonnyWong16
4fc9b6fdb4 More Live TV fixes for info page 2020-02-16 20:13:27 -08:00
JonnyWong16
73f8f83658 Fallback pms_image_proxy when no image imput received 2020-02-16 20:06:35 -08:00
JonnyWong16
66a0f953b3 Fix missing channel info for Live TV history on info page 2020-02-16 19:56:27 -08:00
JonnyWong16
f189eea32b Use Live TV added_at date to fake air date 2020-02-16 19:53:51 -08:00
JonnyWong16
be29d879a7 Fix missing title on info page for Live TV episodes 2020-02-16 19:39:43 -08:00
JonnyWong16
e3e906c9e5 Remove click through link to Plex Web on info page for Live TV 2020-02-16 19:37:58 -08:00
JonnyWong16
6fce31e1b9 Fix retrieving metadata for info page for Live TV without section_id 2020-02-16 19:33:40 -08:00
JonnyWong16
db1cb3d658 Forgot saving channel info to sessions db table 2020-02-16 19:07:08 -08:00
JonnyWong16
c0d7c5ddff Disable Recently Added Notification button on info page for Live TV 2020-02-16 19:05:41 -08:00
JonnyWong16
d0cd2672dd Fix Live TV artwork on activity card 2020-02-16 19:02:29 -08:00
JonnyWong16
ca55900d40 Update info page for Live TV 2020-02-16 16:23:58 -08:00
JonnyWong16
3d65ffc6d3 Update font-awesome icon for Live TV 2020-02-16 16:23:42 -08:00
JonnyWong16
f94b796c2b Fix saving channel info to database 2020-02-16 16:06:43 -08:00
JonnyWong16
66c1fd6593 Save Live TV sessions to the database 2020-02-16 14:54:48 -08:00
JonnyWong16
13a45facf9 Update pms_image_proxy to work with web URLs 2020-02-15 20:14:50 -08:00
JonnyWong16
26f10b2c3d Add poster to activity card for Live TV movies 2020-02-15 14:36:51 -08:00
JonnyWong16
9aea4c85b0 Remove test parameters from Live TV 2020-02-15 14:28:19 -08:00
JonnyWong16
ee1b0eeeff Add Live TV metadata to activity card 2020-02-15 13:29:25 -08:00
JonnyWong16
c6cfb4a020 More Live TV fixes 2020-02-15 11:44:11 -08:00
JonnyWong16
91da41ff86 Fix Live TV on PMS 1.18.7.2415 crashing Tautulli activity 2020-02-15 10:48:01 -08:00
JonnyWong16
a811edb236 Fix race condition for notification stream count when stopping playback 2020-02-15 10:03:11 -08:00
Patrick Koenig
66de806b02 Add crossorigin use-credentials attribute to manifest tag 2020-02-14 08:11:07 -08:00
JonnyWong16
c825176563 v2.1.44 2020-02-05 21:41:31 -08:00
JonnyWong16
7ae87fe0e7 Fix SDR source video being identified as HDR stream video 2020-02-05 21:37:33 -08:00
JonnyWong16
99f826c236 Fix video color notification condition types 2020-02-05 20:24:43 -08:00
JonnyWong16
f88d673e87 Remove capitalization for platform on history tables 2020-02-04 13:48:29 -08:00
JonnyWong16
bc2f73d686 v2.1.43 2020-02-03 18:27:41 -08:00
JonnyWong16
645c2ecef6 Use Authorization header for GitHub API 2020-02-03 18:11:56 -08:00
JonnyWong16
4d4a8ca3b2 Trim MaxMind License Key when saving 2020-01-28 10:38:21 -08:00
JonnyWong16
a98bc45c10 Fix HDR for direct stream video 2020-01-24 20:14:48 -08:00
aaronldunlap
aa5affe366
Change humanFileSize to default to SI notation 2020-01-23 17:09:39 -06:00
JonnyWong16
b39ac866f2 Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/webserve.py
2020-01-20 20:55:30 -08:00
JonnyWong16
b9d5e49a71 Make verbose logging an advanced config option (Fixes Tautulli/Tautulli-Issues#205)
* Verbose logging is enabled by default
* Make toggleVerbose stick
2020-01-20 20:49:37 -08:00
JonnyWong16
e90390be67 Fix plural episodes and albums in newsletter templates (Fixes Tautulli/Tautulli-Issues#203) 2020-01-20 20:08:45 -08:00
JonnyWong16
8ef671c9cb Fix Telegram notification character limit (Closes #1361) 2020-01-20 19:56:38 -08:00
JonnyWong16
8829516cae Fix season 0 number not showing in tables 2020-01-20 19:23:16 -08:00
JonnyWong16
4c211342a2 Remove string encoding from notifiers 2020-01-19 17:09:50 -08:00
JonnyWong16
6b7cd38d71 Merge branch 'nightly' into python3 2020-01-19 16:43:53 -08:00
JonnyWong16
d8e8dfbd45 Revert "Match session user using user_id instead of username"
This reverts commit 6380de3e6c.
2020-01-19 16:43:34 -08:00
JonnyWong16
485609fbb9 Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/__init__.py
#	plexpy/helpers.py
#	plexpy/logger.py
#	plexpy/version.py
2020-01-19 16:40:19 -08:00
JonnyWong16
0b6d9a4890 Add email address log filter 2020-01-19 16:03:10 -08:00
JonnyWong16
55ffd68023 Refactor log filter 2020-01-19 16:02:56 -08:00
JonnyWong16
6380de3e6c Match session user using user_id instead of username 2020-01-19 16:00:36 -08:00
JonnyWong16
d6220a921a Log dynamic range to history and show in stream info modal 2020-01-18 11:46:43 -08:00
JonnyWong16
10e421b9d4 Add color and dynamic range to notification parameters 2020-01-15 12:19:43 -08:00
JonnyWong16
90056bcce2 Indicate HDR content on activity cards 2020-01-15 11:38:50 -08:00
JonnyWong16
4740d0fbf3 Change webhook request data if not Content-Type header is not application/json 2020-01-14 17:36:25 -08:00
JonnyWong16
13374c9ded Fix Windows and macOS platform capitalization 2020-01-14 17:35:35 -08:00
JonnyWong16
2a03be1905 Fix typo in CHANGELOG.md 2020-01-04 17:49:27 -08:00
JonnyWong16
c8f132a750 v2.1.42 2020-01-04 17:46:03 -08:00
JonnyWong16
4d0c4bf4f4 Update GeoLite2 database help text to leave blank for default 2020-01-04 12:03:44 -08:00
JonnyWong16
e321c5b197 Fix GeoLite2 update log message to correct number of days from setting 2020-01-04 11:50:48 -08:00
JonnyWong16
badbfdc4c1 Disable uninstall GeoLite2 database button when not installed 2020-01-04 10:52:11 -08:00
JonnyWong16
7d71086a41 Verify MaxMind license key and GeoLite2 database path before allowing install 2020-01-02 21:28:11 -08:00
JonnyWong16
0e1764755a Change save setting callbacks 2020-01-02 21:25:15 -08:00
JonnyWong16
c31d3ffd6c Download from MaxMind using urllib3 using certifi 2020-01-01 10:10:52 -08:00
JonnyWong16
0cba3988aa Update certifi to 2019.11.28 2020-01-01 10:10:05 -08:00
JonnyWong16
a7a9ed8628 v2.1.41 2019-12-30 14:33:10 -08:00
JonnyWong16
6af96332fa Use tar.extractall instead of tar.extract 2019-12-30 14:29:19 -08:00
JonnyWong16
e334a0fc8b Change GeoLite2 tar extraction 2019-12-30 14:19:12 -08:00
JonnyWong16
54bbbb36a6 Fix Geolite2 db extraction on Windows 2019-12-30 13:58:56 -08:00
JonnyWong16
b8ef56574a v2.1.40 2019-12-30 10:24:46 -08:00
JonnyWong16
bc491628d4 Add links to 3rd Party APIs guide 2019-12-29 15:03:22 -08:00
JonnyWong16
629800c239 Change metadata to links for lookup help text 2019-12-29 11:05:21 -08:00
JonnyWong16
8bf876f88c Add note to save the MaxMind license key 2019-12-28 11:09:52 -08:00
JonnyWong16
a81ad6d73e Set maximum GeoLite2 database update interval to 30 days 2019-12-28 11:06:04 -08:00
JonnyWong16
02220209e3 Add default activity refresh interval to setting help text 2019-12-27 09:48:38 -08:00
JonnyWong16
9450a1434d Remove line break from Python version in startup logs 2019-12-25 14:10:35 -08:00
JonnyWong16
c358693fb2 Fix GeoLite2 update scheduler 2019-12-25 14:10:16 -08:00
JonnyWong16
e7b3d768ce Prevent installing GeoLite2 database without license key 2019-12-25 14:07:59 -08:00
JonnyWong16
ee91da2ff1 Force reinstall of GeoLite2 database 2019-12-25 13:43:12 -08:00
JonnyWong16
0428df8e3f Fix GeoLite2 update button for previous installs 2019-12-25 13:31:46 -08:00
JonnyWong16
d4fee1d701 Fix GeoLite2 last updated time for previous installs 2019-12-25 13:23:33 -08:00
JonnyWong16
3b44a3afd2 Add setting for GeoLite2 database update interval 2019-12-25 12:51:59 -08:00
JonnyWong16
7ee1c51810 Go to correct setting for installing GeoLite2 database 2019-12-25 12:40:58 -08:00
JonnyWong16
f958de2de6 Move 3rd Party API settings to new tab 2019-12-25 11:41:53 -08:00
JonnyWong16
b83eb2e763 Add auto-updating of GeoLite2 database 2019-12-25 11:17:45 -08:00
JonnyWong16
41c9369b43 Change GeoIP database install using license key 2019-12-23 23:58:36 -08:00
JonnyWong16
554be92c39 Update go to setting links 2019-12-23 22:30:49 -08:00
JonnyWong16
a44709a43d Cast section_id to int in websocket timeline data 2019-12-12 18:44:55 -08:00
JonnyWong16
65e9e2b680 Remove graph months str decode 2019-12-12 09:14:34 -08:00
JonnyWong16
d84dc23b46 Merge branch 'nightly' into python3 2019-12-12 09:13:16 -08:00
JonnyWong16
7486a50c33 Calculate months for graphs using datetime 2019-12-12 09:12:29 -08:00
JonnyWong16
e333940826 Set log files to UTF-8 2019-12-12 08:58:57 -08:00
JonnyWong16
70f7fd2de9 Change dict iteritems to items for HTML templates 2019-12-12 08:58:34 -08:00
JonnyWong16
411d88d798 Merge branch 'nightly' into python3
# Conflicts:
#	plexpy/notification_handler.py
2019-12-11 11:39:59 -08:00
JonnyWong16
1e777b1a1b Add logging for notify_action (trigger) 2019-12-11 11:35:30 -08:00
JonnyWong16
b7bb159630 Fix regex IP match in hostname resolution 2019-12-10 10:07:34 -08:00
JonnyWong16
dce8248eb8 Change children_count to int 2019-12-08 12:49:48 -08:00
JonnyWong16
3b8234ce67 Use six.moves.urllib 2019-12-08 12:49:09 -08:00
JonnyWong16
ac63d3c3ce Fix version.py 2019-12-08 12:28:39 -08:00
JonnyWong16
197c3a327b Merge branch 'nightly' into python3 2019-12-08 12:20:43 -08:00
JonnyWong16
6e0a0d51b5 v2.1.39 2019-12-08 12:12:24 -08:00
JonnyWong16
55aad4e6ee Fix integrity check before database backup 2019-11-29 23:14:33 -08:00
JonnyWong16
d1e401cb0c Remove default subject and body for notify API command 2019-11-24 22:35:58 -08:00
JonnyWong16
0bb97fee31 Encode request message to UTF-8 2019-11-24 16:27:26 -08:00
JonnyWong16
1bdf6bbb66 Encode image hash before converting to hex 2019-11-24 15:59:56 -08:00
JonnyWong16
077dfe7164 Decode jwt_token for login cookie 2019-11-24 15:50:27 -08:00
JonnyWong16
169f83ac4a Update hashing_passwords to use hashlib and remove pbkdf2 2019-11-24 15:49:17 -08:00
JonnyWong16
121dad588e Merge branch 'nightly' into python3 2019-11-24 15:03:58 -08:00
JonnyWong16
018479fae9 Fix favicons in setup wizard 2019-11-24 15:03:36 -08:00
JonnyWong16
bb3a11ad00 Temporarily set environment to test_suite 2019-11-24 14:55:16 -08:00
JonnyWong16
64d3bd9c4f Temporarily disable analytics for python3 branch 2019-11-24 14:52:24 -08:00
JonnyWong16
e6be03a770 Use bytearray for pbkdf2 2019-11-24 14:50:30 -08:00
JonnyWong16
5f722570d2 Encode request data in UniversalAnalytics to UTF-8 2019-11-24 14:41:49 -08:00
JonnyWong16
dcbeca5f7f Encode uuid before hashing in UniversalAnalytics 2019-11-24 14:18:58 -08:00
JonnyWong16
16742d4705 Patch ipwhois literal comparison 2019-11-24 11:32:11 -08:00
JonnyWong16
d21a03905d Add soupsieve-1.9.5 2019-11-24 11:28:02 -08:00
JonnyWong16
0608b2a1df Patch UniversalAnalytics with 2to3 2019-11-24 11:27:19 -08:00
JonnyWong16
5f237c7c71 Fix starting cherrypy server 2019-11-23 19:21:40 -08:00
JonnyWong16
4c98b0a43d Remove NotifyMyAndroid and Pushalot 2019-11-23 19:21:30 -08:00
JonnyWong16
05afa0859c Run futurize --unicode-literals 2019-11-23 19:21:10 -08:00
JonnyWong16
597cc9fe29 Run futurize --stage2 2019-11-23 19:16:51 -08:00
JonnyWong16
ab6196589b Run futurize --stage1 2019-11-23 19:11:42 -08:00
JonnyWong16
221be380ee Remove pynma 2019-11-23 19:05:07 -08:00
JonnyWong16
a68e5f6519 Add zc.lockfile-2.0 2019-11-23 19:04:25 -08:00
JonnyWong16
bc81f19715 Add tempora-1.14.1 2019-11-23 19:04:08 -08:00
JonnyWong16
ceeeea94ba Add more_itertools-5.0.0 2019-11-23 19:03:48 -08:00
JonnyWong16
31ab5daa91 Add jaraco.functools-2.0 2019-11-23 19:03:22 -08:00
JonnyWong16
8f6639028f Add cheroot-8.2.1 2019-11-23 19:03:04 -08:00
JonnyWong16
a2b686f6df Add backports.functools_lru_cache-1.6.1 2019-11-23 19:02:44 -08:00
JonnyWong16
2dcc74d82d Add tokenize_rt-3.2.0 2019-11-23 19:02:18 -08:00
JonnyWong16
d460263b97 Add sgmllib3 2019-11-23 19:01:56 -08:00
JonnyWong16
b8cfa343ae Add portend-2.6 2019-11-23 19:01:14 -08:00
JonnyWong16
8d391f125c Add future_fstrings-1.2.0 2019-11-23 19:01:00 -08:00
JonnyWong16
1532bb731a Add distro-1.4.0 2019-11-23 19:00:47 -08:00
JonnyWong16
357ba9ec59 Add contextlib2-0.6.0 2019-11-23 19:00:36 -08:00
JonnyWong16
183c810c76 Update configobj to 5.1.0 2019-11-23 18:57:54 -08:00
JonnyWong16
f2d7beec90 Update mako to 1.1.0 2019-11-23 18:57:21 -08:00
JonnyWong16
84ce4758d1 Update ipwhois to 1.1.0 2019-11-23 18:55:41 -08:00
JonnyWong16
4d6279a626 Update cherrpy to 17.4.2 2019-11-23 18:55:19 -08:00
JonnyWong16
f28e741ad7 Update bs4 to 4.8.1 (with 2to3) 2019-11-23 18:54:24 -08:00
JonnyWong16
23c4e5b09d Update pbkdf2 with 2to3 2019-11-23 18:51:02 -08:00
JonnyWong16
cd6057e1ca Update hashing_passwords with 2to3 2019-11-23 18:50:49 -08:00
JonnyWong16
1771674b53 Update feedparser to 5.2.1 (with 2to3) 2019-11-23 18:50:34 -08:00
JonnyWong16
2a9d0ea7d2 Update argparse to 1.4.0 2019-11-23 18:50:16 -08:00
JonnyWong16
e19938b05e Patch UniversalAnalytics using six 2019-11-23 16:14:37 -08:00
JonnyWong16
244a3e5be3 Update apscheduler to version 3.6.3 2019-11-23 14:38:11 -08:00
JonnyWong16
e5a3d534b2 Update six to version 1.13.0 2019-11-23 14:37:41 -08:00
JonnyWong16
c279057f91 Remove unicode strings 2019-11-23 14:37:26 -08:00
JonnyWong16
1c18e72539 Enable allow Plex admin by default 2019-11-20 21:51:52 -08:00
JonnyWong16
779e710045 Fix setup wizard height 2019-11-20 21:51:36 -08:00
JonnyWong16
089a981f6e Check for database corruption when making backup 2019-11-20 19:03:44 -08:00
JonnyWong16
3b24bbee5f Add web server HTTP username and password to setup wizard 2019-11-20 18:50:17 -08:00
JonnyWong16
f9a597bed9 Use bit.ly link for PayPal in FUNDING file 2019-11-17 21:54:47 -08:00
JonnyWong16
a637b3bb24 v2.1.38 2019-11-17 21:45:43 -08:00
JonnyWong16
3e520820d8 Update pytz to 2019.3 2019-11-17 21:13:21 -08:00
JonnyWong16
3a71929821 Remove issues template 2019-11-13 19:44:33 -08:00
JonnyWong16
a08629c503 Add GitHub sponsor 2019-11-13 19:40:26 -08:00
JonnyWong16
cfc30c1234 Add optional headers parameter for webhooks in notify API command 2019-11-11 15:41:11 -08:00
JonnyWong16
ddbd486500 Add custom headers to Webhook notification agent 2019-11-11 15:17:49 -08:00
JonnyWong16
f5794a5bae Improve resolving hostnames 2019-11-02 10:38:14 -07:00
JonnyWong16
bb1bf87fe2 Fix homepage recently watched not showing grouped history 2019-10-27 16:06:19 -07:00
JonnyWong16
acc59523e0 Prevent dismissing the changelog modal 2019-10-11 22:55:23 -07:00
JonnyWong16
38d7ea16b4 Fix typo in changelogs 2019-10-11 20:37:26 -07:00
JonnyWong16
6e3147c5f5 v2.1.37 2019-10-11 20:26:54 -07:00
JonnyWong16
1b09f225ff Remove blank line 2019-10-11 20:14:25 -07:00
JonnyWong16
3cf8c4f8a8 Fix rare case when HTTP_ROOT is None when retrieving URL 2019-10-11 20:11:13 -07:00
JonnyWong16
30be4b473f Log individual custom conditions 2019-10-11 19:54:48 -07:00
JonnyWong16
6908034a86 Add ability to delete MusicBrainz lookup info 2019-10-06 16:50:26 -07:00
JonnyWong16
cba43f675a Save MusicBrainz lookups in the database 2019-10-06 15:16:19 -07:00
JonnyWong16
6ff826bc3a Fix Last.fm URLs linking to the artist page instead of the album page 2019-10-05 23:58:17 -07:00
JonnyWong16
c7afd10ec0 Add notification parameters for MusicBrainz lookup 2019-10-05 23:57:48 -07:00
JonnyWong16
b39d5174f9 Add 3rd party MusicBrains lookup setting 2019-10-05 23:44:13 -07:00
JonnyWong16
501bc0ab3f Add musicbrainzngs v0.7dev 2019-10-05 23:27:16 -07:00
JonnyWong16
688d28b5ea Limit Discord description to 2048 characters 2019-10-05 23:26:41 -07:00
JonnyWong16
27d2c7b078 v2.1.36-beta 2019-10-05 21:59:14 -07:00
JonnyWong16
2fb12ccf65 Fix updating activity card when rating key changes for the same session key (Fixes Tautulli/Tautulli-Issues#96) 2019-10-05 21:48:11 -07:00
JonnyWong16
cb92d159c1 Add parent_guid and grandparent_guid to get_activity and get_metadata API commands 2019-10-05 20:21:15 -07:00
JonnyWong16
64bdf4237c Separate progressive vs. interlaced video on stream type graphs 2019-09-27 13:44:08 -07:00
JonnyWong16
fd7b4ec7e3 Get srouce video_full_resolution from Plex metadata 2019-09-27 13:26:55 -07:00
JonnyWong16
57eb57d4d7 Use video_full_resolution in stream data modal 2019-09-27 13:04:40 -07:00
JonnyWong16
7974e9505b Save session video_scan_type and video_full_resolution to the database 2019-09-27 13:04:17 -07:00
JonnyWong16
7498fb37b5 Update database with video_scan_type and video_full_resolution 2019-09-27 13:03:34 -07:00
JonnyWong16
2cc3e88e6c Fix Albums typo on media info table 2019-09-26 20:14:48 -07:00
3065 changed files with 365094 additions and 126807 deletions

11
.dockerignore Normal file
View file

@ -0,0 +1,11 @@
.git
.github
.gitignore
contrib
init-scripts
package
pylintrc
snap
*.md
!CHANGELOG*.md
start.bat

3
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,3 @@
github: JonnyWong16
patreon: Tautulli
custom: ["https://bit.ly/2InPp15", "https://bit.ly/2WTq83m"]

103
.github/ISSUE_TEMPLATE/BUG-REPORT.yml vendored Normal file
View file

@ -0,0 +1,103 @@
name: Bug Report
description: Please do not use bug reports for support issues.
labels: ['status:awaiting-triage', 'type:bug']
body:
- type: markdown
attributes:
value: |
**THIS IS NOT THE PLACE TO ASK FOR SUPPORT!** Please use [Discord](https://tautulli.com/discord) for support issues.
- type: textarea
id: description
attributes:
label: Describe the Bug
description: A clear and concise description of the bug.
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: List each action required in order to reproduce the issue.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: Provide screenshots to help explain your problem.
- type: textarea
id: relevant
attributes:
label: Relevant Settings
description: Include all settings/configuration that are relevant to your issue. For example, Plex Media Server, newsletter, or notification settings.
placeholder: |
- eg. Plex Media Server IP address/port/checkboxes/proxy/etc.
- eg. Notification agent configuration/triggers/conditions/text/delay/grouping/etc.
- eg. Newsletter agent configuration/checkboxes/template/etc.
- Other settings
- type: input
id: version
attributes:
label: Tautulli Version
description: Check Tautulli Settings > Help & Info page.
placeholder: eg. v2.7.5
validations:
required: true
- type: input
id: branch
attributes:
label: Git Branch
description: Check Tautulli Settings > Help & Info page.
placeholder: eg. master
validations:
required: true
- type: input
id: hash
attributes:
label: Git Commit Hash
description: Check Tautulli Settings > Help & Info page.
placeholder: eg. 2cc5bf812fe05e0666aeaeb37ed550c59816fb4c
validations:
required: true
- type: input
id: platform
attributes:
label: Platform and Version
description: Check Tautulli Settings > Help & Info page.
placeholder: eg. Windows 10
validations:
required: true
- type: input
id: python
attributes:
label: Python Version
description: Check Tautulli Settings > Help & Info page.
placeholder: eg. 3.8.10
validations:
required: true
- type: input
id: browser
attributes:
label: Browser and Version
placeholder: eg. Chrome 88
validations:
required: true
- type: input
id: logs
attributes:
label: Link to Logs
description: Include a link to your **FULL** logs (not just a few lines) on [Gist](http://gist.github.com).
validations:
required: true
- type: markdown
attributes:
value: |
Make sure to close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it.

View file

@ -0,0 +1,31 @@
name: Feature Request
description: Suggest a new feature for Tautulli.
labels: ['status:awaiting-triage', 'type:enhancement']
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to help improve Tautulli!
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem?
description: If so, please provide clear and concise description of the problem.
placeholder: eg. I'm always frustrated when '...'
- type: textarea
id: feature
attributes:
label: What is your feature request?
description: A clear and concise description of the feature.
validations:
required: true
- type: textarea
id: workaround
attributes:
label: Are there any workarounds?
description: A clear and concise description of any alternative solutions or features you've considered.
- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context or screenshots about the feature request here.

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Tautulli Wiki
url: https://github.com/Tautulli/Tautulli/wiki
about: Please check the wiki to see if your question has already been answered.
- name: Discord
url: https://tautulli.com/discord
about: Please use Discord to ask for support.

4
.github/codeql-config.yml vendored Normal file
View file

@ -0,0 +1,4 @@
name: CodeQL Config
paths-ignore:
- lib

15
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,15 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
target-branch: "nightly"
open-pull-requests-limit: 20
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
target-branch: "nightly"
open-pull-requests-limit: 20

48
.github/label-actions.yml vendored Normal file
View file

@ -0,0 +1,48 @@
# Configuration for Label Actions - https://github.com/dessant/label-actions
added:
comment: >
This feature has been added and will be available in the next release of Tautulli.
This issue will be automatically closed once the update is available.
fixed:
comment: >
This bug has been fixed and will be available in the next release of Tautulli.
This issue will be automatically closed once the update is available.
invalid:duplicate:
comment: >
:wave: @{issue-author}, this appears to be a duplicate of a pre-existing issue.
close: true
lock: true
unlabel: 'status:awaiting-triage'
-invalid:duplicate:
reopen: true
unlock: true
invalid:support:
comment: >
:wave: @{issue-author}, we use the issue tracker exclusively for bug reports.
However, this issue appears to be a support request. Please use our
[Discord Server](https://tautulli.com/discord) to get help with Tautulli. Thanks.
close: true
lock: true
lock-reason: 'off-topic'
unlabel: 'status:awaiting-triage'
-invalid:support:
reopen: true
unlock: true
invalid:template-incomplete:
issues:
comment: >
:wave: @{issue-author}, please edit your issue to complete the template with
all the required info. Your issue will be automatically closed in 5 days if
the template is not completed. Thanks.
prs:
comment: >
:wave: @{issue-author}, please edit your PR to complete the template with
all the required info. Your PR will be automatically closed in 5 days if
the template is not completed. Thanks.

26
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,26 @@
## Description
Please include a summary of the changes.
### Screenshot
Include screenshots if the changes are UI-related.
### Issues Fixed or Closed
- Fixes #(issue)
## Type of Change
Please delete options that are not relevant.
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
## Checklist
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated the docstring for new or existing methods

38
.github/workflows/codeql.yml vendored Normal file
View file

@ -0,0 +1,38 @@
name: CodeQL
on:
push:
branches: [nightly]
pull_request:
branches: [nightly]
schedule:
- cron: '05 10 * * 1'
jobs:
codeql-analysis:
name: CodeQL Analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript', 'python']
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
config-file: ./.github/codeql-config.yml
languages: ${{ matrix.language }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

48
.github/workflows/issues-stale.yml vendored Normal file
View file

@ -0,0 +1,48 @@
name: Stale Issues / PRs
on:
schedule:
- cron: '00 19 * * *'
jobs:
stale:
name: Check Issues / PRs
runs-on: ubuntu-latest
steps:
- name: Stale
uses: actions/stale@v9
with:
stale-issue-message: >
This issue is stale because it has been open for 30 days with no activity.
Remove the stale label or comment, otherwise this will be closed in 5 days.
close-issue-message: >
This issue was closed because it has been stalled for 5 days with no activity.
stale-issue-label: 'stale'
exempt-issue-labels: 'added,fixed,type:enhancement,status:awaiting-triage,status:in-progress'
stale-pr-message: >
This PR is stale because it has been open for 30 days with no activity.
Remove the stale label or comment, otherwise this will be closed in 5 days.
close-pr-message: >
This PR was closed because it has been stalled for 5 days with no activity.
stale-pr-label: 'stale'
exempt-pr-labels: 'status:in-progress,status:in-review,dependencies'
days-before-stale: 30
days-before-close: 5
- name: Invalid Template
uses: actions/stale@v9
with:
stale-issue-message: >
Invalid issues template.
close-issue-message: >
This issue was closed because the the template was not completed after 5 days.
stale-issue-label: 'invalid:template-incomplete'
stale-pr-message: >
Invalid PR template.
close-pr-message: >
This PR was closed because the the template was not completed after 5 days.
stale-pr-label: 'invalid:template-incomplete'
exempt-pr-labels: 'status:in-progress,status:in-review,dependencies'
only-labels: 'invalid:template-incomplete'
days-before-stale: 0
days-before-close: 5

15
.github/workflows/issues.yml vendored Normal file
View file

@ -0,0 +1,15 @@
name: Issues
on:
issues:
types: [labeled, unlabeled]
jobs:
label:
name: Label Issues
runs-on: ubuntu-latest
steps:
- name: Label Issues
uses: dessant/label-actions@v4
with:
github-token: ${{ github.token }}

108
.github/workflows/publish-docker.yml vendored Normal file
View file

@ -0,0 +1,108 @@
name: Publish Docker
on:
workflow_dispatch: ~
push:
branches: [master, beta, nightly]
tags: [v*]
jobs:
build-docker:
name: Build Docker Image
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Prepare
id: prepare
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
elif [[ $GITHUB_REF == refs/heads/master ]]; then
echo "tag=latest" >> $GITHUB_OUTPUT
else
echo "tag=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
fi
if [[ $GITHUB_REF == refs/tags/*-beta ]]; then
echo "branch=beta" >> $GITHUB_OUTPUT
elif [[ $GITHUB_REF == refs/tags/* ]]; then
echo "branch=master" >> $GITHUB_OUTPUT
else
echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
fi
echo "commit=${GITHUB_SHA}" >> $GITHUB_OUTPUT
echo "docker_platforms=linux/amd64,linux/arm64/v8,linux/arm/v7,linux/arm/v6" >> $GITHUB_OUTPUT
echo "docker_image=${{ secrets.DOCKER_REPO }}/tautulli" >> $GITHUB_OUTPUT
- name: Set Up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
id: buildx
with:
version: latest
- name: Cache Docker Layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to DockerHub
uses: docker/login-action@v3
if: success()
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: success()
with:
registry: ghcr.io
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.GHCR_TOKEN }}
- name: Extract Docker Metadata
id: metadata
uses: docker/metadata-action@v5
with:
images: ${{ steps.prepare.outputs.docker_image }}
- name: Docker Build and Push
uses: docker/build-push-action@v6
if: success()
with:
context: .
file: ./Dockerfile
push: true
platforms: ${{ steps.prepare.outputs.docker_platforms }}
build-args: |
TAG=${{ steps.prepare.outputs.tag }}
BRANCH=${{ steps.prepare.outputs.branch }}
COMMIT=${{ steps.prepare.outputs.commit }}
tags: |
${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.tag }}
ghcr.io/${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.tag }}
labels: ${{ steps.metadata.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
discord:
name: Discord Notification
needs: build-docker
if: always() && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: ubuntu-latest
steps:
- name: Post Status to Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ needs.build-docker.result == 'success' && 'success' || contains(needs.*.result, 'failure') && 'failure' || 'cancelled' }}
title: ${{ github.workflow }}
nofail: true

178
.github/workflows/publish-installers.yml vendored Normal file
View file

@ -0,0 +1,178 @@
name: Publish Installers
on:
workflow_dispatch: ~
push:
branches: [master, beta, nightly]
tags: [v*]
env:
PYTHON_VERSION: '3.11'
jobs:
build-installer:
name: Build ${{ matrix.os_upper }} Installer
runs-on: ${{ matrix.os }}-${{ matrix.os_version }}
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
strategy:
fail-fast: false
matrix:
include:
- os: 'windows'
os_upper: 'Windows'
os_version: 'latest'
arch: 'x64'
ext: 'exe'
- os: 'macos'
os_upper: 'MacOS'
os_version: '14'
arch: 'universal'
ext: 'pkg'
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set Release Version
id: get_version
shell: bash
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
VERSION_NSIS=${GITHUB_REF#refs/tags/v}.1
echo "VERSION_NSIS=${VERSION_NSIS/%-beta.1/.0}" >> $GITHUB_OUTPUT
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
else
echo "VERSION=0.0.0" >> $GITHUB_ENV
echo "VERSION_NSIS=0.0.0.0" >> $GITHUB_OUTPUT
echo "VERSION=0.0.0" >> $GITHUB_OUTPUT
echo "RELEASE_VERSION=${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
fi
if [[ $GITHUB_REF == refs/tags/*-beta ]]; then
echo "beta" > branch.txt
elif [[ $GITHUB_REF == refs/tags/* ]]; then
echo "master" > branch.txt
else
echo ${GITHUB_REF#refs/heads/} > branch.txt
fi
echo $GITHUB_SHA > version.txt
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: pip
cache-dependency-path: '**/requirements*.txt'
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r package/requirements-package.txt --no-binary cffi
- name: Build Package
run: |
pyinstaller -y ./package/Tautulli-${{ matrix.os }}.spec
- name: Create Windows Installer
uses: joncloud/makensis-action@v4.1
if: matrix.os == 'windows'
with:
script-file: ./package/Tautulli.nsi
arguments: >
/DVERSION=${{ steps.get_version.outputs.VERSION_NSIS }}
/DINSTALLER_NAME=..\Tautulli-${{ matrix.os }}-${{ steps.get_version.outputs.RELEASE_VERSION }}-${{ matrix.arch }}.${{ matrix.ext }}
additional-plugin-paths: package/nsis-plugins
- name: Create MacOS Installer
if: matrix.os == 'macos'
run: |
sudo pkgbuild \
--install-location /Applications \
--version ${{ steps.get_version.outputs.VERSION }} \
--component ./dist/Tautulli.app \
--scripts ./package/macos-scripts \
Tautulli-${{ matrix.os }}-${{ steps.get_version.outputs.RELEASE_VERSION }}-${{ matrix.arch }}.${{ matrix.ext }}
- name: Upload Installer
uses: actions/upload-artifact@v4
with:
name: Tautulli-${{ matrix.os }}-installer
path: Tautulli-${{ matrix.os }}-${{ steps.get_version.outputs.RELEASE_VERSION }}-${{ matrix.arch }}.${{ matrix.ext }}
virus-total:
name: VirusTotal Scan
needs: build-installer
if: needs.build-installer.result == 'success' && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: ubuntu-latest
steps:
- name: Download Installers
if: needs.build-installer.result == 'success'
uses: actions/download-artifact@v4
- name: Upload to VirusTotal
uses: crazy-max/ghaction-virustotal@v4
with:
vt_api_key: ${{ secrets.VT_API_KEY }}
files: |
Tautulli-windows-installer/Tautulli-windows-*-x64.exe
Tautulli-macos-installer/Tautulli-macos-*-universal.pkg
release:
name: Release Installers
needs: build-installer
if: always() && startsWith(github.ref, 'refs/tags/') && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set Release Version
id: get_version
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Download Installers
if: needs.build-installer.result == 'success'
uses: actions/download-artifact@v4
- name: Get Changelog
id: get_changelog
run: |
CHANGELOG="$( sed -n '/^## /{p; :loop n; p; /^## /q; b loop}' CHANGELOG.md \
| sed '$d' | sed '$d' | sed '$d' )"
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "CHANGELOG<<$EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2
id: create_release
env:
GITHUB_TOKEN: ${{ secrets.GHACTIONS_TOKEN }}
with:
tag_name: ${{ steps.get_version.outputs.RELEASE_VERSION }}
name: Tautulli ${{ steps.get_version.outputs.RELEASE_VERSION }}
body: |
## Changelog
##${{ steps.get_changelog.outputs.CHANGELOG }}
prerelease: ${{ endsWith(steps.get_version.outputs.RELEASE_VERSION, '-beta') }}
files: |
Tautulli-windows-installer/Tautulli-windows-${{ steps.get_version.outputs.RELEASE_VERSION }}-x64.exe
Tautulli-macos-installer/Tautulli-macos-${{ steps.get_version.outputs.RELEASE_VERSION }}-universal.pkg
discord:
name: Discord Notification
needs: [build-installer, release]
if: always() && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: ubuntu-latest
steps:
- name: Post Status to Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ needs.build-installer.result == 'success' && 'success' || contains(needs.*.result, 'failure') && 'failure' || 'cancelled' }}
title: ${{ github.workflow }}
nofail: true

78
.github/workflows/publish-snap.yml vendored Normal file
View file

@ -0,0 +1,78 @@
name: Publish Snap
on:
workflow_dispatch: ~
push:
branches: [master, beta, nightly]
tags: [v*]
jobs:
build-snap:
name: Build Snap Package (${{ matrix.architecture }})
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
strategy:
fail-fast: false
matrix:
architecture:
- amd64
- arm64
- armhf
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Prepare
id: prepare
run: |
git fetch --prune --unshallow --tags
if [[ $GITHUB_REF == refs/tags/*-beta || $GITHUB_REF == refs/heads/beta ]]; then
echo "RELEASE=beta" >> $GITHUB_OUTPUT
elif [[ $GITHUB_REF == refs/tags/* || $GITHUB_REF == refs/heads/master ]]; then
echo "RELEASE=stable" >> $GITHUB_OUTPUT
else
echo "RELEASE=edge" >> $GITHUB_OUTPUT
fi
- name: Set Up QEMU
uses: docker/setup-qemu-action@v3
- name: Build Snap Package
uses: diddlesnaps/snapcraft-multiarch-action@master
id: build
with:
architecture: ${{ matrix.architecture }}
- name: Upload Snap Package
uses: actions/upload-artifact@v4
with:
name: Tautulli-snap-package-${{ matrix.architecture }}
path: ${{ steps.build.outputs.snap }}
- name: Review Snap Package
uses: diddlesnaps/snapcraft-review-tools-action@master
with:
snap: ${{ steps.build.outputs.snap }}
- name: Publish Snap Package
uses: snapcore/action-publish@v1
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/nightly'
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_LOGIN }}
with:
snap: ${{ steps.build.outputs.snap }}
release: ${{ steps.prepare.outputs.RELEASE }}
discord:
name: Discord Notification
needs: build-snap
if: always() && !contains(github.event.head_commit.message, '[skip ci]')
runs-on: ubuntu-latest
steps:
- name: Post Status to Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ needs.build-snap.result == 'success' && 'success' || contains(needs.*.result, 'failure') && 'failure' || 'cancelled' }}
title: ${{ github.workflow }}
nofail: true

27
.github/workflows/pull-requests.yml vendored Normal file
View file

@ -0,0 +1,27 @@
name: Pull Requests
on:
pull_request_target:
types: [opened, synchronize, edited, reopened]
jobs:
check-branch:
name: Check Pull Request
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Comment on Pull Request
uses: mshick/add-pr-comment@v2
if: github.base_ref != 'nightly'
with:
message: Pull requests must be made to the `nightly` branch. Thanks.
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Fail Workflow
if: github.base_ref != 'nightly'
run: |
echo Base: "$GITHUB_BASE_REF"
echo Head: "$GITHUB_HEAD_REF"
exit 1

44
.github/workflows/submit-winget.yml vendored Normal file
View file

@ -0,0 +1,44 @@
name: Submit winget
on:
workflow_dispatch: ~
release:
types: [published]
jobs:
winget:
name: Submit Winget Package
runs-on: windows-latest
if: ${{ !github.event.release.prerelease }}
steps:
- name: Sync Winget Fork
run: gh repo sync ${{ secrets.WINGET_USERNAME }}/winget-pkgs -b master
env:
GH_TOKEN: ${{ secrets.WINGET_TOKEN }}
- name: Submit package to Windows Package Manager Community Repository
run: |
$wingetPackage = "Tautulli.Tautulli"
$gitToken = "${{ secrets.WINGET_TOKEN }}"
$github = Invoke-RestMethod -uri "https://api.github.com/repos/Tautulli/Tautulli/releases/latest"
$installerUrl = $github | Select -ExpandProperty assets -First 1 | Where-Object -Property name -match "Tautulli-windows-.*-x64.exe" | Select -ExpandProperty browser_download_url
$version = "$($github.tag_name.Trim('v')).1"
# getting latest wingetcreate file
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
.\wingetcreate.exe update $wingetPackage -s -v $version -u $installerUrl -t $gitToken
virus-total:
name: VirusTotal Scan
runs-on: ubuntu-latest
steps:
- name: Upload to VirusTotal
uses: crazy-max/ghaction-virustotal@v4
with:
vt_api_key: ${{ secrets.VT_API_KEY }}
github_token: ${{ secrets.GHACTIONS_TOKEN }}
update_release_body: true
files: |
.exe$
.pkg$

29
.gitignore vendored
View file

@ -1,6 +1,7 @@
# Compiled source #
###################
__pycache__
*.pyc
*.py~
*.pyproj
@ -14,11 +15,22 @@
*.ini
release.lock
version.lock
lib/*.dist-info
lib/*.egg-info
lib/*.pth
lib/*/*.pyd
lib/_distutils_hack
lib/pkg_resources
lib/setuptools
logs/*
backups/*
cache/*
exports/*
newsletters/*
*.mmdb
version.txt
branch.txt
.TEST
# HTTPS Cert/Key #
##################
@ -41,6 +53,9 @@ Thumbs.db
#Ignore files generated by PyCharm
*.idea/*
#Ignore files generated by VSCode
*.vscode/*
#Ignore files generated by vi
*.swp
@ -61,7 +76,6 @@ Thumbs.db
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
@ -74,3 +88,16 @@ _ReSharper*/
/logs
.project
.pydevproject
#Ignore files generated by pyinstaller
/build
/dist
#snapcraft specifics
/parts/
/stage/
/prime/
*.snap
.snapcraft
*_source.tar.bz2
snap/.snapcraft

2764
API.md

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -9,12 +9,12 @@ All pull requests should be based on the `nightly` branch, to minimize cross mer
### Python Code
#### Compatibility
The code should work with Python 2.7. Note that Tautulli runs on many different platforms.
The code should work with Python 3.8+. Note that Tautulli runs on many different platforms.
Re-use existing code. Do not hesitate to add logging in your code. You can the logger module `plexpy.logger.*` for this. Web requests are invoked via `plexpy.request.*` and derived ones. Use these methods to automatically add proper and meaningful error handling.
#### Code conventions
Although Tautulli did not adapt a code convention in the past, we try to follow the [PEP8](http://legacy.python.org/dev/peps/pep-0008/) conventions for future code. A short summary to remind you (copied from http://wiki.ros.org/PyStyleGuide):
Although Tautulli did not adopt a code convention in the past, we try to follow [PEP8](http://legacy.python.org/dev/peps/pep-0008/) conventions for future code. A short summary to remind you (copied from http://wiki.ros.org/PyStyleGuide):
* 4 space indentation
* 80 characters per line
@ -38,4 +38,4 @@ HTML5 compatible browsers are targeted.
* 4 space indentation
* `methodName`
* `variableName`
* `ClassName`
* `ClassName`

28
Dockerfile Normal file
View file

@ -0,0 +1,28 @@
FROM ghcr.io/tautulli/tautulli-baseimage:python3
LABEL maintainer="Tautulli"
ARG BRANCH
ARG COMMIT
ENV TAUTULLI_DOCKER=True
ENV TZ=UTC
WORKDIR /app
COPY . /app
RUN \
groupadd -g 1000 tautulli && \
useradd -u 1000 -g 1000 tautulli && \
echo ${BRANCH} > /app/branch.txt && \
echo ${COMMIT} > /app/version.txt
RUN \
mkdir /config && \
touch /config/DOCKER
VOLUME /config
CMD [ "python", "Tautulli.py", "--datadir", "/config" ]
ENTRYPOINT [ "./start.sh" ]
EXPOSE 8181
HEALTHCHECK --start-period=90s CMD curl -ILfks https://localhost:8181/status > /dev/null || curl -ILfs http://localhost:8181/status > /dev/null || exit 1

View file

@ -1,41 +0,0 @@
<!---
Reporting Issues:
* To ensure that a developer has enough information to work with please include all of the information below.
Please provide as much detail as possible. Screenshots can be very useful to see the problem.
* Use proper markdown syntax to structure your post (i.e. code/log in code blocks).
See: https://help.github.com/articles/basic-writing-and-formatting-syntax/
* Include a link to your **FULL** log file that has the error(not just a few lines!).
Please use [Gist](http://gist.github.com) or [Pastebin](http://pastebin.com/).
Feature Requests:
* Feature requests are handled on FeatHub: http://feathub.com/Tautulli/Tautulli
* Do not post them on the GitHub issues tracker.
-->
**Version:**
**Branch:**
**Commit hash:**
**Operating system:**
**Python version:**
**What you did?**
**What happened?**
**What you expected?**
**How can we reproduce your issue?**
<!-- Provide a detailed step-by-step. -->
**What are your (relevant) settings?**
**Link to logs:**
<!--
Close your issue when it's solved! If you found the solution yourself please comment so that others benefit from it.
-->

View file

@ -1,8 +1,4 @@
#!/bin/sh
''''which python >/dev/null 2>&1 && exec python "$0" "$@" # '''
''''which python2 >/dev/null 2>&1 && exec python2 "$0" "$@" # '''
''''which python2.7 >/dev/null 2>&1 && exec python2.7 "$0" "$@" # '''
''''exec echo "Error: Python not found!" # '''
#!/usr/bin/env python
# -*- coding: utf-8 -*-

173
README.md
View file

@ -1,48 +1,163 @@
# Tautulli
[![Discord](https://img.shields.io/badge/Discord-Tautulli-7289DA.svg?style=flat-square)](https://tautulli.com/discord)
[![Reddit](https://img.shields.io/badge/Reddit-Tautulli-FF5700.svg?style=flat-square)](https://www.reddit.com/r/Tautulli/)
[![Plex Forums](https://img.shields.io/badge/Plex%20Forums-Tautulli-E5A00D.svg?style=flat-square)](https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242)
A python based web application for monitoring, analytics and notifications for
[Plex Media Server](https://plex.tv).
A python based web application for monitoring, analytics and notifications for [Plex Media Server](https://plex.tv).
This project is based on code from [Headphones](https://github.com/rembo10/headphones) and [PlexWatchWeb](https://github.com/ecleese/plexWatchWeb).
This project is based on code from [Headphones](https://github.com/rembo10/headphones)
and [PlexWatchWeb](https://github.com/ecleese/plexWatchWeb).
## Features
* Responsive web design viewable on desktop, tablet and mobile web browsers.
* Themed to complement Plex/Web.
* Easy configuration setup (no separate web server required).
* Monitor current Plex Media Server activity.
* Fully customizable notifications for stream activity and recently added media.
* Top statistics on home page with configurable duration and measurement metric.
* Global watching history with search/filtering & dynamic column sorting.
* Full user list with general information and comparison stats.
* Individual user information including devices IP addresses.
* Complete library statistics and media file information.
* Rich analytics presented using Highcharts graphing.
* Beautiful content information pages.
* Full sync list data on all users syncing items from your library.
* And many more!!
- Responsive web design viewable on desktop, tablet and mobile web browsers.
- Themed to complement Plex/Web.
- Easy configuration setup (no separate web server required).
- Monitor current Plex Media Server activity.
- Fully customizable notifications for stream activity and recently added media.
- Top statistics on home page with configurable duration and measurement metric.
- Global watching history with search/filtering & dynamic column sorting.
- Full user list with general information and comparison stats.
- Individual user information including devices IP addresses.
- Complete library statistics and media file information.
- Rich analytics presented using Highcharts graphing.
- Beautiful content information pages.
- Full sync list data on all users syncing items from your library.
- And many more!!
## Preview
* [Full preview gallery available on our website](https://tautulli.com)
[Full preview gallery available on our website][Tautulli]
![Tautulli Homepage](https://tautulli.com/images/screenshots/activity-compressed.jpg?v=2)
## Installation and Support
## Installation
* Read the [Installation Guides](https://github.com/Tautulli/Tautulli-Wiki/wiki/Installation) for instructions to install Tautulli.
* The [Frequently Asked Questions](https://github.com/Tautulli/Tautulli-Wiki/wiki/Frequently-Asked-Questions) in the wiki can help you with common problems.
* Support is available on [Discord](https://tautulli.com/discord), [Reddit](https://www.reddit.com/r/Tautulli), or the [Plex Forums](https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242).
[![Python][badge-python]][Python]
[![Docker Pulls][badge-docker-pulls]][DockerHub]
[![Docker Stars][badge-docker-stars]][DockerHub]
[![Downloads][badge-downloads]][Releases Latest]
## Issues & Feature Requests
[badge-python]: https://img.shields.io/badge/python->=3.9-blue?style=flat-square
[badge-docker-pulls]: https://img.shields.io/docker/pulls/tautulli/tautulli?style=flat-square
[badge-docker-stars]: https://img.shields.io/docker/stars/tautulli/tautulli?style=flat-square
[badge-downloads]: https://img.shields.io/github/downloads/Tautulli/Tautulli/total?style=flat-square
* Please see the [Issues Repository](https://github.com/Tautulli/Tautulli-Issues).
| Status | Branch: `master` | Branch: `beta` | Branch: `nightly` |
| --- | --- | --- | --- |
| Release | [![Release@master][badge-release-master]][Releases Latest] <br> [![Release Date@master][badge-release-master-date]][Releases Latest] | [![Release@beta][badge-release-beta]][Releases] <br> [![Commits@beta][badge-release-beta-commits]][Commits Beta] | [![Last Commits@nightly][badge-release-nightly-last-commit]][commits Nightly] <br> [![Commits@nightly][badge-release-nightly-commits]][Commits Nightly] |
| Docker | [![Docker@master][badge-docker-master]][DockerHub] <br> [![Docker Build@master][badge-docker-master-ci]][Publish Docker Master] | [![Docker@beta][badge-docker-beta]][DockerHub] <br> [![Docker Build@beta][badge-docker-beta-ci]][Publish Docker Beta] | [![Docker@nightly][badge-docker-nightly]][DockerHub] <br> [![Docker Build@nightly][badge-docker-nightly-ci]][Publish Docker Nightly] |
| Snap | [![Snap@master][badge-snap-master]][Snapcraft] <br> [![Snap Build@master][badge-snap-master-ci]][Publish Snap Master] | [![Snap@beta][badge-snap-beta]][Snapcraft] <br> [![Snap Build@beta][badge-snap-beta-ci]][Publish Snap Beta] | [![Snap@nightly][badge-snap-nightly]][Snapcraft] <br> [![Snap Build@nightly][badge-snap-nightly-ci]][Publish Snap Nightly] |
| Installer | [![Windows@master][badge-installer-master-win]][Releases Latest] <br> [![MacOS@master][badge-installer-master-macos]][Releases Latest] <br> [![Installer Build@master][badge-installer-master-ci]][Publish Installer Master] | [![Windows@beta][badge-installer-beta-win]][Releases] <br> [![MacOS@beta][badge-installer-beta-macos]][Releases] <br> [![Installer Build@beta][badge-installer-beta-ci]][Publish Installer Beta] | [![Installer Build@nightly][badge-installer-nightly-ci]][Publish Installer Nightly] |
Read the [Installation Guides][Installation] for instructions on how to install Tautulli.
[badge-release-master]: https://img.shields.io/github/v/release/Tautulli/Tautulli?style=flat-square
[badge-release-master-date]: https://img.shields.io/github/release-date/Tautulli/Tautulli?style=flat-square&color=blue
[badge-release-beta]: https://img.shields.io/github/v/release/Tautulli/Tautulli?include_prereleases&style=flat-square
[badge-release-beta-commits]: https://img.shields.io/github/commits-since/Tautulli/Tautulli/latest/beta?style=flat-square&color=blue
[badge-release-nightly-last-commit]: https://img.shields.io/github/last-commit/Tautulli/Tautulli/nightly?style=flat-square&color=blue
[badge-release-nightly-commits]: https://img.shields.io/github/commits-since/Tautulli/Tautulli/latest/nightly?style=flat-square&color=blue
[badge-docker-master]: https://img.shields.io/badge/docker-latest-blue?style=flat-square
[badge-docker-master-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-docker.yml?style=flat-square&branch=master
[badge-docker-beta]: https://img.shields.io/badge/docker-beta-blue?style=flat-square
[badge-docker-beta-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-docker.yml?style=flat-square&branch=beta
[badge-docker-nightly]: https://img.shields.io/badge/docker-nightly-blue?style=flat-square
[badge-docker-nightly-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-docker.yml?style=flat-square&branch=nightly
[badge-snap-master]: https://img.shields.io/badge/snap-stable-blue?style=flat-square
[badge-snap-master-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-snap.yml?style=flat-square&branch=master
[badge-snap-beta]: https://img.shields.io/badge/snap-beta-blue?style=flat-square
[badge-snap-beta-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-snap.yml?style=flat-square&branch=beta
[badge-snap-nightly]: https://img.shields.io/badge/snap-edge-blue?style=flat-square
[badge-snap-nightly-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-snap.yml?style=flat-square&branch=nightly
[badge-installer-master-win]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=windows&style=flat-square
[badge-installer-master-macos]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=macos&style=flat-square
[badge-installer-master-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-installers.yml?style=flat-square&branch=master
[badge-installer-beta-win]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=windows&include_prereleases&style=flat-square
[badge-installer-beta-macos]: https://img.shields.io/github/v/release/Tautulli/Tautulli?label=macos&include_prereleases&style=flat-square
[badge-installer-beta-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-installers.yml?style=flat-square&branch=beta
[badge-installer-nightly-ci]: https://img.shields.io/github/actions/workflow/status/Tautulli/Tautulli/.github/workflows/publish-installers.yml?style=flat-square&branch=nightly
## Support
[![Wiki][badge-wiki]][Wiki]
[![Discord][badge-discord]][Discord]
[![Reddit][badge-reddit]][Reddit]
[![Plex Forums][badge-forums]][Plex Forums]
[![Issues][badge-issues]][Issues]
[badge-wiki]: https://img.shields.io/badge/github-wiki-black?style=flat-square
[badge-discord]: https://img.shields.io/discord/183396325142822912?label=discord&style=flat-square&color=7289DA
[badge-reddit]: https://img.shields.io/reddit/subreddit-subscribers/tautulli?label=reddit&style=flat-square&color=FF5700
[badge-forums]: https://img.shields.io/badge/plex%20forums-discussion-E5A00D?style=flat-square
[badge-issues]: https://img.shields.io/badge/github-issues-black?style=flat-square
If you think you've found a bug in Tautulli make sure you have read the [FAQ][]
first to make sure it hasn't been covered by one of the questions there. If your
problem isn't answered in the FAQ try the following first:
- Update to the latest version of Tautulli.
- Turning your device off and on again.
- Analyzing your logs, you just might find the solution yourself!
- Using the **search** function to see if this issue has already been reported/solved.
- Checking the [Wiki][] for [Installation][] instructions and reading the [FAQs][FAQ].
- For basic questions try asking on [Discord][], [Reddit][],
or the [Plex Forums][] first before opening an issue.
**If nothing has worked:**
1. Please check the [issues tracker][Issues] to see if someone else has already reported the bug.
2. If this is a new bug, open a [bug report][Issue New] on the issues tracker.
3. Provide a clear title to easily help identify your problem.
4. Use proper [Markdown syntax][] to structure your post (i.e. code/log in code blocks).
5. Make sure to fill out the required information on the issue template.
6. Close your issue when it's solved! If you found the solution yourself please
comment so that others benefit from it.
## Feature Requests
1. Pleases check the [issues tracker][Issues] to see if someone else has already requested the feature.
If a similar idea has already been requested, _give it a thumbs up_. **Do not comment
with `+1` or something similar as it creates unnecessary spam.**
2. If this is a new feature request, open a [feature request][Issue New] on the issues tracker.
## License
This is free software under the GPL v3 open source license. Feel free to do with it what you wish, but any modification must be open sourced. A copy of the license is included.
[![License][badge-license]][License]
This software includes Highsoft software libraries which you may freely distribute for non-commercial use. Commerical users must licence this software, for more information visit https://shop.highsoft.com/faq/non-commercial#non-commercial-redistribution.
[badge-license]: https://img.shields.io/github/license/Tautulli/Tautulli?style=flat-square
This is free software under the GPL v3 open source license. Feel free to do with it what you wish,
but any modification must be open sourced. A copy of the license is included.
This software includes Highsoft software libraries which you may freely distribute for
non-commercial use. Commercial users must licence this software, for more information visit
https://shop.highsoft.com/faq/non-commercial#non-commercial-redistribution.
[Python]: https://python.org/downloads
[DockerHub]: https://hub.docker.com/r/tautulli/tautulli
[Releases]: https://github.com/Tautulli/Tautulli/releases
[Releases Latest]: https://github.com/Tautulli/Tautulli/releases/latest
[License]: https://github.com/Tautulli/Tautulli/blob/master/LICENSE
[FAQ]: https://github.com/Tautulli/Tautulli/wiki/Frequently-Asked-Questions
[Installation]: https://github.com/Tautulli/Tautulli/wiki/Installation
[Issues]: https://github.com/Tautulli/Tautulli/issues
[Issue New]: https://github.com/Tautulli/Tautulli/issues/new/choose
[Markdown syntax]: https://help.github.com/articles/github-flavored-markdown
[Tautulli]: http://tautulli.com
[Wiki]: https://github.com/Tautulli/Tautulli/wiki
[Discord]: https://tautulli.com/discord
[Reddit]: https://reddit.com/r/Tautulli
[Plex Forums]: https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242
[Snapcraft]: https://snapcraft.io/tautulli
[Commits Beta]: https://github.com/Tautulli/Tautulli/commits/beta
[Commits Nightly]: https://github.com/Tautulli/Tautulli/commits/nightly
[Publish Docker Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Amaster
[Publish Docker Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Abeta
[Publish Docker Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Docker"+branch%3Anightly
[Publish Snap Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Amaster
[Publish Snap Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Abeta
[Publish Snap Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Snap"+branch%3Anightly
[Publish Installer Master]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Amaster
[Publish Installer Beta]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Abeta
[Publish Installer Nightly]: https://github.com/Tautulli/Tautulli/actions?query=workflow%3A"Publish+Installers"+branch%3Anightly

View file

@ -1,8 +1,4 @@
#!/bin/sh
''''which python >/dev/null 2>&1 && exec python "$0" "$@" # '''
''''which python2 >/dev/null 2>&1 && exec python2 "$0" "$@" # '''
''''which python2.7 >/dev/null 2>&1 && exec python2.7 "$0" "$@" # '''
''''exec echo "Error: Python not found!" # '''
#!/usr/bin/env python
# -*- coding: utf-8 -*-
@ -27,17 +23,25 @@ import sys
# Ensure lib added to path, before any other imports
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), 'lib'))
import argparse
import datetime
import locale
import platformdirs
import pytz
import signal
import shutil
import time
import threading
import tzlocal
import ctypes
import plexpy
from plexpy import config, database, logger, webstart
from plexpy import common, config, database, helpers, logger, webstart
if common.PLATFORM == 'Windows':
from plexpy import windows
elif common.PLATFORM == 'Darwin':
from plexpy import macos
# Register signals, such as CTRL + C
signal.signal(signal.SIGINT, plexpy.sig_handler)
@ -51,12 +55,14 @@ def main():
"""
# Fixed paths to Tautulli
if hasattr(sys, 'frozen'):
if hasattr(sys, 'frozen') and hasattr(sys, '_MEIPASS'):
plexpy.FROZEN = True
plexpy.FULL_PATH = os.path.abspath(sys.executable)
plexpy.PROG_DIR = sys._MEIPASS
else:
plexpy.FULL_PATH = os.path.abspath(__file__)
plexpy.PROG_DIR = os.path.dirname(plexpy.FULL_PATH)
plexpy.PROG_DIR = os.path.dirname(plexpy.FULL_PATH)
plexpy.ARGS = sys.argv[1:]
# From sickbeard
@ -64,8 +70,26 @@ def main():
plexpy.SYS_ENCODING = None
try:
locale.setlocale(locale.LC_ALL, "")
plexpy.SYS_LANGUAGE, plexpy.SYS_ENCODING = locale.getdefaultlocale()
# Attempt to get the system's locale settings
language_code, encoding = locale.getlocale()
# Special handling for Windows platform
if sys.platform == 'win32':
# Get the user's current language settings on Windows
windll = ctypes.windll.kernel32
lang_id = windll.GetUserDefaultLCID()
# Map Windows language ID to locale identifier
language_code = locale.windows_locale.get(lang_id, '')
# Get the preferred encoding
encoding = locale.getpreferredencoding()
# Assign values to application-specific variable
plexpy.SYS_LANGUAGE = language_code
plexpy.SYS_ENCODING = encoding
except (locale.Error, IOError):
pass
@ -105,9 +129,9 @@ def main():
if args.quiet:
plexpy.QUIET = True
# Do an intial setup of the logger.
logger.initLogger(console=not plexpy.QUIET, log_dir=False,
verbose=plexpy.VERBOSE)
# Do an initial setup of the logger.
# Require verbose for pre-initilization to see critical errors
logger.initLogger(console=not plexpy.QUIET, log_dir=False, verbose=True)
try:
plexpy.SYS_TIMEZONE = tzlocal.get_localzone()
@ -117,17 +141,19 @@ def main():
plexpy.SYS_UTC_OFFSET = datetime.datetime.now(plexpy.SYS_TIMEZONE).strftime('%z')
if os.getenv('TAUTULLI_DOCKER', False) == 'True':
if helpers.bool_true(os.getenv('TAUTULLI_DOCKER', False)):
plexpy.DOCKER = True
plexpy.DOCKER_MOUNT = not os.path.isfile('/config/DOCKER')
if helpers.bool_true(os.getenv('TAUTULLI_SNAP', False)):
plexpy.SNAP = True
if args.dev:
plexpy.DEV = True
logger.debug(u"Tautulli is running in the dev environment.")
logger.debug("Tautulli is running in the dev environment.")
if args.daemon:
if sys.platform == 'win32':
sys.stderr.write(
"Daemonizing not supported under Windows, starting normally\n")
logger.warn("Daemonizing not supported under Windows, starting normally")
else:
plexpy.DAEMON = True
plexpy.QUIET = True
@ -145,11 +171,13 @@ def main():
try:
with open(plexpy.PIDFILE, 'r') as fp:
pid = int(fp.read())
os.kill(pid, 0)
except IOError as e:
raise SystemExit("Unable to read PID file: %s", e)
try:
os.kill(pid, 0)
except OSError:
logger.warn("PID file '%s' already exists, but PID %d is " \
logger.warn("PID file '%s' already exists, but PID %d is "
"not running. Ignoring PID file." %
(plexpy.PIDFILE, pid))
else:
@ -175,9 +203,20 @@ def main():
# Determine which data directory and config file to use
if args.datadir:
plexpy.DATA_DIR = args.datadir
elif plexpy.FROZEN:
plexpy.DATA_DIR = platformdirs.user_data_dir("Tautulli", False)
else:
plexpy.DATA_DIR = plexpy.PROG_DIR
# Migrate Snap data dir
if plexpy.SNAP:
snap_common = os.environ['SNAP_COMMON']
old_data_dir = os.path.join(snap_common, 'Tautulli')
if os.path.exists(old_data_dir) and os.listdir(old_data_dir):
plexpy.SNAP_MIGRATE = True
logger.info("Migrating Snap user data.")
shutil.move(old_data_dir, plexpy.DATA_DIR)
if args.config:
config_file = args.config
else:
@ -192,9 +231,18 @@ def main():
'Could not create data directory: ' + plexpy.DATA_DIR + '. Exiting....')
# Make sure the DATA_DIR is writeable
if not os.access(plexpy.DATA_DIR, os.W_OK):
test_file = os.path.join(plexpy.DATA_DIR, '.TEST')
try:
with open(test_file, 'w'):
pass
except IOError:
raise SystemExit(
'Cannot write to the data directory: ' + plexpy.DATA_DIR + '. Exiting...')
finally:
try:
os.remove(test_file)
except OSError:
pass
# Put the database in the DATA_DIR
plexpy.DB_FILE = os.path.join(plexpy.DATA_DIR, database.FILENAME)
@ -216,50 +264,54 @@ def main():
# Start the background threads
plexpy.start()
# Force the http port if neccessary
# Force the http port if necessary
if args.port:
plexpy.HTTP_PORT = args.port
logger.info('Using forced web server port: %i', plexpy.HTTP_PORT)
else:
plexpy.HTTP_PORT = int(plexpy.CONFIG.HTTP_PORT)
# Check if pyOpenSSL is installed. It is required for certificate generation
# and for CherryPy.
if plexpy.CONFIG.ENABLE_HTTPS:
try:
import OpenSSL
except ImportError:
logger.warn("The pyOpenSSL module is missing. Install this " \
"module to enable HTTPS. HTTPS will be disabled.")
plexpy.CONFIG.ENABLE_HTTPS = False
# Try to start the server. Will exit here is address is already in use.
web_config = {
'http_port': plexpy.HTTP_PORT,
'http_host': plexpy.CONFIG.HTTP_HOST,
'http_root': plexpy.CONFIG.HTTP_ROOT,
'http_environment': plexpy.CONFIG.HTTP_ENVIRONMENT,
'http_proxy': plexpy.CONFIG.HTTP_PROXY,
'enable_https': plexpy.CONFIG.ENABLE_HTTPS,
'https_cert': plexpy.CONFIG.HTTPS_CERT,
'https_cert_chain': plexpy.CONFIG.HTTPS_CERT_CHAIN,
'https_key': plexpy.CONFIG.HTTPS_KEY,
'http_username': plexpy.CONFIG.HTTP_USERNAME,
'http_password': plexpy.CONFIG.HTTP_PASSWORD,
'http_basic_auth': plexpy.CONFIG.HTTP_BASIC_AUTH
}
webstart.initialize(web_config)
webstart.start()
if common.PLATFORM == 'Windows':
if plexpy.CONFIG.SYS_TRAY_ICON:
plexpy.WIN_SYS_TRAY_ICON = windows.WindowsSystemTray()
plexpy.WIN_SYS_TRAY_ICON.start()
windows.set_startup()
elif common.PLATFORM == 'Darwin':
macos.set_startup()
# Open webbrowser
if plexpy.CONFIG.LAUNCH_BROWSER and not args.nolaunch and not plexpy.DEV:
plexpy.launch_browser(plexpy.CONFIG.HTTP_HOST, plexpy.HTTP_PORT,
plexpy.HTTP_ROOT)
# Windows system tray icon
if os.name == 'nt' and plexpy.CONFIG.WIN_SYS_TRAY:
plexpy.win_system_tray()
if common.PLATFORM == 'Darwin' and plexpy.CONFIG.SYS_TRAY_ICON:
if not macos.HAS_PYOBJC:
logger.warn("The pyobjc module is missing. Install this "
"module to enable the MacOS menu bar icon.")
plexpy.CONFIG.SYS_TRAY_ICON = False
# Wait endlessy for a signal to happen
if plexpy.CONFIG.SYS_TRAY_ICON:
# MacOS menu bar icon must be run on the main thread and is blocking
# Start the rest of Tautulli on a new thread
thread = threading.Thread(target=wait)
thread.daemon = True
thread.start()
plexpy.MAC_SYS_TRAY_ICON = macos.MacOSSystemTray()
plexpy.MAC_SYS_TRAY_ICON.start()
else:
wait()
else:
wait()
def wait():
logger.info("Tautulli is ready!")
# Wait endlessly for a signal to happen
while True:
if not plexpy.SIGNAL:
try:
@ -275,11 +327,16 @@ def main():
plexpy.shutdown(restart=True)
elif plexpy.SIGNAL == 'checkout':
plexpy.shutdown(restart=True, checkout=True)
else:
elif plexpy.SIGNAL == 'reset':
plexpy.shutdown(restart=True, reset=True)
elif plexpy.SIGNAL == 'update':
plexpy.shutdown(restart=True, update=True)
else:
logger.error('Unknown signal. Shutting down...')
plexpy.shutdown()
plexpy.SIGNAL = None
# Call main()
if __name__ == "__main__":
main()

11
contrib/clean_pyc.bat Executable file
View file

@ -0,0 +1,11 @@
@echo off
:: Display information
echo This script will remove *.pyc files. These files are generated by Python, but they can cause conflicts after an upgrade. It's safe to remove them, because they will be regenerated.
echo Press enter to continue, or CTRL + C to quit.
pause
cd ..\
:: Remove *.pyc files
del /S *.pyc
:: Remove __pycache__ folders
for /d /r . %%d in (__pycache__) do @if exist "%%d" rd /s /q "%%d"

View file

@ -1,9 +1,11 @@
#!/bin/bash
#!/usr/bin/env bash
# Display information
echo "This script will remove *.pyc files. These files are generated by Python, but they can cause conflicts after an upgrade. It's safe to remove them, because they will be regenerated."
echo "Press enter to continue, or CTRL + C to quit."
read
# Remove the *.pyc
find "`dirname $0`/.." -type f -name "*.pyc" -exec rm -rf {} \;
# Remove *.pyc files
find "`dirname $0`/.." -type f -name "*.pyc" -exec rm -rf {} \;
# Remove __pycache__ folders
find "`dirname $0`/.." -type d -name "__pycache__" -exec rm -rf {} \;

View file

@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
# Parameter check
if [ -z "$1" ]; then

View file

@ -5,46 +5,105 @@
<h4 class="modal-title">Import ${app} Database</h4>
</div>
<div class="modal-body" id="modal-text">
<p class="help-block">
<%
v = ''
if app == 'PlexWatch':
v = '0.3.2'
elif app == 'Plexivity':
v = '0.9.8'
%>
<strong>Please ensure your ${app} database is at version ${v} or higher.</strong>
</p>
<div class="form-group">
<label for="db_location">Database Location</label>
<div class="row">
<div class="col-xs-8">
<input type="text" class="form-control" id="db_location" name="db_location" value="" required>
<form id="import_database_form" enctype="multipart/form-data" method="post" name="import_database_form">
<input type="hidden" id="import_app" name="import_app" value="${app.lower()}" />
% if app in ('PlexWatch', 'Plexivity'):
<p class="help-block">
<%
v = ''
if app == 'PlexWatch':
v = '0.3.2'
elif app == 'Plexivity':
v = '0.9.8'
%>
<strong>Please ensure your ${app} database is at version ${v} or higher.</strong>
</p>
% endif
<div class="form-group">
<label for="import_database_file">Option 1: Upload a Database File</label>
<div class="row">
<div class="col-xs-12">
<div class="input-group">
<label for="import_database_file" class="input-group-btn">
<span class="btn btn-form">Upload</span>
<input type="file" style="display: none;" id="import_database_file" name="import_database_file" required>
</label>
<input id="import_database_file_name" type="text" class="form-control" placeholder="tautulli.db" disabled>
</div>
</div>
</div>
<p class="help-block">Upload the ${app} database file you wish to import (max file size is 1GB).</p>
</div>
<p class="help-block">Enter the path and file name for the ${app} database you wish to import.</p>
</div>
<div class="form-group">
<label for="table_name">Table Name</label>
<div class="row">
<div class="col-xs-4">
<select id="table_name" class="form-control" name="table_name">
<option value="processed">processed</option>
<option value="grouped">grouped</option>
</select>
<div class="form-group">
<label for="import_database_path">Option 2: Browse for a Database File</label>
<div class="row">
<div class="col-xs-12">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-form" type="button" id="import_database_path_browse" data-toggle="browse" data-description="Database File" data-filter=".db" data-target="#import_database_path">Browse</button>
</span>
<input type="text" class="form-control" id="import_database_path" name="import_database_path" value="" placeholder="tautulli.db" required disabled>
</div>
</div>
</div>
<p class="help-block">Browse for the ${app} database file you wish to import.</p>
</div>
<p class="help-block">The table name from which you wish to import. Only import one of these, importing both will result in duplicated data.</p>
</div>
<div class="form-group">
<label for="import_ignore_interval">Ignore Interval</label>
<div class="row">
<div class="col-xs-2">
<input type="text" class="form-control" id="import_ignore_interval" name="import_ignore_interval" value="120" required>
% if app == 'Tautulli':
<div class="form-group">
<label for="table_name">Import Method</label>
<div class="row">
<div class="col-xs-4">
<select class="form-control" id="import_method" name="import_method">
<option value="merge">Merge</option>
<option value="overwrite">Overwrite</option>
</select>
</div>
</div>
<p class="help-block">Select how you would like to import the Tautulli history.</p>
<ul class="help-block" style="padding-inline-start: 15px;">
<li><strong>Merge</strong> will add all history and remove any duplicates from the imported database into the current database.</li>
<li><strong>Overwrite</strong> will replace all history in the current database with the imported database.</li>
</ul>
</div>
<p class="help-block">Enter the minimum duration (in seconds) an item must have been active for. Set to 0 to import all.</p>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="import_backup_db" id="import_backup_db" value="1" checked> Backup Current Database
</label>
<p class="help-block">Automatically create a backup of the current database before importing.</p>
</div>
<div class="form-group">
<label>Import Notes</label>
<p class="help-block">The following data will also be imported:</p>
<ul class="help-block" style="padding-inline-start: 15px;">
<li>Libraries and Users</li>
<li>Notification / Newsletter Agents</li>
<li>Registered Mobile Devices</li>
</ul>
</div>
% else:
<div class="form-group">
<label for="import_table_name">Table Name</label>
<div class="row">
<div class="col-xs-4">
<select class="form-control" id="import_table_name" name="import_table_name">
<option value="processed">Processed</option>
<option value="grouped">Grouped</option>
</select>
</div>
</div>
<p class="help-block">Select the table name from which you wish to import. Only import one of these, importing both will result in duplicated data.</p>
</div>
<div class="form-group">
<label for="import_ignore_interval">Ignore Interval</label>
<div class="row">
<div class="col-xs-2">
<input type="text" class="form-control" id="import_ignore_interval" name="import_ignore_interval" value="120" required>
</div>
</div>
<p class="help-block">Enter the minimum duration (in seconds) an item must have been active for. Set to 0 to import all.</p>
</div>
% endif
</form>
</div>
<div class="modal-footer">
<div>
@ -55,24 +114,87 @@
</div>
</div>
<script>
// Send database path to import script
$("#import_database_file").change(function() {
if ($(this)[0].files[0]) {
$("#import_database_file_name").val($(this)[0].files[0].name);
}
});
$("#import_db").click(function() {
var database_path = $("#db_location").val();
var table_name = $("#table_name").val();
var import_ignore_interval = $("#import_ignore_interval").val();
$(this).prop('disabled', true);
var app = $("#import_app").val();
var database_file = $("#import_database_file")[0].files[0];
var database_path = $("#import_database_path").val();
var method = $("#import_method").val();
var backup = $("#import_backup_db").is(':checked');
var table_name = $("#import_table_name").val();
var ignore_interval = $("#import_ignore_interval").val();
var content_type;
var process_data;
var data;
if (database_file) {
content_type = false;
process_data = false;
data = new FormData();
data.append('app', app);
data.append('database_file', database_file);
data.append('method', method);
data.append('backup', backup);
data.append('table_name', table_name);
data.append('ignore_interval', ignore_interval);
} else {
content_type = 'application/x-www-form-urlencoded; charset=UTF-8';
process_data = true;
data = {
app: app,
database_path: database_path,
method: method,
backup: backup,
table_name: table_name,
ignore_interval: ignore_interval
}
}
if (database_file) {
$("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>&nbsp; Uploading database file...');
} else {
$("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>');
}
$.ajax({
url: 'import_database',
data: {
app: "${app}",
database_path: database_path,
table_name: table_name,
import_ignore_interval: import_ignore_interval
},
type: 'POST',
data: data,
cache: false,
async: true,
contentType: content_type,
processData: process_data,
success: function(data) {
$("#status-message").html(data);
$("#db_location").val('')
var msg;
if (data.result === 'success') {
msg = "<i class='fa fa-check'></i>&nbsp; " + data.message;
} else {
msg = "<i class='fa fa-exclamation-triangle'></i>&nbsp; " + data.message;
}
$("#status-message").html(msg);
$("#import_database_file").val(null);
$("#import_database_file_name").val('');
$("#import_database_path").val('');
},
error: function (xhr) {
var msg = "<i class='fa fa-exclamation-triangle'></i>&nbsp; Error (" + xhr.status + "): ";
if (xhr.status === 413) {
msg += "file is too large to upload"
} else {
msg += 'try again'
}
$("#status-message").html(msg);
},
complete: function(xhr) {
$("#import_db").prop('disabled', false);
}
});
});

View file

@ -13,8 +13,11 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link href="${http_root}css/bootstrap3/bootstrap.css" rel="stylesheet">
<meta name="referrer" content="no-referrer">
<link href="${http_root}css/bootstrap3/bootstrap.min.css" rel="stylesheet">
<link href="${http_root}css/pnotify.custom.min.css" rel="stylesheet" />
<link href="${http_root}css/selectize.bootstrap3.css" rel="stylesheet" />
<link href="${http_root}css/selectize.min.css" rel="stylesheet" />
<link href="${http_root}css/tautulli.css${cache_param}" rel="stylesheet">
<link href="${http_root}css/opensans.min.css" rel="stylesheet">
<link href="${http_root}css/font-awesome.all.min.css" rel="stylesheet">
@ -22,44 +25,48 @@
${next.headIncludes()}
<!-- Favicons -->
<link rel="icon" type="image/png" sizes="32x32" href="${http_root}images/favicon/favicon-32x32.png?v=2.0.5">
<link rel="icon" type="image/png" sizes="16x16" href="${http_root}images/favicon/favicon-16x16.png?v=2.0.5">
<link rel="shortcut icon" href="${http_root}images/favicon/favicon.ico?v=2.0.5">
<link rel="icon" type="image/png" sizes="32x32" href="${http_root}images/favicon/favicon-32x32.png?v=2.6.0">
<link rel="icon" type="image/png" sizes="16x16" href="${http_root}images/favicon/favicon-16x16.png?v=2.6.0">
<link rel="shortcut icon" href="${http_root}images/favicon/favicon.ico?v=2.6.0">
<!-- ICONS -->
<!-- Android -->
<link rel="manifest" href="${http_root}images/favicon/manifest.json?v=2.0.5">
<link rel="manifest" href="${http_root}images/favicon/manifest.json?v=2.9.0" crossorigin="use-credentials">
<meta name="theme-color" content="#282a2d">
<!-- Apple -->
<link rel="apple-touch-icon" sizes="180x180" href="${http_root}images/favicon/apple-touch-icon.png?v=2.0.5">
<link rel="mask-icon" href="${http_root}images/favicon/safari-pinned-tab.svg?v=2.0.5" color="#282a2d">
<link rel="apple-touch-icon" sizes="180x180" href="${http_root}images/favicon/apple-touch-icon.png?v=2.6.0">
<link rel="mask-icon" href="${http_root}images/favicon/safari-pinned-tab.svg?v=2.6.0" color="#282a2d">
<meta name="apple-mobile-web-app-title" content="Tautulli">
<!-- Microsoft -->
<meta name="application-name" content="Tautulli">
<meta name="msapplication-config" content="${http_root}images/favicon/browserconfig.xml?v=2.0.5">
<meta name="msapplication-config" content="${http_root}images/favicon/browserconfig.xml?v=2.6.0">
</head>
<body class="content">
<div class="container">
<div id="ajaxMsg" class="ajaxMsg"></div>
% if _session['user_group'] == 'admin':
% if plexpy.CONFIG.CHECK_GITHUB and plexpy.UPDATE_AVAILABLE is None:
% if plexpy.CONFIG.CHECK_GITHUB and plexpy.UPDATE_AVAILABLE is not False:
<div id="updatebar" style="display: none;">
% if plexpy.UPDATE_AVAILABLE is None:
You are running an unknown version of Tautulli.<br />
<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>
</div>
% elif plexpy.CONFIG.CHECK_GITHUB and plexpy.UPDATE_AVAILABLE == 'release':
<div id="updatebar" style="display: none;">
A <a href="${anon_url('https://github.com/%s/%s/releases/tag/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.LATEST_RELEASE))}" target="_blank">
% elif plexpy.UPDATE_AVAILABLE == 'release':
A <a href="${anon_url('https://github.com/%s/%s/releases/tag/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.LATEST_RELEASE))}" target="_blank" rel="noreferrer">
new release (${plexpy.LATEST_RELEASE})</a> of Tautulli is available!<br />
<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>
</div>
% elif plexpy.CONFIG.CHECK_GITHUB and plexpy.UPDATE_AVAILABLE == 'commit':
<div id="updatebar" style="display: none;">
A <a href="${anon_url('https://github.com/%s/%s/compare/%s...%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CURRENT_VERSION, plexpy.LATEST_VERSION))}" target="_blank">
% elif plexpy.UPDATE_AVAILABLE == 'commit':
A <a href="${anon_url('https://github.com/%s/%s/compare/%s...%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CURRENT_VERSION, plexpy.LATEST_VERSION))}" target="_blank" rel="noreferrer">
newer version</a> of Tautulli is available!<br />
You are ${plexpy.COMMITS_BEHIND} commit${'s' if plexpy.COMMITS_BEHIND > 1 else ''} behind.<br />
% endif
% if plexpy.INSTALL_TYPE == 'docker':
Update your Docker container or <a href="#" id="updateDismiss">Dismiss</a>
% elif plexpy.INSTALL_TYPE == 'snap':
Update your Snap package or <a href="#" id="updateDismiss">Dismiss</a>
% elif plexpy.INSTALL_TYPE in ('windows', 'macos'):
<a href="${anon_url('https://github.com/%s/%s/releases/tag/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.LATEST_RELEASE))}" target="_blank" rel="noreferrer">Download</a> and install the latest version or <a href="#" id="updateDismiss">Dismiss</a>
% else:
<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>
% endif
</div>
% else:
<div id="updatebar" style="display: none;"></div>
@ -80,7 +87,7 @@
</div>
<div class="collapse navbar-collapse navbar-right" id="navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="hidden-sm hidden-xs">
<li>
<form action="search" method="post" class="form" id="search_form">
<div class="input-group">
<span class="input-textbox">
@ -117,11 +124,6 @@
% else:
<li><a href="graphs">Graphs</a></li>
% endif
% if title == "Synced Items":
<li class="active"><a href="sync">Synced Items</a></li>
% else:
<li><a href="sync">Synced Items</a></li>
% endif
% if title == "Settings":
<li class="dropdown active">
% else:
@ -134,7 +136,7 @@
<li><a href="settings"><i class="fa fa-fw fa-cogs"></i> Settings</a></li>
<li role="separator" class="divider"></li>
<li><a href="logs"><i class="fa fa-fw fa-list-alt"></i> View Logs</a></li>
<li><a href="${anon_url('https://github.com/%s/%s-Wiki/wiki/Frequently-Asked-Questions' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank"><i class="fa fa-fw fa-question-circle"></i> FAQ</a></li>
<li><a href="${anon_url('https://github.com/%s/%s/wiki/Frequently-Asked-Questions' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank" rel="noreferrer"><i class="fa fa-fw fa-question-circle"></i> FAQ</a></li>
<li><a href="support"><i class="fa fa-fw fa-comment"></i> Support</a></li>
<li role="separator" class="divider"></li>
<li><a href="#" data-target="#donate-modal" data-toggle="modal"><i class="fa fa-fw fa-heart"></i> Donate</a></li>
@ -200,7 +202,7 @@ ${next.modalIncludes()}
</div>
</div>
<div class="modal-footer">
<span id="incorrect-login" style="padding-right: 25px; display: none;">Incorrect username or password.</span>
<span id="sign-in-alert" style="padding-right: 25px; display: none;"></span>
<button id="sign-in" type="submit" class="btn btn-bright login-button"><i class="fa fa-sign-in"></i>&nbsp; Sign In</button>
</div>
<input type="hidden" id="admin_login" name="admin_login" value="1" />
@ -228,24 +230,72 @@ ${next.modalIncludes()}
</div>
</div>
<ul id="donation_type" class="nav nav-pills" role="tablist" style="display: flex; justify-content: center; margin: 10px 0;">
<li class="active"><a href="#patreon-donation" role="tab" data-toggle="tab">Patreon</a></li>
<li class="active"><a href="#github-donation" role="tab" data-toggle="tab">GitHub</a></li>
<li><a href="#patreon-donation" role="tab" data-toggle="tab">Patreon</a></li>
<li><a href="#stripe-donation" role="tab" data-toggle="tab">Stripe</a></li>
<li><a href="#paypal-donation" role="tab" data-toggle="tab">PayPal</a></li>
<li><a href="#crypto-donation" role="tab" data-toggle="tab" id="crypto-donation-tab">Crypto</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="patreon-donation" style="text-align: center">
<div role="tabpanel" class="tab-pane active" id="github-donation" style="text-align: center">
<p>
Click the button below to continue to GitHub.
</p>
<p>
<a href="${anon_url('https://github.com/sponsors/JonnyWong16')}" target="_blank" rel="noreferrer" class="btn btn-sm btn-default" style="font-weight: 600;">
<i class="fa fa-heart fa-sm" style="color: #ea4aaa;"></i>&nbsp; Sponsor
</a>
</p>
<p class="small-muted">(GitHub does not have a fee)</p>
</div>
<div role="tabpanel" class="tab-pane" id="patreon-donation" style="text-align: center">
<p>
Click the button below to continue to Patreon.
</p>
<a href="${anon_url('https://www.patreon.com/join/tautulli')}" target="_blank">
<img src="images/become_a_patron_button.png" alt="Become a Patron" height="40">
</a>
<p>
<a href="${anon_url('https://www.patreon.com/join/tautulli')}" target="_blank" rel="noreferrer">
<img src="images/become_a_patron_button.png" alt="Become a Patron" width="170" height="40">
</a>
</p>
<p class="small-muted">(Patreon has a fee)</p>
</div>
<div role="tabpanel" class="tab-pane" id="stripe-donation" style="text-align: center">
<p>
Click the button below to continue to Stripe.
</p>
<p>
<a href="${anon_url('https://donate.stripe.com/5kA7vnb7dczVbxC9AA')}" target="_blank" rel="noreferrer">
<img src="images/Stripe_wordmark_-_white_small_28px.png" alt="Stripe" style="background-color: #7068fe; border-radius: 3px; padding: 3px;">
</a>
</p>
<p class="small-muted">(Stripe has a fee)</p>
</div>
<div role="tabpanel" class="tab-pane" id="paypal-donation" style="text-align: center">
<p>
Click the button below to continue to PayPal.
</p>
<a href="${anon_url('https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=6XPPKTDSX9QFL&lc=US&item_name=Tautulli&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted')}" target="_blank">
<img src="images/gold-rect-paypal-34px.png" alt="PayPal">
<p>
<a href="${anon_url('https://www.paypal.com/donate/?hosted_button_id=CUHSQ99KAKC5Q')}" target="_blank" rel="noreferrer">
<img src="images/gold-rect-paypal-34px.png" alt="PayPal">
</a>
</p>
<p class="small-muted">(PayPal has a fee)</p>
</div>
<div role="tabpanel" class="tab-pane" id="crypto-donation" style="text-align: center">
<p>
Select a cryptocurrency.
</p>
<select class="form-control" id="crypto-select"></select>
<div id="crypto-qrcode"></div>
<div id="crypto-address" class="form-group">
<label>Address:</label>
<span class="inline-pre" id="crypto-address-value"></span>
</div>
<p>
Or click the button below to continue to Coinbase.
</p>
<a href="${anon_url('https://commerce.coinbase.com/checkout/8a9fa08c-8a38-409e-9220-868124c4ba0c')}" target="_blank" rel="noreferrer" class="donate-with-crypto">
<span>Donate with Crypto</span>
</a>
</div>
</div>
@ -277,16 +327,20 @@ ${next.modalIncludes()}
</div>
</div>
<script src="${http_root}js/jquery-2.1.4.min.js"></script>
<script src="${http_root}js/jquery-3.6.0.min.js"></script>
<script src="${http_root}js/bootstrap.min.js"></script>
<script src="${http_root}js/bootstrap-hover-dropdown.min.js"></script>
<script src="${http_root}js/moment-with-locales.min.js"></script>
<script src="${http_root}js/moment-duration-format.min.js"></script>
<script src="${http_root}js/pnotify.custom.min.js"></script>
<script src="${http_root}js/platform.min.js"></script>
<script src="${http_root}js/script.js${cache_param}"></script>
<script src="${http_root}js/ipaddr.min.js"></script>
<script src="${http_root}js/selectize.min.js"></script>
<script src="${http_root}js/jquery.tripleclick.min.js"></script>
% if _session['user_group'] == 'admin' and BROWSER_NOTIFIERS:
<script src="${http_root}js/blurhash_pure_js_port.min.js"></script>
<script src="${http_root}js/script.js${cache_param}"></script>
<script src="${http_root}js/ajaxNotifications.js"></script>
% endif
<script src="${http_root}js/kjua.min.js"></script>
<script>
% if _session['user_group'] == 'admin':
$('body').on('click', '#updateDismiss', function() {
@ -309,21 +363,27 @@ ${next.modalIncludes()}
complete: function (xhr, status) {
var result = $.parseJSON(xhr.responseText);
var msg = '';
if (result.update === null) {
msg = 'You are running an unknown version of Tautulli.<br />' +
'<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>';
$('#updatebar').html(msg).fadeIn();
} else if (result.update === true && result.release === true) {
msg = 'A <a href="' + result.release_url + '" target="_blank">new release (' + result.latest_release + ')</a> of Tautulli is available!<br />' +
'<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>';
$('#updatebar').html(msg).fadeIn();
} else if (result.update === true && result.release === false) {
msg = 'A <a href="' + result.compare_url + '" target="_blank">newer version</a> of Tautulli is available!<br />' +
'You are '+ result.commits_behind + ' commit' + (result.commits_behind > 1 ? 's' : '') + ' behind.<br />' +
'<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>';
$('#updatebar').html(msg).fadeIn();
} else if (result.update === false) {
if (result.update === false) {
showMsg('<i class="fa fa-check"></i> ' + result.message, false, true, 2000);
} else {
if (result.update === null) {
msg = 'You are running an unknown version of Tautulli.<br />';
} else if (result.update === true && result.release === true) {
msg = 'A <a href="' + result.release_url + '" target="_blank" rel="noreferrer">new release (' + result.latest_release + ')</a> of Tautulli is available!<br />';
} else if (result.update === true && result.release === false) {
msg = 'A <a href="' + result.compare_url + '" target="_blank" rel="noreferrer">newer version</a> of Tautulli is available!<br />' +
'You are '+ result.commits_behind + ' commit' + (result.commits_behind > 1 ? 's' : '') + ' behind.<br />';
}
if (result.install_type === 'docker') {
msg += 'Update your Docker container or <a href="#" id="updateDismiss">Dismiss</a>';
} else if (result.install_type === 'snap') {
msg += 'Update your Snap package or <a href="#" id="updateDismiss">Dismiss</a>';
} else if (result.install_type === 'windows' || result.install_type === 'macos') {
msg += '<a href="' + result.release_url + '" target="_blank" rel="noreferrer">Download</a> and install the latest version or <a href="#" id="updateDismiss">Dismiss</a>'
} else {
msg += '<a href="update">Update</a> or <a href="#" id="updateDismiss">Dismiss</a>';
}
$('#updatebar').html(msg).fadeIn();
}
if (_callback) {
@ -354,6 +414,42 @@ ${next.modalIncludes()}
checkUpdate(function () { $('#nav-update').html('<i class="fa fa-fw fa-arrow-alt-circle-up"></i> Check for Updates'); });
});
$('#crypto-donation-tab').one('shown.bs.tab', function (e) {
$.ajax({
url: 'https://tautulli.com/donate/crypto-addresses.json',
type: 'GET',
dataType: 'json',
cache: false,
async: true,
success: function (data) {
$('#crypto-select').empty().append('<option selected disabled>Select Cryptocurrency</option>');
$.each(data, function (index, crypto) {
$('<option/>', {
text: crypto.name + ' (' + crypto.symbol + ')',
value: crypto.address
}).appendTo('#crypto-select');
});
},
error: function () {
$('#crypto-select').empty().append('<option selected disabled>Error: Unable to load addresses</option>');
}
});
});
$('#crypto-select').change(function() {
var address = $(this).val();
$('#crypto-qrcode').empty().kjua({
text: address,
render: 'canvas',
ecLevel: 'H',
size: 256,
fill: '#000',
back: '#eee'
}).show();
$('#crypto-address-value').text(address);
$('#crypto-address').show();
})
% endif
$('.dropdown-toggle').click(function (e) {
@ -362,8 +458,22 @@ ${next.modalIncludes()}
}
});
function displaySearch() {
if ($(this).width() < 768) {
$('#search_button').removeClass('btn-inactive');
$('#query').css({ right: 0, width: '100%' })
} else if ($('#query').val().trim() == '') {
$('#search_button').addClass('btn-inactive');
$('#query').css({ right: '-200px', width: '0' })
}
}
displaySearch();
$(window).resize(function() {
displaySearch();
});
$('#search_form').submit(function (e) {
if ($('#query').hasClass('active') && $('#query').val().trim() != '') {
if ($('#query').val().trim() != '') {
$.ajax({
type: 'post',
url: 'search',
@ -371,14 +481,16 @@ ${next.modalIncludes()}
})
} else {
e.preventDefault();
$('#search_button').removeClass('btn-inactive');
$('#query').clearQueue().val('').animate({ right: '0', width: '200px' }).addClass('active').focus();
if ($(window).width() >= 768) {
$('#search_button').removeClass('btn-inactive');
$('#query').clearQueue().val('').animate({ right: '0', width: '200px' }).addClass('active').focus();
}
}
})
$('#query').on('blur', function (e) {
if ($(this).val().trim() == '') {
if ($(this).val().trim() == '' && $(window).width() >= 768) {
$(this).delay(200).animate({ right: '-200px', width: '0' }, function () {
$('#search_button').addClass('btn-inactive');
displaySearch();
}).removeClass('active');
}
});
@ -407,6 +519,10 @@ ${next.modalIncludes()}
$(document).on('hidden.bs.modal', '.modal', function () {
$('.modal:visible').length && $(document.body).addClass('modal-open');
});
% if _session['user_group'] == 'admin' and BROWSER_NOTIFIERS:
check_notifications();
% endif
});
% if _session['user_group'] != 'admin':
@ -423,12 +539,16 @@ ${next.modalIncludes()}
data: $(this).serialize(),
dataType: 'json',
statusCode: {
200: function() {
200: function(xhr, status) {
window.location = "${http_root}";
},
401: function() {
$('#incorrect-login').show();
$('#username').focus();
401: function(xhr, status) {
$('#sign-in-alert').text('Incorrect username or password.').show();
$('#username').focus();
},
429: function(xhr, status) {
var retry = Math.ceil(xhr.getResponseHeader('Retry-After') / 60)
$('#sign-in-alert').text('Too many login attempts. Try again in ' + retry + ' minute(s).').show();
}
},
complete: function() {

View file

@ -0,0 +1,138 @@
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-remove"></i></button>
<h4 class="modal-title">${title}</h4>
</div>
<div class="modal-body" id="modal-text">
<form id="import_config_form" enctype="multipart/form-data" method="post" name="import_config_form">
<div class="form-group">
<label for="import_config_file">Option 1: Upload a Configuration File</label>
<div class="row">
<div class="col-xs-12">
<div class="input-group">
<label for="import_config_file" class="input-group-btn">
<span class="btn btn-form">Upload</span>
<input type="file" style="display: none;" id="import_config_file" name="import_config_file" required>
</label>
<input id="import_config_file_name" type="text" class="form-control" placeholder="config.ini" disabled>
</div>
</div>
</div>
<p class="help-block">Upload the Tautulli configuration file you wish to import.</p>
</div>
<div class="form-group">
<label for="import_config_path">Option 2: Browse for a Configuration File</label>
<div class="row">
<div class="col-xs-12">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-form" type="button" id="import_config_path_browse" data-toggle="browse" data-description="Configuration File" data-filter=".ini" data-target="#import_config_path">Browse</button>
</span>
<input type="text" class="form-control" id="import_config_path" name="import_config_path" value="" placeholder="config.ini" required disabled>
</div>
</div>
</div>
<p class="help-block">Browse for the Tautulli configuration file you wish to import.</p>
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="import_backup_config" id="import_backup_config" value="1" checked> Backup Current Configuration
</label>
<p class="help-block">Automatically create a backup of the current configuration before importing.</p>
</div>
<div class="form-group">
<label>Import Notes</label>
<p class="help-block">The following settings will <em>not</em> be imported:</p>
<ul class="help-block" style="padding-inline-start: 15px;">
<li>Git Path, Log / Backup / Cache Directory, Plex Logs Folder</li>
<li>Custom Newsletter Templates Folder, Newsletter Output Directory</li>
<li>HTTP Host / Port / Root / Username / Password</li>
<li>Enable HTTPS, HTTPS Certificate / Certificate Chain / Key</li>
</ul>
</div>
</form>
</div>
<div class="modal-footer">
<div>
<span id="status-message" style="padding-right: 25px;"></span>
<input type="button" id="import_config" class="btn btn-bright" value="Import">
</div>
</div>
</div>
</div>
<script>
$("#import_config_file").change(function() {
if ($(this)[0].files[0]) {
$("#import_config_file_name").val($(this)[0].files[0].name);
}
});
$("#import_config").click(function() {
$(this).prop('disabled', true);
var config_file = $("#import_config_file")[0].files[0];
var config_path = $("#import_config_path").val();
var backup = $("#import_backup_config").is(':checked');
var content_type;
var process_data;
var data;
if (config_file) {
content_type = false;
process_data = false;
data = new FormData();
data.append('config_file', config_file);
data.append('backup', backup);
} else {
content_type = 'application/x-www-form-urlencoded; charset=UTF-8';
process_data = true;
data = {
config_path: config_path,
backup: backup
}
}
if (config_file) {
$("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>&nbsp; Uploading config file...');
} else {
$("#status-message").html('<i class="fa fa-fw fa-spin fa-refresh"></i>');
}
$.ajax({
url: 'import_config',
type: 'POST',
data: data,
cache: false,
async: true,
contentType: content_type,
processData: process_data,
success: function(data) {
var msg;
if (data.result === 'success') {
msg = "<i class='fa fa-check'></i>&nbsp; " + data.message;
window.location.href = 'restart_import_config';
} else {
msg = "<i class='fa fa-exclamation-triangle'></i>&nbsp; " + data.message;
}
$("#status-message").html(msg);
$("#import_config_file").val(null);
$("#import_config_file_name").val('');
$("#import_config_path").val('');
},
error: function (xhr) {
var msg = "<i class='fa fa-exclamation-triangle'></i>&nbsp; Error (" + xhr.status + "): ";
if (xhr.status === 413) {
msg += "file is too large to upload"
} else {
msg += 'try again'
}
$("#status-message").html(msg);
},
complete: function(xhr) {
$("#import_config").prop('disabled', false);
}
});
});
</script>

View file

@ -11,6 +11,7 @@ DOCUMENTATION :: END
<%!
import os
import sqlite3
import sys
import plexpy
from plexpy import common, logger
@ -22,11 +23,11 @@ DOCUMENTATION :: END
% if plexpy.CURRENT_VERSION:
<tr>
<td>Git Branch:</td>
<td><a class="no-highlight" href="${anon_url('https://github.com/%s/%s/tree/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CONFIG.GIT_BRANCH))}" target="_blank">${plexpy.CONFIG.GIT_BRANCH}</a></td>
<td><a class="no-highlight" href="${anon_url('https://github.com/%s/%s/tree/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CONFIG.GIT_BRANCH))}" target="_blank" rel="noreferrer">${plexpy.CONFIG.GIT_BRANCH}</a></td>
</tr>
<tr>
<td>Git Commit Hash:</td>
<td><a class="no-highlight" href="${anon_url('https://github.com/%s/%s/commit/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CURRENT_VERSION))}" target="_blank">${plexpy.CURRENT_VERSION}</a></td>
<td><a class="no-highlight" href="${anon_url('https://github.com/%s/%s/commit/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO, plexpy.CURRENT_VERSION))}" target="_blank" rel="noreferrer">${plexpy.CURRENT_VERSION}</a></td>
</tr>
% endif
<tr>
@ -50,16 +51,12 @@ DOCUMENTATION :: END
<td>${plexpy.CONFIG.CACHE_DIR}</td>
</tr>
<tr>
<td>Newsletter Directory:</td>
<td>${plexpy.CONFIG.NEWSLETTER_DIR}</td>
<td>Export Directory:</td>
<td>${plexpy.CONFIG.EXPORT_DIR}</td>
</tr>
<tr>
<td>GeoLite2 Database:</td>
% if plexpy.CONFIG.GEOIP_DB:
<td>${plexpy.CONFIG.GEOIP_DB} | <a class="no-highlight" href="#" id="reinstall_geoip_db">Reinstall / Update</a> | <a class="no-highlight" href="#" id="uninstall_geoip_db">Uninstall</a></td>
% else:
<td><a class="no-highlight" href="#" id="install_geoip_db">Click here to install the GeoLite2 database.</a></td>
% endif
<td>Newsletter Directory:</td>
<td>${plexpy.CONFIG.NEWSLETTER_DIR}</td>
</tr>
% if plexpy.ARGS:
<tr>
@ -73,28 +70,36 @@ DOCUMENTATION :: END
</tr>
<tr>
<td>System Timezone:</td>
<td>${plexpy.SYS_TIMEZONE.zone} (${'UTC{}'.format(plexpy.SYS_UTC_OFFSET)})
<td>${str(plexpy.SYS_TIMEZONE)} (${'UTC{}'.format(plexpy.SYS_UTC_OFFSET)})
</tr>
<tr>
<td>System Language:</td>
<td>${plexpy.SYS_LANGUAGE}${' (override {})'.format(plexpy.CONFIG.PMS_LANGUAGE) if plexpy.CONFIG.PMS_LANGUAGE else ''}</td>
</tr>
<tr>
<td>Python Version:</td>
<td>${sys.version}</td>
</tr>
<tr>
<td>SQLite Version:</td>
<td>${sqlite3.sqlite_version}</td>
</tr>
<tr>
<td class="top-line">Resources:</td>
<td class="top-line">
<a class="no-highlight" href="${anon_url('https://tautulli.com')}" target="_blank">Tautulli Website</a> |
<a class="no-highlight" href="${anon_url('https://github.com/%s/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank">GitHub Source</a> |
<a class="no-highlight guidelines-modal-link" href="${anon_url('https://github.com/%s/%s-Issues' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" data-id="issue">GitHub Issues</a> |
<a class="no-highlight" href="${anon_url('https://github.com/%s/%s-Wiki' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank">GitHub Wiki</a> |
<a class="no-highlight guidelines-modal-link" href="${anon_url('http://feathub.com/%s/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" data-id="feature request">FeatHub Feature Requests</a>
<a class="no-highlight" href="${anon_url('https://tautulli.com')}" target="_blank" rel="noreferrer">Tautulli Website</a> |
<a class="no-highlight" href="${anon_url('https://github.com/%s/%s' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank" rel="noreferrer">Source</a> |
<a class="no-highlight" href="${anon_url('https://github.com/%s/%s/wiki' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank" rel="noreferrer">Wiki</a> |
<a class="no-highlight guidelines-modal-link" href="${anon_url('https://github.com/%s/%s/issues' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" rel="noreferrer" data-id="issue">Bug Reports</a> |
<a class="no-highlight guidelines-modal-link" href="${anon_url('https://github.com/%s/%s/issues' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" rel="noreferrer" data-id="feature request">Feature Requests</a>
</td>
</tr>
<tr>
<td>Support:</td>
<td>
<a class="no-highlight support-modal-link" href="${anon_url('https://tautulli.com/discord')}" target="_blank">Tautulli Discord Server</a> |
<a class="no-highlight support-modal-link" href="${anon_url('https://www.reddit.com/r/Tautulli')}" target="_blank">Tautulli Subreddit</a> |
<a class="no-highlight support-modal-link" href="${anon_url('https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242')}" target="_blank">Plex Forums</a>
<a class="no-highlight support-modal-link" href="${anon_url('https://tautulli.com/discord')}" target="_blank" rel="noreferrer">Tautulli Discord Server</a> |
<a class="no-highlight support-modal-link" href="${anon_url('https://www.reddit.com/r/Tautulli')}" target="_blank" rel="noreferrer">Tautulli Subreddit</a> |
<a class="no-highlight support-modal-link" href="${anon_url('https://forums.plex.tv/t/tautulli-monitor-your-plex-media-server/225242')}" target="_blank" rel="noreferrer">Plex Forums</a>
</td>
</tr>
</tbody>
@ -102,22 +107,6 @@ DOCUMENTATION :: END
<script>
$(document).ready(function () {
$("#install_geoip_db, #reinstall_geoip_db").click(function () {
var msg = 'Are you sure you want to install the GeoLite2 database?<br /><br />' +
'The database is used to lookup IP address geolocation info.<br />' +
'The database will be downloaded from <a href="${anon_url("https://dev.maxmind.com/geoip/geoip2/geolite2/")}" target="_blank">MaxMind</a>, <br />' +
'and requires <strong>100MB</strong> of free space to install in your Tautulli directory.<br />'
var url = 'install_geoip_db';
confirmAjaxCall(url, msg, null, 'Installing GeoLite2 database.', getConfigurationTable);
});
$("#uninstall_geoip_db").click(function () {
var msg = 'Are you sure you want to uninstall the GeoLite2 database?<br /><br />' +
'You will not be able to lookup IP address geolocation info.';
var url = 'uninstall_geoip_db';
confirmAjaxCall(url, msg, null, 'Uninstalling GeoLite2 database.', getConfigurationTable);
});
$('.guidelines-modal-link').on('click', function (e) {
e.preventDefault();
$('#guidelines-type').text($(this).data('id'))

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,371 +0,0 @@
div.dataTables_length label {
font-weight: normal;
text-align: left;
white-space: nowrap;
}
div.dataTables_length select {
width: 75px;
display: inline-block;
}
div.dataTables_filter {
text-align: right;
}
div.dataTables_filter label {
font-weight: normal;
white-space: nowrap;
text-align: left;
}
div.dataTables_filter input {
margin-left: 0.5em;
display: inline-block;
width: auto;
}
div.dataTables_info {
padding-top: 8px;
white-space: nowrap;
}
div.dataTables_paginate {
margin: 0;
white-space: nowrap;
text-align: right;
}
div.dataTables_paginate ul.pagination {
margin: 2px 0;
white-space: nowrap;
}
@media screen and (max-width: 767px) {
div.dataTables_wrapper > div.row > div,
div.dataTables_length,
div.dataTables_filter,
div.dataTables_info,
div.dataTables_paginate {
text-align: center;
}
div.DTTT {
margin-bottom: 0.5em;
}
}
table.dataTable td,
table.dataTable th {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
table.dataTable {
clear: both;
margin-top: 6px !important;
margin-bottom: 6px !important;
max-width: none !important;
}
table.dataTable thead .sorting,
table.dataTable thead .sorting_asc,
table.dataTable thead .sorting_desc,
table.dataTable thead .sorting_asc_disabled,
table.dataTable thead .sorting_desc_disabled {
cursor: pointer;
position: relative;
}
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after {
position: absolute;
top: 8px;
right: 8px;
display: block;
font-family: 'Glyphicons Halflings';
opacity: 0.5;
}
table.dataTable thead .sorting:after {
opacity: 0.2;
content: "\e150"; /* sort */
}
table.dataTable thead .sorting_asc:after {
content: "\e155"; /* sort-by-attributes */
}
table.dataTable thead .sorting_desc:after {
content: "\e156"; /* sort-by-attributes-alt */
}
div.dataTables_scrollBody table.dataTable thead .sorting:after,
div.dataTables_scrollBody table.dataTable thead .sorting_asc:after,
div.dataTables_scrollBody table.dataTable thead .sorting_desc:after {
display: none;
}
table.dataTable thead .sorting_asc_disabled:after,
table.dataTable thead .sorting_desc_disabled:after {
color: #eee;
}
table.dataTable thead > tr > th {
padding-right: 30px;
}
table.dataTable th:active {
outline: none;
}
/* Condensed */
table.dataTable.table-condensed thead > tr > th {
padding-right: 20px;
}
table.dataTable.table-condensed thead .sorting:after,
table.dataTable.table-condensed thead .sorting_asc:after,
table.dataTable.table-condensed thead .sorting_desc:after {
top: 6px;
right: 6px;
}
/* Scrolling */
div.dataTables_scrollHead table {
margin-bottom: 0 !important;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
div.dataTables_scrollHead table thead tr:last-child th:first-child,
div.dataTables_scrollHead table thead tr:last-child td:first-child {
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
div.dataTables_scrollBody table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
div.dataTables_scrollBody tbody tr:first-child th,
div.dataTables_scrollBody tbody tr:first-child td {
border-top: none;
}
div.dataTables_scrollFoot table {
margin-top: 0 !important;
border-top: none;
}
/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column
width calculations when using scrolling impossible to align columns. We have
to use separate
*/
table.table-bordered.dataTable {
border-collapse: separate !important;
}
table.table-bordered thead th,
table.table-bordered thead td {
border-left-width: 0;
border-top-width: 0;
}
table.table-bordered tbody th,
table.table-bordered tbody td {
border-left-width: 0;
border-bottom-width: 0;
}
table.table-bordered tfoot th,
table.table-bordered tfoot td {
border-left-width: 0;
border-bottom-width: 0;
}
table.table-bordered th:last-child,
table.table-bordered td:last-child {
border-right-width: 0;
}
div.dataTables_scrollHead table.table-bordered {
border-bottom-width: 0;
}
/*
* TableTools styles
*/
.table.dataTable tbody tr.active td,
.table.dataTable tbody tr.active th {
background-color: #08C;
color: white;
}
.table.dataTable tbody tr.active:hover td,
.table.dataTable tbody tr.active:hover th {
background-color: #0075b0 !important;
}
.table.dataTable tbody tr.active th > a,
.table.dataTable tbody tr.active td > a {
color: white;
}
.table-striped.dataTable tbody tr.active:nth-child(odd) td,
.table-striped.dataTable tbody tr.active:nth-child(odd) th {
background-color: #017ebc;
}
table.DTTT_selectable tbody tr {
cursor: pointer;
}
div.DTTT .btn:hover {
text-decoration: none !important;
}
ul.DTTT_dropdown.dropdown-menu {
z-index: 2003;
}
ul.DTTT_dropdown.dropdown-menu a {
color: #333 !important; /* needed only when demo_page.css is included */
}
ul.DTTT_dropdown.dropdown-menu li {
position: relative;
}
ul.DTTT_dropdown.dropdown-menu li:hover a {
background-color: #0088cc;
color: white !important;
}
div.DTTT_collection_background {
z-index: 2002;
}
/* TableTools information display */
div.DTTT_print_info {
position: fixed;
top: 50%;
left: 50%;
width: 400px;
height: 150px;
margin-left: -200px;
margin-top: -75px;
text-align: center;
color: #333;
padding: 10px 30px;
opacity: 0.95;
background-color: white;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 6px;
-webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
}
div.DTTT_print_info h6 {
font-weight: normal;
font-size: 28px;
line-height: 28px;
margin: 1em;
}
div.DTTT_print_info p {
font-size: 14px;
line-height: 20px;
}
div.dataTables_processing {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 60px;
margin-left: -50%;
margin-top: -25px;
padding-top: 20px;
padding-bottom: 20px;
text-align: center;
font-size: 1.2em;
background-color: white;
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
}
/*
* FixedColumns styles
*/
div.DTFC_LeftHeadWrapper table,
div.DTFC_LeftFootWrapper table,
div.DTFC_RightHeadWrapper table,
div.DTFC_RightFootWrapper table,
table.DTFC_Cloned tr.even {
background-color: white;
margin-bottom: 0;
}
div.DTFC_RightHeadWrapper table ,
div.DTFC_LeftHeadWrapper table {
border-bottom: none !important;
margin-bottom: 0 !important;
border-top-right-radius: 0 !important;
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child,
div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child,
div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
border-bottom-left-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
div.DTFC_RightBodyWrapper table,
div.DTFC_LeftBodyWrapper table {
border-top: none;
margin: 0 !important;
}
div.DTFC_RightBodyWrapper tbody tr:first-child th,
div.DTFC_RightBodyWrapper tbody tr:first-child td,
div.DTFC_LeftBodyWrapper tbody tr:first-child th,
div.DTFC_LeftBodyWrapper tbody tr:first-child td {
border-top: none;
}
div.DTFC_RightFootWrapper table,
div.DTFC_LeftFootWrapper table {
border-top: none;
margin-top: 0 !important;
}
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting:after,
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_asc:after,
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_desc:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_asc:after,
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_desc:after {
display: none;
}
/*
* FixedHeader styles
*/
div.FixedHeader_Cloned table {
margin: 0 !important
}

File diff suppressed because one or more lines are too long

View file

@ -21,7 +21,7 @@ ul.ColVis_collection li {
.ColVis_Button:hover,
ul.ColVis_collection li:hover {
color: #F9AA03;
color: #E5A00D;
}
button.ColVis_Button {
@ -71,7 +71,7 @@ ul.ColVis_collection {
list-style: none;
width: 150px;
padding: 8px 8px 4px 8px;
margin: 10px 0px 0px 0px;
margin: 10px 0px 10px 0px;
background-color: #444;
overflow: hidden;
z-index: 2002;

View file

@ -101,7 +101,7 @@ table.display tr:hover a {
text-decoration:none;
}
table.display td:hover a {
color: #F9AA03;
color: #E5A00D;
}
table.display thead tr:hover {
background-color: #212121;

File diff suppressed because it is too large Load diff

View file

@ -62,8 +62,7 @@ DOCUMENTATION :: END
% if session is not None:
<%
from collections import defaultdict
from urllib import quote
from plexpy import helpers
from plexpy.helpers import cast_to_int, get_percent, page, short_season
from plexpy.common import VIDEO_RESOLUTION_OVERRIDES, AUDIO_CODEC_OVERRIDES, EXTRA_TYPES
import plexpy
%>
@ -71,62 +70,67 @@ DOCUMENTATION :: END
data = defaultdict(lambda: 'Unknown', **session)
sk = data['session_key']
href = 'info?rating_key={}'.format(data['rating_key']) if data['rating_key'] else '#'
parent_href = 'info?rating_key={}'.format(data['parent_rating_key']) if data['parent_rating_key'] else '#'
grandparent_href = 'info?rating_key={}'.format(data['grandparent_rating_key']) if data['grandparent_rating_key'] else '#'
user_href = 'user?user_id={}'.format(data['user_id']) if data['user_id'] else '#'
href = page('info', data['rating_key'])
parent_href = page('info', data['parent_rating_key'])
grandparent_href = page('info', data['grandparent_rating_key'])
user_href = page('user', data['user_id']) if data['user_id'] else '#'
library_href = page('library', data['section_id']) if data['section_id'] else '#'
season = short_season(data['parent_title'])
%>
<div class="dashboard-activity-instance" id="activity-instance-${sk}" data-key="${sk}" data-id="${data['session_id']}"
data-rating_key="${data['rating_key']}" data-parent_rating_key="${data['parent_rating_key']}" data-grandparent_rating_key="${data['grandparent_rating_key']}">
data-rating_key="${data['rating_key']}" data-parent_rating_key="${data['parent_rating_key']}" data-grandparent_rating_key="${data['grandparent_rating_key']}"
data-guid="${data['guid']}">
<div class="dashboard-activity-container">
<%
if data['live'] == 1:
background_url = 'images/art-live.png'
if data['live']:
background_url = page('pms_image_proxy', data['art'], data['rating_key'], 500, 280, 40, '282828', 3, fallback='art-live', refresh=True)
elif data['channel_stream'] == 0:
background_url = 'pms_image_proxy?img=' + data['art'] + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art&refresh=true'
background_url = page('pms_image_proxy', data['art'], data['rating_key'], 500, 280, 40, '282828', 3, fallback='art', refresh=True)
else:
if (data['art'] and data['art'].startswith('http')) or (data['thumb'] and data['thumb'].startswith('http')):
background_url = data['art']
else:
background_url = 'pms_image_proxy?img=' + quote(data['art'] or data['thumb']) + '&width=500&height=280&fallback=art&refresh=true&clip=true'
background_url = page('pms_image_proxy', data['art'] or data['thumb'], data['rating_key'], 500, 280, 40, '282828', 3, fallback='art', refresh=True, clip=True)
%>
<div id="background-${sk}" class="dashboard-activity-background" style="background-image: url(${background_url});">
<div class="dashboard-activity-poster-container hidden-xs">
% if data['media_type'] == 'track':
<div id="poster-${sk}-bg" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['parent_thumb']}&width=300&height=300&opacity=60&background=282828&blur=3&fallback=cover&refresh=true);"></div>
<div id="poster-${sk}-bg" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['parent_thumb'], data['parent_rating_key'], 300, 300, 60, '282828', 3, fallback='cover', refresh=True)});"></div>
% endif
% if data['live'] == 1:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(images/poster-live.png);"></div>
% if data['live']:
% if data['media_type'] == 'movie':
<a id="poster-url-${sk}" href="${href}" title="${data['title']}">
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['thumb'], data['rating_key'], 300, 450, fallback='poster-live', refresh=True)});"></div>
</a>
% elif data['media_type'] == 'episode':
<a id="poster-url-${sk}" href="${href}" title="${data['grandparent_title']}">
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['grandparent_thumb'], data['rating_key'], 300, 450, fallback='poster-live', refresh=True)});"></div>
</a>
% else:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['grandparent_thumb'] or data['thumb'], data['rating_key'], 300, 450, fallback='poster-live', refresh=True)});"></div>
% endif
% elif data['channel_stream'] == 0:
% if data['media_type'] == 'movie':
<a id="poster-url-${sk}" href="${href}" title="${data['title']}">
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['thumb']}&width=300&height=450&fallback=poster&refresh=true);"></div>
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['thumb'], data['rating_key'], 300, 450, fallback='poster', refresh=True)});"></div>
</a>
% elif data['media_type'] == 'episode':
<a id="poster-url-${sk}" href="${grandparent_href}" title="${data['grandparent_title']}">
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['grandparent_thumb']}&width=300&height=450&fallback=poster&refresh=true);"></div>
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['grandparent_thumb'], data['grandparent_rating_key'], 300, 450, fallback='poster', refresh=True)});"></div>
</a>
% elif data['media_type'] == 'track':
<a id="poster-url-${sk}" href="${parent_href}" title="${data['parent_title']}">
<div id="poster-${sk}" class="dashboard-activity-cover" style="background-image: url(pms_image_proxy?img=${data['parent_thumb']}&width=300&height=300&fallback=cover&refresh=true);"></div>
<div id="poster-${sk}" class="dashboard-activity-cover" style="background-image: url(${page('pms_image_proxy', data['parent_thumb'], data['parent_rating_key'], 300, 300, fallback='cover', refresh=True)});"></div>
</a>
% elif data['media_type'] in ('photo', 'clip'):
% if data['extra_type']:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['art'].replace('/art', '/thumb') or data['thumb']}&width=300&height=450&fallback=poster&refresh=true);"></div>
% if data['parent_thumb']:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['parent_thumb'], data['parent_rating_key'], 300, 450, fallback='poster', refresh=True)});"></div>
% else:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['parent_thumb'] or data['thumb']}&width=300&height=450&fallback=poster&refresh=true);"></div>
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['thumb'], data['rating_key'], 300, 450, fallback='poster', refresh=True)});"></div>
% endif
% else:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(images/poster.png);"></div>
% endif
% else:
% if data['channel_icon'].startswith('http'):
<div id="poster-${sk}" class="dashboard-activity-poster-blur" style="background-image: url(${data['channel_icon']});"></div>
<div id="poster-${sk}" class="dashboard-activity-cover" style="background-image: url(${data['channel_icon']});"></div>
% else:
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(pms_image_proxy?img=${data['channel_icon']}&width=300&height=300&opacity=60&background=282828&blur=3&fallback=cover&refresh=true);"></div>
<div id="poster-${sk}" class="dashboard-activity-cover" style="background-image: url(pms_image_proxy?img=${data['channel_icon']}&width=300&height=300&fallback=cover&refresh=true);"></div>
% endif
<div id="poster-${sk}" class="dashboard-activity-poster" style="background-image: url(${page('pms_image_proxy', data['channel_icon'], data['rating_key'], 300, 300, 60, '282828', 3, fallback='cover', refresh=True)});"></div>
<div id="poster-${sk}" class="dashboard-activity-cover" style="background-image: url(${page('pms_image_proxy', data['channel_icon'], data['rating_key'], 300, 300, fallback='cover', refresh=True)});"></div>
% endif
</div>
<div class="dashboard-activity-info-icon">
@ -139,7 +143,7 @@ DOCUMENTATION :: END
<div id="platform-${sk}" class="dashboard-activity-info-platform${no_terminate} svg-icon platform-${data['platform_name']}" title="${data['platform']}"></div>
% if _session['user_group'] == 'admin' and plexpy.CONFIG.PMS_PLEXPASS and data['session_id']:
<div class="dashboard-activity-terminate-session" id="terminate-button-${sk}" data-key="${sk}" data-id="${data['session_id']}" data-toggle="tooltip" title="Terminate Stream">
<i class="fa fa-times" style="padding-top: 8px;"></i>
<i class="fa fa-times" style="padding-top: 10px;"></i>
</div>
% endif
</div>
@ -157,10 +161,11 @@ DOCUMENTATION :: END
</li>
<li class="dashboard-activity-info-item">
<div class="sub-heading">Quality</div>
<div class="sub-value platform-right" id="stream_quality-${sk}">
<div class="sub-value platform-right">
<span id="stream_quality-${sk}">
% if data['media_type'] != 'photo' and data['quality_profile'] != 'Unknown':
<%
br = helpers.cast_to_int(data['stream_bitrate']) or ''
br = cast_to_int(data['stream_bitrate']) or ''
if br:
if br > 1000:
br = '(' + str(round(br / 1000.0, 1)) + ' Mbps)'
@ -171,6 +176,8 @@ DOCUMENTATION :: END
% else:
${data['quality_profile']}
% endif
</span>
<span data-toggle="tooltip" title="Quality profile is only an estimate based on bitrate and may be incorrect"><i class="fa fa-exclamation-circle"></i></span>
</div>
</li>
% if data['optimized_version'] == 1:
@ -216,7 +223,7 @@ DOCUMENTATION :: END
<div class="sub-heading">Container</div>
<div class="sub-value" id="transcode_container-${sk}">
% if data['stream_container_decision'] == 'transcode':
Transcode (${data['container'].upper()} <i class="fa fa-long-arrow-right"></i> ${data['stream_container'].upper()})
Converting (${data['container'].upper()} <i class="fa fa-long-arrow-right"></i> ${data['stream_container'].upper()})
% else:
Direct Play (${data['stream_container'].upper()})
% endif
@ -226,17 +233,27 @@ DOCUMENTATION :: END
<li class="dashboard-activity-info-item">
<div class="sub-heading">Video</div>
<div class="sub-value" id="video_decision-${sk}">
% if data['media_type'] in ('movie', 'episode', 'clip'):
% if data['media_type'] in ('movie', 'episode', 'clip') and data['stream_video_decision']:
<%
if data['video_dynamic_range'] != 'SDR':
video_dynamic_range = ' ' + data['video_dynamic_range']
else:
video_dynamic_range = ''
if data['stream_video_dynamic_range'] != 'SDR' or video_dynamic_range:
stream_video_dynamic_range = ' ' + data['stream_video_dynamic_range']
else:
stream_video_dynamic_range = ''
%>
% if data['stream_video_decision'] == 'transcode':
<%
hw_d = ' (HW)' if data['transcode_hw_decoding'] else ''
hw_e = ' (HW)' if data['transcode_hw_encoding'] else ''
%>
Transcode (${data['video_codec'].upper()}${hw_d} ${data['video_full_resolution']} <i class="fa fa-long-arrow-right"></i> ${data['stream_video_codec'].upper()}${hw_e} ${data['stream_video_full_resolution']})
Transcode (${data['video_codec'].upper()}${hw_d} ${data['video_full_resolution']}${video_dynamic_range} <i class="fa fa-long-arrow-right"></i> ${data['stream_video_codec'].upper()}${hw_e} ${data['stream_video_full_resolution']}${stream_video_dynamic_range})
% elif data['stream_video_decision'] == 'copy':
Direct Stream (${data['stream_video_codec'].upper()} ${data['stream_video_full_resolution']})
Direct Stream (${data['stream_video_codec'].upper()} ${data['stream_video_full_resolution']}${stream_video_dynamic_range})
% else:
Direct Play (${data['stream_video_codec'].upper()} ${data['stream_video_full_resolution']})
Direct Play (${data['stream_video_codec'].upper()} ${data['stream_video_full_resolution']}${stream_video_dynamic_range})
% endif
% elif data['media_type'] == 'photo':
Direct Play (${data['width']}x${data['height']})
@ -248,12 +265,17 @@ DOCUMENTATION :: END
<li class="dashboard-activity-info-item">
<div class="sub-heading">Audio</div>
<div class="sub-value" id="audio_decision-${sk}">
% if data['stream_audio_decision'] == 'transcode':
Transcode (${AUDIO_CODEC_OVERRIDES.get(data['audio_codec'], data['audio_codec'].upper())} ${data['audio_channel_layout'].split('(')[0].capitalize()} <i class="fa fa-long-arrow-right"></i> ${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% elif data['stream_audio_decision'] == 'copy':
Direct Stream (${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% else:
Direct Play (${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% if data['stream_audio_decision']:
<%
audio_language = (data['audio_language'] or 'Unknown') + ' - ' if data['media_type'] != 'track' else ''
%>
% if data['stream_audio_decision'] == 'transcode':
Transcode (${audio_language}${AUDIO_CODEC_OVERRIDES.get(data['audio_codec'], data['audio_codec'].upper())} ${data['audio_channel_layout'].split('(')[0].capitalize()} <i class="fa fa-long-arrow-right"></i> ${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% elif data['stream_audio_decision'] == 'copy':
Direct Stream (${audio_language}${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% else:
Direct Play (${audio_language}${AUDIO_CODEC_OVERRIDES.get(data['stream_audio_codec'], data['stream_audio_codec'].upper())} ${data['stream_audio_channel_layout'].split('(')[0].capitalize()})
% endif
% endif
</div>
</li>
@ -263,14 +285,17 @@ DOCUMENTATION :: END
<div class="sub-heading">Subtitle</div>
<div class="sub-value" id="subtitle_decision-${sk}">
% if data['subtitles'] == 1:
<%
subtitle_codec = 'None' if data['stream_subtitle_codec'] and data['stream_subtitle_transient'] else data['subtitle_codec'].upper()
%>
% if data['stream_subtitle_decision'] == 'transcode':
Transcode (${data['subtitle_codec'].upper()} <i class="fa fa-long-arrow-right"></i> ${data['stream_subtitle_codec'].upper()})
Transcode (${data['subtitle_language'] or 'Unknown'} - ${subtitle_codec} <i class="fa fa-long-arrow-right"></i> ${data['stream_subtitle_codec'].upper()})
% elif data['stream_subtitle_decision'] == 'copy':
Direct Stream (${data['subtitle_codec'].upper()})
Direct Stream (${data['subtitle_language'] or 'Unknown'} - ${subtitle_codec})
% elif data['stream_subtitle_decision'] == 'burn':
Burn (${data['subtitle_codec'].upper()})
Burn (${data['subtitle_language'] or 'Unknown'} - ${subtitle_codec})
% else:
Direct Play (${data['subtitle_codec'].upper() if data['synced_version'] else data['stream_subtitle_codec'].upper()})
Direct Play (${data['subtitle_language'] or 'Unknown'} - ${subtitle_codec if data['synced_version'] else data['stream_subtitle_codec'].upper()})
% endif
% else:
None
@ -292,11 +317,16 @@ DOCUMENTATION :: END
% endif
<span id="location-${sk}">${data['location'].upper()}</span>:
% if data['ip_address'] != 'N/A':
<span class="ip-container"><span class="ip-address">${data['ip_address']}</span></span>
% if len(data['ip_address']) > 20:
<span class="ip-container"><span class="ip-address" data-toggle="tooltip" title="${data['ip_address']}">${data['ip_address']}</span></span>
% else:
<span class="ip-container"><span class="ip-address">${data['ip_address']}</span></span>
% endif
% if data['relayed']:
<span data-toggle="tooltip" title="Plex Relay"><i class="fa fa-exclamation-circle"></i></span>
% else:
<a href="#" class="external_ip-modal" data-toggle="modal" data-target="#ip-info-modal" data-ip="${data['ip_address']}">
<a href="#" class="external_ip-modal" data-toggle="modal" data-target="#ip-info-modal"
data-ip="${data['ip_address']}" data-location="${data['location']}" data-secure="${data['secure']}" data-relayed="${data['relayed']}">
<span id="external_ip-${sk}" class="external-ip-tooltip" data-toggle="tooltip" title="Lookup External IP" style="display: none;"><i class="fa fa-map-marker"></i></span>
</a>
<script>
@ -317,8 +347,10 @@ DOCUMENTATION :: END
<div class="sub-value time-right">
% if data['media_type'] != 'photo' and data['bandwidth'] != 'Unknown':
<%
bw = helpers.cast_to_int(data['bandwidth'])
if bw > 1000:
bw = cast_to_int(data['bandwidth'])
if bw > 1000000:
bw = str(round(bw / 1000000.0, 1)) + ' Gbps'
elif bw > 1000:
bw = str(round(bw / 1000.0, 1)) + ' Mbps'
else:
bw = str(bw) + ' kbps'
@ -337,8 +369,8 @@ DOCUMENTATION :: END
</div>
% if data['media_type'] != 'photo':
<div class="dashboard-activity-info-time">
% if data['live'] == 1:
<br />Live
% if data['live']:
<br /><span class="thumb-tooltip dashboard-activity-info-channel" data-toggle="popover" data-img="${data['channel_thumb']}" data-height="40" data-width="40">${data['channel_title'] or (data['channel_vcn'] + ' ' + data['channel_call_sign'])}</span>
% elif data['view_offset']:
ETA:
<span id="stream-eta-${sk}">
@ -367,18 +399,19 @@ DOCUMENTATION :: END
</div>
<div class="dashboard-activity-progress">
<div class="dashboard-activity-progress-bar">
% if data['live'] == 1:
<div id="progress-bar-${sk}" class="progress-bar" style="width: 100%" data-toggle="tooltip" title="Stream Progress Live">Live</div>
% if data['live']:
<div id="progress-bar-${sk}" class="progress-bar" style="width: 100%" data-state="live" data-toggle="tooltip" title="Stream Progress Live">Live</div>
% else:
<div id="buffer-bar-${sk}" class="buffer-bar" style="width: ${data['transcode_progress']}%" data-toggle="tooltip" title="Transcoder Progress ${data['transcode_progress']}%">${data['transcode_progress']}%</div>
<% transcode_progress = get_percent(data['transcode_max_offset_available'] * 1000, data['duration']) or data['transcode_progress'] %>
<div id="buffer-bar-${sk}" class="buffer-bar" style="width: ${transcode_progress}%" data-toggle="tooltip" title="Transcoder Progress ${transcode_progress}%">${transcode_progress}%</div>
<div id="progress-bar-${sk}" class="progress-bar" style="width: ${data['progress_percent']}%" data-last_view_offset="${data['view_offset']}" data-view_offset="${data['view_offset']}" data-stream_duration="${data['stream_duration']}" data-state="${data['state']}" data-toggle="tooltip" title="Stream Progress ${data['progress_percent']}%">${data['progress_percent']}%</div>
% endif
</div>
</div>
</div>
<div class="dashboard-activity-metadata-wrapper">
<a href="${user_href}" title="${data['friendly_name']}">
<div class="dashboard-activity-metadata-user-thumb" style="background-image: url(${data['user_thumb']});"></div>
<a href="${user_href}" title="${data['username']}">
<div class="dashboard-activity-metadata-user-thumb" style="background-image: url(${page('pms_image_proxy', data['user_thumb'], None, 80, 80, fallback='user')});"></div>
</a>
<div class="dashboard-activity-metadata-title-container">
<div id="play-state-${sk}" class="dashboard-activity-metadata-play_state-icon" title="${data['state'].capitalize()}">
@ -388,10 +421,23 @@ DOCUMENTATION :: END
<i class="fa fa-fw fa-pause"></i>&nbsp;
% elif data['state'] == 'buffering':
<i class="fa fa-fw fa-spinner"></i>&nbsp;
% elif data['state'] == 'error':
<i class="fa fa-fw fa-exclamation-triangle"></i>&nbsp;
% else:
<i class="fa fa-fw fa-question-circle"></i>&nbsp;
% endif
</div>
<div class="dashboard-activity-metadata-title">
% if data['channel_stream'] == 0:
% if data['live']:
% if data['media_type'] == 'movie':
<a href="${href}" title="${data['title']}">${data['title']}</a>
% elif data['media_type'] == 'episode':
<a href="${href}" title="${data['grandparent_title']}">${data['grandparent_title']}</a>
- <a href="${href}" title="${data['title']}">${data['title']}</a>
% else:
<span title="${data['title']}">${data['title']}</span>
% endif
% elif data['channel_stream'] == 0:
% if data['media_type'] == 'movie':
<a href="${href}" title="${data['title']}">${data['title']}</a>
% elif data['media_type'] == 'episode':
@ -416,23 +462,29 @@ DOCUMENTATION :: END
</div>
</div>
<div class="dashboard-activity-metadata-subtitle-container">
% if data['live'] == 1:
<div id="media-type-${sk}" class="dashboard-activity-metadata-media_type-icon" title="Plex Live TV">
<i class="fa fa-fw fa-television"></i>&nbsp;
% if data['live']:
<div id="media-type-${sk}" class="dashboard-activity-metadata-media_type-icon" title="Live TV">
<a href="${library_href}">
<i class="fa fa-fw fa-broadcast-tower"></i>
</a>&nbsp;
</div>
% elif data['channel_stream'] == 0:
<div id="media-type-${sk}" class="dashboard-activity-metadata-media_type-icon" title="${data['media_type'].capitalize()}">
% if data['media_type'] == 'movie':
<i class="fa fa-fw fa-film"></i>&nbsp;
% elif data['media_type'] == 'episode':
<i class="fa fa-fw fa-television"></i>&nbsp;
% elif data['media_type'] == 'track':
<i class="fa fa-fw fa-music"></i>&nbsp;
% elif data['media_type'] == 'photo':
<i class="fa fa-fw fa-picture-o"></i>&nbsp;
% elif data['media_type'] == 'clip':
<i class="fa fa-fw fa-video-camera"></i>&nbsp;
% endif
<a href="${library_href}">
% if data['media_type'] == 'movie':
<i class="fa fa-fw fa-film"></i>
% elif data['media_type'] == 'episode':
<i class="fa fa-fw fa-television"></i>
% elif data['media_type'] == 'track':
<i class="fa fa-fw fa-music"></i>
% elif data['media_type'] == 'photo':
<i class="fa fa-fw fa-picture-o"></i>
% elif data['media_type'] == 'clip':
<i class="fa fa-fw fa-video-camera"></i>
% else:
<i class="fa fa-fw fa-question-circle"></i>
% endif
</a>&nbsp;
</div>
% else:
<div id="media-type-${sk}" class="dashboard-activity-metadata-media_type-icon" title="Channel">
@ -440,13 +492,24 @@ DOCUMENTATION :: END
</div>
% endif
<div class="dashboard-activity-metadata-subtitle">
% if data['live'] == 1:
<span title="Plex Live TV" class="sub-heading">Plex Live TV</span>
% if data['live']:
% if data['media_type'] == 'movie':
<span title="${data['year']}" class="sub-heading">${data['year']}</span>
% elif data['media_type'] == 'episode':
% if data['media_index']:
<a href="${href}" title="${data['parent_title']}" class="sub-heading">${season}</a>
&middot; <a href="${href}" title="Episode ${data['media_index']}" class="sub-heading">E${data['media_index']}</a>
% else:
<a href="${href}" title="${data['originally_available_at']}" class="sub-heading">${data['originally_available_at']}</a>
% endif
% else:
<span title="Live TV" class="sub-heading">Live TV</span>
% endif
% elif data['channel_stream'] == 0:
% if data['media_type'] == 'movie':
<span title="${data['year']}" class="sub-heading">${data['year']}</span>
% elif data['media_type'] == 'episode':
<a href="${parent_href}" title="Season ${data['parent_media_index']}" class="sub-heading">S${data['parent_media_index']}</a>
<a href="${parent_href}" title="${data['parent_title']}" class="sub-heading">${season}</a>
&middot; <a href="${href}" title="Episode ${data['media_index']}" class="sub-heading">E${data['media_index']}</a>
% elif data['media_type'] == 'track':
<a id="metadata-parent_title-${sk}" href="${parent_href}" title="${data['parent_title']}" class="sub-heading">${data['parent_title']}</a>
@ -463,7 +526,7 @@ DOCUMENTATION :: END
% elif data['channel_title']:
<span title="${data['channel_title']}" class="sub-heading">${data['channel_title']}</span>
% if data['media_type'] == 'episode' and data['parent_media_index'] and data['media_index']:
(<span title="Season ${data['parent_media_index']}" class="sub-heading">S${data['parent_media_index']}</span>
(<span title="${data['parent_title']}" class="sub-heading">${season}</span>
&middot; <span title="Episode ${data['media_index']}" class="sub-heading">E${data['media_index']}</span>)
% elif data['media_type'] == 'episode' and data['originally_available_at']:
(<span title="${data['originally_available_at']}" class="sub-heading">${data['originally_available_at']}</span>)
@ -471,7 +534,7 @@ DOCUMENTATION :: END
% else:
<span title="Channel" class="sub-heading">Channel</span>
% if data['media_type'] == 'episode' and data['parent_media_index'] and data['media_index']:
(<span title="Season ${data['parent_media_index']}" class="sub-heading">S${data['parent_media_index']}</span>
(<span title="${data['parent_title']}" class="sub-heading">${season}</span>
&middot; <span title="Episode ${data['media_index']}" class="sub-heading">E${data['media_index']}</span>)
% elif data['media_type'] == 'episode' and data['originally_available_at']:
(<span title="${data['originally_available_at']}" class="sub-heading">${data['originally_available_at']}</span>)
@ -479,9 +542,9 @@ DOCUMENTATION :: END
% endif
</div>
<div class="dashboard-activity-metadata-user">
<a href="${user_href}" title="${data['friendly_name']}">${data['friendly_name']}</a>
<a href="${user_href}" title="${data['username']}">${data['friendly_name']}</a>
</div>
</div>
</div>
</div>
% endif
% endif

View file

@ -40,13 +40,22 @@ DOCUMENTATION :: END
<div class="modal-body" id="modal-text">
<fieldset>
<div class="form-group">
<label for="profile_url">Library Picture URL</label>
<label for="profile_url">Library Thumbnail URL</label>
<div class="row">
<div class="col-md-8">
<input type="text" class="form-control" id="custom_thumb_url" name="custom_thumb_url" value="${data['library_thumb']}">
</div>
</div>
<p class="help-block">Change the library's picture in Tautulli. To reset to default, leave this field empty and save.</p>
<p class="help-block">Change the library's thumbnail in Tautulli. To reset to default, leave this field empty and save.</p>
</div>
<div class="form-group">
<label for="profile_url">Library Background Art URL</label>
<div class="row">
<div class="col-md-8">
<input type="text" class="form-control" id="custom_art_url" name="custom_art_url" value="${data['library_art']}">
</div>
</div>
<p class="help-block">Change the library's background art in Tautulli. To reset to default, leave this field empty and save.</p>
</div>
<div class="checkbox">
<label>
@ -80,6 +89,7 @@ DOCUMENTATION :: END
// Save library options
$("#save_library").on('click', function () {
var custom_thumb = $("#custom_thumb_url").val();
var custom_art = $("#custom_art_url").val();
var keep_history = 0;
if ($("#keep_history").is(":checked")) {
keep_history = 1;
@ -90,6 +100,7 @@ DOCUMENTATION :: END
data: {
section_id: '${data["section_id"]}',
custom_thumb: custom_thumb,
custom_art: custom_art,
keep_history: keep_history
},
cache: false,
@ -104,21 +115,13 @@ DOCUMENTATION :: END
var msg = 'Are you REALLY sure you want to purge all history for the <strong>${data["section_name"]}</strong> library?<br>' +
'This is permanent and cannot be undone!';
var url = 'delete_all_library_history';
confirmAjaxCall(url, msg, { section_id: '${data["section_id"]}' }, null, function () { location.reload(); });
confirmAjaxCall(url, msg, { server_id: '${server_id}', section_id: '${data["section_id"]}' }, null, function () { location.reload(); });
});
$('#undelete-library').click(function () {
var msg = 'Are you sure you want to undelete this user?';
var msg = 'Are you sure you want to undelete this library?';
var url = 'undelete_library';
confirmAjaxCall(url, msg, { section_id: '${data["section_id"]}' }, null, function () { location.reload(); });
});
$(document).ready(function() {
// Move #confirm-modal to parent container
if (!($('#edit-library-modal').next().is('#confirm-modal-purge'))) {
$('#confirm-modal-purge').appendTo($('#edit-library-modal').parent());
}
$('#edit-library-modal > #confirm-modal-purge').remove();
});
</script>
% endif

View file

@ -134,13 +134,5 @@ DOCUMENTATION :: END
var url = 'undelete_user';
confirmAjaxCall(url, msg, { user_id: '${data["user_id"]}' }, null, function () { location.reload(); });
});
$(document).ready(function() {
// Move #confirm-modal-purge to parent container
if (!($('#edit-user-modal').next().is('#confirm-modal-purge'))) {
$('#confirm-modal-purge').appendTo($('#edit-user-modal').parent());
}
$('#edit-user-modal > #confirm-modal-purge').remove();
});
</script>
% endif

View file

@ -0,0 +1,310 @@
<%doc>
USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
Filename: export_modal.html
Version: 0.1
Variable names: data [list]
data :: Usable parameters
== Global keys ==
DOCUMENTATION :: END
</%doc>
<%
import plexpy
from plexpy import exporter
from plexpy.helpers import anon_url
export = exporter.Export()
thumb_media_types = ', '.join([export.PLURAL_MEDIA_TYPES[k] for k, v in export.MEDIA_TYPES.items() if v[0]])
art_media_types = ', '.join([export.PLURAL_MEDIA_TYPES[k] for k, v in export.MEDIA_TYPES.items() if v[1]])
logo_media_types = ', '.join([export.PLURAL_MEDIA_TYPES[k] for k, v in export.MEDIA_TYPES.items() if v[2]])
%>
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="info-modal-title">
${title}
</h4>
</div>
<div class="modal-body">
<form method="post" class="form" id="export_metadata_form">
<input type="hidden" id="export_section_id" name="export_section_id" value="${section_id or ''}" />
<input type="hidden" id="export_user_id" name="export_user_id" value="${user_id or ''}" />
<input type="hidden" id="export_rating_key" name="export_rating_key" value="${rating_key or ''}" />
<input type="hidden" id="export_media_type" name="export_media_type" value="${media_type or ''}" />
<input type="hidden" id="export_sub_media_type" name="export_sub_media_type" value="${sub_media_type or ''}" />
<input type="hidden" id="export_export_type" name="export_export_type" value="${export_type or ''}" />
<div class="form-group">
<label>Instructions</label>
<p class="help-block">
Please see the <a href="${anon_url('https://github.com/%s/%s/wiki/Exporter-Guide' % (plexpy.CONFIG.GIT_USER, plexpy.CONFIG.GIT_REPO))}" target="_blank" rel="noreferrer">Exporter Guide</a> for more details about each option.
</p>
</div>
<div class="form-group">
<label for="export_file_format">Data File Format</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_file_format" name="export_file_format">
% for format in file_formats:
<option value="${format}">${format.upper()}</option>
% endfor
</select>
</div>
</div>
<p class="help-block">Select the export data file format.</p>
</div>
% if not rating_key:
<div class="checkbox">
<label>
<input type="checkbox" id="export_individual_files" name="export_individual_files" value="1"> Export Individual Files
</label>
<p class="help-block">Enable to export one file for each ${media_type} instead of a single file containing all ${media_type}s.</p>
</div>
% endif
<div class="form-group">
<label for="export_metadata_level">Metadata Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_metadata_level" name="export_metadata_level">
<option value="0">Level 0 - None / Custom</option>
<option value="1" selected>Level 1 - Basic Metadata</option>
<option value="2">Level 2 - Extended Metadata</option>
<option value="3">Level 3 - Advanced Metadata</option>
<option value="9">Level 9 - All Metadata</option>
</select>
</div>
</div>
<p class="help-block">Select the metadata export level. Higher levels include all fields from the lower levels.</p>
</div>
<div class="form-group">
<label for="export_custom_metadata_fields">Custom Metadata Fields</label>
<div class="row">
<div class="col-md-12">
<input type="text" class="form-control" id="export_custom_metadata_fields" name="export_custom_metadata_fields" data-field_type="Metadata">
</div>
</div>
<p class="help-block">Add additional fields to the selected metadata export level.</p>
</div>
<div class="form-group">
<label for="export_media_info_level">Media Info Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_media_info_level" name="export_media_info_level">
<option value="0">Level 0 - None / Custom</option>
<option value="1" selected>Level 1 - Basic Media Info</option>
<option value="2">Level 2 - Extended Media Info</option>
<option value="3">Level 3 - Advanced Media Info</option>
<option value="9">Level 9 - All Media Info</option>
</select>
</div>
</div>
<p class="help-block">Select the media info export level. Higher levels include all fields from the lower levels.</p>
</div>
<div class="form-group">
<label for="export_custom_media_info_fields">Custom Media Info Fields</label>
<div class="row">
<div class="col-md-12">
<input type="text" class="form-control" id="export_custom_media_info_fields" name="export_custom_media_info_fields" data-field_type="Media Info">
</div>
</div>
<p class="help-block">Add additional fields to the selected media info export level.</p>
</div>
<div class="form-group">
<label for="export_thumb_level">Poster and Cover Image Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_thumb_level" name="export_thumb_level">
<option value="0" selected>Level 0 - None / Custom</option>
<option value="1">Level 1 - Uploaded and Selected Posters and Covers Only</option>
<option value="2">Level 2 - Selected and Locked Posters and Covers Only</option>
<option value="9">Level 9 - All Selected Posters and Covers</option>
</select>
</div>
</div>
<p class="help-block">
Select the level to export poster and cover image files.<br>Note: Only applies to ${thumb_media_types}.
</p>
</div>
<div class="form-group">
<label for="export_art_level">Background Artwork Image Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_art_level" name="export_art_level">
<option value="0" selected>Level 0 - None / Custom</option>
<option value="1">Level 1 - Uploaded and Selected Artwork Only</option>
<option value="2">Level 2 - Selected and Locked Artwork Only</option>
<option value="9">Level 9 - All Selected Artwork</option>
</select>
</div>
</div>
<p class="help-block">
Select the level to export background artwork image files.<br>Note: Only applies to ${art_media_types}.
</p>
</div>
<div class="form-group">
<label for="export_logo_level">Logo Image Export Level</label>
<div class="row">
<div class="col-md-12">
<select class="form-control" id="export_logo_level" name="export_logo_level">
<option value="0" selected>Level 0 - None / Custom</option>
<option value="1">Level 1 - Uploaded and Selected Logos Only</option>
<option value="2">Level 2 - Selected and Locked Logos Only</option>
<option value="9">Level 9 - All Selected Logos</option>
</select>
</div>
</div>
<p class="help-block">
Select the level to export logo image files.<br>Note: Only applies to ${logo_media_types}.
</p>
</div>
<p class="help-block">
Warning: Exporting images may take a long time! Images will be saved to a folder alongside the data file.
</p>
</form>
</div>
<div class="modal-footer">
<div>
<input type="button" class="btn btn-bright btn-ok" data-dismiss="modal" id="export_metadata" value="Export">
</div>
</div>
</div>
</div>
<script src="${http_root}js/selectize.plugin.disable-options.js"></script>
<script>
$('#export_metadata_form').submit(function(e) {
e.preventDefault();
})
var optgroups = (function () {
var optgroups = [];
for (var i = 0; i <= 9; i++) {
optgroups.push({$order: i+1, value: i});
}
return optgroups
})()
var $export_custom_fields = $('#export_custom_metadata_fields, #export_custom_media_info_fields').selectize({
plugins: {
'remove_button': {},
'disable_options': {
disableField: 'level'
}
},
maxItems: null,
valueField: 'field',
labelField: 'field',
sortField: 'field',
searchField: ['field'],
optgroupField: 'level',
optgroups: optgroups,
lockOptgroupOrder: true,
render: {
optgroup_header: function(data, escape) {
return '<div class="optgroup-header">' + escape(this.$input.data('field_type') + ' Level: ' + data.value) + '</div>';
},
option: function (item, escape) {
return '<div data-field="' + escape(item.field) + '" data-level="' + escape(item.level) + '">' + escape(item.field) +'</div>';
}
}
});
var export_custom_metadata_fields = $export_custom_fields[0].selectize;
var export_custom_media_info_fields = $export_custom_fields[1].selectize;
function setDisabledFields() {
var metadata_export_level = $('#export_metadata_level option:selected').val();
var media_info_export_level = $('#export_media_info_level option:selected').val();
export_custom_metadata_fields.setDisabledOptions([...Array(parseInt(metadata_export_level) + 1).keys()]);
export_custom_media_info_fields.setDisabledOptions([...Array(parseInt(media_info_export_level) + 1).keys()]);
}
$('#export_metadata_level, #export_media_info_level').on('change', setDisabledFields);
function getExportFields() {
$.ajax({
url: 'get_export_fields',
async: true,
data: {
media_type: $('#export_media_type').val(),
sub_media_type: $('#export_sub_media_type').val()
},
success: function (result) {
if (result) {
export_custom_metadata_fields.addOption(result.metadata_fields);
export_custom_media_info_fields.addOption(result.media_info_fields);
setDisabledFields();
}
}
})
}
getExportFields();
$('#export_file_format').on('change', function() {
if ($(this).val() === 'm3u') {
$('#export_metadata_level').prop('disabled', true);
$('#export_media_info_level').prop('disabled', true);
$("#export_thumb_level").prop('disabled', true);
$("#export_art_level").prop('disabled', true);
$("#export_logo_level").prop('disabled', true);
export_custom_metadata_fields.disable();
export_custom_media_info_fields.disable();
} else {
$('#export_metadata_level').prop('disabled', false);
$('#export_media_info_level').prop('disabled', false);
$("#export_thumb_level").prop('disabled', false);
$("#export_art_level").prop('disabled', false);
$("#export_logo_level").prop('disabled', false);
export_custom_metadata_fields.enable();
export_custom_media_info_fields.enable();
}
})
$("#export_metadata").click(function() {
var section_id = $('#export_section_id').val();
var user_id = $('#export_user_id').val();
var rating_key = $('#export_rating_key').val();
var metadata_export_level = $('#export_metadata_level option:selected').val();
var media_info_export_level = $('#export_media_info_level option:selected').val();
var file_format = $('#export_file_format option:selected').val();
var thumb_level = $("#export_thumb_level option:selected").val();
var art_level = $("#export_art_level option:selected").val();
var logo_level = $("#export_logo_level option:selected").val();
var custom_fields = [
$('#export_custom_metadata_fields').val(),
$('#export_custom_media_info_fields').val()
].filter(Boolean).join(',');
var export_type = $('#export_export_type').val()
var individual_files = $('#export_individual_files').is(':checked')
$.ajax({
url: 'export_metadata',
data: {
section_id: section_id,
user_id: user_id,
rating_key: rating_key,
metadata_level: metadata_export_level,
media_info_level: media_info_export_level,
file_format: file_format,
thumb_level: thumb_level,
art_level: art_level,
logo_level: logo_level,
custom_fields: custom_fields,
export_type: export_type,
individual_files: individual_files
},
async: true,
success: function (data) {
if (data.result === 'success') {
$("#nav-tabs-export").click();
redrawExportTable();
showMsg('<i class="fa fa-check"></i> ' + data.message, false, true, 5000);
} else {
showMsg('<i class="fa fa-exclamation-circle"></i> ' + data.message, false, true, 5000, true);
}
}
});
});
</script>

View file

@ -1,7 +1,8 @@
<%inherit file="base.html"/>
<%def name="headIncludes()">
<link rel="stylesheet" href="${http_root}css/dataTables.bootstrap.css">
<link rel="stylesheet" href="${http_root}css/bootstrap-select.min.css">
<link rel="stylesheet" href="${http_root}css/dataTables.bootstrap.min.css">
<link rel="stylesheet" href="${http_root}css/tautulli-dataTables.css">
</%def>
@ -14,17 +15,15 @@
<div class="button-bar">
<div class="btn-group" id="user-selection">
<label>
<select name="graph-user" id="graph-user" class="btn" style="color: inherit;">
<option value="">All Users</option>
<option disabled>&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;</option>
<select name="graph-user" id="graph-user" multiple>
</select>
</label>
</div>
<div class="btn-group" style="margin-right: 2px;" data-toggle="buttons" id="yaxis-selection">
<label class="btn btn-dark">
<label class="btn btn-dark btn-filter">
<input type="radio" name="yaxis-options" id="yaxis-plays" value="plays" autocomplete="off"> Play Count
</label>
<label class="btn btn-dark">
<label class="btn btn-dark btn-filter">
<input type="radio" name="yaxis-options" id="yaxis-duration" value="duration" autocomplete="off"> Play Duration
</label>
</div>
@ -40,17 +39,17 @@
</div>
</div>
</div>
<div class='table-card-back'>
<ul class="nav nav-pills" role="tablist" id="graph-tabs">
<li role="presentation"><a href="#tabs-1" aria-controls="tabs-1" data-toggle="tab" role="tab">Plays by Period</a></li>
<li role="presentation"><a href="#tabs-2" aria-controls="tabs-2" data-toggle="tab" role="tab">Stream Info</a></li>
<li role="presentation"><a href="#tabs-3" aria-controls="tabs-3" data-toggle="tab" role="tab">Play Totals</a></li>
<div class="table-card-back">
<ul class="nav nav-list nav-pills" role="tablist" id="graph-tabs">
<li role="presentation"><a id="nav-tabs-plays" href="#tabs-plays" aria-controls="tabs-plays" data-toggle="tab" role="tab">Media Type</a></li>
<li role="presentation"><a id="nav-tabs-stream" href="#tabs-stream" aria-controls="tabs-stream" data-toggle="tab" role="tab">Stream Type</a></li>
<li role="presentation"><a id="nav-tabs-total" href="#tabs-total" aria-controls="tabs-total" data-toggle="tab" role="tab">Play Totals</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane" id="tabs-1">
<div role="tabpanel" class="tab-pane" id="tabs-plays">
<div class="row">
<div class="col-md-12">
<h4><i class="fa fa-history"></i> Daily <span class="yaxis-text">Play count</span> <small>Last <span class="days">30</span> days</small></h4>
<h4><i class="fa fa-history"></i> Daily <span class="yaxis-text" style="text-transform: lowercase;">play count</span> by media type <small>Last <span class="days">30</span> days</small></h4>
<p class="help-block">
The total play count or duration of tv, movies, and music played per day. Click a graph point to open up a list of items played for that specific date.
</p>
@ -123,10 +122,10 @@
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tabs-2">
<div role="tabpanel" class="tab-pane" id="tabs-stream">
<div class="row">
<div class="col-md-12">
<h4><i class="fa fa-video-camera"></i> Daily Stream type breakdown <small>Last <span class="days">30</span> days</small></h4>
<h4><i class="fa fa-video-camera"></i> Daily <span class="yaxis-text" style="text-transform: lowercase;">play count</span> by stream type <small>Last <span class="days">30</span> days</small></h4>
<p class="help-block">
The total play count or duration of tv, movies, and music by the transcode decision. Click a graph point to open up a list of items played for that specific date.
</p>
@ -138,6 +137,20 @@
</div>
</div>
</div>
<div class="row" id="concurrent-graph">
<div class="col-md-12">
<h4><i class="fa fa-video-camera"></i> Daily concurrent stream count</span> by stream type <small>Last <span class="days">30</span> days</small></h4>
<p class="help-block">
The total count of concurrent streams of tv, movies, and music by the transcode decision.
</p>
<div class="graphs-instance">
<div class="watch-chart" id="graph_concurrent_streams_by_stream_type">
<div class="graphs-load"><i class="fa fa-refresh fa-spin"></i> Loading chart...</div>
<br>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<h4><i class="fa fa-expand-arrows-alt"></i> <span class="yaxis-text">Play count</span> by source resolution <small>Last <span class="days">30</span> days</small></h4>
@ -195,10 +208,10 @@
</div>
</div>
</div>
<div role="tabpanel" class="tab-pane" id="tabs-3">
<div role="tabpanel" class="tab-pane" id="tabs-total">
<div class="row">
<div class="col-md-12">
<h4><i class="fa fa-calendar"></i> Plays by month <small>Last <span class="months">12</span> months</small></h4>
<h4><i class="fa fa-calendar"></i> Total <span class="yaxis-text" style="text-transform: lowercase;">play count</span> by month <small>Last <span class="months">12</span> months</small></h4>
<p class="help-block">
The combined total of tv, movies, and music by month.
</p>
@ -225,9 +238,8 @@
</%def>
<%def name="javascriptIncludes()">
<script src="${http_root}js/moment-with-locale.js"></script>
<script src="${http_root}js/moment-duration-format.js"></script>
<script src="${http_root}js/highcharts/js/highcharts.js"></script>
<script src="${http_root}js/bootstrap-select.min.js"></script>
<script src="${http_root}js/highcharts.min.js"></script>
<script src="${http_root}js/jquery.dataTables.min.js"></script>
<script src="${http_root}js/dataTables.bootstrap.min.js"></script>
<script src="${http_root}js/dataTables.bootstrap.pagination.js"></script>
@ -252,6 +264,7 @@
case "TV": media_type = 'episode'; break;
case "Movies": media_type = 'movie'; break;
case "Music": media_type = 'track'; break;
case "Live TV": media_type = 'live'; break;
case "Direct Play": transcode_decision = 'direct play'; break;
case "Direct Stream": transcode_decision = 'copy'; break;
case "Transcode": transcode_decision = 'transcode'; break;
@ -288,6 +301,10 @@
return obj;
}, {});
if (!("Total" in chart_visibility)) {
chart_visibility["Total"] = false;
}
return data_series.map(function(s) {
var obj = Object.assign({}, s);
obj.visible = (chart_visibility[s.name] !== false);
@ -304,6 +321,25 @@
setLocalStorage(chart_key, JSON.stringify(chart_visibility));
}
function getGraphColors(data_series) {
var colors = {
'TV': '#E5A00D',
'Movies': '#FFFFFF',
'Music': '#F06464',
'Live TV': '#19A0D7',
'Direct Play': '#E5A00D',
'Direct Stream': '#FFFFFF',
'Transcode': '#F06464',
'Max. Concurrent Streams': '#96C83C',
'Total': '#96C83C'
};
var series_colors = [];
$.each(data_series, function(index, series) {
series_colors.push(colors[series.name]);
});
return series_colors;
}
</script>
<script src="${http_root}js/graphs/plays_by_day.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_dayofweek.js${cache_param}"></script>
@ -311,6 +347,7 @@
<script src="${http_root}js/graphs/plays_by_platform.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_user.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_stream_type.js${cache_param}"></script>
<script src="${http_root}js/graphs/concurrent_streams_by_stream_type.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_source_resolution.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_stream_resolution.js${cache_param}"></script>
<script src="${http_root}js/graphs/plays_by_platform_by_stream_type.js${cache_param}"></script>
@ -323,18 +360,37 @@
var yaxis = getLocalStorage('graph_type', 'plays');
var current_day_range = getLocalStorage('graph_days', 30);
var current_month_range = getLocalStorage('graph_months', 12);
var current_tab = '#' + getLocalStorage('graph_tab', 'tabs-1');
var current_tab = '#' + getLocalStorage('graph_tab', 'tabs-plays');
// Update tab values from upgrading
switch (current_tab) {
case '#tabs-1':
current_tab = '#tabs-plays'
break
case '#tabs-2':
current_tab = '#tabs-stream'
break
case '#tabs-3':
current_tab = '#tabs-total'
break
default:
break
}
if (window.location.hash === '#concurrent-graph') {
current_tab = '#tabs-stream';
}
$('#yaxis-' + yaxis).prop('checked', true);
$('#yaxis-' + yaxis).closest('label').addClass('active');
$('#graph-days').val(current_day_range);
$('#graph-months').val(current_month_range);
$('#graph-tabs a[href="' + current_tab + '"]').closest('li').addClass('active');
$(current_tab).addClass('active');
$('#nav-' + current_tab.replace('#', '')).tab('show').trigger('show.bs.tab');
//$(current_tab).addClass('active');
$('.days').html(current_day_range);
$('.months').html(current_month_range);
$('.days').text(current_day_range);
$('.months').text(current_month_range);
// Load user ids and names (for the selector)
$.ajax({
@ -342,14 +398,35 @@
type: 'get',
dataType: "json",
success: function (data) {
var select = $('#graph-user');
let select = $('#graph-user');
let by_id = {};
data.sort(function(a, b) {
return a.friendly_name.localeCompare(b.friendly_name);
});
data.forEach(function(item) {
select.append('<option value="' + item.user_id + '">' +
item.friendly_name + '</option>');
by_id[item.user_id] = item.friendly_name;
});
select.selectpicker({
countSelectedText: function(sel, total) {
if (sel === 0 || sel === total) {
return 'All users';
} else if (sel > 1) {
return sel + ' users';
} else {
return select.val().map(function(id) {
return by_id[id];
}).join(', ');
}
},
style: 'btn-dark',
actionsBox: true,
selectedTextFormat: 'count',
noneSelectedText: 'All users'
});
select.selectpicker('render');
select.selectpicker('selectAll');
}
});
@ -390,6 +467,7 @@
hc_plays_by_day_options.yAxis.min = 0;
hc_plays_by_day_options.xAxis.categories = dateArray;
hc_plays_by_day_options.series = getGraphVisibility(hc_plays_by_day_options.chart.renderTo, data.series);
hc_plays_by_day_options.colors = getGraphColors(data.series);
var hc_plays_by_day = new Highcharts.Chart(hc_plays_by_day_options);
}
});
@ -403,6 +481,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_dayofweek_options.xAxis.categories = data.categories;
hc_plays_by_dayofweek_options.series = getGraphVisibility(hc_plays_by_dayofweek_options.chart.renderTo, data.series);
hc_plays_by_dayofweek_options.colors = getGraphColors(data.series);
var hc_plays_by_dayofweek = new Highcharts.Chart(hc_plays_by_dayofweek_options);
}
});
@ -416,6 +495,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_hourofday_options.xAxis.categories = data.categories;
hc_plays_by_hourofday_options.series = getGraphVisibility(hc_plays_by_hourofday_options.chart.renderTo, data.series);
hc_plays_by_hourofday_options.colors = getGraphColors(data.series);
var hc_plays_by_hourofday = new Highcharts.Chart(hc_plays_by_hourofday_options);
}
});
@ -429,6 +509,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_platform_options.xAxis.categories = data.categories;
hc_plays_by_platform_options.series = getGraphVisibility(hc_plays_by_platform_options.chart.renderTo, data.series);
hc_plays_by_platform_options.colors = getGraphColors(data.series);
var hc_plays_by_platform = new Highcharts.Chart(hc_plays_by_platform_options);
}
});
@ -442,11 +523,12 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_user_options.xAxis.categories = data.categories;
hc_plays_by_user_options.series = getGraphVisibility(hc_plays_by_user_options.chart.renderTo, data.series);
hc_plays_by_user_options.colors = getGraphColors(data.series);
var hc_plays_by_user = new Highcharts.Chart(hc_plays_by_user_options);
}
});
$('#graph-tabs a[href="#tabs-1"]').tab('show')
$('#nav-tabs-plays').tab('show');
}
function loadGraphsTab2(time_range, yaxis) {
@ -478,10 +560,38 @@
hc_plays_by_stream_type_options.yAxis.min = 0;
hc_plays_by_stream_type_options.xAxis.categories = dateArray;
hc_plays_by_stream_type_options.series = getGraphVisibility(hc_plays_by_stream_type_options.chart.renderTo, data.series);
hc_plays_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_stream_type = new Highcharts.Chart(hc_plays_by_stream_type_options);
}
});
$.ajax({
url: "get_concurrent_streams_by_stream_type",
type: 'get',
data: { time_range: time_range, user_id: selected_user_id },
dataType: "json",
success: function(data) {
var dateArray = [];
$.each(data.categories, function (i, day) {
dateArray.push(moment(day, 'YYYY-MM-DD').valueOf());
// Highlight the weekend
if ((moment(day, 'YYYY-MM-DD').format('ddd') == 'Sat') ||
(moment(day, 'YYYY-MM-DD').format('ddd') == 'Sun')) {
hc_plays_by_day_options.xAxis.plotBands.push({
from: i-0.5,
to: i+0.5,
color: 'rgba(80,80,80,0.3)'
});
}
});
hc_concurrent_streams_by_stream_type_options.yAxis.min = 0;
hc_concurrent_streams_by_stream_type_options.xAxis.categories = dateArray;
hc_concurrent_streams_by_stream_type_options.series = getGraphVisibility(hc_concurrent_streams_by_stream_type_options.chart.renderTo, data.series);
hc_concurrent_streams_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_stream_type = new Highcharts.Chart(hc_concurrent_streams_by_stream_type_options);
}
});
$.ajax({
url: "get_plays_by_source_resolution",
type: 'get',
@ -491,6 +601,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_source_resolution_options.xAxis.categories = data.categories;
hc_plays_by_source_resolution_options.series = getGraphVisibility(hc_plays_by_source_resolution_options.chart.renderTo, data.series);
hc_plays_by_source_resolution_options.colors = getGraphColors(data.series);
var hc_plays_by_source_resolution = new Highcharts.Chart(hc_plays_by_source_resolution_options);
}
});
@ -504,6 +615,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_stream_resolution_options.xAxis.categories = data.categories;
hc_plays_by_stream_resolution_options.series = getGraphVisibility(hc_plays_by_stream_resolution_options.chart.renderTo, data.series);
hc_plays_by_stream_resolution_options.colors = getGraphColors(data.series);
var hc_plays_by_stream_resolution = new Highcharts.Chart(hc_plays_by_stream_resolution_options);
}
});
@ -517,6 +629,7 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_platform_by_stream_type_options.xAxis.categories = data.categories;
hc_plays_by_platform_by_stream_type_options.series = getGraphVisibility(hc_plays_by_platform_by_stream_type_options.chart.renderTo, data.series);
hc_plays_by_platform_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_platform_by_stream_type = new Highcharts.Chart(hc_plays_by_platform_by_stream_type_options);
}
});
@ -530,11 +643,12 @@
if (yaxis === 'duration') { dataSecondsToHours(data); }
hc_plays_by_user_by_stream_type_options.xAxis.categories = data.categories;
hc_plays_by_user_by_stream_type_options.series = getGraphVisibility(hc_plays_by_user_by_stream_type_options.chart.renderTo, data.series);
hc_plays_by_user_by_stream_type_options.colors = getGraphColors(data.series);
var hc_plays_by_user_by_stream_type = new Highcharts.Chart(hc_plays_by_user_by_stream_type_options);
}
});
$('#graph-tabs a[href="#tabs-2"]').tab('show')
$('#nav-tabs-stream').tab('show');
}
function loadGraphsTab3(time_range, yaxis) {
@ -553,20 +667,16 @@
hc_plays_by_month_options.yAxis.min = 0;
hc_plays_by_month_options.xAxis.categories = data.categories;
hc_plays_by_month_options.series = getGraphVisibility(hc_plays_by_month_options.chart.renderTo, data.series);
hc_plays_by_month_options.colors = getGraphColors(data.series);
var hc_plays_by_month = new Highcharts.Chart(hc_plays_by_month_options);
}
});
$('#graph-tabs a[href="#tabs-3"]').tab('show')
$('#nav-tabs-total').tab('show');
}
// Set initial state
if (current_tab === '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); }
if (current_tab === '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); }
// Tab1 opened
$('#graph-tabs a[href="#tabs-1"]').on('shown.bs.tab', function (e) {
$('#nav-tabs-plays').on('shown.bs.tab', function (e) {
e.preventDefault();
current_tab = $(this).attr('href');
setLocalStorage('graph_tab', current_tab.replace('#',''));
@ -574,7 +684,7 @@
});
// Tab2 opened
$('#graph-tabs a[href="#tabs-2"]').on('shown.bs.tab', function (e) {
$('#nav-tabs-stream').on('shown.bs.tab', function (e) {
e.preventDefault();
current_tab = $(this).attr('href');
setLocalStorage('graph_tab', current_tab.replace('#',''));
@ -582,7 +692,7 @@
});
// Tab3 opened
$('#graph-tabs a[href="#tabs-3"]').on('shown.bs.tab', function (e) {
$('#nav-tabs-total').on('shown.bs.tab', function (e) {
e.preventDefault();
current_tab = $(this).attr('href');
setLocalStorage('graph_tab', current_tab.replace('#',''));
@ -595,9 +705,9 @@
forceMinMax($(this));
current_day_range = $(this).val();
setLocalStorage('graph_days', current_day_range);
if (current_tab === '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); }
$('.days').html(current_day_range);
if (current_tab === '#tabs-plays') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-stream') { loadGraphsTab2(current_day_range, yaxis); }
$('.days').text(current_day_range);
});
// Month range changed
@ -606,25 +716,36 @@
forceMinMax($(this));
current_month_range = $(this).val();
setLocalStorage('graph_months', current_month_range);
if (current_tab === '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); }
$('.months').html(current_month_range);
if (current_tab === '#tabs-total') { loadGraphsTab3(current_month_range, yaxis); }
$('.months').text(current_month_range);
});
let graph_user_last_id = undefined;
// User changed
$('#graph-user').on('change', function() {
selected_user_id = $(this).val() || null;
if (current_tab === '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); }
if (current_tab === '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); }
let val = $(this).val();
if (val.length === 0 || val.length === $(this).children().length) {
selected_user_id = null; // if all users are selected, just send an empty list
} else {
selected_user_id = val.join(",");
}
if (selected_user_id === graph_user_last_id) {
return;
}
graph_user_last_id = selected_user_id;
if (current_tab === '#tabs-plays') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-stream') { loadGraphsTab2(current_day_range, yaxis); }
if (current_tab === '#tabs-total') { loadGraphsTab3(current_month_range, yaxis); }
});
// Y-axis changed
$('#yaxis-selection').on('change', function() {
yaxis = $('input[name=yaxis-options]:checked', '#yaxis-selection').val();
setLocalStorage('graph_type', yaxis);
if (current_tab === '#tabs-1') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-2') { loadGraphsTab2(current_day_range, yaxis); }
if (current_tab === '#tabs-3') { loadGraphsTab3(current_month_range, yaxis); }
if (current_tab === '#tabs-plays') { loadGraphsTab1(current_day_range, yaxis); }
if (current_tab === '#tabs-stream') { loadGraphsTab2(current_day_range, yaxis); }
if (current_tab === '#tabs-total') { loadGraphsTab3(current_month_range, yaxis); }
});
function setGraphFormat(type) {
@ -639,6 +760,7 @@
if (this.points.length > 1) {
var total = 0;
$.each(this.points, function(i, point) {
if (point.series.name === 'Total') return;
s += '<br/>'+point.series.name+': '+point.y;
total += point.y;
});
@ -665,6 +787,7 @@
if (this.points.length > 1) {
var total = 0;
$.each(this.points, function(i, point) {
if (point.series.name === 'Total') return;
s += '<br/>'+point.series.name+': '+moment.duration(point.y, 'hours').format('D [days] H [hrs] m [mins]');
total += point.y;
});
@ -685,6 +808,7 @@
hc_plays_by_day_options.xAxis.plotBands = [];
hc_plays_by_stream_type_options.xAxis.plotBands = [];
hc_concurrent_streams_by_stream_type_options.xAxis.plotBands = [];
hc_plays_by_day_options.yAxis.labels.formatter = yaxis_format;
hc_plays_by_dayofweek_options.yAxis.labels.formatter = yaxis_format;

View file

@ -1,48 +1,65 @@
<%inherit file="base.html"/>
<%def name="headIncludes()">
<link rel="stylesheet" href="${http_root}css/dataTables.bootstrap.css">
<link rel="stylesheet" href="${http_root}css/bootstrap-select.min.css">
<link rel="stylesheet" href="${http_root}css/dataTables.bootstrap.min.css">
<link rel="stylesheet" href="${http_root}css/dataTables.colVis.css">
<link rel="stylesheet" href="${http_root}css/tautulli-dataTables.css">
</%def>
<%def name="body()">
<div class='container-fluid'>
% if config['database_is_importing']:
<div style="text-align: center; margin-top: 20px;">
<i class="fa fa-refresh fa-spin"></i>&nbsp; Tautulli is importing history from another database. This could take a few minutes depending on the size of your database.
<br />
You may leave this page and check back later.
</div>
% endif
<div class='table-card-header'>
<div class="header-bar">
<span><i class="fa fa-history"></i> History</span>
</div>
<div class="button-bar">
% if _session['user_group'] == 'admin':
<div class="alert alert-danger alert-edit" role="alert" id="row-edit-mode-alert"><i class="fa fa-exclamation-triangle"></i>&nbspSelect rows to delete. Data is deleted upon exiting delete mode.</div>
<div class="alert alert-danger alert-edit" role="alert" id="row-edit-mode-alert"><i class="fa fa-exclamation-triangle"></i>&nbsp</div>
<div class="btn-group">
<button class="btn btn-danger btn-edit" data-toggle="button" aria-pressed="false" autocomplete="off" id="row-edit-mode">
<i class="fa fa-trash-o"></i> Delete mode
</button>&nbsp
</button>
</div>
% endif
% if _session['user_group'] == 'admin':
<div class="btn-group" id="user-selection">
<label>
<select name="history-user" id="history-user" class="btn" style="color: inherit;">
<option value="">All Users</option>
<option disabled>&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;</option>
<select name="history-user" id="history-user" multiple>
</select>
</label>
</div>
% endif
<div class="btn-group" data-toggle="buttons" id="media_type-selection">
<label class="btn btn-dark">
<input type="radio" name="media_type-filter" id="history-all" value="all" autocomplete="off"> All
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="media_type-filter" id="history-media_type-movie" value="movie" autocomplete="off"><i class="fa fa-film"></i> Movies
</label>
<label class="btn btn-dark">
<input type="radio" name="media_type-filter" id="history-movie" value="movie" autocomplete="off"> Movies
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="media_type-filter" id="history-media_type-episode" value="episode" autocomplete="off"><i class="fa fa-television"></i> TV Shows
</label>
<label class="btn btn-dark">
<input type="radio" name="media_type-filter" id="history-episode" value="episode" autocomplete="off"> TV Shows
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="media_type-filter" id="history-media_type-track" value="track" autocomplete="off"><i class="fa fa-music"></i> Music
</label>
<label class="btn btn-dark">
<input type="radio" name="media_type-filter" id="history-track" value="track" autocomplete="off"> Music
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="media_type-filter" id="history-media_type-live" value="live" autocomplete="off"><i class="fa fa-broadcast-tower"></i> Live TV
</label>
</div>
<div class="btn-group" data-toggle="buttons" id="transcode_decision-selection">
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="transcode_decision-filter" id="history-transcode_decision-direct_play" value="direct play" autocomplete="off"><i class="fa fa-play-circle"></i> Direct Play
</label>
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="transcode_decision-filter" id="history-transcode_decision-copy" value="copy" autocomplete="off"><i class="fa fa-stream"></i> Direct Stream
</label>
<label class="btn btn-dark btn-filter">
<input type="checkbox" name="transcode_decision-filter" id="history-transcode_decision-transcode" value="transcode" autocomplete="off"><i class="fa fa-server"></i> Transcode
</label>
</div>
<div class="btn-group">
@ -66,7 +83,7 @@
<th align="left" id="started">Started</th>
<th align="left" id="paused_counter">Paused</th>
<th align="left" id="stopped">Stopped</th>
<th align="left" id="duration">Duration</th>
<th align="left" id="play_duration">Duration</th>
<th align="left" id="percent_complete"></th>
</tr>
</thead>
@ -103,11 +120,11 @@
</%def>
<%def name="javascriptIncludes()">
<script src="${http_root}js/bootstrap-select.min.js"></script>
<script src="${http_root}js/jquery.dataTables.min.js"></script>
<script src="${http_root}js/dataTables.colVis.js"></script>
<script src="${http_root}js/dataTables.bootstrap.min.js"></script>
<script src="${http_root}js/dataTables.bootstrap.pagination.js"></script>
<script src="${http_root}js/moment-with-locale.js"></script>
<script src="${http_root}js/tables/history_table.js${cache_param}"></script>
<script>
$(document).ready(function () {
@ -117,18 +134,41 @@
type: 'GET',
dataType: 'json',
success: function (data) {
var select = $('#history-user');
let select = $('#history-user');
let by_id = {};
data.sort(function (a, b) {
return a.friendly_name.localeCompare(b.friendly_name);
});
data.forEach(function (item) {
select.append('<option value="' + item.user_id + '">' +
item.friendly_name + '</option>');
by_id[item.user_id] = item.friendly_name;
});
select.selectpicker({
countSelectedText: function(sel, total) {
if (sel === 0 || sel === total) {
return 'All users';
} else if (sel > 1) {
return sel + ' users';
} else {
return select.val().map(function(id) {
return by_id[id];
}).join(', ');
}
},
style: 'btn-dark',
actionsBox: true,
selectedTextFormat: 'count',
noneSelectedText: 'All users'
});
select.selectpicker('render');
select.selectpicker('selectAll');
}
});
function loadHistoryTable(media_type, selected_user_id) {
let history_user_last_id = undefined;
function loadHistoryTable(media_type, transcode_decision, selected_user_id) {
history_table_options.ajax = {
url: 'get_history',
type: 'POST',
@ -136,6 +176,7 @@
return {
json_data: JSON.stringify(d),
media_type: media_type,
transcode_decision: transcode_decision,
user_id: selected_user_id
};
}
@ -152,49 +193,75 @@
$('#media_type-selection').on('change', function () {
$('#media_type-selection > label').removeClass('active');
selected_filter = $('input[name=media_type-filter]:checked', '#media_type-selection');
var selected_filter = $('input[name=media_type-filter]:checked', '#media_type-selection');
$(selected_filter).closest('label').addClass('active');
media_type = $(selected_filter).val();
media_type = $(selected_filter).map(function () { return $(this).val(); }).get().join(',');
setLocalStorage('history_media_type', media_type);
history_table.draw();
});
$('#transcode_decision-selection').on('change', function () {
$('#transcode_decision-selection > label').removeClass('active');
var selected_filter = $('input[name=transcode_decision-filter]:checked', '#transcode_decision-selection');
$(selected_filter).closest('label').addClass('active');
transcode_decision = $(selected_filter).map(function () { return $(this).val(); }).get().join(',');
setLocalStorage('history_transcode_decision', transcode_decision);
history_table.draw();
});
$('#history-user').on('change', function () {
selected_user_id = $(this).val() || null;
let val = $(this).val();
if (val.length === 0 || val.length === $(this).children().length) {
selected_user_id = null; // if all users are selected, just send an empty list
} else {
selected_user_id = val.join(",");
}
if (selected_user_id === history_user_last_id) {
return;
}
history_user_last_id = selected_user_id;
history_table.draw();
});
}
var media_type = getLocalStorage('history_media_type', 'all');
var selected_user_id = "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}";
$('#history-' + media_type).prop('checked', true);
$('#history-' + media_type).closest('label').addClass('active');
var media_type = getLocalStorage('history_media_type', 'all');
$.each(media_type.split(','), function (i, item) {
var history_media_type = $('#history-media_type-' + item);
history_media_type.prop('checked', true);
history_media_type.closest('label').addClass('active');
});
loadHistoryTable(media_type, selected_user_id);
var transcode_decision = getLocalStorage('history_transcode_decision', 'all');
$.each(transcode_decision.split(','), function (i, item) {
var history_transcode_decision = $('#history-transcode_decision-' + item.replace(' ', '_'));
history_transcode_decision.prop('checked', true);
history_transcode_decision.closest('label').addClass('active');
});
loadHistoryTable(media_type, transcode_decision, selected_user_id);
% if _session['user_group'] == 'admin':
$('#row-edit-mode').on('click', function() {
$('#row-edit-mode-alert').fadeIn(200);
if ($(this).hasClass('active')) {
$(this).tooltip('destroy');
if (history_to_delete.length > 0) {
$('#deleteCount').text(history_to_delete.length);
$('#confirm-modal-delete').modal();
$('#confirm-modal-delete').one('click', '#confirm-delete', function () {
history_to_delete.forEach(function(row, idx) {
$.ajax({
url: 'delete_history_rows',
type: 'POST',
data: { row_id: row },
async: true,
success: function (data) {
var msg = "History deleted";
showMsg(msg, false, true, 2000);
}
});
$.ajax({
url: 'delete_history_rows',
type: 'POST',
data: { row_ids: history_to_delete.join(',') },
async: true,
success: function (data) {
var msg = "History deleted";
showMsg(msg, false, true, 2000);
history_table.draw();
}
});
history_table.draw();
});
}
@ -204,6 +271,13 @@
});
} else {
$(this).tooltip({
container: '.body-container',
placement: 'bottom',
title: 'Select rows to delete. Data is deleted upon exiting delete mode.',
trigger: 'manual'
}).tooltip('show');
history_to_delete = [];
$('.delete-control').each(function() {
$(this).find('button.btn-danger').toggleClass('btn-warning').toggleClass('btn-danger');

View file

@ -6,7 +6,7 @@
<h4 class="modal-title" id="myModalLabel">
<strong><span id="modal_header_ip_address">
% if data.get('media_type'):
<% h = {'episode': 'TV Show', 'track': 'Music'} %>
<% h = {'episode': 'TV Show', 'track': 'Music', 'live': 'Live TV'} %>
<i class="fa fa-history"></i> ${h.get(data['media_type'], data['media_type'].title())} History for <span id="date-header">${data['start_date']}</span>
% elif data.get('transcode_decision'):
<% h = {'copy': 'Direct Stream'} %>
@ -32,7 +32,7 @@
<th align="left" id="started">Started</th>
<th align="left" id="paused_counter">Paused</th>
<th align="left" id="stopped">Stopped</th>
<th align="left" id="duration">Duration</th>
<th align="left" id="play_duration">Duration</th>
<th align="left" id="percent_complete"></th>
</tr>
</thead>
@ -46,8 +46,9 @@
<script src="${http_root}js/tables/history_table.js${cache_param}"></script>
<script>
$(document).ready(function() {
$('#date-header').html(moment('${data["start_date"]}','YYYY-MM-DD').format('ddd MMM Do YYYY'));
$('#date-header').html(moment('${data["start_date"]}','YYYY-MM-DD').format('ddd MMM Do YYYY'));
$('#history-modal').off('shown.bs.modal').on('shown.bs.modal', function() {
history_table_options.ajax = {
url: 'get_history',
data: function ( d ) {
@ -56,7 +57,8 @@
user_id: "${data['user_id']}",
start_date: "${data['start_date']}",
media_type: "${data.get('media_type') or 'all'}",
transcode_decision: "${data.get('transcode_decision')}"
transcode_decision: "${data.get('transcode_decision')}",
include_activity: false
};
}
};
@ -65,10 +67,6 @@
history_table.columns([0, 3, 4, 5, 9, 11, 12]).visible(false);
clearSearchButton('history_table_modal', history_table);
$('#history-modal').on('shown.bs.modal', function() {
history_table.columns.adjust().draw();
});
});
</script>
% else:

View file

@ -25,7 +25,7 @@ grandparent_thumb Returns location of the item's thumbnail. Use with pms_i
rating_key Returns the unique identifier for the media item.
title Returns the title for the associated stat.
== Only if 'stat_id' is 'top_tv' or 'top_movies' or 'top_music' or 'top_user' or 'top_platform' ==
== Only if 'stat_id' is 'top_tv' or 'top_movies' or 'top_music' or 'top_user' or 'top_platform' or 'top_libraries' ==
total_plays Returns the count for the associated stat.
total_duration Returns the total duration for the associated stat.
@ -53,11 +53,13 @@ DOCUMENTATION :: END
</%doc>
<%!
from plexpy import helpers
from plexpy.helpers import cast_to_int, page
# Human readable duration
def hd(seconds):
m, s = divmod(helpers.cast_to_int(seconds), 60)
m, s = divmod(cast_to_int(seconds), 60)
if s > 30:
m += 1
h, m = divmod(m, 60)
return str(h).zfill(1) + ':' + str(m).zfill(2)
%>
@ -72,11 +74,13 @@ DOCUMENTATION :: END
<div class="dashboard-stats-instance" id="stats-instance-${stat_id}" data-stat_id="${stat_id}">
<div class="dashboard-stats-container">
% if stat_id in ('top_movies', 'popular_movies', 'top_tv', 'popular_tv', 'top_music', 'popular_music', 'last_watched'):
% if row0['art']:
<div id="stats-background-${stat_id}" class="dashboard-stats-background" style="background-image: url(pms_image_proxy?img=${row0['art']}&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art);">
% else:
<div id="stats-background-${stat_id}" class="dashboard-stats-background" style="background-image: url(images/art.png);">
% endif
<% fallback = 'art-live' if row0['live'] else 'art' %>
<div id="stats-background-${stat_id}" class="dashboard-stats-background" style="background-image: url(${page('pms_image_proxy', row0['art'], row0['rating_key'], 500, 280, 40, '282828', 3, fallback=fallback)});">
% elif stat_id == 'top_libraries':
<% fallback = 'art-live' if row0['live'] else row0['library_art'] %>
<div id="stats-background-${stat_id}" class="dashboard-stats-background" style="background-image: url(${page('pms_image_proxy', row0['art'] or row0['library_art'], None, 500, 280, 40, '282828', 3, fallback=fallback)});" data-library_art="${row0['library_art']}">
% elif stat_id == 'top_users':
<div id="stats-background-${stat_id}" class="dashboard-stats-background" data-blurhash="${page('pms_image_proxy', row0['user_thumb'] or 'interfaces/default/images/gravatar-default.png', None, 100, 100, 40, '282828', 0, fallback='user')}">
% elif stat_id == 'top_platforms':
<div id="stats-background-${stat_id}" class="dashboard-stats-background platform-${row0['platform_name']}-rgba no-image">
% else:
@ -85,22 +89,36 @@ DOCUMENTATION :: END
% if stat_id in ('top_movies', 'popular_movies', 'top_tv', 'popular_tv', 'top_music', 'popular_music', 'last_watched'):
<div class="dashboard-stats-poster-container hidden-xs">
% if stat_id in ('top_music', 'popular_music'):
<div id="stats-thumb-${stat_id}-bg" class="dashboard-stats-poster" style="background-image: url(pms_image_proxy?img=${row0['thumb']}&width=300&height=300&opacity=60&background=282828&blur=3&fallback=cover);"></div>
<div id="stats-thumb-${stat_id}-bg" class="dashboard-stats-poster" style="background-image: url(${page('pms_image_proxy', row0['thumb'], row0['rating_key'], 300, 300, 60, '282828', 3, fallback='cover')});"></div>
% endif
<% height, type = ('300', 'cover') if stat_id in ('top_music', 'popular_music') else ('450', 'poster') %>
<% href = 'info?rating_key={}'.format(row0['rating_key']) if row0['rating_key'] else '#' %>
<%
height, fallback = ('450', 'poster')
if stat_id in ('top_music', 'popular_music'):
height, fallback = ('300', 'cover')
elif row0['live']:
height, fallback = ('450', 'poster-live')
href = '#'
if row0['rating_key']:
if row0['live']:
href = page('info', row0['rating_key'], row0['guid'], history=True, live=row0['live'])
else:
href = page('info', row0['rating_key'], history=True)
%>
<a id="stats-thumb-url-${stat_id}" href="${href}" title="${row0['title']}">
% if row0['thumb']:
<div id="stats-thumb-${stat_id}" class="dashboard-stats-${type}" style="background-image: url(pms_image_proxy?img=${row0['thumb']}&width=300&height=${height}&fallback=${type});"></div>
% else:
<div id="stats-thumb-${stat_id}" class="dashboard-stats-${type}" style="background-image: url(images/${type}.png);"></div>
% endif
<div id="stats-thumb-${stat_id}" class="dashboard-stats-${fallback.split('-')[0]}" style="background-image: url(${page('pms_image_proxy', row0['thumb'], row0['grandparent_rating_key'] or row0['rating_key'], 300, height, fallback=fallback)});"></div>
</a>
</div>
% elif stat_id == 'top_libraries':
% if row0['library_thumb'].startswith('http'):
<div id="stats-thumb-${stat_id}" class="dashboard-stats-flat hidden-xs" style="background-image: url(${page('pms_image_proxy', row0['library_thumb'], None, 100, 100, fallback='cover')});"></div>
% else:
<div id="stats-thumb-${stat_id}" class="dashboard-stats-flat svg-icon library-${row0['section_type']} hidden-xs"></div>
% endif
% elif stat_id == 'top_users':
<% user_href = 'user?user_id={}'.format(row0['user_id']) if row0['user_id'] else '#' %>
<a id="stats-thumb-url-${stat_id}" href="${user_href}" title="${row0['friendly_name']}" class="hidden-xs">
<div id="stats-thumb-${stat_id}" class="dashboard-stats-circle" style="background-image: url(${row0['user_thumb'] or 'images/gravatar-default.png'})"></div>
<% user_href = page('user', row0['user_id']) if row0['user_id'] else '#' %>
<a id="stats-thumb-url-${stat_id}" href="${user_href}" title="${row0['user']}" class="hidden-xs">
<div id="stats-thumb-${stat_id}" class="dashboard-stats-circle" style="background-image: url(${page('pms_image_proxy', row0['user_thumb'] or 'interfaces/default/images/gravatar-default.png', None, 100, 100, fallback='user')})"></div>
</a>
% elif stat_id == 'top_platforms':
<div id="stats-thumb-${stat_id}" class="dashboard-stats-flat svg-icon platform-${row0['platform_name']} transparent hidden-xs"></div>
@ -117,7 +135,7 @@ DOCUMENTATION :: END
% elif stat_id.startswith('popular'):
<span class="dashboard-stats-stats-units">users</span>
% elif stat_id == 'last_watched':
<span class="dashboard-stats-stats-units" id="last-watched-header-info">${row0['friendly_name']}</span>
<span class="dashboard-stats-stats-units" id="last-watched-header-info" title="${row0['user']}">${row0['friendly_name']}</span>
% elif stat_id == 'most_concurrent':
<span class="dashboard-stats-stats-units" id="most-concurrent-header-info">streams</span>
% endif
@ -126,26 +144,42 @@ DOCUMENTATION :: END
<div class="dashboard-stats-info scoller-content">
<ul class="list-unstyled dashboard-stats-info-list">
% for row in top_stat['rows']:
<li class="dashboard-stats-info-item ${'expanded' if loop.index == 0 else ''}" data-stat_id="${stat_id}" data-rating_key="${row.get('rating_key')}" data-title="${row.get('title')}"
data-art="${row.get('art')}" data-thumb="${row.get('thumb')}" data-platform="${row.get('platform_name')}"
data-user_id="${row.get('user_id')}" data-friendly_name="${row.get('friendly_name')}" data-user_thumb="${row.get('user_thumb')}"
data-last_watch="${row.get('last_watch')}" data-started="${row.get('started')}">
<li class="dashboard-stats-info-item ${'expanded' if loop.index == 0 else ''}" data-stat_id="${stat_id}"
data-rating_key="${row.get('rating_key')}" data-grandparent_rating_key="${row.get('grandparent_rating_key')}" data-guid="${row.get('guid')}" data-title="${row.get('title')}"
data-art="${row.get('art')}" data-thumb="${row.get('thumb')}" data-platform="${row.get('platform_name')}" data-library-type="${row.get('section_type')}"
data-user_id="${row.get('user_id')}" data-user="${row.get('user')}" data-friendly_name="${row.get('friendly_name')}" data-user_thumb="${row.get('user_thumb')}"
data-last_watch="${row.get('last_watch')}" data-started="${row.get('started')}" data-live="${row.get('live')}"
data-library_art="${row.get('library_art', '')}" data-library_thumb="${row.get('library_thumb', '')}">
<div class="sub-list">${loop.index + 1}</div>
<div class="sub-value">
% if stat_id in ('top_movies', 'popular_movies', 'top_tv', 'popular_tv', 'top_music', 'popular_music', 'last_watched'):
<% href = 'info?rating_key={}'.format(row['rating_key']) if row['rating_key'] else '#' %>
<%
href = '#'
if row['rating_key']:
if row['live']:
href = page('info', row['rating_key'], row['guid'], history=True, live=row['live'])
else:
href = page('info', row['rating_key'], history=True)
%>
<a href="${href}" title="${row['title']}">
${row['title']}
</a>
% elif stat_id == 'top_libraries':
<% library_href = page('library', row['section_id']) %>
<a href="${library_href}" title="${row['section_name']}">
${row['section_name']}
</a>
% elif stat_id == 'top_users':
<% user_href = 'user?user_id={}'.format(row['user_id']) if row['user_id'] else '#' %>
<a href="${user_href}" title="${row['friendly_name']}">
<% user_href = page('user', row['user_id']) if row['user_id'] else '#' %>
<a href="${user_href}" title="${row['user']}">
${row['friendly_name']}
</a>
% elif stat_id == 'top_platforms':
${row['platform']}
% elif stat_id == 'most_concurrent':
${row['title']}
<a href="graphs#concurrent-graph" title="${row['title']}">
${row['title']}
</a>
% endif
</div>
<div class="sub-count">
@ -170,78 +204,6 @@ DOCUMENTATION :: END
</div>
% endif
% endfor
<script>
$('.dashboard-stats-instance .dashboard-stats-info-scroller').scrollbar()
function changeImages(elem) {
var stat_id = $(elem).data('stat_id');
var art = $(elem).data('art');
var thumb = $(elem).data('thumb');
var user_id = $(elem).data('user_id');
var user_thumb = $(elem).data('user_thumb');
var rating_key = $(elem).data('rating_key');
var [height, fallback] = ($.inArray(stat_id, ['top_music', 'popular_music']) > -1) ? [300, 'cover'] : [450, 'poster'];
var href;
if (stat_id == 'most_concurrent') {
return
} else if (stat_id == 'top_users') {
$('#stats-thumb-' + stat_id).css('background-image', 'url(' + (user_thumb || 'images/gravatar-default.png') + ')');
if (user_id) {
href = 'user?user_id=' + user_id;
} else {
href = '#';
}
$('#stats-thumb-url-' + stat_id).attr('href', href).prop('title', $(elem).data('friendly_name'));
} else if (stat_id == 'top_platforms') {
$('#stats-thumb-' + stat_id).removeClass(function (index, className) {
return (className.match (/(^|\s)platform-\S+/g) || []).join(' ');
}).addClass('platform-' + $(elem).data('platform'));
$('#stats-background-' + stat_id).removeClass(function (index, className) {
return (className.match (/(^|\s)platform-\S+/g) || []).join(' ');
}).addClass('platform-' + $(elem).data('platform') + '-rgba');
} else {
if (rating_key) {
href = 'info?rating_key=' + rating_key;
} else {
href = '#';
}
$('#stats-thumb-url-' + stat_id).attr('href', href).prop('title', $(elem).data('title'));
if (art) {
$('#stats-background-' + stat_id).css('background-image', 'url(pms_image_proxy?img=' + art + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art)');
} else {
$('#stats-background-' + stat_id).css('background-image', 'url(images/art.png)');
}
if (thumb) {
$('#stats-thumb-' + stat_id).css('background-image', 'url(pms_image_proxy?img=' + thumb + '&width=300&height=' + height + '&fallback=' + fallback + ')');
$('#stats-thumb-' + stat_id + '-bg').css('background-image', 'url(pms_image_proxy?img=' + thumb + '&width=300&height=' + height + '&opacity=60&background=282828&blur=3&fallback=' + fallback + ')');
} else {
$('#stats-thumb-' + stat_id).css('background-image', 'url(images/' + fallback + '.png)');
$('#stats-thumb-' + stat_id + '-bg').css('background-image', 'url(images/' + fallback + '.png)');
}
}
}
$('.dashboard-stats-info-item').mouseenter(function () {
changeImages(this)
if ($(this).data('stat_id') == 'last_watched') {
var friendly_name = $(this).data('friendly_name');
var last_watch = moment($(this).data('last_watch'), 'X').format(date_format);
$('#last-watched-header-info').html(friendly_name);
} else if ($(this).data('stat_id') == 'most_concurrent') {
var started = moment($(this).data('started'), 'X').format(date_format + ' ' + time_format);
$('#most-concurrent-header-info').html(started);
}
});
$('.dashboard-stats-instance').mouseleave(function () {
changeImages($(this).find('.dashboard-stats-info-item').first())
if ($(this).data('stat_id') == 'last_watched') {
$('#last-watched-header-info').text($(this).find('.dashboard-stats-info-item').first().data('friendly_name'));
} else if ($(this).data('stat_id') == 'most_concurrent') {
$('#most-concurrent-header-info').text('streams');
}
});
</script>
% else:
<div class="text-muted">No stats to show for the selected period.</div><br>
% endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,46 @@
<svg id="livetype" xmlns="http://www.w3.org/2000/svg" width="119.66407" height="40" viewBox="0 0 119.66407 40">
<title>Download_on_the_App_Store_Badge_US-UK_RGB_blk_4SVG_092917</title>
<g>
<g>
<g>
<path d="M110.13477,0H9.53468c-.3667,0-.729,0-1.09473.002-.30615.002-.60986.00781-.91895.0127A13.21476,13.21476,0,0,0,5.5171.19141a6.66509,6.66509,0,0,0-1.90088.627A6.43779,6.43779,0,0,0,1.99757,1.99707,6.25844,6.25844,0,0,0,.81935,3.61816a6.60119,6.60119,0,0,0-.625,1.90332,12.993,12.993,0,0,0-.1792,2.002C.00587,7.83008.00489,8.1377,0,8.44434V31.5586c.00489.3105.00587.6113.01515.9219a12.99232,12.99232,0,0,0,.1792,2.0019,6.58756,6.58756,0,0,0,.625,1.9043A6.20778,6.20778,0,0,0,1.99757,38.001a6.27445,6.27445,0,0,0,1.61865,1.1787,6.70082,6.70082,0,0,0,1.90088.6308,13.45514,13.45514,0,0,0,2.0039.1768c.30909.0068.6128.0107.91895.0107C8.80567,40,9.168,40,9.53468,40H110.13477c.3594,0,.7246,0,1.084-.002.3047,0,.6172-.0039.9219-.0107a13.279,13.279,0,0,0,2-.1768,6.80432,6.80432,0,0,0,1.9082-.6308,6.27742,6.27742,0,0,0,1.6172-1.1787,6.39482,6.39482,0,0,0,1.1816-1.6143,6.60413,6.60413,0,0,0,.6191-1.9043,13.50643,13.50643,0,0,0,.1856-2.0019c.0039-.3106.0039-.6114.0039-.9219.0078-.3633.0078-.7246.0078-1.0938V9.53613c0-.36621,0-.72949-.0078-1.09179,0-.30664,0-.61426-.0039-.9209a13.5071,13.5071,0,0,0-.1856-2.002,6.6177,6.6177,0,0,0-.6191-1.90332,6.46619,6.46619,0,0,0-2.7988-2.7998,6.76754,6.76754,0,0,0-1.9082-.627,13.04394,13.04394,0,0,0-2-.17676c-.3047-.00488-.6172-.01074-.9219-.01269-.3594-.002-.7246-.002-1.084-.002Z" style="fill: #a6a6a6"/>
<path d="M8.44483,39.125c-.30468,0-.602-.0039-.90429-.0107a12.68714,12.68714,0,0,1-1.86914-.1631,5.88381,5.88381,0,0,1-1.65674-.5479,5.40573,5.40573,0,0,1-1.397-1.0166,5.32082,5.32082,0,0,1-1.02051-1.3965,5.72186,5.72186,0,0,1-.543-1.6572,12.41351,12.41351,0,0,1-.1665-1.875c-.00634-.2109-.01464-.9131-.01464-.9131V8.44434S.88185,7.75293.8877,7.5498a12.37039,12.37039,0,0,1,.16553-1.87207,5.7555,5.7555,0,0,1,.54346-1.6621A5.37349,5.37349,0,0,1,2.61183,2.61768,5.56543,5.56543,0,0,1,4.01417,1.59521a5.82309,5.82309,0,0,1,1.65332-.54394A12.58589,12.58589,0,0,1,7.543.88721L8.44532.875H111.21387l.9131.0127a12.38493,12.38493,0,0,1,1.8584.16259,5.93833,5.93833,0,0,1,1.6709.54785,5.59374,5.59374,0,0,1,2.415,2.41993,5.76267,5.76267,0,0,1,.5352,1.64892,12.995,12.995,0,0,1,.1738,1.88721c.0029.2832.0029.5874.0029.89014.0079.375.0079.73193.0079,1.09179V30.4648c0,.3633,0,.7178-.0079,1.0752,0,.3252,0,.6231-.0039.9297a12.73126,12.73126,0,0,1-.1709,1.8535,5.739,5.739,0,0,1-.54,1.67,5.48029,5.48029,0,0,1-1.0156,1.3857,5.4129,5.4129,0,0,1-1.3994,1.0225,5.86168,5.86168,0,0,1-1.668.5498,12.54218,12.54218,0,0,1-1.8692.1631c-.2929.0068-.5996.0107-.8974.0107l-1.084.002Z"/>
</g>
<g id="_Group_" data-name="&lt;Group&gt;">
<g id="_Group_2" data-name="&lt;Group&gt;">
<g id="_Group_3" data-name="&lt;Group&gt;">
<path id="_Path_" data-name="&lt;Path&gt;" d="M24.76888,20.30068a4.94881,4.94881,0,0,1,2.35656-4.15206,5.06566,5.06566,0,0,0-3.99116-2.15768c-1.67924-.17626-3.30719,1.00483-4.1629,1.00483-.87227,0-2.18977-.98733-3.6085-.95814a5.31529,5.31529,0,0,0-4.47292,2.72787c-1.934,3.34842-.49141,8.26947,1.3612,10.97608.9269,1.32535,2.01018,2.8058,3.42763,2.7533,1.38706-.05753,1.9051-.88448,3.5794-.88448,1.65876,0,2.14479.88448,3.591.8511,1.48838-.02416,2.42613-1.33124,3.32051-2.66914a10.962,10.962,0,0,0,1.51842-3.09251A4.78205,4.78205,0,0,1,24.76888,20.30068Z" style="fill: #fff"/>
<path id="_Path_2" data-name="&lt;Path&gt;" d="M22.03725,12.21089a4.87248,4.87248,0,0,0,1.11452-3.49062,4.95746,4.95746,0,0,0-3.20758,1.65961,4.63634,4.63634,0,0,0-1.14371,3.36139A4.09905,4.09905,0,0,0,22.03725,12.21089Z" style="fill: #fff"/>
</g>
</g>
<g>
<path d="M42.30227,27.13965h-4.7334l-1.13672,3.35645H34.42727l4.4834-12.418h2.083l4.4834,12.418H43.438ZM38.0591,25.59082h3.752l-1.84961-5.44727h-.05176Z" style="fill: #fff"/>
<path d="M55.15969,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H48.4302v1.50586h.03418a3.21162,3.21162,0,0,1,2.88281-1.60059C53.645,21.34766,55.15969,23.16406,55.15969,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C52.30227,29.01563,53.24953,27.81934,53.24953,25.96973Z" style="fill: #fff"/>
<path d="M65.12453,25.96973c0,2.81348-1.50586,4.62109-3.77832,4.62109a3.0693,3.0693,0,0,1-2.84863-1.584h-.043v4.48438h-1.8584V21.44238H58.395v1.50586h.03418A3.21162,3.21162,0,0,1,61.312,21.34766C63.60988,21.34766,65.12453,23.16406,65.12453,25.96973Zm-1.91016,0c0-1.833-.94727-3.03809-2.39258-3.03809-1.41992,0-2.375,1.23047-2.375,3.03809,0,1.82422.95508,3.0459,2.375,3.0459C62.26711,29.01563,63.21438,27.81934,63.21438,25.96973Z" style="fill: #fff"/>
<path d="M71.71047,27.03613c.1377,1.23145,1.334,2.04,2.96875,2.04,1.56641,0,2.69336-.80859,2.69336-1.91895,0-.96387-.67969-1.541-2.28906-1.93652l-1.60937-.3877c-2.28027-.55078-3.33887-1.61719-3.33887-3.34766,0-2.14258,1.86719-3.61426,4.51855-3.61426,2.624,0,4.42285,1.47168,4.4834,3.61426h-1.876c-.1123-1.23926-1.13672-1.9873-2.63379-1.9873s-2.52148.75684-2.52148,1.8584c0,.87793.6543,1.39453,2.25488,1.79l1.36816.33594c2.54785.60254,3.60645,1.626,3.60645,3.44238,0,2.32324-1.85059,3.77832-4.79395,3.77832-2.75391,0-4.61328-1.4209-4.7334-3.667Z" style="fill: #fff"/>
<path d="M83.34621,19.2998v2.14258h1.72168v1.47168H83.34621v4.99121c0,.77539.34473,1.13672,1.10156,1.13672a5.80752,5.80752,0,0,0,.61133-.043v1.46289a5.10351,5.10351,0,0,1-1.03223.08594c-1.833,0-2.54785-.68848-2.54785-2.44434V22.91406H80.16262V21.44238H81.479V19.2998Z" style="fill: #fff"/>
<path d="M86.065,25.96973c0-2.84863,1.67773-4.63867,4.29395-4.63867,2.625,0,4.29492,1.79,4.29492,4.63867,0,2.85645-1.66113,4.63867-4.29492,4.63867C87.72609,30.6084,86.065,28.82617,86.065,25.96973Zm6.69531,0c0-1.9541-.89551-3.10742-2.40137-3.10742s-2.40039,1.16211-2.40039,3.10742c0,1.96191.89453,3.10645,2.40039,3.10645S92.76027,27.93164,92.76027,25.96973Z" style="fill: #fff"/>
<path d="M96.18606,21.44238h1.77246v1.541h.043a2.1594,2.1594,0,0,1,2.17773-1.63574,2.86616,2.86616,0,0,1,.63672.06934v1.73828a2.59794,2.59794,0,0,0-.835-.1123,1.87264,1.87264,0,0,0-1.93652,2.083v5.37012h-1.8584Z" style="fill: #fff"/>
<path d="M109.3843,27.83691c-.25,1.64355-1.85059,2.77148-3.89844,2.77148-2.63379,0-4.26855-1.76465-4.26855-4.5957,0-2.83984,1.64355-4.68164,4.19043-4.68164,2.50488,0,4.08008,1.7207,4.08008,4.46582v.63672h-6.39453v.1123a2.358,2.358,0,0,0,2.43555,2.56445,2.04834,2.04834,0,0,0,2.09082-1.27344Zm-6.28223-2.70215h4.52637a2.1773,2.1773,0,0,0-2.2207-2.29785A2.292,2.292,0,0,0,103.10207,25.13477Z" style="fill: #fff"/>
</g>
</g>
</g>
<g id="_Group_4" data-name="&lt;Group&gt;">
<g>
<path d="M37.82619,8.731a2.63964,2.63964,0,0,1,2.80762,2.96484c0,1.90625-1.03027,3.002-2.80762,3.002H35.67092V8.731Zm-1.22852,5.123h1.125a1.87588,1.87588,0,0,0,1.96777-2.146,1.881,1.881,0,0,0-1.96777-2.13379h-1.125Z" style="fill: #fff"/>
<path d="M41.68068,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C44.57522,13.99463,45.01369,13.42432,45.01369,12.44434Z" style="fill: #fff"/>
<path d="M51.57326,14.69775h-.92187l-.93066-3.31641h-.07031l-.92676,3.31641h-.91309l-1.24121-4.50293h.90137l.80664,3.436h.06641l.92578-3.436h.85254l.92578,3.436h.07031l.80273-3.436h.88867Z" style="fill: #fff"/>
<path d="M53.85354,10.19482H54.709v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915h-.88867V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M59.09377,8.437h.88867v6.26074h-.88867Z" style="fill: #fff"/>
<path d="M61.21779,12.44434a2.13346,2.13346,0,1,1,4.24756,0,2.1338,2.1338,0,1,1-4.24756,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C64.11232,13.99463,64.5508,13.42432,64.5508,12.44434Z" style="fill: #fff"/>
<path d="M66.4009,13.42432c0-.81055.60352-1.27783,1.6748-1.34424l1.21973-.07031v-.38867c0-.47559-.31445-.74414-.92187-.74414-.49609,0-.83984.18213-.93848.50049h-.86035c.09082-.77344.81836-1.26953,1.83984-1.26953,1.12891,0,1.76563.562,1.76563,1.51318v3.07666h-.85547v-.63281h-.07031a1.515,1.515,0,0,1-1.35254.707A1.36026,1.36026,0,0,1,66.4009,13.42432Zm2.89453-.38477v-.37646l-1.09961.07031c-.62012.0415-.90137.25244-.90137.64941,0,.40527.35156.64111.835.64111A1.0615,1.0615,0,0,0,69.29543,13.03955Z" style="fill: #fff"/>
<path d="M71.34816,12.44434c0-1.42285.73145-2.32422,1.86914-2.32422a1.484,1.484,0,0,1,1.38086.79h.06641V8.437h.88867v6.26074h-.85156v-.71143h-.07031a1.56284,1.56284,0,0,1-1.41406.78564C72.0718,14.772,71.34816,13.87061,71.34816,12.44434Zm.918,0c0,.95508.4502,1.52979,1.20313,1.52979.749,0,1.21191-.583,1.21191-1.52588,0-.93848-.46777-1.52979-1.21191-1.52979C72.72121,10.91846,72.26613,11.49707,72.26613,12.44434Z" style="fill: #fff"/>
<path d="M79.23,12.44434a2.13323,2.13323,0,1,1,4.24707,0,2.13358,2.13358,0,1,1-4.24707,0Zm3.333,0c0-.97607-.43848-1.54687-1.208-1.54687-.77246,0-1.207.5708-1.207,1.54688,0,.98389.43457,1.55029,1.207,1.55029C82.12453,13.99463,82.563,13.42432,82.563,12.44434Z" style="fill: #fff"/>
<path d="M84.66945,10.19482h.85547v.71533h.06641a1.348,1.348,0,0,1,1.34375-.80225,1.46456,1.46456,0,0,1,1.55859,1.6748v2.915H87.605V12.00586c0-.72363-.31445-1.0835-.97168-1.0835a1.03294,1.03294,0,0,0-1.0752,1.14111v2.63428h-.88867Z" style="fill: #fff"/>
<path d="M93.51516,9.07373v1.1416h.97559v.74854h-.97559V13.2793c0,.47168.19434.67822.63672.67822a2.96657,2.96657,0,0,0,.33887-.02051v.74023a2.9155,2.9155,0,0,1-.4834.04541c-.98828,0-1.38184-.34766-1.38184-1.21582v-2.543h-.71484v-.74854h.71484V9.07373Z" style="fill: #fff"/>
<path d="M95.70461,8.437h.88086v2.48145h.07031a1.3856,1.3856,0,0,1,1.373-.80664,1.48339,1.48339,0,0,1,1.55078,1.67871v2.90723H98.69v-2.688c0-.71924-.335-1.0835-.96289-1.0835a1.05194,1.05194,0,0,0-1.13379,1.1416v2.62988h-.88867Z" style="fill: #fff"/>
<path d="M104.76125,13.48193a1.828,1.828,0,0,1-1.95117,1.30273A2.04531,2.04531,0,0,1,100.73,12.46045a2.07685,2.07685,0,0,1,2.07617-2.35254c1.25293,0,2.00879.856,2.00879,2.27V12.688h-3.17969v.0498a1.1902,1.1902,0,0,0,1.19922,1.29,1.07934,1.07934,0,0,0,1.07129-.5459Zm-3.126-1.45117h2.27441a1.08647,1.08647,0,0,0-1.1084-1.1665A1.15162,1.15162,0,0,0,101.63527,12.03076Z" style="fill: #fff"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="120px" height="120px" viewBox="0 0 120 120" enable-background="new 0 0 120 120" xml:space="preserve">
<g>
<path fill="#BEBEBE" d="M31.161,105.119c4.747-3.413,10.392-5.561,16.939-6.444c2.645,1.983,6.611,2.976,11.9,2.976
c5.288,0,9.255-0.992,11.9-2.976c6.546,0.884,12.192,3.031,16.938,6.444c-8.325,5.336-18.223,8.431-28.838,8.431
C49.385,113.55,39.487,110.455,31.161,105.119z"/>
<path fill="#D6D6D6" d="M48.1,98.675l2.737-8.553C42.241,84.96,36.2,72.758,36.2,58.526c0-7.478,1.669-14.397,4.498-20.029
c3.436,1.059,7.504,1.669,11.864,1.669c10.86,0,19.907-3.795,21.903-8.822c5.676,6.256,9.334,16.104,9.334,27.182
c0,14.232-6.041,26.434-14.637,31.596l2.737,8.553c-2.646,1.983-6.612,2.976-11.9,2.976c-5.248,0-9.194-0.977-11.838-2.929
L48.1,98.675z"/>
<path fill="#A6A6A6" d="M38.763,73.994C33.496,68.09,30.25,60,30.25,51.075C30.25,33.002,43.57,18.35,60,18.35
c16.431,0,29.75,14.65,29.75,32.724c0,8.925-3.247,17.016-8.514,22.92c1.64-4.647,2.563-9.901,2.563-15.468
c0-11.078-3.658-20.925-9.334-27.182c-1.996,5.027-11.043,8.822-21.903,8.822c-4.36,0-8.428-0.611-11.864-1.669
C37.868,44.128,36.2,51.048,36.2,58.526C36.2,64.093,37.124,69.348,38.763,73.994z"/>
<path fill="#D6D6D6" d="M60,113.55c29.575,0,53.55-23.974,53.55-53.55c0-29.575-23.975-53.55-53.55-53.55
C30.425,6.45,6.45,30.425,6.45,60C6.45,89.576,30.425,113.55,60,113.55z M60,119.5C27.138,119.5,0.5,92.86,0.5,60
S27.138,0.5,60,0.5c32.86,0,59.5,26.64,59.5,59.499C119.5,92.86,92.86,119.5,60,119.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

View file

@ -2,7 +2,7 @@
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="${http_root}images/favicon/mstile-150x150.png?v=2.0.5"/>
<square150x150logo src="mstile-150x150.png?v=2.6.0"/>
<TileColor>#282a2d</TileColor>
</tile>
</msapplication>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

After

Width:  |  Height:  |  Size: 997 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 971 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -1,13 +1,17 @@
{
"name": "Tautulli",
"name": "Tautulli: Monitor your Plex Media Server",
"short_name": "Tautulli",
"Description": "A Python based monitoring and tracking tool for Plex Media Server.",
"start_url": "../../",
"scope": "../../",
"icons": [
{
"src": "${http_root}images/favicon/android-chrome-192x192.png?v=2.0.5",
"src": "android-chrome-192x192.png?v=2.6.0",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "${http_root}images/favicon/android-chrome-256x256.png?v=2.0.5",
"src": "android-chrome-256x256.png?v=2.6.0",
"sizes": "256x256",
"type": "image/png"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

View file

@ -1 +1,32 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000" preserveAspectRatio="xMidYMid meet"><g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)" fill="#000000" stroke="none"><path d="M5695 6555 c-135 -34 -244 -94 -342 -189 -40 -39 -73 -76 -73 -83 0 -7 -4 -13 -10 -13 -14 0 -87 -156 -106 -225 -22 -83 -26 -234 -8 -320 17 -79 86 -230 133 -288 l30 -39 -48 -71 c-39 -57 -159 -228 -251 -357 -69 -97 -398 -564 -416 -590 -13 -19 -60 -87 -105 -150 -45 -63 -107 -151 -138 -195 -30 -44 -59 -84 -63 -90 -7 -9 -251 -354 -346 -490 -92 -131 -173 -245 -175 -245 -1 0 -34 9 -72 21 -130 38 -325 31 -454 -18 -168 -63 -313 -196 -385 -354 -39 -87 -65 -183 -68 -256 0 -24 -3 -43 -4 -43 -2 0 -43 46 -91 102 -49 57 -100 117 -115 133 -14 17 -128 149 -253 295 -125 146 -251 292 -279 324 -56 65 -77 89 -108 126 -58 68 -152 178 -172 200 -12 14 -50 57 -83 96 l-61 71 27 44 c58 93 91 217 92 342 2 161 -38 294 -125 412 -133 181 -316 279 -542 292 -470 27 -833 -434 -699 -887 74 -251 275 -437 530 -490 132 -28 334 -6 421 45 l42 24 173 -197 c96 -108 186 -210 200 -227 15 -16 163 -187 330 -380 458 -529 491 -567 526 -605 18 -19 31 -35 30 -36 -6 -5 -265 -161 -277 -167 -8 -4 -34 -20 -58 -35 -194 -124 -634 -382 -651 -382 -12 0 -46 20 -75 44 -60 49 -180 112 -242 127 -21 5 -48 12 -59 15 -11 4 -65 9 -121 11 -81 4 -117 1 -182 -15 -261 -66 -462 -270 -528 -537 -10 -40 -11 -217 -2 -258 5 -23 11 -51 14 -61 29 -145 147 -312 284 -403 123 -82 224 -114 370 -118 83 -3 124 2 240 29 36 9 133 57 187 94 60 41 111 91 153 152 14 19 28 37 32 40 19 15 71 140 89 217 17 73 20 107 16 198 -4 61 -7 121 -9 134 -3 28 -46 0 482 321 179 108 379 228 444 265 104 59 120 65 133 52 13 -13 12 -22 -10 -78 -49 -123 -58 -165 -62 -262 -7 -149 25 -286 89 -383 47 -72 91 -128 125 -158 19 -17 39 -36 45 -42 27 -25 136 -94 150 -94 8 0 17 -4 20 -9 3 -5 16 -11 28 -14 13 -3 50 -12 83 -21 74 -19 278 -15 345 7 198 65 358 196 435 358 16 34 20 36 49 28 17 -4 49 -10 71 -14 22 -3 99 -16 170 -30 72 -13 144 -26 160 -29 28 -5 101 -18 170 -31 17 -3 80 -14 140 -25 61 -11 124 -22 140 -25 17 -4 49 -9 72 -12 40 -5 42 -7 48 -47 14 -98 29 -147 73 -235 36 -75 61 -110 121 -171 154 -154 280 -210 480 -213 134 -2 180 5 273 40 212 83 371 262 427 481 24 93 25 255 2 342 -64 241 -245 428 -481 501 -62 18 -97 23 -200 22 -107 0 -136 -4 -205 -26 -44 -15 -109 -43 -145 -64 -83 -48 -208 -171 -250 -245 -17 -32 -35 -60 -38 -61 -4 -2 -46 4 -93 13 -48 10 -104 20 -125 23 -22 3 -46 8 -54 11 -8 3 -33 7 -55 10 -38 5 -58 9 -122 21 -16 3 -53 10 -83 15 -30 6 -66 12 -79 15 -13 2 -103 19 -200 36 -169 30 -207 42 -196 60 10 16 -28 155 -62 224 -19 39 -54 96 -78 127 l-45 58 40 52 c96 125 143 266 143 433 1 164 -27 263 -108 391 -19 30 -35 57 -35 61 0 3 31 49 69 102 57 81 450 638 625 889 28 40 62 88 76 107 14 18 194 274 400 568 291 414 379 534 393 531 10 -2 27 -6 37 -9 78 -25 240 -29 338 -9 433 87 677 573 489 974 -93 200 -255 332 -478 389 -87 22 -227 25 -304 6z"/></g></svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="350.000000pt" height="350.000000pt" viewBox="0 0 350.000000 350.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,350.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1566 3489 c-433 -46 -867 -274 -1141 -601 -404 -481 -526 -1100
-334 -1688 91 -278 283 -569 498 -756 676 -589 1646 -589 2322 0 215 187 407
478 498 756 142 436 113 895 -84 1305 -320 666 -1027 1061 -1759 984z m1147
-604 c87 -36 146 -118 154 -214 10 -111 -39 -203 -137 -254 -49 -26 -63 -28
-131 -25 l-76 3 -109 -154 c-60 -85 -190 -269 -290 -409 l-181 -255 26 -46
c22 -38 26 -59 26 -121 0 -63 -5 -84 -29 -132 -27 -54 -28 -59 -13 -76 22 -24
47 -86 47 -117 0 -14 6 -28 13 -30 6 -3 91 -16 187 -30 157 -23 175 -24 183
-10 38 68 115 118 199 130 103 15 220 -51 268 -151 26 -52 29 -154 6 -207 -19
-48 -82 -114 -129 -138 -151 -77 -346 22 -373 189 -7 46 15 39 -222 74 -142
20 -155 21 -163 6 -65 -116 -225 -163 -347 -102 -116 58 -167 187 -126 323 8
29 13 55 11 57 -3 3 -65 -33 -138 -79 -74 -46 -162 -100 -196 -120 l-62 -38 6
-47 c11 -100 -46 -207 -136 -254 -43 -23 -66 -28 -121 -28 -77 0 -124 16 -175
62 -48 41 -76 99 -82 167 -7 72 9 129 50 183 85 112 256 132 372 44 l31 -24
174 109 c96 60 180 111 185 113 6 2 -2 16 -16 32 -35 39 -412 468 -414 471 0
1 -21 -5 -45 -13 -57 -20 -142 -14 -196 14 -162 84 -197 288 -71 419 102 108
291 101 386 -14 62 -75 78 -185 40 -273 l-21 -49 23 -28 c13 -16 102 -118 198
-227 l175 -198 20 61 c26 78 64 125 124 155 63 31 117 39 177 26 49 -11 51
-11 72 17 21 26 533 749 548 773 4 6 -4 28 -17 48 -88 133 -44 307 94 376 61
31 163 36 221 11z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

View file

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Livello_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 5435.8 1604"
style="enable-background:new 0 0 5435.8 1604;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#A6A6A6;}
.st2{fill:#FFFFFF;}
.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
.st4{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_1_);}
.st5{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_2_);}
.st6{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_3_);}
.st7{fill-rule:evenodd;clip-rule:evenodd;fill:url(#SVGID_4_);}
.st8{opacity:0.2;fill-rule:evenodd;clip-rule:evenodd;enable-background:new ;}
.st9{opacity:0.12;fill-rule:evenodd;clip-rule:evenodd;enable-background:new ;}
.st10{opacity:0.25;fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;enable-background:new ;}
</style>
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds bottomLeftOrigin="true" height="1604" width="5435.8" x="-2656.9" y="-784"></sliceSourceBounds>
</sfw>
</metadata>
<path class="st0" d="M5234.4,1604h-5033C90.4,1604,0,1513.6,0,1403.5v-1203C0,90,90.4,0,201.4,0h5033c110.9,0,201.4,90,201.4,200.5
v1203C5435.8,1513.6,5345.3,1604,5234.4,1604z"/>
<path class="st1" d="M5234.4,32.1c93.1,0,169.3,75.7,169.3,168.4v1203c0,92.7-75.7,168.4-169.3,168.4h-5033
c-93.1,0-169.3-75.7-169.3-168.4v-1203c0-92.7,75.7-168.4,169.3-168.4C201.4,32.1,5234.4,32.1,5234.4,32.1z M5234.4,0h-5033
C90.4,0,0,90.4,0,200.5v1203C0,1514,90.4,1604,201.4,1604h5033c110.9,0,201.4-90,201.4-200.5v-1203C5435.8,90.4,5345.3,0,5234.4,0z"
/>
<path class="st2" d="M2863.6,530.6c-36.3,0-66.9-12.7-91.1-37.7c-24-24.3-37.4-57.8-36.8-92c0-36.5,12.4-67.4,36.8-91.9
c24.1-25,54.7-37.7,91-37.7c35.9,0,66.5,12.7,91.1,37.7c24.4,25.3,36.8,56.2,36.8,91.9c-0.4,36.6-12.8,67.5-36.8,91.9
C2930.5,518,2899.9,530.6,2863.6,530.6z M1783.5,530.6c-35.5,0-66.3-12.5-91.5-37.2c-25-24.6-37.7-55.7-37.7-92.4
s12.7-67.8,37.7-92.4c24.7-24.7,55.5-37.2,91.5-37.2c17.6,0,34.7,3.5,51.1,10.6c16.1,6.9,29.2,16.3,38.9,27.8l2.4,2.9l-27.1,26.6
l-2.8-3.3c-15.3-18.2-35.8-27.1-62.9-27.1c-24.2,0-45.3,8.6-62.7,25.6c-17.5,17.1-26.4,39.5-26.4,66.6s8.9,49.5,26.4,66.6
c17.4,17,38.5,25.6,62.7,25.6c25.8,0,47.5-8.6,64.4-25.6c10-10,16.2-24,18.4-41.7h-86.9v-37.4h124.2l0.5,3.4
c0.9,6.3,1.8,12.8,1.8,18.8c0,34.5-10.4,62.4-31,83C1851.1,518.2,1820.5,530.6,1783.5,530.6z M3219.6,525.3h-38.3L3064,337.6l1,33.8
v153.8h-38.3V276.7h43.7l1.2,1.9l110.3,176.8l-1-33.7V276.7h38.7V525.3z M2575.8,525.3H2537V314.1h-67.3v-37.4H2643v37.4h-67.3
V525.3z M2438.1,525.3h-38.7V276.7h38.7V525.3z M2220.6,525.3h-38.7V314.1h-67.3v-37.4h173.3v37.4h-67.3V525.3z M2090.1,524.9
h-148.4V276.7h148.4v37.4h-109.6v68.2h98.9v37h-98.9v68.2h109.6V524.9z M2800.9,467.2c17.3,17.3,38.3,26,62.7,26
c25.1,0,45.6-8.5,62.7-26c17-17,25.6-39.3,25.6-66.2s-8.6-49.3-25.5-66.2c-17.3-17.3-38.4-26-62.7-26c-25.1,0-45.6,8.5-62.6,26
c-17,17-25.6,39.3-25.6,66.2S2784,450.3,2800.9,467.2L2800.9,467.2z"/>
<path class="st3" d="M2732.1,872.4c-94.5,0-171.1,71.7-171.1,170.6c0,98,77.1,170.6,171.1,170.6c94.5,0,171.1-72.2,171.1-170.6
C2903.2,944.1,2826.6,872.4,2732.1,872.4z M2732.1,1146c-51.7,0-96.2-42.8-96.2-103.4c0-61.5,44.6-103.4,96.2-103.4
c51.7,0,96.2,41.9,96.2,103.4C2828.4,1103.6,2783.8,1146,2732.1,1146z M2358.8,872.4c-94.5,0-171.1,71.7-171.1,170.6
c0,98,77.1,170.6,171.1,170.6c94.5,0,171.1-72.2,171.1-170.6C2529.9,944.1,2453.2,872.4,2358.8,872.4z M2358.8,1146
c-51.7,0-96.2-42.8-96.2-103.4c0-61.5,44.6-103.4,96.2-103.4c51.7,0,96.2,41.9,96.2,103.4C2455,1103.6,2410.5,1146,2358.8,1146z
M1914.6,924.5v72.2h173.3c-5.3,40.5-18.7,70.4-39.2,90.9c-25.4,25.4-64.6,53-133.7,53c-106.5,0-189.8-86-189.8-192.5
s83.3-192.5,189.8-192.5c57.5,0,99.4,22.7,130.5,51.7l51.2-51.2c-43.2-41.4-100.7-73.1-181.3-73.1c-146.1,0-268.7,119-268.7,264.7
c0,146.1,122.5,264.7,268.7,264.7c78.9,0,138.1-25.8,184.9-74.4c47.7-47.7,62.8-115,62.8-169.3c0-16.9-1.3-32.1-4-45h-244.6
C1914.6,923.6,1914.6,924.5,1914.6,924.5z M3731.5,980.7c-14.3-38.3-57.5-108.7-146.1-108.7c-87.8,0-160.8,69.1-160.8,170.6
c0,95.8,72.2,170.6,169.3,170.6c78,0,123.4-47.7,142.1-75.7l-57.9-38.8c-19.2,28.5-45.9,47.2-83.8,47.2c-38.3,0-65.1-17.4-82.9-51.7
l228.1-94.5C3739.5,999.8,3731.5,980.7,3731.5,980.7z M3498.9,1037.7c-1.8-65.9,51.2-99.4,89.1-99.4c29.9,0,54.8,14.7,63.3,36.1
L3498.9,1037.7z M3313.6,1203h74.9V701.8h-74.9V1203z M3190.6,910.3h-2.7c-16.9-20.1-49-38.3-90-38.3
c-85.1,0-163.5,74.9-163.5,171.1c0,95.8,78,169.8,163.5,169.8c40.5,0,73.1-18.3,90-38.8h2.7v24.5c0,65.1-34.8,100.2-90.9,100.2
c-45.9,0-74.4-33-86-60.6l-65.1,27.2c18.7,45,68.6,100.7,151,100.7c87.8,0,162.2-51.7,162.2-177.8V882.2h-70.8v28.1
C3191.1,910.3,3190.6,910.3,3190.6,910.3z M3104.6,1146c-51.7,0-94.9-43.2-94.9-102.9c0-60.2,43.2-103.8,94.9-103.8
c51.2,0,90.9,44.1,90.9,103.8C3196,1102.8,3155.9,1146,3104.6,1146z M4082.2,701.8h-179.1V1203h74.9v-189.8h104.3
c82.9,0,164.4-60.1,164.4-155.5S4165.5,701.8,4082.2,701.8z M4084.4,943.2h-106.5v-172h106.5c56.1,0,87.8,46.3,87.8,86
C4172.2,896.5,4140.1,943.2,4084.4,943.2z M4546.9,871.5c-54.4,0-110.5,24.1-133.7,76.6l66.4,27.6c14.3-27.6,40.5-37,68.2-37
c38.8,0,78,23.2,78.9,64.6v5.3c-13.4-7.6-42.8-19.2-78-19.2c-71.7,0-144.4,39.2-144.4,112.7c0,67.3,58.8,110.5,124.3,110.5
c50.3,0,78-22.7,95.3-49h2.7v38.8h72.2v-192C4698.8,921,4632.4,871.5,4546.9,871.5z M4537.5,1146c-24.5,0-58.8-12-58.8-42.8
c0-38.8,42.8-53.5,79.3-53.5c33,0,48.6,7.1,68.2,16.9C4620.8,1111.6,4582.8,1145.6,4537.5,1146z M4962.2,882.2l-86,217.4h-2.7
l-89.1-217.4h-80.6l133.7,303.9l-76.2,168.9h78L5045,882.2C5045,882.2,4962.2,882.2,4962.2,882.2z M4288,1203h74.9V701.8H4288V1203z
"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1682.1077" y1="1339.4783" x2="1624.2924" y2="1309.6345" gradientTransform="matrix(11.64 0 0 -22.55 -18705.5957 30554.3691)">
<stop offset="0" style="stop-color:#00A0FF"/>
<stop offset="6.569999e-03" style="stop-color:#00A1FF"/>
<stop offset="0.2601" style="stop-color:#00BEFF"/>
<stop offset="0.5122" style="stop-color:#00D2FF"/>
<stop offset="0.7604" style="stop-color:#00DFFF"/>
<stop offset="1" style="stop-color:#00E3FF"/>
</linearGradient>
<path class="st4" d="M418.4,302.1c-11.6,12.5-18.3,31.6-18.3,56.6v886.7c0,25,6.7,44.1,18.7,56.1l3.1,2.7l496.8-496.8v-11.1
L421.5,299.4C421.5,299.4,418.4,302.1,418.4,302.1z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="1712.6624" y1="1274.8376" x2="1606.5613" y2="1274.8376" gradientTransform="matrix(9.145 0 0 -7.7 -14305.5381 10618.251)">
<stop offset="0" style="stop-color:#FFE000"/>
<stop offset="0.4087" style="stop-color:#FFBD00"/>
<stop offset="0.7754" style="stop-color:#FFA500"/>
<stop offset="1" style="stop-color:#FF9C00"/>
</linearGradient>
<path class="st5" d="M1084,973.5L918.3,807.8v-11.6L1084,630.5l3.6,2.2l196,111.4c56.1,31.6,56.1,83.8,0,115.8l-196,111.4
C1087.6,971.3,1084,973.5,1084,973.5z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="1707.4414" y1="1290.0475" x2="1646.682" y2="1211.2225" gradientTransform="matrix(15.02 0 0 -11.5775 -24650.2285 15829.6484)">
<stop offset="0" style="stop-color:#FF3A44"/>
<stop offset="1" style="stop-color:#C31162"/>
</linearGradient>
<path class="st6" d="M1087.6,971.3L918.3,802l-499.9,499.9c18.3,19.6,49,21.8,83.3,2.7L1087.6,971.3"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="1660.6357" y1="1365.6676" x2="1687.767" y2="1330.4501" gradientTransform="matrix(15.02 0 0 -11.5715 -24650.2285 15809.9922)">
<stop offset="0" style="stop-color:#32A071"/>
<stop offset="6.850000e-02" style="stop-color:#2DA771"/>
<stop offset="0.4762" style="stop-color:#15CF74"/>
<stop offset="0.8009" style="stop-color:#06E775"/>
<stop offset="1" style="stop-color:#00F076"/>
</linearGradient>
<path class="st7" d="M1087.6,632.7L501.7,299.9c-34.3-19.6-65.1-16.9-83.3,2.7L918.3,802L1087.6,632.7z"/>
<path class="st8" d="M1084,967.7l-581.9,330.6c-32.5,18.7-61.5,17.4-80.2,0.4l-3.1,3.1l3.1,2.7c18.7,16.9,47.7,18.3,80.2-0.4
L1088,971.3C1088,971.3,1084,967.7,1084,967.7z"/>
<path class="st9" d="M1283.6,854.1l-200.1,113.6l3.6,3.6l196-111.4c28.1-16,41.9-37,41.9-57.9C1323.3,821.2,1309,839.4,1283.6,854.1
z"/>
<path class="st10" d="M501.7,305.7l781.9,444.2c25.4,14.3,39.7,33,41.9,52.1c0-20.9-13.8-41.9-41.9-57.9L501.7,299.9
c-56.1-32.1-101.6-5.3-101.6,58.8v5.8C400.1,300.3,445.6,274,501.7,305.7z"/>
</svg>

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

@ -1,5 +1,11 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<title>artist</title>
<path fill="#fff" d="M9.201 24.681c0-6.699 0-13.358 0-20.035 7.594-1.505 15.157-3.004 22.768-4.513 0 0.172 0 0.319 0 0.465 0 7.067-0.026 14.135 0.021 21.202 0.010 1.498-0.59 2.57-1.716 3.423-1.999 1.512-4.26 2.145-6.751 1.88-0.504-0.054-1.020-0.205-1.481-0.418-1.502-0.695-1.856-2.122-0.908-3.48 0.826-1.184 1.99-1.924 3.302-2.433 1.362-0.528 2.774-0.843 4.252-0.719 0.324 0.027 0.646 0.084 0.994 0.13 0-4.345 0-8.679 0-13.050-6.062 1.204-12.099 2.404-18.16 3.608 0 0.196 0 0.345 0 0.495 0 5.174-0.006 10.349 0.004 15.523 0.003 1.409-0.802 2.302-1.854 3.056-0.889 0.637-1.859 1.114-2.906 1.426-1.524 0.453-3.067 0.627-4.619 0.169-0.952-0.281-1.789-0.736-2.010-1.83-0.136-0.673 0.098-1.269 0.459-1.822 0.772-1.183 1.947-1.853 3.193-2.388 1.662-0.714 3.394-1.043 5.207-0.698 0.048 0.009 0.099 0.005 0.206 0.010z"></path>
<path fill="#FFFFFF" d="M29.369,0.72H10.271C8.864,0.722,7.726,1.861,7.724,3.267v18.534c-0.771-0.459-1.649-0.703-2.546-0.709
c-2.813,0-5.094,2.281-5.094,5.094s2.281,5.094,5.094,5.094s5.093-2.281,5.093-5.094V10.907h19.099v10.894
c-0.771-0.459-1.649-0.703-2.546-0.709c-2.813,0-5.094,2.281-5.094,5.094s2.281,5.094,5.094,5.094s5.093-2.281,5.093-5.094V3.267
C31.914,1.861,30.775,0.722,29.369,0.72z M10.271,3.267h19.099V8.36H10.271V3.267z"/>
</svg>

Before

Width:  |  Height:  |  Size: 979 B

After

Width:  |  Height:  |  Size: 931 B

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<g>
<polygon fill="none" points="12.252,15.364 9.287,23.717 20.6,23.709 "/>
<path fill="none" d="M13.122,12.92l8.846,8.846l-4.158-11.71c-0.558,0.271-1.175,0.437-1.839,0.437
c-0.66,0-1.276-0.164-1.833-0.434L13.122,12.92z"/>
<path fill="#FFFFFF" d="M19.663,8.28c0.33-0.601,0.529-1.277,0.529-2.008c0-2.333-1.892-4.223-4.222-4.223s-4.222,1.89-4.222,4.223
c0,0.733,0.203,1.412,0.532,2.013l-7.56,21.292c-0.248,0.697,0.047,1.434,0.656,1.654c0.608,0.215,1.305-0.177,1.549-0.865
l1.53-4.309l15.034-0.007l1.532,4.315c0.247,0.688,0.941,1.08,1.549,0.865c0.61-0.221,0.904-0.957,0.658-1.654L19.663,8.28z
M17.81,10.057l4.158,11.71l-8.846-8.846l1.016-2.861c0.557,0.27,1.173,0.434,1.833,0.434
C16.635,10.493,17.252,10.328,17.81,10.057z M12.252,15.364l8.347,8.345L9.287,23.717L12.252,15.364z"/>
<g>
<path fill="#FFFFFF" d="M3.638,1.458C3.189,0.996,2.563,0.875,2.279,1.211c-3.043,3.578-3.045,8.859-0.002,12.44
c0.284,0.335,0.913,0.214,1.362-0.25c0.452-0.462,0.628-1.022,0.424-1.264C1.76,9.428,1.762,5.433,4.064,2.726
C4.267,2.484,4.089,1.924,3.638,1.458z"/>
</g>
<g>
<path fill="#FFFFFF" d="M28.303,1.46c-0.45,0.464-0.626,1.021-0.421,1.261c2.303,2.71,2.3,6.707-0.003,9.412
c-0.205,0.24-0.025,0.802,0.424,1.266c0.448,0.466,1.075,0.586,1.361,0.25c3.044-3.578,3.046-8.86,0.003-12.441
C29.38,0.873,28.753,0.996,28.303,1.46z"/>
</g>
<g>
<path fill="#FFFFFF" d="M8.847,11.926c0.453-0.465,0.687-0.966,0.546-1.132C7.78,8.897,7.781,6.1,9.392,4.205
c0.141-0.167-0.094-0.672-0.545-1.138c-0.448-0.463-1.019-0.639-1.24-0.376c-2.351,2.766-2.353,6.848,0,9.616
C7.826,12.569,8.398,12.39,8.847,11.926z"/>
</g>
<g>
<path fill="#FFFFFF" d="M23.182,11.858c0.45,0.466,1.017,0.642,1.24,0.379c2.353-2.766,2.354-6.849,0.001-9.617
C24.199,2.362,23.63,2.54,23.18,3.004c-0.449,0.464-0.685,0.967-0.542,1.132c1.611,1.896,1.61,4.692-0.001,6.587
C22.495,10.888,22.73,11.393,23.182,11.858z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before After
Before After

View file

@ -1,5 +1,17 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>movie</title>
<path fill="#fff" d="M0 1.416c10.695 0 21.315 0 32 0 0 9.719 0 19.417 0 29.168-10.635 0-21.293 0-32 0 0-9.699 0-19.399 0-29.168zM9.202 15.129c4.535 0 9.065 0 13.609 0 0-3.798 0-7.579 0-11.355-4.563 0-9.075 0-13.609 0 0 3.801 0 7.551 0 11.355zM9.215 28.909c4.581 0 9.093 0 13.61 0 0-3.818 0-7.585 0-11.382-4.549 0-9.062 0-13.61 0 0 3.803 0 7.57 0 11.382zM6.813 5.983c0-0.753 0-1.467 0-2.209-1.138 0-2.235 0-3.33 0 0 0.766 0 1.48 0 2.209 1.131 0 2.21 0 3.33 0zM25.231 3.754c0 0.783 0 1.494 0 2.219 1.141 0 2.235 0 3.33 0 0-0.763 0-1.476 0-2.219-1.12 0-2.198 0-3.33 0zM25.233 12.938c0 0.777 0 1.492 0 2.19 1.149 0 2.248 0 3.335 0 0-0.754 0-1.452 0-2.19-1.116 0-2.197 0-3.335 0zM25.227 22.074c0 0.783 0 1.496 0 2.218 1.139 0 2.235 0 3.335 0 0-0.758 0-1.471 0-2.218-1.119 0-2.196 0-3.335 0zM3.472 26.689c0 0.768 0 1.481 0 2.221 1.133 0 2.226 0 3.34 0 0-0.763 0-1.475 0-2.221-1.119 0-2.197 0-3.34 0zM28.579 26.711c-1.112 0-2.225 0-3.353 0 0 0.749 0 1.462 0 2.202 1.137 0 2.233 0 3.353 0 0-0.748 0-1.447 0-2.202zM6.817 15.155c0-0.774 0-1.468 0-2.21-1.133 0-2.229 0-3.338 0 0 0.761 0 1.473 0 2.21 1.127 0 2.207 0 3.338 0zM3.463 19.73c1.165 0 2.242 0 3.346 0 0-0.759 0-1.469 0-2.189-1.143 0-2.239 0-3.346 0 0 0.748 0 1.446 0 2.189zM28.559 19.733c0-0.764 0-1.479 0-2.188-1.144 0-2.241 0-3.34 0 0 0.752 0 1.448 0 2.188 1.114 0 2.195 0 3.34 0zM6.791 24.304c0-0.798 0-1.511 0-2.215-1.145 0-2.225 0-3.312 0 0 0.766 0 1.481 0 2.215 1.129 0 2.211 0 3.312 0zM3.489 8.378c0 0.771 0 1.464 0 2.145 1.138 0 2.219 0 3.319 0 0-0.74 0-1.431 0-2.145-1.129 0-2.211 0-3.319 0zM28.554 10.538c0-0.775 0-1.464 0-2.137-1.146 0-2.242 0-3.319 0 0 0.747 0 1.438 0 2.137 1.131 0 2.21 0 3.319 0z"></path>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<g id="Layer_1">
<title>artist</title>
</g>
<g id="Layer_2">
<path fill="#FFFFFF" d="M29.508,0.241H2.492c-1.242,0-2.251,1.008-2.251,2.251v27.015c0,1.242,1.009,2.252,2.251,2.252h27.016
c1.242,0,2.251-1.01,2.251-2.252V2.493C31.759,1.25,30.75,0.241,29.508,0.241z M4.744,29.508H2.492v-3.002h2.252V29.508z
M4.744,24.255H2.492v-3.753h2.252V24.255z M4.744,18.252H2.492V14.5h2.252V18.252z M4.744,12.248H2.492V8.496h2.252V12.248z
M4.744,6.245H2.492V2.493h2.252V6.245z M25.005,29.508H6.995V16.75h18.01V29.508z M25.005,14.5H6.995V2.493h18.01V14.5z
M29.508,29.508h-2.252v-3.002h2.252V29.508z M29.508,24.255h-2.252v-3.753h2.252V24.255z M29.508,18.252h-2.252V14.5h2.252V18.252
z M29.508,12.248h-2.252V8.496h2.252V12.248z M29.508,6.245h-2.252V2.493h2.252V6.245z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Before After
Before After

View file

@ -1,6 +1,25 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>photo</title>
<path fill="#fff" d="M25.208 2.266c0 1.514 0 2.976 0 4.513 2.281 0 4.505 0 6.792 0 0 7.681 0 15.287 0 22.955-10.643 0-21.3 0-32 0 0-7.626 0-15.236 0-22.913 2.258 0 4.486 0 6.792 0 0-1.546 0-3.029 0-4.555 6.152 0 12.226 0 18.415 0zM16.008 9.209c-5.026-0.004-9.12 4.079-9.123 9.099-0.004 4.961 4.099 9.069 9.074 9.085 5.022 0.016 9.124-4.047 9.159-9.070 0.035-4.985-4.087-9.109-9.109-9.114z"></path>
<path fill="#fff" d="M20.601 18.292c0.003 2.551-2.070 4.626-4.61 4.613-2.558-0.013-4.595-2.069-4.591-4.634 0.003-2.524 2.038-4.557 4.577-4.572 2.562-0.015 4.621 2.030 4.624 4.593z"></path>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="32px"
height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<g id="Layer_2">
</g>
<g id="Layer_3">
<g>
<path fill="#FFFFFF" d="M30.807,8.975c-0.587-0.596-1.388-0.933-2.224-0.934h-5.158l-0.855-2.599
c-0.207-0.633-0.607-1.184-1.145-1.577c-0.536-0.389-1.18-0.6-1.84-0.6h-7.171c-0.661,0-1.306,0.211-1.84,0.602
C10.037,4.259,9.637,4.811,9.43,5.442L8.573,8.041H3.416C2.579,8.042,1.779,8.379,1.192,8.975c-0.591,0.6-0.923,1.408-0.923,2.25
V25.55c0,0.843,0.332,1.65,0.923,2.25c0.587,0.596,1.387,0.932,2.224,0.934h25.167c0.836-0.002,1.637-0.338,2.224-0.934
c0.591-0.6,0.923-1.407,0.923-2.25V11.225C31.729,10.383,31.397,9.574,30.807,8.975z M29.482,25.55
c0,0.258-0.103,0.497-0.273,0.672c-0.165,0.168-0.391,0.265-0.627,0.266H3.418c-0.237-0.001-0.462-0.098-0.628-0.266
c-0.176-0.181-0.274-0.422-0.273-0.674v-14.32c0-0.258,0.103-0.499,0.273-0.673c0.172-0.173,0.396-0.266,0.627-0.267h6.782
l1.365-4.144c0.063-0.189,0.181-0.351,0.334-0.463c0.152-0.11,0.332-0.169,0.514-0.169h7.175c0.182,0,0.361,0.059,0.514,0.169
c0.153,0.112,0.271,0.273,0.335,0.463l1.363,4.144h6.783c0.23,0,0.456,0.094,0.627,0.267c0.171,0.174,0.272,0.413,0.273,0.671
V25.55z"/>
<path fill="#FFFFFF" d="M16,10.7c-3.764,0-6.813,3.049-6.813,6.812c0,3.765,3.05,6.815,6.813,6.815
c3.763,0,6.813-3.051,6.813-6.815C22.813,13.749,19.763,10.7,16,10.7z M15.999,22.082c-2.523,0-4.568-2.045-4.568-4.568
s2.045-4.569,4.568-4.569c2.524,0,4.569,2.046,4.569,4.569S18.523,22.082,15.999,22.082z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 1.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 875 B

Before After
Before After

View file

@ -1,12 +1,9 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>playlist</title>
<path fill="#fff" d="M9.167 10.268c7.653 0 15.208 0 22.82 0 0 1.147 0 2.268 0 3.451-7.583 0-15.172 0-22.82 0 0-1.134 0-2.274 0-3.451z"></path>
<path fill="#fff" d="M9.14 21.73c0-1.152 0-2.257 0-3.424 7.609 0 15.212 0 22.86 0 0 1.132 0 2.252 0 3.424-7.607 0-15.191 0-22.86 0z"></path>
<path fill="#fff" d="M9.217 5.679c0-1.145 0-2.23 0-3.363 7.562 0 15.101 0 22.683 0 0 1.113 0 2.213 0 3.363-7.539 0-15.080 0-22.683 0z"></path>
<path fill="#fff" d="M9.225 29.708c0-1.132 0-2.214 0-3.336 7.558 0 15.086 0 22.668 0 0 1.086 0 2.186 0 3.336-7.526 0-15.071 0-22.668 0z"></path>
<path fill="#fff" d="M0.007 10.279c1.58 0 3.043 0 4.551 0 0 1.153 0 2.272 0 3.444-1.511 0-3.011 0-4.551 0 0-1.157 0-2.292 0-3.444z"></path>
<path fill="#fff" d="M4.527 2.292c0 1.183 0 2.284 0 3.424-1.496 0-2.957 0-4.479 0 0-1.142 0-2.276 0-3.424 1.51 0 2.971 0 4.479 0z"></path>
<path fill="#fff" d="M4.571 18.3c0 1.151 0 2.254 0 3.416-1.515 0-3.019 0-4.571 0 0-1.127 0-2.247 0-3.416 1.513 0 3.001 0 4.571 0z"></path>
<path fill="#fff" d="M4.54 26.352c0 1.137 0 2.218 0 3.354-1.494 0-2.975 0-4.506 0 0-1.094 0-2.192 0-3.354 1.489 0 2.965 0 4.506 0z"></path>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<path fill="#FFFFFF" d="M0.27,2.892h2.621v2.622H0.27V2.892z M31.729,2.892H8.135v2.622h23.595V2.892z M31.729,10.757H8.135v2.622
h23.595V10.757z M8.135,18.622h23.595v2.621H8.135V18.622z M31.729,26.487H8.135v2.621h23.595V26.487z M2.891,10.757H0.27v2.622
h2.621V10.757z M0.27,18.622h2.621v2.621H0.27V18.622z M2.891,26.487H0.27v2.621h2.621V26.487z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 819 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -1,6 +1,12 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>show</title>
<path fill="#fff" d="M0 26.565c0-8.38 0-16.706 0-25.089 10.661 0 21.307 0 32 0 0 8.343 0 16.686 0 25.089-10.637 0-21.283 0-32 0zM3.514 4.937c0 5.355 0 10.634 0 15.901 8.375 0 16.691 0 24.994 0 0-5.331 0-10.612 0-15.901-8.356 0-16.656 0-24.994 0z"></path>
<path fill="#fff" d="M6.874 30.524c0-0.553 0-1.056 0-1.602 6.084 0 12.136 0 18.25 0 0 0.509 0 1.029 0 1.602-6.050 0-12.12 0-18.25 0z"></path>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<title>artist</title>
<g>
<path fill="#FFFFFF" d="M2.359,1.602h27.281c1.255,0,2.273,1.018,2.273,2.273v19.703c0,1.256-1.019,2.273-2.273,2.273H2.359
c-1.255,0-2.273-1.018-2.273-2.273V3.875C0.086,2.62,1.104,1.602,2.359,1.602z M2.359,23.578h27.281V3.875H2.359V23.578z"/>
<path fill="#FFFFFF" d="M25.094,30.398v-2.273H6.906v2.273H25.094z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 555 B

After

Width:  |  Height:  |  Size: 816 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

@ -1,5 +1,13 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>video</title>
<path fill="#fff" d="M20.662 27.439c-6.971 0-13.797 0-20.662 0 0-7.639 0-15.235 0-22.878 6.846 0 13.672 0 20.588 0 0 2.962 0 5.932 0 9.091 3.87-2.316 7.591-4.542 11.412-6.828 0 6.153 0 12.176 0 18.33-3.769-2.257-7.494-4.488-11.338-6.789 0 3.070 0 6.035 0 9.075z"></path>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<title>artist</title>
<path fill="#FFFFFF" d="M21.619,27.237H2.515c-1.241,0-2.247-1.006-2.247-2.247V7.011c0-1.242,1.006-2.248,2.247-2.248h19.104
c1.24,0,2.247,1.006,2.247,2.248v4.562l6.091-4.349c0.506-0.36,1.207-0.242,1.568,0.263c0.134,0.19,0.206,0.415,0.207,0.647v15.732
c-0.002,0.621-0.509,1.123-1.128,1.119c-0.232-0.001-0.458-0.075-0.647-0.209l-6.091-4.349v4.563
C23.866,26.231,22.859,27.237,21.619,27.237z M2.515,7.011V24.99h19.104v-6.742c0.003-0.621,0.509-1.122,1.129-1.118
c0.231,0,0.457,0.074,0.646,0.208l6.091,4.349V10.314l-6.091,4.349c-0.506,0.36-1.207,0.242-1.568-0.263
c-0.133-0.189-0.206-0.415-0.207-0.647V7.011H2.515z"/>
</svg>

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

View file

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 63 64">
<title>alexa</title>
<path fill="#fff" d="M31.554 1.104c-17.063 0-30.896 13.832-30.896 30.896s13.832 30.896 30.896 30.896 30.896-13.833 30.896-30.896c0-17.063-13.833-30.896-30.896-30.896zM27.506 62.329c0-0.037 0-0.072 0-0.107 0-1.945 0.006-3.89-0.002-5.835-0.006-1.199-0.443-2.224-1.318-3.051-0.459-0.435-1.009-0.711-1.604-0.917-2.669-0.926-5.071-2.316-7.189-4.188-3.006-2.658-5.122-5.897-6.335-9.723-0.313-0.989-0.542-1.997-0.711-3.022-0.185-1.121-0.27-2.25-0.271-3.384-0.001-0.766 0.037-1.532 0.115-2.297 0.283-2.765 1.070-5.374 2.361-7.833 0.836-1.592 1.861-3.053 3.069-4.386 1.705-1.883 3.682-3.414 5.929-4.597 1.777-0.935 3.651-1.605 5.617-2.009 0.649-0.133 1.305-0.237 1.962-0.317 0.94-0.114 1.886-0.13 2.834-0.124 0.691 0.004 1.381 0.042 2.066 0.123 3.624 0.428 6.949 1.663 9.929 3.778 3.997 2.836 6.73 6.604 8.208 11.276 0.313 0.988 0.539 1.999 0.691 3.026 0.092 0.623 0.184 1.247 0.2 1.877 0.021 0.801 0.060 1.603 0.035 2.403-0.021 0.671-0.111 1.34-0.191 2.007-0.148 1.243-0.435 2.456-0.804 3.652-0.745 2.415-1.861 4.653-3.247 6.76-0.863 1.312-1.823 2.551-2.855 3.735-1.409 1.618-2.945 3.108-4.572 4.503-2.165 1.857-4.47 3.523-6.883 5.042-2.011 1.266-4.080 2.43-6.226 3.452-0.143 0.068-0.288 0.135-0.441 0.206-0.123-0.015-0.246-0.031-0.369-0.048z"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1,8 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<title>android</title>
<path fill="#fff" d="M31.944 21.318c5.556 0 11.113 0 16.67 0 0.042 0 0.084-0 0.126 0.001 0.548 0.012 0.554 0.012 0.554 0.555 0.002 2.526 0.001 5.052 0.001 7.577 0 5.789 0.003 11.577-0.002 17.365-0.001 1.197-0.344 2.274-1.205 3.155-0.759 0.777-1.671 1.191-2.753 1.22-0.757 0.019-1.515 0.011-2.273 0.016-0.772 0.005-0.774 0.006-0.774 0.751-0.001 2.505-0.032 5.010 0.013 7.514 0.024 1.305-0.386 2.363-1.302 3.29-1.214 1.23-3.457 1.485-4.769 0.396-1.051-0.873-1.725-1.978-1.715-3.423 0.019-2.547 0.010-5.093 0.003-7.64-0.003-1.010 0.144-0.869-0.858-0.876-1.158-0.008-2.315-0.005-3.473-0.001-0.829 0.003-0.76-0.103-0.76 0.794-0.002 2.505-0.027 5.010 0.010 7.514 0.019 1.278-0.377 2.325-1.281 3.235-1.199 1.208-3.371 1.494-4.716 0.437-1.067-0.838-1.779-1.932-1.77-3.386 0.017-2.61 0.005-5.219 0.005-7.829 0-0.147-0.008-0.295 0-0.442 0.013-0.24-0.092-0.339-0.334-0.335-0.736 0.012-1.473 0.002-2.209 0.022-0.575 0.015-1.129-0.058-1.673-0.251-1.682-0.597-2.691-2.017-2.737-3.858-0.063-2.566-0.031-5.135-0.035-7.703-0.007-5.304-0.010-10.608-0.016-15.912-0.001-0.568-0.017-1.136-0.018-1.704-0-0.464 0.006-0.472 0.494-0.479 0.989-0.013 1.978-0.023 2.968-0.023 4.609-0.002 9.219-0.001 13.829-0.001-0.001 0.006-0.001 0.014-0.001 0.021z"></path>
<path fill="#fff" d="M31.944 19.89c-5.535 0-11.071 0.002-16.606-0.002-0.717-0-0.772 0.153-0.687-0.747 0.189-2.003 0.58-3.948 1.437-5.784 1.041-2.228 2.47-4.152 4.433-5.648 0.864-0.658 1.646-1.43 2.624-1.932 0.216-0.111 0.25-0.23 0.129-0.443-0.363-0.64-0.715-1.286-1.059-1.937-0.441-0.835-0.877-1.674-1.302-2.518-0.247-0.491-0.206-0.765 0.103-0.941 0.342-0.194 0.625-0.077 0.892 0.415 0.721 1.329 1.429 2.664 2.142 3.997 0.069 0.13 0.141 0.258 0.215 0.386 0.226 0.39 0.228 0.394 0.671 0.218 2.478-0.987 5.051-1.43 7.715-1.338 2.143 0.074 4.214 0.501 6.214 1.273 0.118 0.045 0.241 0.081 0.35 0.142 0.186 0.102 0.303 0.067 0.405-0.126 0.534-1.023 1.075-2.043 1.617-3.062 0.297-0.557 0.592-1.115 0.908-1.66 0.189-0.325 0.514-0.408 0.809-0.253 0.292 0.153 0.366 0.43 0.175 0.817-0.39 0.79-0.791 1.575-1.204 2.353-0.383 0.725-0.789 1.438-1.18 2.159-0.19 0.351-0.181 0.348 0.158 0.573 1.666 1.102 3.266 2.297 4.577 3.814 1.895 2.192 3.115 4.723 3.574 7.598 0.119 0.746 0.175 1.503 0.266 2.254 0.038 0.311-0.097 0.421-0.393 0.394-0.146-0.014-0.295-0.002-0.442-0.002-5.514 0-11.028 0-16.543 0zM25.561 12.038c-0.063-1.117-0.623-1.553-1.433-1.566-0.833-0.014-1.419 0.462-1.455 1.603-0.025 0.776 0.66 1.407 1.463 1.409 0.79 0.001 1.421-0.64 1.424-1.445zM39.872 13.483c0.788-0.007 1.497-0.676 1.439-1.441-0.076-0.997-0.486-1.549-1.506-1.576-0.841-0.022-1.403 0.67-1.386 1.605 0.016 0.816 0.635 1.418 1.453 1.411z"></path>
<path fill="#fff" d="M50.587 32.655c0-2.715-0.003-5.429 0.001-8.143 0.003-1.77 0.853-2.959 2.453-3.698 0.717-0.331 1.433-0.52 2.172-0.287 0.794 0.251 1.537 0.649 2.123 1.273 0.519 0.552 0.839 1.207 0.944 1.957 0.052 0.374 0.082 0.754 0.083 1.131 0.005 5.282-0.005 10.564 0.010 15.846 0.004 1.249-0.402 2.288-1.278 3.179-1.245 1.267-3.35 1.546-4.76 0.479-1.076-0.815-1.719-1.943-1.745-3.342-0.019-1.010-0.013-2.020-0.014-3.030-0.002-1.789-0.001-3.578-0.001-5.366 0.004-0 0.008-0 0.012-0z"></path>
<path fill="#fff" d="M13.369 32.464c0 2.335-0.001 4.669 0.001 7.004 0 0.63 0.047 1.263 0.002 1.889-0.072 1.003-0.541 1.811-1.23 2.554-0.931 1.004-2.059 1.18-3.323 1.058-1.55-0.15-3.156-2.028-3.181-3.665-0.004-0.231-0.015-0.462-0.014-0.694 0.003-5.406 0.007-10.812 0.011-16.218 0.001-1.655 0.863-2.749 2.268-3.501 0.683-0.366 1.397-0.602 2.158-0.402 1.622 0.427 3.305 1.697 3.292 3.834-0.016 2.713-0.004 5.427-0.004 8.141 0.007-0 0.013-0 0.020 0z"></path>
<path fill="#fff" d="M46.73 40.88c-0.003 0-0.007 0-0.010 0-1.475 0-2.67-1.195-2.67-2.67s1.195-2.67 2.67-2.67c1.475 0 2.67 1.195 2.67 2.67v0c0 0 0 0 0 0 0 1.471-1.19 2.664-2.659 2.67h-0.001zM17.27 40.88c-1.475 0-2.67-1.195-2.67-2.67s1.195-2.67 2.67-2.67c1.475 0 2.67 1.195 2.67 2.67v0c0 0.003 0 0.007 0 0.010 0 1.469-1.191 2.66-2.66 2.66-0.003 0-0.007 0-0.011 0h0.001zM47.68 24.83l5.32-9.23c0.095-0.159 0.151-0.351 0.151-0.557 0-0.405-0.219-0.76-0.546-0.951l-0.005-0.003c-0.16-0.095-0.354-0.152-0.56-0.152-0.407 0-0.764 0.22-0.957 0.547l-0.003 0.005-5.38 9.34c-4.027-1.851-8.738-2.93-13.7-2.93s-9.673 1.079-13.909 3.016l0.209-0.086-5.39-9.34c-0.204-0.28-0.531-0.46-0.9-0.46-0.613 0-1.11 0.497-1.11 1.11 0 0.167 0.037 0.325 0.103 0.467l-0.003-0.007 5.33 9.23c-9.153 5.047-15.453 14.286-16.323 25.059l-0.007 0.111h64c-0.875-10.883-7.171-20.121-16.158-25.088l-0.162-0.082z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 1 KiB

Before After
Before After

View file

@ -0,0 +1,7 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<title>lg</title>
<path fill="#fff" d="M30.203 31.797c0 8.176-6.654 14.832-14.835 14.82-7.927-0.011-14.818-6.28-14.812-14.838 0.005-8.282 6.541-14.82 14.841-14.803 8.618 0.017 14.807 6.969 14.806 14.822zM26.577 32.388c-0.087 4.433-3.485 9.518-9.37 10.487-6.122 1.008-11.584-2.989-12.814-8.656-0.632-2.912-0.221-5.696 1.362-8.228 2.347-3.754 5.815-5.502 10.222-5.453 0-0.387 0-0.761 0-1.134-4.114-0.281-9.226 1.824-11.763 6.923-2.454 4.932-1.296 10.953 2.811 14.672 4.153 3.762 10.224 4.309 14.953 1.326 2.328-1.468 3.999-3.496 4.997-6.067 0.628-1.617 0.882-3.296 0.813-5.032-2.967 0-5.909 0-8.864 0 0 0.39 0 0.768 0 1.162 2.558-0 5.097-0 7.652-0zM15.991 37.112c0-0.129 0-0.221 0-0.313 0-3.731 0-7.463 0-11.194 0-0.060-0.004-0.119 0-0.179 0.009-0.118-0.038-0.166-0.16-0.163-0.278 0.006-0.556 0.012-0.833-0.002-0.178-0.008-0.237 0.042-0.237 0.23 0.005 4.194 0.005 8.389-0 12.583-0 0.198 0.065 0.239 0.249 0.237 1.224-0.007 2.448-0.004 3.672-0.004 0.072 0 0.143 0 0.244 0 0-0.343-0.008-0.665 0.003-0.987 0.006-0.166-0.050-0.214-0.214-0.212-0.82 0.007-1.641 0.003-2.461 0.003-0.078 0-0.155 0-0.263 0zM12.434 27.068c0.003-0.987-0.799-1.798-1.785-1.805s-1.799 0.796-1.805 1.782c-0.006 0.985 0.799 1.8 1.783 1.805 0.985 0.004 1.804-0.803 1.807-1.783z"></path>
<path fill="#fff" d="M63.467 30.606c0 2.864 0 5.707 0 8.571-1.242 0-2.479 0-3.742 0 0-0.468 0-0.933 0-1.433-0.203 0.226-0.366 0.432-0.553 0.612-0.683 0.656-1.518 1-2.441 1.136-1.187 0.174-2.348 0.075-3.462-0.4-1.234-0.526-2.145-1.407-2.8-2.565-0.599-1.058-0.906-2.207-1.035-3.409-0.148-1.367-0.103-2.723 0.28-4.051 0.797-2.764 2.635-4.391 5.453-4.899 1.534-0.277 3.058-0.208 4.54 0.311 1.243 0.436 2.298 1.139 3.011 2.276 0.431 0.688 0.584 1.467 0.687 2.258 0.013 0.097 0.028 0.195 0.046 0.318-0.064 0.003-0.126 0.010-0.188 0.010-1.389 0.001-2.779-0.002-4.169 0.003-0.151 0.001-0.215-0.034-0.245-0.197-0.229-1.234-1.281-1.773-2.308-1.679-1.182 0.108-1.823 0.859-2.22 1.888-0.211 0.547-0.315 1.12-0.352 1.703-0.066 1.061-0.039 2.117 0.31 3.138 0.211 0.618 0.523 1.173 1.050 1.579 1.371 1.055 3.326 0.436 3.877-1.228 0.090-0.274 0.157-0.557 0.246-0.875-0.112 0-0.182 0-0.251 0-0.794 0-1.588-0.005-2.382 0.004-0.168 0.002-0.213-0.053-0.212-0.214 0.006-0.887 0.005-1.774 0.001-2.66-0.001-0.139 0.019-0.215 0.192-0.215 2.17 0.006 4.341 0.004 6.511 0.004 0.045 0 0.090 0.008 0.157 0.013z"></path>
<path fill="#fff" d="M48.501 35.522c0 1.233 0 2.44 0 3.661-3.613 0-7.216 0-10.834 0 0-4.923 0-9.841 0-14.77 1.44 0 2.872 0 4.331 0 0 0.092 0 0.175 0 0.259 0 3.526 0 7.053 0 10.579 0 0.271 0 0.271 0.267 0.271 1.985 0 3.97 0 5.954 0 0.086 0 0.171 0 0.281 0z"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,5 +1,7 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64">
<title>msedge</title>
<path fill="#fff" d="M21.073 38.209c-0.063 2.074 0.41 3.878 1.361 5.565 1.431 2.539 3.621 4.206 6.229 5.371 3.352 1.497 6.879 2.013 10.532 1.868 4.829-0.191 9.256-1.752 13.531-3.861 0.668-0.33 1.331-0.671 1.997-1.004 0.184-0.092 0.374-0.172 0.644-0.295 0 0.318 0 0.548 0 0.778 0 3.985-0.008 7.969 0.011 11.954 0.002 0.47-0.132 0.709-0.566 0.911-5.329 2.487-10.902 3.954-16.794 4.255-4.831 0.247-9.489-0.409-13.88-2.461-6.848-3.201-11.624-8.311-13.585-15.697-2.89-10.885 1.409-23.494 13.815-28.952 0.206-0.091 0.42-0.163 0.673-0.201-2.549 2.79-3.7 6.149-4.253 9.84 7.489 0 14.89 0 22.367 0 0-0.389 0.036-0.749-0.006-1.099-0.178-1.456-0.27-2.934-0.592-4.358-0.931-4.115-3.56-6.582-7.654-7.478-3.562-0.78-7.126-0.593-10.644 0.252-8.642 2.075-15.514 6.803-20.709 13.995-0.258 0.357-0.49 0.731-0.735 1.097-0.047-0.014-0.094-0.028-0.141-0.041 0.121-0.78 0.22-1.564 0.365-2.339 1.101-5.872 3.411-11.181 7.371-15.71 3.93-4.494 8.775-7.555 14.584-8.928 7.073-1.672 13.991-1.091 20.551 2.144 7.579 3.739 12.387 9.819 14.642 17.935 0.768 2.763 1.141 5.587 1.131 8.459-0.008 2.408-0.002 4.816-0.002 7.223 0 0.23 0 0.461 0 0.774-13.427 0-26.797 0-40.242 0z"></path>
<path fill="#fff" d="M27.374 24.467c0.31-0.182 0.635-0.345 0.965-0.487l0.037-0.015c0.001-0 0.002-0.001 0.003-0.001 0.592-0.25 1.213-0.433 1.844-0.543 0.494-0.086 0.996-0.129 1.495-0.129 1.855 0 3.592 0.591 5.017 1.609-0.35-0.579-0.742-1.141-1.175-1.683-1.129-1.413-2.516-2.664-4.12-3.719-1.083-0.712-2.262-1.331-3.504-1.839-2.715-1.114-5.743-1.703-8.759-1.703-3.885 0-7.654 1.106-10.901 3.198-3.086 1.989-5.566 4.773-7.177 8.055-0.245 1.575-0.369 3.188-0.369 4.798 0 8.102 3.099 15.769 8.727 21.59 5.666 5.863 13.196 9.2 21.301 9.464-0.709-0.233-1.407-0.505-2.093-0.816-2.617-1.183-4.931-2.862-6.878-4.99-0.053-0.056-0.109-0.12-0.166-0.183-3.452-3.863-5.354-8.848-5.354-14.035 0-6.244 2.746-12.13 7.533-16.148 1.109-0.929 2.311-1.744 3.576-2.423z"></path>
<path fill="#fff" d="M62.724 28.806c0.085-0.731 0.129-1.499 0.129-2.285 0-0.728-0.048-1.455-0.142-2.162-0.194-1.445-0.74-3.421-1.391-5.034-1.995-4.943-5.351-9.205-9.707-12.326-5.929-4.249-11.855-6.062-19.813-6.062-13.874 0-25.737 8.96-29.688 21.849 1.488-1.908 3.295-3.562 5.352-4.888 3.489-2.248 7.538-3.437 11.711-3.437 3.209 0 6.434 0.628 9.327 1.815 1.33 0.545 2.595 1.209 3.759 1.973 1.736 1.141 3.24 2.499 4.468 4.035 1.923 2.408 3.107 5.161 3.52 8.182 0.091 0.507 0.137 1.025 0.139 1.539v0.028c0 1.95-0.623 3.794-1.801 5.334-0.247 0.323-0.521 0.634-0.814 0.922-0.014 0.051-0.032 0.165-0.032 0.424 0 0.411 0.18 0.794 0.497 1.058 0.131 0.077 0.265 0.151 0.399 0.221l0.024 0.013c0.017 0.010 0.033 0.019 0.050 0.027l0.035 0.017c2.312 1.216 4.927 1.833 7.773 1.833 4.039 0 7.64-1.020 10.414-2.948 3.289-2.287 5.293-5.789 5.793-10.128z"></path>
<path fill="#fff" d="M57.865 48.926l0.112-0.174c0.023-0.036 0.046-0.071 0.069-0.107 0.011-0.033 0.017-0.068 0.017-0.102 0-0.112-0.058-0.213-0.156-0.271-0.065-0.039-0.14-0.052-0.211-0.040-0.066 0.037-0.133 0.074-0.199 0.109l-0.024 0.013c-0.017 0.010-0.034 0.019-0.051 0.028-3.483 1.886-7.44 2.883-11.446 2.883-4.047 0-8.008-0.864-11.454-2.499-3.369-1.598-6.205-3.906-8.2-6.675-2.063-2.862-3.19-6.176-3.261-9.585-0.009-0.153-0.013-0.309-0.013-0.475 0-0.243 0.010-0.482 0.029-0.712l0.002-0.024c0.061-0.736 0.214-1.452 0.449-2.134-3.683 3.663-5.767 8.634-5.767 13.876 0 4.818 1.767 9.449 4.974 13.039 0.050 0.056 0.098 0.11 0.148 0.164 3.675 4.016 8.888 6.334 14.317 6.371 6.007-1.052 11.532-3.838 15.98-8.059 1.778-1.686 3.353-3.579 4.685-5.627z"></path>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

@ -0,0 +1 @@
<svg viewBox="0 0 1000 560" xmlns="http://www.w3.org/2000/svg" stroke-miterlimit="1.414" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round"><path d="M0 89.996C0 62.384 22.378 40 49.997 40h900.006C977.616 40 1000 62.388 1000 89.996v380.008c0 27.612-22.378 49.996-49.997 49.996H49.997C22.384 520 0 497.612 0 470.004V89.996z" fill="#e1be00"/><path d="M769.68 134.76v94.64c6.03-6.976 12.753-12.181 20.17-15.61 7.419-3.428 18.552-5.157 27.24-5.157 10.01 0 18.685 1.552 26.04 4.667 7.362 3.109 12.967 7.471 16.829 13.08 3.857 5.614 6.172 11.11 6.962 16.485.781 5.377 1.176 16.843 1.176 34.41v81.63c0 17.448-1.176 30.434-3.528 38.981-2.357 8.543-7.881 15.958-16.567 22.23-8.691 6.267-19 9.405-30.952 9.405-8.567 0-19.648-1.857-27.07-5.581-7.424-3.724-14.21-9.314-20.362-16.767l-4.709 18.538h-68.04v-290.95h72.809m-631.58 290.95h75.58v-290.95h-75.58v290.95m199.38-290.95c2.881 17.615 5.9 38.29 9.06 62.01l10.829 73.915 17.505-135.92h98.73v290.95h-65.99l-.239-196.38-26.433 196.38h-47.15l-27.862-192.11-.238 192.11h-66.2v-290.95h97.99m218.36 0c36.581 0 57.629 1.681 70.52 5.03 12.895 3.347 22.705 8.847 29.419 16.504 6.719 7.657 10.915 16.181 12.595 25.567 1.677 9.39 2.752 27.843 2.752 55.36v102.18c0 26.08-1.461 43.519-3.918 52.31-2.462 8.8-6.748 15.676-12.862 20.638-6.124 4.962-13.676 8.433-22.672 10.404-9 1.977-22.551 2.962-40.657 2.962h-91.57v-290.95h56.39m239.33 220.35c0 14.08-.7 22.977-2.096 26.677-1.4 3.704-7.485 5.566-12.1 5.566-4.5 0-7.5-1.786-9.02-5.371-1.519-3.581-2.272-11.757-2.272-24.538v-76.891c0-13.257.667-21.519 2-24.809 1.333-3.277 4.248-4.924 8.743-4.924 4.609 0 10.796 1.871 12.376 5.633 1.576 3.762 2.367 11.795 2.367 24.09v74.57m-203.37-167.99c2.986 1.728 4.901 4.457 5.734 8.157.833 3.709 1.257 12.138 1.257 25.29v112.8c0 19.371-1.257 31.23-3.767 35.595-2.509 4.371-9.2 6.548-20.06 6.548v-190.99c8.234 0 13.852.866 16.838 2.6"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="560" viewBox="0 0 560 560">
<g fill="none" transform="translate(33 140)">
<path fill="#FFF" d="M43.8020066,267.3152 L281.745403,290.797105 C286.539148,305.7344 292.894623,320.31421 302.004138,331.0528 L71.7380852,300.927619 C61.4905377,294.175695 50.8770689,281.050362 43.8020066,267.3152 Z M266.684852,192.017143 C267.285384,212.923048 270.116459,239.981562 275.03101,263.034133 L33.8766098,243.950705 C26.3585902,221.21181 24.03,207.991848 22.1723803,189.066133 L266.684852,192.017143 Z M275.03101,89.3083429 C270.116459,112.360914 267.285384,139.419429 266.684852,160.325333 L22.1723803,163.276343 C24.03,144.350629 26.3585902,131.130667 33.8766098,108.391771 L275.03101,89.3083429 Z M302.004138,21.2896762 C292.894623,32.030019 286.539148,46.6080762 281.745403,61.5471238 L43.8020066,85.0272762 C50.8770689,71.2921143 61.4905377,58.1685333 71.7380852,51.4148571 L302.004138,21.2896762 Z"/>
<path fill="#00641E" d="M303.565869,264.667352 C306.720846,256.846476 317.903331,252.081752 325.93259,252.63901 C334.515108,253.234819 343.631626,262.264838 345.224872,271.145905 C345.520761,270.823467 345.830656,270.518552 346.145803,270.218895 C348.901593,267.583314 352.35421,265.834438 356.132479,265.352533 C355.554708,262.790552 355.416393,260.048076 355.812079,257.233752 C357.207482,247.3328 365.145698,239.907962 374.234203,239.981562 C380.099449,240.028876 385.245108,243.032457 388.597928,247.646476 C388.897318,247.271467 389.228223,246.928 389.550374,246.577524 C393.384669,226.586362 395.814807,203.999924 396.368066,180.030857 C398.267705,97.6111238 377.375174,30.2776381 349.70522,29.6397714 C322.033515,29.0001524 298.061292,95.2962286 296.161652,177.715962 C296.161652,177.715962 294.696216,207.778057 303.565869,264.667352"/>
<path fill="#FFD700" d="M490.910577,354.797562 C492.545843,352.0656 493.45977,348.7904 493.396741,345.310171 C493.927239,334.065143 486.214879,323.871543 475.484105,325.000076 C475.794,323.713829 475.997095,322.376762 476.075882,320.997638 C476.718433,309.733333 468.957049,300.025143 458.739266,299.315429 C458.515161,299.30141 458.294557,299.2944 458.072203,299.28739 C459.134951,296.492343 459.661948,293.371352 459.47461,290.06461 C458.945862,280.692876 452.488839,272.796648 444.088407,271.242286 C441.054236,270.681524 438.111108,270.960152 435.416597,271.894171 C432.870905,265.617143 427.525652,260.961067 421.023108,259.977981 C420.508367,249.786133 413.153174,241.397486 403.68299,240.740343 C397.728452,240.326781 392.257141,243.064 388.597928,247.646476 C385.245108,243.032457 380.099449,240.030629 374.234203,239.983314 C365.145698,239.907962 357.207482,247.3328 355.812079,257.235505 C355.416393,260.048076 355.554708,262.790552 356.132479,265.354286 C352.35421,265.834438 348.901593,267.585067 346.145803,270.218895 C345.830656,270.518552 345.520761,270.823467 345.224872,271.145905 C343.631626,262.264838 334.515108,253.236571 325.93259,252.63901 C317.903331,252.081752 306.575528,256.963886 303.565869,264.667352 C304.885987,278.101105 313.275915,314.72061 343.621121,347.570743 L343.890748,347.590019 C346.816367,350.239619 350.636656,351.699352 354.709062,351.33661 C357.233744,351.110552 359.558833,350.206324 361.56177,348.811429 L362.050249,348.844724 C364.720249,350.700495 367.929502,351.671314 371.320839,351.369905 C372.616446,351.254248 373.852525,350.942324 375.027325,350.497219 C377.933685,356.51139 384.41522,360.398171 391.649607,359.760305 C397.25223,359.266133 402.014459,356.164419 404.81402,351.799238 L405.720944,351.862324 C408.517003,354.636343 412.233993,356.252038 416.24337,356.131124 C419.557672,361.149943 425.645272,364.237638 432.363167,363.647086 C434.893102,363.424533 437.254957,362.692038 439.361193,361.582781 C442.875089,365.90941 448.642289,368.481905 454.969751,367.924648 C461.22543,367.376152 466.509403,363.904686 469.384249,359.104914 C472.208321,361.374248 475.746728,362.592152 479.503987,362.257448 C483.149193,361.931505 486.38821,360.208914 488.821849,357.603124 L489.228039,357.631162 C489.781298,356.828571 490.25402,356.006705 490.693475,355.177829 C490.70398,355.162057 490.712734,355.144533 490.721489,355.128762 C490.781016,355.018362 490.854551,354.909714 490.910577,354.797562"/>
<path fill="#04A53C" d="M281.745403,61.5471238 L43.8020066,85.0272762 C50.8770689,71.2921143 61.4905377,58.1685333 71.7380852,51.4148571 L302.004138,21.2896762 C292.894623,32.030019 286.539148,46.6080762 281.745403,61.5471238 Z M302.004138,331.0528 L71.7380852,300.927619 C61.4905377,294.175695 50.8770689,281.050362 43.8020066,267.316952 L281.745403,290.797105 C286.539148,305.7344 292.894623,320.31421 302.004138,331.0528 Z M33.8766098,243.950705 C26.3585902,221.21181 24.03,207.9936 22.1723803,189.066133 L266.684852,192.017143 C267.285384,212.923048 270.116459,239.981562 275.03101,263.034133 L33.8766098,243.950705 Z M33.8766098,108.391771 L275.03101,89.3083429 C270.116459,112.360914 267.285384,139.419429 266.684852,160.327086 L22.1723803,163.276343 C24.03,144.350629 26.3585902,131.130667 33.8766098,108.391771 Z M378.597246,25.7126857 C363.342354,7.93478095 352.390977,-0.411809524 343.010085,0.672914286 C341.261016,0.895466667 76.1168852,37.8952381 76.1168852,37.8952381 C34.0429377,42.1780571 0.416695082,103.32739 0,176.172114 C0.416695082,249.015086 34.0429377,310.164419 76.1168852,314.44899 C76.1168852,314.44899 341.758249,351.583695 343.010085,351.669562 C345.228374,351.655543 347.418649,351.357638 349.57741,350.803886 C347.476426,350.178286 345.538269,349.083048 343.890748,347.590019 L343.621121,347.570743 C313.275915,314.722362 304.885987,278.101105 303.565869,264.667352 C303.56937,264.656838 303.576374,264.648076 303.579875,264.637562 C303.576374,264.648076 303.56937,264.656838 303.565869,264.667352 C294.696216,207.778057 296.161652,177.715962 296.161652,177.715962 C298.061292,95.2962286 322.033515,29.0001524 349.70522,29.638019 C377.375174,30.2776381 398.267705,97.6111238 396.368066,180.030857 C395.814807,203.999924 393.384669,226.586362 389.550374,246.577524 C393.489718,242.226362 398.773692,240.393371 403.68299,240.740343 C404.586413,240.805181 405.465325,240.957638 406.326728,241.155657 C423.131095,149.125867 405.514348,59.262019 378.597246,25.7126857 Z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="560"><g fill="none"><path fill="#FFF" d="M370.57 474.214l23.466-237.956c14.93-4.796 29.498-11.15 40.23-20.262L404.16 446.278c-6.748 10.248-19.863 20.86-33.59 27.936zm-78.197 21.631l2.947-244.528c20.894-.599 47.933-3.43 70.97-8.346l-19.07 241.17c-22.724 7.518-35.934 9.848-54.847 11.704zm-99.694-252.874c23.038 4.916 50.077 7.747 70.971 8.346l2.948 244.528c-18.914-1.856-32.123-4.186-54.847-11.705l-19.072-241.17zm-67.974-26.975c10.732 9.112 25.3 15.466 40.23 20.262l23.464 237.956c-13.726-7.075-26.84-17.688-33.59-27.936l-30.104-230.282z"/><path fill="gold" d="M118.905 157.445c1.357 28.827 72.771 51.677 160.578 51.176 76.687-.438 140.659-18.546 156.329-42.336a22.976 22.976 0 00-14.058-7.426c.06-.7.098-1.406.095-2.122-.065-11.4-8.429-20.788-19.327-22.54.287-1.474.438-2.999.43-4.559-.072-12.696-10.426-22.928-23.124-22.856-.287.001-.568.036-.853.049a22.911 22.911 0 001.254-7.56c-.074-12.697-10.425-22.93-23.123-22.858a22.914 22.914 0 00-8.247 1.6c-3.632-6.835-10.606-11.6-18.737-12.149-1.416-11.4-11.157-20.195-22.93-20.129-7.41.042-13.963 3.6-18.136 9.065-4.233-4.605-10.3-7.494-17.047-7.456-12.698.072-22.932 10.424-22.86 23.118a22.983 22.983 0 001.115 6.946 22.918 22.918 0 00-13.07 7.459c-2.644-9.847-11.637-17.084-22.314-17.024-9.975.057-18.406 6.47-21.537 15.366-8.474 3.426-14.439 11.738-14.383 21.433.012 2.154.342 4.227.907 6.202a22.876 22.876 0 00-9.328-1.932c-10.012.058-18.47 6.516-21.574 15.465a22.83 22.83 0 00-9.788-2.149c-12.698.072-22.934 10.422-22.86 23.118a22.833 22.833 0 003.159 11.463c-.202.203-.379.426-.571.636"/><path fill="#FA320A" d="M404.161 446.278c-6.749 10.248-19.864 20.86-33.59 27.936l23.465-237.956c14.93-4.796 29.498-11.15 40.23-20.262L404.16 446.278zM347.22 484.14c-22.723 7.519-35.934 9.85-54.847 11.705l2.947-244.528c20.894-.599 47.933-3.43 70.973-8.346L347.22 484.14zm-135.47 0l-19.07-241.17c23.037 4.917 50.076 7.748 70.97 8.347l2.948 244.528c-18.914-1.856-32.123-4.186-54.847-11.705zm-56.94-37.862l-30.105-230.282c10.732 9.112 25.3 15.466 40.23 20.262l23.464 237.956c-13.726-7.075-26.84-17.688-33.588-27.936zm247.668-321.143c.298 1.453.465 2.955.473 4.498a23.018 23.018 0 01-.43 4.56c10.9 1.749 19.263 11.137 19.328 22.54a23.59 23.59 0 01-.095 2.12 22.976 22.976 0 0114.058 7.425c-15.669 23.792-79.642 41.9-156.327 42.34-87.807.502-159.221-22.346-160.58-51.175.192-.208.37-.433.57-.634-1.355-2.311-2.29-4.887-2.773-7.62-8.408 7.979-13.495 14.412-12.6 23.78.085 1.251 37.196 266.911 37.196 266.911 4.282 42.075 65.391 75.703 138.187 76.12 72.796-.417 133.907-34.045 138.187-76.12 0 0 37.11-265.66 37.197-266.912 1.777-18.736-20.15-35.745-52.39-47.833z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 190.24 81.52"><defs><linearGradient id="a" y1="40.76" x2="190.24" y2="40.76" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#90cea1"/><stop offset=".56" stop-color="#3cbec9"/><stop offset="1" stop-color="#00b3e5"/></linearGradient></defs><g data-name="Layer 2"><path d="M105.67 36.06h66.9a17.67 17.67 0 0017.67-17.66A17.67 17.67 0 00172.57.73h-66.9A17.67 17.67 0 0088 18.4a17.67 17.67 0 0017.67 17.66zm-88 45h76.9a17.67 17.67 0 0017.67-17.66 17.67 17.67 0 00-17.67-17.67h-76.9A17.67 17.67 0 000 63.4a17.67 17.67 0 0017.67 17.66zm-7.26-45.64h7.8V6.92h10.1V0h-28v6.9h10.1zm28.1 0h7.8V8.25h.1l9 27.15h6l9.3-27.15h.1V35.4h7.8V0H66.76l-8.2 23.1h-.1L50.31 0h-11.8zm113.92 20.25a15.07 15.07 0 00-4.52-5.52 18.57 18.57 0 00-6.68-3.08 33.54 33.54 0 00-8.07-1h-11.7v35.4h12.75a24.58 24.58 0 007.55-1.15 19.34 19.34 0 006.35-3.32 16.27 16.27 0 004.37-5.5 16.91 16.91 0 001.63-7.58 18.5 18.5 0 00-1.68-8.25zM145 68.6a8.8 8.8 0 01-2.64 3.4 10.7 10.7 0 01-4 1.82 21.57 21.57 0 01-5 .55h-4.05v-21h4.6a17 17 0 014.67.63 11.66 11.66 0 013.88 1.87A9.14 9.14 0 01145 59a9.87 9.87 0 011 4.52 11.89 11.89 0 01-1 5.08zm44.63-.13a8 8 0 00-1.58-2.62 8.38 8.38 0 00-2.42-1.85 10.31 10.31 0 00-3.17-1v-.1a9.22 9.22 0 004.42-2.82 7.43 7.43 0 001.68-5 8.42 8.42 0 00-1.15-4.65 8.09 8.09 0 00-3-2.72 12.56 12.56 0 00-4.18-1.3 32.84 32.84 0 00-4.62-.33h-13.2v35.4h14.5a22.41 22.41 0 004.72-.5 13.53 13.53 0 004.28-1.65 9.42 9.42 0 003.1-3 8.52 8.52 0 001.2-4.68 9.39 9.39 0 00-.55-3.18zm-19.42-15.75h5.3a10 10 0 011.85.18 6.18 6.18 0 011.7.57 3.39 3.39 0 011.22 1.13 3.22 3.22 0 01.48 1.82 3.63 3.63 0 01-.43 1.8 3.4 3.4 0 01-1.12 1.2 4.92 4.92 0 01-1.58.65 7.51 7.51 0 01-1.77.2h-5.65zm11.72 20a3.9 3.9 0 01-1.22 1.3 4.64 4.64 0 01-1.68.7 8.18 8.18 0 01-1.82.2h-7v-8h5.9a15.35 15.35 0 012 .15 8.47 8.47 0 012.05.55 4 4 0 011.57 1.18 3.11 3.11 0 01.63 2 3.71 3.71 0 01-.43 1.92z" fill="url(#a)" data-name="Layer 1"/></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg width="48" height="48" fill="none" xmlns="http://www.w3.org/2000/svg"><rect y="8" width="48" height="32" rx="2" fill="#333"/><path d="M5.708 12.19c-.375-.065-.75-.128-1.125-.19h-.509s-.269.139-.373.178c-1.334.496-1.835 1.26-1.671 2.693.724 6.411 1.453 12.822 2.201 19.238.214 1.845 1.126 2.564 2.98 2.36a92.817 92.817 0 003.233-.427c.427-.062.853-.123 1.28-.182 2.169-.3 4.337-.603 6.505-.905 2.168-.303 4.336-.605 6.505-.905.917-.13 1.552-.64 1.75-1.503.022-.093.047-.19.072-.287.172-.667.365-1.418-.275-1.919-3.327-2.588-3.332-7.64-.024-10.234.168-.129.347-.382.351-.58.03-.918.04-1.84-.02-2.757-.074-1.12-.743-1.81-1.874-1.964-2.444-.33-4.887-.657-7.331-.983-3.055-.409-6.11-.817-9.165-1.233-.842-.116-1.676-.259-2.51-.4zm17.102 5.026c.73 0 1.334.585 1.344 1.31.01.708-.59 1.333-1.309 1.363a1.341 1.341 0 01-1.363-1.29 1.306 1.306 0 011.328-1.383zM7.628 24.148H6.309v-.997h.258v.705h.268v-.62h.257v.62h.278v-.714h.258v1.006zm-.53.61h.53v-.288H6.309v.288h.52v.535h-.52v.288h1.319v-.288h-.53v-.535zm.53 1.448H6.577v-.402h-.268v1.091h.268v-.402h1.05v-.287z" fill="#227D3A"/><path d="M32.023 20.36v-3.545h2.613v13.298c-.64-.024-1.281-.04-1.92-.055-1.499-.037-2.992-.074-4.476-.213-1.26-.119-2.127-1.016-2.717-2.122-1.156-2.177-.704-5.047 1.175-6.476.664-.5 1.611-.718 2.469-.852.62-.1 1.258-.078 1.931-.056.3.01.608.02.925.02zm-.045 2.087c-.24 0-.473-.003-.7-.006a21.007 21.007 0 00-1.377.011c-1.324.075-2.142.962-2.261 2.395-.13 1.517.58 2.752 1.84 2.985.558.103 1.136.116 1.718.129.26.005.52.011.78.025v-5.539zm13.879 4.012c-.56 2.062-1.87 3.351-4.026 3.495-1.295.086-2.6.065-3.917.044a104.6 104.6 0 00-1.776-.019v-13.14h2.633v3.516l.858-.001a193.42 193.42 0 011.582 0c2.727.026 4.086 1.126 4.705 3.789l.002.005c.016.08.21 1.017-.061 2.31zm-7.026 1.507c.343-.025.693-.016 1.04-.008 1.166.03 2.293.058 2.981-1.207.6-1.1.65-2.355-.084-3.401-.717-1.016-1.725-.969-2.746-.92-.399.018-.8.037-1.186-.008-.005 1.885-.005 3.665-.005 5.544zM12.04 20.522c-.436-.002-.88-.004-1.333-.004 0-1.06-.015-2.94-.015-2.94v-.595s-1.87-.03-2.712-.03v3.417l-1.626.015s-.065 1.551-.065 2.236h1.726v2.25c-.003.894-.005 1.788.015 2.683.024 1.166.738 2.286 1.71 2.455.752.13 1.518.165 2.291.201.344.016.69.032 1.036.057V28.11c-.137 0-.27.001-.398.003-.29.003-.56.005-.831-.008-.556-.025-1.042-.303-1.066-.853a71.029 71.029 0 01-.027-3.284c.003-.45.007-.904.007-1.362.269 0 .53.002.787.004.6.005 1.174.01 1.746-.014.481-.02.704.174.873.61.64 1.666 1.304 3.327 1.983 4.978.072.174.135.363.2.554.187.556.38 1.126.767 1.37.436.272 1.11.192 1.745.117.152-.018.303-.035.447-.048.273-.024.654-.262.758-.5a625.204 625.204 0 003.207-7.381l.468-1.088a2.38 2.38 0 00.128-.43c.019-.08.04-.168.065-.264-.244 0-.478.002-.704.005-.502.006-.965.012-1.423-.015-.476-.025-.719.148-.888.59a178.161 178.161 0 01-1.542 3.872c-.172.43-.358.853-.559 1.312-.105.24-.214.49-.328.756l-.135-.308a9.371 9.371 0 01-.163-.381c-.18-.486-.364-.972-.546-1.458a215.63 215.63 0 01-1.368-3.704c-.178-.5-.426-.694-.971-.68-1.072.029-2.144.024-3.258.02z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="560"><g fill="none"><path fill="#FA320A" d="M478.29 296.976c-3.99-63.966-36.52-111.823-85.468-138.579.278 1.56-1.109 3.508-2.688 2.818-32.016-14.006-86.328 31.32-124.282 7.584.285 8.519-1.378 50.072-59.914 52.483-1.382.056-2.142-1.355-1.268-2.354 7.828-8.929 15.732-31.535 4.367-43.586-24.338 21.81-38.472 30.017-85.138 19.186-29.878 31.241-46.809 74-43.485 127.265 6.78 108.735 108.63 170.89 211.193 164.49 102.556-6.395 193.466-80.572 186.683-189.307"/><path fill="#00912D" d="M291.375 132.293c21.075-5.023 81.693-.49 101.114 25.274 1.166 1.545-.475 4.468-2.355 3.648-32.016-14.006-86.328 31.32-124.282 7.584.285 8.519-1.378 50.072-59.914 52.483-1.382.056-2.142-1.355-1.268-2.354 7.828-8.929 15.73-31.535 4.367-43.586-26.512 23.758-40.884 31.392-98.426 15.838-1.883-.508-1.241-3.535.762-4.298 10.876-4.157 35.515-22.361 58.824-30.385 4.438-1.526 8.862-2.71 13.18-3.4-25.665-2.293-37.235-5.862-53.559-3.4-1.789.27-3.004-1.813-1.895-3.241 21.995-28.332 62.513-36.888 87.512-21.837-15.41-19.094-27.48-34.321-27.48-34.321l28.601-16.246s11.817 26.4 20.414 45.614c21.275-31.435 60.86-34.336 77.585-12.033.992 1.326-.045 3.21-1.702 3.171-13.612-.331-21.107 12.05-21.675 21.466l.197.023"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="560"><path fill="#0AC855" d="M445.185 444.684c-79.369 4.167-95.587-86.652-126.726-86.006-13.268.279-23.726 14.151-19.133 30.32 2.525 8.888 9.53 21.923 13.944 30.011 15.57 28.544-7.447 60.845-34.383 63.577-44.76 4.54-63.433-21.426-62.278-48.007 1.3-29.84 26.6-60.331.65-73.305-27.194-13.597-49.301 39.572-75.325 51.439-23.553 10.741-56.248 2.413-67.872-23.741-8.164-18.379-6.68-53.768 29.67-67.27 22.706-8.433 73.305 11.029 75.9-13.623 2.992-28.416-53.155-30.812-70.06-37.626-29.912-12.055-47.567-37.85-33.734-65.522 10.378-20.757 40.915-29.203 64.223-20.11 27.922 10.892 32.404 39.853 46.71 51.897 12.324 10.38 29.19 11.68 40.22 4.543 8.135-5.265 10.843-16.828 7.774-27.39-4.07-14.023-14.875-22.773-25.415-31.346-18.758-15.249-45.24-28.36-29.222-69.983 13.13-34.11 51.642-35.34 51.642-35.34 15.3-1.72 29.002 2.9 40.167 12.875 14.927 13.335 17.834 31.16 15.336 50.176-2.283 17.358-8.426 32.56-11.63 49.759-3.717 19.966 6.954 40.086 27.249 40.869 26.694 1.031 34.698-19.486 37.964-32.492 4.782-19.028 11.058-36.694 28.718-47.82 25.346-15.97 60.552-12.47 76.886 18.222 12.92 24.284 8.772 57.715-11.047 75.97-8.892 8.188-19.584 11.075-31.148 11.156-16.585.117-33.162-.29-48.556 7.471-10.48 5.281-15.047 13.888-15.045 25.423 0 11.242 5.853 18.585 15.336 23.363 17.86 9.003 37.577 10.843 56.871 14.222 27.98 4.9 52.581 14.755 68.375 40.72.142.228.28.458.415.69 18.139 30.741-.831 75.005-36.476 76.878"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -24,17 +24,13 @@
</div>
<div id="currentActivity">
% if PLEX_SERVER_UP:
<div class="text-muted" id="dashboard-checking-activity"><i class="fa fa-refresh fa-spin"></i> Checking for activity...</div>
<div class="text-muted" id="dashboard-checking-activity"><i class="fa fa-refresh fa-spin"></i>&nbsp; Checking for activity...</div>
% elif config['pms_is_cloud']:
<div id="dashboard-no-activity" class="text-muted">Plex Cloud server is sleeping.</div>
% elif not config['first_run_complete']:
<div id="dashboard-no-activity" class="text-muted">The Tautulli setup wizard has not been completed. Please click <a href="welcome">here</a> to go to the setup wizard.</div>
% else:
<div id="dashboard-no-activity" class="text-muted">There was an error communicating with your Plex Server.
% if _session['user_group'] == 'admin':
Check the <a href="logs">logs</a> and verify your server connection in the <a href="settings#tab_tabs-plex_media_server">settings</a>.
% endif
</div>
<div class="text-muted" id="dashboard-checking-activity"><i class="fa fa-refresh fa-spin"></i>&nbsp; Tautulli is connecting to the Plex server...</div>
% endif
</div>
</div>
@ -46,10 +42,10 @@
<h3 class="pull-left">Watch Statistics</h3>
<div class="button-bar">
<div class="btn-group pull-left" data-toggle="buttons" id="watch-stats-toggles" style="margin-right: 3px">
<label class="btn btn-dark">
<label class="btn btn-dark btn-filter">
<input type="radio" class="watched-stats-toggle" name="watched-stats-type" id="watched-stats-plays" value="plays" autocomplete="off"> Play Count
</label>
<label class="btn btn-dark">
<label class="btn btn-dark btn-filter">
<input type="radio" class="watched-stats-toggle" name="watched-stats-type" id="watched-stats-duration" value="duration" autocomplete="off"> Play Duration
</label>
</div>
@ -65,7 +61,7 @@
<div class="row">
<div class="col-md-12">
<div id="home-stats" class="home-platforms">
<div class="text-muted"><i class="fa fa-refresh fa-spin"></i> Loading stats...</div>
<div class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Loading stats...</div>
<br>
</div>
</div>
@ -84,7 +80,7 @@
<div class="row">
<div class="col-md-12">
<div id="library-stats" class="library-platforms">
<div class="text-muted"><i class="fa fa-refresh fa-spin"></i> Loading stats...</div>
<div class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Loading stats...</div>
<br>
</div>
</div>
@ -96,27 +92,27 @@
<h3 class="pull-left"><span id="recently-added-xml">Recently Added</span></h3>
<ul class="nav nav-header nav-dashboard pull-right" style="margin-top: -3px;">
<li>
<a href="#" id="recently-added-page-left" class="paginate btn-gray disabled" data-id="+1"><i class="fa fa-lg fa-chevron-left"></i></a>
<a href="#" id="recently-added-page-left" class="paginate-added btn-gray disabled" data-id="-1"><i class="fa fa-lg fa-chevron-left"></i></a>
</li>
<li>
<a href="#" id="recently-added-page-right" class="paginate btn-gray disabled" data-id="-1"><i class="fa fa-lg fa-chevron-right"></i></a>
<a href="#" id="recently-added-page-right" class="paginate-added btn-gray disabled" data-id="+1"><i class="fa fa-lg fa-chevron-right"></i></a>
</li>
</ul>
<div class="button-bar">
<div class="btn-group pull-left" data-toggle="buttons" id="recently-added-toggles" style="margin-right: 3px">
<label class="btn btn-dark" id="recently-added-label-all">
<label class="btn btn-dark btn-filter" id="recently-added-label-all">
<input type="radio" name="recently-added-toggle" id="recently-added-toggle-all" value="all" autocomplete="off"> All
</label>
<label class="btn btn-dark" id="recently-added-label-movies">
<label class="btn btn-dark btn-filter" id="recently-added-label-movies">
<input type="radio" name="recently-added-toggle" id="recently-added-toggle-movie" value="movie" autocomplete="off"> Movies
</label>
<label class="btn btn-dark" id="recently-added-label-tv">
<label class="btn btn-dark btn-filter" id="recently-added-label-tv">
<input type="radio" name="recently-added-toggle" id="recently-added-toggle-show" value="show" autocomplete="off"> TV Shows
</label>
<label class="btn btn-dark" id="recently-added-label-music">
<label class="btn btn-dark btn-filter" id="recently-added-label-music">
<input type="radio" name="recently-added-toggle" id="recently-added-toggle-artist" value="artist" autocomplete="off"> Music
</label>
<label class="btn btn-dark" id="recently-added-label-other_video">
<label class="btn btn-dark btn-filter" id="recently-added-label-other_video">
<input type="radio" name="recently-added-toggle" id="recently-added-toggle-other_video" value="other_video" autocomplete="off"> Videos
</label>
</div>
@ -132,17 +128,12 @@
<div class="col-md-12">
<div id="recentlyAdded" style="margin-right: -15px;">
% if PLEX_SERVER_UP:
<div class="text-muted"><i class="fa fa-refresh fa-spin"></i> Looking for new items...</div>
<div id="dashboard-checking-recently-added" class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Looking for new items...</div>
% elif config['pms_is_cloud']:
<div class="text-muted">Plex Cloud server is sleeping.</div>
% else:
<div class="text-muted">There was an error communicating with your Plex Server.
% if _session['user_group'] == 'admin':
Check the <a href="logs">logs</a> and verify your server connection in the <a href="settings#tab_tabs-plex_media_server">settings</a>.
% endif
</div>
<div id="dashboard-no-recently-added" class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Tautulli is connecting to your Plex server...</div>
% endif
<br>
</div>
</div>
</div>
@ -179,10 +170,10 @@
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-remove"></i></button>
<h4 class="modal-title">Terminate Session</h4>
<h4 class="modal-title">Terminate Stream</h4>
</div>
<div class="modal-body" style="text-align: center;">
<p>Are you sure you want to terminate this session?</p>
<p>Are you sure you want to terminate this stream?</p>
<p>
<strong>
<span id="terminate-user"></span><br />
@ -229,8 +220,6 @@
</%def>
<%def name="javascriptIncludes()">
<% from plexpy import PLEX_SERVER_UP %>
<script src="${http_root}js/moment-with-locale.js"></script>
<script src="${http_root}js/jquery.scrollbar.min.js"></script>
<script src="${http_root}js/jquery.mousewheel.min.js"></script>
<script>
@ -260,8 +249,43 @@
}
});
}
% if _session['user_group'] == 'admin':
var msg_settings = ' Check the <a href="logs">logs</a> and verify your server connection in the <a href="settings#tab_tabs-plex_media_server">settings</a>.';
% else:
var msg_settings = '';
% endif
var error_msg = 'There was an error communicating with your Plex Server.' + msg_settings;
% if 'current_activity' in config['home_sections'] or 'recently_added' in config['home_sections']:
var server_status;
server_status = setInterval(function() {
$.getJSON('server_status', function (data) {
if (data.connected === true) {
clearInterval(server_status);
% if 'current_activity' in config['home_sections']:
$('#currentActivity').html('<div id="dashboard-checking-activity" class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Checking for activity...</div>');
activityConnected();
% endif
% if 'recently_added' in config['home_sections']:
$('#recentlyAdded').html('<div id="dashboard-checking-recently-added" class="text-muted"><i class="fa fa-refresh fa-spin"></i>&nbsp; Looking for new items...</div>');
recentlyAddedConnected();
% endif
} else if (data.connected === false) {
clearInterval(server_status);
% if 'current_activity' in config['home_sections']:
$('#currentActivity').html('<div id="dashboard-no-activity" class="text-muted">' + error_msg + '</div>');
% endif
% if 'recently_added' in config['home_sections']:
$('#recentlyAdded').html('<div id="dashboard-no-recently-added" class="text-muted">' + error_msg + '</div>');
% endif
}
});
}, 1000);
% endif
</script>
% if 'current_activity' in config['home_sections'] and PLEX_SERVER_UP:
% if 'current_activity' in config['home_sections']:
<script>
var defaultHandler = {
get: function(target, name) {
@ -272,7 +296,9 @@
var create_instances = [];
var activity_ready = true;
$('#currentActivityHeader-bandwidth-tooltip').tooltip({ container: 'body', placement: 'right', delay: 50 });
$('#currentActivityHeader-bandwidth-tooltip').tooltip({ container: 'body', placement: 'right', delay: 50 });
var title = document.title;
function getCurrentActivity() {
activity_ready = false;
@ -298,13 +324,8 @@
}
if (!(current_activity)) {
% if _session['user_group'] == 'admin':
var msg_settings = ' Check the <a href="logs">logs</a> and verify your server connection in the <a href="settings#tab_tabs-plex_media_server">settings</a>.';
% else:
var msg_settings = '';
% endif
$('#currentActivityHeader').hide();
$('#currentActivity').html('<div id="dashboard-no-activity" class="text-muted">There was an error communicating with your Plex Server.' + msg_settings + '</div>');
$('#currentActivity').html('<div id="dashboard-no-activity" class="text-muted">' + error_msg + '</div>');
return
}
@ -334,13 +355,13 @@
streams_header = streams_header.replace(/, $/, '') + ')';
$('#currentActivityHeader-streams').text(streams_header);
var bandwidth_header = ((total_bw > 1000) ? ((total_bw / 1000).toFixed(1) + ' Mbps') : (total_bw + ' kbps'));
var bandwidth_header = ((total_bw > 1000000) ? ((total_bw / 1000000).toFixed(1) + ' Gbps') : ((total_bw > 1000) ? ((total_bw / 1000).toFixed(1) + ' Mbps') : (total_bw + ' kbps')));
var lan_wan_bandwidth_header = '';
if (lan_bw) {
lan_wan_bandwidth_header += 'LAN: ' + ((lan_bw > 1000) ? ((lan_bw / 1000).toFixed(1) + ' Mbps') : (lan_bw + ' kbps')) + ', ';
lan_wan_bandwidth_header += 'LAN: ' + ((lan_bw > 1000000) ? ((lan_bw / 1000000).toFixed(1) + ' Gbps') : ((lan_bw > 1000) ? ((lan_bw / 1000).toFixed(1) + ' Mbps') : (lan_bw + ' kbps'))) + ', ';
}
if (wan_bw) {
lan_wan_bandwidth_header += 'WAN: ' + ((wan_bw > 1000) ? ((wan_bw / 1000).toFixed(1) + ' Mbps') : (wan_bw + ' kbps')) + ', ';
lan_wan_bandwidth_header += 'WAN: ' + ((wan_bw > 1000000) ? ((wan_bw / 1000000).toFixed(1) + ' Gbps') : ((wan_bw > 1000) ? ((wan_bw / 1000).toFixed(1) + ' Mbps') : (wan_bw + ' kbps'))) + ', ';
}
if (lan_wan_bandwidth_header) {
bandwidth_header += ' (' + lan_wan_bandwidth_header.replace(/, $/, '') + ')';
@ -349,14 +370,19 @@
$('#currentActivityHeader').show();
document.title = stream_count + ' stream' + (stream_count > 1 ? 's' : '') + ' | ' + title;
sessions.forEach(function (session) {
var s = (typeof Proxy === "function") ? new Proxy(session, defaultHandler) : session;
var key = s.session_key;
var session_id = s.session_id;
var instance = $('#activity-instance-' + key);
// Create a new instance if it doesn't exist
if (!(instance.length)) {
// Create a new instance if it doesn't exist or recreate the entire instance
// if the rating key changed (for movies or episodes) of guid changed (for live tv) with the same session key
if (!(instance.length) ||
(s.media_type !== 'track' && s.rating_key !== instance.data('rating_key').toString()) ||
(s.live === 1 && s.guid !== instance.data('guid'))) {
create_instances.push(key);
getActivityInstance(key);
return;
@ -374,6 +400,9 @@
case 'buffering':
state_icon = '<i class="fa fa-fw fa-spinner"></i>&nbsp;';
break;
case 'error':
state_icon = '<i class="fa fa-fw fa-exclamation-triangle"></i>&nbsp;';
break;
default:
state_icon = '<i class="fa fa-fw fa-question-circle"></i>&nbsp;';
}
@ -382,33 +411,33 @@
// Switching tracks can be under the same session key, so need to update the info.
if (s.media_type === 'track') {
// Update if artist changed
if (s.grandparent_rating_key !== instance.data('grandparent_rating_key')) {
$('#background-' + key).css('background-image', 'url(pms_image_proxy?img=' + s.art + '&width=500&height=280&opacity=40&background=282828&blur=3&fallback=art&refresh=true)');
if (s.grandparent_rating_key !== instance.data('grandparent_rating_key').toString()) {
$('#background-' + key).css('background-image', 'url(' + page('pms_image_proxy', s.art, s.rating_key, 500, 280, 40, '282828', 3, 'art', true) + ')');
$('#metadata-grandparent_title-' + key)
.attr('href', 'info?rating_key=' + s.grandparent_rating_key)
.attr('href', page('info', s.grandparent_rating_key))
.attr('title', s.original_title || s.grandparent_title)
.text(s.original_title || s.grandparent_title);
}
// Update cover if album changed
if (s.parent_rating_key !== instance.data('parent_rating_key')) {
$('#poster-' + key).css('background-image', 'url(pms_image_proxy?img=' + s.parent_thumb + '&width=300&height=300&fallback=poster&refresh=true)');
$('#poster-' + key + '-bg').css('background-image', 'url(pms_image_proxy?img=' + s.parent_thumb + '&width=300&height=300&opacity=60&background=282828&blur=3&fallback=poster&refresh=true)');
if (s.parent_rating_key !== instance.data('parent_rating_key').toString()) {
$('#poster-' + key).css('background-image', 'url(' + page('pms_image_proxy', s.parent_thumb, s.parent_rating_key, 300, 300, null, null, null, 'poster', true) + ')');
$('#poster-' + key + '-bg').css('background-image', 'url(' + page('pms_image_proxy', s.parent_thumb, s.parent_rating_key, 300, 300, 60, '282828', 3, 'poster', true) + ')');
$('#poster-url-' + key)
.attr('href', 'info?rating_key=' + s.parent_rating_key)
.attr('href', page('info', s.parent_rating_key))
.attr('title', s.parent_title);
$('#metadata-parent_title-' + key)
.attr('href', 'info?rating_key=' + s.parent_rating_key)
.attr('href', page('info', s.parent_rating_key))
.attr('title', s.parent_title)
.text(s.parent_title);
}
// Update cover if track changed
if (s.rating_key !== instance.data('rating_key')) {
if (s.rating_key !== instance.data('rating_key').toString()) {
$('#metadata-grandparent_title-' + key)
.attr('href', 'info?rating_key=' + s.grandparent_rating_key)
.attr('href', page('info', s.grandparent_rating_key))
.attr('title', s.original_title || s.grandparent_title)
.text(s.original_title || s.grandparent_title);
$('#metadata-title-' + key)
.attr('href', 'info?rating_key=' + s.rating_key)
.attr('href', page('info', s.rating_key))
.attr('title', s.title)
.text(s.title);
}
@ -428,7 +457,7 @@
var transcode_container = '';
if (s.stream_container_decision === 'transcode') {
transcode_container = 'Transcode (' + s.container.toUpperCase() + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_container.toUpperCase() + ')';
transcode_container = 'Converting (' + s.container.toUpperCase() + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_container.toUpperCase() + ')';
} else {
transcode_container = 'Direct Play (' + s.stream_container.toUpperCase() + ')';
}
@ -436,6 +465,8 @@
var video_decision = '';
if (['movie', 'episode', 'clip'].indexOf(s.media_type) > -1 && s.stream_video_decision) {
var v_bd = (s.video_dynamic_range !== 'SDR') ? ' ' + s.video_dynamic_range : '';
var sv_bd = (s.stream_video_dynamic_range !== 'SDR' || v_bd) ? ' ' + s.stream_video_dynamic_range : '';
var v_res= '';
switch (s.video_resolution.toLowerCase()) {
case 'sd':
@ -461,11 +492,11 @@
if (s.stream_video_decision === 'transcode') {
var hw_d = (s.transcode_hw_decoding === 1) ? ' (HW)' : '';
var hw_e = (s.transcode_hw_encoding === 1) ? ' (HW)' : '';
video_decision = 'Transcode (' + s.video_codec.toUpperCase() + hw_d + ' ' + v_res + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_video_codec.toUpperCase() + hw_e + ' ' + sv_res + ')';
video_decision = 'Transcode (' + s.video_codec.toUpperCase() + hw_d + ' ' + v_res + v_bd + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_video_codec.toUpperCase() + hw_e + ' ' + sv_res + sv_bd + ')';
} else if (s.stream_video_decision === 'copy') {
video_decision = 'Direct Stream (' + s.stream_video_codec.toUpperCase() + ' ' + sv_res + ')';
video_decision = 'Direct Stream (' + s.stream_video_codec.toUpperCase() + ' ' + sv_res + sv_bd + ')';
} else {
video_decision = 'Direct Play (' + s.stream_video_codec.toUpperCase() + ' ' + sv_res + ')';
video_decision = 'Direct Play (' + s.stream_video_codec.toUpperCase() + ' ' + sv_res + sv_bd + ')';
}
} else if (s.media_type === 'photo') {
video_decision = 'Direct Play (' + s.width + 'x' + s.height + ')';
@ -474,28 +505,30 @@
var audio_decision = '';
if (['movie', 'episode', 'clip', 'track'].indexOf(s.media_type) > -1 && s.stream_audio_decision) {
var audio_language = (s.media_type !== 'track') ? (s.audio_language || 'Unknown') + ' - ' : '';
var a_codec = (s.audio_codec === 'truehd') ? 'TrueHD' : s.audio_codec.toUpperCase();
var sa_codec = (s.stream_audio_codec === 'truehd') ? 'TrueHD' : s.stream_audio_codec.toUpperCase();
if (s.stream_audio_decision === 'transcode') {
audio_decision = 'Transcode (' + a_codec + ' ' + capitalizeFirstLetter(s.audio_channel_layout.split('(')[0]) + ' <i class="fa fa-long-arrow-right"></i> ' + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
audio_decision = 'Transcode (' + audio_language + a_codec + ' ' + capitalizeFirstLetter(s.audio_channel_layout.split('(')[0]) + ' <i class="fa fa-long-arrow-right"></i> ' + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
} else if (s.stream_audio_decision === 'copy') {
audio_decision = 'Direct Stream (' + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
audio_decision = 'Direct Stream (' + audio_language + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
} else {
audio_decision = 'Direct Play (' + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
audio_decision = 'Direct Play (' + audio_language + sa_codec + ' ' + capitalizeFirstLetter(s.stream_audio_channel_layout.split('(')[0]) + ')';
}
}
$('#audio_decision-' + key).html(audio_decision);
var subtitle_decision = 'None';
if (['movie', 'episode', 'clip'].indexOf(s.media_type) > -1 && s.subtitles === 1) {
var subtitle_codec = (s.stream_subtitle_codec && s.stream_subtitle_transient) ? 'None' : s.subtitle_codec.toUpperCase();
if (s.stream_subtitle_decision === 'transcode') {
subtitle_decision = 'Transcode (' + s.subtitle_codec.toUpperCase() + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_subtitle_codec.toUpperCase() + ')';
subtitle_decision = 'Transcode ('+ (s.subtitle_language || 'Unknown')+ ' - ' + subtitle_codec + ' <i class="fa fa-long-arrow-right"></i> ' + s.stream_subtitle_codec.toUpperCase() + ')';
} else if (s.stream_subtitle_decision === 'copy') {
subtitle_decision = 'Direct Stream (' + s.subtitle_codec.toUpperCase() + ')';
subtitle_decision = 'Direct Stream ('+ (s.subtitle_language || 'Unknown')+ ' - ' + subtitle_codec + ')';
} else if (s.stream_subtitle_decision === 'burn') {
subtitle_decision = 'Burn (' + s.subtitle_codec.toUpperCase() + ')';
subtitle_decision = 'Burn ('+ (s.subtitle_language || 'Unknown')+ ' - ' + subtitle_codec + ')';
} else {
subtitle_decision = 'Direct Play (' + ((s.synced_version === '1') ? s.subtitle_codec.toUpperCase() : s.stream_subtitle_codec.toUpperCase()) + ')';
subtitle_decision = 'Direct Play ('+ (s.subtitle_language || 'Unknown')+ ' - ' + ((s.synced_version === '1') ? subtitle_codec : s.stream_subtitle_codec.toUpperCase()) + ')';
}
}
$('#subtitle_decision-' + key).html(subtitle_decision);
@ -521,7 +554,9 @@
if (s.media_type !== 'photo' && s.bandwidth !== 'Unknown') {
var bw = parseInt(s.bandwidth) || 0;
if (bw > 1000) {
if (bw > 1000000) {
bw = (bw / 1000000).toFixed(1) + ' Gbps';
} else if (bw > 1000) {
bw = (bw / 1000).toFixed(1) + ' Mbps';
} else {
bw = bw + ' kbps'
@ -531,19 +566,24 @@
// Update the stream progress times
$('#stream-eta-' + key).html(moment().add(parseInt(s.duration) - parseInt(s.view_offset), 'milliseconds').format(time_format));
$('#stream-duration-' + key).html(millisecondsToMinutes(parseInt(s.stream_duration), false));
var stream_view_offset = $('#stream-view-offset-' + key);
stream_view_offset.data('state', s.state);
if (stream_view_offset.data('last_view_offset') !== s.view_offset) {
stream_view_offset.data('last_view_offset', s.view_offset).data('view_offset', s.view_offset);
}
// Update the progress bars, percent - 3 because of 3px padding-right
$('#buffer-bar-' + key).width(parseInt(s.transcode_progress) - 3 + '%').html(s.transcode_progress + '%')
.attr('data-original-title', 'Transcoder Progress ' + s.transcode_progress + '%');
var progress_bar = $('#progress-bar-' + key);
progress_bar.data('state', s.state);
if (progress_bar.data('last_view_offset') !== s.view_offset) {
progress_bar.data('last_view_offset', s.view_offset).data('view_offset', s.view_offset);
// Update the progress bars
var duration = parseInt(s.duration);
var transcode_progress = duration ? Math.round(s.transcode_max_offset_available * 1000 / duration * 100) : s.transcode_progress;
$('#buffer-bar-' + key).css({width: parseInt(transcode_progress) + '%'}).html(transcode_progress + '%')
.attr('data-original-title', 'Transcoder Progress ' + transcode_progress + '%');
if (s.live !== 1) {
var progress_bar = $('#progress-bar-' + key);
progress_bar.data('state', s.state);
if (progress_bar.data('last_view_offset') !== s.view_offset) {
progress_bar.data('last_view_offset', s.view_offset).data('view_offset', s.view_offset);
}
}
// Add temporary class so we know which instances are still active
@ -556,6 +596,7 @@
$(instance).removeClass('updated-temp');
} else {
$(instance).find('[data-toggle=tooltip]').tooltip('destroy');
$(instance).find('[data-toggle=popover]').popover('destroy');
$(instance).remove();
}
});
@ -563,6 +604,8 @@
} else {
$('#currentActivityHeader').hide();
$('#currentActivity').html('<div id="dashboard-no-activity" class="text-muted">Nothing is currently being played.</div>');
document.title = title;
}
activity_ready = true;
@ -580,9 +623,28 @@
session_key: session_key
},
complete: function(xhr, status) {
$('#currentActivity').append(xhr.responseText);
var instance = $('#activity-instance-' + session_key);
if (instance.length) {
instance.replaceWith(xhr.responseText);
} else {
$('#currentActivity').append(xhr.responseText);
}
$('#activity-instance-' + session_key + ' .dashboard-activity-info-scroller').scrollbar();
$('#activity-instance-' + session_key + ' [data-toggle=tooltip]').tooltip({ container: 'body', placement: 'right', delay: 50 });
$('#activity-instance-' + session_key + ' [data-toggle=popover]').popover({
html: true,
sanitize: false,
container: 'body',
trigger: 'hover',
placement: 'right',
delay: 50,
template: '<div class="popover channel-thumbnail-popover" role="tooltip"><div class="arrow" style="top: 50%;"></div><div class="popover-content"></div></div>',
content: function () {
return '<div class="channel-thumbnail" style="background-image: url(' + $(this).data('img') + ');" />';
}
});
$('#terminate-button-' + session_key).tooltip('destroy').tooltip({ container: 'body', placement: 'left', delay: 50 });
lockScroll('#activity-instance-' + session_key + ' .dashboard-activity-info-scroller');
@ -594,38 +656,43 @@
});
}
getCurrentActivity();
setInterval(function () {
if (!(create_instances.length) && activity_ready) {
getCurrentActivity();
}
}, ${config['home_refresh_interval'] * 1000});
function activityConnected() {
getCurrentActivity();
setInterval(function () {
if (!(create_instances.length) && activity_ready) {
getCurrentActivity();
}
}, ${config['home_refresh_interval'] * 1000});
setInterval(function(){
$('.progress_time_offset').each(function () {
if ($(this).data('state') === 'playing' && $(this).data('view_offset') >= 0) {
var view_offset = parseInt($(this).data('view_offset'));
var stream_duration = parseInt($(this).data('stream_duration'));
var timestamp = millisecondsToMinutes(Math.min(view_offset, stream_duration), false);
$(this).html(timestamp).data('view_offset', Math.min(view_offset + 1000, stream_duration))
}
});
$('.progress-bar').each(function () {
if ($(this).data('state') === 'playing' && $(this).data('view_offset') >= 0) {
var view_offset = parseInt($(this).data('view_offset'));
var stream_duration = parseInt($(this).data('stream_duration'));
var progress_percent = Math.floor(view_offset / stream_duration * 100);
progress_percent = (progress_percent >= 0) ? Math.min(progress_percent, 100) : 100;
$(this).width(progress_percent - 3 + '%').html(progress_percent + '%')
.attr('data-original-title', 'Stream Progress ' + progress_percent + '%')
.data('view_offset', Math.min(view_offset + 1000, stream_duration));
}
});
}, 1000);
setInterval(function(){
$('.progress_time_offset').each(function () {
if ($(this).data('state') === 'playing' && $(this).data('view_offset') >= 0) {
var view_offset = parseInt($(this).data('view_offset'));
var stream_duration = parseInt($(this).data('stream_duration'));
var timestamp = millisecondsToMinutes(Math.min(view_offset, stream_duration), false);
$(this).html(timestamp).data('view_offset', Math.min(view_offset + 1000, stream_duration))
}
});
$('.progress-bar').each(function () {
if ($(this).data('state') === 'playing' && $(this).data('view_offset') >= 0) {
var view_offset = parseInt($(this).data('view_offset'));
var stream_duration = parseInt($(this).data('stream_duration'));
var progress_percent = Math.floor(view_offset / stream_duration * 100);
progress_percent = (progress_percent >= 0) ? Math.min(progress_percent, 100) : 100;
$(this).css({width: progress_percent + '%'}).html(progress_percent + '%')
.attr('data-original-title', 'Stream Progress ' + progress_percent + '%')
.data('view_offset', Math.min(view_offset + 1000, stream_duration));
}
});
}, 1000);
}
$('#currentActivity').on('click', '.external_ip-modal', function () {
$.get('get_ip_address_details', {
ip_address: $(this).data('ip')
ip_address: $(this).data('ip'),
location: $(this).data('location'),
secure: $(this).data('secure'),
relayed: $(this).data('relayed')
}).then(function (jqXHR) {
$("#ip-info-modal").html(jqXHR);
});
@ -698,6 +765,105 @@
% endif
</script>
% endif
% if 'watch_stats' in config['home_sections'] or 'library_stats' in config['home_sections']:
<script>
function statsCardCallback() {
$('.dashboard-stats-instance .dashboard-stats-info-scroller').scrollbar();
loadAllBlurHash();
function changeImages(elem) {
var stat_id = $(elem).data('stat_id');
var art = $(elem).data('art');
var thumb = $(elem).data('thumb');
var user_id = $(elem).data('user_id');
var library_type = $(elem).data('library-type');
var user_thumb = $(elem).data('user_thumb');
var rating_key = $(elem).data('rating_key');
var grandparent_rating_key = $(elem).data('grandparent_rating_key');
var guid = $(elem).data('guid');
var live = $(elem).data('live');
var library_art = $(elem).data('library_art');
var library_thumb = $(elem).data('library_thumb');
var [height, fallback_poster, fallback_art] = [450, 'poster', 'art'];
if ($.inArray(stat_id, ['top_music', 'popular_music']) > -1) {
[height, fallback_poster, fallback_art] = [300, 'cover', 'art'];
} else if (live) {
[height, fallback_poster, fallback_art] = [450, 'poster-live', 'art-live'];
}
var href = '#';
if (stat_id === 'most_concurrent') {
return
} else if (stat_id === 'top_libraries') {
$('#stats-background-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', art || library_art, null, 500, 280, 40, '282828', 3, fallback_art) + ')');
$('#stats-thumb-' + stat_id).removeClass(function (index, className) {
return (className.match (/(^|\s)svg-icon library-\S+/g) || []).join(' ')});
if (library_thumb.startsWith('http')) {
$('#stats-thumb-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', library_thumb, null, 100, 100, null, null, null, 'cover') + ')');
} else {
$('#stats-thumb-' + stat_id).css('background-image', '')
.addClass('svg-icon library-' + library_type);
}
} else if (stat_id === 'top_users') {
loadBlurHash($('#stats-background-' + stat_id), page('pms_image_proxy', user_thumb || 'interfaces/default/images/gravatar-default.png', null, 100, 100, 40, '282828', 0, 'user'));
$('#stats-thumb-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', user_thumb || 'interfaces/default/images/gravatar-default.png', null, 100, 100, null, null, null, 'user') + ')');
if (user_id) {
href = page('user', user_id);
}
$('#stats-thumb-url-' + stat_id).attr('href', href).prop('title', $(elem).data('user'));
} else if (stat_id === 'top_platforms') {
$('#stats-thumb-' + stat_id).removeClass(function (index, className) {
return (className.match (/(^|\s)platform-\S+/g) || []).join(' ');
}).addClass('platform-' + $(elem).data('platform'));
$('#stats-background-' + stat_id).removeClass(function (index, className) {
return (className.match (/(^|\s)platform-\S+/g) || []).join(' ');
}).addClass('platform-' + $(elem).data('platform') + '-rgba');
} else {
if (rating_key) {
if (live) {
href = page('info', rating_key, guid, true, live);
} else {
href = page('info', rating_key);
}
}
var img_rating_key = grandparent_rating_key || rating_key;
$('#stats-thumb-url-' + stat_id).attr('href', href).prop('title', $(elem).data('title'));
$('#stats-background-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', art, img_rating_key, 500, 280, 40, '282828', 3, fallback_art) + ')');
$('#stats-thumb-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', thumb, img_rating_key, 300, height, null, null, null, fallback_poster) + ')');
$('#stats-thumb-' + stat_id + '-bg').css('background-image', 'url(' + page('pms_image_proxy', thumb, img_rating_key, 300, height, 60, '282828', 3, fallback_poster) + ')');
$('#library-stats-background-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', art || library_art, img_rating_key, 500, 280, 40, '282828', 3, library_art || fallback_art) + ')');
if (thumb.startsWith('http')) {
$('#library-stats-thumb-' + stat_id).css('background-image', 'url(' + page('pms_image_proxy', thumb, img_rating_key, 300, 300, null, null, null, 'cover') + ')')
.removeClass('svg-icon library-' + stat_id);
} else {
$('#library-stats-thumb-' + stat_id).css('background-image', '')
.addClass('svg-icon library-' + stat_id);
}
}
}
$('.dashboard-stats-info-item').mouseenter(function () {
changeImages(this);
if ($(this).data('stat_id') === 'last_watched') {
var friendly_name = $(this).data('friendly_name');
var last_watch = moment($(this).data('last_watch'), 'X').format(date_format);
$('#last-watched-header-info').html(friendly_name);
} else if ($(this).data('stat_id') === 'most_concurrent') {
var started = moment($(this).data('started'), 'X').format(date_format + ' ' + time_format);
$('#most-concurrent-header-info').html(started);
}
});
$('.dashboard-stats-instance').mouseleave(function () {
changeImages($(this).find('.dashboard-stats-info-item').first());
if ($(this).data('stat_id') === 'last_watched') {
$('#last-watched-header-info').text($(this).find('.dashboard-stats-info-item').first().data('friendly_name'));
} else if ($(this).data('stat_id') === 'most_concurrent') {
$('#most-concurrent-header-info').text('streams');
}
});
}
</script>
% endif
% if 'watch_stats' in config['home_sections']:
<script>
function getHomeStats(time_range, stats_type) {
@ -716,6 +882,7 @@
$("#home-stats").html(xhr.responseText);
$('#ajaxMsg').fadeOut();
lockScroll('#home-stats .dashboard-stats-info-scroller');
statsCardCallback();
}
});
}
@ -755,13 +922,14 @@
data: { },
complete: function (xhr, status) {
$("#library-stats").html(xhr.responseText);
statsCardCallback();
}
});
}
getLibraryStats();
</script>
% endif
% if 'recently_added' in config['home_sections'] and PLEX_SERVER_UP:
% if 'recently_added' in config['home_sections']:
<script>
function recentlyAdded(recently_added_count, recently_added_type) {
showMsg("Loading recently added items...", true, false, 0);
@ -774,10 +942,14 @@
count: recently_added_count,
media_type: recently_added_type
},
beforeSend: function () {
$(".dashboard-recent-media-row").animate({ scrollLeft: 0 }, 1000);
},
complete: function (xhr, status) {
$("#recentlyAdded").html(xhr.responseText);
$('#ajaxMsg').fadeOut();
highlightAddedScrollerButton();
highlightScrollerButton("#recently-added");
paginateScroller("#recently-added", ".paginate-added");
}
});
}
@ -789,59 +961,15 @@
$('#recently-added-toggle-' + recently_added_type).closest('label').addClass('active');
$('#recently-added-count').val(recently_added_count);
recentlyAdded(recently_added_count, recently_added_type);
function highlightAddedScrollerButton() {
var scroller = $("#recently-added-row-scroller");
var numElems = scroller.find("li:visible").length;
scroller.width(numElems * 175);
if (scroller.width() > $("body").find(".container-fluid").width()) {
$("#recently-added-page-right").removeClass("disabled");
} else {
$("#recently-added-page-right").addClass("disabled");
}
function recentlyAddedConnected() {
recentlyAdded(recently_added_count, recently_added_type);
}
$(window).resize(function () {
highlightAddedScrollerButton();
});
function resetScroller() {
leftTotal = 0;
$("#recently-added-row-scroller").animate({ left: leftTotal }, 1000);
$("#recently-added-page-left").addClass("disabled").blur();
}
var leftTotal = 0;
$(".paginate").click(function (e) {
e.preventDefault();
var scroller = $("#recently-added-row-scroller");
var containerWidth = $("body").find(".container-fluid").width();
var scrollAmount = $(this).data("id") * parseInt((containerWidth - 15) / 175) * 175;
var leftMax = Math.min(-parseInt(scroller.width()) + Math.abs(scrollAmount), 0);
leftTotal = Math.max(Math.min(leftTotal + scrollAmount, 0), leftMax);
scroller.animate({ left: leftTotal }, 250);
if (leftTotal === 0) {
$("#recently-added-page-left").addClass("disabled").blur();
} else {
$("#recently-added-page-left").removeClass("disabled");
}
if (leftTotal === leftMax) {
$("#recently-added-page-right").addClass("disabled").blur();
} else {
$("#recently-added-page-right").removeClass("disabled");
}
});
$('#recently-added-toggles').on('change', function () {
$('#recently-added-toggles > label').removeClass('active');
selected_filter = $('input[name=recently-added-toggle]:checked', '#recently-added-toggles');
$(selected_filter).closest('label').addClass('active');
recently_added_type = $(selected_filter).val();
resetScroller();
setLocalStorage('home_stats_recently_added_type', recently_added_type);
recentlyAdded(recently_added_count, recently_added_type);
});
@ -849,7 +977,6 @@
$('#recently-added-count').change(function () {
forceMinMax($(this));
recently_added_count = $(this).val();
resetScroller();
setLocalStorage('home_stats_recently_added_count', recently_added_count);
recentlyAdded(recently_added_count, recently_added_type);
});
@ -873,9 +1000,12 @@
async: true,
complete: function (xhr, status) {
$("#changelog-modal .modal-body").html(xhr.responseText);
$('#changelog-modal').modal();
$('#changelog-modal').modal({
backdrop: 'static',
keyboard: false
});
}
});
</script>
% endif
</%def>
</%def>

Some files were not shown because too many files have changed in this diff Show more