@@ -31,6 +31,7 @@ def generate(site)
31
31
repo_name = software . data [ 'name' ]
32
32
gh_org = software . data [ 'gh_org' ]
33
33
python_package = software . data [ 'python_package' ]
34
+ conda_package = software . data [ 'conda_package' ]
34
35
35
36
next unless gh_org && repo_name
36
37
@@ -103,11 +104,18 @@ def generate(site)
103
104
if python_package
104
105
pypi_info = fetch_pypi_info ( python_package )
105
106
end
107
+
108
+ # Get conda info if conda package exists
109
+ conda_info = nil
110
+ if conda_package
111
+ conda_info = fetch_conda_info ( conda_package )
112
+ end
106
113
107
114
repo_data = {
108
115
'repo_name' => repo_name ,
109
116
'gh_org' => gh_org ,
110
117
'python_package' => python_package ,
118
+ 'conda_package' => conda_package ,
111
119
'repo_url' => "https://github.com/#{ gh_org } /#{ repo_name } " ,
112
120
'latest_release' => latest_release ,
113
121
'commits_since_release' => commits_since_release ,
@@ -116,6 +124,7 @@ def generate(site)
116
124
'open_pr_count' => open_prs ? open_prs . length : 0 ,
117
125
'last_merged_pr' => last_merged_pr ,
118
126
'pypi_info' => pypi_info ,
127
+ 'conda_info' => conda_info ,
119
128
'updated_at' => Time . now
120
129
}
121
130
@@ -157,10 +166,10 @@ def fetch_pypi_info(package_name)
157
166
uri = URI ( "https://pypi.org/pypi/#{ package_name } /json" )
158
167
http = Net ::HTTP . new ( uri . host , uri . port )
159
168
http . use_ssl = true
160
-
169
+
161
170
request = Net ::HTTP ::Get . new ( uri )
162
171
response = http . request ( request )
163
-
172
+
164
173
if response . code == '200'
165
174
JSON . parse ( response . body )
166
175
else
@@ -170,5 +179,23 @@ def fetch_pypi_info(package_name)
170
179
puts "Error fetching PyPI info for #{ package_name } : #{ e . message } "
171
180
nil
172
181
end
182
+
183
+ def fetch_conda_info ( package_name )
184
+ uri = URI ( "https://api.anaconda.org/package/conda-forge/#{ package_name } " )
185
+ http = Net ::HTTP . new ( uri . host , uri . port )
186
+ http . use_ssl = true
187
+
188
+ request = Net ::HTTP ::Get . new ( uri )
189
+ response = http . request ( request )
190
+
191
+ if response . code == '200'
192
+ JSON . parse ( response . body )
193
+ else
194
+ nil
195
+ end
196
+ rescue => e
197
+ puts "Error fetching conda info for #{ package_name } : #{ e . message } "
198
+ nil
199
+ end
173
200
end
174
201
end
0 commit comments