|
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 #include "nsIFeedContainer.idl" |
|
7 |
|
8 interface nsIArray; |
|
9 interface nsIFeedGenerator; |
|
10 |
|
11 /** |
|
12 * An nsIFeed represents a single Atom or RSS feed. |
|
13 */ |
|
14 [scriptable, uuid(3b8aae33-80e2-4efa-99c8-a6c5b99f76ea)] |
|
15 interface nsIFeed : nsIFeedContainer |
|
16 { |
|
17 /** |
|
18 * Uses description, subtitle, and extensions |
|
19 * to generate a summary. |
|
20 */ |
|
21 attribute nsIFeedTextConstruct subtitle; |
|
22 |
|
23 // All content classifies as a "feed" - it is the transport. |
|
24 const unsigned long TYPE_FEED = 0; |
|
25 const unsigned long TYPE_AUDIO = 1; |
|
26 const unsigned long TYPE_IMAGE = 2; |
|
27 const unsigned long TYPE_VIDEO = 4; |
|
28 |
|
29 /** |
|
30 * The type of feed. For example, a podcast would be TYPE_AUDIO. |
|
31 */ |
|
32 readonly attribute unsigned long type; |
|
33 |
|
34 /** |
|
35 * The total number of enclosures found in the feed. |
|
36 */ |
|
37 attribute long enclosureCount; |
|
38 |
|
39 /** |
|
40 * The items or entries in feed. |
|
41 */ |
|
42 attribute nsIArray items; |
|
43 |
|
44 /** |
|
45 * No one really knows what cloud is for. |
|
46 * |
|
47 * It supposedly enables some sort of interaction with an XML-RPC or |
|
48 * SOAP service. |
|
49 */ |
|
50 attribute nsIWritablePropertyBag2 cloud; |
|
51 |
|
52 /** |
|
53 * Information about the software that produced the feed. |
|
54 */ |
|
55 attribute nsIFeedGenerator generator; |
|
56 |
|
57 /** |
|
58 * An image url and some metadata (as defined by RSS2). |
|
59 * |
|
60 */ |
|
61 attribute nsIWritablePropertyBag2 image; |
|
62 |
|
63 /** |
|
64 * No one really knows what textInput is for. |
|
65 * |
|
66 * See |
|
67 * <http://www.cadenhead.org/workbench/news/2894/rss-joy-textinput> |
|
68 * for more details. |
|
69 */ |
|
70 attribute nsIWritablePropertyBag2 textInput; |
|
71 |
|
72 /** |
|
73 * Days to skip fetching. This field was supposed to designate |
|
74 * intervals for feed fetching. It's not generally implemented. For |
|
75 * example, if this array contained "Monday", aggregators should not |
|
76 * fetch the feed on Mondays. |
|
77 */ |
|
78 attribute nsIArray skipDays; |
|
79 |
|
80 /** |
|
81 * Hours to skip fetching. This field was supposed to designate |
|
82 * intervals for feed fetching. It's not generally implemented. See |
|
83 * <http://blogs.law.harvard.edu/tech/rss> for more information. |
|
84 */ |
|
85 attribute nsIArray skipHours; |
|
86 }; |