Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exceptions raised while trying to do backup while saving videos #27

Open
LunarTulip opened this issue Jul 12, 2024 · 0 comments
Open

Exceptions raised while trying to do backup while saving videos #27

LunarTulip opened this issue Jul 12, 2024 · 0 comments

Comments

@LunarTulip
Copy link

Using tumblr-backup 1.0.3, installed this morning with [video,notes,jq] optional dependencies, I just attempted to run the following command:

tumblr-backup -j --save-video --save-audio --tag-index --posts-per-page=0 moonlit-tulip

Rather than backing up successfully, it threw a pair of exceptions, with the following console output:

moonlit-tulip: Backup complete: Found empty set of posts                        
Caught exception while saving post 57632338982:                                 
Traceback (most recent call last):                                              
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1928, in save_post
    f.write(self.get_post())                                                    
            ^^^^^^^^^^^^^^^                                                     
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1806, in get_post
    content = self.get_content()                                                
              ^^^^^^^^^^^^^^^^^^                                                
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1541, in get_content
    append_try('caption')                                                       
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1512, in append_try
    elt = re.sub(r"""(?i)(<img\s(?:[^>]*\s)?src\s*=\s*["'])(.*?)(["'][^>]*>)""",
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/re/__init__.py", line 186, in sub                   
    return _compile(pattern, flags).sub(repl, string, count)                    
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                    
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1697, in get_inline_image
    saved_name = self.download_media(image_url, filename=image_filename)        
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1785, in download_media
    return self._download_media_inner(url, get_path, path_parts, media_path)    
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1958, in _download_media_inner
    wget_retrieve(url, dstpath, post_id=self.ident, post_timestamp=self.post['timestamp'])
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 848, in __call__
    _retrieve_loop(                                                             
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 687, in _retrieve_loop
    err, doctype = gethttp(url, hstat, doctype, logger, retry_counter, use_dns_check)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 297, in gethttp
    resp = urlopen(url, use_dns_check, request_headers, preload_content=False, enforce_content_length=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 831, in urlopen
    return poolman.request('GET', url, headers=req_headers, retries=HTTP_RETRY, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/_request_methods.py", line 136, in request
    return self.request_encode_url(                                             
           ^^^^^^^^^^^^^^^^^^^^^^^^                                             
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/_request_methods.py", line 183, in request_encode_url
    return self.urlopen(method, url, **extra_kw)                                
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 231, in urlopen
    return super().urlopen(method, url, redirect, **kw)                         
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                         
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/poolmanager.py", line 443, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)                        
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                        
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
    response = self._make_request(                                              
               ^^^^^^^^^^^^^^^^^^^                                              
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
    response = conn.getresponse()                                               
               ^^^^^^^^^^^^^^^^^^                                               
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 173, in getresponse
    return WGHTTPResponse(                                                      
           ^^^^^^^^^^^^^^^                                                      
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 104, in __init__
    super().__init__(                                                           
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 593, in __init__
    super().__init__(                                                           
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 338, in __init__
    self.retries = retries                                                      
    ^^^^^^^^^^^^                                                                
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 406, in retries
    if retries is not None and retries.history:                                 
                               ^^^^^^^^^^^^^^^                                  
AttributeError: 'bool' object has no attribute 'history'                        
Unable to download video in post #170435533203                                  
Traceback (most recent call last):style                                         
  File "/home/alyssa/.local/bin/tumblr-backup", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 2394, in main
    tb.backup(account, options.prev_archives[i] if options.prev_archives else None)
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1441, in backup
    build_index()
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 1233, in build_index
    get_avatar(prev_archive, no_get=self.options.no_get)
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/main.py", line 679, in get_avatar
    wget_retrieve(url, avatar_dest, adjust_basename=adj_bn)
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 848, in __call__
    _retrieve_loop(
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 687, in _retrieve_loop
    err, doctype = gethttp(url, hstat, doctype, logger, retry_counter, use_dns_check)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 297, in gethttp
    resp = urlopen(url, use_dns_check, request_headers, preload_content=False, enforce_content_length=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 831, in urlopen
    return poolman.request('GET', url, headers=req_headers, retries=HTTP_RETRY, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/_request_methods.py", line 136, in request
    return self.request_encode_url(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/_request_methods.py", line 183, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 231, in urlopen
    return super().urlopen(method, url, redirect, **kw)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/poolmanager.py", line 443, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/connectionpool.py", line 789, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/connectionpool.py", line 536, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 173, in getresponse
    return WGHTTPResponse(
           ^^^^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/tumblr_backup/wget.py", line 104, in __init__
    super().__init__(
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 593, in __init__
    super().__init__(
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 338, in __init__
    self.retries = retries
    ^^^^^^^^^^^^
  File "/home/alyssa/.local/share/pipx/venvs/tumblr-backup/lib/python3.12/site-packages/urllib3/response.py", line 406, in retries
    if retries is not None and retries.history:
                               ^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'history'

The two exception-raising posts, for reference, are here and here. The former strikes me as particularly interesting, since, to my perception when viewing the page as opposed to the source code, it doesn't seem to contain a video at all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant