ThemedWeatherImages.Functions
1.0.1
dotnet add package ThemedWeatherImages.Functions --version 1.0.1
NuGet\Install-Package ThemedWeatherImages.Functions -Version 1.0.1
<PackageReference Include="ThemedWeatherImages.Functions" Version="1.0.1" />
<PackageVersion Include="ThemedWeatherImages.Functions" Version="1.0.1" />
<PackageReference Include="ThemedWeatherImages.Functions" />
paket add ThemedWeatherImages.Functions --version 1.0.1
#r "nuget: ThemedWeatherImages.Functions, 1.0.1"
#:package ThemedWeatherImages.Functions@1.0.1
#addin nuget:?package=ThemedWeatherImages.Functions&version=1.0.1
#tool nuget:?package=ThemedWeatherImages.Functions&version=1.0.1
ThemedWeatherImages.Functions
Azure Functions (isolated worker) function classes and generation services for ThemedWeatherImages background image generation: scheduled and manual AI Horde submissions, webhook ingestion of finished images, and a budget kill switch.
This package contains function classes only — there is no Program.cs or host.json here. Reference it from your own Functions host project; the worker SDK discovers the [Function] classes from the referenced assembly.
Functions
SubmitImageRequestScheduled— timer-triggered; schedule comes from the%THEMED_WEATHER_IMAGES_GENERATION_SCHEDULE%app setting. Skips work while the budget kill switch is active.SubmitImageRequestManual— HTTP-triggered manual generation request.AihordeWebhookReceiver— HTTP-triggered webhook that stores finished AI Horde images in blob storage.DisableScheduledImageRequestBudgetKillSwitch— HTTP-triggered endpoint for Azure Cost Management budget alerts; disables scheduled generation for a cooldown window.
Hosting
Create a Functions host project that references this package plus Microsoft.Azure.Functions.Worker and Microsoft.Azure.Functions.Worker.Sdk, then register the services and supply your theme:
services.AddSingleton(new BlobServiceClient(blobConnString));
services.AddSingleton(new HordeRequestMappingStore(blobConnString));
services.AddSingleton<IScheduledImageRequestControlStore>(new ScheduledImageRequestControlStore(blobConnString));
services.AddSingleton<IGeneratedImageStore, BlobGeneratedImageStore>();
services.AddSingleton<IAiHordeClient, AiHordeClient>();
services.AddSingleton<ImageGenerationService>();
services.AddHttpClient();
services.AddThemedWeatherImageGenerationSupport(options =>
{
options.Theme.DisplayName = config["ThemedWeatherImages:Theme:DisplayName"];
options.Theme.SubjectName = config["ThemedWeatherImages:Theme:SubjectName"];
options.Theme.SubjectSlug = config["ThemedWeatherImages:Theme:SubjectSlug"];
options.Theme.ImageFileNamePrefix = config["ThemedWeatherImages:Theme:ImageFileNamePrefix"];
options.Images.BlobContainerName = config["ThemedWeatherImages:Images:BlobContainerName"];
options.Generation.PromptTemplate = config["ThemedWeatherImages:Generation:PromptTemplate"];
});
The configuration section names above are the host's choice — bind from whatever section your app owns. See ThemedWeatherImages.FunctionsHost in the repository for a complete reference host.
Required app settings
AzureWebJobsStorage— storage account used for blobs and control tables.AI_HORDE_API_KEY,AI_HORDE_API_URL— AI Horde access.WEBHOOK_URL— public URL of the webhook receiver.AIHORDE_ALLOWED_IMAGE_HOSTS— optional comma-separated allow list for image download hosts.THEMED_WEATHER_IMAGES_GENERATION_SCHEDULE— NCRONTAB expression for the scheduled trigger.AzureWebJobs.SubmitImageRequestScheduled.Disabled— standard switch to pause the timer function.
Storage defaults
Table names default to themedWeatherImagesControls (kill switch) and hordeRequestMappings (request mapping); both are constructor parameters if your deployment already uses different names. The blob container name always comes from Images.BlobContainerName in options.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Azure.Data.Tables (>= 12.10.0)
- Azure.Storage.Blobs (>= 12.24.0)
- Microsoft.Azure.Functions.Worker (>= 1.18.0)
- Microsoft.Azure.Functions.Worker.Extensions.Http (>= 3.2.0)
- Microsoft.Azure.Functions.Worker.Extensions.Timer (>= 4.3.1)
- ThemedWeatherImages (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.