chiark / gitweb /
Add support for the new Bitbucket look
authorAlexey Krasilnikov <alexey@krasilnikov.me>
Tue, 30 May 2017 10:24:07 +0000 (13:24 +0300)
committerAlexey Krasilnikov <alexey@krasilnikov.me>
Tue, 30 May 2017 15:33:55 +0000 (18:33 +0300)
fdroidserver/import.py

index d0db34a4eb76dea5c6c43899142444ced10163b4..43e395b74557da927c53168ec70c04f9d3d1af65 100644 (file)
@@ -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'