<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd">

<!-- declare the namespace for using XInclude so we can include the standard suite -->
<dictionary title="NetNewsWire Terminology" xmlns:xi="http://www.w3.org/2003/XInclude">

    <suite name="Standard Suite" code="core" description="Subset of the Standard Suite.">
        <access-group identifier="com.ranchero.NetNewsWire-Evergreen" access="rw"/>
        <command name="delete" code="coredelo" description="Delete an object.">
            <cocoa class="NetNewsWire.NetNewsWireDeleteCommand"/>
            <direct-parameter type="specifier" description="The object(s) to delete."/>
        </command>

        <command name="exists" code="coredoex" description="Verify that an object exists.">
            <cocoa class="NetNewsWire.NetNewsWireExistsCommand"/>
            <direct-parameter type="any" requires-access="r" description="The object(s) to check."/>
            <result type="boolean" description="Does the object(s) exist?"/>
        </command>

        <command name="make" code="corecrel" description="Create a new object.">
            <cocoa class="NetNewsWire.NetNewsWireCreateElementCommand"/>
            <parameter name="new" code="kocl" type="type" description="The class of the new object.">
                <cocoa key="ObjectClass"/>
            </parameter>
            <parameter name="at" code="insh" type="location specifier" optional="yes" description="The location at which to insert the object.">
                <cocoa key="Location"/>
            </parameter>
            <parameter name="with data" code="data" type="any" optional="yes" description="The initial contents of the object.">
                <cocoa key="ObjectData"/>
            </parameter>
            <parameter name="with properties" code="prdt" type="record" optional="yes" description="The initial values for properties of the object.">
                <cocoa key="KeyDictionary"/>
            </parameter>
            <result type="specifier" description="The new object."/>
        </command>

		<command name="count" code="corecnte" description="Return the number of elements of a particular class within an object.">
			<cocoa class="NSCountCommand"/>
			<access-group identifier="*"/>
			<direct-parameter type="specifier" requires-access="r" description="The objects to be counted."/>
			<parameter name="each" code="kocl" type="type" optional="yes" description="The class of objects to be counted." hidden="yes">
				<cocoa key="ObjectClass"/>
			</parameter>
			<result type="integer" description="The count."/>
		</command>

		<class name="application" code="capp" description="The application's top-level scripting object.">
            <cocoa class="NSApplication"/>
            <property name="name" code="pnam" type="text" access="r" description="The name of the application."/>
            <property name="version" code="vers" type="text" access="r" description="The version number of the application."/>
        </class>
    </suite>

    <suite name="NetNewsWire Suite" code="Geod" description="The NetNewsWire Application Suite.">
        <access-group identifier="com.ranchero.NetNewsWire-Evergreen" access="rw"/>
        <class name="application" code="capp"
             description="NetNewsWire Application" inherits="application">
             
             <!-- the name of the Cocoa class where we have provided the
              various accessor methods for our application class.  -->
             <cocoa class="NSApplication"/>
             <property name="current article" code="CurA" type="article" access="r" description="The article, if any, being currently displayed">
                 <cocoa key="currentArticle"/>
             </property>
             <property name="selected articles" code="SelA" access="r" description="All articles in the main window that are currently selected, if any.">
                 <type type="article" list="yes"/>
                 <cocoa key="selectedArticles"/>
             </property>
             <property name="selected feeds" code="SelF" access="r" description="All feeds in the main window sidebar that are currently selected, if any. Folders and smart feeds are not included.">
                 <type type="feed" list="yes"/>
                 <cocoa key="selectedFeeds"/>
             </property>
             <element type="account">
                 <cocoa key="accounts"/>
             </element>
             <element type="article">
                 <cocoa key="selectedArticles"/>
             </element>
             <element type="feed">
				 <synonym name="webFeed"/>
                 <cocoa key="feeds"/>
             </element>
             <element type="feed">
                 <cocoa key="selectedFeeds"/>
             </element>
         </class>

		<enumeration name="account type" code="enum">
			<enumerator name="onmymac" code="Locl" description="An On my Mac (local) account"/>
			<enumerator name="cloudkit" code="Clkt" description="The iCloud account"/>
			<enumerator name="feedly" code="Fdly" description="A Feedly account"/>
			<enumerator name="feedbin" code="Fdbn" description="A Feedbin account"/>
			<enumerator name="newsblur" code="NBlr" description="A Newsblur account"/>
			<enumerator name="fresh rss" code="Frsh" description="A Fresh RSS account"/>
			<enumerator name="inoreader" code="Inrd" description="An Inoreader account"/>
			<enumerator name="bazqux" code="Bzqx" description="A BazQux account"/>
			<enumerator name="the old reader" code="Tord" description="A The Old Reader account"/>
		</enumeration>

        <class name="account" code="Acct" plural="accounts" description="An account for subscribing to feeds">
            <cocoa class="ScriptableAccount"/>
            <property name="name" code="pnam" type="text" access="r" description="The name of the account">
                <cocoa key="scriptingName"/>
            </property>
            <property name="id" code="ID  " type="text" access="r" description="The unique id of the account">
                <cocoa key="uniqueId"/>
            </property>
            <property name="accountType" code="ATyp" type="account type" access="r" description="The type of the account">
                <cocoa key="accountType"/>
            </property>
			<property name="active" code="Actv" type="boolean" access="rw" description="Whether or not the account is active">
				<cocoa key="scriptingIsActive"/>
			</property>
           	<property name="allFeeds" code="Feds" access="r" description="All feeds, including feeds inside folders">
				<synonym name="allWebFeeds"/>
                <cocoa key="allFeeds"/>
                <type type="feed" list="yes"/>
            </property>
            <property name="opml representation" code="OPML" type="text" access="r" description="OPML representation for the account">
                <cocoa key="opmlRepresentation"/>
            </property>
            <element type="feed">
				<synonym name="webFeed"/>
				<cocoa key="feeds"/>
            </element>
            <element type="feed">
				<synonym name="allFeeds"/>
				<cocoa key="allFeeds"/>
            </element>
            <element type="folder">
                <cocoa key="folders"/>
            </element>
        </class>
        
        <class name="feed" code="Feed" plural="feeds" description="An RSS feed">
			<synonym name="webFeed"/>
            <cocoa class="ScriptableFeed"/>
            <property name="name" code="pnam" type="text" access="r" description="The name of the feed">
                <cocoa key="name"/>
            </property>
            <property name="id" code="ID  " type="text" access="r" description="The unique id of the feed">
                <cocoa key="uniqueId"/>
            </property>
            <property name="url" code="URL " type="text" access="r" description="The type of the feed">
                <cocoa key="url"/>
            </property>
            <property name="homepage url" code="HpUr" type="text" access="r" description="url for the feed homepage (optional)">
                <cocoa key="homePageURL"/>
            </property>
            <property name="icon url" code="IcUr" type="text" access="r" description="url for the feed icon (optional)">
                <cocoa key="iconURL"/>
            </property>
            <property name="favicon url" code="FvUr" type="text" access="r" description="url for the feed favicon (optional)">
                <cocoa key="faviconURL"/>
            </property>
            <property name="opml representation" code="OPML" type="text" access="r" description="OPML representation for the feed">
                <cocoa key="opmlRepresentation"/>
            </property>
            <element type="author">
                <cocoa key="authors"/>
            </element>
            <element type="article">
                <cocoa key="articles"/>
            </element>
        </class>

        <class name="author" code="Athr" plural="authors" description="A feed author">
            <cocoa class="ScriptableAuthor"/>
            <property name="name" code="pnam" type="text" access="r" description="The name of the author">
                <cocoa key="name"/>
            </property>
            <property name="id" code="ID  " type="text" access="r" description="The unique id of the author">
                <cocoa key="uniqueId"/>
            </property>
            <property name="url" code="URL " type="text" access="r" description="url for the author">
                <cocoa key="url"/>
            </property>
            <property name="avatar url" code="AvUr" type="text" access="r" description="url for the author avatar (optional)">
                <cocoa key="avatarURL"/>
            </property>
            <property name="email address" code="eMal" type="text" access="r" description="email address for the author avatar (optional)">
                <cocoa key="emailAddress"/>
				<synonym name="email"/>
            </property>
        </class>

        <class name="folder" code="fold" plural="folders" description="A folder for organizing feeds">
            <cocoa class="ScriptableFolder"/>
            <property name="name" code="pnam" type="text" access="r" description="The name of the account">
                <cocoa key="name"/>
            </property>
            <property name="id" code="ID  " type="integer" access="r" description="The unique id of the account">
                <cocoa key="uniqueId"/>
            </property>
            <property name="opml representation" code="OPML" type="text" access="r" description="OPML representation for the folder">
                <cocoa key="opmlRepresentation"/>
            </property>
            <element type="feed">
				<synonym name="webFeed"/>
                <cocoa key="feeds"/>
            </element>
            <element type="article">
                <cocoa key="articles"/>
            </element>
        </class>

        <class name="article" code="Arcl" plural="articles" description="An article in a feed">
            <cocoa class="ScriptableArticle"/>
            <property name="id" code="ID  " type="text" access="r" description="The unique id of the article as set by the feed">
                <cocoa key="uniqueId"/>
            </property>
            <property name="title" code="titl" type="text" access="r" description="The article title">
                <cocoa key="title"/>
            </property>
            <property name="url" code="URL " type="text" access="r" description="url for the article.  This will be the permalink if available, or the external url">
                <cocoa key="url"/>
            </property>
            <property name="external url" code="eURL" type="text" access="r" description="the external url for the article, if known">
                <cocoa key="externalUrl"/>
            </property>
            <property name="permalink" code="pLnk" type="text" access="r" description="a permalink for the article, if known">
                <cocoa key="permalink"/>
            </property>
            <property name="contents" code="Cnts" type="text" access="r" description="text of the article">
                <cocoa key="contents"/>
            </property>
            <property name="html" code="HTML" type="text" access="r" description="html of the article">
                <cocoa key="html"/>
            </property>
            <property name="summary" code="Smry" type="text" access="r" description="a summary of the article">
                <cocoa key="summary"/>
            </property>
            <property name="published date" code="PDat" type="date" access="r" description="date the article was published">
                <cocoa key="datePublished"/>
            </property>
            <property name="arrived date" code="ADat" type="date" access="r" description="date the article was seen by NetNewsWire">
                <cocoa key="dateArrived"/>
            </property>
            <property name="modified date" code="MDat" type="date" access="r" description="date the article was last modified">
                <cocoa key="dateModified"/>
            </property>
            <property name="read" code="Read" type="boolean" access="rw" description="has the article been read">
                <cocoa key="read"/>
            </property>
            <property name="starred" code="Star" type="boolean" access="rw" description="has the article been marked with a star">
                <cocoa key="starred"/>
            </property>
            <property name="deleted" code="Delt" type="boolean" access="r" description="has the article been deleted by the user">
                <cocoa key="deleted"/>
            </property>
            <property name="image url" code="IURL" type="text" access="r" description="an image url for the article">
                <cocoa key="imageURL"/>
            </property>
            <property name="feed" code="Feed" type="feed" access="r" description="the containing feed">
                <cocoa key="feed"/>
            </property>
			<element type="author">
                <cocoa key="authors"/>
            </element>
        </class>

    </suite>

    <suite name="Internet Suite" code="GURL" description="Standard Internet Suite.">
        <access-group identifier="com.ranchero.NetNewsWire-Evergreen" access="rw"/>

        <command name="open location" code="GURLGURL" description="opens the given url.">
            <direct-parameter type="text"/>
        </command>        
    </suite>

</dictionary>

