Philipp Hagemeister
6803655ced
Merge pull request #1622 from rbrito/fix-extension
...
extractor: youtube: Set extension of AAC audio formats to m4a.
2013-10-22 15:16:26 -07:00
Philipp Hagemeister
df1c39ec5c
release 2013.10.23
2013-10-23 00:07:27 +02:00
Philipp Hagemeister
80f55a9511
release 2013.10.22
2013-10-22 22:35:13 +02:00
Philipp Hagemeister
7853cc5ae1
Merge remote-tracking branch 'origin/master'
...
Conflicts:
youtube_dl/YoutubeDL.py
2013-10-22 22:30:06 +02:00
Philipp Hagemeister
586a91b67f
Expand tilde in template ( Fixes #1639 )
2013-10-22 22:28:26 +02:00
Jaime Marquínez Ferrándiz
b028e96144
[arte.tv:creative] Update the title of the test
2013-10-22 21:06:06 +02:00
Jaime Marquínez Ferrándiz
ce68b5907c
[nhl:videocenter] Fix playlist title extraction
2013-10-22 21:01:16 +02:00
Jaime Marquínez Ferrándiz
fe7e0c9825
Style fixes in YoutubeDL.py
...
Fixed some of the problems reported by pep8
2013-10-22 14:49:34 +02:00
Jaime Marquínez Ferrándiz
12893efe01
Respect the download parameter in YoutubeDL.process_video_result if the extractor handle the format selection
2013-10-22 00:01:59 +02:00
Joshua Elsasser
a6387bfd3c
[vimeo] Implement the new format selection system (closes PR #996 )
...
Rebased and deleted some parts to use the new system instead of copying the one from YoutubeIE
2013-10-21 23:16:11 +02:00
Jaime Marquínez Ferrándiz
f6a54188c2
[youtube] Use 'node is None' when checking if the video has automatic captions
...
It had stopped working and it reports a FutureWarning
2013-10-21 16:28:55 +02:00
Jaime Marquínez Ferrándiz
cbbd9a9c69
Fix the duration field for the VideoDetective and InternetVideoArchive tests
...
Also remove the use of the old format system and the comment
2013-10-21 15:07:33 +02:00
Jaime Marquínez Ferrándiz
685a9cd2f1
[googleplus] Fix upload_date extraction
2013-10-21 15:00:21 +02:00
Jaime Marquínez Ferrándiz
182a107877
[arte] Set the format_note and the format_id fields ( closes #1628 )
2013-10-21 14:42:30 +02:00
Jaime Marquínez Ferrándiz
8c51aa6506
The 'format' field now defaults to '{format_id} - {width}x{height}{format_note}'
...
Following the YoutubeIE format. The 'format_note' gives additional info about the format, for example '3D' or 'DASH video'.
2013-10-21 14:42:06 +02:00
Jaime Marquínez Ferrándiz
3fd39e37f2
YoutubeDL: remove method that came from FileDownloader
2013-10-21 13:52:24 +02:00
Jaime Marquínez Ferrándiz
49e86983e7
Allow to use the extension for the format selection
...
The best format with the extension is downloaded.
2013-10-21 13:31:55 +02:00
Jaime Marquínez Ferrándiz
a9c58ad945
Accept requested formats to be in the format 35/best ( closes #1552 )
...
The format selection code is now an independent function.
2013-10-21 13:19:58 +02:00
Philipp Hagemeister
f8b45beacc
Merge remote-tracking branch 'rbrito/set-age'
...
Conflicts:
youtube_dl/extractor/xhamster.py
2013-10-19 21:16:14 +02:00
Philipp Hagemeister
9d92015d43
[xhamster] Add support for age_limit (Instead of #1627 )
2013-10-19 21:09:48 +02:00
Rogério Brito
50a6150ed9
extractor: Set age limit on some adult-related extractors.
...
More age limit of videos for adult-related sites.
Note that, for redtube, I explicitly left the variable containing the age
limit, since the comment justifying the age limit is a good thing to have.
That being said, I included the age limit field on the test, to better
reflect what the information extractor does (even if it may not break the
automated tests).
Signed-off-by: Rogério Brito <rbrito@ime.usp.br>
2013-10-19 14:19:25 -03:00
rzhxeo
b0505eb611
[CinemassacreIE] Fix information extraction
2013-10-19 16:46:17 +02:00
Rogério Brito
8ed6b34477
extractor: Set age limit on some adult-related extractors.
...
This is similar in spirit to what was done in commit 8e590a117f
.
Signed-off-by: Rogério Brito <rbrito@ime.usp.br>
2013-10-18 19:32:37 -03:00
Rogério Brito
f6f1fc9286
extractor: youtube: Fix extension of dash formats.
...
While we are at it, separate the audio formats from the video formats.
Signed-off-by: Rogério Brito <rbrito@ime.usp.br>
2013-10-18 18:53:00 -03:00
Philipp Hagemeister
8e590a117f
[xnxx] Add age_limit
2013-10-18 23:35:17 +02:00
Philipp Hagemeister
b186d949cf
release 2013.10.18.2
2013-10-18 23:22:54 +02:00
Philipp Hagemeister
41fd7c7e60
Add new option --abort-on-error
2013-10-18 23:09:32 +02:00
Philipp Hagemeister
fdefe96bf2
Document %(format)s ( #1612 )
2013-10-18 23:09:08 +02:00
Rogério Brito
16f36a6fc9
extractor: youtube: Set extension of AAC audio formats to m4a.
...
This, in particular, eases downloading both audio and videos in DASH formats
before muxing them, which alleviates the problem that I exposed on issue
Furthermore, one may argue that this is, indeed, the case for correctness's
sake.
Signed-off-by: Rogério Brito <rbrito@ime.usp.br>
2013-10-18 17:50:55 -03:00
Philipp Hagemeister
cce722b79c
Add metavar to --cache-dir
2013-10-18 11:50:48 +02:00
Philipp Hagemeister
82697fb2ab
release 2013.10.18.1
2013-10-18 11:45:30 +02:00
Philipp Hagemeister
53c1d3ef49
Check for embedded YouTube player ( Fixes #1616 )
2013-10-18 11:44:57 +02:00
Philipp Hagemeister
8e55e9abfc
release 2013.10.18
2013-10-18 11:17:21 +02:00
Philipp Hagemeister
7c58ef3275
[tudou] Fix title regex ( Fixes #1614 )
2013-10-18 11:16:20 +02:00
Philipp Hagemeister
416a5efce7
fix typos
2013-10-18 00:49:45 +02:00
Philipp Hagemeister
f4d96df0f1
Extend #980 with --max-quality support
2013-10-18 00:46:35 +02:00
Philipp Hagemeister
1c1218fefc
Merge remote-tracking branch 'jaimeMF/format_selection'
2013-10-18 00:17:03 +02:00
Jaime Marquínez Ferrándiz
d21ab29200
Add an extractor for techtalks.tv ( closes #1606 )
2013-10-17 08:20:58 +02:00
Philipp Hagemeister
54ed626cf8
release 2013.10.17
2013-10-17 02:20:26 +02:00
Philipp Hagemeister
a733eb6c53
[youtube] Do not crash if caption info is missing altogether ( Fixes #1610 )
2013-10-17 02:19:19 +02:00
Philipp Hagemeister
591454798d
[brightcove] Raise error if playlist is empty ( #1608 )
2013-10-17 01:02:17 +02:00
Philipp Hagemeister
38604f1a4f
Merge remote-tracking branch 'origin/master'
2013-10-17 00:55:06 +02:00
Philipp Hagemeister
2d0efe70a6
[brightcove] Fix more broken XML ( #1608 )
2013-10-17 00:46:11 +02:00
Jaime Marquínez Ferrándiz
bfd14b1b2f
Add an extractor for rutube.ru ( closes #1136 )
...
It downloads with a m3u8 manifest, requires ffmpeg.
2013-10-16 16:57:40 +02:00
Philipp Hagemeister
8abbf43f21
release 2013.10.15
2013-10-15 12:06:45 +02:00
Philipp Hagemeister
10eaae48ff
Merge branch 'master' of github.com:rg3/youtube-dl
2013-10-15 12:05:24 +02:00
Philipp Hagemeister
9d4660cab1
[generic] Support embedded vimeo videos ( #1602 )
2013-10-15 12:05:13 +02:00
Jaime Marquínez Ferrándiz
9d74e308f7
[sztvhu] Fix the title extraction
2013-10-15 08:22:59 +02:00
Jaime Marquínez Ferrándiz
8381a92120
[websurg] Skipt the test
...
It needs login information.
2013-10-15 08:12:30 +02:00
Philipp Hagemeister
cd054fc491
Use upper-case for prefixes in help to signify bytes ( #1043 )
2013-10-15 04:53:02 +02:00
Philipp Hagemeister
f219743e33
Merge remote-tracking branch 'alphapapa/master'
2013-10-15 04:52:07 +02:00
Philipp Hagemeister
4f41664de8
Merge remote-tracking branch 'Rudloff/websurg'
2013-10-15 02:11:33 +02:00
Philipp Hagemeister
a4fd04158e
Do not import *
2013-10-15 02:07:26 +02:00
Philipp Hagemeister
a623df4c7b
Credit @Elbandi for sztvhu
2013-10-15 01:34:47 +02:00
Philipp Hagemeister
7cf67fbe29
[sztvhu] Simplify
2013-10-15 01:33:20 +02:00
Philipp Hagemeister
3ddf1a6d01
Merge remote-tracking branch 'Elbandi/master'
2013-10-15 01:26:34 +02:00
Philipp Hagemeister
850555c484
Merge remote-tracking branch 'origin/master'
2013-10-15 01:25:47 +02:00
Philipp Hagemeister
9ed3bdc64d
[tudou] Add support for youku links ( Closes #1571 )
2013-10-15 01:20:04 +02:00
Jaime Marquínez Ferrándiz
c45aa56080
[gamespot] Fix video extraction ( fixes #1587 )
2013-10-14 16:46:07 +02:00
Philipp Hagemeister
7394b8db3b
Merge remote-tracking branch 'origin/master'
2013-10-14 16:07:53 +02:00
Andras Elso
f9b3d7af47
Add an extractor for Szombathelyi TV
2013-10-14 13:07:47 +02:00
Filippo Valsorda
ea62a2da46
add VideoPremium.tv RTMP support
2013-10-14 01:32:47 -04:00
Jai Grimshaw
1fb07d10a3
[youtube] Adds #1312 Download annotations
...
Adds #1321 Download annotations from youtube
Annotations are downloaded and written to a .annotations.xml file using the https://www.youtube.com/annotations_invideo?features=1&legacy=1&video_id=$VIDEOID API.
Added unit test for annotations.
2013-10-14 16:22:27 +11:00
Philipp Hagemeister
9378ae6e1d
[youku] Allow shortcut youku:ID and make non-matching groups non-matching ( #1571 )
2013-10-13 15:55:05 +02:00
Philipp Hagemeister
06723d47c4
Merge remote-tracking branch 'jaimeMF/opus-fix'
2013-10-13 15:26:10 +02:00
Jaime Marquínez Ferrándiz
69a0c470b5
[arte] Add an extractor for future.arte.tv ( closes #1593 )
2013-10-13 14:21:13 +02:00
Jaime Marquínez Ferrándiz
c40f5cf45c
[arte] add an extractor for creative.arte.tv ( #1593 )
...
The +7 videos now use an independent extractor that is also used for the creative videos
2013-10-13 13:54:31 +02:00
Jaime Marquínez Ferrándiz
4b7b839f24
Add an extractor for rottentomatoes.com and improve InternetVideoArchiveIE to get the best quality
2013-10-12 22:22:31 +02:00
Jaime Marquínez Ferrándiz
3d60d33773
Add an extractor for videodetective.com ( closes #262 )
...
It uses the internetvideoarchive.com platform.
2013-10-12 21:36:17 +02:00
Jaime Marquínez Ferrándiz
d7e66d39a0
Add an extractor for internetvideoarchive.com videos
...
It's used by videodetective.com
2013-10-12 21:34:04 +02:00
Filippo Valsorda
f5e54a1fda
add support for NowVideo.ch
2013-10-12 13:11:03 -04:00
Jaime Marquínez Ferrándiz
4eb7f1d12e
FFmpegPostProcessor: print the command line used if the --verbose option is given
2013-10-12 13:49:27 +02:00
Jaime Marquínez Ferrándiz
0f6d12e43c
Don't set the '-aq' option with the opus format ( fixes #1263 )
2013-10-12 13:30:30 +02:00
Joey Adams
3283533149
Fix Brightcove detection when another Flash object is on the page
...
The regex used non-greedy match, but alas it failed on input like this:
<object class="...> ... class="BrightcoveExperience"
It captured two objects and the intervening HTML. This commit fixes this by
not allowing a ">" to appear before BrightcoveExperience.
Video in question: http://www.harpercollinschildrens.com/feature/petethecat/
2013-10-11 21:52:33 -04:00
Jaime Marquínez Ferrándiz
8032e31f2d
Merge pull request #1558 from rzhxeo/cinemassacre
...
Add support for http://cinemassacre.com
2013-10-11 20:38:26 +02:00
Jaime Marquínez Ferrándiz
d2f9cdb205
Merge branch 'cinemassacre' of github.com:rzhxeo/youtube-dl into rzhxeo-cinemassacre
2013-10-11 19:53:27 +02:00
Jaime Marquínez Ferrándiz
8016c92297
Fix the default values of format_id and format
2013-10-11 16:34:49 +02:00
Jaime Marquínez Ferrándiz
e028d0d1e3
Implement the prefer_free_formats in YoutubeDL
2013-10-11 16:34:49 +02:00
Jaime Marquínez Ferrándiz
79819f58f2
Default 'format' field to {width}x{height}
...
If width is None, use {height}p and if height is None, '???'
2013-10-11 16:34:49 +02:00
Jaime Marquínez Ferrándiz
6ff000b888
Do not handle format selection for IEs that already handle it
2013-10-11 16:34:48 +02:00
Jaime Marquínez Ferrándiz
99e206d508
Implement the max quality option in YoutubeDL
2013-10-11 16:34:48 +02:00
Jaime Marquínez Ferrándiz
dd82ffea0c
Implement format selection in YoutubeDL
...
Now the IEs can set a formats field in the info_dict, with the formats ordered from worst to best quality. It's a list of dicts with the following fields:
* Mandatory: url and ext
* Optional: format and format_id
The format_id is used for choosing which formats have to be downloaded.
Now a video result is processed by the method process_video_result.
2013-10-11 16:34:48 +02:00
Jaime Marquínez Ferrándiz
3823342d9d
[arte] Prepare for generic format support ( #980 )
2013-10-11 16:33:31 +02:00
Jaime Marquínez Ferrándiz
91dbaef406
[nhl] Add an extractor for videocenter's categories ( #1586 )
...
It downloads the last 12 videos.
2013-10-11 14:33:26 +02:00
Jaime Marquínez Ferrándiz
9026dd3858
Make sure it only runs rtmpdump one time in test mode and return True if the download can be resumed
2013-10-11 12:42:15 +02:00
Jaime Marquínez Ferrándiz
81d7f1928c
Merge pull request #1565 from rzhxeo/rtmpdump_test
...
Only download 1 sec. with rtmpdump in test mode
2013-10-11 12:40:18 +02:00
Jaime Marquínez Ferrándiz
bc4f29170f
Add a PostProcessor for adding metadata to the file ( closes #1570 )
...
It currently sets the title, the date and the author values.
2013-10-11 11:19:09 +02:00
Jaime Marquínez Ferrándiz
cb354c8f62
[yahoo] Download the info from another page
...
The 'meta' field is not always in the video webpage
2013-10-10 21:01:45 +02:00
Jaime Marquínez Ferrándiz
1cbb27b151
[gamespot] Mark as broken ( #1587 )
2013-10-10 19:55:52 +02:00
Jaime Marquínez Ferrándiz
0ab4ff6378
[mtv] Strip the description
...
There were some tabs and newlines added around the string.
2013-10-10 19:53:44 +02:00
Jaime Marquínez Ferrándiz
63da13e829
Add an extractor for faz.net ( closes #1582 )
2013-10-10 19:37:17 +02:00
Jaime Marquínez Ferrándiz
2e1fa03bf5
Add an extractor for video.nhl.com ( closes #1586 )
2013-10-10 16:16:49 +02:00
Philipp Hagemeister
8f1ae18a18
release 2013.10.09
2013-10-09 23:50:47 +02:00
Philipp Hagemeister
57da92b7df
[youtube] Do not recognize attribution link as user ( Fixes #1573 )
2013-10-09 23:50:38 +02:00
Jaime Marquínez Ferrándiz
df4f632dbc
Merge pull request #1584 from wingsuit/master
...
Tiny tpo
2013-10-09 07:44:06 -07:00
Jaime Marquínez Ferrándiz
a34c2faae4
[youtube] set the 'name' parameter in the subtitles url ( fixes #1577 )
2013-10-09 16:41:36 +02:00
Tom
1d368c7589
Tiny tpo
2013-10-09 21:56:09 +08:00
Jaime Marquínez Ferrándiz
88bd97e34c
[vevo] Some improvements ( fixes #1580 )
...
Extract the info from http://videoplayer.vevo.com/VideoService/AuthenticateVideo?isrc={id}
Some videos don't have an smil manifest, extract the video urls directly from the json and use the last version of the video.
Extract all the available formats and set the 'formats' field of the result
2013-10-08 21:25:38 +02:00
Jaime Marquínez Ferrándiz
2ae3edb1cf
Fix the printing of the proxy map in debug mode
...
The proxies have to be extracted from the opener.handlers
2013-10-07 21:10:31 +02:00
Philipp Hagemeister
a27b9e8bd5
Move opener setup into a separate helper function
2013-10-07 19:01:47 +02:00
Philipp Hagemeister
4481a754e4
release 2013.10.07
2013-10-07 14:34:19 +02:00
Philipp Hagemeister
faa6ef6bc8
[jeuxvideo] Improve code quality ( fixes #1567 )
2013-10-07 14:33:23 +02:00
Philipp Hagemeister
15870e90b0
Restore warning when user forgets to quote URL ( #1396 )
2013-10-07 12:21:24 +02:00
rzhxeo
8e4f824365
Remove test parameter from _download_with_rtmpdump
2013-10-06 22:04:32 +02:00
Jaime Marquínez Ferrándiz
387ae5f30b
[vimeo] Recognize urls ending in a slash ( fixes #1242 )
2013-10-06 21:56:23 +02:00
rzhxeo
ad7a071ab6
Only download 1 sec. with rtmpdump in test mode
2013-10-06 20:55:24 +02:00
Philipp Hagemeister
1310bf2474
[redtube] add age_limit
2013-10-06 16:39:35 +02:00
Philipp Hagemeister
b24f347190
Merge branch 'download-archive'
...
Conflicts:
youtube_dl/YoutubeDL.py
youtube_dl/__init__.py
2013-10-06 16:30:26 +02:00
Philipp Hagemeister
ee6c9f95e1
Remove superfluous parenthesis
2013-10-06 16:28:36 +02:00
Philipp Hagemeister
2a69c6b879
Merge branch 'age_limit'
2013-10-06 16:23:18 +02:00
Philipp Hagemeister
cfadd183c4
Call extracted property age_limit everywhere
2013-10-06 16:23:06 +02:00
Philipp Hagemeister
e484c81f0c
[generic] Clarify error messages
2013-10-06 16:03:18 +02:00
Philipp Hagemeister
7e5e8306fd
release 2013.10.06
2013-10-06 07:13:14 +02:00
Philipp Hagemeister
41e8bca4d0
[viddler] Add basic support ( Fixes #1520 )
2013-10-06 07:12:47 +02:00
Philipp Hagemeister
8dbe9899a9
Allow users to specify an age limit ( fixes #1545 )
...
With these changes, users can now restrict what videos are downloaded by the intented audience, by specifying their age with --age-limit YEARS .
Add rudimentary support in youtube, pornotube, and youporn.
2013-10-06 06:08:56 +02:00
Philipp Hagemeister
c1c9a79c49
Add basic --download-archive option
...
Often, users want to be able to download only videos they haven't seen before, despite the video files having been deleted or moved in the mean time.
When --download-archive FILE is given, the extractor and ID of every download is recorded in the specified file. If it is already present, the video in question is skipped.
2013-10-06 04:27:10 +02:00
Philipp Hagemeister
e94b783c74
[googleplus] Fix upload_date detection
2013-10-05 16:38:33 +02:00
Philipp Hagemeister
97dae9ae07
[bliptv] Make sure video ID is a string
2013-10-05 16:12:29 +02:00
rzhxeo
ca215e0a4f
[CinemassacreIE] Use MD5 to check in TEST description
2013-10-05 13:42:17 +02:00
rzhxeo
91a26ca559
[CinemassacreIE] Remove docstring from class
2013-10-05 13:40:05 +02:00
rzhxeo
1ece880d7c
[CinemassacreIE] Add support for other embed methods
2013-10-05 13:36:13 +02:00
rzhxeo
400afddaf4
Add CinemassacreIE
2013-10-05 09:37:11 +02:00
Jaime Marquínez Ferrándiz
c3fef636b5
[dailymotion] Fix playlist extraction
...
The html code has changed, make the video ids extraction more solid.
2013-10-04 14:07:29 +02:00
Philipp Hagemeister
46e28a84ca
[brightcove] Fix up some broken HTML ( #1553 )
2013-10-04 11:53:49 +02:00
Philipp Hagemeister
17ad2b3fb1
[yahoo] Switch ext of test
2013-10-04 11:44:56 +02:00
Philipp Hagemeister
5e2a60db4a
[yahoo] Fix test title
2013-10-04 11:44:02 +02:00
Philipp Hagemeister
cd214418f6
[redtube] pep8
2013-10-04 11:41:57 +02:00
Philipp Hagemeister
ba2d9f213e
[jeuxvideo] fix video file md5sum
2013-10-04 11:38:56 +02:00
Philipp Hagemeister
7f8ae73a5d
Include length in player cache ID
...
Some videos use the same player with IDs of multiple lengths.
See https://travis-ci.org/rg3/youtube-dl/jobs/12126506#L319 for an example.
2013-10-04 11:36:06 +02:00
Philipp Hagemeister
466880f531
[yahoo] Do not try to run rtmpdump on travis
2013-10-04 11:34:12 +02:00
Philipp Hagemeister
9f1f6d2437
[rtlnow] Skip test on travis
2013-10-04 11:33:14 +02:00
Philipp Hagemeister
9e0f897f6b
[francetv] Use common format for ID of generation-quoi subextractor
2013-10-04 11:30:47 +02:00
Philipp Hagemeister
c0f6aa876f
Merge remote-tracking branch 'origin/master'
2013-10-04 11:14:20 +02:00
Philipp Hagemeister
d93bdee9a6
[comedycentral] Prepare for generic video extraction ( #980 )
2013-10-04 11:14:10 +02:00
Philipp Hagemeister
f13d09332d
[mtv] Prepare for #980
2013-10-04 11:10:04 +02:00
Philipp Hagemeister
2f5865cc6d
Clarify that url and ext are optional when formats is given ( #980 )
2013-10-04 11:09:43 +02:00
Philipp Hagemeister
deefc05b88
Document formats (for #980 )
2013-10-04 10:40:42 +02:00
Philipp Hagemeister
0d8cb1cc14
[ted] Prepare #980 merge
2013-10-04 10:32:34 +02:00
rzhxeo
829493439a
[FlickrIE] Fix HTTPS url
2013-10-04 07:47:40 +02:00
Pierre Rudloff
73b4fafd82
Use self._download_webpage everywhere
2013-10-04 01:12:42 +02:00
Pierre Rudloff
b039775057
Unused variable
2013-10-04 01:07:24 +02:00
Pierre Rudloff
5c1d63b737
Changes suggested by @phihag
2013-10-04 01:04:38 +02:00
Philipp Hagemeister
3cd022f6e6
Merge remote-tracking branch 'rzhxeo/rtl_ntv'
2013-10-04 00:59:11 +02:00
Philipp Hagemeister
abefd1f7c4
Merge remote-tracking branch 'rzhxeo/rtl_upload_date'
2013-10-04 00:58:35 +02:00
Philipp Hagemeister
c21315f273
[youtube] new static 82 signature
2013-10-04 00:43:01 +02:00
Philipp Hagemeister
9ab1018b1a
release 2013.10.04
2013-10-04 00:38:19 +02:00
Philipp Hagemeister
da0a5d2d6e
[france2] Add support for URLs without video IDs ( Fixes #1547 )
2013-10-04 00:34:36 +02:00
Jaime Marquínez Ferrándiz
ee6adb166c
[ign] Support more urls and detect multiple videos in articles ( fixes #1543 )
2013-10-02 20:59:34 +02:00
Philipp Hagemeister
be8fe32c92
Fix help of --cachedir
2013-10-02 14:37:19 +02:00
Philipp Hagemeister
c38b1e776d
[youtube] Simplify cache_dir code ( #1529 )
2013-10-02 08:41:14 +02:00