Skip to content

Commit fea8f34

Browse files
committed
Untested(!) fixes for OneDrive
1 parent a0e036a commit fea8f34

File tree

5 files changed

+47
-30
lines changed

5 files changed

+47
-30
lines changed

OneDrive/OneDriveServerSyncProvider.cs

Lines changed: 41 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
using System.Net;
66
using System.Threading;
77
using System.Threading.Tasks;
8-
using Interfaces.IO;
98
using MediaBrowser.Common.Net;
109
using MediaBrowser.Controller.Sync;
10+
using MediaBrowser.Model.IO;
1111
using MediaBrowser.Model.Logging;
1212
using MediaBrowser.Model.MediaInfo;
1313
using MediaBrowser.Model.Net;
@@ -105,23 +105,28 @@ public async Task<Stream> GetFile(string id, SyncTarget target, IProgress<double
105105
});
106106
}
107107

108-
public async Task<QueryResult<FileMetadata>> GetFiles(FileQuery query, SyncTarget target, CancellationToken cancellationToken)
108+
public async Task<QueryResult<FileSystemMetadata>> GetFiles(string[] pathParts, SyncTarget target, CancellationToken cancellationToken)
109109
{
110110
try
111111
{
112-
return await TryGetFiles(query, target, cancellationToken);
112+
return await TryGetFiles(pathParts, target, cancellationToken);
113113
}
114114
catch (HttpException ex)
115115
{
116116
if (ex.StatusCode == HttpStatusCode.NotFound)
117117
{
118-
return new QueryResult<FileMetadata>();
118+
return new QueryResult<FileSystemMetadata>();
119119
}
120120

121121
throw;
122122
}
123123
}
124124

125+
public Task<QueryResult<FileSystemMetadata>> GetFiles(SyncTarget target, CancellationToken cancellationToken)
126+
{
127+
return GetFiles(null, target, cancellationToken);
128+
}
129+
125130
public async Task<SyncedFileInfo> GetSyncedFileInfo(string id, SyncTarget target, CancellationToken cancellationToken)
126131
{
127132
_logger.Debug("Getting synced file info for {0} from {1}", id, target.Name);
@@ -215,74 +220,85 @@ private static async Task<byte[]> FillBuffer(Stream stream, CancellationToken ca
215220
return buffer;
216221
}
217222

218-
private async Task<QueryResult<FileMetadata>> TryGetFiles(FileQuery query, SyncTarget target, CancellationToken cancellationToken)
223+
private async Task<QueryResult<FileSystemMetadata>> TryGetFiles(string[] pathParts, SyncTarget target, CancellationToken cancellationToken)
219224
{
220225
var oneDriveCredentials = CreateOneDriveCredentials(target);
221226

222-
if (!string.IsNullOrEmpty(query.Id))
227+
////if (!string.IsNullOrEmpty(query.Id))
228+
////{
229+
//// return await GetFileById(query.Id, oneDriveCredentials, cancellationToken);
230+
////}
231+
232+
var fullPath = FindPathFromFileQuery(pathParts, target);
233+
234+
if (fullPath != null && fullPath.Length > 0)
223235
{
224-
return await GetFileById(query.Id, oneDriveCredentials, cancellationToken);
236+
return await GetFileByPath(fullPath, oneDriveCredentials, cancellationToken);
225237
}
226238

227-
if (query.FullPath != null && query.FullPath.Length > 0)
239+
return await GetAllFiles(oneDriveCredentials, cancellationToken);
240+
}
241+
242+
private string FindPathFromFileQuery(string[] parts, SyncTarget target)
243+
{
244+
if (parts != null && parts.Length > 0)
228245
{
229-
var path = GetFullPath(query.FullPath);
230-
return await GetFileByPath(path, oneDriveCredentials, cancellationToken);
246+
return GetFullPath(parts);
231247
}
232248

233-
return await GetAllFiles(oneDriveCredentials, cancellationToken);
249+
return string.Empty;
234250
}
235251

236-
private async Task<QueryResult<FileMetadata>> GetFileById(string id, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
252+
private async Task<QueryResult<FileSystemMetadata>> GetFileById(string id, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
237253
{
238254
var viewChangeResult = await _oneDriveApi.ViewChangeById(id, oneDriveCredentials, cancellationToken);
239-
var viewChanges = viewChangeResult.value.Select(CreateFileMetadata).ToArray();
255+
var viewChanges = viewChangeResult.value.Select(CreateFileSystemMetadata).ToArray();
240256

241-
return new QueryResult<FileMetadata>
257+
return new QueryResult<FileSystemMetadata>
242258
{
243259
Items = viewChanges,
244260
TotalRecordCount = viewChanges.Length
245261
};
246262
}
247263

248-
private async Task<QueryResult<FileMetadata>> GetFileByPath(string path, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
264+
private async Task<QueryResult<FileSystemMetadata>> GetFileByPath(string path, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
249265
{
250266
var viewChangeResult = await _oneDriveApi.ViewChangeByPath(path, oneDriveCredentials, cancellationToken);
251-
var viewChanges = viewChangeResult.value.Select(CreateFileMetadata).ToArray();
267+
var viewChanges = viewChangeResult.value.Select(CreateFileSystemMetadata).ToArray();
252268

253-
return new QueryResult<FileMetadata>
269+
return new QueryResult<FileSystemMetadata>
254270
{
255271
Items = viewChanges,
256272
TotalRecordCount = viewChanges.Length
257273
};
258274
}
259275

260-
private async Task<QueryResult<FileMetadata>> GetAllFiles(OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
276+
private async Task<QueryResult<FileSystemMetadata>> GetAllFiles(OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
261277
{
262278
var viewChangeResult = new ViewChangesResult { HasMoreChanges = true };
263-
var files = new List<FileMetadata>();
279+
var files = new List<FileSystemMetadata>();
264280

265281
while (viewChangeResult.HasMoreChanges)
266282
{
267283
viewChangeResult = await _oneDriveApi.ViewChanges(viewChangeResult.Token, oneDriveCredentials, cancellationToken);
268-
var newFiles = viewChangeResult.value.Select(CreateFileMetadata);
284+
var newFiles = viewChangeResult.value.Select(CreateFileSystemMetadata);
269285
files.AddRange(newFiles);
270286
}
271287

272-
return new QueryResult<FileMetadata>
288+
return new QueryResult<FileSystemMetadata>
273289
{
274290
Items = files.ToArray(),
275291
TotalRecordCount = files.Count
276292
};
277293
}
278294

279-
private FileMetadata CreateFileMetadata(ViewChange viewChange)
295+
private FileSystemMetadata CreateFileSystemMetadata(ViewChange viewChange)
280296
{
281-
return new FileMetadata
297+
return new FileSystemMetadata
282298
{
283-
Id = viewChange.id,
299+
FullName = viewChange.id,
284300
Name = viewChange.name,
285-
IsFolder = viewChange.folder != null
301+
IsDirectory = viewChange.folder != null
286302
};
287303
}
288304

OneDrive/RestServices/AddSyncTarget.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
using System.Collections.Generic;
2-
using ServiceStack;
2+
using MediaBrowser.Model.Services;
33

44
namespace OneDrive.RestServices
55
{

OneDrive/RestServices/DeleteSyncTarget.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using ServiceStack;
1+
using MediaBrowser.Model.Services;
22

33
namespace OneDrive.RestServices
44
{

OneDrive/RestServices/GetSyncTarget.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
using OneDrive.Configuration;
2-
using ServiceStack;
1+
using MediaBrowser.Model.Services;
2+
using OneDrive.Configuration;
33

44
namespace OneDrive.RestServices
55
{

OneDrive/RestServices/OneDriveRestfulService.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
using MediaBrowser.Controller.Net;
66
using OneDrive.Api;
77
using OneDrive.Configuration;
8+
using MediaBrowser.Model.Services;
89

910
namespace OneDrive.RestServices
1011
{
1112
[Authenticated]
12-
public class OneDriveRestfulService : IRestfulService
13+
public class OneDriveRestfulService : IService
1314
{
1415
private readonly IConfigurationRetriever _configurationRetriever;
1516
private readonly ILiveAuthenticationApi _liveAuthenticationApi;

0 commit comments

Comments
 (0)