mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
🚧 RSS as a module
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
/// This file is a part of RSS Bot for Telegram.
|
||||
/// License: MIT
|
||||
/// Author: CrazyHackGUT aka Kruzya (Sergey Gut) <kruzefag@gmail.com>
|
||||
///
|
||||
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
using Telegram.Bot.Types.Enums;
|
||||
|
||||
namespace Kruzya.TelegramBot.RichSiteSummary.Data
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a post from feed in database.
|
||||
/// </summary>
|
||||
public class Post : RepresentableEntity
|
||||
{
|
||||
#region RepresentableEntity
|
||||
protected override ParseMode DefaultRepresentation
|
||||
{
|
||||
get => ParseMode.Html;
|
||||
}
|
||||
|
||||
protected override string ViewableText
|
||||
{
|
||||
get => Title;
|
||||
}
|
||||
|
||||
protected override string ViewableUrl
|
||||
{
|
||||
get => Url;
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// The unique post id.
|
||||
/// </summary>
|
||||
[Key]
|
||||
public Guid PostId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The feed unique identifier from where this post is fetched.
|
||||
/// </summary>
|
||||
public Guid FeedId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The feed from where this post is fetched.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public virtual Feed Feed { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The post title.
|
||||
/// </summary>
|
||||
[MaxLength(256)]
|
||||
[Required]
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The URI where this post is located in web.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Url { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DateTime when post is created in RSS feed.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTime PostedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// DateTime when post is fetched/updated in database.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DateTime ReceivedAt { get; set; }
|
||||
|
||||
public Post()
|
||||
{
|
||||
PostId = new Guid();
|
||||
ReceivedAt = DateTime.Now;
|
||||
}
|
||||
|
||||
public string MessageText
|
||||
{
|
||||
get
|
||||
{
|
||||
var message = new StringBuilder();
|
||||
message.Append($"{Representation("🗞")} New on {Feed.Representation(ParseMode.Html)}\n");
|
||||
message.Append("\n");
|
||||
message.Append(Title);
|
||||
message.Append("\n");
|
||||
message.Append(Representation("Open in browser"));
|
||||
|
||||
return message.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user