Remove python-beautifulsoup4 dependence
authorLingchao Xin <lingchaox.xin@intel.com>
Wed, 11 Dec 2013 04:10:52 +0000 (12:10 +0800)
committerLingchao Xin <lingchaox.xin@intel.com>
Wed, 11 Dec 2013 05:28:44 +0000 (13:28 +0800)
Change-Id: Iaabbd330859338d0370a92a87cc772cb1d46f776

packaging/snapdiff.spec
setup.py
snapdiff/image.py

index 1b0c455ef49a39c26709905326f4b753b1942b42..37c9b704bb9e0c8fc2fd0c9feb5eea00b6bb81cb 100644 (file)
@@ -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
index 0001cbad9c154b157ea0a9fdb16990c81da7233e..325314576a0e7c6d82e61470b6ff4d4862b63971 100644 (file)
--- 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,
 )
index ef6ec815186f7ffac27d7715200420f80cc241b8..53babaefb654e433c86127adc22882e525b81fa1 100644 (file)
@@ -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: