diff --git a/OpenTween/Api/DataModel/MastodonAccount.cs b/OpenTween/Api/DataModel/MastodonAccount.cs new file mode 100644 index 000000000..3dfb2d88b --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonAccount.cs @@ -0,0 +1,73 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonAccount + { + [DataMember(Name = "id")] + public long Id { get; set; } + + [DataMember(Name = "username")] + public string Username { get; set; } + + [DataMember(Name = "acct")] + public string Acct { get; set; } + + [DataMember(Name = "display_name")] + public string DisplayName { get; set; } + + [DataMember(Name = "locked")] + public bool Locked { get; set; } + + [DataMember(Name = "created_at")] + public string CreatedAt { get; set; } + + [DataMember(Name = "followers_count")] + public int FollowersCount { get; set; } + + [DataMember(Name = "following_count")] + public int FollowingCount { get; set; } + + [DataMember(Name = "statuses_count")] + public int StatusesCount { get; set; } + + [DataMember(Name = "note")] + public string Note { get; set; } + + [DataMember(Name = "url")] + public string Url { get; set; } + + [DataMember(Name = "avatar")] + public string Avatar { get; set; } + + [DataMember(Name = "avatar_static")] + public string AvatarStatic { get; set; } + + [DataMember(Name = "header")] + public string Header { get; set; } + + [DataMember(Name = "header_static")] + public string HeaderStatic { get; set; } + } +} diff --git a/OpenTween/Api/DataModel/MastodonApplication.cs b/OpenTween/Api/DataModel/MastodonApplication.cs new file mode 100644 index 000000000..2898f7587 --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonApplication.cs @@ -0,0 +1,34 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonApplication + { + [DataMember(Name = "name")] + public string Name { get; set; } + + [DataMember(Name = "website")] // Nullable + public string Website { get; set; } + } +} diff --git a/OpenTween/Api/DataModel/MastodonAttachment.cs b/OpenTween/Api/DataModel/MastodonAttachment.cs new file mode 100644 index 000000000..32bba1c18 --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonAttachment.cs @@ -0,0 +1,46 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonAttachment + { + [DataMember(Name = "id")] + public long Id { get; set; } + + [DataMember(Name = "type")] + public string Type { get; set; } + + [DataMember(Name = "url")] + public string Url { get; set; } + + [DataMember(Name = "remote_url")] + public string RemoteUrl { get; set; } + + [DataMember(Name = "preview_url")] + public string PreviewUrl { get; set; } + + [DataMember(Name = "text_url")] + public string TextUrl { get; set; } + } +} diff --git a/OpenTween/Api/DataModel/MastodonMention.cs b/OpenTween/Api/DataModel/MastodonMention.cs new file mode 100644 index 000000000..3bc1af9dd --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonMention.cs @@ -0,0 +1,40 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonMention + { + [DataMember(Name = "url")] + public string Url { get; set; } + + [DataMember(Name = "username")] + public string Username { get; set; } + + [DataMember(Name = "acct")] + public string Acct { get; set; } + + [DataMember(Name = "id")] + public long Id { get; set; } + } +} diff --git a/OpenTween/Api/DataModel/MastodonStatus.cs b/OpenTween/Api/DataModel/MastodonStatus.cs new file mode 100644 index 000000000..0951ebe87 --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonStatus.cs @@ -0,0 +1,88 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonStatus + { + [DataMember(Name = "id")] + public long Id { get; set; } + + [DataMember(Name = "uri")] + public string Uri { get; set; } + + [DataMember(Name = "url")] + public string Url { get; set; } + + [DataMember(Name = "account")] + public MastodonAccount Account { get; set; } + + [DataMember(Name = "in_reply_to_id")] + public long? InReplyToId { get; set; } + + [DataMember(Name = "in_reply_to_account_id")] + public long? InReplyToAccountId { get; set; } + + [DataMember(Name = "reblog")] + public MastodonStatus Reblog { get; set; } + + [DataMember(Name = "content")] + public string Content { get; set; } + + [DataMember(Name = "created_at")] + public string CreatedAt { get; set; } + + [DataMember(Name = "reblogs_count")] + public int ReblogsCount { get; set; } + + [DataMember(Name = "favourites_count")] + public int FavouritesCount { get; set; } + + [DataMember(Name = "reblogged")] + public bool Reblogged { get; set; } + + [DataMember(Name = "favourited")] + public bool Favourited { get; set; } + + [DataMember(Name = "sensitive")] + public bool? Sensitive { get; set; } + + [DataMember(Name = "spoiler_text")] + public string SpoilerText { get; set; } + + [DataMember(Name = "visibility")] + public string Visibility { get; set; } + + [DataMember(Name = "media_attachments")] + public MastodonAttachment[] MediaAttachments { get; set; } + + [DataMember(Name = "mentions")] + public MastodonMention[] Mentions { get; set; } + + [DataMember(Name = "tags")] + public MastodonTag[] Tags { get; set; } + + [DataMember(Name = "application")] + public MastodonApplication Application { get; set; } + } +} diff --git a/OpenTween/Api/DataModel/MastodonTag.cs b/OpenTween/Api/DataModel/MastodonTag.cs new file mode 100644 index 000000000..77258710c --- /dev/null +++ b/OpenTween/Api/DataModel/MastodonTag.cs @@ -0,0 +1,34 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2017 kim_upsilon (@kim_upsilon) +// All rights reserved. +// +// This file is part of OpenTween. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program. If not, see , or write to +// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, +// Boston, MA 02110-1301, USA. + +using System.Runtime.Serialization; + +namespace OpenTween.Api.DataModel +{ + public class MastodonTag + { + [DataMember(Name = "name")] + public string Name { get; set; } + + [DataMember(Name = "url")] + public string Url { get; set; } + } +} diff --git a/OpenTween/OpenTween.csproj b/OpenTween/OpenTween.csproj index 2182b4f78..e1a633909 100644 --- a/OpenTween/OpenTween.csproj +++ b/OpenTween/OpenTween.csproj @@ -71,6 +71,12 @@ + + + + + +