Compare commits

..

1570 Commits

Author SHA1 Message Date
Joshua M. Boniface 973fcdbaa1 Bump version to 10.6.2 2020-08-02 20:53:04 -04:00
dkanada 5ea5b9a654 Merge pull request #3795 from anthonylavado/master
Update to newer Jellyfin.XMLTV

(cherry picked from commit 714a6f04ef)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:50:44 -04:00
dkanada e657781459 Merge pull request #3792 from cvium/fix_tmdb_deserialize
TMDb: Change Budget and Revenue to long to avoid overflow
(cherry picked from commit 254ef6bc0d)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:50:44 -04:00
Bond-009 4e6e310b71 Merge pull request #3790 from cvium/fewer_string_allocs
Remove some unnecessary string allocations

(cherry picked from commit 43fa983414)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:50:44 -04:00
Joshua M. Boniface 43ade73be4 Merge pull request #3761 from cvium/fix_mem_leak
Fix DI memory leak

(cherry picked from commit 9bf6222597)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:37:11 -04:00
Anthony Lavado f88e9b2678 Merge pull request #3760 from thornbill/true-or-false
Fix inverted logic for LAN IP detection

(cherry picked from commit 4bad529fcb)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:37:11 -04:00
Bond-009 0eb0b15b2a Merge pull request #3757 from jellyfin/update_blurhashsharp
Update BlurHashSharp and set max size to 128x128

(cherry picked from commit ee3fae497c)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:37:11 -04:00
Joshua M. Boniface 7402679a99 Merge pull request #3728 from jellyfin/qsv-cutter
Adjust priority in outputSizeParam cutter

(cherry picked from commit 47e63def20)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:37:11 -04:00
Anthony Lavado e276532f2f Merge pull request #3727 from K900/patch-1
Fix #3624

(cherry picked from commit 06db5f8bca)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:37:01 -04:00
Joshua M. Boniface b1250e2e83 Merge pull request #3725 from joshuaboniface/fix-ci-docker
Flip quoting in variable set command

(cherry picked from commit 8c1dab146c)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:35:31 -04:00
Anthony Lavado 35d3ad1a55 Merge pull request #3723 from joshuaboniface/fix-ci-docker
Get and tag with the actual release version in CI

(cherry picked from commit b207907e1b)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:35:31 -04:00
Joshua M. Boniface 02f36373c2 Merge pull request #3720 from joshuaboniface/fix-bump-version
Fix bump_version so it works properly

(cherry picked from commit dc0f1788f4)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-08-02 20:35:31 -04:00
Joshua M. Boniface 3b73e74ce5 Bump version to 10.6.1 2020-07-27 18:59:16 -04:00
Anthony Lavado 8bb03e8f91 Merge pull request #3711 from yrjyrj123/fix_hw_decoder_for_macos
Fix the problem that hardware decoding cannot be used on macOS.

(cherry picked from commit ea0489a98e)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Anthony Lavado 3e742e99a5 Merge pull request #3704 from oddstr13/pr-dotdir-sample-1
Don't ignore dot directories or movies/episodes with sample in their name.

(cherry picked from commit 6eb3e736c6)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
dkanada ad3a96267e Merge pull request #3703 from oddstr13/pr-username-space-1
Allow space in username

(cherry picked from commit 8ab800508b)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Anthony Lavado 8b42ef451c Merge pull request #3699 from oddstr13/pr-embedded-subs-1
Fix embedded subtitles

(cherry picked from commit bfecfab538)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Joshua M. Boniface 4ce16489a4 Merge pull request #3675 from ferferga/fix-typo
Fix typo in debian config file

(cherry picked from commit 1a9adf283a)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 809651ceaf Merge pull request #3663 from crobibero/efcore-leak
Add missing usings to UserManager

(cherry picked from commit 6b11cccb7f)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Anthony Lavado 6547ae46ce Merge pull request #3660 from crobibero/plugin-config-location
Force plugin config location

(cherry picked from commit 468a7fea4c)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 cbf6ef4dbd Merge pull request #3649 from thornbill/fix-epg-update-maybe
Skip image processing for live tv sources

(cherry picked from commit e9758bde2a)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 e4ce72e7bb Merge pull request #3642 from crobibero/plugin-repo-x2
Try adding plugin repository again

(cherry picked from commit a86d8d1757)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Anthony Lavado 3b758c3a66 Merge pull request #3634 from crobibero/plugin-config
fix built in plugin js

(cherry picked from commit f23e119a68)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 dadd42e574 Merge pull request #3620 from BaronGreenback/IPFix
Fix for #3607 and #3515

(cherry picked from commit 0750357916)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
dkanada 349b789492 Merge pull request #3616 from crobibero/migration-new-install
Allow migration to optionally run on fresh install

(cherry picked from commit 107cf21f26)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 0ee0aa8941 Merge pull request #3615 from jellyfin/qsv-comet-lake
Fix QSV device creation on Comet Lake

(cherry picked from commit 6de6583cbd)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 94dbdd9f98 Merge pull request #3604 from joshuaboniface/fix-bad-deps
Fix bad Debuntu dependencies

(cherry picked from commit 41c4cfe0af)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 9875f30836 Merge pull request #3602 from crobibero/user-change-case
Fix username case change

(cherry picked from commit 8f11e057a2)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Anthony Lavado a717a531bc Merge pull request #3576 from HelloWorld017/fix/sami-utf16
Fix SAMI UTF-16 Encoding Bug

(cherry picked from commit 0cb2cd9456)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 d04e255a79 Merge pull request #3552 from BaronGreenback/NotificationFix
Fixes #3551 (Notifications Serialization error)

(cherry picked from commit 944fdb4c62)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 2fd902f1b2 Merge pull request #3521 from sachk/master
Fix support for mixed-protocol subtitles

(cherry picked from commit 323fc576a5)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
2020-07-27 18:53:09 -04:00
Bond-009 c8539709ac Merge pull request #3596 from joshuaboniface/fix-typo
Fix typo in CI configuration
2020-07-19 23:57:46 +02:00
Joshua M. Boniface 2f2fe3552d Fix typo in CI configuration 2020-07-19 17:54:46 -04:00
Joshua M. Boniface 677ec1b27a Merge pull request #3575 from jellyfin/ffmpeg-depends
Bump the minimun required jellyfin-ffmpeg version
2020-07-19 17:16:08 -04:00
Joshua M. Boniface a5b673d542 Revert "bump the minimum required jellyfin-ffmpeg ver to 4.3.1-1"
This reverts commit d3fa6b428a.

Don't change this, since 4.3.1 won't build on Stretch but we still want
to support it.
2020-07-19 17:06:58 -04:00
Joshua M. Boniface 0b73f3d646 Merge pull request #3569 from nyanmisaka/textsub-fix
Fix QSV subtitle burn-in on windows and P010 detect
2020-07-19 16:59:58 -04:00
Joshua M. Boniface 050c6cdaa4 Merge pull request #3593 from joshuaboniface/nuget-publish
Add NuGet publish step to tag CI
2020-07-19 14:17:11 -04:00
Joshua M. Boniface dfd00c7b24 Add NuGet publish step to tag CI 2020-07-19 14:01:32 -04:00
Anthony Lavado 6ab4493ecb Merge pull request #3591 from crobibero/clear-existing-image
Remove profile image before setting new
2020-07-19 11:21:08 -04:00
Bond-009 7ad08953c0 Merge pull request #3590 from crobibero/tvdb-actors
Fix tvdb actors url
2020-07-19 17:16:49 +02:00
Bond-009 ce07e45897 Merge pull request #3585 from Ken-g6/2354-soft-link-sizes
2354 fix soft link sizes
2020-07-19 17:16:13 +02:00
crobibero 59365150d8 Remove profile image before setting new 2020-07-19 08:31:35 -06:00
crobibero 8a778c08d2 Fix tvdb actors url 2020-07-19 08:21:26 -06:00
Anthony Lavado 8ac08499bc Merge pull request #3587 from crobibero/user-update-policy
fix UserManager UpdatePolicy
2020-07-18 23:04:14 -04:00
crobibero 2f38d9700c fix UserManager UpdatePolicy 2020-07-18 20:29:27 -06:00
Ken eea142cad1 FullName property instead of ToString in Emby.Server.Implementations/IO/ManagedFileSystem.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-07-18 19:40:28 -06:00
Ken d719ca78b4 Spacing standard on Emby.Server.Implementations/IO/ManagedFileSystem.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-07-18 19:39:31 -06:00
Anthony Lavado 6e1735d311 Merge pull request #3586 from barronpm/remove-networkpath
Remove obsolete network path code
2020-07-18 20:40:37 -04:00
Anthony Lavado 8782c19068 Merge pull request #3582 from barronpm/update-dotnet
Update .NET Core to 3.1.6
2020-07-18 19:40:46 -04:00
Anthony Lavado f9d4b0a2d7 Merge pull request #3579 from crobibero/activity-log-userid
Add UserId filter to ActivityLog Entries endpoint
2020-07-18 19:40:30 -04:00
Patrick Barron b53bf2cd16 Remove obsolete network path code 2020-07-18 16:21:01 -04:00
Ken Brazier 6a39b1a4ca Merge 'master' updates into 2354-soft-link-sizes 2020-07-18 11:39:53 -06:00
Patrick Barron 4742ddbb71 Update .NET Core to 3.1.6 2020-07-17 19:48:11 -04:00
Anthony Lavado 09c05ff9fa Merge pull request #3581 from crobibero/delete-logging
Increase delete logging
2020-07-17 18:21:29 -04:00
crobibero e152a6c82f Increase delete logging 2020-07-17 15:53:10 -06:00
crobibero 4dd91f3667 Add UserId filter to ActivityLog Entries endpoint 2020-07-17 12:17:11 -06:00
David 0140262e2f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-07-17 10:03:36 -04:00
Nyanmisaka 77f9417d84 enhance platform check and 10bit detect 2020-07-17 19:32:15 +08:00
Akachai Bunsorn 7e53bc5ec5 Translated using Weblate (Thai)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/th/
2020-07-17 05:39:16 -04:00
nyanmisaka cd714a724d utilize jellyfin-ffmpeg for portable x64 2020-07-17 14:40:27 +08:00
nyanmisaka d3fa6b428a bump the minimum required jellyfin-ffmpeg ver to 4.3.1-1 2020-07-17 14:37:29 +08:00
dkanada 10d396d56d Merge pull request #3573 from crobibero/plugin-request-exception
Catch HttpRequestException when requesting plugins
2020-07-17 06:44:15 +09:00
Joshua M. Boniface 55dafd4149 Merge pull request #3563 from cvium/fix_next_up
Only fetch Next Up for episodes that have been fully matched
2020-07-16 16:30:55 -04:00
Nyanmisaka e1ba1fcebe fix indent 2020-07-17 01:41:24 +08:00
Nyanmisaka c1c1a2f751 Match the size of subtitle stream and video stream 2020-07-17 01:30:35 +08:00
ADRI IDZWAN MANSOR 0c64ad9b16 Translated using Weblate (Malay)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ms/
2020-07-16 12:18:51 -04:00
crobibero b541d9f6ff Merge remote-tracking branch 'upstream/master' into plugin-request-exception 2020-07-16 09:54:21 -06:00
Anthony Lavado edae7b954b Merge pull request #3570 from crobibero/async-cancellation
Add EnumeratorCancellation attribute
2020-07-16 11:53:21 -04:00
crobibero f40bcff113 Catch HttpRequestException when requesting plugins 2020-07-16 08:28:31 -06:00
crobibero 0095cb1947 Add EnumeratorCancellation attribute 2020-07-16 07:32:58 -06:00
Nyanmisaka 32fb34a4cc Fix QSV subtitle burn-in on windows and P010 detect 2020-07-16 21:09:04 +08:00
Nyanmisaka 83a344b627 Merge pull request from jellyfin/master 2020-07-16 21:03:49 +08:00
Anthony Lavado a9ce8a804f Merge pull request #3566 from cvium/fix_tvdb_a_little
TVDB: Fetch image keytypes before querying images
2020-07-15 19:04:02 -04:00
Anthony Lavado c934d9e43a Merge pull request #3562 from rotvel/feature/fix-audio-transcoding
Fix audio file transcoding.
2020-07-15 18:42:18 -04:00
Claus Vium 90fa1149fa Fix warnings 2020-07-15 19:04:36 +02:00
Claus Vium 6d37a5fe52 Change to IAsyncEnumerable 2020-07-15 17:14:39 +02:00
Claus Vium 8c0168ef72 Fetch image keytypes before querying images 2020-07-15 16:45:14 +02:00
Claus Vium a23920e2ad Only fetch Next Up for episodes that have been fully matched 2020-07-15 13:18:02 +02:00
Max Git b356ff6c89 Simplify name of IsCopyDoc 2020-07-15 06:58:36 +02:00
Max Git 87f5a6bdb3 Move videostream null check to start of GetHardwareAcceleratedVideoDecoder 2020-07-15 05:56:05 +02:00
dkanada 2307052efc Merge pull request #3549 from neilsb/master
Prevent failure to bind to Auto Discover port being a fatal error
2020-07-15 08:16:21 +09:00
Anthony Lavado 175e7b45e5 Merge pull request #3557 from crobibero/fix-update-user
Fix update user
2020-07-14 11:23:35 -04:00
crobibero e143387cbd Fix update user 2020-07-14 06:47:46 -06:00
Raif Coonjah eddce72c52 Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/af/
2020-07-14 08:26:12 -04:00
dkanada 87d7c4a62e Merge pull request #3500 from nyanmisaka/vpp-qsv
Add FFmpeg 4.3 detection and solve the green line on QSV HWA
2020-07-14 20:31:13 +09:00
dkanada 50dcc11430 Merge pull request #3555 from cvium/fix_disposed_context
Fix disposed database context
2020-07-14 20:29:21 +09:00
Claus Vium 340b585234 Use ToList instead of AsEnumerable due to delayed execution 2020-07-14 12:38:56 +02:00
dkanada 203825f772 Merge pull request #3541 from jellyfin/pause
Keep playstate during syncplay group creation
2020-07-14 09:25:46 +09:00
dkanada bf09bbeacd update comment
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-07-14 08:25:02 +09:00
Joshua M. Boniface f8e8626898 Merge pull request #3539 from barronpm/fix-memoryleak
Fix EF Core Memory Leak
2020-07-13 14:54:15 -04:00
Bond-009 f1a7b0586b Merge pull request #3553 from joshuaboniface/fix-azure-fuckery
Explicitly add what Azure used to do implicitly
2020-07-13 20:44:07 +02:00
Joshua M. Boniface b4212cc210 Explicitly add what Azure used to do implicitly
... before they changed it on us out of nowhere.
2020-07-13 14:36:35 -04:00
Patrick Barron b468ae2aea Use AsEnumerable for UserManager.Users 2020-07-13 14:09:20 -04:00
dkanada 8a28b55760 Merge pull request #3545 from jellyfin/dependabot/nuget/AutoFixture-4.13.0
Bump AutoFixture from 4.12.0 to 4.13.0
2020-07-14 03:04:53 +09:00
Patrick Barron 18c03fa9c8 Merge branch 'master' into fix-memoryleak 2020-07-13 17:45:54 +00:00
Patrick Barron befd0c7a00 Remove EF Core Proxies 2020-07-13 12:49:20 -04:00
Neil Burrows da8eb1f15b using System.Net.Sockets 2020-07-13 16:33:39 +01:00
Neil Burrows 25e3827488 Update Emby.Server.Implementations/EntryPoints/UdpServerEntryPoint.cs
Update log format message and log exception

Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-07-13 15:39:14 +01:00
Neil Burrows 359b0044b8 Prevent failure to bind to Auto Discover port being a fatal error 2020-07-13 15:12:51 +01:00
dependabot[bot] aefe011d7d Bump AutoFixture from 4.12.0 to 4.13.0
Bumps [AutoFixture](https://github.com/AutoFixture/AutoFixture) from 4.12.0 to 4.13.0.
- [Release notes](https://github.com/AutoFixture/AutoFixture/releases)
- [Commits](https://github.com/AutoFixture/AutoFixture/compare/v4.12.0...v4.13.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-13 12:04:07 +00:00
kanenses 52290380aa Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt/
2020-07-13 03:34:16 -04:00
Joshua M. Boniface 29a386ee2d Merge pull request #3533 from barronpm/user-login-casing
Make User Authentication Case-insensitive and remove EF Core Log spam
2020-07-12 19:32:51 -04:00
dkanada 5e706ba7ce keep playstate during syncplay group creation 2020-07-13 06:55:03 +09:00
Patrick Barron 0ee55bc1f9 Use AsEnumerable instead of ToList 2020-07-12 15:08:55 -04:00
Patrick Barron 8959621da7 Fix EF Core memory leak 2020-07-12 14:45:52 -04:00
dkanada 04648c7e98 Merge pull request #3535 from crobibero/syncplay-v10
Fix syncplay function name
2020-07-12 01:39:48 +09:00
crobibero 2c231e84e6 Fix syncplay function name 2020-07-11 10:26:01 -06:00
Patrick Barron c0bd10879a Ignore casing when authenticating users 2020-07-09 21:55:07 -04:00
rhythm493 172203b5cc Translated using Weblate (Marathi)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/mr/
2020-07-08 14:04:34 -04:00
Anthony Lavado 7884a85e62 Merge pull request #3519 from jellyfin/azure-ci
Add conditionals to root YAML definition
2020-07-08 06:41:44 -07:00
dkanada 405bfdf13f Merge pull request #3522 from crobibero/syncplay-endpoints
Clean syncplay endpoint names
2020-07-08 18:16:27 +09:00
Patrick Barron 3cca8db905 Fix log spam from EF Core 2020-07-07 18:20:17 -04:00
crobibero 33c465a5d3 Clean syncplay endpoint names 2020-07-07 07:25:46 -06:00
Joshua M. Boniface 6d0a3a110b Explicitly exit from inline script 2020-07-06 23:03:42 -04:00
Joshua M. Boniface 8bef24f331 Use weird other formating that AZP wants 2020-07-06 22:32:30 -04:00
Joshua M. Boniface 9d9c9a5945 Remove unneeded conditions that are now in parent 2020-07-06 22:14:25 -04:00
Joshua M. Boniface aab79ef346 Add conditionals to root YAML definition
Prevents running builds (that get skipped) in PR CI, and prevents
running tests (which are irrelevant) in Merge CI.
2020-07-06 22:12:39 -04:00
dkanada 3e53eb1cde Merge pull request #3516 from jellyfin/dependabot/nuget/Moq-4.14.5
Bump Moq from 4.14.4 to 4.14.5
2020-07-06 23:40:52 +09:00
dependabot[bot] 88d06aa156 Bump Moq from 4.14.4 to 4.14.5
Bumps [Moq](https://github.com/moq/moq4) from 4.14.4 to 4.14.5.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.14.4...v4.14.5)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-06 12:02:46 +00:00
Anthony Lavado 3d3e66c5d1 Merge pull request #3513 from barronpm/plugin-exception-fix
Fix TypeLoadException during plugin load
2020-07-05 13:55:24 -07:00
Patrick Barron 942c733d4f Fix TypeLoadException during plugin load 2020-07-05 15:38:35 -04:00
Joshua M. Boniface f3151e7dc7 Merge pull request #3505 from Bond-009/minor3
Minor fixes
2020-07-05 00:30:35 -04:00
Bond-009 fb91e4fc23 Merge pull request #3502 from barronpm/array-empty
Use Array.Empty
2020-07-04 23:10:45 +02:00
Bond-009 1448df1684 Update MediaBrowser.Providers/Plugins/Tmdb/Movies/TmdbMovieProvider.cs
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-07-04 22:36:02 +02:00
Bond_009 ae6eaa7f02 Minor fixes 2020-07-04 22:06:27 +02:00
Patrick Barron 6d1b00da64 Use Array.Empty 2020-07-04 11:54:25 -04:00
nyanmisaka d0098f1b95 update ffmpeg 4.3 from zeranoe builds 2020-07-04 19:54:40 +08:00
nyanmisaka ce85cea9fa solve the green line issue on QSV 2020-07-04 19:21:16 +08:00
nyanmisaka f5c5352861 add FFmpeg 4.3 detection and tests 2020-07-04 19:14:49 +08:00
Joshua M. Boniface 46f67c9ea4 Merge pull request #3423 from crobibero/easypassword
Remove EasyPassword from Authentication providers
2020-07-04 00:25:00 -04:00
dkanada 176f25fb98 Merge pull request #3495 from anthonylavado/xmltv-upd
Use newer Jellyfin.XmlTv for Guide Fixes
2020-07-04 03:50:48 +09:00
Anthony Lavado af334f96d6 Use newer Jellyfin.XmlTv for Guide Fixes 2020-07-03 14:11:38 -04:00
Joshua M. Boniface 5caddb242b Merge pull request #3431 from BaronGreenback/3404
Fix for #3404
2020-07-01 16:34:34 -04:00
Zyzto 1140bcc669 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-06-30 20:44:32 -04:00
Anthony Lavado 72aa0bb1ad Merge pull request #3480 from neilsb/ffmpeg-env-var
Respect FFMpeg path passed via Environment Variable
2020-06-30 11:21:17 -07:00
dkanada 92e7cc8f77 Merge pull request #3473 from jellyfin/dependabot/nuget/Moq-4.14.4
Bump Moq from 4.14.3 to 4.14.4
2020-06-30 11:42:05 +09:00
dependabot[bot] 248a2d61dd Bump Moq from 4.14.3 to 4.14.4
Bumps [Moq](https://github.com/moq/moq4) from 4.14.3 to 4.14.4.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.14.3...v4.14.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-30 02:20:44 +00:00
dkanada 49777f8ee3 Merge pull request #3478 from crobibero/bump-auto-test
bump autofixture
2020-06-30 11:19:55 +09:00
Neil Burrows 6b532b3da5 User string.Empty instead of ""
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-06-29 20:52:20 +01:00
Neil Burrows 4748df26b6 Remove un-needed comment 2020-06-29 17:25:12 +01:00
Neil Burrows 4389773508 Respect FFMpeg path passed via Environment Variable 2020-06-29 17:17:28 +01:00
crobibero 80b43fb805 bump autofixture 2020-06-29 07:27:15 -06:00
dkanada c39ad25e4c Merge pull request #3477 from jellyfin/dependabot/nuget/Swashbuckle.AspNetCore-5.5.1
Bump Swashbuckle.AspNetCore from 5.5.0 to 5.5.1
2020-06-29 22:25:19 +09:00
dkanada 9590a1d542 Merge pull request #3475 from jellyfin/dependabot/nuget/AutoFixture-4.12.0
Bump AutoFixture from 4.11.0 to 4.12.0
2020-06-29 22:23:30 +09:00
dependabot[bot] 84e74dbc50 Bump Swashbuckle.AspNetCore from 5.5.0 to 5.5.1
Bumps [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases)
- [Commits](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/compare/v5.5.0...v5.5.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-29 12:25:06 +00:00
dependabot[bot] 4e2115cd83 Bump AutoFixture from 4.11.0 to 4.12.0
Bumps [AutoFixture](https://github.com/AutoFixture/AutoFixture) from 4.11.0 to 4.12.0.
- [Release notes](https://github.com/AutoFixture/AutoFixture/releases)
- [Commits](https://github.com/AutoFixture/AutoFixture/compare/v4.11.0...v4.12.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-29 12:24:58 +00:00
Gonzalo Seguel 332527cf8c Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_MX/
2020-06-28 02:23:57 -04:00
dkanada c521ce412c Merge pull request #3461 from Bond-009/readonlyspan
Add support for ReadOnlySpan<char> in IgnorePatterns
2020-06-28 04:32:23 +09:00
Bond-009 dc2fc4ea16 Merge pull request #3378 from crobibero/syncplay-sessionid
[SyncPlay] Remove (unused) SessionId route parameter
2020-06-27 20:53:13 +02:00
Bond-009 89ef8d79d6 Merge pull request #3465 from BaronGreenback/BugFix2
10.6.0.0 Null Pointer fix
2020-06-27 20:43:37 +02:00
BaronGreenback 2f4860741c _config.Configuration.PluginRespositories not instantiated causing InstallationManager.cs to crash with a null pointer. 2020-06-27 15:41:57 +01:00
Bond-009 cb193b6afd Add support for ReadOnlySpan<char> in IgnorePatterns 2020-06-27 11:34:33 +02:00
Bond-009 71cbd51663 Merge pull request #3456 from crobibero/ignore-patterns
Add more ignorepatterns and tests
2020-06-27 11:18:56 +02:00
dkanada 9a44e2912e Merge pull request #3455 from jellyfin/values
Use constructor to set optimal config values
2020-06-27 05:58:07 +09:00
Bond-009 73da8df4bf Merge pull request #3137 from mark-monteiro/external-id-type
Correctly Support Translating External Ids
2020-06-26 21:49:53 +02:00
crobibero ef49e2b21c Fix nullable string usage. 2020-06-26 13:20:49 -06:00
crobibero 9772749d8f Add more ignorepatterns and tests 2020-06-26 11:04:35 -06:00
dkanada 83ae4d074d use constructor to set optimal config values 2020-06-27 00:22:27 +09:00
Cody Robibero 5f1b1dc3cc fix nullability 2020-06-26 08:41:21 -06:00
BaronGreenback 2272363197 Update SsdpCommunicationsServer.cs 2020-06-26 15:24:46 +01:00
BaronGreenback 27f6e1ddc8 Update SsdpCommunicationsServer.cs 2020-06-26 15:22:39 +01:00
Mark Monteiro 0e9164351b Merge remote-tracking branch 'upstream/master' into external-id-type 2020-06-26 10:12:22 -04:00
dkanada 57caa9fdba Merge pull request #3435 from crobibero/revert-missing-fields
revert missing session fields
2020-06-26 06:21:00 +09:00
dkanada d0bc93e947 Merge pull request #3437 from barronpm/fix-user-delete
Fix User Deletion
2020-06-26 06:17:23 +09:00
dkanada bb7444db07 Merge pull request #3439 from cvium/ignore_application_folders
Never ignore application folders
2020-06-26 06:14:19 +09:00
dkanada fc722a612e Merge pull request #3445 from crobibero/invalid-image
catch skia errors when getting image dimensions
2020-06-26 06:11:42 +09:00
crobibero 9eba11379a catch skia errors when getting image dimensions 2020-06-25 12:10:33 -06:00
dkanada 9a43dce6d0 Merge pull request #3444 from jellyfin/badge
Fix azure badge
2020-06-26 03:00:40 +09:00
dkanada cc18aa38fa update badge to match azure link 2020-06-26 01:29:28 +09:00
dkanada 0714bde9ce fix azure badge 2020-06-26 01:25:14 +09:00
Claus Vium 0f07b19ca5 Remove AllowIgnorePath 2020-06-25 11:33:10 +02:00
Claus Vium 9dee1eef83 Never ignore application folders 2020-06-25 11:31:43 +02:00
Nyanmisaka 912946a427 Merge pull request from jellyfin/master 2020-06-25 16:37:40 +08:00
Franco Castillo 91c51ae675 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_AR/
2020-06-25 00:48:29 -04:00
peberis d0162bbe5a Translated using Weblate (Nepali)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ne/
2020-06-24 22:19:12 -04:00
Patrick Barron 5ee419ebe4 Fix typo 2020-06-24 21:07:39 -04:00
Patrick Barron 2967dd6afd Change to ResourceNotFoundException 2020-06-24 20:36:58 -04:00
Patrick Barron 9a01cd8590 Fix user deletion. 2020-06-24 20:19:47 -04:00
Pedro Nave 7da49d57b1 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt/
2020-06-24 19:39:44 -04:00
crobibero ef8bec23c4 revert missing session fields 2020-06-24 15:09:15 -06:00
Sasa d5dad64e61 Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hr/
2020-06-24 16:21:09 -04:00
BaronGreenback f01baad05e Sending multicasts out of Sockets without setting the broadcast to true - causes the error "Bad value for ai_flags" on some systems (#3404)
The underlying cause looks to be https://github.com/dotnet/runtime/issues/28630.

Basically, it's an access denied bug.
It looks like multicasts need the same access rights as broadcasts on some systems.
2020-06-24 17:23:16 +01:00
BaronGreenback c07d8abfd5 Removed debugging info 2020-06-24 17:11:02 +01:00
crobibero 44a8ea6bee implement ChangeEasyPassword from legacy provider 2020-06-24 09:45:11 -06:00
BaronGreenback 5b0c182908 Added logging and broadcast = true
Not intended for merge into the fork.
2020-06-24 14:31:17 +01:00
BaronGreenback 2486e48097 Merge pull request #30 from jellyfin/master
Updating master
2020-06-24 14:16:02 +01:00
Anthony Lavado 92091f13d3 Merge pull request #2904 from Bond-009/buffer
Use System.Buffers in RangeRequestWriter
2020-06-23 12:50:24 -04:00
Joshua M. Boniface fe1c80668c Merge pull request #3386 from jellyfin/azure-ci
Add Azure DevOps package builds
2020-06-23 12:12:31 -04:00
Bond-009 7481c3500a Merge pull request #3425 from crobibero/revert-baseitem-logger
Revert ILoggerFactory usage in BaseItem.cs
2020-06-23 16:01:00 +02:00
crobibero 1398c2117c Revert ILoggerFactory usage in BaseItem.cs 2020-06-23 07:31:59 -06:00
dkanada ec017be16b Merge pull request #3407 from telans/vscode
.gitignore: ignore jellyfin-web symlink & .vscode: dotnet telemetry optout
2020-06-23 21:17:35 +09:00
telans 712d581e01 remove vscode launch.json comments 2020-06-23 20:35:10 +12:00
telans 6bf4e1b28c gitignore: catch jellyfin-web as symlink 2020-06-23 20:35:10 +12:00
telans ae20776db3 vscode: dotnet telemetry optout 2020-06-23 20:35:08 +12:00
dkanada 4e08876028 Merge pull request #3418 from Bond-009/minor3
Minor changes
2020-06-23 16:56:44 +09:00
crobibero 3169b0af89 fix merge 2020-06-22 20:24:59 -06:00
crobibero f4d8e0e20c Merge remote-tracking branch 'upstream/master' into easypassword 2020-06-22 20:23:06 -06:00
dkanada 0be10db5a5 Merge pull request #3416 from jellyfin/dependabot/nuget/prometheus-net.AspNetCore-3.6.0
Bump prometheus-net.AspNetCore from 3.5.0 to 3.6.0
2020-06-23 01:43:23 +09:00
Anthony Lavado 649cccfc05 Merge pull request #3409 from Bond-009/scanerror
Fix scan crashed
2020-06-22 10:38:32 -04:00
Bond-009 3d42f37538 Minor changes 2020-06-22 15:35:53 +02:00
Bond-009 464066f362 Merge pull request #3411 from neilsb/system-plugin-removal
Prevent system plugins from being uninstalled
2020-06-22 15:23:35 +02:00
dependabot[bot] 35d80392ec Bump prometheus-net.AspNetCore from 3.5.0 to 3.6.0
Bumps [prometheus-net.AspNetCore](https://github.com/prometheus-net/prometheus-net) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/prometheus-net/prometheus-net/releases)
- [Changelog](https://github.com/prometheus-net/prometheus-net/blob/master/History)
- [Commits](https://github.com/prometheus-net/prometheus-net/compare/v3.5.0...v3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-22 13:16:21 +00:00
dkanada a3bc82727a Merge pull request #3414 from jellyfin/dependabot/nuget/prometheus-net-3.6.0
Bump prometheus-net from 3.5.0 to 3.6.0
2020-06-22 22:11:08 +09:00
dkanada 8320ed685a Merge pull request #3415 from jellyfin/dependabot/nuget/Swashbuckle.AspNetCore-5.5.0
Bump Swashbuckle.AspNetCore from 5.4.1 to 5.5.0
2020-06-22 22:10:48 +09:00
dkanada 2498c5f0ab Merge pull request #3417 from jellyfin/dependabot/nuget/Moq-4.14.3
Bump Moq from 4.14.1 to 4.14.3
2020-06-22 22:10:29 +09:00
dkanada 552a358c9c Merge pull request #3244 from jellyfin/custom-repos
Initial implementation for custom plugin repositories
2020-06-22 22:08:43 +09:00
dkanada 3d65cbdf07 apply suggestions from code review
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-06-22 21:59:56 +09:00
dependabot[bot] 3e57898d6b Bump Moq from 4.14.1 to 4.14.3
Bumps [Moq](https://github.com/moq/moq4) from 4.14.1 to 4.14.3.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.14.1...v4.14.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-22 12:01:53 +00:00
dependabot[bot] 12f700fb2a Bump Swashbuckle.AspNetCore from 5.4.1 to 5.5.0
Bumps [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases)
- [Commits](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/compare/v5.4.1...v5.5.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-22 12:01:34 +00:00
dependabot[bot] be4fdd2394 Bump prometheus-net from 3.5.0 to 3.6.0
Bumps [prometheus-net](https://github.com/prometheus-net/prometheus-net) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/prometheus-net/prometheus-net/releases)
- [Changelog](https://github.com/prometheus-net/prometheus-net/blob/master/History)
- [Commits](https://github.com/prometheus-net/prometheus-net/compare/v3.5.0...v3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-22 12:01:32 +00:00
Neil Burrows 0bab57ebbc Wrapping long line on function parameters (take 2) 2020-06-22 11:56:18 +01:00
Neil Burrows 966ebfaf68 Wrapping long line on function parameters 2020-06-22 11:53:15 +01:00
Neil Burrows a20fd34161 Update Emby.Server.Implementations/Updates/InstallationManager.cs
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-06-22 11:04:20 +01:00
Neil Burrows c20400fa40 Prevent system plugins from being uninstalled 2020-06-22 10:13:28 +01:00
Bond-009 f75024fade Fix scan crashed 2020-06-22 10:06:35 +02:00
Nitish Raj Uprety c3349038c4 Translated using Weblate (Nepali)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ne/
2020-06-21 15:37:41 -04:00
andyguerra 18602b4724 Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_419/
2020-06-21 12:54:20 -04:00
Nitish Raj Uprety 1c371812aa Added translation using Weblate (Nepali) 2020-06-21 10:23:49 -04:00
Joshua M. Boniface 680dd95292 Merge pull request #3394 from Ullmie02/fix-startupwizzard
Fix startup wizard in 10.6
2020-06-21 03:12:12 -04:00
Anthony Lavado 3a5df3d060 Merge pull request #3007 from BaronGreenback/SSDP
Fix for #2986
2020-06-20 17:39:00 -04:00
Cody Robibero 43221fc26b Merge branch 'master' into SSDP 2020-06-20 15:33:13 -06:00
Joshua M. Boniface 2506feb544 Update branch checks from azure-ci to master 2020-06-20 15:03:25 -04:00
BaronGreenback b5586e64f5 Merge pull request #25 from jellyfin/master
Update my master
2020-06-20 19:23:56 +01:00
David 82c1da34be Fix tests 2020-06-20 18:29:29 +02:00
Anthony Lavado bb947718ea Merge pull request #3380 from Bond-009/warn20
Enable TreatWarningsAsErrors in Release for MediaBrowser.Providers
2020-06-20 12:26:02 -04:00
David 1c78482b48 Use authorization code from api-migration to fix startup wizard 2020-06-20 18:02:03 +02:00
Bond-009 beb3896d7f Merge pull request #3390 from telans/fixes
Multiple warning fixes
2020-06-20 16:48:48 +02:00
telans 6556bec646 brace multiline if statements (cont.) 2020-06-20 21:19:16 +12:00
telans 5bb639a59a newlines after braces 2020-06-20 21:13:48 +12:00
telans 7f307f9082 brace multiline if statements 2020-06-20 21:12:36 +12:00
telans 98db8f72e0 fix SA1503 for one line if statements 2020-06-20 20:35:29 +12:00
telans 8e3d874802 remove regions 2020-06-20 18:20:33 +12:00
telans 8de6452967 fix some documentation periods 2020-06-20 18:13:11 +12:00
telans afe09612e8 fix SA1119 2020-06-20 18:13:11 +12:00
Joshua M. Boniface 4bfb4c9095 Remove as builder element as well 2020-06-19 17:46:58 -04:00
Joshua M. Boniface d8428b0a0a Move ARGs for directories to after import 2020-06-19 17:44:04 -04:00
Joshua M. Boniface ddc7b399a6 Add mkdir of the SOURCE_DIR before setting WORKDIR 2020-06-19 17:41:20 -04:00
Joshua M. Boniface b778bcdb37 Update strategy names for Docker 2020-06-19 17:33:07 -04:00
BaronGreenback 46006a1aff Re-ordered code for the match 2020-06-19 22:32:07 +01:00
Joshua M. Boniface 7b1190cb28 Build builder docker images in Azure 2020-06-19 17:20:48 -04:00
Joshua M. Boniface 5a1971c280 Add builder docker images 2020-06-19 17:17:44 -04:00
BaronGreenback 6c2139a4c1 Merge branch 'SSDP' of https://github.com/BaronGreenback/jellyfin into SSDP 2020-06-19 22:07:43 +01:00
BaronGreenback 02f6ced07a Merged 2020-06-19 22:07:25 +01:00
Joshua M. Boniface a418c24806 Modify build scripts to build Unstable versions 2020-06-19 16:31:59 -04:00
Joshua M. Boniface 3599ae7186 Add Azure pipelines configuration for server 2020-06-19 16:25:11 -04:00
Bond_009 eba488a0f8 Enable TreatWarningsAsErrors in Release for MediaBrowser.Providers 2020-06-19 20:24:13 +02:00
dkanada e8e5208fbd Merge pull request #3360 from Bond-009/fix-3359
Fix Task that ignores cancellation request
2020-06-20 03:04:24 +09:00
wky 62d86293eb Translated using Weblate (Chinese (Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2020-06-19 12:17:39 -04:00
crobibero 7a9113adff Remove (unused) SessionId route parameter 2020-06-19 09:09:31 -06:00
Bond-009 cae3ed8aeb Merge pull request #3316 from aled/check-stored-password-exists
Fix server error when user enters a password, but none is set.
2020-06-19 16:59:35 +02:00
Bond-009 a3c0b8a826 Merge branch 'master' into buffer 2020-06-18 17:01:15 +02:00
Bond_009 46276acc22 Fix Task that ignores cancellation request 2020-06-17 19:20:43 +02:00
Bond-009 fbefddbb81 Merge pull request #3334 from crobibero/warning-local-metadata
Remove warnings from MediaBrowser.LocalMetadata
2020-06-17 18:07:59 +02:00
Cody Robibero 8604b712bd Update MediaBrowser.LocalMetadata/Images/EpisodeLocalImageProvider.cs
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-06-17 09:53:02 -06:00
BaronGreenback b2e1d70191 Merge pull request #24 from jellyfin/master
Updating my master
2020-06-17 11:43:38 +01:00
Anthony Lavado fde63e16cb Merge pull request #3358 from crobibero/people-blurhash
Enable BlurHash for People
2020-06-16 21:23:20 -04:00
crobibero a639663aa7 Merge remote-tracking branch 'upstream/master' into warning-local-metadata 2020-06-16 18:30:10 -06:00
crobibero 0651d7512b Enable BlurHash for People 2020-06-16 15:12:48 -06:00
aled 991b6fb739 Merge remote-tracking branch 'upstream/master' into check-stored-password-exists 2020-06-16 19:30:54 +01:00
aled 05f736defb Merge branch 'master' into check-stored-password-exists
# Conflicts:
#	Jellyfin.Server.Implementations/Users/DefaultAuthenticationProvider.cs
2020-06-16 19:30:23 +01:00
dkanada e77f6194f2 add missing comma in array 2020-06-17 02:16:17 +09:00
dkanada f5d82441a4 Merge branch 'master' into custom-repos 2020-06-17 02:09:32 +09:00
dkanada 215ab39e00 Merge pull request #3342 from BaronGreenback/BugFix2
Fix for [DLNA] Many log messages from Media Renderers trying to see old events
2020-06-16 19:02:16 +09:00
dkanada 2bdea29e25 Merge pull request #3353 from Bond-009/args
Remove code for handling single hyphen arguments
2020-06-16 18:59:11 +09:00
Bond-009 9af6eda0b4 Merge pull request #3343 from telans/comment-stops
Add full stop at end of comments (SA1629)
2020-06-16 11:54:58 +02:00
Bond-009 4d91060c25 Merge pull request #3341 from telans/brace-spacing
Add newlines after closing braces (SA1513/SA1516)
2020-06-16 11:49:42 +02:00
Prokash Sarkar ebfd1e7c47 Translated using Weblate (Bengali)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bn/
2020-06-16 03:11:10 -04:00
telans ab3dece9f1 fix brace spacing for do while loops 2020-06-16 16:11:32 +12:00
telans 247f9c61e6 fix SA1513/SA1516 2020-06-16 16:11:30 +12:00
Anthony Lavado 25f8e596cb Merge pull request #2809 from nyanmisaka/hwaccel
Add more separate hardware decoding toggles, support videotoolbox
2020-06-16 00:07:55 -04:00
telans 9018f8d8be Add full stop at end of comments (SA1629) 2020-06-16 10:37:52 +12:00
Joe DF 741db0287a Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr_CA/
2020-06-15 15:01:30 -04:00
Bond-009 73481c3ba4 Merge pull request #3344 from jellyfin/dependabot/nuget/PlaylistsNET-1.0.6
Bump PlaylistsNET from 1.0.4 to 1.0.6
2020-06-15 19:07:47 +02:00
Bond_009 b30ae1a949 Remove code for handling single hyphen arguments
and return exit code 1 when argument parsing fails
2020-06-15 17:06:57 +02:00
crobibero 24f54837e1 Switch to M3uContent 2020-06-15 08:34:24 -06:00
Bond-009 75b7fea024 Merge pull request #3350 from jellyfin/dependabot/nuget/sharpcompress-0.25.1
Bump sharpcompress from 0.25.0 to 0.25.1
2020-06-15 16:17:04 +02:00
Bond-009 0426f3d93d Merge pull request #3349 from jellyfin/dependabot/nuget/Serilog.Sinks.Graylog-2.1.3
Bump Serilog.Sinks.Graylog from 2.1.2 to 2.1.3
2020-06-15 16:16:43 +02:00
Bond-009 20bd5474df Merge pull request #3348 from jellyfin/dependabot/nuget/CommandLineParser-2.8.0
Bump CommandLineParser from 2.7.82 to 2.8.0
2020-06-15 16:16:07 +02:00
Bond-009 d0cef71dfa Merge pull request #3347 from jellyfin/dependabot/nuget/Swashbuckle.AspNetCore-5.4.1
Bump Swashbuckle.AspNetCore from 5.0.0 to 5.4.1
2020-06-15 16:12:49 +02:00
Bond-009 0fff5b92c2 Merge pull request #3346 from jellyfin/dependabot/nuget/coverlet.collector-1.3.0
Bump coverlet.collector from 1.2.1 to 1.3.0
2020-06-15 16:12:21 +02:00
Bond-009 4837c19bff Merge pull request #3351 from jellyfin/dependabot/nuget/IPNetwork2-2.5.211
Bump IPNetwork2 from 2.4.0.126 to 2.5.211
2020-06-15 16:11:41 +02:00
dependabot[bot] 58118aca0c Bump IPNetwork2 from 2.4.0.126 to 2.5.211
Bumps [IPNetwork2](https://github.com/lduchosal/ipnetwork) from 2.4.0.126 to 2.5.211.
- [Release notes](https://github.com/lduchosal/ipnetwork/releases)
- [Commits](https://github.com/lduchosal/ipnetwork/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:38 +00:00
dependabot[bot] 6d99d55fd6 Bump sharpcompress from 0.25.0 to 0.25.1
Bumps [sharpcompress](https://github.com/adamhathcock/sharpcompress) from 0.25.0 to 0.25.1.
- [Release notes](https://github.com/adamhathcock/sharpcompress/releases)
- [Commits](https://github.com/adamhathcock/sharpcompress/compare/0.25...0.25.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:36 +00:00
dependabot[bot] 685458b40d Bump Serilog.Sinks.Graylog from 2.1.2 to 2.1.3
Bumps [Serilog.Sinks.Graylog](https://github.com/whir1/serilog-sinks-graylog) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/whir1/serilog-sinks-graylog/releases)
- [Commits](https://github.com/whir1/serilog-sinks-graylog/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:35 +00:00
dependabot[bot] b0093fbce4 Bump CommandLineParser from 2.7.82 to 2.8.0
Bumps [CommandLineParser](https://github.com/commandlineparser/commandline) from 2.7.82 to 2.8.0.
- [Release notes](https://github.com/commandlineparser/commandline/releases)
- [Changelog](https://github.com/commandlineparser/commandline/blob/master/CHANGELOG.md)
- [Commits](https://github.com/commandlineparser/commandline/commits/2.8.0)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:32 +00:00
dependabot[bot] 95884752de Bump Swashbuckle.AspNetCore from 5.0.0 to 5.4.1
Bumps [Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) from 5.0.0 to 5.4.1.
- [Release notes](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases)
- [Commits](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/compare/v5.0.0...v5.4.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:29 +00:00
dependabot[bot] 979137f567 Bump coverlet.collector from 1.2.1 to 1.3.0
Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/coverlet-coverage/coverlet/releases)
- [Commits](https://github.com/coverlet-coverage/coverlet/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:24 +00:00
dependabot[bot] c243ec7ce9 Bump PlaylistsNET from 1.0.4 to 1.0.6
Bumps [PlaylistsNET](https://github.com/tmk907/PlaylistsNET) from 1.0.4 to 1.0.6.
- [Release notes](https://github.com/tmk907/PlaylistsNET/releases)
- [Commits](https://github.com/tmk907/PlaylistsNET/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-15 12:01:17 +00:00
dkanada dabb869a6b Merge branch 'master' into hwaccel 2020-06-15 20:21:25 +09:00
BaronGreenback 6d6793151a Null pointer check added for subscription as 2nd param is false. 2020-06-15 10:10:52 +01:00
BaronGreenback 862bcdba67 Merge pull request #23 from jellyfin/master
updating
2020-06-15 10:01:55 +01:00
Anthony Lavado 100e9d586d Merge pull request #3336 from telans/specific-fixes
Fix trivial SA1005, SA1111, SA1508, SA1510 warnings
2020-06-14 22:51:29 -04:00
dkanada f026a1d721 Merge pull request #3267 from pusta/Contributors-Update
CONTRIBUTORS.md - Updated jellyfin-server-windows to compile against .Net Core 3.1
2020-06-15 10:57:13 +09:00
dkanada 6db1878011 Merge pull request #3315 from crobibero/dashboard-update
Add MessageId to websocket message, fix ws exception
2020-06-15 10:55:33 +09:00
dkanada 155ee5ee9d Merge pull request #3329 from telans/code-analyzer-tests
Enable code analyzers for tests
2020-06-15 10:50:08 +09:00
dkanada 4f2ae5c9e1 Merge pull request #3158 from Artiume/patch-5
Update Library Service
2020-06-15 10:46:54 +09:00
telans 8620dfc18b remove symlink 2020-06-15 10:46:44 +12:00
telans afc9224ede fix SA1111 2020-06-15 10:46:43 +12:00
telans 9b528aabc2 misc 2020-06-15 10:45:59 +12:00
telans 3d9049ef08 fix SA1508 2020-06-15 10:45:55 +12:00
telans acd4389653 fix SA1005 2020-06-15 10:41:00 +12:00
telans 726e116d5b fix SA1510 2020-06-15 10:40:57 +12:00
Anthony Lavado 15aea76523 Merge pull request #3148 from barronpm/userdb-efcore
Migrate User DB to EF Core
2020-06-14 18:31:27 -04:00
telans 4cb8fbfbbf fix StyleCop warning in Jellyfin.MediaEncoding.Tests 2020-06-14 18:56:47 +12:00
crobibero 7b54a43cc1 Fix docs typo 2020-06-13 20:15:19 -06:00
crobibero 14f32b4927 Remove warnings from MediaBrowser.LocalMetadata 2020-06-13 20:04:53 -06:00
Patrick Barron 42b4f0aa2e Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Library/UserManager.cs
#	Jellyfin.Data/Jellyfin.Data.csproj
2020-06-13 19:41:05 -04:00
Patrick Barron e8f8307521 Add comment 2020-06-13 19:30:45 -04:00
Patrick Barron 6f325fea61 Add missing properties to UserDto 2020-06-13 18:26:46 -04:00
Patrick Barron 8405ae9b1f Actually set BlockUnratedItems 2020-06-13 18:23:13 -04:00
Patrick Barron aa4ac5902e Fix concurrency exception 2020-06-13 18:08:17 -04:00
Patrick Barron 3278015444 Actually fix profile images 2020-06-13 16:38:17 -04:00
Chris Kapusta b8d80bf09c Update CONTRIBUTORS.md
Co-authored-by: Bond-009 <bond.009@outlook.com>
2020-06-13 14:32:42 -05:00
BaronGreenback 4d50941d44 Merge pull request #22 from jellyfin/master
another
2020-06-13 17:56:10 +01:00
Patrick Barron 1e1386bbc6 Fix build issues 2020-06-13 11:59:19 -04:00
Patrick Barron 84f0cf6cc6 Regenerate migrations 2020-06-13 11:56:18 -04:00
Patrick Barron 103c9b7162 Actually fix deleting profile images (hopefully) 2020-06-13 08:28:42 -04:00
telans bf5b21e67b enable code analyzers for tests 2020-06-13 23:37:41 +12:00
dkanada 403cd3205f Merge pull request #3254 from crobibero/ilogger
Use typed logger where possible
2020-06-13 00:29:43 +09:00
crobibero 5b6e8fb22c Remove whitespace 2020-06-12 06:53:47 -06:00
dkanada 91fcd56380 Merge pull request #3071 from rigtorp/tvdb-normalize
Make tvdb name normalizer unicode aware
2020-06-12 13:38:09 +09:00
dkanada 72a688aa7a Merge pull request #3298 from jellyfin/dependabot/nuget/SQLitePCLRaw.bundle_e_sqlite3-2.0.3
Bump SQLitePCLRaw.bundle_e_sqlite3 from 2.0.2 to 2.0.3
2020-06-12 13:34:57 +09:00
dkanada 6033058f51 Merge pull request #3313 from crobibero/update-dotnet-core
Update to .NET Core 3.1.5
2020-06-12 13:34:42 +09:00
Anthony Lavado 5d3ff25e26 Merge pull request #3291 from cvium/fix_authenticationexception
Use the "legacy" AuthenticationException in AuthService
2020-06-11 23:14:33 -04:00
Erik Rigtorp 82e8865147 Make tvdb name normalizer unicode aware 2020-06-11 17:26:38 -07:00
Patrick Barron d0e2027b05 (Hopefully) fix concurrency exceptions. 2020-06-11 19:45:31 -04:00
Patrick Barron fc02157b42 Fix build errors 2020-06-11 18:28:49 -04:00
Patrick Barron 7a115024aa Merge branch 'master' into userdb-efcore
# Conflicts:
#	MediaBrowser.Controller/Library/ILibraryManager.cs
#	MediaBrowser.Providers/Users/UserMetadataService.cs
2020-06-11 18:23:12 -04:00
Cody Robibero 4c0dd10fb3 Update MediaBrowser.Common/Json/Converters/JsonNonStringKeyDictionaryConverter.cs
Co-authored-by: aled <aled@wibblr.com>
2020-06-11 16:21:53 -06:00
BaronGreenback 306f7b3c30 Update INetworkManager.cs 2020-06-11 23:10:13 +01:00
BaronGreenback 2cecde658b Update INetworkManager.cs
Editting comments - adding periods
2020-06-11 22:58:29 +01:00
Patrick Barron 7fba0b778e Properly remove profile images 2020-06-11 17:51:02 -04:00
BaronGreenback 4d9171f691 Update DlnaEntryPoint.cs
Left a _config behind.
2020-06-11 22:40:43 +01:00
aled c722ad22ec Handle the case when the stored password is null, but the user tried to login with a password. 2020-06-11 20:33:46 +01:00
Bond-009 762e0c8d17 Merge pull request #3289 from rigtorp/tmdb-comment-fix
Clarify comment and log actual search string in TMDB search provider
2020-06-11 19:12:30 +02:00
crobibero 30609c848b Add MessageId to websocket message, add JsonNonStringKeyDictionaryConverter 2020-06-11 10:51:47 -06:00
dkanada 157d8f6145 Merge pull request #3309 from jellyfin/dependabot/nuget/ServiceStack.Text.Core-5.9.0
Bump ServiceStack.Text.Core from 5.8.0 to 5.9.0
2020-06-11 23:30:22 +09:00
dkanada ce9e7d47b7 Merge pull request #3293 from jellyfin/dependabot/nuget/System.Text.Encoding.CodePages-4.7.1
Bump System.Text.Encoding.CodePages from 4.7.0 to 4.7.1
2020-06-11 23:29:46 +09:00
dkanada ea7e8ced57 Merge pull request #3292 from jellyfin/dependabot/nuget/SkiaSharp.NativeAssets.Linux-1.68.3
Bump SkiaSharp.NativeAssets.Linux from 1.68.1 to 1.68.3
2020-06-11 23:29:27 +09:00
Cody Robibero 17ffb689e0 Merge branch 'master' into update-dotnet-core 2020-06-11 07:16:45 -06:00
crobibero a6815018dc Update to .NET Core 3.1.5 2020-06-11 07:13:56 -06:00
dependabot[bot] 00b340557f Bump SkiaSharp.NativeAssets.Linux from 1.68.1 to 1.68.3
Bumps SkiaSharp.NativeAssets.Linux from 1.68.1 to 1.68.3.

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 12:18:07 +00:00
dkanada 55610f8359 Merge pull request #3295 from jellyfin/dependabot/nuget/SkiaSharp-1.68.3
Bump SkiaSharp from 1.68.1 to 1.68.3
2020-06-11 21:17:26 +09:00
dkanada 4ef459033f Merge pull request #3294 from jellyfin/dependabot/nuget/Microsoft.NET.Test.Sdk-16.6.1
Bump Microsoft.NET.Test.Sdk from 16.5.0 to 16.6.1
2020-06-11 21:17:03 +09:00
dkanada bdc249c000 Merge pull request #3301 from jellyfin/dependabot/nuget/Moq-4.14.1
Bump Moq from 4.13.1 to 4.14.1
2020-06-11 21:16:26 +09:00
dependabot[bot] 09e0abebf9 Bump ServiceStack.Text.Core from 5.8.0 to 5.9.0
Bumps [ServiceStack.Text.Core](https://github.com/ServiceStack/ServiceStack.Text) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/ServiceStack/ServiceStack.Text/releases)
- [Commits](https://github.com/ServiceStack/ServiceStack.Text/compare/v5.8...v5.9)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:27 +00:00
dependabot[bot] 98a0bfc505 Bump Moq from 4.13.1 to 4.14.1
Bumps [Moq](https://github.com/moq/moq4) from 4.13.1 to 4.14.1.
- [Release notes](https://github.com/moq/moq4/releases)
- [Changelog](https://github.com/moq/moq4/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moq/moq4/compare/v4.13.1...v4.14.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:20 +00:00
dependabot[bot] ef9a8c5414 Bump SQLitePCLRaw.bundle_e_sqlite3 from 2.0.2 to 2.0.3
Bumps [SQLitePCLRaw.bundle_e_sqlite3](https://github.com/ericsink/SQLitePCL.raw) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/ericsink/SQLitePCL.raw/releases)
- [Commits](https://github.com/ericsink/SQLitePCL.raw/commits/v2.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:15 +00:00
dependabot[bot] 81b1803153 Bump SkiaSharp from 1.68.1 to 1.68.3
Bumps SkiaSharp from 1.68.1 to 1.68.3.

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:13 +00:00
dependabot[bot] a4de0bb373 Bump Microsoft.NET.Test.Sdk from 16.5.0 to 16.6.1
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 16.5.0 to 16.6.1.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v16.5.0...v16.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:13 +00:00
dependabot[bot] 33f70bd5f0 Bump System.Text.Encoding.CodePages from 4.7.0 to 4.7.1
Bumps [System.Text.Encoding.CodePages](https://github.com/dotnet/corefx) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-11 10:30:11 +00:00
dkanada a181c9cc01 Merge pull request #3248 from crobibero/dependabot2
Add dependabot
2020-06-11 19:29:38 +09:00
dkanada 5cdf951643 Merge pull request #3222 from barronpm/activitylog-migration-fix
Fix Activity Log Migrations for Very Old Databases
2020-06-11 19:27:42 +09:00
Claus Vium 5bb630ea7c Use the "legacy" AuthenticationException 2020-06-11 10:59:57 +02:00
Patrick Barron a194895e7a Add missing default permission 2020-06-10 20:53:33 -04:00
Patrick Barron 4d559b4ec4 Fix bugs for fresh installs. 2020-06-10 20:14:24 -04:00
Erik Rigtorp 095afe6359 Clarify comment and log actual search string 2020-06-10 10:58:43 -07:00
Bond-009 9f755dc422 Merge pull request #3284 from EraYaN/abi-compat-nuget
Install compatibility tool from nuget instead of pulling a github release
2020-06-10 14:30:20 +02:00
Erwin de Haan 427632611a Remove extract task. 2020-06-10 14:09:34 +02:00
Erwin de Haan 4c9216012b Install compatibility tool from nuget instead of pulling a github release. 2020-06-10 14:01:37 +02:00
Bond-009 19e00dcd2f Merge pull request #3282 from aled/2149-fix-a-small-number-of-compile-warnings-2
Fix a small number of compile warnings
2020-06-10 11:59:21 +02:00
aled 299e49f39d Fix a small number of compile warnings 2020-06-09 23:12:53 +01:00
BaronGreenback 5cf44e7736 Removed spaces 2020-06-09 22:11:23 +01:00
BaronGreenback 6d8ab50be9 No changes my end 2020-06-09 22:09:34 +01:00
BaronGreenback 93568be3e7 Updates 2020-06-09 22:05:22 +01:00
Bond-009 ad5c41b542 Merge pull request #3258 from aled/2149-fix-a-small-number-of-compile-warnings-1
Fix a small number of compile warnings
2020-06-09 22:22:36 +02:00
Patrick Barron d105bc728d Fix startup wizard. 2020-06-09 14:04:25 -04:00
Patrick Barron ce737c31ec Enable nullable annotations 2020-06-09 13:35:29 -04:00
dkanada 998d5674a2 Merge pull request #3259 from crobibero/omdb-plugin-config
Add omdb config as embedded resource
2020-06-09 14:23:06 +09:00
dkanada 19edd11292 Merge pull request #3185 from Ullmie02/api-exception-handling
Don't Send Exception Messages (Old API)
2020-06-09 14:22:45 +09:00
dkanada dcc131740d Merge pull request #3268 from crobibero/ignore-path
Force configuration paths to not be ignored.
2020-06-08 22:06:28 +09:00
artiume b79957d07e Split HEVC VP9 10bit 2020-06-08 14:45:27 +03:00
artiume 0476acf5d5 Update EncoderValidator.cs 2020-06-08 14:45:26 +03:00
artiume d650440492 fix opencl10bit 2020-06-08 14:45:26 +03:00
artiume 347689e4e2 Split VP9 HEVC 10bit button. MacOS Decoder fixed to opencl 2020-06-08 14:45:26 +03:00
Vasily 4999831604 Merge remote-tracking branch 'upstream/master' into hwaccel 2020-06-08 14:44:21 +03:00
Bond-009 616d24f91c Merge pull request #3270 from KristupasSavickas/reduce-blurhash-logspam
reduce log spam when generating blurhashes
2020-06-08 13:41:54 +02:00
Kristupas Savickas 18e06e53b4 reduce log spam when generating blurhashes 2020-06-08 10:27:03 +03:00
Patrick Barron d85308b474 Add another missing property 2020-06-07 23:11:51 -04:00
crobibero 7ed5cf3dca Force configuration paths to not be ignored. 2020-06-07 20:32:06 -06:00
Patrick Barron 824cd87b75 Add missing property 2020-06-07 20:16:51 -04:00
Patrick Barron 75af0a4e57 Implement more review suggestions 2020-06-07 19:37:47 -04:00
crobibero 3d87c4c1b6 Fix EasyPassword setting 2020-06-07 14:55:37 -06:00
crobibero 68e1ecaaf9 Remove EasyPassword from Authentication providers 2020-06-07 14:47:08 -06:00
Chris Kapusta 3b0cdd4716 Update CONTRIBUTORS.md 2020-06-07 15:43:39 -05:00
Mahabub Islam Prio 99c9d99db7 Translated using Weblate (Bengali)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bn/
2020-06-07 15:35:54 -04:00
Patrick Barron 98142613e8 Apply review suggestions and fix bug 2020-06-07 13:36:43 -04:00
dkanada 3f58bd7c58 disable nullable errors for new model 2020-06-07 21:26:50 +09:00
dkanada 52cd955a8f merge branch master into custom-repos 2020-06-07 21:23:15 +09:00
dkanada 91f60c2139 add missing line from using block 2020-06-07 21:23:11 +09:00
Anthony Lavado 883e92fc96 Merge pull request #3262 from jellyfin/azure
Disable sonarcloud until secrets are working
2020-06-07 08:18:32 -04:00
dkanada 686066b134 Merge pull request #3250 from shayaantx/master
Ignore languages with null ids when fetching images from tvdb
2020-06-07 14:50:46 +09:00
dkanada 3d7f236038 Merge pull request #3255 from itegulov/books-resume
Make books resumable
2020-06-07 14:49:15 +09:00
dkanada c99ad51c65 use single quotes in the main pipeline 2020-06-07 14:38:46 +09:00
dkanada 65765bda7e rename abi pipeline 2020-06-07 14:37:08 +09:00
dkanada e7a49f73cd disable sonarcloud until secrets are working 2020-06-07 14:33:10 +09:00
Cody Robibero a6999422ea remove extra spacing 2020-06-06 20:36:07 -06:00
crobibero 826ed9d9c7 Add omdb config as embedded resource 2020-06-06 16:30:18 -06:00
aled 22a860a806 Fix a small number of compile warnings 2020-06-06 20:17:49 +01:00
dkanada 7161a30af7 improve error handling when a single repository has issues
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-07 02:08:05 +09:00
crobibero 0982b73c11 Merge remote-tracking branch 'upstream/master' into ilogger 2020-06-06 08:26:34 -06:00
dkanada 8ac2f1bb8b simplify the custom repository feature for now 2020-06-06 22:02:30 +09:00
dkanada d6184dbadd remove unnecessary property for repository object 2020-06-06 18:57:00 +09:00
dkanada 1a67a34bd6 save configuration when updating repository list
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-06 18:37:45 +09:00
Daniyar Itegulov 613748b45d Make books resumable and have duration of 1 second 2020-06-06 18:50:28 +10:00
dkanada 6d4f3c42a2 Merge pull request #3208 from jellyfin/plugins
More work for core plugins
2020-06-06 12:27:45 +09:00
Patrick Barron fa80f84f26 Merge branch 'userdb-efcore' of https://github.com/barronpm/jellyfin into userdb-efcore 2020-06-05 22:33:34 -04:00
Patrick Barron bb23ce3466 Merge branch 'master' into userdb-efcore 2020-06-05 22:31:13 -04:00
crobibero 57d1dbfe7b undo erroneous changes 2020-06-05 18:29:58 -06:00
crobibero 44957c5a9a Use typed logger where possible 2020-06-05 18:15:56 -06:00
crobibero 3faea5aa21 Merge remote-tracking branch 'upstream/master' into dependabot2 2020-06-05 16:55:36 -06:00
shayaantx 42bbfa772f Update TvdbSeasonImageProvider.cs 2020-06-05 18:14:47 -04:00
crobibero 340624c54b Move default repo addition to migration 2020-06-05 13:23:38 -06:00
Bond-009 5e056beaae Merge pull request #3252 from YouKnowBlom/fix-safari-hls
Fix incorrect HLS master playlist fields
2020-06-05 21:09:52 +02:00
Andreas B d92b32a4c6 Fix incorrect HLS master playlist fields
Resolves: #3224
2020-06-05 22:05:33 +02:00
Bond-009 258f2ff686 Merge pull request #3245 from jellyfin/fix-azure
Fix some issues with the CI
2020-06-05 19:25:57 +02:00
shayaantx 4623cb8385 Ignore languages with null ids 2020-06-04 21:30:02 -04:00
SaddFox 0b0184de2e Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2020-06-04 17:31:54 -04:00
Marius Lindvall 16e190c49d Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nb_NO/
2020-06-04 17:31:54 -04:00
Patrick Barron 06f9cde22f Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/EntryPoints/ServerEventNotifier.cs
#	Emby.Server.Implementations/Library/UserManager.cs
#	Emby.Server.Implementations/Sorting/IsFavoriteOrLikeComparer.cs
#	Emby.Server.Implementations/Sorting/IsPlayedComparer.cs
#	Emby.Server.Implementations/Sorting/IsUnplayedComparer.cs
#	Emby.Server.Implementations/TV/TVSeriesManager.cs
#	Jellyfin.Server.Implementations/Users/DefaultAuthenticationProvider.cs
2020-06-04 16:52:23 -04:00
Cody Robibero 1730b0ae83 Update dependabot.yml 2020-06-04 13:22:39 -06:00
Patrick Barron ef7bbb3b84 Use data binding instead of raw SQL 2020-06-04 14:54:43 -04:00
crobibero 4bcd7cffd1 Add dependabot 2020-06-04 11:14:01 -06:00
dkanada 2e7d7abe8e disable rule that requires comments in two image providers for now 2020-06-05 00:17:36 +09:00
dkanada feda2947b7 add missing comments for a few image providers 2020-06-05 00:13:06 +09:00
dkanada 8ce7a0e6be small modification to data project 2020-06-05 00:03:01 +09:00
dkanada b7f4b8e2b5 initial implementation for custom plugin repositories 2020-06-04 23:57:57 +09:00
dkanada 836741f2aa Merge pull request #2154 from dkanada/artist-collage
Add image provider for artists
2020-06-04 22:28:51 +09:00
dkanada 6022f9f1da disable specific rule for playlist image provider 2020-06-04 21:35:06 +09:00
dkanada 17031fb38d disable artist image provider until configurable 2020-06-04 21:32:25 +09:00
dkanada 3f3bb668a3 fix namespace for providers that were moved 2020-06-04 21:32:25 +09:00
dkanada c9c6fe02ab move most of the image providers to a single directory 2020-06-04 21:32:20 +09:00
dkanada aa66444264 add image provider for artists 2020-06-04 21:30:23 +09:00
dkanada 8d7e9ab515 minor refactoring 2020-06-04 21:30:09 +09:00
Vasily 21505377d5 Merge pull request #3236 from Bond-009/common
Enable StyleCop for MediaBrowser.Common
2020-06-04 11:56:41 +03:00
dkanada 2252772944 Merge pull request #3237 from Bond-009/erroronwarn
Enable TreatWarningsAsErrors for more projects
2020-06-04 14:48:19 +09:00
dkanada 44eebd7754 Merge pull request #3164 from dkanada/install-plugin
Fix a few issues with the plugin manifest
2020-06-04 14:46:55 +09:00
crobibero 2ac111dedb add missing ConfigureAwait 2020-06-03 13:54:55 -06:00
crobibero 9661135b5b fix build 2020-06-03 13:48:33 -06:00
Lluís Forns fc79833931 Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ca/
2020-06-03 14:36:23 -04:00
dkanada fe16c3fad4 Merge branch 'master' into install-plugin 2020-06-04 03:20:48 +09:00
dkanada 7176a9a30a fix build issues
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-04 03:18:55 +09:00
Bond-009 f0d182b8fe Merge pull request #3046 from puschie286/add-clean-name-tag
allow bd tag in file names
2020-06-03 15:50:32 +02:00
Bond-009 98582b90a3 Merge branch 'master' into erroronwarn 2020-06-03 14:34:21 +02:00
Bond-009 af7edfc220 Merge branch 'master' into common 2020-06-03 14:33:54 +02:00
Vasily 73cc214bf2 Merge pull request #3235 from Bond-009/build
Fix build
2020-06-03 15:21:38 +03:00
Bond-009 af93ec750c Enable TreatWarningsAsErrors for more projects 2020-06-03 13:22:40 +02:00
Bond-009 f404e915ee Enable StyleCop for MediaBrowser.Common 2020-06-03 13:04:45 +02:00
Bond-009 2dbb9d4895 Fix build 2020-06-03 11:54:01 +02:00
Vasily 40502a33e0 Merge pull request #3203 from Bond-009/warn18
Enable TreatWarningsAsErrors for Jellyfin.Server.Implementations in Release mode
2020-06-03 12:27:59 +03:00
Vasily 668e10ceb7 Merge pull request #2767 from Bond-009/nullable3
Enable nullabe reference types for MediaBrowser.Model
2020-06-03 12:26:54 +03:00
Vasily 959a9655c8 Update MediaBrowser.Model/Services/IHasRequestFilter.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-03 12:26:40 +03:00
Anthony Lavado c31b2798a5 Merge pull request #3180 from xumix/master
Refactor copy codec checks
2020-06-03 02:47:15 -04:00
Anthony Lavado 91b089c0fa Merge pull request #3179 from Bond-009/bugs
Fix some 'bugs' flagged by sonarcloud
2020-06-03 02:45:22 -04:00
dkanada 6a7cb21b7e apply code suggestions
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-03 15:24:17 +09:00
Patrick Barron bb828d54c5 Remove unused methods 2020-06-02 14:40:48 -04:00
Vasily b9618c8c01 Merge pull request #2676 from GranPC/public-pr/blurhash
Implement Blurhash generation for images
2020-06-02 17:25:45 +03:00
David 37a4cc599b Remove duplicate code
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-06-02 15:05:57 +02:00
Patrick Barron b0281b79fd Fix a bug where very old Emby databases didn't use proper Guid's 2020-06-01 20:12:34 -04:00
Aswin Kumar d38adb95a7 Translated using Weblate (Tamil)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ta/
2020-06-01 11:38:22 -04:00
Vasily 26eef1bbf8 Move logic of computing Blurhash components to ImageProcessor
Also rename last few instances of GetImageHash to GetImageBlurHash for clarity
2020-06-01 18:12:49 +03:00
Aswin Kumar f8e8bfc399 Added translation using Weblate (Tamil) 2020-06-01 07:00:09 -04:00
BaronGreenback 1d86084653 Update Emby.Server.Implementations/Networking/NetworkManager.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-01 10:14:38 +01:00
BaronGreenback adb789a802 Update Emby.Server.Implementations/Networking/NetworkManager.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-01 09:58:16 +01:00
BaronGreenback fbd02a493b Update Emby.Server.Implementations/Networking/NetworkManager.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-01 09:57:48 +01:00
BaronGreenback 455e464445 Update Emby.Server.Implementations/Networking/NetworkManager.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-06-01 09:57:17 +01:00
Ken Brazier 36312c92f5 2354 open soft-links to read size 2020-05-31 16:40:02 -06:00
Patrick Barron 585fdbad39 Apply review suggestion and fix entity concurrency tokens. 2020-05-31 17:00:57 -04:00
Bond-009 b89565110d Merge pull request #3214 from danieladov/master
Order ids to merge to avoid stack overflow
2020-05-31 21:57:57 +02:00
danieladov be5ce32bb6 refactor MediaBrowser.Api/VideosService.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-05-31 20:42:22 +02:00
danieladov 8e0b1109bc refactor
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-05-31 20:35:09 +02:00
Mister Rajoy 1b90798b90 Order ids to merge to avoid stack overflow
As said in https://github.com/jellyfin/jellyfin/issues/3176, merging 1 with 2 and then 2 with 1 cause an stack overflow. sorting ids first fix the problem
2020-05-31 20:23:23 +02:00
dkanada 855a2b2892 fix some easy warnings for tmdb 2020-05-31 15:28:01 +09:00
dkanada 685f8ad1f0 move tmdb to plugin folder 2020-05-31 15:23:09 +09:00
dkanada d72bb8358e minor changes to server configuration file 2020-05-31 15:20:17 +09:00
dkanada 24f7f84828 add plugin configurations for tvdb and omdb 2020-05-31 15:15:34 +09:00
Patrick Barron edbb1482e8 Remove unused compile remove statements. 2020-05-31 00:15:41 -04:00
Patrick Barron 63344ec5fd Remove unused portions of the user schema 2020-05-30 22:11:53 -04:00
Patrick Barron e72fd88913 Document and fix warnings in Group.cs 2020-05-30 21:53:56 -04:00
Patrick Barron e8b6da3cd7 Expand and document IHasPermissions 2020-05-30 20:49:31 -04:00
Patrick Barron 4cff9b8512 Clea up IsParentalScheduleAllowed 2020-05-30 20:37:46 -04:00
Patrick Barron acce726ed9 Clean up DayOfWeekHelper.cs and remove unnecessary function 2020-05-30 20:02:55 -04:00
WontTell 730395886d Translated using Weblate (Spanish (Latin America))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_419/
2020-05-30 16:09:06 -04:00
Patrick Barron 1b297eae78 Reset invalid login attempt count properly 2020-05-30 00:20:59 -04:00
Patrick Barron c8fef9dd2e Reimplement password resetting 2020-05-30 00:19:36 -04:00
WontTell f73c5d3f56 Added translation using Weblate (Spanish (Latin America)) 2020-05-29 22:27:20 -04:00
Patrick Barron 4857b7d620 Make UserManager.IsValidUsername static 2020-05-29 15:32:31 -04:00
Patrick Barron 7f8f3e09e5 Ignore documentation warnings in new migration files 2020-05-29 15:19:41 -04:00
Patrick Barron 12a900b8f6 Update schema and migration to allow LastLoginDate and LastActivityDate to be null 2020-05-29 15:16:17 -04:00
Bond_009 4748105dce Enable TreatWarningsAsErrors for Jellyfin.Server.Implementations in Release mode 2020-05-29 11:28:19 +02:00
Bond-009 02624c9df8 Merge pull request #2966 from jellyfin/serve-web
Remove several deprecated utilities in the web package
2020-05-29 10:13:43 +02:00
Lumenol 65461894d4 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-05-28 17:09:21 -04:00
Patrick Barron 8ca78f33e9 Fix bug when migrating user db with users that have never logged in. 2020-05-28 14:21:26 -04:00
Vasily 58f099c0e2 Fix naming per code review 2020-05-28 19:12:08 +03:00
Vasily 9208acd5ae Convert non-local image to local before computing blurhash 2020-05-28 17:55:29 +03:00
Vasily ed791dee46 Do not compute dimensions or blurhash for remote images 2020-05-28 17:30:11 +03:00
Vasily a76cee7a95 Update BlurHashSharp to 1.0.1, remove workaround 2020-05-28 17:23:16 +03:00
Patrick Barron d116497912 Optimize number of created DbContexts and fix default values for some fields 2020-05-28 01:08:37 -04:00
Patrick Barron 82b0786cc6 Remove unnecessary logging statement 2020-05-28 00:59:31 -04:00
Elouan MAILLY 0ebad893a7 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-05-27 17:54:33 -04:00
Bond_009 7439e095e2 Merge branch 'master' into nullable3 2020-05-27 20:49:18 +02:00
Vasily f30b07130f Workaround a bug in BlurHashSharp 2020-05-27 19:29:57 +03:00
Patrick Barron 9a853ca089 Add another null check 2020-05-27 11:30:53 -04:00
Patrick Barron caf6833447 Add myself to CONTRIBUTORS.md 2020-05-27 10:08:36 -04:00
Vasily edcfcadcd3 Make sure blurhash is recomputed if image changed or metadata refresh toggled 2020-05-27 17:00:59 +03:00
Vasily 2482bcb3b1 Add blurhashes to ImageBlurHashes for all images 2020-05-27 16:27:27 +03:00
Vasily 6c9dc04189 Handle errors during blurhash generation so it does not fail the scan 2020-05-27 15:01:03 +03:00
dkanada ecadde1e18 Merge pull request #3192 from jellyfin/audio
Fix issue with audio transcoding
2020-05-27 20:20:50 +09:00
dkanada 73d123fe36 fix issue with audio transcoding 2020-05-27 13:55:45 +09:00
Patrick Barron 31f725fdbf Fix a bug in Emby.Notifications and clean up 2020-05-26 23:08:27 -04:00
Patrick Barron eef7cfd912 Make SonarCloud less angry 2020-05-26 22:43:03 -04:00
Patrick Barron fefb282137 Fixed issue when LastLoginDate or LastActivityDate were null 2020-05-26 22:30:23 -04:00
Patrick Barron 46a0a2a601 Update migrations and fix a few bugs 2020-05-26 21:20:55 -04:00
Patrick Barron 7c823464bc Fix merge conflicts with SyncPlay 2020-05-26 20:52:05 -04:00
Patrick Barron 01ce56016a Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Library/UserManager.cs
#	Jellyfin.Data/Jellyfin.Data.csproj
#	MediaBrowser.Api/UserService.cs
#	MediaBrowser.Controller/Library/IUserManager.cs
2020-05-26 20:29:11 -04:00
Joshua M. Boniface 7c72f69189 Merge pull request #2733 from OancaAndrei/syncplay
Add syncplay feature
2020-05-26 20:00:01 -04:00
Joshua M. Boniface b33fa06efa Merge pull request #3187 from jellyfin/revert-2492-fix-api-private-data-leak
Revert "Fix emby/user/public API leaking sensitive data"
2020-05-26 19:57:24 -04:00
Bond-009 b61ee09a36 Update WebSocketSharpRequest.cs 2020-05-26 20:00:37 +02:00
Bond-009 0676d1c2f4 Update WebSocketSharpRequest.cs 2020-05-26 19:33:20 +02:00
Anthony Lavado 9c00226f11 Merge pull request #3033 from neilsb/autodiscover-url-override
Allow override of address published by auto discovery
2020-05-26 12:20:42 -04:00
Vasily 8be13b63d4 More cleanup 2020-05-26 19:19:49 +03:00
Joshua M. Boniface 0be3dfe7c5 Revert "Fix emby/user/public API leaking sensitive data" 2020-05-26 12:14:40 -04:00
Vasily 92008baf85 Some simple cleanup 2020-05-26 19:13:11 +03:00
Vasily aa17a53e83 Skip only line saying "Hardware acceleration methods:" instead of some random one 2020-05-26 19:05:44 +03:00
Vasily 3e381cfd5e Clean GetHwaccelType Windows handling a tiny bit 2020-05-26 19:02:22 +03:00
Vasily 628734931c Fix missing commas and merge defects 2020-05-26 18:49:15 +03:00
artiume 3c82379759 Update EncoderValidator.cs 2020-05-26 18:29:58 +03:00
artiume abc7558f51 Update EncodingHelper.cs 2020-05-26 18:29:58 +03:00
artiume f056704c78 add videotoolbox 2020-05-26 18:29:58 +03:00
artiume 407de0209e Update MediaEncoder.cs 2020-05-26 18:29:58 +03:00
artiume 1ff95289ef Update EncoderValidator.cs 2020-05-26 18:29:58 +03:00
artiume 62e47d056d Update IMediaEncoder.cs 2020-05-26 18:29:58 +03:00
artiume 0eb5791c70 Comments 2020-05-26 18:29:58 +03:00
Nyanmisaka 22ef0e3574 drop 'force_original_aspect_ratio'
graphical subtitles can be off-center in some cases
2020-05-26 18:21:31 +03:00
Nyanmisaka 5fd3ea8b21 minor changes 2020-05-26 18:21:31 +03:00
Nyanmisaka 695f20b303 probe Main/High 10 more specifically 2020-05-26 18:21:31 +03:00
Nyanmisaka 161b2a2da9 minor changes 2020-05-26 18:19:14 +03:00
nyanmisaka c4ba71d96a resolve conflicts 2020-05-26 18:13:20 +03:00
nyanmisaka b4b93995f7 add more separate hw decoding toggles 2020-05-26 18:06:49 +03:00
David e9ebe07ecc Don't send Exception message in Production Environment 2020-05-26 16:36:54 +02:00
gion e42bfc92f3 Fix code issues 2020-05-26 11:37:52 +02:00
gion e4838b0faa Merge remote-tracking branch 'upstream/master' into syncplay 2020-05-26 10:23:09 +02:00
Anthony Lavado 976ae36bea Merge pull request #3173 from joshuaboniface/fix-arm-docker
Add -k to keyserver curl command
2020-05-26 00:41:58 -04:00
Anthony Lavado b93145c2f1 Merge pull request #3174 from jellyfin/checkbox
Remove uses of fnchecked from plugins
2020-05-25 19:50:39 -04:00
Vasily f575415e0b Pick blurhash sizes depending on image aspect ratio 2020-05-26 02:33:52 +03:00
Vasily 0f32b0ffad Change image blurhash mapping to "image type to blurhash" 2020-05-26 01:04:40 +03:00
xumix 46420dfd68 Refactor copy codec checks 2020-05-26 00:58:19 +03:00
Bond_009 10e381f66f Fix some 'bugs' flagged by sonarcloud 2020-05-25 23:52:51 +02:00
Vasily 279f0da980 Rename ImageInfo.Hash to ImageInfo.BlurHash 2020-05-26 00:52:13 +03:00
Vasily 29443e3681 Apply suggestions from code review
Co-authored-by: dkanada <dkanada@users.noreply.github.com>
2020-05-26 00:50:29 +03:00
dkanada f75a09838e remove uses of fnchecked from plugins 2020-05-25 18:25:45 +09:00
Joshua M. Boniface 35da965cd3 Add -k to keyserver curl command
This command seems to inexplicably fail in Docker builds, despite
working on the CLI, similar to what happened with the command directly
above it in c257d6071c. Fix it in the same
way by adding `-k`.
2020-05-25 01:30:55 -04:00
Neil Burrows 09915363c2 Update Emby.Server.Implementations/Udp/UdpServer.cs
Co-authored-by: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-05-24 09:22:13 +01:00
dkanada deafe59b7e add the timestamp property back to the version info 2020-05-24 16:59:05 +09:00
dkanada 6d3e5d8662 update error log for plugin download 2020-05-24 15:53:17 +09:00
dkanada 7972daaba4 fix a few issues with the plugin manifest 2020-05-24 15:40:27 +09:00
Mark Monteiro 4f6e5591ec Remove 'General' as an ExternalIdMediaType, and instead use 'null' to represent a general external id type 2020-05-23 16:08:51 -04:00
Patrick Barron e052128c52 Cleanup and fix more bugs 2020-05-23 16:07:42 -04:00
Mark Monteiro 07897ec7af Specify enum values for ExternalIdMediaType explicitly 2020-05-23 15:49:02 -04:00
Patrick Barron e8173df9dc Cleanup 2020-05-23 15:33:14 -04:00
Patrick Barron 99511b3be8 Fix a couple bugs 2020-05-23 14:53:24 -04:00
Anthony Lavado 777c9c7bc9 Merge pull request #3056 from rigtorp/tmdbsearch2
Reduce number of TMDB lookups if filenames have punctuation chars
2020-05-22 23:46:45 -04:00
Patrick Barron e3f9aaa9c6 Fix bugs relating to users not being properly locked out. 2020-05-22 21:45:31 -04:00
Patrick Barron 56212e8101 Warnings cleanup 2020-05-22 20:20:18 -04:00
artiume a661b37c12 Update LibraryService.cs 2020-05-22 14:40:41 -04:00
WontTell e98600a76f Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_MX/
2020-05-21 22:41:56 -04:00
Óskar Freyr 3c86489d28 Translated using Weblate (Icelandic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/is/
2020-05-21 19:41:58 -04:00
fonfire 367da81ae9 Translated using Weblate (Thai)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/th/
2020-05-21 07:57:21 -04:00
fatbill27 74c1e002d2 Translated using Weblate (Chinese (Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2020-05-21 05:52:34 -04:00
fonfire e0d8a474ec Added translation using Weblate (Thai) 2020-05-21 05:52:34 -04:00
Anthony Lavado 50fc547616 Merge pull request #3149 from Artiume/patch-4
Add .edl Mimetype
2020-05-21 00:55:22 -04:00
Anthony Lavado a31549c6e7 Merge pull request #3144 from Artiume/patch-3
Add lost+found to ignore list
2020-05-21 00:54:41 -04:00
Patrick Barron 42177d1739 Replace Weekday with DayOfWeek 2020-05-21 00:22:43 -04:00
Vitorvlv 6bf444feae Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt_BR/
2020-05-21 00:09:46 -04:00
abdulaziz 7e2bd3018a Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-05-21 00:09:46 -04:00
Patrick Barron d72ea70995 Document user class and fix a few minor issues 2020-05-20 19:47:41 -04:00
Vasily 1f83a21288 Rename Hash to BlurHash in all properties and methods for clarity 2020-05-21 01:43:19 +03:00
Vasily 8b517e9bef Fix nullref for imageProcessor in LibraryManager 2020-05-21 00:03:22 +03:00
Vasily 3fb4c1356c Make blurhash be computed during regular scans if it was not already computed 2020-05-20 23:50:17 +03:00
artiume ae4c407b6d Add .edl Mimetype 2020-05-20 16:46:33 -04:00
Patrick Barron 0ccf7320b0 Fix a few issues in User 2020-05-20 14:17:59 -04:00
Patrick Barron becfe018f0 Add internal id for new users 2020-05-20 13:49:44 -04:00
Patrick Barron c464f700db Remove redundant qualifiers 2020-05-20 13:07:53 -04:00
Patrick Barron 7d9d54d2ec Fix profile images. 2020-05-20 12:09:52 -04:00
Patrick Barron 623dcde65c Manually specify enum values 2020-05-20 10:04:00 -04:00
Patrick Barron 64c14beb27 Fix default permissions and HasPassword property 2020-05-20 10:04:00 -04:00
Patrick Barron 1d1a145ad4 Fix issues and add profile image support 2020-05-20 10:04:00 -04:00
Patrick Barron 292993d8ef Document various classes. 2020-05-20 10:04:00 -04:00
Patrick Barron d35a7ba8bd Fix more issues 2020-05-20 10:04:00 -04:00
Patrick Barron d27b2481a0 Fix an issue causing multiple permissions/preferences objects to be created. 2020-05-20 10:04:00 -04:00
Patrick Barron e7b297c67b Add some missing properties 2020-05-20 10:04:00 -04:00
Patrick Barron 3eeb6576d8 Migrate User DB to EF Core 2020-05-20 10:04:00 -04:00
Neil Burrows a646a91e15 Update Emby.Server.Implementations/IStartupOptions.cs
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-05-20 14:29:18 +01:00
Neil Burrows d7b2c2a176 Renaming variable and refactoring IF statement 2020-05-20 09:11:26 +01:00
artiume 0efb81b21e Add lost+found to ignore list
https://forum.jellyfin.org/t/library-not-loading/2086
2020-05-19 21:45:48 -04:00
Vasily 2b1ae7ac58 Fix code smells 2020-05-19 15:42:50 +03:00
Vasily 186b7f303c More small optimizations 2020-05-19 15:08:43 +03:00
Vasily a226a4ee03 Compute hash only when one is not computed in DB, small optimizations here and there 2020-05-19 14:50:14 +03:00
Vasily f18293bf76 Switch to BlurHashSharp lib which should be faster 2020-05-19 13:46:00 +03:00
Vasily bfb644d5f5 Fix nullref exception 2020-05-19 13:45:39 +03:00
Vasily d9e2f56bd2 Merge pull request #3037 from ConfusedPolarBear/access-control
Fix CORS header not being added to exceptions
2020-05-19 13:05:45 +03:00
NaorManna 585e9e6220 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/he/
2020-05-19 03:15:02 -04:00
Lukáš Kucharczyk 4395644efc Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/cs/
2020-05-19 00:09:47 -04:00
ConfusedPolarBear 949e4d3e64 Apply suggestions from code review 2020-05-18 16:58:14 -05:00
Vasily 02da312f8a Fix compilation after rebase 2020-05-19 00:22:52 +03:00
Jesús Higueras fe480caf54 Add endpoint to update all items in library 2020-05-18 23:21:38 +03:00
Jesús Higueras b9fc0d2628 Add BlurHash support to backend 2020-05-18 23:21:37 +03:00
ConfusedPolarBear 85f04af04c Reuse existing CORS function 2020-05-18 14:31:47 -05:00
ConfusedPolarBear 3a61c9a878 Merge remote-tracking branch 'upstream/master' into access-control 2020-05-18 14:27:51 -05:00
Vasily 2d2c1d9473 Merge pull request #3099 from rigtorp/ignore-patterns
Use glob patterns to ignore files
2020-05-18 22:23:40 +03:00
Bond-009 e14c85555c Merge pull request #3138 from mark-monteiro/reduce-development-exception-page-logging
Reduce Excessive Logging From DeveloperExceptionPageMiddleware
2020-05-18 17:21:45 +02:00
Mark Monteiro 5eec3a1342 Remove extra whitespace
Co-authored-by: dkanada <dkanada@users.noreply.github.com>
2020-05-18 10:47:01 -04:00
dkanada 668a7b97c7 Merge pull request #3072 from JustAMan/fix-dead-livetv
Re-raise the exception that caused LiveTV stream to not open
2020-05-18 23:23:47 +09:00
Vasily c70e38288c Apply suggestions from code review
Co-authored-by: dkanada <dkanada@users.noreply.github.com>
2020-05-18 17:01:29 +03:00
Vasily 5d46697481 Merge pull request #3020 from rigtorp/patch-1
Fix container image build by installing python
2020-05-18 16:52:49 +03:00
erikasne6152 989ddbcafd Translated using Weblate (Lithuanian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lt/
2020-05-18 09:44:33 -04:00
dkanada 8de7c5ee36 Merge pull request #3134 from mark-monteiro/update-dotnet-core
Update to .NET Core 3.1.4
2020-05-18 19:33:12 +09:00
dkanada 7b75cc7fea Merge pull request #3133 from kesslern/fix-setup-wizard
Fix 500 error causing first-time setup wizard to hang
2020-05-18 19:31:51 +09:00
Mark Monteiro 634bc73c9a DO not use developer exception page when exception stack trace should be ignored 2020-05-17 18:07:37 -04:00
Mark Monteiro d06fee75b6 Rename Name to ProviderName 2020-05-17 17:36:36 -04:00
Mark Monteiro c82f7eeca1 Clean up some doc comments 2020-05-17 17:26:40 -04:00
Mark Monteiro 67edf1b7f5 Do not convert 'Type' value to string unnecessarily, and do not replace 'General' type with null 2020-05-17 15:59:13 -04:00
Mark Monteiro 422d5b2b68 Move ExternalIdMediaType enum to MediaBrowser.Model 2020-05-17 15:57:24 -04:00
BaronGreenback 3a5333228f Update Emby.Server.Implementations/Networking/NetworkManager.cs
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-05-17 20:44:44 +01:00
BaronGreenback d5a924772b Update MediaBrowser.Common/Net/INetworkManager.cs
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-05-17 20:44:35 +01:00
BaronGreenback 5e1be0d4f0 Update MediaBrowser.Common/Net/INetworkManager.cs
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-05-17 20:44:19 +01:00
BaronGreenback 61e65d032e Update MediaBrowser.Common/Net/INetworkManager.cs
Co-authored-by: Patrick Barron <18354464+barronpm@users.noreply.github.com>
2020-05-17 20:43:54 +01:00
Mark Monteiro e5c857ac36 Rename external id type 'None' to 'General' 2020-05-17 15:29:53 -04:00
Mark Monteiro 526e47c362 Clean up documentation 2020-05-17 15:27:43 -04:00
Mark Monteiro 96acd6481e Merge branch 'master' into externalid-type 2020-05-17 13:50:44 -04:00
Mark Monteiro 3ed76d7e08 Update to .NET Core 3.1.4 2020-05-17 13:33:38 -04:00
dkanada 4b4b50f3ee Merge pull request #3115 from MrTimscampi/ffprobe
Parse color transfer and color primaries from ffprobe, and fix video range
2020-05-18 00:06:07 +09:00
Nathan Kessler 3bc07e7c56 Fix 500 error causing first-time setup wizard to hang 2020-05-17 10:48:30 -04:00
Samuel Gagnon e75b2cd335 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr_CA/
2020-05-17 08:03:42 -04:00
Franco Castillo a33a589dba Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_AR/
2020-05-17 08:03:42 -04:00
MrTimscampi 9314434bbf Fix suggestions 2020-05-16 17:35:34 +02:00
dkanada 8921c7a5bf Merge pull request #3113 from Artiume/patch-1
Fix Progressive and Interlaced Stream capitalization
2020-05-16 21:56:25 +09:00
dkanada 7f39d898b8 Merge pull request #3105 from aled/2149-fix-warnings-in-jellyfin.naming.tests
Fix compile warnings in Jellyfin.Naming.Tests
2020-05-16 16:08:01 +09:00
dkanada ddebc9301e Merge pull request #3116 from Artiume/patch-2
Update Books Resolver File Types and add .opf Mime Type
2020-05-16 16:01:59 +09:00
Erik Rigtorp f144acdc96 Use glob patterns to ignore files 2020-05-15 18:33:18 -07:00
Erik Rigtorp 9cad598059 Fix container image build by installing python 2020-05-15 18:25:43 -07:00
Patrick Barron aca7e221d8 Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Activity/ActivityLogEntryPoint.cs
#	Emby.Server.Implementations/ApplicationHost.cs
#	Emby.Server.Implementations/Devices/DeviceManager.cs
#	Jellyfin.Server/Jellyfin.Server.csproj
#	Jellyfin.Server/Migrations/MigrationRunner.cs
#	MediaBrowser.Controller/Devices/IDeviceManager.cs
2020-05-15 17:20:07 -04:00
Vasily 652e9702fc Merge pull request #3117 from JustAMan/no-more-doppelgangers
Fixes collections (and probably some extras support, too)
2020-05-16 00:01:49 +03:00
Mark Monteiro 757643e326 Merge remote-tracking branch 'upstream/master' into no-more-doppelgangers 2020-05-15 15:23:44 -04:00
Mark Monteiro 6e68702799 Do not run DELETE command if no extras are detected
Also log a message if no extras were detected 
Also log the path used for the database backup
Also add some comments to explain the migration
2020-05-15 15:12:26 -04:00
Vasily d21feb2b18 Merge pull request #2970 from barronpm/activitydb-efcore
Migrate Activity Database to Entity Framework Core
2020-05-15 22:04:23 +03:00
Vasily 43dc604e87 Fixed compilation, added backing db before removing extras 2020-05-15 21:49:45 +03:00
Patrick Barron 79dee27299 Fixed indentation 2020-05-15 14:33:36 -04:00
Vasily 034fe97eeb Apply suggestions from code review
Co-authored-by: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-05-15 21:32:56 +03:00
Patrick Barron a7c2e524a9 Apply more review suggestions 2020-05-15 14:09:15 -04:00
gion 8c04049a59 Fix some code smells 2020-05-15 20:06:41 +02:00
gion 029bb80910 Merge remote-tracking branch 'upstream/master' into syncplay 2020-05-15 18:59:35 +02:00
Patrick Barron a5dee36808 Apply more review suggestions 2020-05-15 12:51:18 -04:00
gion e8f45248aa Fix code issues 2020-05-15 18:47:16 +02:00
artiume a765272c17 Update MimeTypes.cs 2020-05-15 09:38:26 -04:00
artiume 527029af92 Update MediaStream.cs 2020-05-15 09:36:30 -04:00
artiume d41cdb3b7a Update Interlace 2020-05-15 09:36:30 -04:00
artiume eb3ce3fb87 Fix Progressive Stream 'P' capitalization 2020-05-15 09:36:30 -04:00
artiume 9ed8c6cb11 Add opf mimetype 2020-05-15 07:59:46 -04:00
dkanada 18953d95e6 Merge pull request #3085 from MrTimscampi/vtt-position
Add positionning cues to WebVTT writer
2020-05-15 16:43:31 +09:00
dkanada cb249cc171 Merge pull request #3118 from barronpm/fix-regressions
Fix regressions introduced by #3098
2020-05-15 16:43:06 +09:00
Odd Stråbø ef533015ae Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nb_NO/
2020-05-14 23:26:47 -04:00
Vasily ed751aa054 Merge pull request #3084 from fhriley/fix_allow_origin
Fix #3083: Set the Access-Control-Allow-Origin header to the request …
2020-05-15 03:18:16 +03:00
Patrick Barron dcaffd3812 Fix regressions introduced by #3098 2020-05-14 20:11:34 -04:00
Erik Rigtorp e02e041b23 If second cleaning results in same name skip lookup 2020-05-14 16:55:55 -07:00
Vasily 7c57134535 Implement a cleanup migration 2020-05-15 02:30:28 +03:00
Frank Riley 9ee10d22c8 Rename function 2020-05-14 16:15:09 -07:00
Frank Riley 6990af811a Use simpler dictionary iterator. 2020-05-14 16:15:09 -07:00
Frank Riley c70c589236 Update Emby.Server.Implementations/HttpServer/HttpListenerHost.cs from review
Co-authored-by: Cody Robibero <cody@robibe.ro>
2020-05-14 16:15:09 -07:00
Frank Riley 3cb6fd8a27 Fix #3083: Set the Access-Control-Allow-Origin header to the request origin/host header if possible 2020-05-14 16:15:03 -07:00
Vasily ce16651dbd Fix a check broken by https://github.com/jellyfin/jellyfin/pull/2105 2020-05-15 01:55:53 +03:00
Patrick Barron 953777f1ba Removed unnecessary usings 2020-05-14 18:12:51 -04:00
Patrick Barron 87c63e668c Merge branch 'master' into activitydb-efcore 2020-05-14 21:16:43 +00:00
Patrick Barron b94afc597c Address review comments 2020-05-14 17:13:45 -04:00
artiume 4eb4ad3be7 Update Books Resolver File Types 2020-05-14 17:03:53 -04:00
Erik Rigtorp de35183903 Update MediaBrowser.Providers/Tmdb/Movies/TmdbSearch.cs
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-05-14 11:56:31 -07:00
Erik Rigtorp fa1fef1099 Update MediaBrowser.Providers/Tmdb/Movies/TmdbSearch.cs
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-05-14 11:56:25 -07:00
aled 3ff6e3ff65 Add code analyzers to Jellyfin.Naming.Tests and fix resulting warnings 2020-05-14 18:59:10 +01:00
MrTimscampi 2e18142bb3 Add color primaries to ffprobe output 2020-05-14 18:52:42 +02:00
MrTimscampi 234292453f Add HLG to the video range detection 2020-05-14 18:44:51 +02:00
MrTimscampi 428e1b04fc Add color transfer to ffprobe results 2020-05-14 18:11:32 +02:00
Vasily 5ce008e02f Merge pull request #2162 from Bond-009/websocket
Rewrite WebSocket handling code
2020-05-14 18:49:44 +03:00
Mark Monteiro 2e09311a93 Merge branch 'master' into websocket 2020-05-14 11:08:08 -04:00
dkanada 11dd96f6c7 Merge pull request #3089 from MrTimscampi/tmdb-original-title
Add more information to TmdbSeriesProvider
2020-05-14 13:43:00 +09:00
aled 2849d2b134 Fix compile warnings in Jellyfin.Naming.Tests 2020-05-13 23:59:19 +01:00
Patrick Barron 9925742918 Implement more review suggestions 2020-05-13 17:55:31 -04:00
Patrick Barron 1fecd55ac0 Merge branch 'activitydb-efcore' of https://github.com/barronpm/jellyfin into activitydb-efcore 2020-05-13 15:35:44 -04:00
Patrick Barron 1e9b2613c6 Remove more unused code 2020-05-13 15:35:14 -04:00
Patrick Barron a8f0d0aa0d Merge branch 'master' into activitydb-efcore 2020-05-13 19:06:04 +00:00
Patrick Barron 511d20a100 Apply review suggestions 2020-05-13 15:03:35 -04:00
Vasily f08830ea00 Merge pull request #2774 from mark-monteiro/simplify-https-config
Simplify HTTPS Properties
2020-05-13 20:36:54 +03:00
Vasily 69676373ca Merge pull request #3098 from barronpm/remove-ilogger
Remove Support for Injecting ILogger Directly
2020-05-13 20:35:32 +03:00
MrTimscampi 512725a7d1 Fix style issue in TmdbSeriesProvider 2020-05-13 18:02:54 +02:00
Mark Monteiro 51cdb30741 Apply documentation suggestions from code review
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-05-13 09:46:29 -04:00
Patrick Barron b7621d762c 2nd half of changes 2020-05-13 00:00:57 -04:00
Patrick Barron c1360a1dc3 Merge branch 'master' into userdb-efcore
# Conflicts:
#	Emby.Server.Implementations/Data/SqliteUserDataRepository.cs
#	Emby.Server.Implementations/Library/UserManager.cs
#	Jellyfin.Data/Entities/User.cs
#	Jellyfin.Data/ISavingChanges.cs
#	Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
#	Jellyfin.Server.Implementations/JellyfinDb.cs
#	Jellyfin.Server/Migrations/MigrationRunner.cs
#	MediaBrowser.Model/Notifications/NotificationOptions.cs
#	MediaBrowser.sln
2020-05-12 22:22:20 -04:00
Patrick Barron 9ad839c776 Initial migration code 2020-05-12 22:10:35 -04:00
tanvir-ahmed-siddique 92299be64c Translated using Weblate (Bengali)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bn/
2020-05-12 19:34:59 -04:00
D Z e69ba3531e Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/he/
2020-05-12 17:30:00 -04:00
Patrick Barron 62420a6eb1 Remove support for injecting ILogger directly 2020-05-12 16:03:15 -04:00
Patrick Barron bac4bf96a0 Fix build errors 2020-05-12 12:50:17 -04:00
Patrick Barron 6379391f87 Merge branch 'master' into activitydb-efcore 2020-05-12 16:08:28 +00:00
rapmue 32c1182226 Translated using Weblate (German (Swiss))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/gsw/
2020-05-12 11:52:45 -04:00
MrTimscampi b961c3c9ae Address suggestions 2020-05-12 15:05:58 +02:00
Bond-009 94a96c93a8 Merge pull request #3038 from barronpm/generated-code-cleanup
Clean up generated code
2020-05-12 10:38:45 +02:00
millallo 6c855e5f81 Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/it/
2020-05-11 16:55:55 -04:00
Federico Antoniazzi 5b2973b01a Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/it/
2020-05-11 09:02:52 -04:00
Bond-009 dabd67d127 Merge pull request #2900 from mark-monteiro/migration-dependency-injection
Use dependency injection to construct migration routines
2020-05-11 10:15:35 +02:00
Mark Monteiro a10aec6956 Fix merge 2020-05-10 18:17:12 -04:00
Mark Monteiro 3abf870c1e Do not include a double slash in URLs when a base URL is not set 2020-05-10 18:07:56 -04:00
Mark Monteiro dc5165b97f Merge branch 'master' into simplify-https-config 2020-05-10 14:43:57 -04:00
Mark Monteiro 43c22a5822 Add GetLoopbackHttpApiUrl() helper method to replace forceHttps functionality
Also refactor to use return a Uri instead of a string and use UriBuilder under the hood
2020-05-10 14:36:11 -04:00
Patrick Barron 0549d59a5f Merge branch 'master' into generated-code-cleanup 2020-05-10 15:00:52 +00:00
Patrick Barron 55cfa96b9f Apply review suggestions 2020-05-10 10:54:41 -04:00
MrTimscampi d5ad53e4bb Add Director to role mapper for TMDb 2020-05-10 15:51:30 +02:00
MrTimscampi 9137069f6d Add more information to TmdbSeriesProvider 2020-05-10 14:36:46 +02:00
MrTimscampi a262ecd9c7 Add positionning cues to WebVTT writer 2020-05-09 20:47:05 +02:00
timothyc824 f33876e7e3 Translated using Weblate (Chinese (Hong Kong))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant_HK/
2020-05-09 12:22:38 -04:00
gion 5c8cbd4087 Fix code issues 2020-05-09 14:34:07 +02:00
gion 8a6ec2fb71 Rename Syncplay to SyncPlay 2020-05-09 12:37:39 +02:00
gion 6e22e9222b Fix code issues 2020-05-09 12:37:23 +02:00
andra5 58122cc067 Translated using Weblate (German (Swiss))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/gsw/
2020-05-08 19:12:07 -04:00
newton181 0e8505fb96 Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_MX/
2020-05-08 19:12:07 -04:00
Vasily 3401d55f41 Fixed yet another case of hanging on a bad stream 2020-05-08 23:11:43 +03:00
Vasily a517bd2e52 Re-raise the exception that caused LiveTV stream to not open 2020-05-08 14:32:41 +03:00
Erik Rigtorp f7c44565fc Rename member variables to conform to coding standard 2020-05-07 15:47:59 -07:00
Erik Rigtorp 8bd356ab20 Reduce number of TMDB lookups if filenames have punctuation chars
Previosly TMDB would be queried with the raw name and always fail,
then retry with the cleaned name. Now non-word chars are always
cleaned out first.

If first query fails, retry with more aggressive cleaning.
2020-05-07 15:47:59 -07:00
Bond-009 d016a9772f Merge pull request #3066 from Artiume/patch-1
Remove ogg video mimetype
2020-05-07 22:09:30 +02:00
artiume 3e14b1b50f Remove ogg video mimetype 2020-05-07 15:58:20 -04:00
Bond-009 62da4d0e5c Merge pull request #2492 from Polpetta/fix-api-private-data-leak
Fix emby/user/public API leaking sensitive data
2020-05-07 14:52:10 +02:00
Davide Polonio 5c6339d8fd Fix typo in PublicUserDto
Co-authored-by: Vasily <JustAMan@users.noreply.github.com>
2020-05-07 09:14:00 +02:00
Stefan Petrushevski 41b667c137 Translated using Weblate (Macedonian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/mk/
2020-05-06 17:11:45 -04:00
dkanada 176159d0a8 Merge pull request #2969 from BaronGreenback/my-feature
http in development mode crashed -
2020-05-07 02:24:42 +09:00
Oliver Moolman 1c210d930c Translated using Weblate (Afrikaans)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/af/
2020-05-06 13:09:15 -04:00
Davide Polonio 57cf19f058 Fix variable declaration and follow sonarcloud suggestions 2020-05-06 17:25:41 +02:00
BaronGreenback ba2134de13 Made changes to message and exception class 2020-05-06 16:04:07 +01:00
dkanada cd07bc23f8 Merge pull request #3050 from Artiume/patch-1
Update MimeTypes.cs
2020-05-06 21:56:45 +09:00
artiume 1388464329 Update MimeTypes.cs 2020-05-06 08:23:56 -04:00
miguel marsa canals d34b7f801b Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es/
2020-05-06 08:10:00 -04:00
artiume 1058c80a41 Update MediaBrowser.Model/Net/MimeTypes.cs 2020-05-06 07:45:40 -04:00
dkanada 822c14af4d Merge pull request #2949 from Bond-009/dvdlib2
Enable TreatWarningsAsErrors for DvdLib
2020-05-06 20:38:45 +09:00
artiume 0aff46631f Update MediaBrowser.Model/Net/MimeTypes.cs
Co-authored-by: dkanada <dkanada@users.noreply.github.com>
2020-05-06 07:38:19 -04:00
dkanada c15463fa12 Merge pull request #2837 from Bond-009/async2
Minor IAsyncDisposable improvements
2020-05-06 20:30:03 +09:00
dkanada c9d0b07ab0 Merge pull request #3024 from Bond-009/listhelper
Remove ListHelper extensions
2020-05-06 20:25:03 +09:00
Nazar Bulavko 0334b54ae7 Translated using Weblate (Ukrainian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/uk/
2020-05-05 14:52:38 -04:00
Brandon L dcdafa4859 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr_CA/
2020-05-05 14:52:37 -04:00
Mark Monteiro 432aae0fcc Add missing comma 2020-05-05 11:17:03 -04:00
artiume 183514ebe2 add azw3 2020-05-05 07:25:32 -04:00
Nazar Bulavko 661b0e9489 Added translation using Weblate (Ukrainian) 2020-05-04 19:09:37 -04:00
Patrick Barron a78184ef44 Add the user data to the schema 2020-05-04 16:00:41 -04:00
Patrick Barron 75e0d58c2d Merge branch 'activitydb-efcore' into userdb-efcore 2020-05-04 15:18:11 -04:00
Bond-009 ca2f9c7341 Merge pull request #2945 from mark-monteiro/integration-tests
Add Integration Tests For BrandingService
2020-05-04 19:01:02 +02:00
artiume 25651362bf Update MimeTypes.cs 2020-05-04 12:13:50 -04:00
SaddFox 64ab8f8e7a Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2020-05-04 10:14:24 -04:00
x7aN 27328118a0 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nl/
2020-05-04 10:14:24 -04:00
Tin Pavelic 6aca248532 Translated using Weblate (Croatian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hr/
2020-05-04 10:14:24 -04:00
Anthony Lavado 0e11646107 Merge pull request #2950 from Bond-009/videoresolver
Fix VideoResolver and tests
2020-05-04 04:21:30 -04:00
artiume 675cbd8a16 Update MimeTypes.cs 2020-05-03 18:23:25 -04:00
Bond-009 491f59cad4 Merge pull request #3049 from mark-monteiro/fix-editorconfig
Fix editorconfig Settings
2020-05-03 23:45:30 +02:00
Mark Monteiro 8322d412f0 Move ruleset up one directory so it can be shared by all test projects 2020-05-03 16:51:39 -04:00
Mark Monteiro 151182b9a9 Fix settings in editorconfig file 2020-05-03 16:30:39 -04:00
Mark Monteiro 927e7a24ed Add main ruleset as a solution item so it appears in Visual Studio 2020-05-03 16:29:13 -04:00
Mark Monteiro e66b000183 Enable StyleCop and FxCop analyzers for integration tests project
Use a custom ruleset that derives from the base solution ruleset, overriding rules where necessary
2020-05-03 16:23:42 -04:00
Mark Monteiro ea82e2158c Make sure logger factories are disposed during integration tests 2020-05-03 15:31:17 -04:00
Patrick Barron 74f9ddc419 Delete DbContext class 2020-05-03 13:06:08 -04:00
Christoph Potas 7d3eaea3fa + add bd tag to clean string regex
Signed-off-by: Christoph Potas <christoph286@googlemail.com>
2020-05-03 18:17:55 +02:00
Bond-009 18075dd3e8 Merge pull request #3043 from puschie286/fix-startup-project
Jellyfin.Server as startup project
2020-05-03 17:26:31 +02:00
Christoph Potas a7bc1d4341 ~ set Jellyfin.Server as startup project
Signed-off-by: Christoph Potas <christoph286@googlemail.com>
2020-05-03 16:13:05 +02:00
Mark Monteiro 519d65b9c8 Remove unnecessary gitignore entry
Visual Studio no longer generates this file when opening the solution since the project SDK has been set to the correct value
2020-05-03 01:10:51 -04:00
Mark Monteiro 1c06111497 Merge remote-tracking branch 'upstream/master' into integration-tests 2020-05-03 01:04:19 -04:00
dkanada 2bf3dee4c4 Merge pull request #3035 from mark-monteiro/fix-repo-double-dispose
Do not double dispose item repository resources
2020-05-03 13:28:26 +09:00
Patrick Barron 37dcbfbc39 Update code to only add implemented parts of the schema 2020-05-02 19:26:24 -04:00
Patrick Barron 032de931b1 Migrate activity db to EF Core 2020-05-02 18:32:22 -04:00
Patrick Barron 2b41f8ab63 Clean up generated code 2020-05-02 17:56:05 -04:00
ConfusedPolarBear df65e3ab0d Add Access-Control-Allow-Origin header to exceptions
Fixes #1794
2020-05-02 15:33:45 -05:00
Mark Monteiro daf79b8aeb Do not double dispose write lock and connection in user data repository 2020-05-02 15:45:03 -04:00
Neil Burrows b737301c70 Auto discover published URL override 2020-05-02 17:56:09 +01:00
Davide Polonio 472efeeec4 Remove extra line in UserManager
Co-authored-by: Bond-009 <bond.009@outlook.com>
2020-05-02 13:09:57 +02:00
Bond_009 3623aafcb6 Make SonarCloud happy 2020-05-02 01:30:04 +02:00
Bond_009 04f826e50c Fix merge errors 2020-05-02 01:09:35 +02:00
Bond_009 15634a1913 Merge branch 'master' into websocket 2020-05-02 00:54:04 +02:00
Heikki Jetsonen 62e251663f Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fi/
2020-05-01 16:39:46 -04:00
Bond_009 7659a2ab32 Remove ListHelper extensions 2020-05-01 16:48:33 +02:00
Aragon 9265b422f7 Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/he/
2020-05-01 05:32:30 -04:00
Bond-009 7f7a686ea6 Merge pull request #2573 from YouKnowBlom/add-hls-fields
Add codecs, resolution and frame-rate fields to HLS master playlist
2020-05-01 11:20:56 +02:00
Heikki Jetsonen 8b6bec60d3 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fi/
2020-04-30 23:32:56 -04:00
fesken c342c6b582 Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sv/
2020-04-30 23:32:56 -04:00
Vasily 1927d0e23c Merge pull request #2293 from EraYaN/new-data-model
Add new EF Core data model (v2)
2020-04-30 12:18:51 +03:00
Erwin de Haan bbd74f811f Spaces -> Tab in solution file 2020-04-30 10:06:02 +02:00
Erwin de Haan a370c5c007 Restore the versioning extension settings. 2020-04-30 10:03:49 +02:00
Vasily 655a3ac54b Merge pull request #2656 from joshuaboniface/improve-builds
Improve builds
2020-04-30 00:55:38 +03:00
Joshua M. Boniface 8c9604afba Add Web integration option in default service conf 2020-04-29 16:06:42 -04:00
BaronGreenback 8a69300bf5 Changes styles as suggested by @barronpm
Added addtional comments & source type as per intellisense suggestion
change code as per sonacloud
2020-04-29 12:24:01 +01:00
Bond-009 690fb65cd8 Merge pull request #2985 from sparky8251/prometheus
Add Prometheus exporters
2020-04-29 11:36:05 +02:00
Vasily aff65adca9 Merge pull request #2917 from Bond-009/tests
Improved tests
2020-04-29 12:17:39 +03:00
Vasily 5922c35d69 Merge pull request #2920 from Bond-009/tests2
Add some simple tests
2020-04-29 12:17:01 +03:00
Vasily 8607b6a997 Merge pull request #2817 from ferferga/master
Remove unnecessary space in hardware decoders argument for ffmpeg
2020-04-29 02:37:24 +03:00
BaronGreenback ebd589aa86 Whilst fixing issues with SSDP on devices with multiple interfaces, i came across a design issue in the current code - namely interfaces without a gateway were ignored.
Fixing this required the removal of the code that attempted to detect virtual interfaces. Not wanting to remove functionality, but not able to keep the code in place, I implemented a work around solution (see 4 below).

Whilst in the area, I also fixed a few minor bugs i encountered (1, 5, 6 below) and stopped SSDP messages from going out on non-LAN interfaces (3)

All these changes are related.

Changes

1 IsInPrivateAddressSpace - improved subnet code checking
2 interfaces with no gateway were being excluded from SSDP blasts
3 filtered SSDP blasts from not LAN addresses as defined on the network page.
4 removed #986 mod - as this was part of the issue of #2986. Interfaces can be excluded from the LAN by putting the LAN address in brackets. eg. [10.1.1.1] will exclude an interface with ip address 10.1.1.1 from SSDP
5 fixed a problem where an invalid LAN address causing the SSDP to crash
6 corrected local link filter (FilterIPAddress) to filter on 169.254. addresses
2020-04-28 21:57:39 +01:00
BaronGreenback a3140f83c6 Revert "Whilst fixing issues with SSDP on devices with multiple interfaces, i came across a design issue in the current code - namely interfaces without a gateway were ignored."
This reverts commit 2aaecb8e14.
2020-04-28 21:51:49 +01:00
BaronGreenback 2aaecb8e14 Whilst fixing issues with SSDP on devices with multiple interfaces, i came across a design issue in the current code - namely interfaces without a gateway were ignored.
Fixing this required the removal of the code that attempted to detect virtual interfaces. Not wanting to remove functionality, but not able to keep the code in place, I implemented a work around solution (see 4 below).

Whilst in the area, I also fixed a few minor bugs i encountered (1, 5, 6 below) and stopped SSDP messages from going out on non-LAN interfaces (3)

All these changes are related.

Changes

1 IsInPrivateAddressSpace - improved subnet code checking
2 interfaces with no gateway were being excluded from SSDP blasts
3 filtered SSDP blasts from not LAN addresses as defined on the network page.
4 removed #986 mod - as this was part of the issue of #2986. Interfaces can be excluded from the LAN by putting the LAN address in brackets. eg. [10.1.1.1] will exclude an interface with ip address 10.1.1.1 from SSDP
5 fixed a problem where an invalid LAN address causing the SSDP to crash
6 corrected local link filter (FilterIPAddress) to filter on 169.254. addresses
2020-04-28 21:45:46 +01:00
gion 0b974d09ca Synchronize access to data 2020-04-28 14:12:06 +02:00
Vasily fa46a61ee3 Merge pull request #2995 from JustAMan/fix-cache-for-real
Now parse date in header correctly as being in UTC
2020-04-28 01:56:39 +03:00
gion 73fcbe90c0 Send error messages to clients 2020-04-27 22:39:37 +02:00
gion 083d3272d0 Refactor and other minor changes 2020-04-27 22:39:37 +02:00
gion aad5058d25 Implement KeepAlive for WebSockets 2020-04-27 22:39:37 +02:00
gion 40889702d0 Update session ping 2020-04-27 22:39:37 +02:00
gion 6519eebabb Implement NTP like time sync 2020-04-27 22:39:37 +02:00
gion 84d92ba9ce Check that client is playing the right item
Send date when playback command is emitted
Rename some classes
2020-04-27 22:39:20 +02:00
gion 73c19bd281 Filter groups by parental rating 2020-04-27 22:09:36 +02:00
gion e74832d139 Filter groups by library access 2020-04-27 22:09:36 +02:00
gion 459297211e Implement syncplay permissions for a user 2020-04-27 22:09:02 +02:00
gion f273995f5b Refactor: rename user to session 2020-04-27 22:07:33 +02:00
gion b3354ec637 Ignore unrelated events 2020-04-27 22:07:33 +02:00
gion 10c2c62f07 Implement syncplay backend 2020-04-27 22:07:33 +02:00
Łukasz Nowak ab8a5595f6 Translated using Weblate (Polish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pl/
2020-04-27 13:25:22 -04:00
Vasily 655208d375 Now parse date in header correctly as being in UTC 2020-04-27 19:03:42 +03:00
sparky8251 e3a42a8fe9 Address reviews 2020-04-27 08:42:46 -04:00
Bond-009 cf75fc0684 Merge pull request #2992 from rotvel/feature/ffmpeg
Try harder to find ffmpeg in app directory.
2020-04-27 10:09:26 +02:00
Max Git cee587d6e3 Try harder to find ffmpeg in app directory. While here do some cleanup 2020-04-27 03:25:57 +02:00
Shillos 820cd7e644 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/el/
2020-04-26 18:50:35 -04:00
Shillos c38e414178 Translated using Weblate (Greek)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/el/
2020-04-26 18:07:40 -04:00
Mark Monteiro 15fd4812f0 Remove unnecessary foreach loop 2020-04-26 18:04:34 -04:00
Mark Monteiro 679f97d5e9 Merge remote-tracking branch 'upstream/master' into simplify-https-config
Also reverts conflicting changes made in https://github.com/jellyfin/jellyfin/pull/2798
2020-04-26 17:37:30 -04:00
Mark Monteiro cabdec87e8 Fix merge with master 2020-04-26 16:55:00 -04:00
oytal 241dea6706 Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nb_NO/
2020-04-26 16:14:03 -04:00
Joshua M. Boniface 00d8983d7c Merge pull request #2990 from mark-monteiro/create-missing-folders
Create Missing Data Folders
2020-04-26 16:02:09 -04:00
Mark Monteiro 7615cdc963 Ensure metadata path is created on app startup, and also each time it is updated 2020-04-26 15:51:41 -04:00
Joshua M. Boniface 4fa6d1ccee Merge pull request #2940 from balu92/master
Fix missing colons
2020-04-26 15:22:38 -04:00
Joshua M. Boniface f502c89331 Merge pull request #2798 from JustAMan/fix-livetv-again
Make localhost LiveTV restreams always use plain HTTP port
2020-04-26 15:13:27 -04:00
Mark Monteiro cbd62e00a4 Ensure transcoding path is created when it is retrieved 2020-04-26 15:07:37 -04:00
Joshua M. Boniface ca4b6836c1 Merge pull request #2906 from randrey/dlna-nullref-fix
Fix InvalidOperationException while browsing via DLNA client.
2020-04-26 15:02:34 -04:00
Joshua M. Boniface cbeeeced75 Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:58:43 -04:00
Joshua M. Boniface 6ac723706c Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:58:34 -04:00
Joshua M. Boniface 23c8ecff37 Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:58:24 -04:00
Joshua M. Boniface 0157326354 Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:58:00 -04:00
Joshua M. Boniface d92a3552b7 Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:57:45 -04:00
Joshua M. Boniface 7a550d2c4e Apply style change
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-26 14:57:31 -04:00
BaronGreenback a0a5512069 2969 - re-issed code to address when developer doesn't have certificate installed. 2020-04-26 19:35:36 +01:00
Erwin de Haan b8d1419d9a Add basic new data model.
Added maxlength to SourceId text field in Metadata entity.

Added extra fields to Person entity and adjusted SourceId length to 255.

Added Extra Nuget deps for Relational databases and added Default Sqlite connection string.

Made LibraryItem and Metadata abstract.

Added artwork, changed DbSet names, added Seasons, added Genres, removed Language enum

Add MediaFIleKind, add CustomVideos, add Books.

Add AdditionalStream

Updated GUIDs.

Remove merge artifacts.

Updated Language to use ISO-639-3 3 letter language codes.

Added collections and concurrency tokens.

Added chapters.

Added Photos and renamed CustomVideo to CustomItem.

Started adding fields.

Added extra fields and Company entities.

Implement a first pass of user permissions for the new database schema

Upgrade to v2 of the addon. Commit generated files.

Update comment, rename namespace and remove superflous field.

Un-ignore any generated code.

Clean up the model files and other left overs.
2020-04-26 19:14:45 +02:00
Mark Monteiro 57b5ec1d51 Remove unnecessary properties from SystemInfo response object
These properties do not provide any useful information to the client. The client would already have to have all this information in order to connect to the endpoint to retrieve it
2020-04-26 12:07:54 -04:00
sparky8251 997b71bbef Metrics endpoint now respects baseurl 2020-04-26 11:52:01 -04:00
Mark Monteiro 93649ad77b Merge remote-tracking branch 'upstream/master' into simplify-https-config 2020-04-26 11:44:42 -04:00
sparky8251 68c7a914c3 Added option to disable metrics collection and defaulted it to off 2020-04-26 11:28:17 -04:00
Joshua M. Boniface a327e4ccac Update fedora/jellyfin.spec
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-25 22:13:21 -04:00
Joshua M. Boniface c689bf457c Correct dpkg conditional logic
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-25 22:12:19 -04:00
sparky8251 233337256f Add prometheus exporters 2020-04-25 21:36:03 -04:00
Mark Monteiro 7e467f9faa Use the correct method to synchronously wait for tasks to complete 2020-04-25 18:36:09 -04:00
Bond_009 99fe8dbe62 Remove BaseVideoTest 2020-04-25 18:55:54 +02:00
Bond-009 f81833693d Merge pull request #2874 from barronpm/warnings-cleanup1
Emby.Server.Implementations code cleanup and warning fixes (Part 1)
2020-04-25 16:02:39 +02:00
Bond-009 3c366954ae Merge pull request #2960 from ZadenRB/content-type-annotation
Adds annotation for content-type of ASP.NET Web API endpoints
2020-04-25 15:55:36 +02:00
Bond_009 da17a1201f Please roslyn 2020-04-25 15:49:53 +02:00
Bond_009 a273ed9a57 Address comments 2020-04-25 15:29:59 +02:00
Andreas B 153ea9f027 Fix error in HLS codecs field when level is null 2020-04-25 15:22:09 +02:00
Aragon 01f49137fc Translated using Weblate (Hebrew)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/he/
2020-04-24 18:03:04 -04:00
Mark Monteiro 713f8b2f4b Merge pull request #34 from crobibero/api-tests
Do not use the "Microsoft.NET.Sdk.Web" SDK in the test project
2020-04-23 20:06:03 -04:00
Mark Monteiro cd98938190 Merge remote-tracking branch 'upstream/master' into integration-tests 2020-04-23 19:32:40 -04:00
ZadenRB 2066b0f68f Use builtin JSON Mime type constant 2020-04-23 16:15:59 -06:00
crobibero 6f20e2482f Fix build 2020-04-23 12:43:05 -06:00
Admin d1684b1053 http in development mode crashed - 2020-04-23 18:30:48 +01:00
dkanada 534b372b81 remove several deprecated utilities in the web package 2020-04-23 22:56:32 +09:00
dkanada aa6d52277d Merge pull request #2771 from Bond-009/nullable4
Enable nullabe reference types for Emby.Drawing and Jellyfin.Drawing.Skia
2020-04-23 18:43:37 +09:00
Bond_009 118f30059c Merge branch 'master' into nullable4 2020-04-23 11:29:19 +02:00
Miko Dela Cruz 97e383d108 Translated using Weblate (Japanese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ja/
2020-04-23 01:44:09 -04:00
tyaprak 964e277932 Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/tr/
2020-04-23 01:44:09 -04:00
Unlimitediq 7d22a3c394 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nl/
2020-04-23 01:44:09 -04:00
dkanada 97d7ffc458 Merge pull request #2861 from mark-monteiro/fix-auth-response-codes
Fix Auth Response Codes
2020-04-23 14:10:22 +09:00
Bond-009 07c4dfd8fe Merge pull request #2765 from mark-monteiro/register-services-correctly
Register And Construct Services Correctly Using DI Framework
2020-04-22 20:39:03 +02:00
Mark Monteiro 8f02fb9a4f Remove unused usings
This addresses the new issues identified in SonarCloud analysis
2020-04-22 13:09:59 -04:00
Bond-009 d744d7d234 Merge branch 'master' into register-services-correctly 2020-04-22 13:05:03 -04:00
ZadenRB eee02a355a Adds produces annotation to the base controller to indicate application/json as the response type for endpoints 2020-04-22 10:06:37 -06:00
Patrick Barron f5f9901544 Fixed build 2020-04-22 09:55:35 -04:00
Patrick Barron 7586c60224 Merge branch 'master' into warnings-cleanup1 2020-04-22 13:44:20 +00:00
Bond-009 07326c1d9b Merge branch 'master' into fix-auth-response-codes 2020-04-22 13:16:08 +02:00
Bond-009 a85b1dcba6 Merge pull request #2943 from mark-monteiro/fix-browser-autolaunch
Respect AutoRunWebApp and NoAutoRunWebApp settings when HostWebClient is false
2020-04-22 13:02:45 +02:00
Michael Ong de328a46cd Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant/
2020-04-22 04:54:42 -04:00
Wouter Kayser e943facebb Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nl/
2020-04-22 04:54:42 -04:00
Bond-009 c0b3c11b2e Merge pull request #2846 from jellyfin/azure
Remove requirement to build web during server builds
2020-04-22 00:17:44 +02:00
Vasily 587edde37a Merge pull request #2955 from mark-monteiro/sonarcloud
Add SonarCloud to the Azure Pipeline CI process
2020-04-22 01:11:15 +03:00
Mark Monteiro 9a401c3728 Only run SonarCloud analysis for ubuntu tests 2020-04-21 17:55:19 -04:00
Mark Monteiro c5f163293f Add <ProjectGuid> properties to all project files
This is required for SonarCloud analysis to run
2020-04-21 16:21:09 -04:00
Mark Monteiro 66364eba92 Add tasks required for SonarCloud integration 2020-04-21 15:53:22 -04:00
Chen-Tai,Peng a2f19eadf7 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant/
2020-04-21 13:36:28 -04:00
André Silva b88a94116b Translated using Weblate (Portuguese (Portugal))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt_PT/
2020-04-21 13:36:28 -04:00
Mehdi Khosravi 166a4e8129 Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fa/
2020-04-21 13:36:28 -04:00
Bond_009 851dda097e Minor improvement 2020-04-21 12:54:04 +02:00
Bond_009 735e7c3f7d Fix VideoResolver and tests 2020-04-21 12:11:55 +02:00
Bond_009 974a4e79f6 Enable TreatWarningsAsErrors for DvdLib 2020-04-21 10:33:41 +02:00
Bond_009 e21d6160c1 Address comments 2020-04-21 10:21:20 +02:00
Bond_009 c430a7ed8f Address comments 2020-04-21 10:18:26 +02:00
Mark Monteiro bc4e72b29b Create ApplicationHost logger correctly 2020-04-20 20:48:39 -04:00
Mark Monteiro f815059698 Merge remote-tracking branch 'upstream/master' into register-services-correctly 2020-04-20 20:11:33 -04:00
Vasily 07143bcb68 Merge pull request #2466 from dkanada/plugin
Update plugin classes for nightly builds
2020-04-21 01:45:52 +03:00
Mark Monteiro 24ed639725 Fix NuGet dependencies 2020-04-20 16:23:57 -04:00
Mark Monteiro 6612d9555f Ignore lauchSettings.json in test projects
This file is generated every time the solution is opened with Visual Studio but it is not a required file for an integration tests project
2020-04-20 16:01:33 -04:00
Mark Monteiro 2bcc553dda Commit missing changes to solution file 2020-04-20 15:54:54 -04:00
Mark Monteiro e43e6af405 Create integration tests for the endpoints in BrandingService 2020-04-20 15:47:36 -04:00
Mark Monteiro 307754a0e0 Create a derived version of WebApplicationFactory<> that works with the Jellyfin server 2020-04-20 15:39:55 -04:00
Mark Monteiro 51b610b999 Expose some methods in Program.cs so they can be used to initialize the application for integration tests 2020-04-20 14:58:00 -04:00
Mark Monteiro bd81825d2d Respect AutoRunWebApp and NoAutoRunWebApp settings when HostWebClient is false 2020-04-20 14:54:05 -04:00
Mark Monteiro 3cf2fce983 Handle null values for RemoteIpAddress and LocalIpAddress in websocket requests
These values are null when creating fake web requests as part of integration tests
2020-04-20 13:59:02 -04:00
ejalal 32ccab32bf Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-04-20 09:02:07 -04:00
Unknown 80f5dd1e59 Fixed missing colons
some colons were missing from the default ProtocolInfo string
2020-04-20 13:52:50 +01:00
dkanada d0716ef5b3 Merge pull request #2620 from mark-monteiro/development-documentation
Add Development Documentation To README
2020-04-20 20:52:32 +09:00
dkanada 1cc5d6745a Merge pull request #2903 from randrey/dlna-albumart-fix
Fix DLNA clients displaying wrong album art.
2020-04-20 20:51:14 +09:00
dkanada 2f6dd258e6 Merge pull request #2936 from anthonylavado/fix-etags-right
Remove JsonIgnore from the DateLastSaved property of BaseItem
2020-04-20 20:44:17 +09:00
Bond_009 958681cdff Cover more branches 2020-04-20 10:18:12 +02:00
Bond_009 7f4a229cd2 Add some simple tests 2020-04-20 10:18:12 +02:00
Bond_009 a8b59c5d21 Rename test 2020-04-20 09:53:36 +02:00
Anthony Lavado ed1dc5c922 Remove JsonIgnore from the DateLastSaved property of BaseItem 2020-04-20 02:35:47 -04:00
dkanada e6ef680775 add code suggestions 2020-04-20 14:27:46 +09:00
dkanada 3142c9b990 Merge pull request #2916 from Bond-009/minor2
Minor improvements
2020-04-20 13:52:27 +09:00
Andrew Rabert 1d4763a246 Merge pull request #2813 from nyanmisaka/docker
Switch to jellyfin-ffmpeg with integrated driver in docker build
2020-04-19 21:10:32 -04:00
Jay-Jay 42781c4d4b Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-04-19 20:11:01 -04:00
Mark Monteiro 6039c6200f Update instructions for running with the dotnet cli 2020-04-19 18:18:53 -04:00
Bond-009 6f866a7fdc Merge pull request #2915 from randrey/imdbid-length-fix
Fix imdbid regex
2020-04-20 00:09:18 +02:00
randrey d30fd3b3d2 Changed '\d' to '[0-9]'. 2020-04-19 14:14:04 -07:00
Patrick Barron f26f44acaf Apply code review suggestions 2020-04-19 13:39:12 -04:00
Joshua M. Boniface 5c669d7ad7 Merge pull request #2849 from lyonzy/patch-1
Handle null outputFileExtension in GetOutputFilePath
2020-04-19 12:45:08 -04:00
Bond_009 fc3e2baccc Address comments 2020-04-19 18:27:07 +02:00
Bond_009 d99536e99f Improved tests 2020-04-19 11:57:03 +02:00
Bond_009 a73e1f18b6 Minor improvements 2020-04-19 11:16:09 +02:00
tayhr 16401ec7ae Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt/
2020-04-18 23:16:00 -04:00
dkanada 1f28d49fc7 Merge pull request #2864 from JustAMan/fix-caching
Make Last-Modified and If-Modified-Since headers follow the spec
2020-04-19 12:04:18 +09:00
dkanada eda208e258 Merge pull request #2829 from Bond-009/warn19
Fix some warnings
2020-04-19 12:04:02 +09:00
dkanada d62bd7fecd fix spelling error 2020-04-19 11:46:22 +09:00
dkanada c35e6ac39a Merge pull request #2910 from randrey/dlna-extra-mime-types
Additional mime types for DLNA (VLC)
2020-04-19 11:38:25 +09:00
randrey 92f273cb0c Limit imdbid to 8 digits. 2020-04-18 18:18:48 -07:00
randrey d7a71cee3c Fix imdbid regex 2020-04-18 17:26:22 -07:00
Klanc e333e6765a Translated using Weblate (Catalan)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ca/
2020-04-18 12:35:23 -04:00
dkanada 167e96d212 Merge pull request #2848 from ZadenRB/startup-endpoint-parameters
Fix casing of JSON in Jellyfin API
2020-04-18 18:16:36 +09:00
randrey 2e10d385f0 Add mime type for .mpegts files. 2020-04-17 23:11:52 -07:00
Julien Machiels 25da2cb2d7 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-04-18 01:52:55 -04:00
randrey 156998dd83 Add mime types for ape and wv files. 2020-04-17 22:25:54 -07:00
randrey 0bef4eef87 Fix InvalidOperationException while browsing via DLNA client. 2020-04-17 14:45:56 -07:00
Bond_009 6b959f40ac Fix build 2020-04-17 20:01:25 +02:00
Mark Monteiro ecf49caf0d Add back warning message when Skia encoder cannot be used 2020-04-17 10:25:49 -04:00
Bond_009 f055995a1f Use System.Buffers in RangeRequestWriter 2020-04-17 14:21:15 +02:00
Bond-009 b76f570583 Merge pull request #2775 from mark-monteiro/upnp-cleanup
Port Forwarding Improvements
2020-04-17 14:19:49 +02:00
Andrey Sinitsyn 7529402cc9 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ru/
2020-04-17 07:40:20 -04:00
a1 eba781eac5 Fix DLNA clients displaying wrong album art. 2020-04-16 23:36:43 -07:00
Matt Lyons e7fde6aaca Handle null outputFileExtension with null-conditional operator 2020-04-17 16:13:56 +10:00
Mark Monteiro bcf1ef319a Update documentation for EnableUPnP 2020-04-17 00:27:18 -04:00
Mark Monteiro 1666f3ca14 Use dependency injection to construct migration routines 2020-04-16 23:40:32 -04:00
dkanada ae7153b65b Merge pull request #2880 from Bond-009/deadcode2
Remove dead function
2020-04-17 12:10:19 +09:00
Mark Monteiro 8a81bcd742 Restart port forwarding when public https port changes 2020-04-16 22:49:23 -04:00
Mark Monteiro 78d9b9894c Respond to config changes correctly for external port forwarding 2020-04-16 22:41:19 -04:00
Mark Monteiro 26afb42a72 Cleanup port forwarding service
- Use a concurrent collection instead of manually locking
- Do not forward HTTPS port when it is not enabled
- Created multiple rules (HTTP/HTTPS) in parallel instead of in sync
2020-04-16 22:41:19 -04:00
Mark Monteiro c78413cf7c Disable UPnP by default 2020-04-16 22:41:19 -04:00
Mark Monteiro 00a0e013c6 Update documentation for URL methods in ApplicationHost 2020-04-16 21:46:49 -04:00
Mark Monteiro fee76097f4 Remove CanConnectWithHttps Property
It is only used in one place and only adds confusion by existing
2020-04-16 21:45:00 -04:00
WWWesten 1c38983ab4 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ru/
2020-04-16 14:52:40 -04:00
ZadenRB bb288e16cc Document JSON options change 2020-04-15 17:02:43 -06:00
Vasily 95dc99fdbd Update Emby.Server.Implementations/HttpServer/HttpResultFactory.cs
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-16 01:03:29 +03:00
Vasily e1fb24c9ee Merge pull request #2830 from Bond-009/dvdlib
DvdLib: remove dependency on MediaBrowser.Model
2020-04-16 00:53:25 +03:00
Bond-009 31769bda28 Merge pull request #2745 from Artiume/patch-6
Force Audio Transcoding for LiveTV Transcoding
2020-04-15 23:23:56 +02:00
Bond-009 bcf53b3226 Merge pull request #2746 from dafo90/master
Authentication request log with IP
2020-04-15 23:22:50 +02:00
WWWesten 30b860fb82 Translated using Weblate (Russian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ru/
2020-04-15 16:44:09 -04:00
gnehs f8a4525fd5 Translated using Weblate (Chinese (Traditional))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hant/
2020-04-15 15:33:50 -04:00
Patrick Barron c4e6329e58 Clean up and document ChannelManager.cs and implement suggestions 2020-04-15 15:00:45 -04:00
dkanada d7df890017 Merge pull request #2855 from Delgan/improve-movie-resolver
Improve movie resolver if space precedes the year
2020-04-15 23:51:32 +09:00
Mark Monteiro daed41815f Add missing punctuation in xml comment
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-15 08:56:00 -04:00
Bond_009 72219795d1 Remove dead function 2020-04-15 14:29:12 +02:00
Mathias ed1ffcb603 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/da/
2020-04-15 07:55:21 -04:00
Bond-009 ae3ee1eb16 Merge pull request #2862 from mark-monteiro/dependabot/nuget/Mono.Nat-2.0.1
Bump Mono.Nat from 2.0.0 to 2.0.1
2020-04-15 11:24:11 +02:00
Bond_009 27ce10d0c1 Fix release build 2020-04-15 11:18:13 +02:00
Bond_009 10afa4509d Log exception 2020-04-15 11:14:54 +02:00
Bond_009 d6daac5064 Fix build 2020-04-15 11:12:58 +02:00
Bond_009 fc049caba2 Merge branch 'master' into nullable3 2020-04-15 11:09:14 +02:00
Bond_009 38dae51ccf Minor IAsyncDisposable improvements 2020-04-15 11:05:32 +02:00
ZadenRB 72862d7b46 Lowercase actual parameters in code and remove whitespace to comply with StyleCopAnalyzers 2020-04-15 00:24:15 -06:00
Patrick Barron a54dca09d8 Added the last missing documentation 2020-04-14 19:34:38 -04:00
Patrick Barron fd750a9c79 Clean up and document CryptographyProvider.cs 2020-04-14 16:13:41 -04:00
Patrick Barron ecaae2c8de Clean up and document ServerConfigurationManager.cs 2020-04-14 16:01:21 -04:00
Patrick Barron ddd8120aab Clean up and document CollectionManager.cs 2020-04-14 15:57:05 -04:00
Miko Dela Cruz 2eb5775ee3 Translated using Weblate (Japanese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ja/
2020-04-14 15:52:23 -04:00
Patrick Barron 77df0c943b Clean up and document CollectionImageProvider.cs 2020-04-14 15:50:48 -04:00
Patrick Barron f29e6badb3 Remove unused field and documented RefreshChannelsScheduledTask.cs 2020-04-14 15:48:06 -04:00
Patrick Barron c8e26b6d46 Document ChannelPostScanTask.cs 2020-04-14 15:36:29 -04:00
Patrick Barron 2c920cff33 Document ChannelImageProvider.cs 2020-04-14 15:29:57 -04:00
Patrick Barron 543c76a8f1 Clean up and document ChannelDynamicMediaSourceProvider.cs 2020-04-14 15:28:02 -04:00
Patrick Barron 4c0547f90c Document BrandingConfigurationFactory.cs 2020-04-14 15:19:11 -04:00
Patrick Barron 90e2564169 Document and clean up ZipClient.cs 2020-04-14 15:16:04 -04:00
Patrick Barron 9cec01d8ce Switch to using declaration 2020-04-14 15:11:21 -04:00
Patrick Barron 0e8f30f64b Documented BaseApplicationPath constructor parameters 2020-04-14 15:08:20 -04:00
Patrick Barron f6899de338 Clean up and document ActivityRepository.cs 2020-04-14 15:04:54 -04:00
Patrick Barron af4d617df2 Clean up and document ActivityManager.cs 2020-04-14 14:50:19 -04:00
Patrick Barron 9c679b6570 Clean up and document ActivityLogEntryPoint.cs 2020-04-14 14:45:57 -04:00
Jeisson rojas 96795ca250 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_AR/
2020-04-14 02:38:26 -04:00
Vasily 9df49cc796 Make Last-Modified and If-Modified-Since headers follow the spec 2020-04-14 01:52:43 +03:00
Mark Monteiro 9728aa8b0a Merge branch 'master' into register-services-correctly 2020-04-13 17:06:24 -04:00
Mark Monteiro 8b4b4b4127 Do not return the exception message to the client for AuthenticationExceptions 2020-04-13 16:10:55 -04:00
Mark Monteiro a8c3951c17 Only show developer exception page for 500 server exceptions
Other response codes should be returned as normal
2020-04-13 15:26:49 -04:00
Mark Monteiro 9c7b3850f9 Throw AuthenticationException instead of ArgumentNullException when a user does not exist 2020-04-13 14:55:24 -04:00
Mark Monteiro 98044e7793 Document AuthenticationException correctly 2020-04-13 13:18:12 -04:00
Mark Monteiro 53380689ad Return correct status codes for authentication and authorization errors
- Use AuthenticatonException to return 401
- Use SecurityException to return 403
- Update existing throws to throw the correct exception for the circumstance
2020-04-13 13:17:46 -04:00
Mark Monteiro 6d35dd6b32 Clean up SecurityException
- Remove unused SecurityExceptionType
- Add missing constructor for InnerException
- Add missing documentation
2020-04-13 13:13:48 -04:00
Delgan be6cc9644f Another iteration 2020-04-13 16:11:02 +02:00
Delgan 90d289f946 Fix failing tests? 2020-04-13 15:55:18 +02:00
Delgan 5c117734a5 Improve movie resolver if space precedes the year 2020-04-13 14:50:35 +02:00
dependabot-preview[bot] 4ecce9e085 Bump Mono.Nat from 2.0.0 to 2.0.1
Bumps [Mono.Nat](https://github.com/mono/Mono.Nat) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/mono/Mono.Nat/releases)
- [Commits](https://github.com/mono/Mono.Nat/compare/Mono.Nat-2.0.0...Mono.Nat-2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 10:39:10 +00:00
dkanada cb2523e2ef merge branch master into plugin 2020-04-13 14:38:19 +09:00
dkanada b937eb0c11 change conditional for download task on ci
Co-Authored-By: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-04-13 14:34:31 +09:00
Matt Lyons b52199e9e2 Handle null outputFileExtension in GetOutputFilePath 2020-04-13 12:44:15 +10:00
Oscar Rosario 9a0a4575ad Translated using Weblate (Spanish (Dominican Republic))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_DO/
2020-04-12 22:22:00 -04:00
ZadenRB 16a66dc89c Remove unused import, fix casing of startup wizard POST parameters 2020-04-12 19:25:02 -06:00
ZadenRB 5a658cf260 Fix casing of JSON in Jellyfin API. Currently only affects startup wizard. 2020-04-12 19:17:46 -06:00
Joshua M. Boniface bf92694f8b Merge pull request #2715 from nyanmisaka/libfdk-aac
Prefer to use libfdk_aac encoder for better audio quality when it is available
2020-04-12 19:17:11 -04:00
Maerik d23f388c5f Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/da/
2020-04-12 18:57:58 -04:00
Joshua M. Boniface 2be6550db4 Merge pull request #2783 from JustAMan/better-cancel-msg
Add logging of URL being processed when logging an error
2020-04-12 18:07:30 -04:00
Vasily 3bdb5e80a5 More consise error messages 2020-04-13 00:57:11 +03:00
Anthony Lavado 6d98c0b62a Merge pull request #2779 from KristupasSavickas/fix-docker-arm-ffmpeg-path
Fix ffmpeg path on ARM docker image
2020-04-12 16:49:43 -04:00
Vasily 058c35e739 Fix log highlithing 2020-04-12 23:40:34 +03:00
Vasily 6386b9b1b9 Merge pull request #2782 from JustAMan/fix-ssa-delivery
Fix support for attachments with baseURL set
2020-04-12 23:37:34 +03:00
Vasily 30f4392872 Fix condition flipped by https://github.com/jellyfin/jellyfin/pull/2635 2020-04-12 23:35:41 +03:00
Vasily 61d9c9df5b Addressing review feedback 2020-04-12 23:26:45 +03:00
Bond-009 df74c7722b Merge pull request #2804 from dtparr/extrasJunits
Add Unit Tests for the Extras Directories
2020-04-12 22:18:43 +02:00
dkanada 4758e75090 leave files in destination folder during extraction 2020-04-13 02:34:52 +09:00
dkanada 8c6e1ef27e fix pipeline references 2020-04-13 02:27:42 +09:00
dkanada 129e844252 use web artifacts for build step on ci 2020-04-13 02:20:37 +09:00
Bond-009 7731aba6f4 Merge pull request #2834 from mark-monteiro/add-nuget-config
Add nuget.config file
2020-04-12 15:35:39 +02:00
Adam Bokor 4dbb9dd201 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hu/
2020-04-12 05:57:02 -04:00
TheGoose 768703e9e1 Translated using Weblate (English (United Kingdom))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/en_GB/
2020-04-12 05:57:02 -04:00
Bond-009 84dba64644 Merge pull request #2821 from nyanmisaka/mpeg4
Fix MPEG4 broken on VAAPI
2020-04-12 11:44:17 +02:00
Nyanmisaka 62d9a48833 update as per suggestions 2020-04-12 17:34:25 +08:00
Nyanmisaka e6f65863e3 update as per suggestions 2020-04-12 17:32:03 +08:00
amirmasoud 75226c18ab Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fa/
2020-04-11 20:44:00 -04:00
Abdul Khaliq af089bd3cf Translated using Weblate (Urdu (Pakistan))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ur_PK/
2020-04-11 18:16:43 -04:00
tayhr 698e8420c0 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt/
2020-04-11 18:16:43 -04:00
Spiderfly 42b19256e6 Translated using Weblate (Finnish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fi/
2020-04-11 18:16:43 -04:00
Alexis BIZON fa0cdef67d Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-04-11 18:16:43 -04:00
amirmasoud 3a4c97075f Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fa/
2020-04-11 18:16:43 -04:00
Mark Monteiro fe11fb0a63 Add NuGet config file 2020-04-11 15:34:00 -04:00
dtparr 41f6fa0ae8 Whitespace fix
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-11 13:33:16 -05:00
dtparr e027f4645f Whitespace fix
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-11 13:33:06 -05:00
Bond-009 3d611743ed Merge pull request #2680 from mark-monteiro/remove-common-process
Remove CommonProcess and ProcessFactory
2020-04-11 20:30:20 +02:00
Mark Monteiro 4113288278 Fix style issues 2020-04-11 13:46:31 -04:00
Bond-009 14674d4469 Merge pull request #2772 from barronpm/codecleanup
MediaBrowser.Api code cleanup
2020-04-11 19:30:23 +02:00
Mark Monteiro 7152b55747 Use a separate line for each property initializer 2020-04-11 13:28:21 -04:00
Mark Monteiro 17e8813378 Use ActivatorUtilities to construct MediaEncoder and update constructor to inject EncodingHelper correctly 2020-04-11 10:53:13 -04:00
Mark Monteiro 1e1295bebf Merge remote-tracking branch 'upstream/master' into register-services-correctly 2020-04-11 10:00:39 -04:00
Bond_009 6b7517e506 Fix indentation 2020-04-11 15:37:24 +02:00
dkanada ff065df986 update plugin manifest url 2020-04-11 20:11:41 +09:00
dkanada bd55bdb4e3 merge branch master into plugin 2020-04-11 20:10:16 +09:00
dkanada cbe1fe2c8f update description and overview for plugins 2020-04-11 20:00:32 +09:00
dkanada 2da5df6c25 add new property for version changelogs 2020-04-11 19:56:42 +09:00
dkanada abb7ed9c35 rename target abi property 2020-04-11 19:54:33 +09:00
dkanada 78abbcc251 standardize plugin version and guid properties 2020-04-11 19:52:40 +09:00
dkanada 8e9aeb84b1 remove release channel from plugin classes 2020-04-11 19:33:36 +09:00
Bond_009 d8a7462205 DvdLib: remove dependency on MediaBrowser.Model 2020-04-11 12:33:23 +02:00
Bond_009 49fe5e0a21 Fix some warnings 2020-04-11 12:03:10 +02:00
Abdul Khaliq 299541f1b2 Added translation using Weblate (Urdu (Pakistan)) 2020-04-11 05:49:00 -04:00
dtparr 8e67cb541e Refactor the NamingOptions instantiations from both new and pre-existing facts/theories to be a readonly field to save instantiation costs 2020-04-10 23:00:30 +00:00
dtparr 8e42d0063d Fix tab/space issue causing github oddity 2020-04-10 21:21:22 +00:00
dtparr ce86455747 Update to use the Theory/InlineData method to parameterize unit tests 2020-04-10 21:18:41 +00:00
Bond-009 c62c702ef9 Merge pull request #2825 from mark-monteiro/fix-xml-doc
Fix misformed xml doc comment
2020-04-10 23:00:47 +02:00
Mark Monteiro 64a255f090 Fix misformed xml doc comment 2020-04-10 15:02:54 -04:00
Nyanmisaka 6485c1eabc probe Main/High 10 more specifically 2020-04-11 01:19:28 +08:00
sabretou 79f39f7336 Translated using Weblate (Marathi)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/mr/
2020-04-10 10:47:55 -04:00
Nyanmisaka dd3f3089ef minor changes 2020-04-10 22:41:27 +08:00
Nyanmisaka e0ee61d114 fix mpeg4 failed on vaapi 2020-04-10 22:12:26 +08:00
Nyanmisaka 79e3de1568 Merge pull request #3 from jellyfin/master 2020-04-10 22:09:48 +08:00
Nyanmisaka bfd87829e3 Merge pull request #2 from jellyfin/master
merge
2020-04-10 22:08:49 +08:00
sabretou ec2e9d52ba Added translation using Weblate (Marathi) 2020-04-10 09:01:45 -04:00
hydracodone 799c71e2b4 Translated using Weblate (Filipino)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fil/
2020-04-10 07:24:35 -04:00
Vasily 53db9567d3 Merge pull request #2769 from mark-monteiro/configurable-repo-url
Make Plugin Repo URL Configurable
2020-04-10 12:52:46 +03:00
dtparr 1f33c51977 Add Unit Test for the Extras directories.
Parameterize the valid extras as well as the null conditions.
2020-04-10 03:50:17 +00:00
Lars Søndergaard Petersen 77445d9a5d Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/da/
2020-04-09 20:30:10 -04:00
Vasily 06c5b73c15 Merge pull request #2755 from Bond-009/dbcleanup
Clean up SqliteItemRepository
2020-04-10 00:20:53 +03:00
Vasily 8196916354 Merge pull request #2816 from jellyfin/revert-2749-ffmpeg-dependency-version
Revert "Specify a minimum version for jellyfin-ffmpeg dependency in .deb dependencies"
2020-04-09 21:26:45 +03:00
Bond_009 c2b5fb78ce Address comments 2020-04-09 19:27:03 +02:00
Bond_009 9cca964b08 Address comments 2020-04-09 19:22:29 +02:00
ferferga 4e894b4b66 Remove unnecessary space in hardware decoders argument for ffmpeg 2020-04-09 18:23:21 +02:00
Joshua M. Boniface e872a89b1c Revert "Specify a minimum version for jellyfin-ffmpeg dependency in .deb dependencies" 2020-04-09 12:10:22 -04:00
hauntingEcho 4d949cb38b Specify a version for jellyfin-ffmpeg dependency in .deb
Lower versions cause #2126 in Jellyfin >= 10.4.3
2020-04-09 12:09:40 -04:00
Joshua M. Boniface 7eac368486 Fix missing restart script 2020-04-09 11:55:44 -04:00
Joshua M. Boniface 762a46045e Update gitignore paths for debian/ 2020-04-09 11:55:44 -04:00
Joshua M. Boniface fbad4f00b4 Remove old build infra (again) 2020-04-09 11:50:46 -04:00
Joshua M. Boniface 42813ef069 Preserve Unraid configuration 2020-04-09 11:50:32 -04:00
Joshua M. Boniface ed735522cf Revert "Remove old stuff"
This reverts commit b9fdd96ece.
2020-04-09 11:49:14 -04:00
Joshua M. Boniface 406d087a46 Correct ARCH var in Ubuntu Dockerfiles 2020-04-09 11:46:16 -04:00
Joshua M. Boniface b0e80b486b Use jellyfin.org everywhere 2020-04-09 11:40:04 -04:00
Joshua M. Boniface 529a9ae544 Don't remove already-moved files 2020-04-09 11:37:00 -04:00
Joshua M. Boniface c10df2fe85 Improve dpkg handling in build.sh 2020-04-09 11:33:22 -04:00
Joshua M. Boniface 9eab678487 Improve Fedora spec and add metapackage 2020-04-09 11:25:42 -04:00
Nyanmisaka 8105494cb5 minor changes 2020-04-09 17:37:57 +08:00
Bart 838b20a2d7 Translated using Weblate (Dutch)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nl/
2020-04-09 05:07:41 -04:00
Nyanmisaka 7b2fca96e3 use pre-compiled deb to avoid non-free drivers 2020-04-09 15:43:47 +08:00
Vasily be538d4277 Merge pull request #2799 from jellyfin/windows
Remove old windows job from pipeline
2020-04-08 19:08:09 +03:00
dafo90 dd128b5e30 Log message for each exception during login 2020-04-08 17:02:32 +02:00
Vasily 626d4dab10 Make sure Jellyfin listens on localhost no matter what
This is needed by LiveTV
2020-04-08 13:45:53 +03:00
Vasily 5b59cd2eb2 Merge pull request #2696 from mark-monteiro/fix-extras
Display Extras With Unknown Types
2020-04-07 23:39:31 +03:00
Bond-009 51991cd182 Merge pull request #2797 from mark-monteiro/ignore-jellyfin-web-dir
Add MediaBrowser.WebDashboard\jellyfin-web to .gitignore
2020-04-07 20:15:57 +02:00
Bond-009 b16b58bc57 Merge pull request #2785 from nyanmisaka/mpge4-profile15
Fix MPEG4 packback error regression on vaapi
2020-04-07 19:13:02 +02:00
Bond-009 3a98ad8255 Merge pull request #2721 from PrplHaz4/patch-2
Separate Channels permissions from All Libraries
2020-04-07 19:10:34 +02:00
dkanada bfff9b7178 Merge pull request #2794 from mark-monteiro/dependabot/nuget/System.Text.Json-4.7.1
Bump System.Text.Json from 4.7.0 to 4.7.1
2020-04-08 02:05:09 +09:00
Peter bee080cfff Translated using Weblate (Swedish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sv/
2020-04-07 12:43:49 -04:00
dkanada f4cba0ed43 fix dependency for compat job 2020-04-08 01:42:45 +09:00
dkanada 0a6faefe3a minor changes to main build job 2020-04-08 01:36:36 +09:00
dkanada ea00abcf4e remove old windows job from pipeline 2020-04-08 01:29:54 +09:00
dkanada 0a70c55021 Merge pull request #2793 from mark-monteiro/remove-interactive-extensions
Remove Ix.NET
2020-04-08 01:15:44 +09:00
dkanada aeedd06f51 Merge pull request #2796 from JustAMan/fix-transcode-reasons
Make codec check in profile examine profile type first
2020-04-08 01:04:31 +09:00
Vasily e85f9f5613 Make localhost LiveTV restreams always use plain HTTP port 2020-04-07 18:41:15 +03:00
Bond-009 5cff79ea38 Merge pull request #2791 from mark-monteiro/dependabot/nuget/coverlet.collector-1.2.1
Bump coverlet.collector from 1.2.0 to 1.2.1
2020-04-07 17:38:44 +02:00
Mark Monteiro 0a9b7c868e Specify the directory for jellyfin-web correctly 2020-04-07 10:42:16 -04:00
Mark Monteiro c88e6daacf Ignore the jellyfin-web directory in MediaBrowser.WebDashboard 2020-04-07 10:36:44 -04:00
Vasily 8e514f8d63 Fix check for profile supporting a codec - it should first check if profile is talking about media type
For example, audio-only profiles have "VideoCodec" set to "null" which translates to "any codec", which breaks some logic later on
2020-04-07 14:23:53 +03:00
Ibrahim Alesayi c6987df501 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-04-07 06:57:40 -04:00
Bond-009 3773e37755 Merge pull request #2792 from mark-monteiro/dependabot/nuget/sharpcompress-0.25.0
Bump sharpcompress from 0.24.0 to 0.25.0
2020-04-07 11:50:58 +02:00
Patrick Barron 555651aae2 Fixed indentation and corrected typo 2020-04-06 23:17:49 -04:00
Mark Monteiro 1f765cdd93 Remove reference to System.Interactive.Async 2020-04-06 22:04:55 -04:00
Mark Monteiro 8e3b09a996 Do not use IAsyncEnumerable unnecessarily 2020-04-06 22:04:24 -04:00
dependabot-preview[bot] 25aa26a8fd Bump sharpcompress from 0.24.0 to 0.25.0
Bumps [sharpcompress](https://github.com/adamhathcock/sharpcompress) from 0.24.0 to 0.25.0.
- [Release notes](https://github.com/adamhathcock/sharpcompress/releases)
- [Commits](https://github.com/adamhathcock/sharpcompress/compare/0.24...0.25)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-07 00:48:03 +00:00
Mark Monteiro 644ddfad00 Apply code review changes 2020-04-06 19:37:19 -04:00
dafo90 62b0db59aa Fix Authentication request log 2020-04-06 22:23:53 +02:00
Nyanmisaka 0ecac47098 drop the unnecessary colorspace conversion
Since 'hwdownload, format = nv12' has completed the conversion of colorspace. 'format = p010le' is redundant and will reduce the speed by almost half under the premise of unchanged cpu usage.
2020-04-07 00:20:49 +08:00
Nyanmisaka a5249730d7 mpeg4 profile 15 is not supported by vaapi device 2020-04-07 00:20:36 +08:00
Nyanmisaka 6453638103 Merge pull request #1 from jellyfin/master 2020-04-06 20:13:05 +08:00
Vasily 71d8e66d9f Add logging of URL being processed when logging an error
This might help diagnosing stuff like "Operation was cancelled"
2020-04-06 14:42:41 +03:00
Vasily 5be60782ed Fix support for attachments with baseURL set
* Revert "Add baseURL to attachments"
* This is properly handled by jellyfin-web#1020
2020-04-06 14:06:42 +03:00
Kristupas Savickas 9dda2ffc91 Fix ffmpeg path on ARM docker image 2020-04-06 13:21:20 +03:00
dkanada 0cd7cd611e Merge pull request #2758 from Bond-009/plugininstalled
Remove PluginInstalled
2020-04-06 19:01:15 +09:00
dkanada 0522c90109 Merge pull request #2635 from mark-monteiro/use-development-exception-page
Use ASP Development Exception Page
2020-04-06 18:59:58 +09:00
dkanada cb634d27d8 Merge branch 'master' into use-development-exception-page 2020-04-06 18:59:45 +09:00
dkanada 19b6961c08 Merge pull request #2749 from hauntingEcho/ffmpeg-dependency-version
Specify a minimum version for jellyfin-ffmpeg dependency in .deb dependencies
2020-04-06 16:48:39 +09:00
Mark Monteiro 5bc6c08a0a Merge remote-tracking branch 'upstream/master' into simplify-https-config 2020-04-06 00:24:11 -04:00
Mark Monteiro 410a322fe2 Add CanConnectWithHttps to interface 2020-04-05 23:30:57 -04:00
Patrick Barron c9da49ebaa Implemented more suggestions 2020-04-05 23:12:25 -04:00
Patrick Barron 47ba4a84cd Simplified more conditionals 2020-04-05 18:06:30 -04:00
Patrick Barron 81b4a4c54c Implement various suggestions 2020-04-05 17:58:39 -04:00
Patrick Barron e1958e3902 Miscellaneous code cleanup 2020-04-05 15:56:08 -04:00
Bond_009 2fcbc2a5b8 Enable nullabe reference types for Emby.Drawing and Jellyfin.Drawing.Skia 2020-04-05 21:19:04 +02:00
Patrick Barron add0a2088d Simplified Conditionals and returns 2020-04-05 14:44:14 -04:00
Mark Monteiro ed88430429 Log error messages when the manifest URL is not valid 2020-04-05 14:34:41 -04:00
Mark Monteiro 15dd46c25a Add '--plugin-manifest-url' command line option and 'InstallationManager:PluginManifestUrl' config option 2020-04-05 13:46:36 -04:00
Patrick Barron 80cfcf5643 Remove unnecessary casts and explicit array types 2020-04-05 13:00:35 -04:00
Patrick Barron 86c06996b1 Remove redundant name qualifiers 2020-04-05 12:48:22 -04:00
Patrick Barron 961f48f5bc Use ? and ?? where applicable 2020-04-05 12:45:01 -04:00
Patrick Barron 6a3f9253db Convert using statements to using declarations where applicable 2020-04-05 12:26:11 -04:00
Bond_009 30ce346f34 Enable nullabe reference types for MediaBrowser.Model 2020-04-05 18:10:56 +02:00
Patrick Barron 5966ee6d87 Convert type checks and null checks into pattern matching 2020-04-05 12:07:43 -04:00
Medzhnun 92af81166d Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/tr/
2020-04-05 11:11:09 -04:00
Mark Monteiro f91f2ef328 Merge remote-tracking branch 'upstream/master' into register-services-correctly 2020-04-05 10:07:17 -04:00
Mark Monteiro f2760cb055 Register IImageEncoder in Jellyfin.Server instead of Emby.Server.Implementations 2020-04-05 10:03:53 -04:00
Mark Monteiro 7be4b57fe7 Fix documentation for ExtraRuleType enum values 2020-04-05 09:47:55 -04:00
Mark Monteiro 3d8501e462 Document exception 2020-04-05 09:25:23 -04:00
Mark Monteiro 658e963e93 replace 'try-finally' with 'using' where appropriate 2020-04-05 09:23:44 -04:00
Bond-009 29539174a3 Merge pull request #2636 from mark-monteiro/development-https
Use ASP.NET Core HTTPS Development Certificate
2020-04-05 15:09:27 +02:00
Mark Monteiro bc91445b5d Use correct naming convention for _relevantEnvVarPrefixes 2020-04-05 09:05:23 -04:00
PrplHaz4 46453549b5 Start line with Boolean 2020-04-05 07:26:21 -04:00
PrplHaz4 b05e04c0cb Collapse IsInEnabledFolder to single expression
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-05 06:42:15 -04:00
Adam Bokor a05cdf0b05 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hu/
2020-04-05 05:18:52 -04:00
Adam Bokor 1cfc002764 Translated using Weblate (Hungarian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/hu/
2020-04-05 03:57:11 -04:00
Mark Monteiro 735d6c8ad5 Convert properties in ApplicationHost to private readonly fields, where possible 2020-04-04 23:18:47 -04:00
Mark Monteiro 241d0ae65c Inject IStartupOptions into StartupWizard 2020-04-04 23:14:35 -04:00
darcostan 33cb5c02b0 Translated using Weblate (Serbian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sr/
2020-04-04 22:28:03 -04:00
adrian gustavo martinez 837eacec04 Translated using Weblate (Spanish (Mexico))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_MX/
2020-04-04 22:28:03 -04:00
adrian gustavo martinez 3707437594 Translated using Weblate (Spanish (Argentina))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es_AR/
2020-04-04 22:28:02 -04:00
Mark Monteiro 809cf3a0c2 Register IJsonSerializer correctly 2020-04-04 21:33:57 -04:00
Mark Monteiro 710767fbf2 Add deprecation warning message for injecting ILogger 2020-04-04 21:27:48 -04:00
Mark Monteiro e16c16dd51 Register and construct IHttpClient correctly 2020-04-04 21:18:09 -04:00
Mark Monteiro adf0e8d3fd Register and construct ITaskManager and IIsoManager correctly 2020-04-04 21:00:11 -04:00
Mark Monteiro 3f2f95d877 Register IProcessFactory, ICryptoProvider and ISocketFactory correctly 2020-04-04 20:42:11 -04:00
Mark Monteiro aee6a1b476 Remove unnecessary async and parameter from ApplicationHost initialization method 2020-04-04 20:40:50 -04:00
Mark Monteiro 5d648bf54f Register and construct ILocalizationManager correctly 2020-04-04 20:21:48 -04:00
Mark Monteiro cbc0224aaf Register IStreamHelper, IInstallationManager, IZipClient, IHttpResultFactory and IBlurayExaminer correctly 2020-04-04 20:00:55 -04:00
Mark Monteiro 615717e562 Register and construct IUserDataManager and IUserDataRepository correctly 2020-04-04 19:57:26 -04:00
Mark Monteiro 5827f0f5a9 Register IDisplayPreferencesRepository correctly 2020-04-04 19:40:53 -04:00
Mark Monteiro a5234dfd88 Register and construct IAuthenticationRepository correctly 2020-04-04 19:36:27 -04:00
Mark Monteiro 4daa5436fc Register and construct IUserManager and IUserRepository correctly 2020-04-04 19:31:14 -04:00
Mark Monteiro 84b48eb69c Convert MediaEncoder property to field 2020-04-04 19:01:21 -04:00
Mark Monteiro fe9f4e06d1 Register and construct LibraryManager correctly 2020-04-04 18:28:46 -04:00
Mark Monteiro 7fd25f94f3 Inject and construct ISearchEngine and IMusicManager correctly 2020-04-04 18:22:29 -04:00
Mark Monteiro c2b21ce553 Register and construct ILibraryMonitor correctly 2020-04-04 17:33:00 -04:00
Mark Monteiro d173358065 Move ApplicationHost certificate initialization to constructor 2020-04-04 17:19:16 -04:00
Mark Monteiro 07cebbeae2 Register and construct IImageProcessor, SqliteItemRepository and IImageEncoder correctly 2020-04-04 17:12:24 -04:00
Mark Monteiro efe3ebaab8 Eliminate circular dependency between LibraryManager and ImageProcessor 2020-04-04 16:01:10 -04:00
Mark Monteiro 11693d6024 Register ITvManagerService correctly 2020-04-04 15:44:44 -04:00
Mark Monteiro 71c84905de Register IDeviceManager correctly 2020-04-04 15:40:06 -04:00
Mark Monteiro 7b31b0e322 Inject logger correctly into ActivityManager and ActivityRepository 2020-04-04 15:33:23 -04:00
Mark Monteiro 573da63d41 Register and construct IMediaSourceManager correctly 2020-04-04 15:28:21 -04:00
Mark Monteiro dd5a55aeba Register ISubtitleManager correctly 2020-04-04 15:12:02 -04:00
Mark Monteiro 3d8b81039d Log refresh progress at Debug level 2020-04-04 15:08:04 -04:00
Mark Monteiro 0ce82ab332 Remove unnecessary fields in ApplicationHost 2020-04-04 15:05:50 -04:00
Mark Monteiro 51b9a6e94b Register IProviderManager correctly 2020-04-04 14:56:50 -04:00
Mark Monteiro 75b05ca1e6 Register and construct DtoService correctly 2020-04-04 14:41:03 -04:00
Mark Monteiro cb2d99e831 Construct LiveTvDtoService and LiveTvManager correctly 2020-04-04 14:40:04 -04:00
Mark Monteiro f78423bd49 Register IChannerManager correctly 2020-04-04 14:32:35 -04:00
Mark Monteiro bb3db9e845 Register ISessionManager, IDlnaManager and ICollectionManager correctly; replace private properties with fields 2020-04-04 13:56:01 -04:00
Mark Monteiro 3d5b4f869c Register ILiveTvManager and IPlaylistManager correctly 2020-04-04 13:16:53 -04:00
Mark Monteiro 1456365411 Register IUserViewManager correctly 2020-04-04 13:10:39 -04:00
Abderrahmane TAHRI JOUTI a79c5a00a3 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-04-04 13:07:17 -04:00
Mark Monteiro f1d0fb1edb Register INotificationManager correctly; resolve services correctly 2020-04-04 13:03:32 -04:00
Mark Monteiro 78370911c2 Register IDeviceDiscovery, IChapterManager, IAttachmentExtractor correctly 2020-04-04 12:56:36 -04:00
Mark Monteiro 7884c3813d Register IEncodingManager correctly; remove unnecessary properties in ApplicationHost 2020-04-04 12:51:56 -04:00
Mark Monteiro 4ba07b114d Register and initialize IActivityRepository correctly 2020-04-04 12:46:35 -04:00
Mark Monteiro 3dbbe54f6c Register IResourceFileManager correctly 2020-04-04 12:42:21 -04:00
Mark Monteiro 18c1823cea Register IAuthorizationContext correctly 2020-04-04 12:40:33 -04:00
Mark Monteiro 358deecf52 Register ISessionContext correctly 2020-04-04 12:38:59 -04:00
Mark Monteiro 3147111471 Register IAuthService correctly 2020-04-04 12:34:01 -04:00
Mark Monteiro 92b0d40ad4 Move service initializations into correct method 2020-04-04 12:33:25 -04:00
Mark Monteiro e9e12b8eb9 Register ISubtitleEncoder correctly 2020-04-04 12:26:24 -04:00
Peter Cai 7cc53d3759 Translated using Weblate (Japanese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ja/
2020-04-04 05:31:50 -04:00
Peter Cai 2891a1438a Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hans/
2020-04-04 05:31:50 -04:00
K4DH3M 2294d28991 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-04-04 05:31:50 -04:00
Bond_009 ae21c67537 Remove PluginInstalled
Doesn't do anything yet as all plugins (afaik) still require a restart
2020-04-04 11:28:37 +02:00
Andrew Rabert 1aba4506be Merge pull request #2708 from ox0spy/master
Dockerfile: support for non-ASCII characters
2020-04-04 01:35:17 -04:00
Peter Cai 8f8b5d2422 Translated using Weblate (Japanese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ja/
2020-04-03 21:09:38 -04:00
Mark Monteiro 4efdc63337 Add missing call to ConfigureAwait() 2020-04-03 20:51:30 -04:00
Mark Monteiro e0f40f57d8 Merge remote-tracking branch 'upstream/master' into remove-common-process 2020-04-03 20:22:03 -04:00
Mark Monteiro 0e195d2e49 Add missing call to ConfigureAwait() 2020-04-03 20:20:55 -04:00
Mark Monteiro 7ced986e0b Remove section on serving over HTTPS
This functionality has not been merged yet
2020-04-03 20:07:11 -04:00
Mark Monteiro 499deb4fe5 Add section describing the repository with a link to contribution docs 2020-04-03 20:05:58 -04:00
Vasily d5cc10d7e1 Merge pull request #2741 from Bond-009/dlnawarnings2
Fix some warnings
2020-04-04 01:38:09 +03:00
Bond-009 64692af1a2 Update Device.cs 2020-04-04 00:24:36 +02:00
Bond-009 0951dc632b Update MediaBrowser.Controller/Entities/InternalPeopleQuery.cs
Co-Authored-By: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-04-04 00:21:54 +02:00
Bond-009 91b17e7289 Update Device.cs 2020-04-04 00:21:26 +02:00
Bond-009 4cacfd5997 Update DidlBuilder.cs 2020-04-03 23:20:04 +02:00
Bond-009 ad0e2e42e6 Update Device.cs 2020-04-03 23:13:45 +02:00
Bond-009 0b21494999 Update Emby.Server.Implementations/Data/SqliteItemRepository.cs
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-03 23:13:04 +02:00
Bond-009 d6224ddeda Update InternalPeopleQuery.cs 2020-04-03 22:44:18 +02:00
Bond-009 cbb6797043 Update SqliteItemRepository.cs 2020-04-03 22:41:14 +02:00
장건 cda0574c8d Translated using Weblate (Korean)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ko/
2020-04-03 16:22:04 -04:00
Bond_009 8e7b15285e Clean up SqliteItemRepository 2020-04-03 20:59:38 +02:00
Bond_009 3161e85f76 Address comments 2020-04-03 17:30:01 +02:00
Bond-009 f6c9a44703 Update Device.cs 2020-04-03 16:46:14 +02:00
Bond-009 231c1e519f Update Emby.Dlna.csproj 2020-04-03 16:44:40 +02:00
Vasily a37b69a493 Merge pull request #2559 from whooo/295-fix
Add descriptive TV episode titles for DLNA browsing
2020-04-03 17:39:33 +03:00
Andrew Hunter 6510c4ed02 Translated using Weblate (French (Canada))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr_CA/
2020-04-03 10:05:46 -04:00
4d1m 9ba8b37b0b Translated using Weblate (Romanian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ro/
2020-04-03 07:20:33 -04:00
dependabot-preview[bot] b80c2a532e Bump coverlet.collector from 1.2.0 to 1.2.1
Bumps [coverlet.collector](https://github.com/tonerdo/coverlet) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/tonerdo/coverlet/releases)
- [Commits](https://github.com/tonerdo/coverlet/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-03 10:44:33 +00:00
Vasily c85cb85eea Merge pull request #2742 from Bond-009/warn18
Enable Microsoft.CodeAnalysis.FxCopAnalyzers for Jellyfin.Common
2020-04-03 00:53:05 +03:00
Mark Monteiro 387fa474aa Document HTTPS configuration options 2020-04-02 17:45:33 -04:00
Mark Monteiro ca71ac72ab Replace EnableHttps and SupportsHttps with ListenWithHttps and CanConnectWithHttps 2020-04-02 17:45:04 -04:00
Didier Dafond 2fb9e36493 Authentication request log with IP 2020-04-02 22:02:14 +02:00
Mednis 65542c7c98 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lv/
2020-04-02 15:59:42 -04:00
Arild Stølen a01395739a Translated using Weblate (Norwegian Bokmål)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nb_NO/
2020-04-02 15:59:42 -04:00
Mark Monteiro de634203d8 Put Boolean operators at beginning of lines instead of the end 2020-04-02 14:31:56 -04:00
artiume d10ae74b38 Force Audio Transcoding for LiveTV Transcoding
Noticing some sync issues when transcoding livetv, the only thing I was able to do to fix it was to force the audio stream to be transcoded as well. This was how I originally wrote the code and we changed it during the review process. I am reverting it back to the original code.
2020-04-02 14:14:57 -04:00
Bond_009 2be394089e Enable Microsoft.CodeAnalysis.FxCopAnalyzers for Jellyfin.Common 2020-04-02 20:12:18 +02:00
Mark Monteiro eadad73117 Merge branch 'master' into use-development-exception-page 2020-04-02 13:51:53 -04:00
dkanada 5a816f0b22 Merge pull request #2731 from Bond-009/minor2
Minor improvements
2020-04-03 01:41:05 +09:00
DJSweder b07b499466 Translated using Weblate (Czech)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/cs/
2020-04-02 12:07:38 -04:00
Bond-009 b3283e37f2 Merge pull request #2740 from JustAMan/fix-livetv
Fix GetLocalApiUrl for cases with https enabled
2020-04-02 18:04:49 +02:00
Bond_009 8a566dfe73 Fix build 2020-04-02 17:07:37 +02:00
Bond_009 be8ba96183 Fix some warnings 2020-04-02 16:52:11 +02:00
Bond-009 108172c00f Merge pull request #2637 from mark-monteiro/do-not-instantiate-services-at-startup
Do not instantiate IService instances unecessarily at startup
2020-04-02 15:50:47 +02:00
Mark Monteiro 2a521b0f68 Rename 'log' to 'logger' 2020-04-02 09:32:43 -04:00
Vasily 89448ac055 Merge pull request #2634 from mark-monteiro/enable-http2
Enable HTTP/2 support
2020-04-02 13:54:05 +03:00
Vasily bece62fd5c Fix GetLocalApiUrl for cases with https enabled
This should fix LiveTV and tuners
2020-04-02 13:40:48 +03:00
Mark Monteiro 0e57348cf4 Merge remote-tracking branch 'upstream/master' into development-https 2020-04-01 23:21:30 +02:00
Mark Monteiro 123bfbcf19 Merge remote-tracking branch 'upstream/master' into use-development-exception-page 2020-04-01 23:09:55 +02:00
Mark Monteiro 5b1091db27 Merge remote-tracking branch 'upstream/master' into do-not-instantiate-services-at-startup 2020-04-01 23:05:36 +02:00
Vasily cc40f84f3c Merge pull request #2660 from Bond-009/usings
Minor style fixes
2020-04-01 23:56:00 +03:00
Bond-009 f31efce52d Merge branch 'master' into usings 2020-04-01 22:42:43 +02:00
Vasily 07ea120ba9 Merge pull request #2601 from mark-monteiro/support-running-without-web-content
Support Running Server Without Web Content
2020-04-01 23:38:43 +03:00
Vasily 10275a1f32 Merge pull request #2447 from Bond-009/minor
Add analyzers to MediaBrowser.Providers and minor improvements
2020-04-01 23:35:40 +03:00
dkanada d8b4df6823 Merge pull request #2735 from mark-monteiro/dependabot/nuget/Microsoft.NET.Test.Sdk-16.5.0
Bump Microsoft.NET.Test.Sdk from 16.4.0 to 16.5.0
2020-04-02 05:11:43 +09:00
Vitorvlv 5804873d38 Translated using Weblate (Portuguese (Brazil))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt_BR/
2020-04-01 15:44:35 -04:00
Mark Monteiro 4699ec6417 Use null-coalescing assignment
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-01 21:20:36 +02:00
MG cd5289efcf Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/it/
2020-04-01 13:49:20 -04:00
Louis Hermier ab7771941a Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-04-01 13:49:20 -04:00
Medzhnun 3c666aed4c Translated using Weblate (Bulgarian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bg/
2020-04-01 13:49:20 -04:00
Mark Monteiro 1a4d9d4c53 Code review suggestions 2020-04-01 19:41:52 +02:00
Anthony Lavado c9919f4633 Merge pull request #2730 from Bond-009/plugincrash
Try to not crash on unsupported plugin load
2020-04-01 13:17:56 -04:00
Bond_009 3ab50f5a3f Address comments 2020-04-01 19:05:41 +02:00
Mark Monteiro 377f9896ce Small fixes 2020-04-01 19:04:00 +02:00
Mark Monteiro 4ff8d30e41 Document ExtraRule properly 2020-04-01 18:54:06 +02:00
Mark Monteiro 34204046dd Remove duplicate array of extras directory names 2020-04-01 18:53:53 +02:00
Bond_009 787049f35f Merge branch 'master' into minor 2020-04-01 18:53:22 +02:00
Mark Monteiro 2e1ec2858a Match using directory names in ExtraResolver 2020-04-01 18:53:19 +02:00
Bond-009 ddd5d3aaec Merge branch 'master' into usings 2020-04-01 18:51:44 +02:00
Bond-009 62a18af17a Update Emby.Dlna/Main/DlnaEntryPoint.cs
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-01 18:50:19 +02:00
Nyanmisaka d9b78a1dc5 update as per suggestion
Co-Authored-By: Bond-009 <bond.009@outlook.com>
2020-04-02 00:48:43 +08:00
Mark Monteiro cc8294842a Add ExtraType.Unknown enum value and use it instead of null 2020-04-01 18:10:29 +02:00
Bond_009 4419587c2a Minor improvements 2020-04-01 15:30:53 +02:00
Bond_009 147e434634 Try to not crash on unsupported plugin load 2020-04-01 14:50:18 +02:00
Mark Monteiro 861bad1eda Apply suggestions from code review 2020-04-01 13:26:47 +02:00
dkanada 58900bb57e Merge pull request #2723 from jairbubbles/updateSkiaForArm
Update Jellyfin.SkiaSharp.NativeAssets.LinuxArm to version 1.68.1
2020-04-01 16:14:22 +09:00
hauntingEcho d565d6e8f1 Specify a version for jellyfin-ffmpeg dependency in .deb
Lower versions cause #2126 in Jellyfin >= 10.4.3
2020-03-31 21:41:10 -05:00
Nyanmisaka ebb7590350 update as per suggestion
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-01 07:48:29 +08:00
nextlooper42 aa96f4322e Translated using Weblate (Slovak)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sk/
2020-03-31 19:33:14 -04:00
KGT1 6e847b3f57 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-03-31 19:33:14 -04:00
Vasily 9aefb41512 Merge pull request #2503 from nyanmisaka/vaapi
Fix various bugs in HWA subtitle burn-in
2020-03-31 23:19:44 +03:00
Nyanmisaka cf98a1fbc7 update as per suggestion
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-04-01 00:22:10 +08:00
Exploding Dragon 314129c803 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hans/
2020-03-31 07:31:05 -04:00
amirmasoud 6408174ccc Translated using Weblate (Persian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fa/
2020-03-31 07:31:05 -04:00
pucherot 6bfb7524f9 Translated using Weblate (Spanish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/es/
2020-03-31 07:31:05 -04:00
Unknown 55ddda09c4 Update Jellyfin.SkiaSharp.NativeAssets.LinuxArm to version 1.68.1 2020-03-31 08:25:35 +02:00
dkanada 9e82e7c847 Merge pull request #2712 from joshuaboniface/fix-ldap-issues
Revert #2146 ordering change
2020-03-31 15:15:25 +09:00
Nyanmisaka 0aefc39469 Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hans/
2020-03-31 01:47:59 -04:00
abdulaziz 0a23abb84f Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-03-30 19:33:01 -04:00
Anthony Lavado 8c8a396cd6 Merge pull request #2720 from dkanada/music
Fix custom musicbrainz servers
2020-03-30 17:19:42 -04:00
PrplHaz4 025888204d Fix permission setting on Channels
Currently, permission settings on Channels are not taken into account prior to returning `{UserName} is not permitted to access Library {ItemName}.`.  Whether or not a user can see items within the Channel is solely dependent on `EnableAllFolders`, so you cannot view a plugin's Channels unless you can also see ALL libraries.

This PR enables does two things for Channel-providing Plugins:
1. Fixes functionality of "EnableAllChannels"
2. Allows users with Channel permissions to access all folders within that Channel

I'm not 100% sure on 2 but I wasn't able to see an obvious way to propagate permissions downward into specific Folders inside a Channel.

I tested on a fairly simple library with two channel-providing plugins (ServerWMC, LazyMan) and it seems to work, but this behavior should also be tested by someone with more content/collections.
2020-03-30 17:14:59 -04:00
dkanada 907f2bb2f4 fix custom musicbrainz servers 2020-03-31 05:16:32 +09:00
nyanmisaka 95c5c08610 minor improvements 2020-03-31 04:04:55 +08:00
Joshua M. Boniface 49da8766d8 Update bump_version script
1. Remove some cruft
2. Update the metapackage as well
3. Changelogs are automated, don't bother EDITOR-ing them
2020-03-30 15:24:38 -04:00
nyanmisaka db23660660 prefer to use libfdk_aac for better audio quality 2020-03-30 15:53:49 +08:00
nyanmisaka 0af353404c fix the UTF-16 error while burning ass/ssa subtitles 2020-03-30 14:47:55 +08:00
Nyanmisaka 0e9d9a7897 fix the incorrect HLS time while using hw encoders 2020-03-30 14:48:57 +08:00
Nyanmisaka 0c6ac38454 fix graphical subtitle scaling for NVDEC 2020-03-30 14:48:44 +08:00
Nyanmisaka 111095c2b0 fix QSV HWA failed when burning text subtitles
ffmpeg 4.3+ is required for better transcoding speed(more than twice increase).
Using qsv on Linux also requires a fix in ffmpeg 4.3+.
See https://github.com/FFmpeg/FFmpeg/commit/74007dd86a87289a075926704fae5bd8ef313bb5
2020-03-30 14:47:55 +08:00
nyanmisaka fac6831653 fix various bugs in VAAPI hardware acceleration 2020-03-30 14:47:55 +08:00
Joshua M. Boniface 8094687b9c Add Debian/Ubuntu metapackage equivs file 2020-03-30 02:40:06 -04:00
Vasily 5bda05304a Merge pull request #2678 from ferferga/master
Translate Scheduled Tasks
2020-03-30 02:51:41 +03:00
ferferga a9759f6a80 Rename translation keys 2020-03-29 23:46:19 +02:00
Bond-009 5acd0521a2 Merge pull request #2639 from alset333/master
Change DeinterlaceMethod's "bobandweave" to "yadif" or "yadif_bob", and set default value
2020-03-29 23:03:01 +02:00
Joshua M. Boniface c356266419 Revert #2146 ordering change 2020-03-29 16:57:13 -04:00
ox0spy e0fdf6fa07 Dockerfile: support for non-ASCII characters 2020-03-29 14:05:22 +00:00
Mark Monteiro e266ad51c5 Simplify logic; remove unnecessary methods 2020-03-28 14:17:33 +01:00
Mark Monteiro ea306e8f6d Do not assign an invalid value of zero to ExtraType 2020-03-28 13:54:14 +01:00
Mark Monteiro 5fcbedc194 Display extras with an unknown type 2020-03-28 13:40:56 +01:00
dkanada bd4269cb59 Merge pull request #2667 from crobibero/emby-naming-warnings
Fix warnings in Emby.Naming
2020-03-28 04:51:35 +09:00
ferferga 620135d8da Removed spanish string from english file 2020-03-27 17:06:06 +01:00
ferferga aa98160d70 Add whitespaces 2020-03-27 16:49:01 +01:00
ferferga 797b2fbf1d Restore comments 2020-03-27 11:25:32 +01:00
Erik Larsson b63ed35238 Add descriptive TV episode titles for DLNA browsing
When browsing TV episodes in Next Up, etc via DLNA a more descriptive
title should be used to easier identify the right episode.
2020-03-27 06:34:22 +01:00
Mark Monteiro 1f5caa46c5 Fix some more issues with disposing Process instances 2020-03-27 01:53:08 +01:00
Mark Monteiro d705931e81 Dispose of process correctly in AttachmentExtractor 2020-03-27 01:42:28 +01:00
Mark Monteiro 1c13be085f Make HasExitedSafe() private 2020-03-27 01:28:24 +01:00
Mark Monteiro 48bbcbb426 Use WaitForExitAsync extension method in AttachmentExtractor 2020-03-27 01:09:25 +01:00
Mark Monteiro 97c36d11d4 Use a TimeSpan instead of ms and support providing a custom CancellationToken 2020-03-27 01:09:09 +01:00
Mark Monteiro 7447ea8960 Make sure Process objects are all disposed correctly 2020-03-27 00:49:22 +01:00
Mark Monteiro b947d98266 Delete unnecessary ProcessFactory abstraction 2020-03-27 00:45:48 +01:00
Mark Monteiro ee2f911a2b Remove unnecessary CommonProcess abstraction 2020-03-27 00:10:16 +01:00
ferferga a2a53ec879 Same with SubtitleScheduledTasks 2020-03-26 22:49:54 +01:00
ferferga 07f4893ba6 Translated RefreshChannelScheduledTask as well 2020-03-26 22:36:11 +01:00
ferferga 28f07df657 Fix NullReferenceException at startup 2020-03-26 22:26:25 +01:00
Luke Foust 0fb78cf54b Add documentation around Name, Id, and Type. Changed ExternalIdType to ExternalIdMediaType 2020-03-26 14:26:12 -07:00
ferferga 105fc3dc29 Apply suggestions 2020-03-26 21:40:41 +01:00
Luke Foust ae4e727b24 Merge branch 'master' of https://github.com/lfoust/jellyfin into externalid-type 2020-03-26 13:36:18 -07:00
ferferga d0b3dc1485 Remove an unused string 2020-03-26 20:32:28 +01:00
ferferga 30c1170a55 Remove comments 2020-03-26 20:29:00 +01:00
ferferga 0778eb20aa Translate Scheduled Tasks (names and descriptions) 2020-03-26 20:28:30 +01:00
dependabot-preview[bot] b10f268c43 Bump Microsoft.NET.Test.Sdk from 16.4.0 to 16.5.0
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 16.4.0 to 16.5.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Commits](https://github.com/microsoft/vstest/compare/v16.4.0...v16.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-26 17:15:35 +00:00
dependabot-preview[bot] 798a765105 Bump System.Text.Json from 4.7.0 to 4.7.1
Bumps [System.Text.Json](https://github.com/dotnet/corefx) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/dotnet/corefx/releases)
- [Commits](https://github.com/dotnet/corefx/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-26 17:15:32 +00:00
Cody Robibero ea49514723 Update Emby.Naming/Subtitles/SubtitleParser.cs
Co-Authored-By: dkanada <dkanada@users.noreply.github.com>
2020-03-26 09:31:23 -06:00
Bond-009 10050a55a5 Merge pull request #2674 from JustAMan/fix-attachments-scan
Make variables binding correspond with column names
2020-03-26 15:57:06 +01:00
Vasily 0d2a355c00 Make variables binding correspond with column names 2020-03-26 17:40:28 +03:00
dkanada 622106467e Merge pull request #2668 from mark-monteiro/fix-application-host-dispose
Fix ApplicationHost Dispose() method
2020-03-26 14:26:53 +09:00
crobibero bd5c66b2a6 implement suggestions 2020-03-25 18:29:47 -06:00
dkanada 6c2cca57f4 Merge pull request #2669 from mark-monteiro/update-net-core
Update .NET Core to 3.1.3
2020-03-26 07:57:16 +09:00
crobibero 18906d0205 implement suggestions 2020-03-25 14:33:44 -06:00
crobibero 261a2e1989 revert xml docs indentation 2020-03-25 14:31:03 -06:00
Mark Monteiro aa9737afb3 Update .NET Core to 3.1.3 2020-03-25 20:09:48 +01:00
Mark Monteiro d1fe28fac6 Check for null before disposing 2020-03-25 19:16:12 +01:00
Mark Monteiro ca85bef7c5 Move check for web client directory to application startup in Program.cs 2020-03-25 18:52:14 +01:00
crobibero cb68fbeb0a Fix warnings in Emby.Naming 2020-03-25 10:53:03 -06:00
Mathis 37ff36226b Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-03-25 02:52:56 -04:00
Bond-009 306bc4008d Merge pull request #2657 from villagra/master
Add netstandard2.0 as TargetFramework
2020-03-24 22:36:51 +01:00
Bond-009 632323969f Merge pull request #2655 from lfoust/tvdbruntimefix
Fix FormatException when mapping TVDB series
2020-03-24 22:04:24 +01:00
Bond-009 1345e699fa Merge pull request #2653 from iwalton3/fix-embedded-subtitles
Fix embedded mkv subtitles.
2020-03-24 22:04:16 +01:00
Bond-009 eb09d47ed2 Update Jellyfin.Server/Program.cs
Co-Authored-By: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-03-24 17:43:11 +01:00
Mark Monteiro 4bccaafb57 Use 'Length' instead of 'Any()' for an array 2020-03-24 16:27:54 +01:00
Joshua M. Boniface cd616746b9 Use more specific mv source glob 2020-03-24 11:17:01 -04:00
Bond_009 7915c6ca73 Remove extra ; 2020-03-24 16:16:13 +01:00
Bond_009 e9d1eabd53 Remove unused usings 2020-03-24 16:12:06 +01:00
Jose 5a30d9ecfb Added support for netstandard2.0 besides netstandard2.1 (multi target framework) to allow usage from UWP (netstandard 2.1 not available in UWP until .net 5) 2020-03-24 09:58:04 +01:00
Joshua M. Boniface b9fdd96ece Remove old stuff 2020-03-24 01:10:29 -04:00
Joshua M. Boniface 05aa28a377 Clean up redundant Makefile steps 2020-03-24 00:01:48 -04:00
Joshua M. Boniface 891aa7c255 Update info in Fedora spec 2020-03-23 23:00:35 -04:00
Joshua M. Boniface fc5e932492 Fix makefile formatting 2020-03-23 22:55:37 -04:00
Joshua M. Boniface be9eb0f19e Unify dep installation and update 2020-03-23 22:51:12 -04:00
Joshua M. Boniface e87a10235b Go back to cp-based control archive but right 2020-03-23 21:52:35 -04:00
Joshua M. Boniface c478a43fd5 Update package description for Debian 2020-03-23 21:44:33 -04:00
Joshua M. Boniface a561d4ca41 Remove arch from macos 2020-03-23 18:44:32 -04:00
Joshua M. Boniface b95bd0e678 Bump shared_version to 10.6.0 too 2020-03-23 18:42:09 -04:00
Joshua M. Boniface de66ab4d83 Use git checkout instead of file copies to clean 2020-03-23 18:41:23 -04:00
Joshua M. Boniface 9169861baa Add CODEOWNERS for GitHub 2020-03-23 18:18:38 -04:00
Joshua M. Boniface 0242ce5fee Add Windows build 2020-03-23 18:18:32 -04:00
Joshua M. Boniface ab8de37080 Add .tar.gz-based builds 2020-03-23 18:01:42 -04:00
Joshua M. Boniface 8e0a33c1aa Handle single- or triple-part platform names 2020-03-23 18:01:28 -04:00
Joshua M. Boniface cf6dc609b7 Fix up single-segment platform names 2020-03-23 17:54:17 -04:00
Joshua M. Boniface 6028bc0f79 Port Fedora and CentOS builds and remove web build
Simplifies a number of aspects of the RPM build, including moving
.copr/Makefile into the "fedora/" folder (and leaving a symlink),
removing the jellyfin-web build components, and renaming it
jellyfin-server like Debian did.
2020-03-23 17:32:07 -04:00
Joshua M. Boniface eb632e4a0d Back up and restore control file 2020-03-23 16:01:25 -04:00
Joshua M. Boniface 8b1a76a32e Mount the source volume rather than copy it
Now that the build script cleans up both before and after building, this
is a viable option and will significant reduce build times by promoting
container reuse (with `-k`).
2020-03-23 15:46:08 -04:00
Joshua M. Boniface 3e7a106a95 Add Ubuntu configurations 2020-03-23 15:40:59 -04:00
Joshua M. Boniface 9ce2af2a6c Don't limit to files (allow symlinks) 2020-03-23 15:40:51 -04:00
Joshua M. Boniface f72c5b7a1d Fix version output 2020-03-23 15:40:19 -04:00
Joshua M. Boniface c4a29e537c Remove NPM install from Dockerfiles 2020-03-23 15:28:57 -04:00
Joshua M. Boniface 0365adb823 Fix deps for armhf 2020-03-23 15:24:13 -04:00
Joshua M. Boniface 9c378866e4 Add arm64 and armhf builds 2020-03-23 15:02:54 -04:00
Joshua M. Boniface 163cf223aa Only support cross-building with Docker 2020-03-23 15:00:41 -04:00
Joshua M. Boniface c61e95d117 Only support Docker builds on amd64 2020-03-23 14:49:55 -04:00
Joshua M. Boniface 93d1256a4c Remove web building, rename, bump version 2020-03-23 14:46:16 -04:00
Luke Foust 128b18750f Prevent FormatException when mapping TV series 2020-03-23 10:56:54 -07:00
Ian Walton 4836d1674b Don't return closed stream for subtitles. (jellyfin/jellyfin#2650) 2020-03-23 12:39:12 -04:00
Luke Foust a7e7098da6 Merge pull request #3 from jellyfin/master
merge with upstream master
2020-03-23 08:00:32 -07:00
Dennis M. Pöpperl da4855ce4f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-03-23 10:18:02 -04:00
dkanada 84311fdb76 Merge pull request #2645 from sparky8251/rss-feed-add
Add RSS feed badges to README
2020-03-23 19:06:44 +09:00
dkanada 86f614b26b Merge pull request #2638 from mark-monteiro/update-asp
Update .NET Core to 3.1.2
2020-03-23 18:48:22 +09:00
sparky8251 83f4494b9e Clean up minor formatting issue 2020-03-22 19:17:57 -04:00
sparky8251 975fef9ebc Add RSS feed badges to README 2020-03-22 19:08:00 -04:00
Joshua M. Boniface ba55ee4986 Add first proof-of-concept deployment setup 2020-03-22 16:03:14 -04:00
Joshua M. Boniface 3571afece1 Ignore web artifacts 2020-03-22 16:03:08 -04:00
Joshua M. Boniface f9cecfc0fb Add new build.sh script and symlink 2020-03-22 16:02:02 -04:00
Joshua M. Boniface 8b620ed26a Move Debian folder to root of repo 2020-03-22 16:01:33 -04:00
Joshua M. Boniface 28f7df6520 Move all old deployment stuff to a new folder 2020-03-22 16:00:52 -04:00
Joshua M. Boniface 2afbbba3f8 Remove old build script 2020-03-22 16:00:20 -04:00
Luke Foust 9bdb99fe92 Add type to externalids to distinguish them in the UI 2020-03-22 12:58:53 -07:00
Frode F a4ff27fbdc Translated using Weblate (Norwegian Nynorsk)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/nn/
2020-03-22 15:55:26 -04:00
Luke Foust f3213d3bef Merge pull request #2 from jellyfin/master
merge with upstream master
2020-03-22 12:28:59 -07:00
Joshua M. Boniface 425bd2b01b Merge pull request #2642 from mark-monteiro/fix-extras
Add missing null check when retrieving extras
2020-03-22 15:10:23 -04:00
dkanada 0d9787dfb4 Merge pull request #2478 from JustAMan/fix-search-order
Fix ordering of search results
2020-03-23 02:30:41 +09:00
dkanada 7270997e76 add code suggestions
Co-Authored-By: Mark Monteiro <marknr.monteiro@protonmail.com>
2020-03-23 00:59:22 +09:00
Mark Monteiro 6897a19051 Add missing null check when retrieving extras 2020-03-22 15:09:51 +01:00
Mark Monteiro 6183b83b18 Update benches project to correct target framework 2020-03-22 02:14:38 +01:00
Mark Monteiro debab44870 Update all packages to .NET Core 3.1.2 2020-03-22 02:03:07 +01:00
Mark Monteiro b8580e58aa Check for implementation of IService correctly 2020-03-21 23:28:27 +01:00
Mark Monteiro 6f8c81ff7e Register ServiceController with the DI framework 2020-03-21 23:28:07 +01:00
Mark Monteiro dc2b8c4646 Log a warning if an attempt is made to register an invalid service type 2020-03-21 23:19:24 +01:00
Mark Monteiro 72c822513f Create ServiceController via DI instead of manual construction 2020-03-21 23:18:41 +01:00
Mark Monteiro dc140429fe Do not create unnecessary instances of IService at server startup 2020-03-21 23:17:30 +01:00
Mark Monteiro 3fd245ba87 Add instructions for serving content over HTTPS 2020-03-21 23:03:00 +01:00
Mark Monteiro c36e4ecc6c Log all 'DOTNET_' and 'ASPNETCORE_' environment variables at application startup 2020-03-21 22:45:57 +01:00
Mark Monteiro 0e3d319a3a Log 'ASPNETCORE_ENVIRONMENT' value at application startup 2020-03-21 22:30:38 +01:00
Mark Monteiro 54cbf9c4dc Bind HTTPS ports when running with development environment flag 2020-03-21 21:31:22 +01:00
Mark Monteiro edc974e4c0 Set 'ASPNETCORE_ENVIRONMENT=Development' when running from visual studio 2020-03-21 21:28:34 +01:00
Mark Monteiro 41de0bd245 Run in development mode by default from Visual Studio 2020-03-21 21:06:30 +01:00
Mark Monteiro 842ec04828 Do not handle exceptions manually when in development mode 2020-03-21 21:06:01 +01:00
Mark Monteiro 92628c4033 Clean up HTTP listener exception handling 2020-03-21 21:04:16 +01:00
Mark Monteiro 1fb939b9b2 Enable HTTP/2 support 2020-03-21 20:21:07 +01:00
Mark Monteiro aa546dd36a Rename command line option to --nowebclient and config setting to HostWebClient 2020-03-21 18:25:09 +01:00
dkanada 2184553d15 Merge pull request #2566 from mark-monteiro/feature-request-issue-template
Feature Request Issue Template
2020-03-21 16:58:44 +09:00
dkanada 84c23d6232 Merge pull request #2631 from mark-monteiro/fix-client-build-scripts
Fix Client Build Scripts
2020-03-21 16:39:15 +09:00
dkanada ba4c5e7f04 Merge pull request #2606 from Artiume/patch-4
Update docker dependencies for Gulp
2020-03-21 16:32:21 +09:00
Mark Monteiro 589958d13f Add missing trailing slashes 2020-03-20 22:41:58 +01:00
Luke Foust dcd0d93f44 Merge pull request #1 from jellyfin/master
merge with upstream master
2020-03-20 12:53:52 -07:00
Medzhnun e028fb6fde Translated using Weblate (Bulgarian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/bg/
2020-03-20 08:18:36 -04:00
Mark Monteiro 1a63c3f364 Inject IConfiguration instead of resolving manually 2020-03-20 13:13:20 +01:00
Mark Monteiro cd34115e99 Remove duplicate text
Co-Authored-By: artiume <siderite@gmail.com>
2020-03-20 12:35:01 +01:00
Mark Monteiro 48f33f9a96 Reword prerequisite section so that IDEs are listed as optional 2020-03-20 12:21:20 +01:00
Mark Monteiro 887e9c2020 Remove unnecessary execution of yarn build:production 2020-03-20 11:46:51 +01:00
Mark Monteiro 6894602dab Use 'yarn build:production' instead of 'yarn:build' everywhere 2020-03-20 11:36:21 +01:00
Mark Monteiro 1da9910673 Use a new 'feature-request' label instead of the existing 'feature' label 2020-03-20 11:18:54 +01:00
Mark Monteiro 4c24beccb4 Apply suggested changes from code review 2020-03-20 11:13:40 +01:00
Peter Maar adbf375efe Merge pull request #1 from jellyfin/master
Pull latest to my fork
2020-03-19 22:02:08 -04:00
Andreas B 0a2d24aff3 Add RESOLUTION field to HLS master playlist 2020-03-19 23:39:33 +01:00
Andreas B 8a990d1d95 Add FRAME-RATE field to HLS master playlist 2020-03-19 23:39:33 +01:00
Andreas B f2858878d1 Add CODECS field to HLS master playlist 2020-03-19 23:39:23 +01:00
dkanada af5d3e8eae Merge pull request #2617 from Shawmon/wasm-mimetype
add wasm mimetype
2020-03-18 23:52:57 +09:00
dkanada 9649b986d8 Merge pull request #2621 from mark-monteiro/log-env-vars-at-startup
Log 'JELLYFIN_' environment variables at application start
2020-03-18 23:52:43 +09:00
dkanada a96c0a72b8 Merge pull request #2549 from dkanada/refactor
Refactor some provider classes
2020-03-18 17:43:15 +09:00
Andreas Zeller 3e3470e503 Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-03-17 14:43:41 -04:00
abdulaziz a19e4e2e30 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-03-17 14:43:41 -04:00
Mark Monteiro 885bc11b67 Log 'JELLYFIN_' environment variables at application start 2020-03-17 14:30:08 +01:00
Mark Monteiro 751dff09dc Add development instructions to README with details on running from source 2020-03-17 14:21:24 +01:00
Mark Monteiro 681dd8d32f Add recommended extensions to VS Code configuration 2020-03-17 14:21:00 +01:00
Mark Monteiro 7dd2f3a8f2 Do not add command line flag to the config hierarchy unless it is explicitly set 2020-03-17 14:19:43 +01:00
Shawmon 8630d18372 add wasm mimetype 2020-03-17 11:49:32 +08:00
Joshua M. Boniface ef4dfd4461 Merge pull request #2607 from joshuaboniface/fix-fedora
Correct BuildRequires and NodeJS for Fedora/CentOS
2020-03-15 23:03:06 -04:00
Mark Monteiro 48ea7dc604 Merge remote-tracking branch 'upstream/master' into support-running-without-web-content 2020-03-16 00:14:33 +01:00
artiume d7faea0731 Update Dockerfile.arm64 2020-03-15 19:09:35 -04:00
artiume 7d14bdd6ff Update Dockerfile.arm 2020-03-15 19:09:15 -04:00
Anthony Lavado bb8a1a38fb Merge pull request #2603 from mark-monteiro/fix-azure-pipeline
Fix Azure Pipelines Build
2020-03-15 18:46:15 -04:00
Joshua M. Boniface f4c8b25698 Use NodeJS 10 on CentOS 2020-03-15 18:17:04 -04:00
Joshua M. Boniface 5c4e468035 Correct BuildRequires and NodeJS for Fedora/CentOS 2020-03-15 18:14:00 -04:00
artiume dc2510d5e2 Update docker dependencies for Gulp 2020-03-15 17:56:53 -04:00
Mark Monteiro ef7497e837 Merge remote-tracking branch 'upstream/master' into support-running-without-web-content 2020-03-15 19:50:00 +01:00
Mark Monteiro f4b2cdfce9 Fix another pipleine 2020-03-15 19:32:14 +01:00
Mark Monteiro 876c4681d0 Build web client correctly 2020-03-15 19:24:27 +01:00
dkanada 7aec11d621 Merge pull request #2497 from mark-monteiro/1914-prevent-duplicates-in-playlists
Check for duplicates when adding items to a playlist
2020-03-16 02:49:57 +09:00
Mark Monteiro e2685c51ec Merge remote-tracking branch 'upstream/master' into support-running-without-web-content 2020-03-15 18:07:02 +01:00
Mark Monteiro 923313bb1c Add debugging profile for running the server without web content 2020-03-15 17:49:13 +01:00
Mark Monteiro 5d48259046 Use the same key constant for command line config and all other config 2020-03-15 17:43:52 +01:00
Mark Monteiro 05ab61200a Do not call UseContentRoot() on the web host builder
This call has nothing to do with static web content and should not have ever been called with the web content path: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/?view=aspnetcore-3.1&tabs=windows#content-root
Since this call is removed, the ContentRoot property is also removed from ApplicationHost as it is no longer needed.
Finally, move validation of the static content path to the DashboardService where it is actually used.
2020-03-15 17:42:57 +01:00
Mark Monteiro 602112fba4 Return 404 for static web resources when the 'nowebcontent' flag is set 2020-03-15 16:24:04 +01:00
Mark Monteiro 2a01537371 Merge command line options into framework configuration 2020-03-15 15:34:09 +01:00
Mark Monteiro 0996ce2898 Add --nowebcontent command line flag
Added without any functionality
2020-03-15 15:31:43 +01:00
Mark Monteiro 7e3caec583 Make PackageCreator.ModifyHtml() static and clean up XML documentation
This eliminates the need to create a dummy instance to call this method
2020-03-15 15:29:39 +01:00
Mark Monteiro 6fbdf0d6a2 Construct ApplicationHost with DI framework instead of manually 2020-03-15 15:28:29 +01:00
Andreas B 85da15685f Refactor DynamicHlsService.AppendPlaylist to use StringBuilder 2020-03-15 15:06:38 +01:00
Mark Monteiro 6a6293afc7 Make startup config nullable when configuring app configuration 2020-03-15 13:15:47 +01:00
Mark Monteiro a67e32f8ec Clean up and document BrowserLauncher correctly 2020-03-15 13:14:57 +01:00
Mark Monteiro 420e3619fb Use startup configuration to set the default redirect path 2020-03-15 13:01:05 +01:00
Mark Monteiro a9c1ff9119 Remove unnecessary method in BrowserLauncher 2020-03-15 13:00:34 +01:00
Mark Monteiro 4102e3afd0 Rename IsNoWebContent to NoWebContent 2020-03-15 13:00:14 +01:00
Mark Monteiro 547f248a62 Update XML documentation for WebPath 2020-03-15 12:59:34 +01:00
SaddFox 6ab2b74c18 Translated using Weblate (Slovenian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sl/
2020-03-14 19:46:57 -04:00
dkanada 6960f0af67 Merge pull request #2582 from Bond-009/subs
Fix subtitles
2020-03-15 00:00:55 +09:00
Andy CHABALIER d380684805 Translated using Weblate (French)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/fr/
2020-03-14 09:19:46 -04:00
Shadowghost f92543479f Translated using Weblate (German)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/de/
2020-03-13 20:42:37 -04:00
Mark Monteiro 9a7875b6f9 Do not check for duplicates if they are allowed in playlist configuration 2020-03-13 23:14:25 +01:00
Mark Monteiro 79413d9f33 Add a configuration flag to allow/disallow duplicates in playlists 2020-03-13 23:11:59 +01:00
Mark Monteiro c594b1a4c3 Fix bad merge in contributors list 2020-03-13 22:46:11 +01:00
Bond-009 2c8592fe78 Fix subtitles 2020-03-12 17:18:49 +01:00
Vasily ad440cd2f6 Merge pull request #2449 from Bond-009/warn17
Fix some warnings
2020-03-12 15:56:01 +03:00
Deniz 8d0d05107f Translated using Weblate (Turkish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/tr/
2020-03-12 07:21:28 -04:00
Z Yang 217b8a96ac Translated using Weblate (Chinese (Simplified))
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/zh_Hans/
2020-03-11 19:53:50 -04:00
Mark Monteiro d276e0f8f4 Use Distinct() to filter out duplicates when adding items to playlist 2020-03-11 23:26:55 +01:00
Mark Monteiro 487aa376b4 Merge remote-tracking branch 'upstream/master' into 1914-prevent-duplicates-in-playlists 2020-03-11 23:21:30 +01:00
Mark Monteiro 99bf6edba2 Merge remote-tracking branch 'upstream/master' into support-running-without-web-content 2020-03-11 23:04:47 +01:00
Mark Monteiro d437950ac3 Parse config value correctly 2020-03-11 22:55:10 +01:00
Mark Monteiro 29bad073eb Use config setting to decide if web content should be hosted
Also fail server startup if web content is expected but missing
2020-03-11 22:54:54 +01:00
Bond-009 94fe9b8f6d Merge branch 'master' into warn17 2020-03-11 20:26:43 +01:00
Bond_009 29cee00d2d Address comments 2020-03-11 16:36:55 +01:00
Bond_009 bbd4860b55 Another warning 2020-03-11 16:30:22 +01:00
Bond-009 008a76cf4d Merge pull request #2502 from JustAMan/baseitem-equals
Adds BaseItem.Equals method that compares items by their Id
2020-03-11 16:00:36 +01:00
Bond-009 0b51de3af5 Merge pull request #2480 from mark-monteiro/support-injecting-iconfiguration
Support Injecting IConfiguration
2020-03-11 15:43:39 +01:00
Mark Monteiro 6131599e88 Merge branch 'master' into support-injecting-iconfiguration 2020-03-10 22:45:17 +01:00
Mark Monteiro 6d27efe30a Small text update 2020-03-10 19:18:12 +01:00
Mark Monteiro af8ad2d275 Add a template for feature request issues instructing user to not create them
Also provide direction for users who are willing to contribute code for new features themselves
2020-03-10 19:11:38 +01:00
zixaar 97bca5a900 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-03-10 13:16:21 -04:00
zixaar 8999a5f6a2 Translated using Weblate (Arabic)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/ar/
2020-03-10 12:34:01 -04:00
Bond-009 a7e1a5c96a Merge pull request #2506 from mark-monteiro/inject-loggers-with-context
Inject loggers with context using ILogger<T>
2020-03-10 15:04:35 +01:00
Mednis 12f2baa3d8 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lv/
2020-03-09 19:15:04 -04:00
Mednis f6cfdcf7d7 Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lv/
2020-03-09 17:12:17 -04:00
Falke Carlsen cc66a40ae3 Translated using Weblate (Danish)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/da/
2020-03-09 14:58:04 -04:00
Nutjob 6ec1be219d Translated using Weblate (Italian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/it/
2020-03-09 11:27:17 -04:00
dkanada 4f195f289c remove useless interface 2020-03-10 00:10:02 +09:00
dkanada d7c34b4611 start tvdb migration for plugin interface 2020-03-09 23:53:07 +09:00
dkanada d16f68bb14 move omdb providers 2020-03-09 23:36:02 +09:00
dkanada 52fde64f10 remove unused files and fix some future warnings 2020-03-09 23:30:57 +09:00
dkanada bf34105af3 Merge pull request #2541 from joshuaboniface/fix-docker-arm
Fix curl for Jellyfin GPG key
2020-03-09 22:41:23 +09:00
João Fonseca ad93f3b146 Translated using Weblate (Portuguese)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/pt/
2020-03-09 07:34:03 -04:00
Joshua M. Boniface c257d6071c Fix curl for Jellyfin GPG key
This curl command seems to fail inexplicably with an "unable to get
local issuer" error. Use `-k` instead so it doesn't complain.
2020-03-08 20:53:11 -04:00
Mednis 3e3c47407b Translated using Weblate (Latvian)
Translation: Jellyfin/Jellyfin
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/lv/
2020-03-08 20:08:15 -04:00
Mednis 3741348fb9 Added translation using Weblate (Latvian) 2020-03-08 17:24:16 -04:00
Vasily f4ccee5801 Add inheritdoc comment and squash simple method bodies 2020-03-05 15:03:17 +03:00
Vasily 456f571343 Follow code review suggestions 2020-03-05 14:25:50 +03:00
Davide Polonio 5099f6e4a2 Add FIXME in HasConfiguredPassword public user DTO method 2020-03-05 08:01:47 +01:00
Vasily 007c5b9f67 Implement BaseItem.GetHashCode override 2020-03-04 13:06:13 +03:00
Mark Monteiro 9aa259eb95 Revert unnecessary ordering changes in ApplicationHost 2020-03-03 23:56:47 +01:00
Mark Monteiro 6b06a9a919 Make Logger and LoggerFactory both protected in ApplicationHost 2020-03-03 23:53:48 +01:00
Mark Monteiro c49a12dd73 Make LoggerFactory private in ApplicationHost and use it to construct loggers with context 2020-03-03 23:31:25 +01:00
Mark Monteiro 370c312e01 Make logger private in ApplicationHost 2020-03-03 23:08:42 +01:00
Mark Monteiro b67e9cde8c Replace ILogger with ILogger<T> wherever possible
Log entries will contain additional class context when using this interface
2020-03-03 23:07:10 +01:00
Mark Monteiro 76957213e6 Merge remote-tracking branch 'upstream/master' into support-injecting-iconfiguration 2020-03-03 22:27:49 +01:00
Davide Polonio cd471ed4df Fix emby/users/public not taking into account first run
The previous implementation was not taking in account the first seup
phase. Now the check has been added.

A little method refactor has been done in order to make the code more
elegant.
2020-03-03 20:20:35 +01:00
Davide Polonio 737d4d2b3f Fix conditional with a less verbose one
Co-Authored-By: Vasily <JustAMan@users.noreply.github.com>
2020-03-03 19:51:03 +01:00
Mark Monteiro 3cb98fba55 Use ToList() instead of ToArray() on sequences of unknown size 2020-03-03 18:18:00 +01:00
Mark Monteiro 6438771212 Exit method early if there are no unique playlist items to add 2020-03-03 17:48:11 +01:00
Mark Monteiro 4d32b59a0b Performance improvements
Use arrays instead of lists; use Array.CopyTo to concat playlist items; only count number of duplicates once
2020-03-03 17:47:16 +01:00
Vasily f21cd30039 Lower log level for BaseItem.Equals to debug 2020-03-03 19:22:45 +03:00
Mark Monteiro 7f96fce15d Add SegiH as a contributor
This PR is based on a change originally proposed by this author
2020-03-03 14:40:49 +01:00
Mark Monteiro 77533fd433 Revert unnecessary style change 2020-03-03 14:40:07 +01:00
Mark Monteiro dde0277050 Check for duplicates when adding items to a playlist 2020-03-02 21:12:35 +01:00
Vasily 11abe31e0d Speed up equality comparison of BaseItem 2020-03-02 12:31:31 +03:00
Davide Polonio 5d760b7ee8 Fix emby/user/public API leaking private data
This commit fixes the emby/user/public API that was returning more data
than necessary. Now only the following information are returned:
- the account name
- the primary image tag
- the field hasPassword
- the field hasConfiguredPassword, useful for the first wizard only
(see
https://github.com/jellyfin/jellyfin/issues/880#issuecomment-465370051)
- the primary image aspect ratio

A new DTO class, PrivateUserDTO has been created, and the route has been
modified in order to return that data object.
2020-03-01 21:46:01 +01:00
Mark Monteiro 7e3b6768f8 Add NuGet reference to config abstractions in MediaBrowser.Common project 2020-03-01 12:10:32 +01:00
Mark Monteiro 189f005846 Remove IConfiguration from service collection
This does not appear to be used anywhere and the web host already handles injecting this as a special case anyways
2020-02-28 23:35:53 +01:00
Mark Monteiro 48f8118072 Do not save a reference to the startup config in ApplicationHost 2020-02-28 23:28:15 +01:00
Mark Monteiro a4e5a5ab31 Register configuration correctly with application using 'ConfigureAppConfiguration()' in WebHostBuilder
Without this, the correct instance of IConfiguration is not injected into services that rely on it
2020-02-28 23:18:22 +01:00
Mark Monteiro 3f4b9e9a81 Add new 'nowebcontent' configuration flag 2020-02-28 20:40:45 +01:00
Bond_009 be6ed3ec7b Add comment 2020-02-28 20:39:51 +01:00
Bond_009 e699e5d405 Fix possible race condition 2020-02-28 20:34:10 +01:00
Mark Monteiro 3043b7323b Use constants for settings keys 2020-02-28 17:57:38 +01:00
Bond_009 d1e1aef5f7 Fix possible race condition 2020-02-26 18:19:34 +01:00
Mark Monteiro d95ccbacac Use IsHostingContent instead of explicitly checking ContentRoot 2020-02-26 16:11:09 +01:00
Vasily a9f3b5dacb Fix ordering of search results 2020-02-26 10:54:29 +03:00
dkanada 974a04c129 update plugin classes for nightly builds 2020-02-26 01:58:39 +09:00
Mark Monteiro 192ec57b60 Remove log message executed before logger is initialized 2020-02-25 17:22:21 +01:00
Mark Monteiro f3be93a4de Use the swagger API page as the default redirect path if not hosting the jellyfin-web content 2020-02-25 17:02:51 +01:00
Mark Monteiro 1b5999a1bc Open the Swagger API page on server start if not hosting the static web content 2020-02-25 17:01:57 +01:00
Mark Monteiro 26af5ea45a Do not set a static content root if the jellyfin-web directory does not exist or is empty 2020-02-25 16:51:36 +01:00
Peter Maar 818695a01e Improve controls for deinterlace method; matches with jellyfin-web changes 2020-02-23 21:40:53 -05:00
Bond_009 a2f955e2eb Fix formatting 2020-02-23 12:22:48 +01:00
Bond_009 07cc4be6a7 Fix some warnings
* Add analyzers to MediaBrowser.XbmcMetadata
* Enable TreatWarningsAsErrors for MediaBrowser.XbmcMetadata
* Add analyzers to MediaBrowser.WebDashboard
* Enable TreatWarningsAsErrors for MediaBrowser.WebDashboard
* Disable SA1600 in favor of CS1591
2020-02-23 12:11:43 +01:00
Bond_009 6d6fa13550 Fix release build 2020-02-23 10:58:45 +01:00
Bond_009 a07ee65365 Minor improvements 2020-02-23 10:53:51 +01:00
Peter Maar 7716deddf0 Add encoding option bobandweave, change back the EncodingHelper logic 2020-02-22 17:01:56 -05:00
Peter Maar 8531ed646d Temporary fix/change forcing yadif to "send_field" 2020-02-09 12:13:31 -05:00
Bond_009 407f54e776 Style fixes 2020-01-13 20:06:08 +01:00
Bond-009 ee964f8a58 Don't log message info 2020-01-13 20:06:08 +01:00
Bond-009 d01ba49be3 Fix space 2020-01-13 20:06:08 +01:00
Bond-009 f89e18ea26 Improve error handling 2020-01-13 20:06:08 +01:00
Bond-009 bdd823d22f Handle unexpected disconnect 2020-01-13 20:06:08 +01:00
Bond-009 8865b3ea3d Remove dead code and improve logging 2020-01-13 20:06:08 +01:00
Bond-009 4d311870d2 Fix websocket handling 2020-01-13 20:06:08 +01:00
Bond_009 5ca68f9623 Fix nullref exception and added logging 2020-01-13 20:06:08 +01:00
Bond_009 976459d3e8 Rewrite WebSocket handling code 2020-01-13 20:06:08 +01:00
1564 changed files with 34042 additions and 19408 deletions
@@ -1,13 +1,13 @@
parameters:
- name: Packages
type: object
default: {}
- name: LinuxImage
type: string
default: "ubuntu-latest"
- name: DotNetSdkVersion
type: string
default: 3.1.100
- name: Packages
type: object
default: {}
- name: LinuxImage
type: string
default: "ubuntu-latest"
- name: DotNetSdkVersion
type: string
default: 3.1.100
jobs:
- job: CompatibilityCheck
@@ -23,7 +23,7 @@ jobs:
NugetPackageName: ${{ Package.value.NugetPackageName }}
AssemblyFileName: ${{ Package.value.AssemblyFileName }}
maxParallel: 2
dependsOn: MainBuild
dependsOn: Build
steps:
- checkout: none
@@ -33,6 +33,13 @@ jobs:
packageType: sdk
version: ${{ parameters.DotNetSdkVersion }}
- task: DotNetCoreCLI@2
displayName: 'Install ABI CompatibilityChecker tool'
inputs:
command: custom
custom: tool
arguments: 'update compatibilitychecker -g'
- task: DownloadPipelineArtifact@2
displayName: "Download New Assembly Build Artifact"
inputs:
@@ -72,25 +79,11 @@ jobs:
overWrite: true
flattenFolders: true
- task: DownloadGitHubRelease@0
displayName: "Download ABI Compatibility Check Tool"
inputs:
connection: Jellyfin Release Download
userRepository: EraYaN/dotnet-compatibility
defaultVersionType: "latest"
itemPattern: "**-ci.zip"
downloadPath: "$(System.ArtifactsDirectory)"
- task: ExtractFiles@1
displayName: "Extract ABI Compatibility Check Tool"
inputs:
archiveFilePatterns: "$(System.ArtifactsDirectory)/*-ci.zip"
destinationFolder: $(System.ArtifactsDirectory)/tools
cleanDestinationFolder: true
# The `--warnings-only` switch will swallow the return code and not emit any errors.
- task: CmdLine@2
displayName: "Execute ABI Compatibility Check Tool"
- task: DotNetCoreCLI@2
displayName: 'Execute ABI Compatibility Check Tool'
inputs:
script: "dotnet tools/CompatibilityCheckerCLI.dll current-release/$(AssemblyFileName) new-release/$(AssemblyFileName) --azure-pipelines --warnings-only"
command: custom
custom: compat
arguments: 'current-release/$(AssemblyFileName) new-release/$(AssemblyFileName) --azure-pipelines --warnings-only'
workingDirectory: $(System.ArtifactsDirectory)
+44 -52
View File
@@ -1,101 +1,93 @@
parameters:
LinuxImage: "ubuntu-latest"
RestoreBuildProjects: "Jellyfin.Server/Jellyfin.Server.csproj"
LinuxImage: 'ubuntu-latest'
RestoreBuildProjects: 'Jellyfin.Server/Jellyfin.Server.csproj'
DotNetSdkVersion: 3.1.100
jobs:
- job: MainBuild
displayName: Main Build
- job: Build
displayName: Build
strategy:
matrix:
Release:
BuildConfiguration: Release
Debug:
BuildConfiguration: Debug
maxParallel: 2
pool:
vmImage: "${{ parameters.LinuxImage }}"
vmImage: '${{ parameters.LinuxImage }}'
steps:
- checkout: self
clean: true
submodules: true
persistCredentials: true
- task: CmdLine@2
displayName: "Clone Web Client (Master, Release, or Tag)"
condition: and(succeeded(), or(contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
- task: DownloadPipelineArtifact@2
displayName: 'Download Web Branch'
condition: in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion')
inputs:
script: "git clone --single-branch --branch $(Build.SourceBranchName) --depth=1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
path: '$(Agent.TempDirectory)'
artifact: 'jellyfin-web-production'
source: 'specific'
project: 'jellyfin'
pipeline: 'Jellyfin Web'
runBranch: variables['Build.SourceBranch']
- task: CmdLine@2
displayName: "Clone Web Client (PR)"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest'))
- task: DownloadPipelineArtifact@2
displayName: 'Download Web Target'
condition: eq(variables['Build.Reason'], 'PullRequest')
inputs:
script: "git clone --single-branch --branch $(System.PullRequest.TargetBranch) --depth 1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
path: '$(Agent.TempDirectory)'
artifact: 'jellyfin-web-production'
source: 'specific'
project: 'jellyfin'
pipeline: 'Jellyfin Web'
runBranch: variables['System.PullRequest.TargetBranch']
- task: NodeTool@0
displayName: "Install Node"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
- task: ExtractFiles@1
displayName: 'Extract Web Client'
inputs:
versionSpec: "10.x"
- task: CmdLine@2
displayName: "Build Web Client"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
script: yarn install
workingDirectory: $(Agent.TempDirectory)/jellyfin-web
- task: CopyFiles@2
displayName: "Copy Web Client"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), eq(variables['BuildConfiguration'], 'Release'), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
sourceFolder: $(Agent.TempDirectory)/jellyfin-web/dist
contents: "**"
targetFolder: $(Build.SourcesDirectory)/MediaBrowser.WebDashboard/jellyfin-web
cleanTargetFolder: true
overWrite: true
flattenFolders: false
archiveFilePatterns: '$(Agent.TempDirectory)/*.zip'
destinationFolder: '$(Build.SourcesDirectory)/MediaBrowser.WebDashboard'
cleanDestinationFolder: false
- task: UseDotNet@2
displayName: "Update DotNet"
displayName: 'Update DotNet'
inputs:
packageType: sdk
version: ${{ parameters.DotNetSdkVersion }}
- task: DotNetCoreCLI@2
displayName: "Publish Server"
displayName: 'Publish Server'
inputs:
command: publish
publishWebProjects: false
projects: "${{ parameters.RestoreBuildProjects }}"
arguments: "--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)"
projects: '${{ parameters.RestoreBuildProjects }}'
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: false
- task: PublishPipelineArtifact@0
displayName: "Publish Artifact Naming"
displayName: 'Publish Artifact Naming'
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
inputs:
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/Emby.Naming.dll"
artifactName: "Jellyfin.Naming"
targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/Emby.Naming.dll'
artifactName: 'Jellyfin.Naming'
- task: PublishPipelineArtifact@0
displayName: "Publish Artifact Controller"
displayName: 'Publish Artifact Controller'
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
inputs:
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Controller.dll"
artifactName: "Jellyfin.Controller"
targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Controller.dll'
artifactName: 'Jellyfin.Controller'
- task: PublishPipelineArtifact@0
displayName: "Publish Artifact Model"
displayName: 'Publish Artifact Model'
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
inputs:
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Model.dll"
artifactName: "Jellyfin.Model"
targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Model.dll'
artifactName: 'Jellyfin.Model'
- task: PublishPipelineArtifact@0
displayName: "Publish Artifact Common"
displayName: 'Publish Artifact Common'
condition: and(succeeded(), eq(variables['BuildConfiguration'], 'Release'))
inputs:
targetPath: "$(build.artifactstagingdirectory)/Jellyfin.Server/MediaBrowser.Common.dll"
artifactName: "Jellyfin.Common"
targetPath: '$(build.ArtifactStagingDirectory)/Jellyfin.Server/MediaBrowser.Common.dll'
artifactName: 'Jellyfin.Common'
+171
View File
@@ -0,0 +1,171 @@
jobs:
- job: BuildPackage
displayName: 'Build Packages'
strategy:
matrix:
CentOS.amd64:
BuildConfiguration: centos.amd64
Fedora.amd64:
BuildConfiguration: fedora.amd64
Debian.amd64:
BuildConfiguration: debian.amd64
Debian.arm64:
BuildConfiguration: debian.arm64
Debian.armhf:
BuildConfiguration: debian.armhf
Ubuntu.amd64:
BuildConfiguration: ubuntu.amd64
Ubuntu.arm64:
BuildConfiguration: ubuntu.arm64
Ubuntu.armhf:
BuildConfiguration: ubuntu.armhf
Linux.amd64:
BuildConfiguration: linux.amd64
Windows.amd64:
BuildConfiguration: windows.amd64
MacOS:
BuildConfiguration: macos
Portable:
BuildConfiguration: portable
pool:
vmImage: 'ubuntu-latest'
steps:
- script: 'docker build -f deployment/Dockerfile.$(BuildConfiguration) -t jellyfin-server-$(BuildConfiguration) deployment'
displayName: 'Build Dockerfile'
- script: 'docker image ls -a && docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e IS_UNSTABLE="yes" -e BUILD_ID=$(Build.BuildNumber) jellyfin-server-$(BuildConfiguration)'
displayName: 'Run Dockerfile (unstable)'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
- script: 'docker image ls -a && docker run -v $(pwd)/deployment/dist:/dist -v $(pwd):/jellyfin -e IS_UNSTABLE="no" -e BUILD_ID=$(Build.BuildNumber) jellyfin-server-$(BuildConfiguration)'
displayName: 'Run Dockerfile (stable)'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
- task: PublishPipelineArtifact@1
displayName: 'Publish Release'
inputs:
targetPath: '$(Build.SourcesDirectory)/deployment/dist'
artifactName: 'jellyfin-server-$(BuildConfiguration)'
- task: SSH@0
displayName: 'Create target directory on repository server'
inputs:
sshEndpoint: repository
runOptions: 'inline'
inline: 'mkdir -p /srv/repository/incoming/azure/$(Build.BuildNumber)/$(BuildConfiguration)'
- task: CopyFilesOverSSH@0
displayName: 'Upload artifacts to repository server'
inputs:
sshEndpoint: repository
sourceFolder: '$(Build.SourcesDirectory)/deployment/dist'
contents: '**'
targetFolder: '/srv/repository/incoming/azure/$(Build.BuildNumber)/$(BuildConfiguration)'
- job: BuildDocker
displayName: 'Build Docker'
strategy:
matrix:
amd64:
BuildConfiguration: amd64
arm64:
BuildConfiguration: arm64
armhf:
BuildConfiguration: armhf
pool:
vmImage: 'ubuntu-latest'
variables:
- name: JellyfinVersion
value: 0.0.0
steps:
- script: echo "##vso[task.setvariable variable=JellyfinVersion]$( awk -F '/' '{ print $NF }' <<<'$(Build.SourceBranch)' | sed 's/^v//' )"
displayName: Set release version (stable)
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
- task: Docker@2
displayName: 'Push Unstable Image'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
repository: 'jellyfin/jellyfin-server'
command: buildAndPush
buildContext: '.'
Dockerfile: 'deployment/Dockerfile.docker.$(BuildConfiguration)'
containerRegistry: Docker Hub
tags: |
unstable-$(Build.BuildNumber)-$(BuildConfiguration)
unstable-$(BuildConfiguration)
- task: Docker@2
displayName: 'Push Stable Image'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
inputs:
repository: 'jellyfin/jellyfin-server'
command: buildAndPush
buildContext: '.'
Dockerfile: 'deployment/Dockerfile.docker.$(BuildConfiguration)'
containerRegistry: Docker Hub
tags: |
stable-$(Build.BuildNumber)-$(BuildConfiguration)
$(JellyfinVersion)-$(BuildConfiguration)
- job: CollectArtifacts
displayName: 'Collect Artifacts'
dependsOn:
- BuildPackage
- BuildDocker
condition: and(succeeded('BuildPackage'), succeeded('BuildDocker'))
pool:
vmImage: 'ubuntu-latest'
steps:
- task: SSH@0
displayName: 'Update Unstable Repository'
condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
inputs:
sshEndpoint: repository
runOptions: 'inline'
inline: |
sudo /srv/repository/collect-server.azure.sh /srv/repository/incoming/azure $(Build.BuildNumber) unstable
rm $0
exit
- task: SSH@0
displayName: 'Update Stable Repository'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
inputs:
sshEndpoint: repository
runOptions: 'inline'
inline: |
sudo /srv/repository/collect-server.azure.sh /srv/repository/incoming/azure $(Build.BuildNumber)
rm $0
exit
- job: PublishNuget
displayName: 'Publish NuGet packages'
dependsOn:
- BuildPackage
condition: and(succeeded('BuildPackage'), startsWith(variables['Build.SourceBranch'], 'refs/tags'))
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NuGetCommand@2
inputs:
command: 'pack'
packagesToPack: Jellyfin.Data/Jellyfin.Data.csproj;MediaBrowser.Common/MediaBrowser.Common.csproj;MediaBrowser.Controller/MediaBrowser.Controller.csproj;MediaBrowser.Model/MediaBrowser.Model.csproj;Emby.Naming/Emby.Naming.csproj
packDestination: '$(Build.ArtifactStagingDirectory)'
- task: NuGetCommand@2
inputs:
command: 'push'
packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg'
includeNugetOrg: 'true'
+46 -18
View File
@@ -1,26 +1,25 @@
parameters:
- name: ImageNames
type: object
default:
Linux: "ubuntu-latest"
Windows: "windows-latest"
macOS: "macos-latest"
- name: TestProjects
type: string
default: "tests/**/*Tests.csproj"
- name: DotNetSdkVersion
type: string
default: 3.1.100
- name: ImageNames
type: object
default:
Linux: "ubuntu-latest"
Windows: "windows-latest"
macOS: "macos-latest"
- name: TestProjects
type: string
default: "tests/**/*Tests.csproj"
- name: DotNetSdkVersion
type: string
default: 3.1.100
jobs:
- job: MainTest
displayName: Main Test
- job: Test
displayName: Test
strategy:
matrix:
${{ each imageName in parameters.ImageNames }}:
${{ imageName.key }}:
ImageName: ${{ imageName.value }}
maxParallel: 3
pool:
vmImage: "$(ImageName)"
steps:
@@ -29,14 +28,31 @@ jobs:
submodules: true
persistCredentials: false
# This is required for the SonarCloud analyzer
- task: UseDotNet@2
displayName: "Install .NET Core SDK 2.1"
condition: eq(variables['ImageName'], 'ubuntu-latest')
inputs:
packageType: sdk
version: '2.1.805'
- task: UseDotNet@2
displayName: "Update DotNet"
inputs:
packageType: sdk
version: ${{ parameters.DotNetSdkVersion }}
- task: SonarCloudPrepare@1
displayName: 'Prepare analysis on SonarCloud'
condition: eq(variables['ImageName'], 'ubuntu-latest')
enabled: false
inputs:
SonarCloud: 'Sonarcloud for Jellyfin'
organization: 'jellyfin'
projectKey: 'jellyfin_jellyfin'
- task: DotNetCoreCLI@2
displayName: Run .NET Core CLI tests
displayName: 'Run CLI Tests'
inputs:
command: "test"
projects: ${{ parameters.TestProjects }}
@@ -45,9 +61,20 @@ jobs:
testRunTitle: $(Agent.JobName)
workingDirectory: "$(Build.SourcesDirectory)"
- task: SonarCloudAnalyze@1
displayName: 'Run Code Analysis'
condition: eq(variables['ImageName'], 'ubuntu-latest')
enabled: false
- task: SonarCloudPublish@1
displayName: 'Publish Quality Gate Result'
condition: eq(variables['ImageName'], 'ubuntu-latest')
enabled: false
- task: Palmmedia.reportgenerator.reportgenerator-build-release-task.reportgenerator@4
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) # !! THIS is for V1 only V2 will/should support merging
displayName: ReportGenerator (merge)
displayName: 'Run ReportGenerator'
enabled: false
inputs:
reports: "$(Agent.TempDirectory)/**/coverage.cobertura.xml"
targetdir: "$(Agent.TempDirectory)/merged/"
@@ -56,7 +83,8 @@ jobs:
## V2 is already in the repository but it does not work "wrong number of segments" YAML error.
- task: PublishCodeCoverageResults@1
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) # !! THIS is for V1 only V2 will/should support merging
displayName: Publish Code Coverage
displayName: 'Publish Code Coverage'
enabled: false
inputs:
codeCoverageTool: "cobertura"
#summaryFileLocation: '$(Agent.TempDirectory)/**/coverage.cobertura.xml' # !!THIS IS FOR V2
-82
View File
@@ -1,82 +0,0 @@
parameters:
WindowsImage: "windows-latest"
TestProjects: "tests/**/*Tests.csproj"
DotNetSdkVersion: 3.1.100
jobs:
- job: PublishWindows
displayName: Publish Windows
pool:
vmImage: ${{ parameters.WindowsImage }}
steps:
- checkout: self
clean: true
submodules: true
persistCredentials: true
- task: CmdLine@2
displayName: "Clone Web Client (Master, Release, or Tag)"
condition: and(succeeded(), or(contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master'), contains(variables['Build.SourceBranch'], 'tag')), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
script: "git clone --single-branch --branch $(Build.SourceBranchName) --depth=1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
- task: CmdLine@2
displayName: "Clone Web Client (PR)"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master')), in(variables['Build.Reason'], 'PullRequest'))
inputs:
script: "git clone --single-branch --branch $(System.PullRequest.TargetBranch) --depth 1 https://github.com/jellyfin/jellyfin-web.git $(Agent.TempDirectory)/jellyfin-web"
- task: NodeTool@0
displayName: "Install Node"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
versionSpec: "10.x"
- task: CmdLine@2
displayName: "Build Web Client"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
script: yarn install
workingDirectory: $(Agent.TempDirectory)/jellyfin-web
- task: CopyFiles@2
displayName: "Copy Web Client"
condition: and(succeeded(), or(contains(variables['System.PullRequest.TargetBranch'], 'release'), contains(variables['System.PullRequest.TargetBranch'], 'master'), contains(variables['Build.SourceBranch'], 'release'), contains(variables['Build.SourceBranch'], 'master')), in(variables['Build.Reason'], 'PullRequest', 'IndividualCI', 'BatchedCI', 'BuildCompletion'))
inputs:
sourceFolder: $(Agent.TempDirectory)/jellyfin-web/dist
contents: "**"
targetFolder: $(Build.SourcesDirectory)/MediaBrowser.WebDashboard/jellyfin-web
cleanTargetFolder: true
overWrite: true
flattenFolders: false
- task: CmdLine@2
displayName: "Clone UX Repository"
inputs:
script: git clone --depth=1 https://github.com/jellyfin/jellyfin-ux $(Agent.TempDirectory)\jellyfin-ux
- task: PowerShell@2
displayName: "Build NSIS Installer"
inputs:
targetType: "filePath"
filePath: ./deployment/windows/build-jellyfin.ps1
arguments: -InstallFFMPEG -InstallNSSM -MakeNSIS -InstallTrayApp -UXLocation $(Agent.TempDirectory)\jellyfin-ux -InstallLocation $(build.artifactstagingdirectory)
errorActionPreference: "stop"
workingDirectory: $(Build.SourcesDirectory)
- task: CopyFiles@2
displayName: "Copy NSIS Installer"
inputs:
sourceFolder: $(Build.SourcesDirectory)/deployment/windows/
contents: "jellyfin*.exe"
targetFolder: $(System.ArtifactsDirectory)/setup
cleanTargetFolder: true
overWrite: true
flattenFolders: true
- task: PublishPipelineArtifact@0
displayName: "Publish Artifact Setup"
condition: succeeded()
inputs:
targetPath: "$(build.artifactstagingdirectory)/setup"
artifactName: "Jellyfin Server Setup"
+18 -17
View File
@@ -1,12 +1,12 @@
name: $(Date:yyyyMMdd)$(Rev:.r)
variables:
- name: TestProjects
value: "tests/**/*Tests.csproj"
- name: RestoreBuildProjects
value: "Jellyfin.Server/Jellyfin.Server.csproj"
- name: DotNetSdkVersion
value: 3.1.100
- name: TestProjects
value: 'tests/**/*Tests.csproj'
- name: RestoreBuildProjects
value: 'Jellyfin.Server/Jellyfin.Server.csproj'
- name: DotNetSdkVersion
value: 3.1.100
pr:
autoCancel: true
@@ -15,24 +15,22 @@ trigger:
batch: true
jobs:
- ${{ if not(or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))) }}:
- template: azure-pipelines-main.yml
parameters:
LinuxImage: "ubuntu-latest"
LinuxImage: 'ubuntu-latest'
RestoreBuildProjects: $(RestoreBuildProjects)
- ${{ if not(or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))) }}:
- template: azure-pipelines-test.yml
parameters:
ImageNames:
Linux: "ubuntu-latest"
Windows: "windows-latest"
macOS: "macos-latest"
Linux: 'ubuntu-latest'
Windows: 'windows-latest'
macOS: 'macos-latest'
- template: azure-pipelines-windows.yml
parameters:
WindowsImage: "windows-latest"
TestProjects: $(TestProjects)
- template: azure-pipelines-compat.yml
- ${{ if not(or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master'))) }}:
- template: azure-pipelines-abi.yml
parameters:
Packages:
Naming:
@@ -47,4 +45,7 @@ jobs:
Common:
NugetPackageName: Jellyfin.Common
AssemblyFileName: MediaBrowser.Common.dll
LinuxImage: "ubuntu-latest"
LinuxImage: 'ubuntu-latest'
- ${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), startsWith(variables['Build.SourceBranch'], 'refs/heads/master')) }}:
- template: azure-pipelines-package.yml
-59
View File
@@ -1,59 +0,0 @@
VERSION := $(shell sed -ne '/^Version:/s/.* *//p' \
deployment/fedora-package-x64/pkg-src/jellyfin.spec)
deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz:
curl -f -L -o deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz \
https://github.com/jellyfin/jellyfin-web/archive/v$(VERSION).tar.gz \
|| curl -f -L -o deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz \
https://github.com/jellyfin/jellyfin-web/archive/master.tar.gz \
srpm: deployment/fedora-package-x64/pkg-src/jellyfin-web-$(VERSION).tar.gz
cd deployment/fedora-package-x64; \
SOURCE_DIR=../.. \
WORKDIR="$${PWD}"; \
package_temporary_dir="$${WORKDIR}/pkg-dist-tmp"; \
pkg_src_dir="$${WORKDIR}/pkg-src"; \
GNU_TAR=1; \
tar \
--transform "s,^\.,jellyfin-$(VERSION)," \
--exclude='.git*' \
--exclude='**/.git' \
--exclude='**/.hg' \
--exclude='**/.vs' \
--exclude='**/.vscode' \
--exclude='deployment' \
--exclude='**/bin' \
--exclude='**/obj' \
--exclude='**/.nuget' \
--exclude='*.deb' \
--exclude='*.rpm' \
-czf "pkg-src/jellyfin-$(VERSION).tar.gz" \
-C $${SOURCE_DIR} ./ || GNU_TAR=0; \
if [ $${GNU_TAR} -eq 0 ]; then \
package_temporary_dir="$$(mktemp -d)"; \
mkdir -p "$${package_temporary_dir}/jellyfin"; \
tar \
--exclude='.git*' \
--exclude='**/.git' \
--exclude='**/.hg' \
--exclude='**/.vs' \
--exclude='**/.vscode' \
--exclude='deployment' \
--exclude='**/bin' \
--exclude='**/obj' \
--exclude='**/.nuget' \
--exclude='*.deb' \
--exclude='*.rpm' \
-czf "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz" \
-C $${SOURCE_DIR} ./; \
mkdir -p "$${package_temporary_dir}/jellyfin-$(VERSION)"; \
tar -xzf "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz" \
-C "$${package_temporary_dir}/jellyfin-$(VERSION); \
rm -f "$${package_temporary_dir}/jellyfin/jellyfin-$(VERSION).tar.gz"; \
tar -czf "$${SOURCE_DIR}/SOURCES/pkg-src/jellyfin-$(VERSION).tar.gz" \
-C "$${package_temporary_dir}" "jellyfin-$(VERSION); \
rm -rf $${package_temporary_dir}; \
fi; \
rpmbuild -bs pkg-src/jellyfin.spec \
--define "_sourcedir $$PWD/pkg-src/" \
--define "_srcrpmdir $(outdir)"
+1
View File
@@ -0,0 +1 @@
../fedora/Makefile
+7 -10
View File
@@ -13,7 +13,7 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
max_line_length = null
max_line_length = off
# YAML indentation
[*.{yml,yaml}]
@@ -22,6 +22,7 @@ indent_size = 2
# XML indentation
[*.{csproj,xml}]
indent_size = 2
###############################
# .NET Coding Conventions #
###############################
@@ -51,11 +52,12 @@ dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent
dotnet_prefer_inferred_tuple_names = true:suggestion
dotnet_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
###############################
# Naming Conventions #
###############################
@@ -67,7 +69,7 @@ dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.symbols = non
dotnet_naming_rule.non_private_static_fields_should_be_pascal_case.style = non_private_static_field_style
dotnet_naming_symbols.non_private_static_fields.applicable_kinds = field
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected internal, private protected
dotnet_naming_symbols.non_private_static_fields.applicable_accessibilities = public, protected, internal, protected_internal, private_protected
dotnet_naming_symbols.non_private_static_fields.required_modifiers = static
dotnet_naming_style.non_private_static_field_style.capitalization = pascal_case
@@ -159,6 +161,7 @@ csharp_style_deconstructed_variable_declaration = true:suggestion
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_pattern_local_over_anonymous_function = true:suggestion
csharp_style_inlined_variable_declaration = true:suggestion
###############################
# C# Formatting Rules #
###############################
@@ -189,9 +192,3 @@ csharp_space_between_method_call_empty_parameter_list_parentheses = false
# Wrapping preferences
csharp_preserve_single_line_statements = true
csharp_preserve_single_line_blocks = true
###############################
# VB Coding Conventions #
###############################
[*.vb]
# Modifier preferences
visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion
+3
View File
@@ -0,0 +1,3 @@
# Joshua must review all changes to deployment and build.sh
deployment/* @joshuaboniface
build.sh @joshuaboniface
+13
View File
@@ -0,0 +1,13 @@
---
name: Feature Request
about: Request a new feature
title: ''
labels: feature-request
assignees: ''
---
**PLEASE DO NOT OPEN FEATURE REQUEST ISSUES ON GITHUB**
**Feature requests should be opened on our dedicated [feature request](https://features.jellyfin.org/) hub so they can be appropriately discussed and prioritized.**
However, if you are willing to contribute to the project by adding a new feature yourself, then please ensure that you first review our [documentation](https://docs.jellyfin.org/general/contributing/development.html) on contributing code. Once you have reviewed the documentation, feel free to come back here and open an issue here outlining your proposed approach so that it can be documented, tracked, and discussed by other team members.
+9
View File
@@ -0,0 +1,9 @@
version: 2
updates:
- package-ecosystem: nuget
directory: "/"
schedule:
interval: weekly
time: '12:00'
open-pull-requests-limit: 10
+12 -7
View File
@@ -244,14 +244,14 @@ pip-log.txt
#########################
# Artifacts for debian-x64
deployment/debian-package-x64/pkg-src/.debhelper/
deployment/debian-package-x64/pkg-src/*.debhelper
deployment/debian-package-x64/pkg-src/debhelper-build-stamp
deployment/debian-package-x64/pkg-src/files
deployment/debian-package-x64/pkg-src/jellyfin.substvars
deployment/debian-package-x64/pkg-src/jellyfin/
debian/.debhelper/
debian/*.debhelper
debian/debhelper-build-stamp
debian/files
debian/jellyfin.substvars
debian/jellyfin/
# Don't ignore the debian/bin folder
!deployment/debian-package-x64/pkg-src/bin/
!debian/bin/
deployment/**/dist/
deployment/**/pkg-dist/
@@ -271,3 +271,8 @@ dist
# BenchmarkDotNet artifacts
BenchmarkDotNet.Artifacts
# Ignore web artifacts from native builds
web/
web-src.*
MediaBrowser.WebDashboard/jellyfin-web
+14
View File
@@ -0,0 +1,14 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
// List of extensions which should be recommended for users of this workspace.
"recommendations": [
"ms-dotnettools.csharp",
"editorconfig.editorconfig"
],
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
"unwantedRecommendations": [
]
}
+6 -6
View File
@@ -1,9 +1,6 @@
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"version": "0.2.0",
"configurations": [
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
@@ -24,5 +21,8 @@
"request": "attach",
"processId": "${command:pickProcess}"
}
,]
],
"env": {
"DOTNET_CLI_TELEMETRY_OPTOUT": "1"
}
}
+17 -2
View File
@@ -10,6 +10,21 @@
"${workspaceFolder}/Jellyfin.Server/Jellyfin.Server.csproj"
],
"problemMatcher": "$msCompile"
},
{
"label": "api tests",
"command": "dotnet",
"type": "process",
"args": [
"test",
"${workspaceFolder}/tests/MediaBrowser.Api.Tests/MediaBrowser.Api.Tests.csproj"
],
"problemMatcher": "$msCompile"
}
]
}
],
"options": {
"env": {
"DOTNET_CLI_TELEMETRY_OPTOUT": "1"
}
}
}
+5
View File
@@ -7,6 +7,7 @@
- [anthonylavado](https://github.com/anthonylavado)
- [Artiume](https://github.com/Artiume)
- [AThomsen](https://github.com/AThomsen)
- [barronpm](https://github.com/barronpm)
- [bilde2910](https://github.com/bilde2910)
- [bfayers](https://github.com/bfayers)
- [BnMcG](https://github.com/BnMcG)
@@ -22,6 +23,7 @@
- [cvium](https://github.com/cvium)
- [dannymichel](https://github.com/dannymichel)
- [DaveChild](https://github.com/DaveChild)
- [Delgan](https://github.com/Delgan)
- [dcrdev](https://github.com/dcrdev)
- [dhartung](https://github.com/dhartung)
- [dinki](https://github.com/dinki)
@@ -91,6 +93,7 @@
- [samuel9554](https://github.com/samuel9554)
- [scheidleon](https://github.com/scheidleon)
- [sebPomme](https://github.com/sebPomme)
- [SegiH](https://github.com/SegiH)
- [SenorSmartyPants](https://github.com/SenorSmartyPants)
- [shemanaev](https://github.com/shemanaev)
- [skaro13](https://github.com/skaro13)
@@ -127,6 +130,8 @@
- [xosdy](https://github.com/xosdy)
- [XVicarious](https://github.com/XVicarious)
- [YouKnowBlom](https://github.com/YouKnowBlom)
- [KristupasSavickas](https://github.com/KristupasSavickas)
- [Pusta](https://github.com/pusta)
# Emby Contributors
+19 -24
View File
@@ -1,14 +1,11 @@
ARG DOTNET_VERSION=3.1
ARG FFMPEG_VERSION=latest
FROM node:alpine as web-builder
ARG JELLYFIN_WEB_VERSION=10.5.3
RUN apk add curl git \
&& git clone --branch release-10.5.z --single-branch https://github.com/jellyfin/jellyfin-web.git \
&& cd jellyfin-web \
&& git checkout tags/v${JELLYFIN_WEB_VERSION} \
ARG JELLYFIN_WEB_VERSION=master
RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python \
&& curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
&& cd jellyfin-web-* \
&& yarn install \
&& yarn build \
&& mv dist /dist
FROM mcr.microsoft.com/dotnet/core/sdk:${DOTNET_VERSION}-buster as builder
@@ -19,7 +16,6 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=1
# see https://success.docker.com/article/how-to-reserve-resource-temporarily-unavailable-errors-due-to-tasksmax-setting
RUN dotnet publish Jellyfin.Server --disable-parallel --configuration Release --output="/jellyfin" --self-contained --runtime linux-x64 "-p:GenerateDocumentationFile=false;DebugSymbols=false;DebugType=none"
FROM jellyfin/ffmpeg:${FFMPEG_VERSION} as ffmpeg
FROM debian:buster-slim
# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
@@ -29,37 +25,36 @@ ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(Native-GPU-Support)
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
COPY --from=ffmpeg /opt/ffmpeg /opt/ffmpeg
COPY --from=builder /jellyfin /jellyfin
COPY --from=web-builder /dist /jellyfin/jellyfin-web
# Install dependencies:
# libfontconfig1: needed for Skia
# libgomp1: needed for ffmpeg
# libva-drm2: needed for ffmpeg
# mesa-va-drivers: needed for VAAPI
# mesa-va-drivers: needed for AMD VAAPI
RUN apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y ca-certificates gnupg wget apt-transport-https \
&& wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add - \
&& echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | tee /etc/apt/sources.list.d/jellyfin.list \
&& apt-get update \
&& apt-get install --no-install-recommends --no-install-suggests -y \
libfontconfig1 \
libgomp1 \
libva-drm2 \
mesa-va-drivers \
jellyfin-ffmpeg \
openssl \
ca-certificates \
vainfo \
i965-va-driver \
&& apt-get clean autoclean -y\
&& apt-get autoremove -y\
locales \
&& apt-get remove gnupg wget apt-transport-https -y \
&& apt-get clean autoclean -y \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /cache /config /media \
&& chmod 777 /cache /config /media \
&& ln -s /opt/ffmpeg/bin/ffmpeg /usr/local/bin \
&& ln -s /opt/ffmpeg/bin/ffprobe /usr/local/bin
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
EXPOSE 8096
VOLUME /cache /config /media
ENTRYPOINT ["./jellyfin/jellyfin", \
"--datadir", "/config", \
"--cachedir", "/cache", \
"--ffmpeg", "/usr/local/bin/ffmpeg"]
"--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"]
+12 -8
View File
@@ -6,13 +6,11 @@ ARG DOTNET_VERSION=3.1
FROM node:alpine as web-builder
ARG JELLYFIN_WEB_VERSION=10.5.3
RUN apk add curl git \
&& git clone --branch release-10.5.z --single-branch https://github.com/jellyfin/jellyfin-web.git \
&& cd jellyfin-web \
&& git checkout tags/v${JELLYFIN_WEB_VERSION} \
ARG JELLYFIN_WEB_VERSION=master
RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python \
&& curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
&& cd jellyfin-web-* \
&& yarn install \
&& yarn build \
&& mv dist /dist
@@ -54,20 +52,26 @@ RUN apt-get update \
libraspberrypi0 \
vainfo \
libva2 \
locales \
&& apt-get remove curl gnupg -y \
&& apt-get clean autoclean -y \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /cache /config /media \
&& chmod 777 /cache /config /media
&& chmod 777 /cache /config /media \
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
COPY --from=builder /jellyfin /jellyfin
COPY --from=web-builder /dist /jellyfin/jellyfin-web
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
EXPOSE 8096
VOLUME /cache /config /media
ENTRYPOINT ["./jellyfin/jellyfin", \
"--datadir", "/config", \
"--cachedir", "/cache", \
"--ffmpeg", "/usr/lib/jellyfin-ffmpeg"]
"--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"]
+12 -8
View File
@@ -6,13 +6,11 @@ ARG DOTNET_VERSION=3.1
FROM node:alpine as web-builder
ARG JELLYFIN_WEB_VERSION=10.5.3
RUN apk add curl git \
&& git clone --branch release-10.5.z --single-branch https://github.com/jellyfin/jellyfin-web.git \
&& cd jellyfin-web \
&& git checkout tags/v${JELLYFIN_WEB_VERSION} \
ARG JELLYFIN_WEB_VERSION=master
RUN apk add curl git zlib zlib-dev autoconf g++ make libpng-dev gifsicle alpine-sdk automake libtool make gcc musl-dev nasm python \
&& curl -L https://github.com/jellyfin/jellyfin-web/archive/${JELLYFIN_WEB_VERSION}.tar.gz | tar zxf - \
&& cd jellyfin-web-* \
&& yarn install \
&& yarn build \
&& mv dist /dist
@@ -36,7 +34,7 @@ ARG APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
ENV NVIDIA_DRIVER_CAPABILITIES="compute,video,utility"
COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
RUN apt-get update && apt-get install --no-install-recommends --no-install-suggests -y \
ffmpeg \
libssl-dev \
ca-certificates \
@@ -44,15 +42,21 @@ RUN apt-get update && apt-get install --no-install-recommends --no-install-sugge
libfreetype6 \
libomxil-bellagio0 \
libomxil-bellagio-bin \
locales \
&& apt-get clean autoclean -y \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /cache /config /media \
&& chmod 777 /cache /config /media
&& chmod 777 /cache /config /media \
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen
COPY --from=builder /jellyfin /jellyfin
COPY --from=web-builder /dist /jellyfin/jellyfin-web
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
ENV LC_ALL en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
EXPOSE 8096
VOLUME /cache /config /media
+5 -10
View File
@@ -1,4 +1,6 @@
using System;
#pragma warning disable CS1591
using System.Buffers.Binary;
using System.IO;
namespace DvdLib
@@ -12,19 +14,12 @@ namespace DvdLib
public override ushort ReadUInt16()
{
return BitConverter.ToUInt16(ReadAndReverseBytes(2), 0);
return BinaryPrimitives.ReadUInt16BigEndian(base.ReadBytes(2));
}
public override uint ReadUInt32()
{
return BitConverter.ToUInt32(ReadAndReverseBytes(4), 0);
}
private byte[] ReadAndReverseBytes(int count)
{
byte[] val = base.ReadBytes(count);
Array.Reverse(val, 0, count);
return val;
return BinaryPrimitives.ReadUInt32BigEndian(base.ReadBytes(4));
}
}
}
+6 -4
View File
@@ -1,17 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<!-- ProjectGuid is only included as a requirement for SonarQube analysis -->
<PropertyGroup>
<ProjectGuid>{713F42B5-878E-499D-A878-E4C652B1D5E8}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\SharedVersion.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MediaBrowser.Model\MediaBrowser.Model.csproj" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
</Project>
+3
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.IO;
namespace DvdLib.Ifo
@@ -5,6 +7,7 @@ namespace DvdLib.Ifo
public class Cell
{
public CellPlaybackInfo PlaybackInfo { get; private set; }
public CellPositionInfo PositionInfo { get; private set; }
internal void ParsePlayback(BinaryReader br)
+2
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.IO;
namespace DvdLib.Ifo
+2
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.IO;
namespace DvdLib.Ifo
+4
View File
@@ -1,9 +1,13 @@
#pragma warning disable CS1591
namespace DvdLib.Ifo
{
public class Chapter
{
public ushort ProgramChainNumber { get; private set; }
public ushort ProgramNumber { get; private set; }
public uint ChapterNumber { get; private set; }
public Chapter(ushort pgcNum, ushort programNum, uint chapterNum)
+19 -11
View File
@@ -1,8 +1,9 @@
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using MediaBrowser.Model.IO;
namespace DvdLib.Ifo
{
@@ -13,13 +14,10 @@ namespace DvdLib.Ifo
private ushort _titleCount;
public readonly Dictionary<ushort, string> VTSPaths = new Dictionary<ushort, string>();
private readonly IFileSystem _fileSystem;
public Dvd(string path, IFileSystem fileSystem)
public Dvd(string path)
{
_fileSystem = fileSystem;
Titles = new List<Title>();
var allFiles = _fileSystem.GetFiles(path, true).ToList();
var allFiles = new DirectoryInfo(path).GetFiles(path, SearchOption.AllDirectories);
var vmgPath = allFiles.FirstOrDefault(i => string.Equals(i.Name, "VIDEO_TS.IFO", StringComparison.OrdinalIgnoreCase)) ??
allFiles.FirstOrDefault(i => string.Equals(i.Name, "VIDEO_TS.BUP", StringComparison.OrdinalIgnoreCase));
@@ -33,7 +31,7 @@ namespace DvdLib.Ifo
continue;
}
var nums = ifo.Name.Split(new [] { '_' }, StringSplitOptions.RemoveEmptyEntries);
var nums = ifo.Name.Split(new[] { '_' }, StringSplitOptions.RemoveEmptyEntries);
if (nums.Length >= 2 && ushort.TryParse(nums[1], out var ifoNumber))
{
ReadVTS(ifoNumber, ifo.FullName);
@@ -76,7 +74,7 @@ namespace DvdLib.Ifo
}
}
private void ReadVTS(ushort vtsNum, IEnumerable<FileSystemMetadata> allFiles)
private void ReadVTS(ushort vtsNum, IReadOnlyList<FileInfo> allFiles)
{
var filename = string.Format("VTS_{0:00}_0.IFO", vtsNum);
@@ -119,12 +117,19 @@ namespace DvdLib.Ifo
uint chapNum = 1;
vtsFs.Seek(baseAddr + offsets[titleNum], SeekOrigin.Begin);
var t = Titles.FirstOrDefault(vtst => vtst.IsVTSTitle(vtsNum, titleNum + 1));
if (t == null) continue;
if (t == null)
{
continue;
}
do
{
t.Chapters.Add(new Chapter(vtsRead.ReadUInt16(), vtsRead.ReadUInt16(), chapNum));
if (titleNum + 1 < numTitles && vtsFs.Position == (baseAddr + offsets[titleNum + 1])) break;
if (titleNum + 1 < numTitles && vtsFs.Position == (baseAddr + offsets[titleNum + 1]))
{
break;
}
chapNum++;
}
while (vtsFs.Position < (baseAddr + endaddr));
@@ -149,7 +154,10 @@ namespace DvdLib.Ifo
uint vtsPgcOffset = vtsRead.ReadUInt32();
var t = Titles.FirstOrDefault(vtst => vtst.IsVTSTitle(vtsNum, titleNum));
if (t != null) t.AddPgc(vtsRead, startByte + vtsPgcOffset, entryPgc, pgcNum);
if (t != null)
{
t.AddPgc(vtsRead, startByte + vtsPgcOffset, entryPgc, pgcNum);
}
}
}
}
+10 -2
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace DvdLib.Ifo
@@ -13,8 +15,14 @@ namespace DvdLib.Ifo
Second = GetBCDValue(data[2]);
Frames = GetBCDValue((byte)(data[3] & 0x3F));
if ((data[3] & 0x80) != 0) FrameRate = 30;
else if ((data[3] & 0x40) != 0) FrameRate = 25;
if ((data[3] & 0x80) != 0)
{
FrameRate = 30;
}
else if ((data[3] & 0x40) != 0)
{
FrameRate = 25;
}
}
private static byte GetBCDValue(byte data)
+3 -1
View File
@@ -1,10 +1,12 @@
#pragma warning disable CS1591
using System.Collections.Generic;
namespace DvdLib.Ifo
{
public class Program
{
public readonly List<Cell> Cells;
public IReadOnlyList<Cell> Cells { get; }
public Program(List<Cell> cells)
{
+15 -2
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -20,7 +22,9 @@ namespace DvdLib.Ifo
public readonly List<Cell> Cells;
public DvdTime PlaybackTime { get; private set; }
public UserOperation ProhibitedUserOperations { get; private set; }
public byte[] AudioStreamControl { get; private set; } // 8*2 entries
public byte[] SubpictureStreamControl { get; private set; } // 32*4 entries
@@ -31,9 +35,11 @@ namespace DvdLib.Ifo
private ushort _goupProgramNumber;
public ProgramPlaybackMode PlaybackMode { get; private set; }
public uint ProgramCount { get; private set; }
public byte StillTime { get; private set; }
public byte[] Palette { get; private set; } // 16*4 entries
private ushort _commandTableOffset;
@@ -69,8 +75,15 @@ namespace DvdLib.Ifo
StillTime = br.ReadByte();
byte pbMode = br.ReadByte();
if (pbMode == 0) PlaybackMode = ProgramPlaybackMode.Sequential;
else PlaybackMode = ((pbMode & 0x80) == 0) ? ProgramPlaybackMode.Random : ProgramPlaybackMode.Shuffle;
if (pbMode == 0)
{
PlaybackMode = ProgramPlaybackMode.Sequential;
}
else
{
PlaybackMode = ((pbMode & 0x80) == 0) ? ProgramPlaybackMode.Random : ProgramPlaybackMode.Shuffle;
}
ProgramCount = (uint)(pbMode & 0x7F);
Palette = br.ReadBytes(64);
+10 -1
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System.Collections.Generic;
using System.IO;
@@ -6,8 +8,11 @@ namespace DvdLib.Ifo
public class Title
{
public uint TitleNumber { get; private set; }
public uint AngleCount { get; private set; }
public ushort ChapterCount { get; private set; }
public byte VideoTitleSetNumber { get; private set; }
private ushort _parentalManagementMask;
@@ -15,6 +20,7 @@ namespace DvdLib.Ifo
private uint _vtsStartSector; // relative to start of entire disk
public ProgramChain EntryProgramChain { get; private set; }
public readonly List<ProgramChain> ProgramChains;
public readonly List<Chapter> Chapters;
@@ -53,7 +59,10 @@ namespace DvdLib.Ifo
var pgc = new ProgramChain(pgcNum);
pgc.ParseHeader(br);
ProgramChains.Add(pgc);
if (entryPgc) EntryProgramChain = pgc;
if (entryPgc)
{
EntryProgramChain = pgc;
}
br.BaseStream.Seek(curPos, SeekOrigin.Begin);
}
+2
View File
@@ -1,3 +1,5 @@
#pragma warning disable CS1591
using System;
namespace DvdLib.Ifo
+10 -1
View File
@@ -1,7 +1,7 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Text;
using System.Threading.Tasks;
@@ -152,6 +152,7 @@ namespace Emby.Dlna.Api
return _resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, XMLContentType, () => Task.FromResult<Stream>(new MemoryStream(bytes)));
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Get(GetContentDirectory request)
{
var xml = ContentDirectory.GetServiceXml();
@@ -159,6 +160,7 @@ namespace Emby.Dlna.Api
return _resultFactory.GetResult(Request, xml, XMLContentType);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Get(GetMediaReceiverRegistrar request)
{
var xml = MediaReceiverRegistrar.GetServiceXml();
@@ -166,6 +168,7 @@ namespace Emby.Dlna.Api
return _resultFactory.GetResult(Request, xml, XMLContentType);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Get(GetConnnectionManager request)
{
var xml = ConnectionManager.GetServiceXml();
@@ -314,31 +317,37 @@ namespace Emby.Dlna.Api
return _resultFactory.GetStaticResult(Request, cacheKey, null, cacheLength, contentType, () => Task.FromResult(_dlnaManager.GetIcon(request.Filename).Stream));
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Subscribe(ProcessContentDirectoryEventRequest request)
{
return ProcessEventRequest(ContentDirectory);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Subscribe(ProcessConnectionManagerEventRequest request)
{
return ProcessEventRequest(ConnectionManager);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Subscribe(ProcessMediaReceiverRegistrarEventRequest request)
{
return ProcessEventRequest(MediaReceiverRegistrar);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Unsubscribe(ProcessContentDirectoryEventRequest request)
{
return ProcessEventRequest(ContentDirectory);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Unsubscribe(ProcessConnectionManagerEventRequest request)
{
return ProcessEventRequest(ConnectionManager);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Unsubscribe(ProcessMediaReceiverRegistrarEventRequest request)
{
return ProcessEventRequest(MediaReceiverRegistrar);
+3 -1
View File
@@ -1,6 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Net;
@@ -53,6 +53,7 @@ namespace Emby.Dlna.Api
_dlnaManager = dlnaManager;
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Get(GetProfileInfos request)
{
return _dlnaManager.GetProfileInfos().ToArray();
@@ -63,6 +64,7 @@ namespace Emby.Dlna.Api
return _dlnaManager.GetProfile(request.Id);
}
[SuppressMessage("Microsoft.Performance", "CA1801:ReviewUnusedParameters", MessageId = "request", Justification = "Required for ServiceStack")]
public object Get(GetDefaultProfile request)
{
return _dlnaManager.GetDefaultProfile();
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna.Common
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Globalization;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna.Common
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna.Configuration
{
+1 -1
View File
@@ -1,5 +1,5 @@
#nullable enable
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Configuration;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Threading.Tasks;
using Emby.Dlna.Service;
@@ -16,7 +15,11 @@ namespace Emby.Dlna.ConnectionManager
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
public ConnectionManager(IDlnaManager dlna, IServerConfigurationManager config, ILogger logger, IHttpClient httpClient)
public ConnectionManager(
IDlnaManager dlna,
IServerConfigurationManager config,
ILogger<ConnectionManager> logger,
IHttpClient httpClient)
: base(logger, httpClient)
{
_dlna = dlna;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
+8 -11
View File
@@ -1,14 +1,15 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Linq;
using System.Threading.Tasks;
using Emby.Dlna.Service;
using Jellyfin.Data.Entities;
using Jellyfin.Data.Enums;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.TV;
@@ -32,13 +33,14 @@ namespace Emby.Dlna.ContentDirectory
private readonly IMediaEncoder _mediaEncoder;
private readonly ITVSeriesManager _tvSeriesManager;
public ContentDirectory(IDlnaManager dlna,
public ContentDirectory(
IDlnaManager dlna,
IUserDataManager userDataManager,
IImageProcessor imageProcessor,
ILibraryManager libraryManager,
IServerConfigurationManager config,
IUserManager userManager,
ILogger logger,
ILogger<ContentDirectory> logger,
IHttpClient httpClient,
ILocalizationManager localization,
IMediaSourceManager mediaSourceManager,
@@ -131,18 +133,13 @@ namespace Emby.Dlna.ContentDirectory
foreach (var user in _userManager.Users)
{
if (user.Policy.IsAdministrator)
if (user.HasPermission(PermissionKind.IsAdministrator))
{
return user;
}
}
foreach (var user in _userManager.Users)
{
return user;
}
return null;
return _userManager.Users.FirstOrDefault();
}
}
}
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
+82 -68
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -11,6 +10,7 @@ using System.Threading;
using System.Xml;
using Emby.Dlna.Didl;
using Emby.Dlna.Service;
using Jellyfin.Data.Entities;
using MediaBrowser.Common.Extensions;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Drawing;
@@ -18,7 +18,6 @@ using MediaBrowser.Controller.Dto;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.MediaEncoding;
@@ -29,6 +28,12 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Querying;
using Microsoft.Extensions.Logging;
using Book = MediaBrowser.Controller.Entities.Book;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
using Genre = MediaBrowser.Controller.Entities.Genre;
using Movie = MediaBrowser.Controller.Entities.Movies.Movie;
using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum;
using Series = MediaBrowser.Controller.Entities.TV.Series;
namespace Emby.Dlna.ContentDirectory
{
@@ -79,7 +84,18 @@ namespace Emby.Dlna.ContentDirectory
_profile = profile;
_config = config;
_didlBuilder = new DidlBuilder(profile, user, imageProcessor, serverAddress, accessToken, userDataManager, localization, mediaSourceManager, Logger, mediaEncoder);
_didlBuilder = new DidlBuilder(
profile,
user,
imageProcessor,
serverAddress,
accessToken,
userDataManager,
localization,
mediaSourceManager,
Logger,
mediaEncoder,
libraryManager);
}
/// <inheritdoc />
@@ -154,7 +170,7 @@ namespace Emby.Dlna.ContentDirectory
{
var id = sparams["ObjectID"];
var serverItem = GetItemFromObjectId(id, _user);
var serverItem = GetItemFromObjectId(id);
var item = serverItem.Item;
@@ -277,7 +293,7 @@ namespace Emby.Dlna.ContentDirectory
DidlBuilder.WriteXmlRootAttributes(_profile, writer);
var serverItem = GetItemFromObjectId(id, _user);
var serverItem = GetItemFromObjectId(id);
var item = serverItem.Item;
@@ -294,7 +310,7 @@ namespace Emby.Dlna.ContentDirectory
else
{
var dlnaOptions = _config.GetDlnaConfiguration();
_didlBuilder.WriteItemElement(dlnaOptions, writer, item, _user, null, null, deviceId, filter);
_didlBuilder.WriteItemElement(writer, item, _user, null, null, deviceId, filter);
}
provided++;
@@ -321,7 +337,7 @@ namespace Emby.Dlna.ContentDirectory
}
else
{
_didlBuilder.WriteItemElement(dlnaOptions, writer, childItem, _user, item, serverItem.StubType, deviceId, filter);
_didlBuilder.WriteItemElement(writer, childItem, _user, item, serverItem.StubType, deviceId, filter);
}
}
}
@@ -388,7 +404,7 @@ namespace Emby.Dlna.ContentDirectory
DidlBuilder.WriteXmlRootAttributes(_profile, writer);
var serverItem = GetItemFromObjectId(sparams["ContainerID"], _user);
var serverItem = GetItemFromObjectId(sparams["ContainerID"]);
var item = serverItem.Item;
@@ -407,7 +423,7 @@ namespace Emby.Dlna.ContentDirectory
}
else
{
_didlBuilder.WriteItemElement(dlnaOptions, writer, i, _user, item, serverItem.StubType, deviceId, filter);
_didlBuilder.WriteItemElement(writer, i, _user, item, serverItem.StubType, deviceId, filter);
}
}
@@ -450,12 +466,12 @@ namespace Emby.Dlna.ContentDirectory
}
else if (search.SearchType == SearchType.Playlist)
{
//items = items.OfType<Playlist>();
// items = items.OfType<Playlist>();
isFolder = true;
}
else if (search.SearchType == SearchType.MusicAlbum)
{
//items = items.OfType<MusicAlbum>();
// items = items.OfType<MusicAlbum>();
isFolder = true;
}
@@ -513,11 +529,11 @@ namespace Emby.Dlna.ContentDirectory
}
else if (string.Equals(CollectionType.Folders, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
{
return GetFolders(item, user, stubType, sort, startIndex, limit);
return GetFolders(user, startIndex, limit);
}
else if (string.Equals(CollectionType.LiveTv, collectionFolder.CollectionType, StringComparison.OrdinalIgnoreCase))
{
return GetLiveTvChannels(item, user, stubType, sort, startIndex, limit);
return GetLiveTvChannels(user, sort, startIndex, limit);
}
}
@@ -548,7 +564,7 @@ namespace Emby.Dlna.ContentDirectory
return ToResult(queryResult);
}
private QueryResult<ServerItem> GetLiveTvChannels(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
private QueryResult<ServerItem> GetLiveTvChannels(User user, SortCriteria sort, int? startIndex, int? limit)
{
var query = new InternalItemsQuery(user)
{
@@ -580,7 +596,7 @@ namespace Emby.Dlna.ContentDirectory
if (stubType.HasValue && stubType.Value == StubType.Playlists)
{
return GetMusicPlaylists(item, user, query);
return GetMusicPlaylists(user, query);
}
if (stubType.HasValue && stubType.Value == StubType.Albums)
@@ -708,7 +724,7 @@ namespace Emby.Dlna.ContentDirectory
if (stubType.HasValue && stubType.Value == StubType.Collections)
{
return GetMovieCollections(item, user, query);
return GetMovieCollections(user, query);
}
if (stubType.HasValue && stubType.Value == StubType.Favorites)
@@ -721,46 +737,42 @@ namespace Emby.Dlna.ContentDirectory
return GetGenres(item, user, query);
}
var list = new List<ServerItem>();
list.Add(new ServerItem(item)
var array = new[]
{
StubType = StubType.ContinueWatching
});
list.Add(new ServerItem(item)
{
StubType = StubType.Latest
});
list.Add(new ServerItem(item)
{
StubType = StubType.Movies
});
list.Add(new ServerItem(item)
{
StubType = StubType.Collections
});
list.Add(new ServerItem(item)
{
StubType = StubType.Favorites
});
list.Add(new ServerItem(item)
{
StubType = StubType.Genres
});
new ServerItem(item)
{
StubType = StubType.ContinueWatching
},
new ServerItem(item)
{
StubType = StubType.Latest
},
new ServerItem(item)
{
StubType = StubType.Movies
},
new ServerItem(item)
{
StubType = StubType.Collections
},
new ServerItem(item)
{
StubType = StubType.Favorites
},
new ServerItem(item)
{
StubType = StubType.Genres
}
};
return new QueryResult<ServerItem>
{
Items = list,
TotalRecordCount = list.Count
Items = array,
TotalRecordCount = array.Length
};
}
private QueryResult<ServerItem> GetFolders(BaseItem item, User user, StubType? stubType, SortCriteria sort, int? startIndex, int? limit)
private QueryResult<ServerItem> GetFolders(User user, int? startIndex, int? limit)
{
var folders = _libraryManager.GetUserRootFolder().GetChildren(user, true)
.OrderBy(i => i.SortName)
@@ -793,7 +805,7 @@ namespace Emby.Dlna.ContentDirectory
if (stubType.HasValue && stubType.Value == StubType.NextUp)
{
return GetNextUp(item, user, query);
return GetNextUp(item, query);
}
if (stubType.HasValue && stubType.Value == StubType.Latest)
@@ -911,10 +923,10 @@ namespace Emby.Dlna.ContentDirectory
return ToResult(result);
}
private QueryResult<ServerItem> GetMovieCollections(BaseItem parent, User user, InternalItemsQuery query)
private QueryResult<ServerItem> GetMovieCollections(User user, InternalItemsQuery query)
{
query.Recursive = true;
//query.Parent = parent;
// query.Parent = parent;
query.SetUser(user);
query.IncludeItemTypes = new[] { typeof(BoxSet).Name };
@@ -1106,10 +1118,10 @@ namespace Emby.Dlna.ContentDirectory
return ToResult(result);
}
private QueryResult<ServerItem> GetMusicPlaylists(BaseItem parent, User user, InternalItemsQuery query)
private QueryResult<ServerItem> GetMusicPlaylists(User user, InternalItemsQuery query)
{
query.Parent = null;
query.IncludeItemTypes = new[] { typeof(Playlist).Name };
query.IncludeItemTypes = new[] { nameof(Playlist) };
query.SetUser(user);
query.Recursive = true;
@@ -1126,16 +1138,15 @@ namespace Emby.Dlna.ContentDirectory
{
UserId = user.Id,
Limit = 50,
IncludeItemTypes = new[] { typeof(Audio).Name },
ParentId = parent == null ? Guid.Empty : parent.Id,
IncludeItemTypes = new[] { nameof(Audio) },
ParentId = parent?.Id ?? Guid.Empty,
GroupItems = true
}, query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null).ToArray();
return ToResult(items);
}
private QueryResult<ServerItem> GetNextUp(BaseItem parent, User user, InternalItemsQuery query)
private QueryResult<ServerItem> GetNextUp(BaseItem parent, InternalItemsQuery query)
{
query.OrderBy = Array.Empty<(string, SortOrder)>();
@@ -1144,7 +1155,6 @@ namespace Emby.Dlna.ContentDirectory
Limit = query.Limit,
StartIndex = query.StartIndex,
UserId = query.User.Id
}, new[] { parent }, query.DtoOptions);
return ToResult(result);
@@ -1161,7 +1171,6 @@ namespace Emby.Dlna.ContentDirectory
IncludeItemTypes = new[] { typeof(Episode).Name },
ParentId = parent == null ? Guid.Empty : parent.Id,
GroupItems = false
}, query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null).ToArray();
return ToResult(items);
@@ -1171,14 +1180,14 @@ namespace Emby.Dlna.ContentDirectory
{
query.OrderBy = Array.Empty<(string, SortOrder)>();
var items = _userViewManager.GetLatestItems(new LatestItemsQuery
var items = _userViewManager.GetLatestItems(
new LatestItemsQuery
{
UserId = user.Id,
Limit = 50,
IncludeItemTypes = new[] { typeof(Movie).Name },
ParentId = parent == null ? Guid.Empty : parent.Id,
IncludeItemTypes = new[] { nameof(Movie) },
ParentId = parent?.Id ?? Guid.Empty,
GroupItems = true
}, query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null).ToArray();
return ToResult(items);
@@ -1211,7 +1220,11 @@ namespace Emby.Dlna.ContentDirectory
Recursive = true,
ParentId = parentId,
GenreIds = new[] { item.Id },
IncludeItemTypes = new[] { typeof(Movie).Name, typeof(Series).Name },
IncludeItemTypes = new[]
{
nameof(Movie),
nameof(Series)
},
Limit = limit,
StartIndex = startIndex,
DtoOptions = GetDtoOptions()
@@ -1290,15 +1303,15 @@ namespace Emby.Dlna.ContentDirectory
return result;
}
private ServerItem GetItemFromObjectId(string id, User user)
private ServerItem GetItemFromObjectId(string id)
{
return DidlBuilder.IsIdRoot(id)
? new ServerItem(_libraryManager.GetUserRootFolder())
: ParseItemId(id, user);
: ParseItemId(id);
}
private ServerItem ParseItemId(string id, User user)
private ServerItem ParseItemId(string id)
{
StubType? stubType = null;
@@ -1344,6 +1357,7 @@ namespace Emby.Dlna.ContentDirectory
internal class ServerItem
{
public BaseItem Item { get; set; }
public StubType? StubType { get; set; }
public ServerItem(BaseItem item)
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.IO;
using Microsoft.AspNetCore.Http;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
+263 -162
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Globalization;
@@ -7,14 +6,13 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
using Emby.Dlna.Configuration;
using Emby.Dlna.ContentDirectory;
using Jellyfin.Data.Entities;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Playlists;
@@ -24,6 +22,13 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Net;
using Microsoft.Extensions.Logging;
using Episode = MediaBrowser.Controller.Entities.TV.Episode;
using Genre = MediaBrowser.Controller.Entities.Genre;
using Movie = MediaBrowser.Controller.Entities.Movies.Movie;
using MusicAlbum = MediaBrowser.Controller.Entities.Audio.MusicAlbum;
using Season = MediaBrowser.Controller.Entities.TV.Season;
using Series = MediaBrowser.Controller.Entities.TV.Series;
using XmlAttribute = MediaBrowser.Model.Dlna.XmlAttribute;
namespace Emby.Dlna.Didl
{
@@ -46,6 +51,7 @@ namespace Emby.Dlna.Didl
private readonly IMediaSourceManager _mediaSourceManager;
private readonly ILogger _logger;
private readonly IMediaEncoder _mediaEncoder;
private readonly ILibraryManager _libraryManager;
public DidlBuilder(
DeviceProfile profile,
@@ -57,7 +63,8 @@ namespace Emby.Dlna.Didl
ILocalizationManager localization,
IMediaSourceManager mediaSourceManager,
ILogger logger,
IMediaEncoder mediaEncoder)
IMediaEncoder mediaEncoder,
ILibraryManager libraryManager)
{
_profile = profile;
_user = user;
@@ -69,6 +76,7 @@ namespace Emby.Dlna.Didl
_mediaSourceManager = mediaSourceManager;
_logger = logger;
_mediaEncoder = mediaEncoder;
_libraryManager = libraryManager;
}
public static string NormalizeDlnaMediaUrl(string url)
@@ -76,7 +84,7 @@ namespace Emby.Dlna.Didl
return url + "&dlnaheaders=true";
}
public string GetItemDidl(DlnaOptions options, BaseItem item, User user, BaseItem context, string deviceId, Filter filter, StreamInfo streamInfo)
public string GetItemDidl(BaseItem item, User user, BaseItem context, string deviceId, Filter filter, StreamInfo streamInfo)
{
var settings = new XmlWriterSettings
{
@@ -90,21 +98,21 @@ namespace Emby.Dlna.Didl
{
using (var writer = XmlWriter.Create(builder, settings))
{
//writer.WriteStartDocument();
// writer.WriteStartDocument();
writer.WriteStartElement(string.Empty, "DIDL-Lite", NS_DIDL);
writer.WriteAttributeString("xmlns", "dc", null, NS_DC);
writer.WriteAttributeString("xmlns", "dlna", null, NS_DLNA);
writer.WriteAttributeString("xmlns", "upnp", null, NS_UPNP);
//didl.SetAttribute("xmlns:sec", NS_SEC);
// didl.SetAttribute("xmlns:sec", NS_SEC);
WriteXmlRootAttributes(_profile, writer);
WriteItemElement(options, writer, item, user, context, null, deviceId, filter, streamInfo);
WriteItemElement(writer, item, user, context, null, deviceId, filter, streamInfo);
writer.WriteFullEndElement();
//writer.WriteEndDocument();
// writer.WriteEndDocument();
}
return builder.ToString();
@@ -128,7 +136,6 @@ namespace Emby.Dlna.Didl
}
public void WriteItemElement(
DlnaOptions options,
XmlWriter writer,
BaseItem item,
User user,
@@ -165,25 +172,23 @@ namespace Emby.Dlna.Didl
// refID?
// storeAttribute(itemNode, object, ClassProperties.REF_ID, false);
var hasMediaSources = item as IHasMediaSources;
if (hasMediaSources != null)
if (item is IHasMediaSources)
{
if (string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
{
AddAudioResource(options, writer, item, deviceId, filter, streamInfo);
AddAudioResource(writer, item, deviceId, filter, streamInfo);
}
else if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
{
AddVideoResource(options, writer, item, deviceId, filter, streamInfo);
AddVideoResource(writer, item, deviceId, filter, streamInfo);
}
}
AddCover(item, context, null, writer);
AddCover(item, null, writer);
writer.WriteFullEndElement();
}
private void AddVideoResource(DlnaOptions options, XmlWriter writer, BaseItem video, string deviceId, Filter filter, StreamInfo streamInfo = null)
private void AddVideoResource(XmlWriter writer, BaseItem video, string deviceId, Filter filter, StreamInfo streamInfo = null)
{
if (streamInfo == null)
{
@@ -227,7 +232,7 @@ namespace Emby.Dlna.Didl
foreach (var contentFeature in contentFeatureList)
{
AddVideoResource(writer, video, deviceId, filter, contentFeature, streamInfo);
AddVideoResource(writer, filter, contentFeature, streamInfo);
}
var subtitleProfiles = streamInfo.GetSubtitleProfiles(_mediaEncoder, false, _serverAddress, _accessToken);
@@ -284,7 +289,10 @@ namespace Emby.Dlna.Didl
else
{
writer.WriteStartElement(string.Empty, "res", NS_DIDL);
var protocolInfo = string.Format("http-get:*:text/{0}:*", info.Format.ToLowerInvariant());
var protocolInfo = string.Format(
CultureInfo.InvariantCulture,
"http-get:*:text/{0}:*",
info.Format.ToLowerInvariant());
writer.WriteAttributeString("protocolInfo", protocolInfo);
writer.WriteString(info.Url);
@@ -294,7 +302,7 @@ namespace Emby.Dlna.Didl
return true;
}
private void AddVideoResource(XmlWriter writer, BaseItem video, string deviceId, Filter filter, string contentFeatures, StreamInfo streamInfo)
private void AddVideoResource(XmlWriter writer, Filter filter, string contentFeatures, StreamInfo streamInfo)
{
writer.WriteStartElement(string.Empty, "res", NS_DIDL);
@@ -336,7 +344,13 @@ namespace Emby.Dlna.Didl
{
if (targetWidth.HasValue && targetHeight.HasValue)
{
writer.WriteAttributeString("resolution", string.Format("{0}x{1}", targetWidth.Value, targetHeight.Value));
writer.WriteAttributeString(
"resolution",
string.Format(
CultureInfo.InvariantCulture,
"{0}x{1}",
targetWidth.Value,
targetHeight.Value));
}
}
@@ -370,17 +384,19 @@ namespace Emby.Dlna.Didl
streamInfo.TargetVideoCodecTag,
streamInfo.IsTargetAVC);
var filename = url.Substring(0, url.IndexOf('?'));
var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
? MimeTypes.GetMimeType(filename)
: mediaProfile.MimeType;
writer.WriteAttributeString("protocolInfo", string.Format(
"http-get:*:{0}:{1}",
mimeType,
contentFeatures
));
writer.WriteAttributeString(
"protocolInfo",
string.Format(
CultureInfo.InvariantCulture,
"http-get:*:{0}:{1}",
mimeType,
contentFeatures));
writer.WriteString(url);
@@ -393,77 +409,121 @@ namespace Emby.Dlna.Didl
{
switch (itemStubType.Value)
{
case StubType.Latest: return _localization.GetLocalizedString("Latest");
case StubType.Playlists: return _localization.GetLocalizedString("Playlists");
case StubType.AlbumArtists: return _localization.GetLocalizedString("HeaderAlbumArtists");
case StubType.Albums: return _localization.GetLocalizedString("Albums");
case StubType.Artists: return _localization.GetLocalizedString("Artists");
case StubType.Songs: return _localization.GetLocalizedString("Songs");
case StubType.Genres: return _localization.GetLocalizedString("Genres");
case StubType.FavoriteAlbums: return _localization.GetLocalizedString("HeaderFavoriteAlbums");
case StubType.FavoriteArtists: return _localization.GetLocalizedString("HeaderFavoriteArtists");
case StubType.FavoriteSongs: return _localization.GetLocalizedString("HeaderFavoriteSongs");
case StubType.Latest: return _localization.GetLocalizedString("Latest");
case StubType.Playlists: return _localization.GetLocalizedString("Playlists");
case StubType.AlbumArtists: return _localization.GetLocalizedString("HeaderAlbumArtists");
case StubType.Albums: return _localization.GetLocalizedString("Albums");
case StubType.Artists: return _localization.GetLocalizedString("Artists");
case StubType.Songs: return _localization.GetLocalizedString("Songs");
case StubType.Genres: return _localization.GetLocalizedString("Genres");
case StubType.FavoriteAlbums: return _localization.GetLocalizedString("HeaderFavoriteAlbums");
case StubType.FavoriteArtists: return _localization.GetLocalizedString("HeaderFavoriteArtists");
case StubType.FavoriteSongs: return _localization.GetLocalizedString("HeaderFavoriteSongs");
case StubType.ContinueWatching: return _localization.GetLocalizedString("HeaderContinueWatching");
case StubType.Movies: return _localization.GetLocalizedString("Movies");
case StubType.Collections: return _localization.GetLocalizedString("Collections");
case StubType.Favorites: return _localization.GetLocalizedString("Favorites");
case StubType.NextUp: return _localization.GetLocalizedString("HeaderNextUp");
case StubType.FavoriteSeries: return _localization.GetLocalizedString("HeaderFavoriteShows");
case StubType.Movies: return _localization.GetLocalizedString("Movies");
case StubType.Collections: return _localization.GetLocalizedString("Collections");
case StubType.Favorites: return _localization.GetLocalizedString("Favorites");
case StubType.NextUp: return _localization.GetLocalizedString("HeaderNextUp");
case StubType.FavoriteSeries: return _localization.GetLocalizedString("HeaderFavoriteShows");
case StubType.FavoriteEpisodes: return _localization.GetLocalizedString("HeaderFavoriteEpisodes");
case StubType.Series: return _localization.GetLocalizedString("Shows");
default: break;
case StubType.Series: return _localization.GetLocalizedString("Shows");
}
}
if (item is Episode episode && context is Season season)
{
// This is a special embedded within a season
if (item.ParentIndexNumber.HasValue && item.ParentIndexNumber.Value == 0
&& season.IndexNumber.HasValue && season.IndexNumber.Value != 0)
{
return string.Format(_localization.GetLocalizedString("ValueSpecialEpisodeName"), item.Name);
}
if (item.IndexNumber.HasValue)
{
var number = item.IndexNumber.Value.ToString("00", CultureInfo.InvariantCulture);
if (episode.IndexNumberEnd.HasValue)
{
number += "-" + episode.IndexNumberEnd.Value.ToString("00", CultureInfo.InvariantCulture);
}
return number + " - " + item.Name;
}
}
else if (item is Episode ep)
{
var parent = ep.GetParent();
var name = parent.Name + " - ";
if (ep.ParentIndexNumber.HasValue)
{
name += "S" + ep.ParentIndexNumber.Value.ToString("00", CultureInfo.InvariantCulture);
}
else if (!item.IndexNumber.HasValue)
{
return name + " - " + item.Name;
}
name += "E" + ep.IndexNumber.Value.ToString("00", CultureInfo.InvariantCulture);
if (ep.IndexNumberEnd.HasValue)
{
name += "-" + ep.IndexNumberEnd.Value.ToString("00", CultureInfo.InvariantCulture);
}
name += " - " + item.Name;
return name;
}
return item.Name;
return item is Episode episode
? GetEpisodeDisplayName(episode, context)
: item.Name;
}
private void AddAudioResource(DlnaOptions options, XmlWriter writer, BaseItem audio, string deviceId, Filter filter, StreamInfo streamInfo = null)
/// <summary>
/// Gets episode display name appropriate for the given context.
/// </summary>
/// <remarks>
/// If context is a season, this will return a string containing just episode number and name.
/// Otherwise the result will include series nams and season number.
/// </remarks>
/// <param name="episode">The episode.</param>
/// <param name="context">Current context.</param>
/// <returns>Formatted name of the episode.</returns>
private string GetEpisodeDisplayName(Episode episode, BaseItem context)
{
string[] components;
if (context is Season season)
{
// This is a special embedded within a season
if (episode.ParentIndexNumber.HasValue && episode.ParentIndexNumber.Value == 0
&& season.IndexNumber.HasValue && season.IndexNumber.Value != 0)
{
return string.Format(
CultureInfo.InvariantCulture,
_localization.GetLocalizedString("ValueSpecialEpisodeName"),
episode.Name);
}
// inside a season use simple format (ex. '12 - Episode Name')
var epNumberName = GetEpisodeIndexFullName(episode);
components = new[] { epNumberName, episode.Name };
}
else
{
// outside a season include series and season details (ex. 'TV Show - S05E11 - Episode Name')
var epNumberName = GetEpisodeNumberDisplayName(episode);
components = new[] { episode.SeriesName, epNumberName, episode.Name };
}
return string.Join(" - ", components.Where(NotNullOrWhiteSpace));
}
/// <summary>
/// Gets complete episode number.
/// </summary>
/// <param name="episode">The episode.</param>
/// <returns>For single episodes returns just the number. For double episodes - current and ending numbers.</returns>
private string GetEpisodeIndexFullName(Episode episode)
{
var name = string.Empty;
if (episode.IndexNumber.HasValue)
{
name += episode.IndexNumber.Value.ToString("00", CultureInfo.InvariantCulture);
if (episode.IndexNumberEnd.HasValue)
{
name += "-" + episode.IndexNumberEnd.Value.ToString("00", CultureInfo.InvariantCulture);
}
}
return name;
}
/// <summary>
/// Gets episode number formatted as 'S##E##'.
/// </summary>
/// <param name="episode">The episode.</param>
/// <returns>Formatted episode number.</returns>
private string GetEpisodeNumberDisplayName(Episode episode)
{
var name = string.Empty;
var seasonNumber = episode.Season?.IndexNumber;
if (seasonNumber.HasValue)
{
name = "S" + seasonNumber.Value.ToString("00", CultureInfo.InvariantCulture);
}
var indexName = GetEpisodeIndexFullName(episode);
if (!string.IsNullOrWhiteSpace(indexName))
{
name += "E" + indexName;
}
return name;
}
private bool NotNullOrWhiteSpace(string s) => !string.IsNullOrWhiteSpace(s);
private void AddAudioResource(XmlWriter writer, BaseItem audio, string deviceId, Filter filter, StreamInfo streamInfo = null)
{
writer.WriteStartElement(string.Empty, "res", NS_DIDL);
@@ -529,7 +589,7 @@ namespace Emby.Dlna.Didl
targetSampleRate,
targetAudioBitDepth);
var filename = url.Substring(0, url.IndexOf('?'));
var filename = url.Substring(0, url.IndexOf('?', StringComparison.Ordinal));
var mimeType = mediaProfile == null || string.IsNullOrEmpty(mediaProfile.MimeType)
? MimeTypes.GetMimeType(filename)
@@ -545,11 +605,13 @@ namespace Emby.Dlna.Didl
streamInfo.RunTimeTicks ?? 0,
streamInfo.TranscodeSeekInfo);
writer.WriteAttributeString("protocolInfo", string.Format(
"http-get:*:{0}:{1}",
mimeType,
contentFeatures
));
writer.WriteAttributeString(
"protocolInfo",
string.Format(
CultureInfo.InvariantCulture,
"http-get:*:{0}:{1}",
mimeType,
contentFeatures));
writer.WriteString(url);
@@ -572,7 +634,7 @@ namespace Emby.Dlna.Didl
var clientId = GetClientId(folder, stubType);
if (string.Equals(requestedId, "0"))
if (string.Equals(requestedId, "0", StringComparison.Ordinal))
{
writer.WriteAttributeString("id", "0");
writer.WriteAttributeString("parentID", "-1");
@@ -601,7 +663,7 @@ namespace Emby.Dlna.Didl
AddGeneralProperties(folder, stubType, context, writer, filter);
AddCover(folder, context, stubType, writer);
AddCover(folder, stubType, writer);
writer.WriteFullEndElement();
}
@@ -613,7 +675,7 @@ namespace Emby.Dlna.Didl
return;
}
MediaBrowser.Model.Dlna.XmlAttribute secAttribute = null;
XmlAttribute secAttribute = null;
foreach (var attribute in _profile.XmlRootAttributes)
{
if (string.Equals(attribute.Name, "xmlns:sec", StringComparison.OrdinalIgnoreCase))
@@ -634,19 +696,22 @@ namespace Emby.Dlna.Didl
if (playbackPositionTicks > 0)
{
var elementValue = string.Format("BM={0}", Convert.ToInt32(TimeSpan.FromTicks(playbackPositionTicks).TotalSeconds).ToString(_usCulture));
var elementValue = string.Format(
CultureInfo.InvariantCulture,
"BM={0}",
Convert.ToInt32(TimeSpan.FromTicks(playbackPositionTicks).TotalSeconds));
AddValue(writer, "sec", "dcmInfo", elementValue, secAttribute.Value);
}
}
/// <summary>
/// Adds fields used by both items and folders
/// Adds fields used by both items and folders.
/// </summary>
private void AddCommonFields(BaseItem item, StubType? itemStubType, BaseItem context, XmlWriter writer, Filter filter)
{
// Don't filter on dc:title because not all devices will include it in the filter
// MediaMonkey for example won't display content without a title
//if (filter.Contains("dc:title"))
// if (filter.Contains("dc:title"))
{
AddValue(writer, "dc", "title", GetDisplayName(item, itemStubType, context), NS_DC);
}
@@ -685,7 +750,7 @@ namespace Emby.Dlna.Didl
AddValue(writer, "dc", "description", desc, NS_DC);
}
}
//if (filter.Contains("upnp:longDescription"))
// if (filter.Contains("upnp:longDescription"))
//{
// if (!string.IsNullOrWhiteSpace(item.Overview))
// {
@@ -700,6 +765,7 @@ namespace Emby.Dlna.Didl
{
AddValue(writer, "dc", "rating", item.OfficialRating, NS_DC);
}
if (filter.Contains("upnp:rating"))
{
AddValue(writer, "upnp", "rating", item.OfficialRating, NS_UPNP);
@@ -787,37 +853,36 @@ namespace Emby.Dlna.Didl
private void AddPeople(BaseItem item, XmlWriter writer)
{
//var types = new[]
//{
// PersonType.Director,
// PersonType.Writer,
// PersonType.Producer,
// PersonType.Composer,
// "Creator"
//};
if (!item.SupportsPeople)
{
return;
}
//var people = _libraryManager.GetPeople(item);
var types = new[]
{
PersonType.Director,
PersonType.Writer,
PersonType.Producer,
PersonType.Composer,
"creator"
};
//var index = 0;
// Seeing some LG models locking up due content with large lists of people
// The actual issue might just be due to processing a more metadata than it can handle
var people = _libraryManager.GetPeople(
new InternalPeopleQuery
{
ItemId = item.Id,
Limit = 6
});
//// Seeing some LG models locking up due content with large lists of people
//// The actual issue might just be due to processing a more metadata than it can handle
//var limit = 6;
foreach (var actor in people)
{
var type = types.FirstOrDefault(i => string.Equals(i, actor.Type, StringComparison.OrdinalIgnoreCase) || string.Equals(i, actor.Role, StringComparison.OrdinalIgnoreCase))
?? PersonType.Actor;
//foreach (var actor in people)
//{
// var type = types.FirstOrDefault(i => string.Equals(i, actor.Type, StringComparison.OrdinalIgnoreCase) || string.Equals(i, actor.Role, StringComparison.OrdinalIgnoreCase))
// ?? PersonType.Actor;
// AddValue(writer, "upnp", type.ToLowerInvariant(), actor.Name, NS_UPNP);
// index++;
// if (index >= limit)
// {
// break;
// }
//}
AddValue(writer, "upnp", type.ToLowerInvariant(), actor.Name, NS_UPNP);
}
}
private void AddGeneralProperties(BaseItem item, StubType? itemStubType, BaseItem context, XmlWriter writer, Filter filter)
@@ -894,7 +959,7 @@ namespace Emby.Dlna.Didl
}
}
private void AddCover(BaseItem item, BaseItem context, StubType? stubType, XmlWriter writer)
private void AddCover(BaseItem item, StubType? stubType, XmlWriter writer)
{
ImageDownloadInfo imageInfo = GetImageInfo(item);
@@ -936,20 +1001,10 @@ namespace Emby.Dlna.Didl
}
AddImageResElement(item, writer, 160, 160, "jpg", "JPEG_TN");
}
private void AddEmbeddedImageAsCover(string name, XmlWriter writer)
{
writer.WriteStartElement("upnp", "albumArtURI", NS_UPNP);
writer.WriteAttributeString("dlna", "profileID", NS_DLNA, _profile.AlbumArtPn);
writer.WriteString(_serverAddress + "/Dlna/icons/people480.jpg");
writer.WriteFullEndElement();
writer.WriteElementString("upnp", "icon", NS_UPNP, _serverAddress + "/Dlna/icons/people48.jpg");
}
private void AddImageResElement(BaseItem item,
private void AddImageResElement(
BaseItem item,
XmlWriter writer,
int maxWidth,
int maxHeight,
@@ -975,13 +1030,17 @@ namespace Emby.Dlna.Didl
var contentFeatures = new ContentFeatureBuilder(_profile)
.BuildImageHeader(format, width, height, imageInfo.IsDirectStream, org_Pn);
writer.WriteAttributeString("protocolInfo", string.Format(
"http-get:*:{0}:{1}",
MimeTypes.GetMimeType("file." + format),
contentFeatures
));
writer.WriteAttributeString(
"protocolInfo",
string.Format(
CultureInfo.InvariantCulture,
"http-get:*:{0}:{1}",
MimeTypes.GetMimeType("file." + format),
contentFeatures));
writer.WriteAttributeString("resolution", string.Format("{0}x{1}", width, height));
writer.WriteAttributeString(
"resolution",
string.Format(CultureInfo.InvariantCulture, "{0}x{1}", width, height));
writer.WriteString(albumartUrlInfo.Url);
@@ -994,10 +1053,12 @@ namespace Emby.Dlna.Didl
{
return GetImageInfo(item, ImageType.Primary);
}
if (item.HasImage(ImageType.Thumb))
{
return GetImageInfo(item, ImageType.Thumb);
}
if (item.HasImage(ImageType.Backdrop))
{
if (item is Channel)
@@ -1006,19 +1067,58 @@ namespace Emby.Dlna.Didl
}
}
item = item.GetParents().FirstOrDefault(i => i.HasImage(ImageType.Primary));
if (item != null)
// For audio tracks without art use album art if available.
if (item is Audio audioItem)
{
if (item.HasImage(ImageType.Primary))
{
return GetImageInfo(item, ImageType.Primary);
}
var album = audioItem.AlbumEntity;
return album != null && album.HasImage(ImageType.Primary)
? GetImageInfo(album, ImageType.Primary)
: null;
}
// Don't look beyond album/playlist level. Metadata service may assign an image from a different album/show to the parent folder.
if (item is MusicAlbum || item is Playlist)
{
return null;
}
// For other item types check parents, but be aware that image retrieved from a parent may be not suitable for this media item.
var parentWithImage = GetFirstParentWithImageBelowUserRoot(item);
if (parentWithImage != null)
{
return GetImageInfo(parentWithImage, ImageType.Primary);
}
return null;
}
private BaseItem GetFirstParentWithImageBelowUserRoot(BaseItem item)
{
if (item == null)
{
return null;
}
if (item.HasImage(ImageType.Primary))
{
return item;
}
var parent = item.GetParent();
if (parent is UserRootFolder)
{
return null;
}
// terminate in case we went past user root folder (unlikely?)
if (parent is Folder folder && folder.IsRoot)
{
return null;
}
return GetFirstParentWithImageBelowUserRoot(parent);
}
private ImageDownloadInfo GetImageInfo(BaseItem item, ImageType type)
{
var imageInfo = item.GetImageInfo(type, 0);
@@ -1038,25 +1138,24 @@ namespace Emby.Dlna.Didl
if (width == 0 || height == 0)
{
//_imageProcessor.GetImageSize(item, imageInfo);
// _imageProcessor.GetImageSize(item, imageInfo);
width = null;
height = null;
}
else if (width == -1 || height == -1)
{
width = null;
height = null;
}
//try
// try
//{
// var size = _imageProcessor.GetImageSize(imageInfo);
// width = size.Width;
// height = size.Height;
//}
//catch
// catch
//{
//}
@@ -1120,7 +1219,9 @@ namespace Emby.Dlna.Didl
private ImageUrlInfo GetImageUrl(ImageDownloadInfo info, int maxWidth, int maxHeight, string format)
{
var url = string.Format("{0}/Items/{1}/Images/{2}/0/{3}/{4}/{5}/{6}/0/0",
var url = string.Format(
CultureInfo.InvariantCulture,
"{0}/Items/{1}/Images/{2}/0/{3}/{4}/{5}/{6}/0/0",
_serverAddress,
info.ItemId.ToString("N", CultureInfo.InvariantCulture),
info.Type,
+1 -4
View File
@@ -1,8 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using MediaBrowser.Model.Extensions;
namespace Emby.Dlna.Didl
{
@@ -14,7 +12,6 @@ namespace Emby.Dlna.Didl
public Filter()
: this("*")
{
}
public Filter(string filter)
@@ -28,7 +25,7 @@ namespace Emby.Dlna.Didl
{
// Don't bother with this. Some clients (media monkey) use the filter and then don't display very well when very little data comes back.
return true;
//return _all || ListHelper.ContainsIgnoreCase(_fields, field);
// return _all || ListHelper.ContainsIgnoreCase(_fields, field);
}
}
}
+1 -2
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.IO;
@@ -54,6 +53,6 @@ namespace Emby.Dlna.Didl
_encoding = encoding;
}
public override Encoding Encoding => (null == _encoding) ? base.Encoding : _encoding;
public override Encoding Encoding => _encoding ?? base.Encoding;
}
}
+28 -9
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -32,7 +31,7 @@ namespace Emby.Dlna
private readonly IApplicationPaths _appPaths;
private readonly IXmlSerializer _xmlSerializer;
private readonly IFileSystem _fileSystem;
private readonly ILogger _logger;
private readonly ILogger<DlnaManager> _logger;
private readonly IJsonSerializer _jsonSerializer;
private readonly IServerApplicationHost _appHost;
private static readonly Assembly _assembly = typeof(DlnaManager).Assembly;
@@ -50,7 +49,7 @@ namespace Emby.Dlna
_xmlSerializer = xmlSerializer;
_fileSystem = fileSystem;
_appPaths = appPaths;
_logger = loggerFactory.CreateLogger("Dlna");
_logger = loggerFactory.CreateLogger<DlnaManager>();
_jsonSerializer = jsonSerializer;
_appHost = appHost;
}
@@ -89,7 +88,6 @@ namespace Emby.Dlna
.Select(i => i.Item2)
.ToList();
}
}
public DeviceProfile GetDefaultProfile()
@@ -142,55 +140,73 @@ namespace Emby.Dlna
if (!string.IsNullOrEmpty(profileInfo.DeviceDescription))
{
if (deviceInfo.DeviceDescription == null || !IsRegexMatch(deviceInfo.DeviceDescription, profileInfo.DeviceDescription))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.FriendlyName))
{
if (deviceInfo.FriendlyName == null || !IsRegexMatch(deviceInfo.FriendlyName, profileInfo.FriendlyName))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.Manufacturer))
{
if (deviceInfo.Manufacturer == null || !IsRegexMatch(deviceInfo.Manufacturer, profileInfo.Manufacturer))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.ManufacturerUrl))
{
if (deviceInfo.ManufacturerUrl == null || !IsRegexMatch(deviceInfo.ManufacturerUrl, profileInfo.ManufacturerUrl))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.ModelDescription))
{
if (deviceInfo.ModelDescription == null || !IsRegexMatch(deviceInfo.ModelDescription, profileInfo.ModelDescription))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.ModelName))
{
if (deviceInfo.ModelName == null || !IsRegexMatch(deviceInfo.ModelName, profileInfo.ModelName))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.ModelNumber))
{
if (deviceInfo.ModelNumber == null || !IsRegexMatch(deviceInfo.ModelNumber, profileInfo.ModelNumber))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.ModelUrl))
{
if (deviceInfo.ModelUrl == null || !IsRegexMatch(deviceInfo.ModelUrl, profileInfo.ModelUrl))
{
return false;
}
}
if (!string.IsNullOrEmpty(profileInfo.SerialNumber))
{
if (deviceInfo.SerialNumber == null || !IsRegexMatch(deviceInfo.SerialNumber, profileInfo.SerialNumber))
{
return false;
}
}
return true;
@@ -252,7 +268,7 @@ namespace Emby.Dlna
return string.Equals(value, header.Value, StringComparison.OrdinalIgnoreCase);
case HeaderMatchType.Substring:
var isMatch = value.ToString().IndexOf(header.Value, StringComparison.OrdinalIgnoreCase) != -1;
//_logger.LogDebug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch);
// _logger.LogDebug("IsMatch-Substring value: {0} testValue: {1} isMatch: {2}", value, header.Value, isMatch);
return isMatch;
case HeaderMatchType.Regex:
return Regex.IsMatch(value, header.Value, RegexOptions.IgnoreCase);
@@ -440,6 +456,7 @@ namespace Emby.Dlna
{
throw new ArgumentException("Profile is missing Id");
}
if (string.IsNullOrEmpty(profile.Name))
{
throw new ArgumentException("Profile is missing Name");
@@ -465,6 +482,7 @@ namespace Emby.Dlna
{
_profiles[path] = new Tuple<InternalProfileInfo, DeviceProfile>(GetInternalProfileInfo(_fileSystem.GetFileInfo(path), type), profile);
}
SerializeToXml(profile, path);
}
@@ -475,7 +493,7 @@ namespace Emby.Dlna
/// <summary>
/// Recreates the object using serialization, to ensure it's not a subclass.
/// If it's a subclass it may not serlialize properly to xml (different root element tag name)
/// If it's a subclass it may not serlialize properly to xml (different root element tag name).
/// </summary>
/// <param name="profile"></param>
/// <returns></returns>
@@ -494,6 +512,7 @@ namespace Emby.Dlna
class InternalProfileInfo
{
internal DeviceProfileInfo Info { get; set; }
internal string Path { get; set; }
}
@@ -567,9 +586,9 @@ namespace Emby.Dlna
new Foobar2000Profile(),
new SharpSmartTvProfile(),
new MediaMonkeyProfile(),
//new Windows81Profile(),
//new WindowsMediaCenterProfile(),
//new WindowsPhoneProfile(),
// new Windows81Profile(),
// new WindowsMediaCenterProfile(),
// new WindowsPhoneProfile(),
new DirectTvProfile(),
new DishHopperJoeyProfile(),
new DefaultProfile(),
+5
View File
@@ -1,5 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<!-- ProjectGuid is only included as a requirement for SonarQube analysis -->
<PropertyGroup>
<ProjectGuid>{805844AB-E92F-45E6-9D99-4F6D48D129A5}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\SharedVersion.cs" />
</ItemGroup>
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
+18 -11
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Concurrent;
@@ -32,18 +31,26 @@ namespace Emby.Dlna.Eventing
public EventSubscriptionResponse RenewEventSubscription(string subscriptionId, string notificationType, string requestedTimeoutString, string callbackUrl)
{
var subscription = GetSubscription(subscriptionId, false);
if (subscription != null)
{
subscription.TimeoutSeconds = ParseTimeout(requestedTimeoutString) ?? 300;
int timeoutSeconds = subscription.TimeoutSeconds;
subscription.SubscriptionTime = DateTime.UtcNow;
subscription.TimeoutSeconds = ParseTimeout(requestedTimeoutString) ?? 300;
int timeoutSeconds = subscription.TimeoutSeconds;
subscription.SubscriptionTime = DateTime.UtcNow;
_logger.LogDebug(
"Renewing event subscription for {0} with timeout of {1} to {2}",
subscription.NotificationType,
timeoutSeconds,
subscription.CallbackUrl);
_logger.LogDebug(
"Renewing event subscription for {0} with timeout of {1} to {2}",
subscription.NotificationType,
timeoutSeconds,
subscription.CallbackUrl);
return GetEventSubscriptionResponse(subscriptionId, requestedTimeoutString, timeoutSeconds);
}
return GetEventSubscriptionResponse(subscriptionId, requestedTimeoutString, timeoutSeconds);
return new EventSubscriptionResponse
{
Content = string.Empty,
ContentType = "text/plain"
};
}
public EventSubscriptionResponse CreateEventSubscription(string notificationType, string requestedTimeoutString, string callbackUrl)
@@ -151,6 +158,7 @@ namespace Emby.Dlna.Eventing
builder.Append("</" + key + ">");
builder.Append("</e:property>");
}
builder.Append("</e:propertyset>");
var options = new HttpRequestOptions
@@ -170,7 +178,6 @@ namespace Emby.Dlna.Eventing
{
using (await _httpClient.SendAsync(options, new HttpMethod("NOTIFY")).ConfigureAwait(false))
{
}
}
catch (OperationCanceledException)
+3 -1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
@@ -8,10 +7,13 @@ namespace Emby.Dlna.Eventing
public class EventSubscription
{
public string Id { get; set; }
public string CallbackUrl { get; set; }
public string NotificationType { get; set; }
public DateTime SubscriptionTime { get; set; }
public int TimeoutSeconds { get; set; }
public long TriggerCount { get; set; }
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Threading.Tasks;
+53 -37
View File
@@ -1,9 +1,8 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Net.Sockets;
using System.Globalization;
using System.Net.Sockets;
using System.Threading;
using System.Threading.Tasks;
using Emby.Dlna.PlayTo;
@@ -27,17 +26,15 @@ using MediaBrowser.Model.System;
using Microsoft.Extensions.Logging;
using Rssdp;
using Rssdp.Infrastructure;
using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
namespace Emby.Dlna.Main
{
public class DlnaEntryPoint : IServerEntryPoint, IRunBeforeStartup
{
private readonly IServerConfigurationManager _config;
private readonly ILogger _logger;
private readonly ILogger<DlnaEntryPoint> _logger;
private readonly IServerApplicationHost _appHost;
private PlayToManager _manager;
private readonly ISessionManager _sessionManager;
private readonly IHttpClient _httpClient;
private readonly ILibraryManager _libraryManager;
@@ -48,23 +45,25 @@ namespace Emby.Dlna.Main
private readonly ILocalizationManager _localization;
private readonly IMediaSourceManager _mediaSourceManager;
private readonly IMediaEncoder _mediaEncoder;
private readonly IDeviceDiscovery _deviceDiscovery;
private SsdpDevicePublisher _Publisher;
private readonly ISocketFactory _socketFactory;
private readonly INetworkManager _networkManager;
private readonly object _syncLock = new object();
private PlayToManager _manager;
private SsdpDevicePublisher _publisher;
private ISsdpCommunicationsServer _communicationsServer;
internal IContentDirectory ContentDirectory { get; private set; }
internal IConnectionManager ConnectionManager { get; private set; }
internal IMediaReceiverRegistrar MediaReceiverRegistrar { get; private set; }
public static DlnaEntryPoint Current;
public DlnaEntryPoint(IServerConfigurationManager config,
public DlnaEntryPoint(
IServerConfigurationManager config,
ILoggerFactory loggerFactory,
IServerApplicationHost appHost,
ISessionManager sessionManager,
@@ -98,7 +97,7 @@ namespace Emby.Dlna.Main
_mediaEncoder = mediaEncoder;
_socketFactory = socketFactory;
_networkManager = networkManager;
_logger = loggerFactory.CreateLogger("Dlna");
_logger = loggerFactory.CreateLogger<DlnaEntryPoint>();
ContentDirectory = new ContentDirectory.ContentDirectory(
dlnaManager,
@@ -107,7 +106,7 @@ namespace Emby.Dlna.Main
libraryManager,
config,
userManager,
_logger,
loggerFactory.CreateLogger<ContentDirectory.ContentDirectory>(),
httpClient,
localizationManager,
mediaSourceManager,
@@ -115,9 +114,16 @@ namespace Emby.Dlna.Main
mediaEncoder,
tvSeriesManager);
ConnectionManager = new ConnectionManager.ConnectionManager(dlnaManager, config, _logger, httpClient);
ConnectionManager = new ConnectionManager.ConnectionManager(
dlnaManager,
config,
loggerFactory.CreateLogger<ConnectionManager.ConnectionManager>(),
httpClient);
MediaReceiverRegistrar = new MediaReceiverRegistrar.MediaReceiverRegistrar(_logger, httpClient, config);
MediaReceiverRegistrar = new MediaReceiverRegistrar.MediaReceiverRegistrar(
loggerFactory.CreateLogger<MediaReceiverRegistrar.MediaReceiverRegistrar>(),
httpClient,
config);
Current = this;
}
@@ -125,20 +131,20 @@ namespace Emby.Dlna.Main
{
await ((DlnaManager)_dlnaManager).InitProfilesAsync().ConfigureAwait(false);
ReloadComponents();
await ReloadComponents().ConfigureAwait(false);
_config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
_config.NamedConfigurationUpdated += OnNamedConfigurationUpdated;
}
void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
private async void OnNamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
{
if (string.Equals(e.Key, "dlna", StringComparison.OrdinalIgnoreCase))
{
ReloadComponents();
await ReloadComponents().ConfigureAwait(false);
}
}
private async void ReloadComponents()
private async Task ReloadComponents()
{
var options = _config.GetDlnaConfiguration();
@@ -172,7 +178,7 @@ namespace Emby.Dlna.Main
var enableMultiSocketBinding = OperatingSystem.Id == OperatingSystemId.Windows ||
OperatingSystem.Id == OperatingSystemId.Linux;
_communicationsServer = new SsdpCommunicationsServer(_config, _socketFactory, _networkManager, _logger, enableMultiSocketBinding)
_communicationsServer = new SsdpCommunicationsServer(_socketFactory, _networkManager, _logger, enableMultiSocketBinding)
{
IsShared = true
};
@@ -223,20 +229,22 @@ namespace Emby.Dlna.Main
return;
}
if (_Publisher != null)
if (_publisher != null)
{
return;
}
try
{
_Publisher = new SsdpDevicePublisher(_communicationsServer, _networkManager, OperatingSystem.Name, Environment.OSVersion.VersionString, _config.GetDlnaConfiguration().SendOnlyMatchedHost);
_Publisher.LogFunction = LogMessage;
_Publisher.SupportPnpRootDevice = false;
_publisher = new SsdpDevicePublisher(_communicationsServer, _networkManager, OperatingSystem.Name, Environment.OSVersion.VersionString, _config.GetDlnaConfiguration().SendOnlyMatchedHost)
{
LogFunction = LogMessage,
SupportPnpRootDevice = false
};
await RegisterServerEndpoints().ConfigureAwait(false);
_Publisher.StartBroadcastingAliveMessages(TimeSpan.FromSeconds(options.BlastAliveMessageIntervalSeconds));
_publisher.StartBroadcastingAliveMessages(TimeSpan.FromSeconds(options.BlastAliveMessageIntervalSeconds));
}
catch (Exception ex)
{
@@ -254,8 +262,14 @@ namespace Emby.Dlna.Main
{
if (address.AddressFamily == AddressFamily.InterNetworkV6)
{
// Not support IPv6 right now
continue;
// Not supporting IPv6 right now
continue;
}
// Limit to LAN addresses only
if (!_networkManager.IsAddressInSubnets(address, true, true))
{
continue;
}
var fullService = "urn:schemas-upnp-org:device:MediaServer:1";
@@ -267,7 +281,7 @@ namespace Emby.Dlna.Main
var device = new SsdpRootDevice
{
CacheLifetime = TimeSpan.FromSeconds(1800), //How long SSDP clients can cache this info.
CacheLifetime = TimeSpan.FromSeconds(1800), // How long SSDP clients can cache this info.
Location = uri, // Must point to the URL that serves your devices UPnP description document.
Address = address,
SubnetMask = _networkManager.GetLocalIpSubnetMask(address),
@@ -279,13 +293,13 @@ namespace Emby.Dlna.Main
};
SetProperies(device, fullService);
_Publisher.AddDevice(device);
_publisher.AddDevice(device);
var embeddedDevices = new[]
{
"urn:schemas-upnp-org:service:ContentDirectory:1",
"urn:schemas-upnp-org:service:ConnectionManager:1",
//"urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1"
// "urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1"
};
foreach (var subDevice in embeddedDevices)
@@ -311,12 +325,13 @@ namespace Emby.Dlna.Main
{
guid = text.GetMD5();
}
return guid.ToString("N", CultureInfo.InvariantCulture);
}
private void SetProperies(SsdpDevice device, string fullDeviceType)
{
var service = fullDeviceType.Replace("urn:", string.Empty).Replace(":1", string.Empty);
var service = fullDeviceType.Replace("urn:", string.Empty, StringComparison.OrdinalIgnoreCase).Replace(":1", string.Empty, StringComparison.OrdinalIgnoreCase);
var serviceParts = service.Split(':');
@@ -327,7 +342,6 @@ namespace Emby.Dlna.Main
device.DeviceType = serviceParts[2];
}
private readonly object _syncLock = new object();
private void StartPlayToManager()
{
lock (_syncLock)
@@ -339,7 +353,8 @@ namespace Emby.Dlna.Main
try
{
_manager = new PlayToManager(_logger,
_manager = new PlayToManager(
_logger,
_sessionManager,
_libraryManager,
_userManager,
@@ -378,6 +393,7 @@ namespace Emby.Dlna.Main
{
_logger.LogError(ex, "Error disposing PlayTo manager");
}
_manager = null;
}
}
@@ -404,11 +420,11 @@ namespace Emby.Dlna.Main
public void DisposeDevicePublisher()
{
if (_Publisher != null)
if (_publisher != null)
{
_logger.LogInformation("Disposing SsdpDevicePublisher");
_Publisher.Dispose();
_Publisher = null;
_publisher.Dispose();
_publisher = null;
}
}
}
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Threading.Tasks;
using Emby.Dlna.Service;
@@ -13,7 +12,10 @@ namespace Emby.Dlna.MediaReceiverRegistrar
{
private readonly IServerConfigurationManager _config;
public MediaReceiverRegistrar(ILogger logger, IHttpClient httpClient, IServerConfigurationManager config)
public MediaReceiverRegistrar(
ILogger<MediaReceiverRegistrar> logger,
IHttpClient httpClient,
IServerConfigurationManager config)
: base(logger, httpClient)
{
_config = config;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
+68 -48
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -20,8 +19,6 @@ namespace Emby.Dlna.PlayTo
{
public class Device : IDisposable
{
#region Fields & Properties
private Timer _timer;
public DeviceInfo Properties { get; set; }
@@ -35,9 +32,10 @@ namespace Emby.Dlna.PlayTo
{
get
{
RefreshVolumeIfNeeded();
RefreshVolumeIfNeeded().GetAwaiter().GetResult();
return _volume;
}
set => _volume = value;
}
@@ -53,10 +51,10 @@ namespace Emby.Dlna.PlayTo
public bool IsStopped => TransportState == TRANSPORTSTATE.STOPPED;
#endregion
private readonly IHttpClient _httpClient;
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
public Action OnDeviceUnavailable { get; set; }
@@ -77,24 +75,24 @@ namespace Emby.Dlna.PlayTo
private DateTime _lastVolumeRefresh;
private bool _volumeRefreshActive;
private void RefreshVolumeIfNeeded()
private Task RefreshVolumeIfNeeded()
{
if (!_volumeRefreshActive)
{
return;
}
if (DateTime.UtcNow >= _lastVolumeRefresh.AddSeconds(5))
if (_volumeRefreshActive
&& DateTime.UtcNow >= _lastVolumeRefresh.AddSeconds(5))
{
_lastVolumeRefresh = DateTime.UtcNow;
RefreshVolume(CancellationToken.None);
return RefreshVolume();
}
return Task.CompletedTask;
}
private async void RefreshVolume(CancellationToken cancellationToken)
private async Task RefreshVolume(CancellationToken cancellationToken = default)
{
if (_disposed)
{
return;
}
try
{
@@ -142,8 +140,6 @@ namespace Emby.Dlna.PlayTo
}
}
#region Commanding
public Task VolumeDown(CancellationToken cancellationToken)
{
var sendVolume = Math.Max(Volume - 5, 0);
@@ -212,7 +208,9 @@ namespace Emby.Dlna.PlayTo
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetMute");
if (command == null)
{
return false;
}
var service = GetServiceRenderingControl();
@@ -233,7 +231,7 @@ namespace Emby.Dlna.PlayTo
}
/// <summary>
/// Sets volume on a scale of 0-100
/// Sets volume on a scale of 0-100.
/// </summary>
public async Task SetVolume(int value, CancellationToken cancellationToken)
{
@@ -241,7 +239,9 @@ namespace Emby.Dlna.PlayTo
var command = rendererCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetVolume");
if (command == null)
{
return;
}
var service = GetServiceRenderingControl();
@@ -264,7 +264,9 @@ namespace Emby.Dlna.PlayTo
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "Seek");
if (command == null)
{
return;
}
var service = GetAvTransportService();
@@ -289,7 +291,9 @@ namespace Emby.Dlna.PlayTo
var command = avCommands.ServiceActions.FirstOrDefault(c => c.Name == "SetAVTransportURI");
if (command == null)
{
return;
}
var dictionary = new Dictionary<string, string>
{
@@ -347,7 +351,12 @@ namespace Emby.Dlna.PlayTo
throw new InvalidOperationException("Unable to find service");
}
return new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, avCommands.BuildPost(command, service.ServiceType, 1));
return new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
avCommands.BuildPost(command, service.ServiceType, 1),
cancellationToken: cancellationToken);
}
public async Task SetPlay(CancellationToken cancellationToken)
@@ -397,11 +406,8 @@ namespace Emby.Dlna.PlayTo
RestartTimer(true);
}
#endregion
#region Get data
private int _connectFailureCount;
private async void TimerCallback(object sender)
{
if (_disposed)
@@ -454,7 +460,9 @@ namespace Emby.Dlna.PlayTo
_connectFailureCount = 0;
if (_disposed)
{
return;
}
// If we're not playing anything make sure we don't get data more often than neccessry to keep the Session alive
if (transportState.Value == TRANSPORTSTATE.STOPPED)
@@ -474,7 +482,9 @@ namespace Emby.Dlna.PlayTo
catch (Exception ex)
{
if (_disposed)
{
return;
}
_logger.LogError(ex, "Error updating device info for {DeviceName}", Properties.Name);
@@ -490,6 +500,7 @@ namespace Emby.Dlna.PlayTo
return;
}
}
RestartTimerInactive();
}
}
@@ -516,8 +527,12 @@ namespace Emby.Dlna.PlayTo
return;
}
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType), true)
.ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
if (result == null || result.Document == null)
{
@@ -562,11 +577,17 @@ namespace Emby.Dlna.PlayTo
return;
}
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType), true)
.ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
if (result == null || result.Document == null)
{
return;
}
var valueNode = result.Document.Descendants(uPnpNamespaces.RenderingControl + "GetMuteResponse")
.Select(i => i.Element("CurrentMute"))
@@ -589,8 +610,12 @@ namespace Emby.Dlna.PlayTo
return null;
}
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, avCommands.BuildPost(command, service.ServiceType), false)
.ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
avCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
if (result == null || result.Document == null)
{
@@ -600,7 +625,7 @@ namespace Emby.Dlna.PlayTo
var transportState =
result.Document.Descendants(uPnpNamespaces.AvTransport + "GetTransportInfoResponse").Select(i => i.Element("CurrentTransportState")).FirstOrDefault(i => i != null);
var transportStateValue = transportState == null ? null : transportState.Value;
var transportStateValue = transportState?.Value;
if (transportStateValue != null
&& Enum.TryParse(transportStateValue, true, out TRANSPORTSTATE state))
@@ -627,8 +652,12 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType), false)
.ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
if (result == null || result.Document == null)
{
@@ -690,8 +719,12 @@ namespace Emby.Dlna.PlayTo
var rendererCommands = await GetRenderingProtocolAsync(cancellationToken).ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(Properties.BaseUrl, service, command.Name, rendererCommands.BuildPost(command, service.ServiceType), false)
.ConfigureAwait(false);
var result = await new SsdpHttpClient(_httpClient).SendCommandAsync(
Properties.BaseUrl,
service,
command.Name,
rendererCommands.BuildPost(command, service.ServiceType),
cancellationToken: cancellationToken).ConfigureAwait(false);
if (result == null || result.Document == null)
{
@@ -726,7 +759,7 @@ namespace Emby.Dlna.PlayTo
if (track == null)
{
//If track is null, some vendors do this, use GetMediaInfo instead
// If track is null, some vendors do this, use GetMediaInfo instead
return (true, null);
}
@@ -770,7 +803,6 @@ namespace Emby.Dlna.PlayTo
}
catch (XmlException)
{
}
// first try to add a root node with a dlna namesapce
@@ -782,7 +814,6 @@ namespace Emby.Dlna.PlayTo
}
catch (XmlException)
{
}
// some devices send back invalid xml
@@ -792,7 +823,6 @@ namespace Emby.Dlna.PlayTo
}
catch (XmlException)
{
}
return null;
@@ -847,10 +877,6 @@ namespace Emby.Dlna.PlayTo
return new string[4];
}
#endregion
#region From XML
private async Task<TransportCommands> GetAVProtocolAsync(CancellationToken cancellationToken)
{
if (AvCommands != null)
@@ -1045,8 +1071,6 @@ namespace Emby.Dlna.PlayTo
return new Device(deviceProperties, httpClient, logger, config);
}
#endregion
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
private static DeviceIcon CreateIcon(XElement element)
{
@@ -1170,8 +1194,6 @@ namespace Emby.Dlna.PlayTo
});
}
#region IDisposable
bool _disposed;
public void Dispose()
@@ -1198,8 +1220,6 @@ namespace Emby.Dlna.PlayTo
_disposed = true;
}
#endregion
public override string ToString()
{
return string.Format("{0} - {1}", Properties.Name, Properties.BaseUrl);
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Collections.Generic;
using Emby.Dlna.Common;
+106 -78
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
@@ -8,6 +7,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Emby.Dlna.Didl;
using Jellyfin.Data.Entities;
using MediaBrowser.Common.Configuration;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
@@ -23,11 +23,14 @@ using MediaBrowser.Model.Globalization;
using MediaBrowser.Model.Session;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
using Photo = MediaBrowser.Controller.Entities.Photo;
namespace Emby.Dlna.PlayTo
{
public class PlayToController : ISessionController, IDisposable
{
private static readonly CultureInfo _usCulture = CultureInfo.ReadOnly(new CultureInfo("en-US"));
private Device _device;
private readonly SessionInfo _session;
private readonly ISessionManager _sessionManager;
@@ -46,9 +49,10 @@ namespace Emby.Dlna.PlayTo
private readonly string _serverAddress;
private readonly string _accessToken;
public bool IsSessionActive => !_disposed && _device != null;
private readonly List<PlaylistItem> _playlist = new List<PlaylistItem>();
private int _currentPlaylistIndex;
public bool SupportsMediaControl => IsSessionActive;
private bool _disposed;
public PlayToController(
SessionInfo session,
@@ -84,18 +88,22 @@ namespace Emby.Dlna.PlayTo
_mediaEncoder = mediaEncoder;
}
public bool IsSessionActive => !_disposed && _device != null;
public bool SupportsMediaControl => IsSessionActive;
public void Init(Device device)
{
_device = device;
_device.OnDeviceUnavailable = OnDeviceUnavailable;
_device.PlaybackStart += _device_PlaybackStart;
_device.PlaybackProgress += _device_PlaybackProgress;
_device.PlaybackStopped += _device_PlaybackStopped;
_device.MediaChanged += _device_MediaChanged;
_device.PlaybackStart += OnDevicePlaybackStart;
_device.PlaybackProgress += OnDevicePlaybackProgress;
_device.PlaybackStopped += OnDevicePlaybackStopped;
_device.MediaChanged += OnDeviceMediaChanged;
_device.Start();
_deviceDiscovery.DeviceLeft += _deviceDiscovery_DeviceLeft;
_deviceDiscovery.DeviceLeft += OnDeviceDiscoveryDeviceLeft;
}
private void OnDeviceUnavailable()
@@ -111,7 +119,7 @@ namespace Emby.Dlna.PlayTo
}
}
void _deviceDiscovery_DeviceLeft(object sender, GenericEventArgs<UpnpDeviceInfo> e)
private void OnDeviceDiscoveryDeviceLeft(object sender, GenericEventArgs<UpnpDeviceInfo> e)
{
var info = e.Argument;
@@ -126,7 +134,7 @@ namespace Emby.Dlna.PlayTo
}
}
async void _device_MediaChanged(object sender, MediaChangedEventArgs e)
private async void OnDeviceMediaChanged(object sender, MediaChangedEventArgs e)
{
if (_disposed)
{
@@ -138,15 +146,18 @@ namespace Emby.Dlna.PlayTo
var streamInfo = StreamParams.ParseFromUrl(e.OldMediaInfo.Url, _libraryManager, _mediaSourceManager);
if (streamInfo.Item != null)
{
var positionTicks = GetProgressPositionTicks(e.OldMediaInfo, streamInfo);
var positionTicks = GetProgressPositionTicks(streamInfo);
ReportPlaybackStopped(e.OldMediaInfo, streamInfo, positionTicks);
await ReportPlaybackStopped(streamInfo, positionTicks).ConfigureAwait(false);
}
streamInfo = StreamParams.ParseFromUrl(e.NewMediaInfo.Url, _libraryManager, _mediaSourceManager);
if (streamInfo.Item == null) return;
if (streamInfo.Item == null)
{
return;
}
var newItemProgress = GetProgressInfo(e.NewMediaInfo, streamInfo);
var newItemProgress = GetProgressInfo(streamInfo);
await _sessionManager.OnPlaybackStart(newItemProgress).ConfigureAwait(false);
}
@@ -156,7 +167,7 @@ namespace Emby.Dlna.PlayTo
}
}
async void _device_PlaybackStopped(object sender, PlaybackStoppedEventArgs e)
private async void OnDevicePlaybackStopped(object sender, PlaybackStoppedEventArgs e)
{
if (_disposed)
{
@@ -167,11 +178,14 @@ namespace Emby.Dlna.PlayTo
{
var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager, _mediaSourceManager);
if (streamInfo.Item == null) return;
if (streamInfo.Item == null)
{
return;
}
var positionTicks = GetProgressPositionTicks(e.MediaInfo, streamInfo);
var positionTicks = GetProgressPositionTicks(streamInfo);
ReportPlaybackStopped(e.MediaInfo, streamInfo, positionTicks);
await ReportPlaybackStopped(streamInfo, positionTicks).ConfigureAwait(false);
var mediaSource = await streamInfo.GetMediaSource(CancellationToken.None).ConfigureAwait(false);
@@ -179,7 +193,7 @@ namespace Emby.Dlna.PlayTo
(_device.Duration == null ? (long?)null : _device.Duration.Value.Ticks) :
mediaSource.RunTimeTicks;
var playedToCompletion = (positionTicks.HasValue && positionTicks.Value == 0);
var playedToCompletion = positionTicks.HasValue && positionTicks.Value == 0;
if (!playedToCompletion && duration.HasValue && positionTicks.HasValue)
{
@@ -195,7 +209,7 @@ namespace Emby.Dlna.PlayTo
}
else
{
Playlist.Clear();
_playlist.Clear();
}
}
catch (Exception ex)
@@ -204,7 +218,7 @@ namespace Emby.Dlna.PlayTo
}
}
private async void ReportPlaybackStopped(uBaseObject mediaInfo, StreamParams streamInfo, long? positionTicks)
private async Task ReportPlaybackStopped(StreamParams streamInfo, long? positionTicks)
{
try
{
@@ -214,7 +228,6 @@ namespace Emby.Dlna.PlayTo
SessionId = _session.Id,
PositionTicks = positionTicks,
MediaSourceId = streamInfo.MediaSourceId
}).ConfigureAwait(false);
}
catch (Exception ex)
@@ -223,7 +236,7 @@ namespace Emby.Dlna.PlayTo
}
}
async void _device_PlaybackStart(object sender, PlaybackStartEventArgs e)
private async void OnDevicePlaybackStart(object sender, PlaybackStartEventArgs e)
{
if (_disposed)
{
@@ -236,7 +249,7 @@ namespace Emby.Dlna.PlayTo
if (info.Item != null)
{
var progress = GetProgressInfo(e.MediaInfo, info);
var progress = GetProgressInfo(info);
await _sessionManager.OnPlaybackStart(progress).ConfigureAwait(false);
}
@@ -247,7 +260,7 @@ namespace Emby.Dlna.PlayTo
}
}
async void _device_PlaybackProgress(object sender, PlaybackProgressEventArgs e)
private async void OnDevicePlaybackProgress(object sender, PlaybackProgressEventArgs e)
{
if (_disposed)
{
@@ -267,7 +280,7 @@ namespace Emby.Dlna.PlayTo
if (info.Item != null)
{
var progress = GetProgressInfo(e.MediaInfo, info);
var progress = GetProgressInfo(info);
await _sessionManager.OnPlaybackProgress(progress).ConfigureAwait(false);
}
@@ -278,7 +291,7 @@ namespace Emby.Dlna.PlayTo
}
}
private long? GetProgressPositionTicks(uBaseObject mediaInfo, StreamParams info)
private long? GetProgressPositionTicks(StreamParams info)
{
var ticks = _device.Position.Ticks;
@@ -290,13 +303,13 @@ namespace Emby.Dlna.PlayTo
return ticks;
}
private PlaybackStartInfo GetProgressInfo(uBaseObject mediaInfo, StreamParams info)
private PlaybackStartInfo GetProgressInfo(StreamParams info)
{
return new PlaybackStartInfo
{
ItemId = info.ItemId,
SessionId = _session.Id,
PositionTicks = GetProgressPositionTicks(mediaInfo, info),
PositionTicks = GetProgressPositionTicks(info),
IsMuted = _device.IsMuted,
IsPaused = _device.IsPaused,
MediaSourceId = info.MediaSourceId,
@@ -311,9 +324,7 @@ namespace Emby.Dlna.PlayTo
};
}
#region SendCommands
public async Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
public Task SendPlayCommand(PlayRequest command, CancellationToken cancellationToken)
{
_logger.LogDebug("{0} - Received PlayRequest: {1}", this._session.DeviceName, command.PlayCommand);
@@ -351,11 +362,12 @@ namespace Emby.Dlna.PlayTo
if (command.PlayCommand == PlayCommand.PlayLast)
{
Playlist.AddRange(playlist);
_playlist.AddRange(playlist);
}
if (command.PlayCommand == PlayCommand.PlayNext)
{
Playlist.AddRange(playlist);
_playlist.AddRange(playlist);
}
if (!command.ControllingUserId.Equals(Guid.Empty))
@@ -364,7 +376,7 @@ namespace Emby.Dlna.PlayTo
_session.DeviceName, _session.RemoteEndPoint, user);
}
await PlayItems(playlist).ConfigureAwait(false);
return PlayItems(playlist, cancellationToken);
}
private Task SendPlaystateCommand(PlaystateRequest command, CancellationToken cancellationToken)
@@ -372,7 +384,7 @@ namespace Emby.Dlna.PlayTo
switch (command.Command)
{
case PlaystateCommand.Stop:
Playlist.Clear();
_playlist.Clear();
return _device.SetStop(CancellationToken.None);
case PlaystateCommand.Pause:
@@ -388,10 +400,10 @@ namespace Emby.Dlna.PlayTo
return Seek(command.SeekPositionTicks ?? 0);
case PlaystateCommand.NextTrack:
return SetPlaylistIndex(_currentPlaylistIndex + 1);
return SetPlaylistIndex(_currentPlaylistIndex + 1, cancellationToken);
case PlaystateCommand.PreviousTrack:
return SetPlaylistIndex(_currentPlaylistIndex - 1);
return SetPlaylistIndex(_currentPlaylistIndex - 1, cancellationToken);
}
return Task.CompletedTask;
@@ -413,6 +425,7 @@ namespace Emby.Dlna.PlayTo
await _device.SetAvTransport(newItem.StreamUrl, GetDlnaHeaders(newItem), newItem.Didl, CancellationToken.None).ConfigureAwait(false);
return;
}
await SeekAfterTransportChange(newPosition, CancellationToken.None).ConfigureAwait(false);
}
}
@@ -427,14 +440,6 @@ namespace Emby.Dlna.PlayTo
return info.IsDirectStream;
}
#endregion
#region Playlist
private int _currentPlaylistIndex;
private readonly List<PlaylistItem> _playlist = new List<PlaylistItem>();
private List<PlaylistItem> Playlist => _playlist;
private void AddItemFromId(Guid id, List<BaseItem> list)
{
var item = _libraryManager.GetItemById(id);
@@ -444,7 +449,13 @@ namespace Emby.Dlna.PlayTo
}
}
private PlaylistItem CreatePlaylistItem(BaseItem item, User user, long startPostionTicks, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
private PlaylistItem CreatePlaylistItem(
BaseItem item,
User user,
long startPostionTicks,
string mediaSourceId,
int? audioStreamIndex,
int? subtitleStreamIndex)
{
var deviceInfo = _device.Properties;
@@ -452,7 +463,7 @@ namespace Emby.Dlna.PlayTo
_dlnaManager.GetDefaultProfile();
var mediaSources = item is IHasMediaSources
? (_mediaSourceManager.GetStaticMediaSources(item, true, user))
? _mediaSourceManager.GetStaticMediaSources(item, true, user)
: new List<MediaSourceInfo>();
var playlistItem = GetPlaylistItem(item, mediaSources, profile, _session.DeviceId, mediaSourceId, audioStreamIndex, subtitleStreamIndex);
@@ -460,8 +471,19 @@ namespace Emby.Dlna.PlayTo
playlistItem.StreamUrl = DidlBuilder.NormalizeDlnaMediaUrl(playlistItem.StreamInfo.ToUrl(_serverAddress, _accessToken));
var itemXml = new DidlBuilder(profile, user, _imageProcessor, _serverAddress, _accessToken, _userDataManager, _localization, _mediaSourceManager, _logger, _mediaEncoder)
.GetItemDidl(_config.GetDlnaConfiguration(), item, user, null, _session.DeviceId, new Filter(), playlistItem.StreamInfo);
var itemXml = new DidlBuilder(
profile,
user,
_imageProcessor,
_serverAddress,
_accessToken,
_userDataManager,
_localization,
_mediaSourceManager,
_logger,
_mediaEncoder,
_libraryManager)
.GetItemDidl(item, user, null, _session.DeviceId, new Filter(), playlistItem.StreamInfo);
playlistItem.Didl = itemXml;
@@ -571,30 +593,31 @@ namespace Emby.Dlna.PlayTo
/// Plays the items.
/// </summary>
/// <param name="items">The items.</param>
/// <returns></returns>
private async Task<bool> PlayItems(IEnumerable<PlaylistItem> items)
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns><c>true</c> on success.</returns>
private async Task<bool> PlayItems(IEnumerable<PlaylistItem> items, CancellationToken cancellationToken = default)
{
Playlist.Clear();
Playlist.AddRange(items);
_logger.LogDebug("{0} - Playing {1} items", _session.DeviceName, Playlist.Count);
_playlist.Clear();
_playlist.AddRange(items);
_logger.LogDebug("{0} - Playing {1} items", _session.DeviceName, _playlist.Count);
await SetPlaylistIndex(0).ConfigureAwait(false);
await SetPlaylistIndex(0, cancellationToken).ConfigureAwait(false);
return true;
}
private async Task SetPlaylistIndex(int index)
private async Task SetPlaylistIndex(int index, CancellationToken cancellationToken = default)
{
if (index < 0 || index >= Playlist.Count)
if (index < 0 || index >= _playlist.Count)
{
Playlist.Clear();
await _device.SetStop(CancellationToken.None);
_playlist.Clear();
await _device.SetStop(cancellationToken).ConfigureAwait(false);
return;
}
_currentPlaylistIndex = index;
var currentitem = Playlist[index];
var currentitem = _playlist[index];
await _device.SetAvTransport(currentitem.StreamUrl, GetDlnaHeaders(currentitem), currentitem.Didl, CancellationToken.None);
await _device.SetAvTransport(currentitem.StreamUrl, GetDlnaHeaders(currentitem), currentitem.Didl, cancellationToken).ConfigureAwait(false);
var streamInfo = currentitem.StreamInfo;
if (streamInfo.StartPositionTicks > 0 && EnableClientSideSeek(streamInfo))
@@ -603,10 +626,7 @@ namespace Emby.Dlna.PlayTo
}
}
#endregion
private bool _disposed;
/// <inheritdoc />
public void Dispose()
{
Dispose(true);
@@ -625,19 +645,17 @@ namespace Emby.Dlna.PlayTo
_device.Dispose();
}
_device.PlaybackStart -= _device_PlaybackStart;
_device.PlaybackProgress -= _device_PlaybackProgress;
_device.PlaybackStopped -= _device_PlaybackStopped;
_device.MediaChanged -= _device_MediaChanged;
_deviceDiscovery.DeviceLeft -= _deviceDiscovery_DeviceLeft;
_device.PlaybackStart -= OnDevicePlaybackStart;
_device.PlaybackProgress -= OnDevicePlaybackProgress;
_device.PlaybackStopped -= OnDevicePlaybackStopped;
_device.MediaChanged -= OnDeviceMediaChanged;
_deviceDiscovery.DeviceLeft -= OnDeviceDiscoveryDeviceLeft;
_device.OnDeviceUnavailable = null;
_device = null;
_disposed = true;
}
private static readonly CultureInfo _usCulture = CultureInfo.ReadOnly(new CultureInfo("en-US"));
private Task SendGeneralCommand(GeneralCommand command, CancellationToken cancellationToken)
{
if (Enum.TryParse(command.Name, true, out GeneralCommandType commandType))
@@ -696,6 +714,7 @@ namespace Emby.Dlna.PlayTo
throw new ArgumentException("Volume argument cannot be null");
}
default:
return Task.CompletedTask;
}
@@ -714,7 +733,7 @@ namespace Emby.Dlna.PlayTo
if (info.Item != null)
{
var newPosition = GetProgressPositionTicks(media, info) ?? 0;
var newPosition = GetProgressPositionTicks(info) ?? 0;
var user = !_session.UserId.Equals(Guid.Empty) ? _userManager.GetUserById(_session.UserId) : null;
var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, newIndex, info.SubtitleStreamIndex);
@@ -739,7 +758,7 @@ namespace Emby.Dlna.PlayTo
if (info.Item != null)
{
var newPosition = GetProgressPositionTicks(media, info) ?? 0;
var newPosition = GetProgressPositionTicks(info) ?? 0;
var user = !_session.UserId.Equals(Guid.Empty) ? _userManager.GetUserById(_session.UserId) : null;
var newItem = CreatePlaylistItem(info.Item, user, newPosition, info.MediaSourceId, info.AudioStreamIndex, newIndex);
@@ -781,12 +800,15 @@ namespace Emby.Dlna.PlayTo
public int? SubtitleStreamIndex { get; set; }
public string DeviceProfileId { get; set; }
public string DeviceId { get; set; }
public string MediaSourceId { get; set; }
public string LiveStreamId { get; set; }
public BaseItem Item { get; set; }
private MediaSourceInfo MediaSource;
private IMediaSourceManager _mediaSourceManager;
@@ -853,8 +875,11 @@ namespace Emby.Dlna.PlayTo
return request;
}
var index = url.IndexOf('?');
if (index == -1) return request;
var index = url.IndexOf('?', StringComparison.Ordinal);
if (index == -1)
{
return request;
}
var query = url.Substring(index + 1);
Dictionary<string, string> values = QueryHelpers.ParseQuery(query).ToDictionary(kv => kv.Key, kv => kv.Value.ToString());
@@ -901,7 +926,8 @@ namespace Emby.Dlna.PlayTo
return 0;
}
public Task SendMessage<T>(string name, string messageId, T data, ISessionController[] allControllers, CancellationToken cancellationToken)
/// <inheritdoc />
public Task SendMessage<T>(string name, Guid messageId, T data, CancellationToken cancellationToken)
{
if (_disposed)
{
@@ -917,10 +943,12 @@ namespace Emby.Dlna.PlayTo
{
return SendPlayCommand(data as PlayRequest, cancellationToken);
}
if (string.Equals(name, "PlayState", StringComparison.OrdinalIgnoreCase))
{
return SendPlaystateCommand(data as PlaystateRequest, cancellationToken);
}
if (string.Equals(name, "GeneralCommand", StringComparison.OrdinalIgnoreCase))
{
return SendGeneralCommand(data as GeneralCommand, cancellationToken);
+17 -8
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Globalization;
@@ -24,7 +23,7 @@ using Microsoft.Extensions.Logging;
namespace Emby.Dlna.PlayTo
{
public class PlayToManager : IDisposable
public sealed class PlayToManager : IDisposable
{
private readonly ILogger _logger;
private readonly ISessionManager _sessionManager;
@@ -79,9 +78,15 @@ namespace Emby.Dlna.PlayTo
var info = e.Argument;
if (!info.Headers.TryGetValue("USN", out string usn)) usn = string.Empty;
if (!info.Headers.TryGetValue("USN", out string usn))
{
usn = string.Empty;
}
if (!info.Headers.TryGetValue("NT", out string nt)) nt = string.Empty;
if (!info.Headers.TryGetValue("NT", out string nt))
{
nt = string.Empty;
}
string location = info.Location.ToString();
@@ -89,7 +94,7 @@ namespace Emby.Dlna.PlayTo
if (usn.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1 &&
nt.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1)
{
//_logger.LogDebug("Upnp device {0} does not contain a MediaRenderer device (0).", location);
// _logger.LogDebug("Upnp device {0} does not contain a MediaRenderer device (0).", location);
return;
}
@@ -113,7 +118,6 @@ namespace Emby.Dlna.PlayTo
}
catch (OperationCanceledException)
{
}
catch (Exception ex)
{
@@ -134,6 +138,7 @@ namespace Emby.Dlna.PlayTo
usn = usn.Substring(index);
found = true;
}
index = usn.IndexOf("::", StringComparison.OrdinalIgnoreCase);
if (index != -1)
{
@@ -185,7 +190,8 @@ namespace Emby.Dlna.PlayTo
serverAddress = _appHost.GetLocalApiUrl(info.LocalIpAddress);
}
controller = new PlayToController(sessionInfo,
controller = new PlayToController(
sessionInfo,
_sessionManager,
_libraryManager,
_logger,
@@ -232,6 +238,7 @@ namespace Emby.Dlna.PlayTo
}
}
/// <inheritdoc />
public void Dispose()
{
_deviceDiscovery.DeviceDiscovered -= OnDeviceDiscoveryDeviceDiscovered;
@@ -242,9 +249,11 @@ namespace Emby.Dlna.PlayTo
}
catch
{
}
_sessionLock.Dispose();
_disposeCancellationTokenSource.Dispose();
_disposed = true;
}
}
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
+1 -1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
@@ -13,6 +12,7 @@ namespace Emby.Dlna.PlayTo
public class MediaChangedEventArgs : EventArgs
{
public uBaseObject OldMediaInfo { get; set; }
public uBaseObject NewMediaInfo { get; set; }
}
}
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.IO;
using System.Linq;
+3 -9
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Globalization;
@@ -33,18 +32,15 @@ namespace Emby.Dlna.PlayTo
DeviceService service,
string command,
string postData,
bool logRequest = true,
string header = null)
string header = null,
CancellationToken cancellationToken = default)
{
var cancellationToken = CancellationToken.None;
var url = NormalizeServiceUrl(baseUrl, service.ControlUrl);
using (var response = await PostSoapDataAsync(
url,
$"\"{service.ServiceType}#{command}\"",
postData,
header,
logRequest,
cancellationToken)
.ConfigureAwait(false))
using (var stream = response.Content)
@@ -64,7 +60,7 @@ namespace Emby.Dlna.PlayTo
return serviceUrl;
}
if (!serviceUrl.StartsWith("/"))
if (!serviceUrl.StartsWith("/", StringComparison.Ordinal))
{
serviceUrl = "/" + serviceUrl;
}
@@ -95,7 +91,6 @@ namespace Emby.Dlna.PlayTo
using (await _httpClient.SendAsync(options, new HttpMethod("SUBSCRIBE")).ConfigureAwait(false))
{
}
}
@@ -128,7 +123,6 @@ namespace Emby.Dlna.PlayTo
string soapAction,
string postData,
string header,
bool logRequest,
CancellationToken cancellationToken)
{
if (soapAction[0] != '\"')
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
namespace Emby.Dlna.PlayTo
{
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Collections.Generic;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using System.Xml.Linq;
+2 -1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
@@ -45,10 +44,12 @@ namespace Emby.Dlna.PlayTo
{
return MediaBrowser.Model.Entities.MediaType.Audio;
}
if (classType.IndexOf(MediaBrowser.Model.Entities.MediaType.Video, StringComparison.Ordinal) != -1)
{
return MediaBrowser.Model.Entities.MediaType.Video;
}
if (classType.IndexOf("image", StringComparison.Ordinal) != -1)
{
return MediaBrowser.Model.Entities.MediaType.Photo;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Xml.Linq;
+2 -3
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System.Linq;
using MediaBrowser.Model.Dlna;
@@ -13,7 +12,7 @@ namespace Emby.Dlna.Profiles
{
Name = "Generic Device";
ProtocolInfo = "http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*image/jpeg:*,http-get:*image/png:*,http-get:*image/gif:*,http-get:*image/tiff:*";
ProtocolInfo = "http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*:image/jpeg:*,http-get:*:image/png:*,http-get:*:image/gif:*,http-get:*:image/tiff:*";
Manufacturer = "Jellyfin";
ModelDescription = "UPnP/AV 1.0 Compliant Media Server";
@@ -165,7 +164,7 @@ namespace Emby.Dlna.Profiles
public void AddXmlRootAttribute(string name, string value)
{
var atts = XmlRootAttributes ?? new XmlAttribute[] { };
var atts = XmlRootAttributes ?? System.Array.Empty<XmlAttribute>();
var list = atts.ToList();
list.Add(new XmlAttribute
+1 -2
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -29,7 +28,7 @@ namespace Emby.Dlna.Profiles
},
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = System.Array.Empty<ResponseProfile>();
}
}
}
+1 -2
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -124,7 +123,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = System.Array.Empty<ResponseProfile>();
}
}
}
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
+1 -2
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -73,7 +72,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = System.Array.Empty<ResponseProfile>();
}
}
}
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
+1 -2
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -38,7 +37,7 @@ namespace Emby.Dlna.Profiles
},
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = System.Array.Empty<ResponseProfile>();
}
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using MediaBrowser.Model.Dlna;
namespace Emby.Dlna.Profiles
@@ -38,7 +38,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = Array.Empty<ResponseProfile>();
}
}
}
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
-1
View File
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
@@ -1,5 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using MediaBrowser.Model.Dlna;
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using MediaBrowser.Model.Dlna;
namespace Emby.Dlna.Profiles
@@ -224,7 +224,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = Array.Empty<ResponseProfile>();
}
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using MediaBrowser.Model.Dlna;
namespace Emby.Dlna.Profiles
@@ -224,7 +224,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = Array.Empty<ResponseProfile>();
}
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
#pragma warning disable CS1591
#pragma warning disable SA1600
using System;
using MediaBrowser.Model.Dlna;
namespace Emby.Dlna.Profiles
@@ -212,7 +212,7 @@ namespace Emby.Dlna.Profiles
}
};
ResponseProfiles = new ResponseProfile[] { };
ResponseProfiles = Array.Empty<ResponseProfile>();
}
}
}

Some files were not shown because too many files have changed in this diff Show More