twitch-agent/Program.cs

55 lines
2.1 KiB
C#
Raw Permalink Normal View History

using franz;
using System;
2021-10-24 01:25:17 -04:00
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using TwitchEventSub.Types.EventSubSubscription;
using Newtonsoft.Json;
2022-01-16 15:10:20 -05:00
using System.Net;
namespace twitcher
{
class Program
{
2022-01-16 15:10:20 -05:00
static TwitchEventSub.Receiver httpd;
static Config twitcherConf;
static Telefranz tf;
static HttpListener server;
static void Main(string[] args)
{
2022-01-16 15:10:20 -05:00
JsonConvert.DefaultSettings = () =>
{
var s = new JsonSerializerSettings();
s.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter());
return s;
};
if (!File.Exists("appsettings.json"))
{
Console.Error.WriteLine("appsettings.json was not found!");
twitcherConf = new Config();
File.WriteAllText("appsettings.json", JsonConvert.SerializeObject(twitcherConf, Formatting.Indented));
return;
}
twitcherConf = JsonConvert.DeserializeObject<Config>(File.ReadAllText("appsettings.json"));
2022-01-16 15:10:20 -05:00
var httpd = new Httpd(twitcherConf.port);
var theRunTask = httpd.go();
var token = OAuthTokenGetter.GetUser(httpd, twitcherConf.clientId, "localhost:8420/login");
//var token = OAuthTokenGetter.DoIt(client, twitcherConf.clientId, twitcherConf.clientSecret, new string[]{"channel:moderate"});
// Telefranz.Configure(name: twitcherConf.kafka_name, bootstrap_servers: twitcherConf.kafka_bootstrap);
// Task.WaitAll(Task.Delay(1000));
// tf = Telefranz.Instance;
2022-01-16 15:10:20 -05:00
//TODO: throw a request out somewhere asking for public url
//tf.ProduceMessage(new silver_messages.directorial.execute_command(){command = "ssl_expose", args = {twitcherConf.port.ToString()}});
2022-01-16 15:10:20 -05:00
var rec = new TwitchEventSub.Receiver(server, twitcherConf.clientId, twitcherConf.clientSecret, twitcherConf.public_uri);
var sm = new SilverMeddlistsSpecific(httpd, tf, twitcherConf.clientId);
2021-10-24 01:25:17 -04:00
Task.WaitAll(theRunTask);
}
}
}