Skip to content

Commit 0b23566

Browse files
authored
Detect Yandex.Disk cloud drive (#7406)
1 parent 98a7236 commit 0b23566

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/Common/CloudProvider.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public enum CloudProviders
4040
AppleCloud,
4141
AmazonDrive,
4242
Nextcloud,
43+
Yandex,
4344
Box
4445
}
4546
}

src/Files.Launcher/Helpers/CloudDrivesDetector.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,32 @@ public static async Task<List<CloudProvider>> DetectCloudDrives()
1616
{
1717
Extensions.IgnoreExceptions(DetectOneDrive, Program.Logger),
1818
Extensions.IgnoreExceptions(DetectSharepoint, Program.Logger),
19-
Extensions.IgnoreExceptions(DetectGenericCloudDrive, Program.Logger)
19+
Extensions.IgnoreExceptions(DetectGenericCloudDrive, Program.Logger),
20+
Extensions.IgnoreExceptions(DetectYandexDisk, Program.Logger),
2021
};
2122

2223
await Task.WhenAll(tasks);
2324

2425
return tasks.Where(o => o.Result != null).SelectMany(o => o.Result).OrderBy(o => o.ID.ToString()).ThenBy(o => o.Name).Distinct().ToList();
2526
}
2627

28+
private static Task<List<CloudProvider>> DetectYandexDisk()
29+
{
30+
var results = new List<CloudProvider>();
31+
using var yandexKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Yandex\Yandex.Disk.2");
32+
var syncedFolder = (string)yandexKey?.GetValue("RootFolder");
33+
if (syncedFolder != null)
34+
{
35+
results.Add(new CloudProvider()
36+
{
37+
ID = CloudProviders.Yandex,
38+
Name = $"Yandex Disk",
39+
SyncFolder = syncedFolder
40+
});
41+
}
42+
return Task.FromResult(results);
43+
}
44+
2745
private static Task<List<CloudProvider>> DetectGenericCloudDrive()
2846
{
2947
var results = new List<CloudProvider>();

0 commit comments

Comments
 (0)