168 Commits

Author SHA1 Message Date
gnattu
1a7c2299c6 Catch IOExceptions for GetFileSystemMetadata
Our `GetFileSystemEntries` method will throw when enumerating the file system, but its callers might consider the unhandled exceptions as the whole path is not available. This would cause a single problematic file to fail the enumeration, and could lead to unexpected side effects.

HandleIOException gracefully by marking the files throwing as not exist to let the caller skip that file.
2025-01-19 00:40:13 +08:00
Brian Howe
03aa37731b
Watch library directories with perm errors (#10684) 2024-09-19 07:12:32 -06:00
Tim Eisele
c56dbc1c44
Enhance Trickplay (#11883) 2024-09-07 11:23:48 -06:00
Bond-009
c666f9d050
Use real temp dir instead of cache dir for temp files (#12226) 2024-07-15 08:44:14 -04:00
Shadowghost
6734450d40 Backport pull request #12025 from jellyfin/release-10.9.z
Fix empty image folder removal for legacy locations

Original-merge: 476dc01f4d5bf0fdf391935ef0759b0583bf7026

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-06-24 20:28:58 -04:00
gnattu
5ac518b02a Backport pull request #11570 from jellyfin/release-10.9.z
Fix absolute path checking on windows

Original-merge: 6689d837d6dcfa0925efdbd9c76a7e1fe4f7cc54

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Joshua M. Boniface <joshua@boniface.me>
2024-05-13 12:47:35 -04:00
Claus Vium
239727e896
fix: skip library folders that are inaccessible or empty (#9291) 2024-03-18 09:09:00 -06:00
Patrick Barron
4c7eca9313 Use IHostApplicationLifetime to start library monitor 2024-02-07 10:52:36 -05:00
Patrick Barron
41de6d1741 Move StreamHelper to LiveTv project 2024-01-09 11:57:55 -05:00
Stepan Goremykin
8d7e4229ca Merge branch 'master' into fix-resharper-warnings
# Conflicts:
#	Emby.Server.Implementations/Net/SocketFactory.cs
#	RSSDP/SsdpCommunicationsServer.cs
#	RSSDP/SsdpDeviceLocator.cs
#	RSSDP/SsdpDevicePublisher.cs
2023-10-12 20:11:16 +02:00
Stepan Goremykin
8ea812b65d Reduce string literal length by using verbatim string 2023-10-08 00:26:12 +02:00
Stepan Goremykin
a3d3ec7e0b Remove redundant SuppressFinalize call 2023-10-07 23:41:45 +02:00
Bond_009
b176beb88e Reduce string allocations
Some simple changes to reduce the number of allocated strings
2023-10-06 01:04:25 +02:00
Patrick Barron
78e00578c2 Use DI for IFileSystem 2023-10-03 10:25:14 -04:00
Bond_009
b8f42573c4 Address review comments 2023-09-18 20:50:05 +02:00
Bond_009
767a42fbdb Minor LibraryMonitor improvements
* Enable nullable
* Add a fast return to ReportFileSystemChanged when path should be ignored
* Use Span overloads of Path.* functions where possible
* IFileSystem: remove NormalizePath as Path.TrimEndingDirectorySeparator already checks if it's a root path
2023-09-13 17:30:50 +02:00
Ronan Charles-Lorel
4dc87a6f93
Align indentation on bottom brace of new list
Should stop error SA1137 in debug build
2023-07-01 03:37:18 +02:00
Ronan Charles-Lorel
c21140eeb5
Formatting
Fixes debug build?

Co-authored-by: Bond-009 <bond.009@outlook.com>
2023-07-01 03:24:19 +02:00
Ronan Charles-Lorel
07c142d5bd
Moving invalid chars list at class level with a better name 2023-06-29 16:04:45 +02:00
Ronan Charles-Lorel
46763b7661
Remove call to Path.GetInvalidFileNameChars
Superseded by a static char list to avoid platform-dependent issues
2023-06-29 15:21:39 +02:00
Ronan Charles-Lorel
e108183b13
Merge branch 'jellyfin:master' into master 2023-06-29 15:08:52 +02:00
Bond-009
756ee38d01
Remove ExtendedFileSystemInfo (#9749) 2023-05-10 17:39:57 -06:00
Ronan Charles-Lorel
31ac861b85
Formatting 2023-01-31 15:47:47 +01:00
Ronan Charles-Lorel
a2ac791bb7
Add a way to add more invalid characters when sanitizing a filename 2023-01-31 15:20:57 +01:00
Claus Vium
760b7f8fca
Merge pull request #8922 from Bond-009/distinctby
Use DistinctBy introduced in .NET 6
2022-12-19 20:13:48 +01:00
Bond-009
497d8c4957
Use Order() introduced in .NET 7 (#8923) 2022-12-19 09:30:00 -07:00
Bond_009
6481376b81 Use DistinctBy introduced in .NET 6 2022-12-19 15:21:42 +01:00
Bond_009
b366dc2e6e Use ArgumentException.ThrowIfNullOrEmpty 2022-12-07 16:43:59 +01:00
Bond_009
52194f56b5 Replace != null with is not null 2022-12-05 15:01:13 +01:00
Bond_009
c7d50d640e Replace == null with is null 2022-12-05 15:00:20 +01:00
jgriff6
c2c286be6e Remove unnecessary IsPathLocked function 2022-10-25 02:27:22 +01:00
ignacio laborde
c6bf6e00de Remove unnecessary ToList usage 2022-10-25 00:38:57 +01:00
Joshua M. Boniface
3515c76ca1 Merge pull request #7724 from jtcasper/perms
(cherry picked from commit 884a59da07420708774eed25286950b14153c3dd)
Signed-off-by: Joshua Boniface <joshua@boniface.me>
2022-05-20 23:49:38 -04:00
Cody Robibero
1b3e56bae3 Split DirectoryExists and FileExists 2022-03-02 19:55:44 -07:00
Cody Robibero
fc5c6c0404 Use IFileSystem 2022-02-28 17:14:33 -07:00
Bond_009
1c14c86b20 Fix some warnings 2022-02-14 14:46:04 +01:00
Cody Robibero
7bfc6b5679 Remove more warnings 2021-12-27 07:38:06 -07:00
Bond_009
ea8f40e84a More cleanup 2021-12-27 14:20:05 +00:00
Bond_009
474b035d99 Fix some warnings 2021-11-15 15:57:07 +01:00
Bond_009
1d19a5be61 Fix some warnings
down to 580
2021-11-09 22:29:33 +01:00
Bond_009
5726535a26 Fix some warnings
609 left
2021-11-09 13:14:31 +01:00
Bond_009
4dfb7b18ae Add some docs and tests 2021-11-07 22:32:08 +01:00
Bond_009
0f52896691 Fix UnauthorizedAccessException in GetDrives
```
[15:01:24] [ERR] [55] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /Environment/Drives.
System.UnauthorizedAccessException: Access to the path is denied.
 ---> System.IO.IOException: Operation not permitted
   --- End of inner exception stack trace ---
   at System.IO.DriveInfo.CheckStatfsResultAndThrowIfNecessary(Int32 result)
   at System.IO.DriveInfo.get_TotalSize()
   at Emby.Server.Implementations.IO.ManagedFileSystem.<>c.<GetDrives>b__32_0(DriveInfo d) in /home/bond/dev/jellyfin/Emby.Server.Implementations/IO/ManagedFileSystem.cs:line 583
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.ToList()
   at Emby.Server.Implementations.IO.ManagedFileSystem.GetDrives() in /home/bond/dev/jellyfin/Emby.Server.Implementations/IO/ManagedFileSystem.cs:line 583
   at Jellyfin.Api.Controllers.EnvironmentController.GetDrives() in /home/bond/dev/jellyfin/Jellyfin.Api/Controllers/EnvironmentController.cs:line 153
   at lambda_method559(Closure , Object , Object[] )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync()
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync()
```
2021-11-07 15:33:39 +01:00
Patrick Barron
c09ef74b51 Fix warnings in IO 2021-10-03 21:41:22 -04:00
Bond_009
a4eede29ab Use RandomAccess instead of a FileStream where it makes sense 2021-09-25 20:17:12 +02:00
Fernando Fernández
3d0b1ccae6
Remove all unused usings 2021-09-06 21:15:30 +02:00
Claus Vium
74fef6c05b
Merge pull request #6177 from Bond-009/async
Use async FileStreams where it makes sense
2021-09-06 13:55:34 +02:00
Bond_009
637e86478f Fix some warnings 2021-09-03 19:32:11 +02:00
Bond_009
e3dac4fda2 Use async FileStreams where it makes sense 2021-09-02 14:02:04 +02:00
Bond_009
8528e9bddb Improve platform checks 2021-07-12 20:21:51 +02:00