Documentation ¶
Overview ¶
The rssdir package provides an interface to rss feeds stored in a Maildir like format.
Maildir mailboxes are designed to be safe for concurrent delivery. This means that at the same time, multiple processes can deliver to the same mailbox. However only one process can receive and read messages stored in the Maildir.
Index ¶
- func NewKey(article *gofeed.Item) (string, error)
- type Delivery
- type Dir
- func (d Dir) Clean() error
- func (d Dir) Copy(target Dir, key string) (string, error)
- func (d Dir) Create() error
- func (d Dir) Dirname() string
- func (d Dir) Exists(key string) (bool, error)
- func (d Dir) Filename(key string) (string, error)
- func (d Dir) Flags(key string) ([]Flag, error)
- func (d Dir) Keys() ([]string, error)
- func (d Dir) NewDelivery(article *gofeed.Item) (*Delivery, error)
- func (d Dir) Open(key string) (io.ReadCloser, error)
- func (d Dir) Remove(key string) error
- func (d Dir) SetFlags(key string, flags []Flag) error
- func (d Dir) SetInfo(key, info string) error
- func (d Dir) Unseen() ([]string, error)
- func (d Dir) UnseenCount() (int, error)
- type Flag
- type FlagError
- type KeyError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Delivery ¶
type Delivery struct {
// contains filtered or unexported fields
}
Delivery represents an ongoing message delivery to the mailbox. It implements the WriteCloser interface. On closing the underlying file is moved/relinked to new.
type Dir ¶
type Dir string
A Dir represents a single directory in a Rssdir.
func (Dir) Clean ¶
Clean removes old files from tmp and should be run periodically. This does not use access time but modification time for portability reasons.
func (Dir) Copy ¶
Copy copies the message with key from this Maildir to the target, preserving its flags, returning the newly generated key for the target rssdir or an error.
func (Dir) Create ¶
Create creates the directory structure for a Maildir. If the main directory already exists, it tries to create the subdirectories in there. If an error occurs while creating one of the subdirectories, this function may leave a partially created directory structure.
func (Dir) Flags ¶
Flags returns the flags for a message sorted in ascending order. See the documentation of SetFlags for details.
func (Dir) NewDelivery ¶
NewDelivery creates a new Delivery.
func (Dir) SetFlags ¶
SetFlags appends an info section to the filename according to the given flags. This function removes duplicates and sorts the flags, but doesn't check whether they conform with the Maildir specification.
func (Dir) SetInfo ¶
Set the info part of the filename. Only use this if you plan on using a non-standard info part.
func (Dir) Unseen ¶
Unseen moves messages from new to cur and returns their keys. This means the messages are now known to the application. To find out whether a user has seen a message, use Flags().
func (Dir) UnseenCount ¶
UnseenCount returns the number of messages in new without looking at them.
type Flag ¶
type Flag rune
const ( // The user has resent/forwarded/bounced this message to someone else. // FlagPassed Flag = 'P' // The user has replied to this message. // FlagReplied Flag = 'R' // The user has viewed this message, though perhaps he didn't read all the // way through it. FlagSeen Flag = 'S' // The user has moved this message to the trash; the trash will be emptied // by a later user action. FlagTrashed Flag = 'T' // The user considers this message a draft; toggled at user discretion. // FlagDraft Flag = 'D' // User-defined flag; toggled at user discretion. FlagFlagged Flag = 'F' )