~cszikszoy/do-plugins/pastebin

« back to all changes in this revision

Viewing changes to OpenSearch/src/OpenSearchFile.cs

  • Committer: djsiegel at gmail
  • Date: 2007-11-07 17:13:21 UTC
  • Revision ID: djsiegel@gmail.com-20071107171321-zgu46ukqlpdx1ypa
Initial files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//  OpenSearchFile.cs
2
 
//
3
 
//  GNOME Do is the legal property of its developers, whose names are too numerous
4
 
//  to list here.  Please refer to the COPYRIGHT file distributed with this
5
 
//  source distribution.
6
 
//
7
 
//  This program is free software: you can redistribute it and/or modify
8
 
//  it under the terms of the GNU General Public License as published by
9
 
//  the Free Software Foundation, either version 3 of the License, or
10
 
//  (at your option) any later version.
11
 
//
12
 
//  This program is distributed in the hope that it will be useful,
13
 
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
//  GNU General Public License for more details.
16
 
//
17
 
//  You should have received a copy of the GNU General Public License
18
 
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
 
 
20
 
using System.Xml;
21
 
 
22
 
namespace Do.Plugins.OpenSearch
23
 
{       
24
 
        public class OpenSearchFile : IOpenSearchFile
25
 
        {
26
 
                private string path;
27
 
                
28
 
                public OpenSearchFile (string path)
29
 
                {
30
 
                        this.path = path;
31
 
                }
32
 
                
33
 
                public OpenSearchItem CreateOpenSearchItem ()
34
 
                {
35
 
                        XmlDocument doc = new XmlDocument ();
36
 
                        doc.Load(path);                                         
37
 
                        XmlNamespaceManager namespaceManager = XmlNamespaceHelper.PopulateNamespaceManager (doc);
38
 
                        
39
 
                        XmlNode shortName = doc.SelectSingleNode ("//*/os:ShortName", namespaceManager);                
40
 
                        XmlNode description = doc.SelectSingleNode ("//*/os:Description", namespaceManager);    
41
 
                        XmlNode url = doc.SelectSingleNode ("//*/os:Url[@type='text/html' and @method='GET']", namespaceManager);
42
 
 
43
 
                        if(shortName == null || description == null || url == null)
44
 
                                return null;
45
 
                        
46
 
                        OpenSearchItem item = new OpenSearchItem(shortName.InnerText ,description.InnerText,url.Attributes["template"].Value);
47
 
                        
48
 
                        return item;
49
 
                }
50
 
        }
51
 
}