VeeFriends.WikiImporter
5.0.11
See the version list below for details.
dotnet add package VeeFriends.WikiImporter --version 5.0.11
NuGet\Install-Package VeeFriends.WikiImporter -Version 5.0.11
<PackageReference Include="VeeFriends.WikiImporter" Version="5.0.11" />
paket add VeeFriends.WikiImporter --version 5.0.11
#r "nuget: VeeFriends.WikiImporter, 5.0.11"
// Install VeeFriends.WikiImporter as a Cake Addin #addin nuget:?package=VeeFriends.WikiImporter&version=5.0.11 // Install VeeFriends.WikiImporter as a Cake Tool #tool nuget:?package=VeeFriends.WikiImporter&version=5.0.11
VeeFriends.WikiImporter 📘🌍
VeeFriends.WikiImporter is a .NET library designed to automate the import and transformation of character data from ClickUp into a structured format, incorporating AI-driven enhancements and media assets. The library integrates with multiple services, including Google Drive, Cloudinary, and ChatGPT, to enrich character data with link previews, images, and more.
Features
- Automated import of character data from ClickUp
- AI-driven content processing via ChatGPT
- Integration with Google Drive for media assets
- Cloudinary support for optimized image storage
- Link preview generation for social and media content
- Caching and error handling for efficient processing
- Dependency Injection support for seamless integration
Installation
Install the VeeFriends.WikiImporter NuGet package in your project:
dotnet add package VeeFriends.WikiImporter
Usage
1. Configuration
Configure the necessary services in your Startup.cs
or Program.cs
file:
using Microsoft.Extensions.DependencyInjection;
using VeeFriends.WikiImporter;
var services = new ServiceCollection();
services.AddWikiImporter(
configureChatGpt: options => { options.ApiKey = "your-api-key"; options.Model = "gpt-4"; },
configureSystemPrompt: options => { options.Prompt = "Your system prompt here"; },
configureClickUp: options => { options.ApiKey = "your-clickup-api-key"; },
configureCloudinary: options => { options.CloudName = "your-cloudinary-name"; },
configureGoogleDrive: options => { options.ApiKey = "your-google-drive-api-key"; },
linkPreviewOptions: options => { options.ApiKey = "your-link-preview-api-key"; },
configureDZineAi: options => { options.ApiKey = "your-dzine-ai-api-key"; }
);
2. Executing an Import
Inject the CharacterImporter
service and call ExecuteImport
to start importing character data:
public class WikiImportService
{
private readonly CharacterImporter _characterImporter;
public WikiImportService(CharacterImporter characterImporter)
{
_characterImporter = characterImporter;
}
public async Task ImportCharactersAsync()
{
var importOptions = new ImportOptions
{
OnProgress = (progress, _) => Console.WriteLine($"Progress: {progress}%"),
OnError = (error, _) => Console.WriteLine($"Error: {error.Message}"),
DelayBetweenRequests = TimeSpan.FromSeconds(1),
SkipCache = false
};
await _characterImporter.ExecuteImport(importOptions, CancellationToken.None);
}
}
3. Error Handling
The library provides structured error handling using logging and event-driven error reporting:
try
{
await _characterImporter.ExecuteImport(importOptions, CancellationToken.None);
}
catch (Exception ex)
{
Console.WriteLine($"Import failed: {ex.Message}");
}
Extending the Library
Adding a New Data Source
To extend the importer with a new data source:
- Implement a new data provider service that retrieves content.
- Modify
CharacterImporter
to include the new source. - Integrate processing logic using
ModifyWithGoogleDrive
orModifyWithLinkPreview
patterns. - Register the new service in
ServiceCollectionExtensions
.
Dependencies
VeeFriends.WikiImporter relies on several external services:
- ClickUp: For retrieving character wiki pages
- ChatGPT: For AI-driven text processing
- Google Drive: For media file storage and retrieval
- Cloudinary: For optimized image hosting
- Link Preview: For generating link previews of media content
- Microsoft.Extensions.DependencyInjection: For dependency injection support
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- CloudinaryDotNet (>= 1.27.4)
- Google.Apis.Drive.v3 (>= 1.69.0.3674)
- LinkPreview (>= 1.1.2)
- Microsoft.SemanticKernel.Connectors.OpenAI (>= 1.37.0)
- SixLabors.Fonts (>= 2.1.2)
- SixLabors.ImageSharp (>= 3.1.6)
- SixLabors.ImageSharp.Drawing (>= 2.1.5)
- Slugify.Core (>= 4.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.