WolfwithSword.PicartoEventsLib
0.1.1
dotnet add package WolfwithSword.PicartoEventsLib --version 0.1.1
NuGet\Install-Package WolfwithSword.PicartoEventsLib -Version 0.1.1
<PackageReference Include="WolfwithSword.PicartoEventsLib" Version="0.1.1" />
<PackageVersion Include="WolfwithSword.PicartoEventsLib" Version="0.1.1" />
<PackageReference Include="WolfwithSword.PicartoEventsLib" />
paket add WolfwithSword.PicartoEventsLib --version 0.1.1
#r "nuget: WolfwithSword.PicartoEventsLib, 0.1.1"
#:package WolfwithSword.PicartoEventsLib@0.1.1
#addin nuget:?package=WolfwithSword.PicartoEventsLib&version=0.1.1
#tool nuget:?package=WolfwithSword.PicartoEventsLib&version=0.1.1
PicartoEventsLib
Unofficial library for Picarto Alert Events and Chat Messages
This unofficial library is intended for developing applications, overlays, and more interaction for content creators on Picarto.
As it remains unofficial, using the same websockets and public APIs are Picarto's existing overlays and chat widgets use, it is subject to change at any moment.
To see an example project where it is use, see SubathonManager
Features
- Real Time Chat Messages
- Real Time Alerts for Tips, Subscriptions, and Follows
- No API Keys needed, all you need is a channel name
- Manually instanced or via DependencyInjection for both chat and events clients.
Install
To install the core package, run
dotnet add package WolfwithSword.PicartoEventsLib
Examples
See Program.cs for a DependencyInjection approach, otherwise each object can be manually instantiated.
First, build your options
services.Configure<PicartoClientOptions>(opt =>
{
opt.Channel = "PICARTO_USER";
});
// fetch for manual use later if desired
var optionsWrapper = provider.GetRequiredService<Microsoft.Extensions.Options.IOptions<PicartoClientOptions>>();
var options = optionsWrapper.Value;
////////
// OR //
////////
PicartoClientOptions opts = new PicartoClientOptions();
opts.Channel = "PICARTO_USER";
// Then init the options to fetch your token
await opts.InitAsync();
Then, create your client(s)
services.AddLogging(cfg =>
{
cfg.AddSimpleConsole(opt =>
{
opt.SingleLine = true;
opt.TimestampFormat = "[HH:mm:ss] ";
});
cfg.SetMinimumLevel(LogLevel.Debug);
});
services.AddSingleton<PicartoEventsClient>();
services.AddSingleton<PicartoChatClient>();
...
var eventsClient = provider.GetRequiredService<PicartoEventsClient>();
var chatClient = provider.GetRequiredService<PicartoChatClient>();
// init options
await eventsClient.ConnectAsync();
await chatClient.ConnectAsync();
//////////////////////////
// OR Instance manually //
//////////////////////////
PicartoClientOptions opts = new PicartoClientOptions();
opts.Channel = "PICARTO_USER";
await opts.InitAsync();
// loggers instanced elsewhere or partial DI'd
_eventClient = new PicartoEventsClient(opts, _clientLogger);
_chatClient = new PicartoChatClient(opts, _chatLogger);
await _eventClient.ConnectAsync();
await _chatClient.ConnectAsync();
Subscribe to events
eventsClient.Connected += (_, args) => logger.LogInformation("EventsClient connected!");
eventsClient.Disconnected += (_, args) => logger.LogInformation("EventsClient disconnected!");
eventsClient.AlertReceived += (_, alert) =>
{
logger.LogInformation("Alert received: {Alert}", alert);
};
// Alert is either PicartoFollow, PicartoSubscription, PicartoTip
chatClient.Connected += (_, args) => logger.LogInformation("ChatClient connected!");
chatClient.Disconnected += (_, args) => logger.LogInformation("ChatClient disconnected!");
chatClient.MessageReceived += (_, msg) =>
{
logger.LogInformation("Chat Msg received: {Msg}: {Message}", msg, msg.Message);
};
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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 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. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Options (>= 9.0.6)
- System.Text.Json (>= 9.0.6)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- Microsoft.Extensions.Options (>= 9.0.6)
- System.Text.Json (>= 9.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial release of PicartoEventsLib.