Commit graph

1502 commits

Author SHA1 Message Date
Pierre Rudloff
25f33bba56 refactor: Split FrontController into multiple classes
Closes #177
2019-04-22 16:51:48 +02:00
Pierre Rudloff
196d0b1338 Merge branch 'develop' of github.com:Rudloff/alltube into develop 2019-04-22 15:32:29 +02:00
Pierre Rudloff
1df06f7c22 refactor: Use route names that make more sense 2019-04-22 15:31:51 +02:00
Pierre Rudloff
660f322edd build(composer): Upgrade slim/slim to 3.12.1 2019-04-22 15:02:34 +02:00
Pierre Rudloff
790677d13f build(composer): Dependencies update
symfony/yaml, symfony/var-dumper, symfony/process, squizlabs/php_codesniffer
2019-04-22 15:01:53 +02:00
Pierre Rudloff
3b43018b29 docs: Missing docblocks 2019-04-22 00:05:53 +02:00
Pierre Rudloff
5bae668652 test(phpunit): Fix tests that use convert mode 2019-04-21 23:27:36 +02:00
Pierre Rudloff
1edd623c7f fix: Enforce convert mode
So it can't be used by adding "&audio=on" manually
2019-04-21 23:16:27 +02:00
Pierre Rudloff
70475f83d4 feat: Add a way to convert an entire playlist
Closes #194
2019-04-21 22:56:43 +02:00
Pierre Rudloff
4db519c2ef fixup! fix: Don't use the $url property 2019-04-21 22:40:54 +02:00
Pierre Rudloff
97a7830196 refactor: Reuse Video::getHttpResponse() where possible 2019-04-21 22:38:27 +02:00
Pierre Rudloff
e93ab7ed13 feat: Use ZIP files for playlist archives
It is more widely supported and could be later used for #194
2019-04-21 22:34:45 +02:00
Pierre Rudloff
226f1b8380 fix: Don't use the $url property
It is not reliable
2019-04-21 22:20:05 +02:00
Pierre Rudloff
ebed2cea88 refactor: Avoid varible name conflict 2019-04-21 22:19:44 +02:00
Pierre Rudloff
3ca84e144e refactor: We don't need this check anymore 2019-04-21 21:36:14 +02:00
Pierre Rudloff
61cb73dc59 refactor: Fix some types and unused variables 2019-04-21 19:51:16 +02:00
Pierre Rudloff
d4e8e32cd6 test(phpunit): Disable testSetOptionsWithoutUpdate() on AppVeyor 2019-04-21 19:28:58 +02:00
Pierre Rudloff
28b99861c2 test(phpunit): Fix ConfigTest on Windows 2019-04-21 19:14:23 +02:00
Pierre Rudloff
dc4eafe33f docs: Document magic properties 2019-04-21 19:10:37 +02:00
Pierre Rudloff
4fa604eec3 test(phpunit): Fix ConfigTest setup 2019-04-21 18:56:08 +02:00
Pierre Rudloff
51eaf192b1 refactor: Don't mix static and dynamic methods 2019-04-21 18:53:23 +02:00
Pierre Rudloff
06a631c892 fixup! refactor: New Video class 2019-04-21 18:35:24 +02:00
Pierre Rudloff
4c9af8ad1d refactor: New Video class
The news class provides a cleaner object-oriented logic

BREAKING CHANGE: The VideoDownload class has been removed and the Config constructor is now private
2019-04-21 18:30:02 +02:00
Pierre Rudloff
feb8998188 fixup! Typo 2019-04-21 09:21:24 +02:00
Pierre Rudloff
3077872517 Typo 2019-04-21 01:05:19 +02:00
Pierre Rudloff
ece51117e6 We don't need to do that anymore 2019-04-21 01:05:12 +02:00
Pierre Rudloff
586f20adb4 style(styleci): Lint 2019-04-21 00:58:04 +02:00
Pierre Rudloff
ddc27a8a2c refactor: New PlaylistArchiveVideo class
Cleaner way to handle PlaylistArchiveStream info about videos
2019-04-21 00:56:12 +02:00
Pierre Rudloff
f9bf3b8d47 refactor: Use a StreamInterface for PlaylistArchiveStream
It is much cleaner
2019-04-21 00:35:43 +02:00
Pierre Rudloff
ff5f518c73 ci(heroku): Install required locales
See https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-locale
2019-04-20 12:47:31 +02:00
Pierre Rudloff
4b92015063 ci(heroku): Force Python version
In order to be compatible with the now heroku-18 stack
2019-04-20 12:31:49 +02:00
Pierre Rudloff
5cb8bc30b3 Merge branch 'feature/travis' into develop 2019-04-20 12:28:48 +02:00
Pierre Rudloff
ff95b93c20 fixup! ci(travis): Disable Twitter test on CI 2019-04-20 12:23:18 +02:00
Pierre Rudloff
f4654c7229 test(phpunit): Improve locale-related tests 2019-04-20 12:17:52 +02:00
Pierre Rudloff
0283ef6928 ci(appveyor): Install a specific PHP version 2019-04-20 11:51:07 +02:00
Pierre Rudloff
12747ade59 ci(travis): Disable Twitter test on CI 2019-04-20 11:30:36 +02:00
Pierre Rudloff
07261db27b fix: Don't call PlaylistArchiveStream parent constructor
Because it messes with the output buffer

Fixes #215
2019-04-20 11:27:13 +02:00
Pierre Rudloff
7ab4c55550 docs: Add comments to some tricky parts 2019-04-20 01:19:55 +02:00
Pierre Rudloff
c9cc1907ac ci(appveyor): Force phpunit 6 2019-04-20 01:00:04 +02:00
Pierre Rudloff
4537b661e1 fix: Close playlist streams correctly 2019-04-20 00:37:49 +02:00
Pierre Rudloff
cd623bfa36 ci(appveyor): Fix path to PHP config 2019-04-19 23:30:44 +02:00
Pierre Rudloff
f5408d409a style(csslint): Remove unused CSS class 2019-04-19 23:28:57 +02:00
Pierre Rudloff
71200c80bc test(phpunit): Disable Vimeo tests on CI 2019-04-19 23:28:54 +02:00
Pierre Rudloff
9949a0d32b
Merge pull request #213 from hiwelo/accessibility-improvements
Accessibility improvements
2019-04-19 23:11:39 +02:00
hiwelo
a5fbb74094
Fixes attributes used to link label & form inputs 2019-04-18 23:04:22 +02:00
Damien Senger
596d5e2994
Adds and fixes labels for video.tpl inputs
According to the WCAG success criterias 1.3.1 (Info and relationships),
3.3.2 (Labels or Instructions) and 4.1.2 (Name, Role, Value), labels
or instructions are required when content requires user input.

The bit rate label was replaced by a real label announcing the purpose
of the text input _Custom bitrate_. The existing unit indication is now
using a `<span>` attribute and it is linked to the input using an
`aria-describedby` attribute.

Also, the lack of label for the format conversion selectbox is fixed
by using a specific `aria-label` attribute.

Resources:
- https://www.w3.org/TR/WCAG21/#labels-or-instructions
- https://www.w3.org/TR/WCAG21/#info-and-relationships
- https://www.w3.org/TR/WCAG21/#name-role-value
- https://www.w3.org/TR/WCAG20-TECHS/H44.html
- https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html
- https://www.w3.org/TR/WCAG20-TECHS/ARIA1.html
2019-04-13 13:18:32 +02:00
Damien Senger
ce07a621e5
Improves a11y of password protected video form
According to the WCAG success criterias 1.3.1 (Info and relationships),
3.3.2 (Labels or Instructions) and 4.1.2 (Name, Role, Value), labels
or instructions are required when content requires user input.

To do so, this commit adds a label for the password input and hide it
with a CSS visually-hidden method to not alter the design.

Resources:
- https://www.w3.org/TR/WCAG21/#labels-or-instructions
- https://www.w3.org/TR/WCAG21/#info-and-relationships
- https://www.w3.org/TR/WCAG21/#name-role-value
- https://www.w3.org/TR/WCAG20-TECHS/H44.html
- https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html
- https://gomakethings.com/hidden-content-for-better-a11y/
2019-04-13 13:11:09 +02:00
Damien Senger
726e9bf5c1
Adds a label to audio options inputs
According to the WCAG success criterias 1.3.1 (Info and relationships),
3.3.2 (Labels or Instructions) and 4.1.2 (Name, Role, Value), labels
or instructions are required when content requires user input.

To do so, this commit adds a label for the "From" and the "To" inputs
displayed when a user chose to get the audio of a file only.

Resources:
- https://www.w3.org/TR/WCAG21/#labels-or-instructions
- https://www.w3.org/TR/WCAG21/#info-and-relationships
- https://www.w3.org/TR/WCAG21/#name-role-value
- https://www.w3.org/TR/WCAG20-TECHS/H44.html
- https://www.w3.org/WAI/WCAG21/Understanding/labels-or-instructions.html
2019-04-13 12:57:42 +02:00
Damien Senger
27543f9024
Updates the doctype to be lowercase 2019-04-13 12:51:49 +02:00
Damien Senger
60350747a5
Adds a label to social sharing links
According to the WCAG (success criterias 2.4.4 and 4.1.2), the purpose
of each link should be determined from the link text alone or from the
link text together with its programmatically determined link context.

In this case, because there is no text content, we are using
`aria-label` to have an explicit purpose announced to users of
assisting technologies.

Resources:
- https://dequeuniversity.com/rules/axe/3.2/link-name
- https://www.w3.org/TR/WCAG21/#link-purpose-in-context
- https://www.w3.org/TR/WCAG20-TECHS/ARIA8.html
2019-04-13 12:19:11 +02:00