Skip to content

Commit 3af501b

Browse files
committed
Add SoundCloud support
1 parent 233af11 commit 3af501b

10 files changed

Lines changed: 636 additions & 4 deletions

File tree

MiniMediaMetadataAPI.Application/Enums/ProviderType.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ public enum ProviderType
77
Discogs,
88
MusicBrainz,
99
Spotify,
10-
Tidal
10+
Tidal,
11+
SoundCloud
1112
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace MiniMediaMetadataAPI.Application.Models.Database.SoundCloud;
2+
3+
public class SoundCloudAlbumArtistModel
4+
{
5+
public long AlbumId { get; set; }
6+
public long ArtistId { get; set; }
7+
public string Role { get; set; }
8+
public string ArtistName { get; set; }
9+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.ComponentModel.DataAnnotations;
2+
3+
namespace MiniMediaMetadataAPI.Application.Models.Database.SoundCloud;
4+
5+
public class SoundCloudAlbumModel
6+
{
7+
public long Id { get; set; }
8+
public long UserId { get; set; }
9+
public string Title { get; set; }
10+
public string Description { get; set; }
11+
public long Duration { get; set; }
12+
public string EmbeddableBy { get; set; }
13+
public string Genre { get; set; }
14+
public string LabelName { get; set; }
15+
public string License { get; set; }
16+
public long LikesCount { get; set; }
17+
public bool ManagedByFeeds { get; set; }
18+
public bool Public { get; set; }
19+
public string PurchaseTitle { get; set; }
20+
public string PurchaseUrl { get; set; }
21+
public DateTime? ReleaseDate { get; set; }
22+
public long RepostsCount { get; set; }
23+
public string Sharing { get; set; }
24+
public string TagList { get; set; }
25+
public string SetType { get; set; }
26+
public bool IsAlbum { get; set; }
27+
public DateTime? PublishedAt { get; set; }
28+
public long TrackCount { get; set; }
29+
public string Uri { get; set; }
30+
public string PermalinkUrl { get; set; }
31+
public string Permalink { get; set; }
32+
public string ArtworkUrl { get; set; }
33+
public DateTime DisplayDate { get; set; }
34+
public DateTime? CreatedAt { get; set; }
35+
public DateTime? LastModified { get; set; }
36+
37+
public SoundCloudArtistModel Artist { get; set; }
38+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
namespace MiniMediaMetadataAPI.Application.Models.Database.SoundCloud;
2+
3+
public class SoundCloudArtistModel
4+
{
5+
public long Id { get; set; }
6+
public string Title { get; set; }
7+
public string FirstName { get; set; }
8+
public string LastName { get; set; }
9+
public string FullName { get; set; }
10+
public string CountryCode { get; set; }
11+
public string City { get; set; }
12+
public string AvatarUrl { get; set; }
13+
public string PermaLink { get; set; }
14+
public string Url { get; set; }
15+
public string Urn { get; set; }
16+
public string Username { get; set; }
17+
public bool Badge_ProUnlimited { get; set; }
18+
public bool Badge_Verified { get; set; }
19+
public DateTime? LastModified { get; set; }
20+
public DateTime LastSyncTime { get; set; }
21+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
namespace MiniMediaMetadataAPI.Application.Models.Database.SoundCloud;
2+
3+
public class SoundCloudTrackModel
4+
{
5+
public long Id { get; set; }
6+
public long UserId { get; set; }
7+
public string Title { get; set; }
8+
public string PlaylistName { get; set; }
9+
public string Caption { get; set; }
10+
public bool Commentable { get; set; }
11+
public int CommentCount { get; set; }
12+
public string Description { get; set; }
13+
public bool Downloadable { get; set; }
14+
public long DownloadCount { get; set; }
15+
public long Duration { get; set; }
16+
public long FullDuration { get; set; }
17+
public string EmbeddableBy { get; set; }
18+
public string Genre { get; set; }
19+
public bool HasDownloadsLeft { get; set; }
20+
public string LabelName { get; set; }
21+
public string License { get; set; }
22+
public long LikesCount { get; set; }
23+
public string Permalink { get; set; }
24+
public string PermalinkUrl { get; set; }
25+
public string PlaybackCount { get; set; }
26+
public bool Public { get; set; }
27+
public string PublisherMetadata_Artist { get; set; }
28+
public bool PublisherMetadata_ContainsMusic { get; set; }
29+
public string PublisherMetadata_Id { get; set; }
30+
public string PublisherMetadata_Urn { get; set; }
31+
public string PurchaseTitle { get; set; }
32+
public string PurchaseUrl { get; set; }
33+
public DateTime? ReleaseDate { get; set; }
34+
public long RepostsCount { get; set; }
35+
public string Sharing { get; set; }
36+
public string State { get; set; }
37+
public bool Streamable { get; set; }
38+
public string TagList { get; set; }
39+
public string Uri { get; set; }
40+
public string ArtworkUrl { get; set; }
41+
public string Visuals { get; set; }
42+
public string WaveformUrl { get; set; }
43+
public string DisplayDate { get; set; }
44+
public string MonetizationModel { get; set; }
45+
public string Policy { get; set; }
46+
public string Urn { get; set; }
47+
public DateTime? CreatedAt { get; set; }
48+
public DateTime? LastModified { get; set; }
49+
50+
public int TrackOrder { get; set; }
51+
52+
public SoundCloudAlbumModel Album { get; set; }
53+
public List<SoundCloudArtistModel> Artists { get; set; } = new List<SoundCloudArtistModel>();
54+
}

0 commit comments

Comments
 (0)