Hello community,

here is the log from the commit of package you-get for openSUSE:Factory checked 
in at 2018-01-16 09:42:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/you-get (Old)
 and      /work/SRC/openSUSE:Factory/.you-get.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "you-get"

Tue Jan 16 09:42:26 2018 rev:2 rq:564040 version:0.4.1011

Changes:
--------
--- /work/SRC/openSUSE:Factory/you-get/you-get.changes  2018-01-13 
21:43:20.458119477 +0100
+++ /work/SRC/openSUSE:Factory/.you-get.new/you-get.changes     2018-01-16 
09:42:29.237361299 +0100
@@ -1,0 +2,5 @@
+Sat Dec 23 19:13:51 UTC 2017 - aloi...@gmx.com
+
+- Update to version 0.4.1011 (no changelog supplied)
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ you-get.spec ++++++
--- /var/tmp/diff_new_pack.cgbihF/_old  2018-01-16 09:42:29.937328535 +0100
+++ /var/tmp/diff_new_pack.cgbihF/_new  2018-01-16 09:42:29.941328348 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           you-get
-Version:        0.4.995
+Version:        0.4.1011
 Release:        0
 Summary:        Dumb downloader that scrapes the web
 License:        MIT

++++++ you-get-0.4.995.tar.gz -> you-get-0.4.1011.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/README.md 
new/you-get-0.4.1011/README.md
--- old/you-get-0.4.995/README.md       2017-12-04 04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/README.md      2017-12-23 18:27:08.000000000 +0100
@@ -413,6 +413,9 @@
 | 火猫TV   | <http://www.huomao.com/>       |✓| | |
 | 全民直播 | <http://www.quanmin.tv/>       |✓| | |
 | 阳光宽频网 | <http://www.365yg.com/>      |✓| | |
+| 西瓜视频 | <https://www.ixigua.com/>      |✓| | |
+| 快手 | <https://www.kuaishou.com/>      |✓|✓| |
+| 抖音 | <https://www.douyin.com/>      |✓| | |
 
 For all other sites not on the list, the universal extractor will take care of 
finding and downloading interesting resources from the page.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/common.py 
new/you-get-0.4.1011/src/you_get/common.py
--- old/you-get-0.4.995/src/you_get/common.py   2017-12-04 04:18:45.000000000 
+0100
+++ new/you-get-0.4.1011/src/you_get/common.py  2017-12-23 18:27:08.000000000 
+0100
@@ -38,6 +38,7 @@
     'dailymotion'      : 'dailymotion',
     'dilidili'         : 'dilidili',
     'douban'           : 'douban',
+    'douyin'           : 'douyin',
     'douyu'            : 'douyutv',
     'ehow'             : 'ehow',
     'facebook'         : 'facebook',
@@ -61,11 +62,13 @@
     'interest'         : 'interest',
     'iqilu'            : 'iqilu',
     'iqiyi'            : 'iqiyi',
+    'ixigua'           : 'ixigua',
     'isuntv'           : 'suntv',
     'joy'              : 'joy',
     'kankanews'        : 'bilibili',
     'khanacademy'      : 'khan',
     'ku6'              : 'ku6',
+    'kuaishou'         : 'kuaishou',
     'kugou'            : 'kugou',
     'kuwo'             : 'kuwo',
     'le'               : 'le',
@@ -1021,8 +1024,11 @@
     global output_filename
     if output_filename:
         dotPos = output_filename.rfind('.')
-        title = output_filename[:dotPos]
-        ext = output_filename[dotPos+1:]
+        if dotPos > 0:
+            title = output_filename[:dotPos]
+            ext = output_filename[dotPos+1:]
+        else:
+            title = output_filename
 
     title = tr(get_filename(title))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/__init__.py 
new/you-get-0.4.1011/src/you_get/extractors/__init__.py
--- old/you-get-0.4.995/src/you_get/extractors/__init__.py      2017-12-04 
04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/__init__.py     2017-12-23 
18:27:08.000000000 +0100
@@ -15,6 +15,7 @@
 from .dailymotion import *
 from .dilidili import *
 from .douban import *
+from .douyin import *
 from .douyutv import *
 from .ehow import *
 from .facebook import *
@@ -85,3 +86,4 @@
 from .ted import *
 from .khan import *
 from .zhanqi import *
+from .kuaishou import *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/bilibili.py 
new/you-get-0.4.1011/src/you_get/extractors/bilibili.py
--- old/you-get-0.4.995/src/you_get/extractors/bilibili.py      2017-12-04 
04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/bilibili.py     2017-12-23 
18:27:08.000000000 +0100
@@ -32,6 +32,7 @@
     SEC2 = '9b288147e5474dd2aa67085f716c560d'
     stream_types = [
             {'id': 'hdflv'},
+            {'id': 'flv720'},
             {'id': 'flv'},
             {'id': 'hdmp4'},
             {'id': 'mp4'},
@@ -43,13 +44,15 @@
     @staticmethod
     def bilibili_stream_type(urls):
         url = urls[0]
-        if 'hd.flv?' in url or '-112.flv' in url:
+        if 'hd.flv' in url or '-112.flv' in url:
             return 'hdflv', 'flv'
-        if '.flv?' in url:
+        if '-64.flv' in url:
+            return 'flv720', 'flv'
+        if '.flv' in url:
             return 'flv', 'flv'
-        if 'hd.mp4?' in url or '-48.mp4' in url:
+        if 'hd.mp4' in url or '-48.mp4' in url:
             return 'hdmp4', 'mp4'
-        if '.mp4?' in url:
+        if '.mp4' in url:
             return 'mp4', 'mp4'
         raise Exception('Unknown stream type')
 
@@ -122,7 +125,7 @@
         self.referer = self.url
         self.page = get_content(self.url)
 
-        m = re.search(r'<h1\s*title="([^"]+)"', self.page)
+        m = re.search(r'<h1.*?>(.*?)</h1>', self.page)
         if m is not None:
             self.title = m.group(1)
         if self.title is None:
@@ -162,7 +165,10 @@
             qq_download_by_vid(tc_flashvars, self.title, 
output_dir=kwargs['output_dir'], merge=kwargs['merge'], 
info_only=kwargs['info_only'])
             return
 
-        cid = re.search(r'cid=(\d+)', self.page).group(1)
+        try:
+            cid = re.search(r'cid=(\d+)', self.page).group(1)
+        except:
+            cid = re.search(r'"cid":(\d+)', self.page).group(1)
         if cid is not None:
             self.download_by_vid(cid, False, **kwargs)
         else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/douyin.py 
new/you-get-0.4.1011/src/you_get/extractors/douyin.py
--- old/you-get-0.4.995/src/you_get/extractors/douyin.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/douyin.py       2017-12-23 
18:27:08.000000000 +0100
@@ -0,0 +1,38 @@
+# coding=utf-8
+
+import re
+import json
+
+from ..common import (
+    url_size,
+    print_info,
+    get_content,
+    download_urls,
+    playlist_not_supported,
+)
+
+
+__all__ = ['douyin_download_by_url']
+
+
+def douyin_download_by_url(url, **kwargs):
+    page_content = get_content(url)
+    match_rule = re.compile(r'var data = \[(.*?)\];')
+    video_info = json.loads(match_rule.findall(page_content)[0])
+    video_url = video_info['video']['play_addr']['url_list'][0]
+    title = video_info['cha_list'][0]['cha_name']
+    video_format = 'mp4'
+    size = url_size(video_url)
+    print_info(
+        site_info='douyin.com', title=title,
+        type=video_format, size=size
+    )
+    if not kwargs['info_only']:
+        download_urls(
+            urls=[video_url], title=title, ext=video_format, total_size=size,
+            **kwargs
+        )
+
+
+download = douyin_download_by_url
+download_playlist = playlist_not_supported('douyin')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/ixigua.py 
new/you-get-0.4.1011/src/you_get/extractors/ixigua.py
--- old/you-get-0.4.995/src/you_get/extractors/ixigua.py        1970-01-01 
01:00:00.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/ixigua.py       2017-12-23 
18:27:08.000000000 +0100
@@ -0,0 +1,85 @@
+#!/usr/bin/env python
+__all__ = ['ixigua_download', 'ixigua_download_playlist']
+import base64
+import random
+import binascii
+from ..common import *
+
+def get_video_id(text):
+    re_id = r"videoId: '(.*?)'"
+    return re.findall(re_id, text)[0]
+
+def get_r():
+    return str(random.random())[2:]
+
+def right_shift(val, n):
+    return val >> n if val >= 0 else (val + 0x100000000) >> n
+
+def get_s(text):
+    """get video info"""
+    id = get_video_id(text)
+    p = get_r()
+    url = 'http://i.snssdk.com/video/urls/v/1/toutiao/mp4/%s' % id
+    n = parse.urlparse(url).path + '?r=%s' % p
+    c = binascii.crc32(n.encode('utf-8'))
+    s = right_shift(c, 0)
+    title = ''.join(re.findall(r"title: '(.*?)',", text))
+    return url + '?r=%s&s=%s' % (p, s), title
+
+def get_moment(url, user_id, base_url, video_list):
+    """Recursively obtaining a video list"""
+    video_list_data = json.loads(get_content(url))
+    if not video_list_data['next']['max_behot_time']:
+        return video_list
+    [video_list.append(i["display_url"]) for i in video_list_data["data"]]
+    max_behot_time = video_list_data['next']['max_behot_time']
+    _param = {
+        'user_id': user_id,
+        'base_url': base_url,
+        'video_list': video_list,
+        'url': base_url.format(user_id=user_id, max_behot_time=max_behot_time),
+    }
+    return get_moment(**_param)
+
+def ixigua_download(url, output_dir='.', info_only=False, **kwargs):
+    """ Download a single video
+        Sample URL: 
https://www.ixigua.com/a6487187567887254029/#mid=59051127876
+    """
+    try:
+        video_info_url, title = get_s(get_content(url))
+        video_info = json.loads(get_content(video_info_url))
+    except Exception:
+        raise NotImplementedError(url)
+    try:
+        video_url = 
base64.b64decode(video_info["data"]["video_list"]["video_1"]["main_url"]).decode()
+    except Exception:
+        raise NotImplementedError(url)
+    filetype, ext, size = url_info(video_url)
+    print_info(site_info, title, filetype, size)
+    if not info_only:
+        download_urls([video_url], title, ext, size, output_dir=output_dir)
+
+def ixigua_download_playlist(url, output_dir='.', info_only=False, **kwargs):
+    """Download all video from the user's video list
+        Sample URL: https://www.ixigua.com/c/user/71141690831/
+    """
+    if 'user' not in url:
+        raise NotImplementedError(url)
+    user_id = url.split('/')[-2]
+    max_behot_time = 0
+    if not user_id:
+        raise NotImplementedError(url)
+    base_url = "https://www.ixigua.com/c/user/article/?user_id={user_id}"; \
+               
"&max_behot_time={max_behot_time}&max_repin_time=0&count=20&page_type=0"
+    _param = {
+        'user_id': user_id,
+        'base_url': base_url,
+        'video_list': [],
+        'url': base_url.format(user_id=user_id, max_behot_time=max_behot_time),
+    }
+    for i in get_moment(**_param):
+        ixigua_download(i, output_dir, info_only, **kwargs)
+
+site_info = "ixigua.com"
+download = ixigua_download
+download_playlist = ixigua_download_playlist
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/kuaishou.py 
new/you-get-0.4.1011/src/you_get/extractors/kuaishou.py
--- old/you-get-0.4.995/src/you_get/extractors/kuaishou.py      1970-01-01 
01:00:00.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/kuaishou.py     2017-12-23 
18:27:08.000000000 +0100
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+
+import urllib.request
+import urllib.parse
+import json
+import re
+
+from ..util import log
+from ..common import get_content, download_urls, print_info, 
playlist_not_supported, url_size
+
+__all__ = ['kuaishou_download_by_url']
+
+
+def kuaishou_download_by_url(url, info_only=False, **kwargs):
+    page = get_content(url)
+    # size = video_list[-1]['size']
+    # result wrong size
+    try:
+        og_video_url = 
re.search(r"<meta\s+property=\"og:video:url\"\s+content=\"(.+?)\"/>", 
page).group(1)
+        video_url = og_video_url
+        title = url.split('/')[-1]
+        size = url_size(video_url)
+        video_format = video_url.split('.')[-1]
+        print_info(site_info, title, video_format, size)
+        if not info_only:
+            download_urls([video_url], title, video_format, size, **kwargs)
+    except:# extract image
+        og_image_url = 
re.search(r"<meta\s+property=\"og:image\"\s+content=\"(.+?)\"/>", page).group(1)
+        image_url = og_image_url
+        title = url.split('/')[-1]
+        size = url_size(image_url)
+        image_format = image_url.split('.')[-1]
+        print_info(site_info, title, image_format, size)
+        if not info_only:
+            download_urls([image_url], title, image_format, size, **kwargs)
+
+site_info = "kuaishou.com"
+download = kuaishou_download_by_url
+download_playlist = playlist_not_supported('kuaishou')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/le.py 
new/you-get-0.4.1011/src/you_get/extractors/le.py
--- old/you-get-0.4.995/src/you_get/extractors/le.py    2017-12-04 
04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/le.py   2017-12-23 
18:27:08.000000000 +0100
@@ -65,9 +65,6 @@
     if "stream_id" in kwargs and kwargs["stream_id"].lower() in 
support_stream_id:
         stream_id = kwargs["stream_id"]
     else:
-        print("Current Video Supports:")
-        for i in support_stream_id:
-            print("\t--format",i,"<URL>")
         if "1080p" in support_stream_id:
             stream_id = '1080p'
         elif "720p" in support_stream_id:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/extractors/youku.py 
new/you-get-0.4.1011/src/you_get/extractors/youku.py
--- old/you-get-0.4.995/src/you_get/extractors/youku.py 2017-12-04 
04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/src/you_get/extractors/youku.py        2017-12-23 
18:27:08.000000000 +0100
@@ -78,7 +78,7 @@
         self.api_error_code = None
         self.api_error_msg = None
 
-        self.ccode = '0507'
+        self.ccode = '0512'
         self.utid = None
 
     def youku_ups(self):
@@ -154,7 +154,7 @@
                     log.wtf('Cannot fetch vid')
 
         if kwargs.get('src') and kwargs['src'] == 'tudou':
-            self.ccode = '0501'
+            self.ccode = '0512'
 
         if kwargs.get('password') and kwargs['password']:
             self.password_protected = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/src/you_get/version.py 
new/you-get-0.4.1011/src/you_get/version.py
--- old/you-get-0.4.995/src/you_get/version.py  2017-12-04 04:18:45.000000000 
+0100
+++ new/you-get-0.4.1011/src/you_get/version.py 2017-12-23 18:27:08.000000000 
+0100
@@ -1,4 +1,4 @@
 #!/usr/bin/env python
 
 script_name = 'you-get'
-__version__ = '0.4.995'
+__version__ = '0.4.1011'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/you-get-0.4.995/tests/test.py 
new/you-get-0.4.1011/tests/test.py
--- old/you-get-0.4.995/tests/test.py   2017-12-04 04:18:45.000000000 +0100
+++ new/you-get-0.4.1011/tests/test.py  2017-12-23 18:27:08.000000000 +0100
@@ -2,25 +2,51 @@
 
 import unittest
 
-from you_get.extractors import *
+from you_get.extractors import (
+    imgur,
+    magisto,
+    youtube,
+    yixia,
+    bilibili,
+    douyin,
+)
 
 
 class YouGetTests(unittest.TestCase):
     def test_imgur(self):
-        imgur.download("http://imgur.com/WVLk5nD";, info_only=True)
-        imgur.download("http://imgur.com/gallery/WVLk5nD";, info_only=True)
+        imgur.download('http://imgur.com/WVLk5nD', info_only=True)
+        imgur.download('http://imgur.com/gallery/WVLk5nD', info_only=True)
 
     def test_magisto(self):
-        
magisto.download("http://www.magisto.com/album/video/f3x9AAQORAkfDnIFDA";, 
info_only=True)
+        magisto.download(
+            'http://www.magisto.com/album/video/f3x9AAQORAkfDnIFDA',
+            info_only=True
+        )
 
     def test_youtube(self):
-        youtube.download("http://www.youtube.com/watch?v=pzKerr0JIPA";, 
info_only=True)
-        youtube.download("http://youtu.be/pzKerr0JIPA";, info_only=True)
-        
youtube.download("http://www.youtube.com/attribution_link?u=/watch?v%3DldAKIzq7bvs%26feature%3Dshare";,
-                         info_only=True)
+        youtube.download(
+            'http://www.youtube.com/watch?v=pzKerr0JIPA', info_only=True
+        )
+        youtube.download('http://youtu.be/pzKerr0JIPA', info_only=True)
+        youtube.download(
+            
'http://www.youtube.com/attribution_link?u=/watch?v%3DldAKIzq7bvs%26feature%3Dshare',
  # noqa
+            info_only=True
+        )
 
     def test_yixia(self):
-        
yixia_download("http://m.miaopai.com/show/channel/vlvreCo4OZiNdk5Jn1WvdopmAvdIJwi8";,
 info_only=True)
+        yixia.download(
+            
'http://m.miaopai.com/show/channel/vlvreCo4OZiNdk5Jn1WvdopmAvdIJwi8',  # noqa
+            info_only=True
+        )
+
+    def test_bilibili(self):
+        bilibili.download(
+            'https://www.bilibili.com/video/av16907446/', info_only=True
+        )
+        bilibili.download(
+            'https://www.bilibili.com/video/av13228063/', info_only=True
+        )
+
 
 if __name__ == '__main__':
     unittest.main()


Reply via email to