-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathnsversion.py
More file actions
executable file
·42 lines (34 loc) · 1.25 KB
/
nsversion.py
File metadata and controls
executable file
·42 lines (34 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python
#
# parses the netscaler rss feed from citrix.com and returns all
# available releases and the latest available build for each release.
#
# @author: Simon Lauger <simon@lauger.name>
# @date: 2018-03-11
import requests
import feedparser
import re
class nsversion:
# RSS feed for Citrix NetScaler releases
url = 'https://www.citrix.com/content/citrix/en_us/downloads/netscaler-adc.rss'
# New - NetScaler Release (Feature Phase) 12.0 Build 57.19
# New - NetScaler Release (Maintenance Phase) 11.1 Build 57.11
pattern= 'New \- NetScaler Release( \(Feature Phase\)| \(Maintenance Phase\))? (1[012]\.[0-9]) Build ([0-9]{2}\.[0-9]{1,2})'
# All major releases and latest available build per major version
releases = {}
def __init__(self):
self.feed = feedparser.parse(self.url)
self.regex = re.compile(self.pattern)
self.parse()
def parse(self):
for item in self.feed['items']:
matches = self.regex.match(item['title'])
if matches:
if not matches.group(2) in self.releases:
self.releases[matches.group(2)] = matches.group(3)
def get(self, major = None):
if major == None:
print(str(self.releases))
else:
print(self.releases[major])
instance = nsversion().get()