1
2
3
4
5 """
6
7 sourceforge
8 ===========
9
10 Currently this plugin uses http://doapspace.org/ to fetch DOAP for SourceForge
11
12
13 """
14
15 __docformat__ = 'epytext'
16
17
18 from doapfiend.utils import NotFoundError
19 from doapfiend.plugins.base import Plugin
20 from doapfiend.plugins.pkg_index import get_by_pkg_index
21
22
24
25 """Get DOAP from SourceForge package index"""
26
27
28 name = "sourceforge"
29 enabled = False
30 enable_opt = name
31 prefix = 'sf'
32
34 '''Setup RDF/XML OutputPlugin class'''
35 super(SourceForgePlugin, self).__init__()
36 self.options = None
37 self.query = None
38
40 """Add plugin's options to doapfiend's opt parser"""
41 search.add_option('-s', '--%s' % self.name,
42 action='store',
43 dest=self.enable_opt,
44 help='Get DOAP by its SourceForge project name.',
45 metavar='PROJECT_NAME')
46 return parser, output, search
47
49 '''
50 Get SourceForge DOAP
51
52 @param proxy: Option HTTP proxy URL
53 @type proxy: string
54
55 @rtype: unicode
56 @returns: Single DOAP
57
58 '''
59 if hasattr(self.options, self.name):
60 self.query = getattr(self.options, self.name)
61
62 try:
63 return get_by_pkg_index(self.prefix, self.query, proxy)
64 except NotFoundError:
65 print "Not found: %s" % self.query
66