From: Alexey Krasilnikov Date: Tue, 30 May 2017 10:24:07 +0000 (+0300) Subject: Add support for the new Bitbucket look X-Git-Tag: 0.8~50^2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a3a34cdbd352383e9e8dc27aab2b934f3d05a15c;p=fdroidserver.git Add support for the new Bitbucket look --- diff --git a/fdroidserver/import.py b/fdroidserver/import.py index d0db34a4..43e395b7 100644 --- a/fdroidserver/import.py +++ b/fdroidserver/import.py @@ -19,6 +19,7 @@ import binascii import os +import re import shutil import urllib.request from argparse import ArgumentParser @@ -39,9 +40,19 @@ def getrepofrompage(url): req = urllib.request.urlopen(url) if req.getcode() != 200: return (None, 'Unable to get ' + url + ' - return code ' + str(req.getcode())) - page = req.read() + page = req.read().decode(req.headers.get_content_charset()) # Works for BitBucket + m = re.search('data-fetch-url="(.*)"', page) + if m is not None: + repo = m.group(1) + + if repo.endswith('.git'): + return ('git', repo) + + return ('hg', repo) + + # Works for BitBucket (obsolete) index = page.find('hg clone') if index != -1: repotype = 'hg' @@ -53,7 +64,7 @@ def getrepofrompage(url): repo = repo.split('"')[0] return (repotype, repo) - # Works for BitBucket + # Works for BitBucket (obsolete) index = page.find('git clone') if index != -1: repotype = 'git'