Merge remote-tracking branch 'tobidope/gameone'
authorPhilipp Hagemeister <phihag@phihag.de>
Fri, 11 Jul 2014 09:17:57 +0000 (11:17 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Fri, 11 Jul 2014 09:17:57 +0000 (11:17 +0200)
1  2 
youtube_dl/extractor/__init__.py
youtube_dl/utils.py

index 5a273fc0f904de744df97bdcdcfaefe3f3660002,a294f66aea14e6bb508d9726d06a21eef9353f80..fcc7d0b58cc1f73d410c51030b690184ab4edacc
@@@ -3,7 -3,6 +3,7 @@@ from .addanime import AddAnimeI
  from .aftonbladet import AftonbladetIE
  from .anitube import AnitubeIE
  from .aol import AolIE
 +from .allocine import AllocineIE
  from .aparat import AparatIE
  from .appletrailers import AppleTrailersIE
  from .archiveorg import ArchiveOrgIE
@@@ -64,7 -63,6 +64,7 @@@ from .dailymotion import 
  from .daum import DaumIE
  from .dotsub import DotsubIE
  from .dreisat import DreiSatIE
 +from .drtv import DRTVIE
  from .defense import DefenseGouvFrIE
  from .discovery import DiscoveryIE
  from .divxstage import DivxStageIE
@@@ -105,14 -103,13 +105,15 @@@ from .freesound import FreesoundI
  from .freespeech import FreespeechIE
  from .funnyordie import FunnyOrDieIE
  from .gamekings import GamekingsIE
+ from .gameone import GameOneIE
  from .gamespot import GameSpotIE
  from .gametrailers import GametrailersIE
  from .gdcvault import GDCVaultIE
  from .generic import GenericIE
  from .googleplus import GooglePlusIE
  from .googlesearch import GoogleSearchIE
 +from .gorillavid import GorillaVidIE
 +from .goshgay import GoshgayIE
  from .hark import HarkIE
  from .helsinki import HelsinkiIE
  from .hentaistigma import HentaiStigmaIE
@@@ -146,15 -143,10 +147,15 @@@ from .khanacademy import KhanAcademyI
  from .kickstarter import KickStarterIE
  from .keek import KeekIE
  from .kontrtube import KontrTubeIE
 +from .ku6 import Ku6IE
  from .la7 import LA7IE
  from .lifenews import LifeNewsIE
  from .liveleak import LiveLeakIE
 -from .livestream import LivestreamIE, LivestreamOriginalIE
 +from .livestream import (
 +    LivestreamIE,
 +    LivestreamOriginalIE,
 +    LivestreamShortenerIE,
 +)
  from .lynda import (
      LyndaIE,
      LyndaCourseIE
@@@ -172,13 -164,11 +173,13 @@@ from .mpora import MporaI
  from .mofosex import MofosexIE
  from .mooshare import MooshareIE
  from .morningstar import MorningstarIE
 +from .motherless import MotherlessIE
  from .motorsport import MotorsportIE
  from .moviezine import MoviezineIE
  from .movshare import MovShareIE
  from .mtv import (
      MTVIE,
 +    MTVServicesEmbeddedIE,
      MTVIggyIE,
  )
  from .musicplayon import MusicPlayOnIE
@@@ -205,11 -195,7 +206,11 @@@ from .normalboots import NormalbootsI
  from .novamov import NovaMovIE
  from .nowness import NownessIE
  from .nowvideo import NowVideoIE
 -from .nrk import NRKIE
 +from .npo import NPOIE
 +from .nrk import (
 +    NRKIE,
 +    NRKTVIE,
 +)
  from .ntv import NTVIE
  from .nytimes import NYTimesIE
  from .nuvid import NuvidIE
@@@ -227,7 -213,6 +228,7 @@@ from .pornotube import PornotubeI
  from .prosiebensat1 import ProSiebenSat1IE
  from .pyvideo import PyvideoIE
  from .radiofrance import RadioFranceIE
 +from .rai import RaiIE
  from .rbmaradio import RBMARadioIE
  from .redtube import RedTubeIE
  from .ringtv import RingTVIE
@@@ -264,7 -249,6 +265,7 @@@ from .soundcloud import 
      SoundcloudUserIE,
      SoundcloudPlaylistIE
  )
 +from .soundgasm import SoundgasmIE
  from .southparkstudios import (
      SouthParkStudiosIE,
      SouthparkDeIE,
  from .space import SpaceIE
  from .spankwire import SpankwireIE
  from .spiegel import SpiegelIE
 +from .spiegeltv import SpiegeltvIE
  from .spike import SpikeIE
  from .stanfordoc import StanfordOpenClassroomIE
  from .steam import SteamIE
  from .streamcloud import StreamcloudIE
  from .streamcz import StreamCZIE
 +from .swrmediathek import SWRMediathekIE
  from .syfy import SyfyIE
  from .sztvhu import SztvHuIE
 +from .tagesschau import TagesschauIE
 +from .teachertube import (
 +    TeacherTubeIE,
 +    TeacherTubeUserIE,
 +)
 +from .teachingchannel import TeachingChannelIE
  from .teamcoco import TeamcocoIE
  from .techtalks import TechTalksIE
  from .ted import TEDIE
 +from .tenplay import TenPlayIE
  from .testurl import TestURLIE
  from .tf1 import TF1IE
  from .theplatform import ThePlatformIE
@@@ -320,7 -295,6 +321,7 @@@ from .veehd import VeeHDI
  from .veoh import VeohIE
  from .vesti import VestiIE
  from .vevo import VevoIE
 +from .vh1 import VH1IE
  from .viddler import ViddlerIE
  from .videobam import VideoBamIE
  from .videodetective import VideoDetectiveIE
@@@ -338,17 -312,14 +339,17 @@@ from .vimeo import 
      VimeoReviewIE,
      VimeoWatchLaterIE,
  )
 +from .vimple import VimpleIE
  from .vine import (
      VineIE,
      VineUserIE,
  )
  from .viki import VikiIE
  from .vk import VKIE
 +from .vodlocker import VodlockerIE
  from .vube import VubeIE
  from .vuclip import VuClipIE
 +from .vulture import VultureIE
  from .washingtonpost import WashingtonPostIE
  from .wat import WatIE
  from .wdr import (
@@@ -360,7 -331,6 +361,7 @@@ from .weibo import WeiboI
  from .wimp import WimpIE
  from .wistia import WistiaIE
  from .worldstarhiphop import WorldStarHipHopIE
 +from .wrzuta import WrzutaIE
  from .xbef import XBefIE
  from .xhamster import XHamsterIE
  from .xnxx import XNXXIE
diff --combined youtube_dl/utils.py
index 09312e81a485de8d04f7757eb2e26a80a10f161c,3e7947f5d4c33b0c1282695467a1244ba7ad74a0..2cba2bfc1c0cb3c1c4bf7a06cf92dfbd500fccfb
@@@ -540,16 -540,6 +540,16 @@@ def encodeFilename(s, for_subprocess=Fa
          encoding = 'utf-8'
      return s.encode(encoding, 'ignore')
  
 +
 +def encodeArgument(s):
 +    if not isinstance(s, compat_str):
 +        # Legacy code that uses byte strings
 +        # Uncomment the following line after fixing all post processors
 +        #assert False, 'Internal error: %r should be of type %r, is %r' % (s, compat_str, type(s))
 +        s = s.decode('ascii')
 +    return encodeFilename(s, True)
 +
 +
  def decodeOption(optval):
      if optval is None:
          return optval
@@@ -775,7 -765,7 +775,7 @@@ class YoutubeDLHandler(compat_urllib_re
      https_response = http_response
  
  
- def parse_iso8601(date_str):
+ def parse_iso8601(date_str, delimiter='T'):
      """ Return a UNIX timestamp from the given date """
  
      if date_str is None:
              timezone = datetime.timedelta(
                  hours=sign * int(m.group('hours')),
                  minutes=sign * int(m.group('minutes')))
-     dt = datetime.datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S') - timezone
+     date_format =  '%Y-%m-%d{0}%H:%M:%S'.format(delimiter)
+     dt = datetime.datetime.strptime(date_str, date_format) - timezone
      return calendar.timegm(dt.timetuple())
  
  
@@@ -816,9 -806,6 +816,9 @@@ def unified_strdate(date_str)
          '%d %b %Y',
          '%B %d %Y',
          '%b %d %Y',
 +        '%b %dst %Y %I:%M%p',
 +        '%b %dnd %Y %I:%M%p',
 +        '%b %dth %Y %I:%M%p',
          '%Y-%m-%d',
          '%d.%m.%Y',
          '%d/%m/%Y',
@@@ -1442,15 -1429,3 +1442,15 @@@ def qualities(quality_ids)
  
  
  DEFAULT_OUTTMPL = '%(title)s-%(id)s.%(ext)s'
 +
 +try:
 +    subprocess_check_output = subprocess.check_output
 +except AttributeError:
 +    def subprocess_check_output(*args, **kwargs):
 +        assert 'input' not in kwargs
 +        p = subprocess.Popen(*args, stdout=subprocess.PIPE, **kwargs)
 +        output, _ = p.communicate()
 +        ret = p.poll()
 +        if ret:
 +            raise subprocess.CalledProcessError(ret, p.args, output=output)
 +        return output