2020-06-06 00:14:42 -04:00
|
|
|
|
using System;
|
2020-06-10 20:40:25 -04:00
|
|
|
|
using System.Collections.Generic;
|
2020-06-06 01:29:13 -04:00
|
|
|
|
using Newtonsoft.Json;
|
2020-06-10 20:40:25 -04:00
|
|
|
|
using JsonConverter = Newtonsoft.Json.JsonConverter;
|
2020-06-06 00:14:42 -04:00
|
|
|
|
|
|
|
|
|
namespace BirdsiteLive.ActivityPub
|
|
|
|
|
{
|
|
|
|
|
public class Actor
|
|
|
|
|
{
|
2020-06-06 01:29:13 -04:00
|
|
|
|
//[JsonPropertyName("@context")]
|
|
|
|
|
[JsonProperty("@context")]
|
2020-06-10 20:40:25 -04:00
|
|
|
|
[JsonConverter(typeof(ContextArrayConverter))]
|
|
|
|
|
public string[] context { get; set; } = new[] { "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1" };
|
2020-06-06 00:14:42 -04:00
|
|
|
|
public string id { get; set; }
|
|
|
|
|
public string type { get; set; }
|
|
|
|
|
public string preferredUsername { get; set; }
|
|
|
|
|
public string name { get; set; }
|
|
|
|
|
public string summary { get; set; }
|
|
|
|
|
public string url { get; set; }
|
|
|
|
|
public string inbox { get; set; }
|
|
|
|
|
public PublicKey publicKey { get; set; }
|
|
|
|
|
public Image icon { get; set; }
|
|
|
|
|
public Image image { get; set; }
|
|
|
|
|
}
|
2020-06-10 20:40:25 -04:00
|
|
|
|
|
|
|
|
|
public class ContextArrayConverter : JsonConverter
|
|
|
|
|
{
|
|
|
|
|
public override bool CanWrite { get { return false; } }
|
|
|
|
|
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
|
|
|
|
|
{
|
|
|
|
|
var result = new List<string>();
|
|
|
|
|
|
|
|
|
|
var list = serializer.Deserialize<List<object>>(reader);
|
|
|
|
|
foreach (var l in list)
|
|
|
|
|
{
|
|
|
|
|
if (l is string s)
|
|
|
|
|
result.Add(s);
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var str = JsonConvert.SerializeObject(l);
|
|
|
|
|
result.Add(str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result.ToArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override bool CanConvert(Type objectType)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-06-06 00:14:42 -04:00
|
|
|
|
}
|