diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-05-13 00:46:00 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-05-13 00:46:00 +1000 |
| commit | 7b17bd8ef7ee8b3391fea3bf7a9e1866be92e81b (patch) | |
| tree | 6aaee80d7441cfe673b58f5b4d872c039174856f | |
| parent | ed0fb341e62a94e3e467a016b955b3808d2b15c4 (diff) | |
v0.16av0.16a
| -rw-r--r-- | GetMedia.cs | 72 | ||||
| -rw-r--r-- | PowerShell.csproj | 2 |
2 files changed, 73 insertions, 1 deletions
diff --git a/GetMedia.cs b/GetMedia.cs new file mode 100644 index 0000000..b01f38e --- /dev/null +++ b/GetMedia.cs @@ -0,0 +1,72 @@ +using HyperBooru.ApiClient; +using HyperBooru.ApiModels; +using System.Management.Automation; + +namespace HyperBooru.PowerShell; + +[Alias("ghbm")] +[Cmdlet(VerbsCommon.Get, "HyperBooruMedia")] +public class GetMediaCmdlet : PSCmdlet { + [Parameter(Mandatory = true)] + public HBSession Session { get; set; } + + [Parameter] + public SwitchParameter SelectIngest { get; set; } + [Parameter] + public SwitchParameter IncludeNsfw { get; set; } + [Parameter] + public Guid? ContinuationToken { get; set; } + [Parameter] + public int Count { get; set; } = 50; + [Parameter] + public ApiModels.SortOrder SortOrder { get; set; } + [Parameter(ParameterSetName = "All", Mandatory = true)] + public SwitchParameter All { get; set; } + [Parameter(ParameterSetName = "TagId", Mandatory = true)] + public Guid TagId { get; set; } + [Parameter(ParameterSetName = "Query", Mandatory = true)] + public string Query { get; set; } + + protected override void ProcessRecord() { + FeedRequest feedRequest; + + switch(ParameterSetName) { + case "TagId": + feedRequest = new FeedTagRequest { + SelectIngest = SelectIngest, + IncludeNsfw = IncludeNsfw, + ContinuationToken = ContinuationToken, + Count = Count, + SortOrder = SortOrder, + TagId = TagId + }; + break; + case "Query": + feedRequest = new FeedSearchRequest { + SelectIngest = SelectIngest, + IncludeNsfw = IncludeNsfw, + ContinuationToken = ContinuationToken, + Count = Count, + SortOrder = SortOrder, + Query = Query + }; + break; + default: + feedRequest = new FeedRequest { + SelectIngest = SelectIngest, + IncludeNsfw = IncludeNsfw, + ContinuationToken = ContinuationToken, + Count = Count, + SortOrder = SortOrder + }; + break; + } + + var mediaIds = Session.Feed.LoadChunkAsync(feedRequest) + .GetAwaiter() + .GetResult(); + + foreach(var m in mediaIds) + WriteObject(m); + } +} diff --git a/PowerShell.csproj b/PowerShell.csproj index 785c97e..6ea2479 100644 --- a/PowerShell.csproj +++ b/PowerShell.csproj @@ -9,7 +9,7 @@ <FileVersion>$(AssemblyVersion)</FileVersion>
<AssemblyTitle>HyperBooru.PowerShell</AssemblyTitle>
<Authors>Jake Mannens</Authors>
- <Version>0.15-alpha</Version>
+ <Version>0.16-alpha</Version>
</PropertyGroup>
<ItemGroup>
|
