BuildRequires: python-devel
BuildRequires: python-jinja2
BuildRequires: python-requests
-BuildRequires: python-beautifulsoup4
BuildRequires: python-xml
Requires: python >= 2.7
Requires: python-jinja2
Requires: python-requests
-Requires: python-beautifulsoup4
Requires: python-xml
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildArch: noarch
scripts=['tools/snap-diff',],
packages=['snapdiff',],
include_package_data=True,
- install_requires=['Jinja2>=2.6', 'requests>=2.0.1',
- 'beautifulsoup4>=4.3.2'],
+ install_requires=['Jinja2>=2.6', 'requests>=2.0.1',],
zip_safe=False,
)
from StringIO import StringIO
import requests
-from bs4 import BeautifulSoup
from .utils import JsonDict
def _get_file(url, suffix='.ks'):
if url.startswith('http') or url.startswith('https'):
- response = requests.get(url)
- bs = BeautifulSoup(response.content)
- tags = bs.findAll('a')
- for tag in tags:
- if suffix in tag.get('href'):
- href = tag.get('href') # get ks
- f_response = requests.get(os.path.join(url, href))
- if f_response.status_code == 200:
- # use StringIO to keep wrapped lines
- return href, StringIO(f_response.content).readlines()
- break
+ response = requests.get(url + '/MD5SUMS')
+ if response.status_code == 200:
+ lines = response.content.split('\n')
+ for line in lines:
+ if suffix in line:
+ # ks is named tizen_xxxxxxxx.x_x.ks in MD5SUMS
+ # while other files are named their real names :>o<
+ if suffix == '.ks':
+ ks = line.split()[-1].split('_')[-1]
+ else:
+ ks = line.split()[-1].split('*')[-1]
+ f_response = requests.get(url + '/' + ks)
+ if f_response.status_code == 200:
+ # use StringIO to keep wrapped lines
+ return ks, StringIO(f_response.content).readlines()
+ break
else:
files = glob.glob(os.path.join(url, '*'+suffix))
if files: