Philipp Hagemeister
0217c78377
[YoutubeDL] Allow selection by more extensions
10 years ago
Philipp Hagemeister
bec2248141
[InfoExtractor/common] Correct and test meta tag matching
10 years ago
Philipp Hagemeister
e4a8eae701
Merge commit '8ee3415'
10 years ago
Philipp Hagemeister
0590062925
Respect age_limit when listing extractors ( Fixes #4653 )
10 years ago
Sergey M․
0b54a5b10a
[ceskatelevize] Add subtitles tests
10 years ago
Philipp Hagemeister
c11125f9ed
[tests] Remove format 138 from tests ( #4559 )
10 years ago
Jaime Marquínez Ferrándiz
7d900ef1bf
[youtube] Add support for automatically translated subtitles ( fixes #4555 )
...
They have a manually uploaded subtitles track and YouTube can transtale it.
10 years ago
Sergey M․
f74b341dde
expect_info_dict actual-expected argument consistency
10 years ago
Jaime Marquínez Ferrándiz
2cb5b03e53
[test/test_unicode_literals] Remove duplicated imports
10 years ago
Philipp Hagemeister
cae97f6521
Improve and test ffmpeg version detection
10 years ago
Philipp Hagemeister
6cbf345f28
Remove test/write_info_json
...
This is now covered by every single test_download testcase anyways :)
10 years ago
Philipp Hagemeister
da4d4191a9
Merge branch 'master' of github.com:rg3/youtube-dl
10 years ago
Philipp Hagemeister
8bdcb436f9
[test_unicode_literals] Fix test
10 years ago
Philipp Hagemeister
42bdd9d051
[cinchcast] Add new extractor ( Fixes #4428 )
10 years ago
Philipp Hagemeister
47d7c64274
[test_utils] Make test more realistically ( #4377 )
10 years ago
Philipp Hagemeister
5f9b83944d
[ffmpeg] Improve version check and call it from hls ( Fixes #4377 )
10 years ago
Philipp Hagemeister
e8df5cee12
[minhateca] Fix duration parsing
10 years ago
Philipp Hagemeister
4349c07dd7
[minhateca] Add extractor ( Fixes #4094 )
10 years ago
Jaime Marquínez Ferrándiz
4472f84f0c
[test/test_subtitles] Update checksum for vimeo subtitle file
10 years ago
Philipp Hagemeister
155f9550c0
[test/helper] Fix newlines in output of missing test fields
10 years ago
Philipp Hagemeister
dcddc10a50
[test_unicode_literals] Arm unicode_literals check
...
From now on, the line
from __future__ import unicode_literals
should be contained in every single Python file lest we run into any more 2.x/3.x issues.
Going forward, we're likely to develop on 3.x only and would likely miss subtle bugs otherwise.
10 years ago
Philipp Hagemeister
e075a44afb
[tests] Remove useless u prefixes
10 years ago
Philipp Hagemeister
be64b5b098
[xminus] Simplify and extend ( #4302 )
10 years ago
Jouke Waleson
9e1a5b8455
PEP8: applied even more rules
10 years ago
Jouke Waleson
8bcc875676
PEP8: more applied
10 years ago
Jouke Waleson
5f6a1245ff
PEP8 applied
10 years ago
Philipp Hagemeister
7d4111ed14
Provide guidance when called with a YouTube ID starting with a dash.
...
Reported at https://news.ycombinator.com/item?id=8648121
10 years ago
Jaime Marquínez Ferrándiz
f56875f271
[test/test_compat] Restore the old value of the HOME environment variable
...
If the test was run before the YoutubeIE tests (for example by running
"nosetests -v test/test_compat.py test/test_download.py -m 'Youtube_1|compat_expand'"),
it wrote the signatures cache to the 'C:\Documents and Settings\тест\Application Data' folder.
It failed due to a problem in the cache code and the write_json_file function (fixed in f03e33b89a622af13fa5275c46b63aaa4814c499)
10 years ago
Philipp Hagemeister
fbf94a7815
[swfinterp] Add more builtins and improve static variables
10 years ago
Philipp Hagemeister
cd9ad1d7e8
[swfinterp] Basic support for constants (only ints for now)
10 years ago
Philipp Hagemeister
33a266f4ba
[swfinterp] Implement charCodeAt
10 years ago
Philipp Hagemeister
8d05f2c16a
[swfinterp] Add support for void methods
10 years ago
Philipp Hagemeister
eb5376044c
[swfinterp] Implement equals opcode
10 years ago
Philipp Hagemeister
3cbcff8a2d
[swfinterp] Implement String basics
10 years ago
Philipp Hagemeister
e983cf5277
[swfinterp] Interpret yet more opcodes
10 years ago
Philipp Hagemeister
0ab1ca5501
[swfinterp] Better error message
10 years ago
Philipp Hagemeister
4baafa229d
[swfinterp] Intepret more multinames
10 years ago
Philipp Hagemeister
7f3e33a147
[swfinterp] Implement member assignment
10 years ago
Philipp Hagemeister
a0f59cdcb4
[tests] Modernize
10 years ago
Philipp Hagemeister
6a68bb574a
[eporner] Fix duration ( Closes #4188 )
10 years ago
Philipp Hagemeister
609a61e3e6
[npo] Improve npo.nl ( Fixes #4173 )
10 years ago
Philipp Hagemeister
4c0924bb24
[utils] Fix intlist_to_bytes in Python 2 ( #4181 )
10 years ago
Philipp Hagemeister
e4bdb37ec6
[spiegel] Add support for embeds
10 years ago
Philipp Hagemeister
3e6e4999ca
[test/helper] Improve output
10 years ago
Michael Käufl
498942f187
[test_youtube_signature] Fix import
...
Broken in commit 8c25f81bee
10 years ago
Philipp Hagemeister
12ea2f30cf
[utils] Remove unused get_meta_content function
10 years ago
Philipp Hagemeister
278143df5b
[test_compat] Ignore unicode_literals
10 years ago
Jaime Marquínez Ferrándiz
ac35c26686
[tests] Don't auto init YoutubeDL
...
It would print the debug headers for each test.
And nose uses a StringIO object for stdout, which in python 2.x doesn't have the 'encoding' attribute.
10 years ago
Philipp Hagemeister
42f7d2f588
[test_download] Fix import
10 years ago
Philipp Hagemeister
39f0a2a6b7
[test_swfinterp] Correct compilation on modern mxmlc versions
10 years ago
Philipp Hagemeister
8c25f81bee
[util] Move compatibility functions out of util
...
utils is large enough without these compatibility functions.
Everything that is present in newer versions of Python (i.e. with dev Python it's just an import) goes into compat.py .
Everything else (i.e. youtube-dl-specific helpers) goes into utils.py .
10 years ago
Philipp Hagemeister
7d11297f3f
Merge branch 'master' of github.com:rg3/youtube-dl
10 years ago
Philipp Hagemeister
6ad4013d40
[drtv] Allow fractional timestamps ( Fixes #4059 )
10 years ago
Jaime Marquínez Ferrándiz
8abec2c8bb
[test_utils] Fix compat_getenv and compat_expanduser tests on python 3.x
10 years ago
Philipp Hagemeister
f744c0f398
[test_download] Improve error message
10 years ago
Philipp Hagemeister
70b7e3fbb6
[generic] Add a test case for direct links with broken HEAD ( #4032 )
10 years ago
Sergey M․
f889cea109
Merge branch 'compat-getenv-and-expanduser' of https://github.com/dstftw/youtube-dl into dstftw-compat-getenv-and-expanduser
...
Conflicts:
test/test_utils.py
youtube_dl/__init__.py
10 years ago
Philipp Hagemeister
c64ed2a310
[viddler] Use API
10 years ago
Sergey M
4510d14f0a
[twitch] Update tests
10 years ago
Sergey M․
0ca41c3d9c
[walla] Fix typo
10 years ago
Sergey M․
7bc8780c57
[walla] Fix extractor and add subtitle tests
10 years ago
Philipp Hagemeister
e7b6d12254
[utils] Improve and test js_to_json
10 years ago
Philipp Hagemeister
410f3e73ab
[utils] Fix js_to_json
10 years ago
Sergey M․
4644ac5527
[core] Decode environment variables with filesystem encoding ( Fixes #3854 , Fixes #3217 , Fixes #2918 )
...
Introduces compat versions of os.getenv and os.path.expanduser
10 years ago
Philipp Hagemeister
c0f64ac689
[test/helper] Improve output of missing test definition dictionaries
10 years ago
Philipp Hagemeister
7a08ad7d59
[test/helper] Modernize
10 years ago
Philipp Hagemeister
99b67fecc5
[arte] Fix upload date extraction
10 years ago
Philipp Hagemeister
6be451f422
[youtube] Remove swf signature test cases
...
These files are now 0 Bytes
10 years ago
Philipp Hagemeister
9c44d2429b
[vimeo:likes] Support large like lists ( Fixes #3847 )
10 years ago
Philipp Hagemeister
d6e6a42256
[vimeo:likes] Add new extractor ( Fixes #3835 )
10 years ago
Philipp Hagemeister
cdc628a498
[youtube] Move more tests to extractors
10 years ago
Philipp Hagemeister
0003a5c416
Merge remote-tracking branch 'dstftw/escape-non-ascii-in-urls'
...
Conflicts:
test/test_utils.py
10 years ago
Philipp Hagemeister
a020a0dc20
[facebook] Fix support for untitled videos ( Fixes #3757 )
10 years ago
Sergey M․
d05cfe0600
[YoutubeDL/utils] Clarify rationale for URL escaping in comment, move escape routines to utils and add some tests
10 years ago
Philipp Hagemeister
9291475f7d
[youtube] Move more tests to Playlist IE, and simply suitable.
10 years ago
Philipp Hagemeister
5df921b0e3
[test_cache] Add a dot in the file name
10 years ago
Philipp Hagemeister
a0e07d3161
[youtube] Move cache into its own module
10 years ago
Philipp Hagemeister
7260ea0705
[comedycentral] Move tests to the extractor itself
10 years ago
Sergey M․
ca7b3246b6
[utils] Improve parse_duration
10 years ago
Sergey M․
08a36c3569
[test_download] Check expected file minsize and md5 only when download is not skipped
10 years ago
Philipp Hagemeister
753727cded
[test_download] Expect a minimum file size
...
This should detect when we're downloading a small text file by accident.
10 years ago
Philipp Hagemeister
22a6f15061
Move playlist tests to extractors.
...
From now on, test_download will run these tests. That means we benefit not only from the networking setup in there, but also from the other tests (for example test_all_urls to find problems with _VALID_URLs).
10 years ago
Philipp Hagemeister
4e408e479b
[utils] Modernize tests
10 years ago
Philipp Hagemeister
2857084000
[test_download] Improve playlist handling
10 years ago
Philipp Hagemeister
2929b3e71d
[vimeo] Move all testcases to extractors and clean up
...
Previously, these extractors all defined their own suitable methods.
No test_all_urls tests that everything is in order, automatically :)
10 years ago
Philipp Hagemeister
22449fa624
Improve test_all_urls output
10 years ago
Philipp Hagemeister
0990305d2a
[generic] Fix rss under Python 2.x and move test to extractor
11 years ago
Philipp Hagemeister
829476b80a
[googlesearch] Move test to extractor
11 years ago
Philipp Hagemeister
7adcbe7594
[rtlnl] Extract duration
11 years ago
Philipp Hagemeister
28028629b9
[gameone:playlist] Move test to extractor
11 years ago
Philipp Hagemeister
11f75cac3d
Merge remote-tracking branch 'olebowle/gameone'
11 years ago
Philipp Hagemeister
a053c3493a
[test_YoutubeDL] Reorder formats ( #3542 )
11 years ago
Philipp Hagemeister
266c71f971
Deprecate test_playlists
11 years ago
Philipp Hagemeister
e8ee972c6e
Allow playlist test definitions in test_download.
...
This moves playlist tests where they belong, i.e. to the extractors themselves.
Additionally, all our network interaction configuration for tests in test_download now applies to playlist tests as well.
11 years ago
Jaime Marquínez Ferrándiz
a6da7b6b96
[facebook] Allow '?' before '#!' ( fixes #3477 )
11 years ago
Jaime Marquínez Ferrándiz
173a7026d5
[test/test_utils] Fix typo in method name
11 years ago
Sergey M․
a954584f63
[bandcamp] Replace 404 playlist test
11 years ago
Philipp Hagemeister
4bc7009e8a
[jsinterp] Add new testcase
11 years ago
Philipp Hagemeister
42f4dcfe41
[test_youtube_signatures] Modernize
11 years ago
Jaime Marquínez Ferrándiz
ebe832dc37
[jsinterp] 'reverse' modifies the array in place ( fixes #3334 )
11 years ago
Ole Ernst
71b6065009
[gameone] add playlist test
11 years ago
Philipp Hagemeister
0c92b57398
Remove unused imports
11 years ago
Philipp Hagemeister
9f43890bcd
[jsinterp] Allow digits in function names
11 years ago
Philipp Hagemeister
d82ba23ba5
[soundcloud:playlist] Fix test description
11 years ago
Philipp Hagemeister
0fd7fd71b4
[test/helper] Do not use deprecated method
11 years ago
Philipp Hagemeister
d8624e6a80
[test_playlist] Add and use assertGreaterEqual
11 years ago
Philipp Hagemeister
54330a1c3c
[swfinterp] Fix imports
11 years ago
Philipp Hagemeister
b6ea11b967
[youtube] Add swf signature test case ( #3270 )
11 years ago
Philipp Hagemeister
7fd48d0413
[youtube] Correct signature testcase
11 years ago
Philipp Hagemeister
decf2ae400
[swfinterp] Correct array access
11 years ago
Philipp Hagemeister
0d989011ff
[swfinterp] Add support for calling methods on objects
11 years ago
Philipp Hagemeister
01b4b74574
[swfinterp] Add support for calls to instance methods
11 years ago
Philipp Hagemeister
70f767dc65
[swfinterp] Add support for multiple classes
11 years ago
Philipp Hagemeister
e75c24e889
[swfinterp] Extend tests and fix parsing
11 years ago
Philipp Hagemeister
0cb2056304
[swfinterp] Start working on basic tests
11 years ago
Philipp Hagemeister
5425626790
[youtube] Move swfinterp into its own file
11 years ago
Jaime Marquínez Ferrándiz
ad25aee245
[youtube & jsinterp] Fix signature extraction ( fixes #3255 )
...
Some functions are defined now inside an object, the jsinterp will search its definition if the variable is not defined in the local namespace.
11 years ago
Sergey M․
345e37831c
[youtube] Update nosubtitles test
11 years ago
Sergey M․
00ac799b68
[vine:user] Update test
11 years ago
Philipp Hagemeister
ebf361ce18
Merge remote-tracking branch 'azeem/soundcloud_likes'
11 years ago
Philipp Hagemeister
f64ebfe3e5
[youtube] Correct signature test
11 years ago
Philipp Hagemeister
6f9d4d542f
[youtube] Add test for new signature scheme ( #3232 )
11 years ago
azeem
3941669d69
[soundcloud] Adding likes support to SoundcloudUserIE
11 years ago
Philipp Hagemeister
dc2fc73691
[youtube:truncated_url] Move test to extractor
11 years ago
Petr Půlpán
31a196d7f5
[TeacherTube] add user + collection, removed classrooms
11 years ago
Jaime Marquínez Ferrándiz
78338f71ca
[livestream:original] Add support for folder urls ( closes #2631 )
...
The webpage only contains shortened links for the videos, since the server
doesn't support HEAD requests, we use an specific extractor for them.
11 years ago
Sergey M․
fd69098a45
[rutube] Update playlist tests
11 years ago
Petr Půlpán
a14e1538fe
[ustream:channel] replace test for an updated channel
11 years ago
Philipp Hagemeister
24f5251cce
Merge remote-tracking branch 'pulpe/teachertube'
...
Conflicts:
youtube_dl/extractor/__init__.py
11 years ago
Jaime Marquínez Ferrándiz
24577db241
[test/test_youtube_lists] Replace mix list
...
The old video doesn't have a mix anymore.
11 years ago
pulpe
b4e7447458
[TeacherTubeIE] Add extractor for teachertube.com videos + classrooms ( fixes #3046 )
11 years ago
Jaime Marquínez Ferrándiz
0d69795014
Merge pull request #2962 from simonwjackson/patch-1
...
Update test_age_restriction.py
11 years ago
Sergey M․
6ebb46c106
[ivi] Replace tests
11 years ago
Sergey M․
cc5ada6f4c
[ivi] Update playlist tests
11 years ago
Simon W. Jackson
8ae980807a
Update test_age_restriction.py
...
typo
11 years ago
codesparkle
1c783bca88
fixed (what I assume was a typo) that caused test_format_note to always fail.
...
This test was introduced in c57f775710
.
11 years ago
Philipp Hagemeister
7b93c2c204
Merge remote-tracking branch 'jnormore/vine_user'
11 years ago
Philipp Hagemeister
d0a122348e
[test/helper] Clarify which field failed an assertion
11 years ago
Jason Normore
ea783d01e1
Added VineUserIE extractor for vine user timeline
...
Added vine user timeline extractor using unofficial
vine api user profile and timeline api endpoints.
11 years ago
Philipp Hagemeister
2099125333
[soundcloud/generic] Add support for playlists
11 years ago
Philipp Hagemeister
c57f775710
[YoutubeDL] Add simple tests for format_note ( Closes #2825 )
11 years ago
Philipp Hagemeister
0321213c11
[test_subtitles] Allow more subtitles for TED videos
11 years ago
Philipp Hagemeister
b9ba5dfa28
[test helper] Correct only_matching test gathering
11 years ago
Sergey M․
3a9d6790ad
[ivi] Update playlist tests
11 years ago
Philipp Hagemeister
52fadd5fb2
[test_all_urls] Add support for distributed URL matching test definition
11 years ago
Philipp Hagemeister
5367fe7f4d
[test_all_urls] Simplify
11 years ago
Philipp Hagemeister
de906ef543
[aol] Add support for playlists ( Fixes #2730 )
11 years ago
Philipp Hagemeister
b9c76aa1a9
[youtube] Add support for cleanvideosearch.com ( Fixes #2734 )
11 years ago
Philipp Hagemeister
7753cadbfa
[comedycentral:shows] Add support for TDS special editions ( Fixes #2733 )
11 years ago
Philipp Hagemeister
4be9f8c814
[ninegag] Add support for p/ URLs
11 years ago
Philipp Hagemeister
29e3e682af
[comedycentral] Match more URLs
...
Looks like they only offer clips instead of full episodes now. We'll need to add new parsing code as well.
11 years ago
Philipp Hagemeister
a355b70f27
[cspan] Do not test number of playlist entries
...
Apparently, CSpan switches between single-file and multiple-file results. Either one is fine as long as we get the full four hours.
11 years ago
Philipp Hagemeister
676eb3f2dd
Fix unicode_escape ( Fixes #2695 )
11 years ago
Philipp Hagemeister
c8edf47b3a
[yahoo] Support https and -uploader URLs ( Fixes #2701 )
11 years ago
Philipp Hagemeister
3537b93d8a
[tests] Fix YoutubeDL tests
...
Since bec1fad
, the id, title, and url (also in formats) keys are mandatory. Change the tests to reflect that.
11 years ago
Philipp Hagemeister
968ed2a777
[comedycentral] Add test for #2677
11 years ago
Philipp Hagemeister
aea6e7fc3c
[cspan] Support multiple segments ( Fixes #2674 )
11 years ago
Philipp Hagemeister
651486621d
[comedycentral] Allow URLs with query parts ( fixes #2661 )
11 years ago
Philipp Hagemeister
16f4eb723a
[comedycentral] Add support for /videos URLs ( Fixes #2660 )
11 years ago
Philipp Hagemeister
69c01a9f68
[comedycentral] Add a testcase for extended-interviews URLs ( #2636 )
11 years ago
Philipp Hagemeister
fac55558ad
[washingtonpost] Add extractor ( Fixes #2622 )
11 years ago
Philipp Hagemeister
912b38b428
[instagram] Fix info_dict key name
11 years ago
Philipp Hagemeister
ea38e55fff
[instagram] Add support for user profiles ( Fixes #2606 )
11 years ago
Philipp Hagemeister
257cfebfe6
[test] Move expect_info_dict out of test_download
11 years ago
fiocfun
9f5809b3e8
[xtube] user playlist extractor
11 years ago
Philipp Hagemeister
231f76b530
[toypics] Separate user and video extraction ( #2601 )
11 years ago
Philipp Hagemeister
a9c2896e22
Make missing test definition fields an error
...
If the result is not testable (for example, because a description changes often), either pass in a type or a regular expression (a string starting with 're:')
11 years ago
Philipp Hagemeister
773c0b4bb8
[pbs] Add support for widget URLs ( Fixes #2594 )
11 years ago
Philipp Hagemeister
ff14fc4964
[test] Rename get_testcases to gettestcases
...
Apparently, newer versions of nosetests are somewhat over-eager in their test discovery.
11 years ago
Jaime Marquínez Ferrándiz
bc6d597828
Add bestvideo and worstvideo to special format names ( #2163 )
11 years ago
Philipp Hagemeister
955c451456
Rename upload_timestamp to timestamp
11 years ago
Philipp Hagemeister
2a1db721d4
[test_download] Move assertions before debugging output
11 years ago
Philipp Hagemeister
c3d36f134f
[googlesearch] Fix next page indicator check
11 years ago
Philipp Hagemeister
84769e708c
[ninegag] Fix extraction
11 years ago
Jaime Marquínez Ferrándiz
b1ff87224c
[vimeo] Now VimeoIE doesn't match urls of channels with a numeric id ( fixes #2552 )
11 years ago
Philipp Hagemeister
6a72423955
[generic] Use a different URL for the generic RSS test ( Closes #2532 )
11 years ago
Jaime Marquínez Ferrándiz
1471956573
Add a basic test suite for the InfoExtractor class
11 years ago
Jaime Marquínez Ferrándiz
957688cee6
[ustream:channel] Update test's number of entries
11 years ago
Jaime Marquínez Ferrándiz
b74fa8cd2c
[facebook] Fix login process
...
It was broken and didn't work in python 3.
And use `_download_webpage` instead of `compat_urllib_request.urlopen`.
11 years ago
Jaime Marquínez Ferrándiz
ca1fee34f2
[ted] Fix playlist extraction and add a test
11 years ago
Philipp Hagemeister
c9ae7b9565
[youtube] Add support for search result URLs ( Fixes #2495 )
11 years ago
Philipp Hagemeister
2437fbca64
[tests] Raise an exception if test definition is invalid (Found in #2460 )
11 years ago
Jaime Marquínez Ferrándiz
ea5a0be811
Skip youtube toptracks test
...
All the playlists return 500 errors.
11 years ago
Philipp Hagemeister
62e609ab77
Ignore BOM in batch files ( Fixes #2450 )
11 years ago
Jaime Marquínez Ferrándiz
9e57ce716f
[academicearth] Fix extraction
...
The courses seems to be no longer available, changed the test to a playlist.
11 years ago
Philipp Hagemeister
491ed3dda2
[trutube] Support multiple formats ( #2433 )
11 years ago
Philipp Hagemeister
4fc946b546
[generic] Add support for RSS feeds ( Fixes #667 )
11 years ago
Philipp Hagemeister
2eb5d315d4
[youtube] Match more truncated URLs ( Closes #2402 )
11 years ago
Sergey M.
2db806b4aa
Improve parse_duration
11 years ago
Philipp Hagemeister
b53466e168
Fix f4m downloading on Python 2.6
11 years ago
Jaime Marquínez Ferrándiz
99043c2ea5
Replace test for dailymotion users
11 years ago
Philipp Hagemeister
026fcc0495
Fix #2355 (date parsing with dashes)
11 years ago
Philipp Hagemeister
9766538124
[jadorecettepub] Add extractor ( Fixes #2148 )
11 years ago
Philipp Hagemeister
bf5f610099
[pbs] Add support for viralplayer links ( Fixes #2350 )
11 years ago
Jaime Marquínez Ferrándiz
d67cc9fa7c
[youtube:playlist] Recognize ‘top tracks’ urls ( closes #2332 )
...
The list parameter starts with ‘MC’ and can have more characters after it, including dots
11 years ago
Philipp Hagemeister
dcf3eec47a
[test_download] Skip over BadStatusLine errors
...
An error like https://travis-ci.org/rg3/youtube-dl/jobs/18317799#L449 is almost certainly the server's fault.
11 years ago
Philipp Hagemeister
ccf9114e84
[googlesearch] Fix start, and skip playlists ( Fixes #2329 )
11 years ago
Jaime Marquínez Ferrándiz
bc4850908c
[test/youtube_signature] Add a test with the last player
...
To verify it correctly handles function with “$” in their names.
11 years ago
Philipp Hagemeister
56dced2670
remove accidentally duplicated test file
11 years ago
Philipp Hagemeister
22e7f1a6ec
[pbs] Add support for article pages ( Fixes #870 )
11 years ago