From 01bbef4fc54c8f1baa00ab9816aee5cc2e1eafc5 Mon Sep 17 00:00:00 2001 From: Lingchao Xin Date: Wed, 11 Dec 2013 12:10:52 +0800 Subject: [PATCH] Remove python-beautifulsoup4 dependence Change-Id: Iaabbd330859338d0370a92a87cc772cb1d46f776 --- packaging/snapdiff.spec | 2 -- setup.py | 3 +-- snapdiff/image.py | 28 ++++++++++++++++------------ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/packaging/snapdiff.spec b/packaging/snapdiff.spec index 1b0c455..37c9b70 100644 --- a/packaging/snapdiff.spec +++ b/packaging/snapdiff.spec @@ -15,12 +15,10 @@ Source: %{name}-%{version}.tar.gz 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 diff --git a/setup.py b/setup.py index 0001cba..3253145 100644 --- a/setup.py +++ b/setup.py @@ -16,7 +16,6 @@ setup(name=snapdiff.__title__, 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, ) diff --git a/snapdiff/image.py b/snapdiff/image.py index ef6ec81..53babae 100644 --- a/snapdiff/image.py +++ b/snapdiff/image.py @@ -4,24 +4,28 @@ import os 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: -- 2.34.1