mirror of
https://github.com/BililiveRecorder/BililiveRecorder.git
synced 2024-12-26 12:15:42 +08:00
33 lines
995 B
C#
33 lines
995 B
C#
using System;
|
|
using System.Linq;
|
|
using BililiveRecorder.Core.Api.Model;
|
|
|
|
namespace BililiveRecorder.Core.Api
|
|
{
|
|
internal static class ModelExtensions
|
|
{
|
|
private static readonly Random random = new Random();
|
|
|
|
public static void ChooseOne(this DanmuInfo danmuInfo, out string host, out int port, out string token)
|
|
{
|
|
const string DefaultServerHost = "broadcastlv.chat.bilibili.com";
|
|
const int DefaultServerPort = 2243;
|
|
|
|
token = danmuInfo.Token;
|
|
|
|
var list = danmuInfo.HostList.Where(x => !string.IsNullOrWhiteSpace(x.Host) && x.Host != DefaultServerHost && x.Port > 0).ToArray();
|
|
if (list.Length > 0)
|
|
{
|
|
var result = list[random.Next(list.Length)];
|
|
host = result.Host;
|
|
port = result.Port;
|
|
}
|
|
else
|
|
{
|
|
host = DefaultServerHost;
|
|
port = DefaultServerPort;
|
|
}
|
|
}
|
|
}
|
|
}
|