geekbot/Geekbot.net/Lib/Media/MediaProvider.cs

133 lines
4.3 KiB
C#
Raw Normal View History

using System;
using System.IO;
using Geekbot.net.Lib.Logger;
namespace Geekbot.net.Lib.Media
{
public class MediaProvider : IMediaProvider
{
private readonly Random _random;
private readonly IGeekbotLogger _logger;
private string[] _pandaImages;
private string[] _croissantImages;
private string[] _squirrelImages;
private string[] _pumpkinImages;
private string[] _turtlesImages;
2018-03-28 21:28:16 +02:00
private string[] _pinguinImages;
2018-03-28 22:14:07 +02:00
private string[] _foxImages;
2019-05-01 18:22:44 +02:00
private string[] _dabImages;
public MediaProvider(IGeekbotLogger logger)
{
_random = new Random();
_logger = logger;
logger.Information(LogSource.Geekbot, "Loading Media Files");
2020-05-21 15:55:04 +02:00
;
LoadPandas();
BakeCroissants();
LoadSquirrels();
LoadPumpkins();
LoadTurtles();
2018-03-28 21:28:16 +02:00
LoadPinguins();
2018-03-28 22:14:07 +02:00
LoadFoxes();
2019-05-01 18:22:44 +02:00
LoadDab();
}
private void LoadPandas()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/pandas"));
_pandaImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_pandaImages.Length} Panda Images");
}
private void BakeCroissants()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/croissant"));
_croissantImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_croissantImages.Length} Croissant Images");
}
private void LoadSquirrels()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/squirrel"));
_squirrelImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_squirrelImages.Length} Squirrel Images");
}
private void LoadPumpkins()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/pumpkin"));
_pumpkinImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_pumpkinImages.Length} Pumpkin Images");
}
private void LoadTurtles()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/turtles"));
_turtlesImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_turtlesImages.Length} Turtle Images");
}
2018-03-28 21:28:16 +02:00
private void LoadPinguins()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/pinguins"));
_pinguinImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_pinguinImages.Length} Pinguin Images");
2018-03-28 21:28:16 +02:00
}
2018-03-28 22:14:07 +02:00
private void LoadFoxes()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/foxes"));
_foxImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_foxImages.Length} Foxes Images");
2018-03-28 22:14:07 +02:00
}
2019-05-01 18:22:44 +02:00
private void LoadDab()
{
var rawLinks = File.ReadAllText(Path.GetFullPath("./Storage/dab"));
_dabImages = rawLinks.Split("\n");
_logger.Trace(LogSource.Geekbot, $"Loaded {_dabImages.Length} Dab Images");
}
2020-05-21 15:55:04 +02:00
2018-04-30 23:44:19 +02:00
public string GetPanda()
{
return _pandaImages[_random.Next(0, _pandaImages.Length)];
}
2018-04-30 23:44:19 +02:00
public string GetCrossant()
{
return _croissantImages[_random.Next(0, _croissantImages.Length)];
}
2018-04-30 23:44:19 +02:00
public string GetSquirrel()
{
return _squirrelImages[_random.Next(0, _squirrelImages.Length)];
}
2018-04-30 23:44:19 +02:00
public string GetPumpkin()
{
return _pumpkinImages[_random.Next(0, _pumpkinImages.Length)];
}
2018-04-30 23:44:19 +02:00
public string GetTurtle()
{
return _turtlesImages[_random.Next(0, _turtlesImages.Length)];
}
2018-03-28 21:28:16 +02:00
2018-04-30 23:44:19 +02:00
public string GetPinguin()
2018-03-28 21:28:16 +02:00
{
return _pinguinImages[_random.Next(0, _pinguinImages.Length)];
}
2018-03-28 22:14:07 +02:00
2018-04-30 23:44:19 +02:00
public string GetFox()
2018-03-28 22:14:07 +02:00
{
return _foxImages[_random.Next(0, _foxImages.Length)];
}
2019-05-01 18:22:44 +02:00
public string GetDab()
{
return _dabImages[_random.Next(0, _dabImages.Length)];
}
}
}