Merge branch 'master' into fork_master
authorFilippo Valsorda <filippo.valsorda@gmail.com>
Tue, 11 Dec 2012 11:15:16 +0000 (12:15 +0100)
committerFilippo Valsorda <filippo.valsorda@gmail.com>
Tue, 11 Dec 2012 11:15:16 +0000 (12:15 +0100)
Conflicts:
.travis.yml

1  2 
.travis.yml
youtube_dl/__init__.py

diff --combined .travis.yml
index c6c758fd555e29dca0941ae877dcb86a8a582af0,0c62e4729681c7a7a865bcedad24f8b6b2d76e5a..0aabce6a73cf96dc70bff38901a6e4f98521bf17
@@@ -1,13 -1,11 +1,13 @@@
  language: python
 -#specify the python version
  python:
    - "2.6"
    - "2.7"
 -notifications:
 -  irc: "irc.freenode.org#youtube-dl"
 -#command to install the setup
 -install:
 -# command to run tests
 +#  - "3.3"
- script: nosetests test --nocapture
+ script: nosetests test --verbose
 +notifications:
 +  email:
 +    - filippo.valsorda@gmail.com
 +  irc:
 +    channels:
 +      - "irc.freenode.org#youtube-dl"
 +    skip_join: true
diff --combined youtube_dl/__init__.py
index 8e46dfea946d04046bbf943899f6d41a7c5e1c54,e6cd7f5d4ec2bdbcfe6ab8462faed51c1128c2f3..d7e1a91ada0ce29df8c2f0dca23d93a8e4d43acc
@@@ -23,6 -23,12 +23,6 @@@ __authors__  = 
      )
  
  __license__ = 'Public Domain'
 -__version__ = '2012.11.29'
 -
 -UPDATE_URL = 'https://raw.github.com/rg3/youtube-dl/master/youtube-dl'
 -UPDATE_URL_VERSION = 'https://raw.github.com/rg3/youtube-dl/master/LATEST_VERSION'
 -UPDATE_URL_EXE = 'https://raw.github.com/rg3/youtube-dl/master/youtube-dl.exe'
 -
  
  import getpass
  import optparse
@@@ -35,46 -41,34 +35,46 @@@ import sy
  import warnings
  
  from .utils import *
 +from .version import __version__
  from .FileDownloader import *
  from .InfoExtractors import *
  from .PostProcessor import *
  
  def updateSelf(downloader, filename):
 -    ''' Update the program file with the latest version from the repository '''
 -    # Note: downloader only used for options
 +    """Update the program file with the latest version from the repository"""
  
 -    if not os.access(filename, os.W_OK):
 -        sys.exit('ERROR: no write permissions on %s' % filename)
 +    # TODO: at least, check https certificates
  
 -    downloader.to_screen(u'Updating to latest version...')
 +    from zipimport import zipimporter
  
 -    urlv = compat_urllib_request.urlopen(UPDATE_URL_VERSION)
 -    newversion = urlv.read().strip()
 -    if newversion == __version__:
 -        downloader.to_screen(u'youtube-dl is up-to-date (' + __version__ + ')')
 -        return
 -    urlv.close()
 +    API_URL = "https://api.github.com/repos/rg3/youtube-dl/downloads"
 +    BIN_URL = "https://github.com/downloads/rg3/youtube-dl/youtube-dl"
 +    EXE_URL = "https://github.com/downloads/rg3/youtube-dl/youtube-dl.exe"
 +
 +    if hasattr(sys, "frozen"): # PY2EXE
 +        if not os.access(filename, os.W_OK):
 +            sys.exit('ERROR: no write permissions on %s' % filename)
 +
 +        downloader.to_screen(u'Updating to latest version...')
 +
 +        urla = compat_urllib_request.urlopen(API_URL)
 +        download = filter(lambda x: x["name"] == "youtube-dl.exe", json.loads(urla.read()))
 +        if not download:
 +            downloader.to_screen(u'ERROR: can\'t find the current version. Please try again later.')
 +            return
 +        newversion = download[0]["description"].strip()
 +        if newversion == __version__:
 +            downloader.to_screen(u'youtube-dl is up-to-date (' + __version__ + ')')
 +            return
 +        urla.close()
  
 -    if hasattr(sys, "frozen"): #py2exe
          exe = os.path.abspath(filename)
          directory = os.path.dirname(exe)
          if not os.access(directory, os.W_OK):
              sys.exit('ERROR: no write permissions on %s' % directory)
  
          try:
 -            urlh = compat_urllib_request.urlopen(UPDATE_URL_EXE)
 +            urlh = compat_urllib_request.urlopen(EXE_URL)
              newcontent = urlh.read()
              urlh.close()
              with open(exe + '.new', 'wb') as outf:
@@@ -97,25 -91,9 +97,25 @@@ del "%s
          except (IOError, OSError) as err:
              sys.exit('ERROR: unable to overwrite current version')
  
 -    else:
 +    elif isinstance(globals().get('__loader__'), zipimporter): # UNIX ZIP
 +        if not os.access(filename, os.W_OK):
 +            sys.exit('ERROR: no write permissions on %s' % filename)
 +
 +        downloader.to_screen(u'Updating to latest version...')
 +
 +        urla = compat_urllib_request.urlopen(API_URL)
 +        download = [x for x in json.loads(urla.read().decode('utf8')) if x["name"] == "youtube-dl"]
 +        if not download:
 +            downloader.to_screen(u'ERROR: can\'t find the current version. Please try again later.')
 +            return
 +        newversion = download[0]["description"].strip()
 +        if newversion == __version__:
 +            downloader.to_screen(u'youtube-dl is up-to-date (' + __version__ + ')')
 +            return
 +        urla.close()
 +
          try:
 -            urlh = compat_urllib_request.urlopen(UPDATE_URL)
 +            urlh = compat_urllib_request.urlopen(BIN_URL)
              newcontent = urlh.read()
              urlh.close()
          except (IOError, OSError) as err:
          except (IOError, OSError) as err:
              sys.exit('ERROR: unable to overwrite current version')
  
 +    else:
 +        downloader.to_screen(u'It looks like you installed youtube-dl with pip or setup.py. Please use that to update.')
 +        return
 +
      downloader.to_screen(u'Updated youtube-dl. Restart youtube-dl to use the new version.')
  
  def parseOpts():
      general.add_option('--list-extractors',
              action='store_true', dest='list_extractors',
              help='List all supported extractors and the URLs they would handle', default=False)
+     general.add_option('--test', action='store_true', dest='test', default=False, help=optparse.SUPPRESS_HELP)
  
      selection.add_option('--playlist-start',
              dest='playliststart', metavar='NUMBER', help='playlist video to start at (default is %default)', default=1)
@@@ -551,6 -526,7 +552,7 @@@ def _real_main()
          'max_downloads': opts.max_downloads,
          'prefer_free_formats': opts.prefer_free_formats,
          'verbose': opts.verbose,
+         'test': opts.test,
          })
  
      if opts.verbose: