Hello community,

here is the log from the commit of package you-get for openSUSE:Factory checked 
in at 2020-03-30 23:03:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/you-get (Old)
 and      /work/SRC/openSUSE:Factory/.you-get.new.3160 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "you-get"

Mon Mar 30 23:03:53 2020 rev:31 rq:789668 version:0.4.1432

Changes:
--------
--- /work/SRC/openSUSE:Factory/you-get/you-get.changes  2020-03-24 
22:34:56.661165283 +0100
+++ /work/SRC/openSUSE:Factory/.you-get.new.3160/you-get.changes        
2020-03-30 23:03:56.208194749 +0200
@@ -1,0 +2,5 @@
+Mon Mar 30 08:11:03 UTC 2020 - [email protected]
+
+- Update to version 0.4.1432 (no changelog supplied)
+
+-------------------------------------------------------------------

Old:
----
  you-get-0.4.1423.tar.gz

New:
----
  you-get-0.4.1432.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ you-get.spec ++++++
--- /var/tmp/diff_new_pack.9SCZi0/_old  2020-03-30 23:03:57.152195286 +0200
+++ /var/tmp/diff_new_pack.9SCZi0/_new  2020-03-30 23:03:57.156195289 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           you-get
-Version:        0.4.1423
+Version:        0.4.1432
 Release:        0
 Summary:        Dumb downloader that scrapes the web
 License:        MIT

++++++ you-get-0.4.1423.tar.gz -> you-get-0.4.1432.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/LICENSE.txt 
new/you-get-0.4.1432/LICENSE.txt
--- old/you-get-0.4.1423/LICENSE.txt    2020-03-23 12:13:33.000000000 +0100
+++ new/you-get-0.4.1432/LICENSE.txt    2020-03-30 02:43:59.000000000 +0200
@@ -1,6 +1,7 @@
 MIT License
 
-Copyright (c) 2012-2019 Mort Yao <[email protected]>
+Copyright (c) 2012-2020 Mort Yao <[email protected]> and other contributors
+              (https://github.com/soimort/you-get/graphs/contributors)
 Copyright (c) 2012 Boyu Guo <[email protected]>
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/src/you_get/extractors/baidu.py 
new/you-get-0.4.1432/src/you_get/extractors/baidu.py
--- old/you-get-0.4.1423/src/you_get/extractors/baidu.py        2020-03-23 
12:13:33.000000000 +0100
+++ new/you-get-0.4.1432/src/you_get/extractors/baidu.py        2020-03-30 
02:43:59.000000000 +0200
@@ -112,15 +112,15 @@
             time.sleep(5)
             download_urls([real_url], title, ext, size,
                           output_dir, url, merge=merge, faker=True)
-    elif re.match(r'http://music.baidu.com/album/\d+', url):
-        id = r1(r'http://music.baidu.com/album/(\d+)', url)
+    elif re.match(r'https?://music.baidu.com/album/\d+', url):
+        id = r1(r'https?://music.baidu.com/album/(\d+)', url)
         baidu_download_album(id, output_dir, merge, info_only)
 
-    elif re.match('http://music.baidu.com/song/\d+', url):
-        id = r1(r'http://music.baidu.com/song/(\d+)', url)
+    elif re.match('https?://music.baidu.com/song/\d+', url):
+        id = r1(r'https?://music.baidu.com/song/(\d+)', url)
         baidu_download_song(id, output_dir, merge, info_only)
 
-    elif re.match('http://tieba.baidu.com/', url):
+    elif re.match('https?://tieba.baidu.com/', url):
         try:
             # embedded videos
             embed_download(url, output_dir, merge=merge, info_only=info_only, 
**kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/src/you_get/extractors/bilibili.py 
new/you-get-0.4.1432/src/you_get/extractors/bilibili.py
--- old/you-get-0.4.1423/src/you_get/extractors/bilibili.py     2020-03-23 
12:13:33.000000000 +0100
+++ new/you-get-0.4.1432/src/you_get/extractors/bilibili.py     2020-03-30 
02:43:59.000000000 +0200
@@ -28,6 +28,8 @@
          'container': 'FLV', 'video_resolution': '360p', 'desc': '流畅 360P'},
         # 'quality': 15?
         {'id': 'mp4', 'quality': 0},
+
+        {'id': 'jpg', 'quality': 0},
     ]
 
     @staticmethod
@@ -103,8 +105,8 @@
         return 
'https://api.bilibili.com/x/space/channel/video?mid=%s&cid=%s&pn=%s&ps=%s&order=0&jsonp=jsonp'
 % (mid, cid, pn, ps)
 
     @staticmethod
-    def bilibili_space_favlist_api(vmid, fid, pn=1, ps=100):
-        return 
'https://api.bilibili.com/x/space/fav/arc?vmid=%s&fid=%s&pn=%s&ps=%s&order=0&jsonp=jsonp'
 % (vmid, fid, pn, ps)
+    def bilibili_space_favlist_api(fid, pn=1, ps=20):
+        return 
'https://api.bilibili.com/x/v3/fav/resource/list?media_id=%s&pn=%s&ps=%s&order=mtime&type=0&tid=0&jsonp=jsonp'
 % (fid, pn, ps)
 
     @staticmethod
     def bilibili_space_video_api(mid, pn=1, ps=100):
@@ -115,6 +117,10 @@
         return 'https://api.vc.bilibili.com/clip/v1/video/detail?video_id=%s' 
% video_id
 
     @staticmethod
+    def bilibili_h_api(doc_id):
+        return 'https://api.vc.bilibili.com/link_draw/v1/doc/detail?doc_id=%s' 
% doc_id
+
+    @staticmethod
     def url_size(url, faker=False, headers={},err_value=0):
         try:
             return url_size(url,faker,headers)
@@ -132,10 +138,10 @@
         #                    r'<h1 title="([^"]+)"')
 
         # redirect: watchlater
-        if re.match(r'https?://(www\.)?bilibili\.com/watchlater/#/av(\d+)', 
self.url):
-            avid = match1(self.url, r'/av(\d+)')
+        if 
re.match(r'https?://(www\.)?bilibili\.com/watchlater/#/(av(\d+)|BV(\S+)/?)', 
self.url):
+            avid = match1(self.url, r'/(av\d+)') or match1(self.url, 
r'/(BV\w+)')
             p = int(match1(self.url, r'/p(\d+)') or '1')
-            self.url = 'https://www.bilibili.com/video/av%s?p=%s' % (avid, p)
+            self.url = 'https://www.bilibili.com/video/%s?p=%s' % (avid, p)
             html_content = get_content(self.url, 
headers=self.bilibili_headers())
 
         # redirect: bangumi/play/ss -> bangumi/play/ep
@@ -161,6 +167,8 @@
             sort = 'vc'
         elif 
re.match(r'https?://(www\.)?bilibili\.com/video/(av(\d+)|(BV(\S+)))', self.url):
             sort = 'video'
+        elif re.match(r'https?://h\.?bilibili\.com/(\d+)', self.url):
+            sort = 'h'
         else:
             self.download_playlist_by_url(self.url, **kwargs)
             return
@@ -426,6 +434,24 @@
             self.streams['mp4'] = {'container': container,
                                    'size': size, 'src': [playurl]}
 
+        # h images
+        elif sort == 'h':
+            m = re.match(r'https?://h\.?bilibili\.com/(\d+)', self.url)
+            doc_id = m.group(1)
+            api_url = self.bilibili_h_api(doc_id)
+            api_content = get_content(api_url, headers=self.bilibili_headers())
+            h_info = json.loads(api_content)
+
+            urls = []
+            for pic in h_info['data']['item']['pictures']:
+                img_src = pic['img_src']
+                urls.append(img_src)
+            size = urls_size(urls)
+
+            self.title = doc_id
+            container = 'jpg'  # enforce JPG container
+            self.streams[container] = {'container': container,
+                                       'size': size, 'src': urls}
 
     def 
prepare_by_cid(self,avid,cid,title,html_content,playinfo,playinfo_,url):
         #response for interaction video
@@ -552,7 +578,7 @@
         elif re.match(r'https?://(www\.)?bilibili\.com/bangumi/media/md(\d+)', 
self.url) or \
             re.match(r'https?://bangumi\.bilibili\.com/anime/(\d+)', self.url):
             sort = 'bangumi_md'
-        elif re.match(r'https?://(www\.)?bilibili\.com/video/av(\d+)', 
self.url):
+        elif 
re.match(r'https?://(www\.)?bilibili\.com/video/(av(\d+)|BV(\S+))', self.url):
             sort = 'video'
         elif 
re.match(r'https?://space\.?bilibili\.com/(\d+)/channel/detail\?.*cid=(\d+)', 
self.url):
             sort = 'space_channel'
@@ -679,20 +705,22 @@
         elif sort == 'space_favlist':
             m = 
re.match(r'https?://space\.?bilibili\.com/(\d+)/favlist\?.*fid=(\d+)', self.url)
             vmid, fid = m.group(1), m.group(2)
-            api_url = self.bilibili_space_favlist_api(vmid, fid)
+            api_url = self.bilibili_space_favlist_api(fid)
             api_content = get_content(api_url, 
headers=self.bilibili_headers(referer=self.url))
             favlist_info = json.loads(api_content)
-            pc = favlist_info['data']['pagecount']
-
+            pc = favlist_info['data']['info']['media_count'] // 
len(favlist_info['data']['medias'])
+            if favlist_info['data']['info']['media_count'] % 
len(favlist_info['data']['medias']) != 0:
+                pc += 1
             for pn in range(1, pc + 1):
-                api_url = self.bilibili_space_favlist_api(vmid, fid, pn=pn)
+                log.w('Extracting %s of %s pages ...' % (pn, pc))
+                api_url = self.bilibili_space_favlist_api(fid, pn=pn)
                 api_content = get_content(api_url, 
headers=self.bilibili_headers(referer=self.url))
                 favlist_info = json.loads(api_content)
 
-                epn, i = len(favlist_info['data']['archives']), 0
-                for video in favlist_info['data']['archives']:
+                epn, i = len(favlist_info['data']['medias']), 0
+                for video in favlist_info['data']['medias']:
                     i += 1; log.w('Extracting %s of %s videos ...' % (i, epn))
-                    url = 'https://www.bilibili.com/video/av%s' % video['aid']
+                    url = 'https://www.bilibili.com/video/av%s' % video['id']
                     self.__class__().download_playlist_by_url(url, **kwargs)
 
         elif sort == 'space_video':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/src/you_get/version.py 
new/you-get-0.4.1432/src/you_get/version.py
--- old/you-get-0.4.1423/src/you_get/version.py 2020-03-23 12:13:33.000000000 
+0100
+++ new/you-get-0.4.1432/src/you_get/version.py 2020-03-30 02:43:59.000000000 
+0200
@@ -1,4 +1,4 @@
 #!/usr/bin/env python
 
 script_name = 'you-get'
-__version__ = '0.4.1423'
+__version__ = '0.4.1432'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/tests/test.py 
new/you-get-0.4.1432/tests/test.py
--- old/you-get-0.4.1423/tests/test.py  2020-03-23 12:13:33.000000000 +0100
+++ new/you-get-0.4.1432/tests/test.py  2020-03-30 02:43:59.000000000 +0200
@@ -7,7 +7,8 @@
     magisto,
     youtube,
     missevan,
-    acfun
+    acfun,
+    bilibili
 )
 
 
@@ -37,5 +38,12 @@
     def test_acfun(self):
         acfun.download('https://www.acfun.cn/v/ac11701912', info_only=True)
 
+    def test_bilibil(self):
+        bilibili.download(
+            "https://www.bilibili.com/watchlater/#/BV1PE411q7mZ/p6";, 
info_only=True
+        )
+        bilibili.download(
+            "https://www.bilibili.com/watchlater/#/av74906671/p6";, 
info_only=True
+        )
 if __name__ == '__main__':
     unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.1423/you-get.json 
new/you-get-0.4.1432/you-get.json
--- old/you-get-0.4.1423/you-get.json   2020-03-23 12:13:33.000000000 +0100
+++ new/you-get-0.4.1432/you-get.json   2020-03-30 02:43:59.000000000 +0200
@@ -18,14 +18,13 @@
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
     "Programming Language :: Python :: 3 :: Only",
-    "Programming Language :: Python :: 3.0",
-    "Programming Language :: Python :: 3.1",
     "Programming Language :: Python :: 3.2",
     "Programming Language :: Python :: 3.3",
     "Programming Language :: Python :: 3.4",
     "Programming Language :: Python :: 3.5",
     "Programming Language :: Python :: 3.6",
     "Programming Language :: Python :: 3.7",
+    "Programming Language :: Python :: 3.8",
     "Topic :: Internet",
     "Topic :: Internet :: WWW/HTTP",
     "Topic :: Multimedia",


Reply via email to