Commit 9dc0e7d3 authored by Booteille's avatar Booteille

Big 0.11.0 update! Check changelog for more informations about what changed!

parent 4cd92d1c
......@@ -5,9 +5,44 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## Unreleased
## [0.11.0]
### Added
- Integrate [Nitterify](https://gitlab.com/Booteille/nitterify): You can now redirect Twitter links to [Nitter](https://github.com/zedeus/nitter/)!
- You no longer need to search for an Invidious instance. All known instances are listed in settings.
- Add an option to select the fastest Invidious instance for you.
- Add the ability to select a custom Invidious instance instead of one of the provided list. (`localhost` supported. To use it with different port than 80, you'll need to use a reverse proxy) Fix #33.
- Add a button to choose a random Invidious instance.
- Add an option to overwrite instance cookies (enabled by default).
- Add an option to use audio mode (disabled by default). Fix #29.
- Add an option to always loop the video (disabled by default).
- Add an option to select video quality (default is `dash`). Fix #5.
- Add an option to select the player style (default is `youtube`). Fix #22.
- Add an option to enable dark mode (enabled by default).
- Add a popup menu with some useful shortcuts for everyday uses of Invidition. Fix #15.
- Add a link to copy URL without parameters in the popup. Fix #27, #16.
- Add backward compatibility with older versions. Your settings will be migrated once you installed the new version.
- Add noreferrer and noopener attributes to links on the settings page.
- Rewrite CSP policies to make Invidious work with more embeds.
- Better support of Tor Browser. To achieve that and detect if the user is using Tor, a request to `http://expyuzz4wqqyqhjn.onion/` (URL of the Tor Project) is tried.
- Better support of Icecat Browser.
### Fixed
- No longer open instances list on the current tab, on Firefox for Android.
- Fix `Autoplay next video` option.
- More embeds now work. Fix #26.
### Changed
- New icon! Made by the awesome [Nicolas Llopis](https://www.llopisnicolas.com/) !
- Change the structure of config.ts.
- Save settings on form change instead of form submit.
- Update locale www-widget dependency
- Save the state of the extension, even if the browser is closed. Fix #21.
## [0.10.3] - 2019-09-27
### Added
- Italian translation, thanks to a kind stranger! (See !1)
- Updated the list of available languages (Fix #17)
......@@ -19,7 +54,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Add color to logos
- Add color to logos.
## [0.10.1] - 2019-04-15
......@@ -71,7 +106,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Updated uMatrix recipe to support known Invidious instances
- Update uMatrix recipe to support known Invidious instances
### Fixed
......@@ -150,7 +185,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Initial release
[0.10.3]: https://gitlab.com/booteille/invidition/compare/v0.10.2...0.10.3
[0.10.2]: https://gitlab.com/booteille/invidition/compare/v0.10.3...0.11.0
[0.10.2]: https://gitlab.com/booteille/invidition/compare/v0.10.2...0.10.3
[0.10.2]: https://gitlab.com/booteille/invidition/compare/v0.10.1...0.10.2
[0.10.1]: https://gitlab.com/booteille/invidition/compare/v0.10.0...0.10.1
[0.10.0]: https://gitlab.com/booteille/invidition/compare/v0.9.1...0.10.0
......
git_watched_files := $(shell git ls-files)
extension_files := $(shell find extension -type f -not -name '*.map')
extension_files := $(shell find extension -type f)
.PHONY: build watch clean package
......@@ -7,7 +7,7 @@ all: build package
extension.zip: $(extension_files)
cd extension && \
find . -type f -not -name '*.map' | xargs zip ../extension.zip
find . -type f | xargs zip ../extension.zip
sources.zip: $(git_watched_files)
git ls-files | xargs zip sources.zip
......@@ -21,5 +21,5 @@ watch:
npm run build:watch
clean:
rm extension/dist/*;
rm extension.zip sources.zip
rm -r extension/dist/*;
rm -r extension.zip sources.zip
{
"extName": {
"message": "Invidition",
"description": "Extension name."
},
"extShortDesc": {
"message": "Redirects YouTube links and embeds to their Invidious counterpart without any call to YouTube.",
"description": "This will be in the store. Must be 132 characters or less."
},
"settingsInstancesListHint": {
"message": "You can find a list of different Invidious instances",
"description": "Displays a Hint indicating differents instances exist"
},
"settingsInstancesListHintURLText": {
"message": "here",
"description": "The text of the URL redirecting to instances list."
},
"settingsFormInstanceLabel": {
"message": "Instance:"
},
"settingsFormProxyTitle": {
"message": "Activating this option will force the use of Invidious proxy."
},
"settingsFormProxyLabel": {
"message": "Force Proxy:"
},
"settingsFormAutoplayLabel": {
"message": "Autoplay:"
},
"settingsFormAutoplayNextLabel": {
"message": "Autoplay Next Video:"
},
"settingsFormAutoplayNextTitle": {
"message": "When you check the box \"Autoplay next video\" on Invidious, this option will force the next video to be played automaticaly."
},
"settingsFormDefaultCaptionsLabel": {
"message": "Default Captions:"
},
"settingsFormLanguageLabel": {
"message": "Interface language:"
},
"settingsFormSaveButton": {
"message": "Save"
}
"alwaysUsePreferredLabel": {
"message": "Always use preferred"
},
"audioLabel": {
"message": "Audio mode"
},
"autoplayLabel": {
"message": "Autoplay"
},
"captionsLabel": {
"message": "Default captions"
},
"continueLabel": {
"message": "Play next"
},
"cookiesLabel": {
"message": "Override cookies"
},
"customButton": {
"message": "Custom"
},
"customInstanceHint": {
"description": "This message appears when the user tries to enter a custom instance",
"message": "Type only the domain name of the instance. Example: invidio.us or nitter.net"
},
"darkModeLabel": {
"message": "Dark Mode"
},
"enableInviditionLabel": {
"message": "Enable Invidition"
},
"enableLabel": {
"message": "Enabled"
},
"extName": {
"description": "Extension name.",
"message": "Invidition"
},
"extShortDesc": {
"description": "This will be in the store. Must be 132 characters or less.",
"message": "Redirects YouTube links and embeds to their Invidious counterpart without any call to YouTube."
},
"fastestButton": {
"message": "Fastest"
},
"instanceLabel": {
"message": "Instance"
},
"instanceLegend": {
"message": "Instance"
},
"interfaceLegend": {
"message": "Interface"
},
"languageLabel": {
"message": "Language"
},
"listButton": {
"message": "List"
},
"loopLabel": {
"message": "Loop mode"
},
"nitterInstancesHint": {
"description": "Displays a Hint indicating different instances exist for Nitter.",
"message": "You can find a list of different Nitter instances"
},
"nitterInstancesHintUrlText": {
"description": "The text of the URL redirecting to Nitter instances list.",
"message": "here"
},
"openOptionsPageHint": {
"message": "Settings"
},
"playerStyleLabel": {
"message": "Player style"
},
"popupCopyLink": {
"message": "Copy cleaned link"
},
"proxyHint": {
"message": "Video will be proxied though the selected Invidious instance"
},
"proxyLabel": {
"message": "Use Proxy"
},
"qualityLabel": {
"message": "Quality"
},
"randomButton": {
"message": "Random"
},
"randomLabel": {
"message": "Random"
},
"resetSettingsLink": {
"message": "Reset settings"
},
"torWarning": {
"message": "It is not recommended to use clearnet URLs. Fastest and Random instances selection will use Onion URLs."
},
"videoLegend": {
"message": "Video"
}
}
{
"extName": {
"message": "Invidition",
"description": "Extension name."
},
"extShortDesc": {
"message": "Redirige les liens et lecteurs imbriqués YouTube vers leur équivalent Invidious sans faire aucun appel à YouTube !",
"description": "This will be in the store. Must be 132 characters or less."
},
"settingsInstancesListHint": {
"message": "Vous trouverez une liste des différentes instances",
"description": "Displays a Hint indicating differents instances exist"
},
"settingsInstancesListHintURLText": {
"message": "ici",
"description": "The text of the URL redirecting to instances list."
},
"settingsFormInstanceLabel": {
"message": "Instance :"
},
"settingsFormProxyLabel": {
"message": "Forcer l'utilisation du Proxy :"
},
"settingsFormProxyTitle": {
"message": "Activer cette option forcera l'utilisation du proxy d'Invidious."
},
"settingsFormAutoplayLabel": {
"message": "Lecture automatique :"
},
"settingsFormAutoplayNextLabel": {
"message": "Lecture automatique de la vidéo suivante :"
},
"settingsFormAutoplayNextTitle": {
"message": "Lorsque vous cochez la case « Lecture automatique de la vidéo suivante » sur Invidious, cette option jouera la prochaine vidéo automatiquement."
},
"settingsFormDefaultCaptionsLabel": {
"message": "Sous-titres par défaut :"
},
"settingsFormLanguageLabel": {
"message": "Langue de l'interface :"
},
"settingsFormSaveButton": {
"message": "Enregistrer"
}
"audioLabel": {
"message": "Mode audio"
},
"autoplayLabel": {
"message": "Lecture automatique "
},
"captionsLabel": {
"message": "Sous-titres par défaut"
},
"continueLabel": {
"message": "Jouer la suivante"
},
"cookiesLabel": {
"message": "Ignorer les cookies"
},
"customButton": {
"message": "Personnalisée"
},
"customInstanceHint": {
"description": "This message appears when the user tries to enter a custom instance",
"message": "Entrez uniquement le nom de domaine de l'instance. Exemple : invidio.us ou nitter.net"
},
"darkModeLabel": {
"message": "Mode Sombre"
},
"enableInviditionLabel": {
"message": "Activer Invidition"
},
"enableLabel": {
"message": "Activé"
},
"extName": {
"description": "Extension name.",
"message": "Invidition"
},
"extShortDesc": {
"description": "This will be in the store. Must be 132 characters or less.",
"message": "Redirige les liens et lecteurs imbriqués YouTube vers leur équivalent Invidious sans faire aucun appel à YouTube !"
},
"fastestButton": {
"message": "La plus rapide"
},
"instanceLabel": {
"message": "Instance"
},
"instanceLegend": {
"message": "Instance"
},
"interfaceLegend": {
"message": "Interface"
},
"languageLabel": {
"message": "Langue"
},
"listButton": {
"message": "Liste"
},
"loopLabel": {
"message": "Jouer en boucle"
},
"nitterInstancesHint": {
"description": "Displays a Hint indicating different instances exist for Nitter.",
"message": "Vous trouverez une liste des différentes instances"
},
"nitterInstancesHintUrlText": {
"description": "The text of the URL redirecting to Nitter instances list.",
"message": "ici"
},
"openOptionsPageHint": {
"message": "Paramètres"
},
"playerStyleLabel": {
"message": "Style du lecteur"
},
"popupCopyLink": {
"message": "Copier le lien nettoyé"
},
"proxyHint": {
"message": "Les vidéos utiliseront le proxy d'Invidious"
},
"proxyLabel": {
"message": "Utiliser le Proxy"
},
"qualityLabel": {
"message": "Qualité"
},
"randomButton": {
"message": "Aléatoire"
},
"randomLabel": {
"message": "Aléatoire"
},
"resetSettingsLink": {
"message": "Reinitialiser les paramètres"
},
"torWarning": {
"message": "Il n'est pas recommandé d'utiliser des URLs clearnet. La sélection de l'instance la plus rapide ou d'instance aléatoire utilisera uniquement des URLs Onion."
},
"videoLegend": {
"message": "Vidéo"
}
}
{
"extName": {
"message": "Invidition",
"description": "Extension name."
},
"extShortDesc": {
"message": "Reindirizza i link di YouTube e li incorpora nella loro controparte di Invidious senza alcuna chiamata a YouTube.",
"description": "This will be in the store. Must be 132 characters or less."
},
"settingsInstancesListHint": {
"message": "Puoi trovare un elenco di diverse istanze di Invidious",
"description": "Displays a Hint indicating differents instances exist"
"autoplayLabel": {
"message": "Autoriproduzione"
},
"settingsInstancesListHintURLText": {
"message": "qui",
"description": "The text of the URL redirecting to instances list."
"captionsLabel": {
"message": "Sottotitoli predefiniti"
},
"settingsFormInstanceLabel": {
"message": "Istanza:"
"continueLabel": {
"message": "Autoriproduci video successivo"
},
"settingsFormProxyTitle": {
"message": "L'attivazione di questa opzione obbligherà l'uso del proxy Invidious."
"extName": {
"description": "Extension name.",
"message": "Invidition"
},
"settingsFormProxyLabel": {
"message": "Obbliga proxy:"
"extShortDesc": {
"description": "This will be in the store. Must be 132 characters or less.",
"message": "Reindirizza i link di YouTube e li incorpora nella loro controparte di Invidious senza alcuna chiamata a YouTube."
},
"settingsFormAutoplayLabel": {
"message": "Autoriproduzione:"
"instanceLabel": {
"message": "Istanza"
},
"settingsFormAutoplayNextLabel": {
"message": "Autoriproduci video successivo:"
"languageLabel": {
"message": "Lingua interfaccia"
},
"settingsFormAutoplayNextTitle": {
"message": "Quando selezioni \"Autoriproduci video successivo\" su Invidious, questa opzione obbligherà il video successivo ad avviarsi automaticamente."
"nitterInstancesHint": {
"description": "Displays a Hint indicating differents instances exist",
"message": "Puoi trovare un elenco di diverse istanze di Nitter"
},
"settingsFormDefaultCaptionsLabel": {
"message": "Sottotitoli predefiniti:"
"nitterInstancesHintUrlText": {
"description": "The text of the URL redirecting to instances list.",
"message": "qui"
},
"settingsFormLanguageLabel": {
"message": "Lingua interfaccia:"
"proxyHint": {
"message": "L'attivazione di questa opzione obbligherà l'uso del proxy Invidious."
},
"settingsFormSaveButton": {
"message": "Salva"
"proxyLabel": {
"message": "Obbliga proxy"
}
}
This diff is collapsed.
body {
font-size: 14px;
padding: 5px;
background:#FDFDFD;
color: #111;
}
footer {
margin-bottom: 10px;
text-align: center;
}
a {
font-weight:bold;
color: #E52727;
text-decoration: underline;
}
a:hover {
color: #DA0000;
text-decoration: none;
}
option {
padding:0;
}
form {
width: 100%;
min-width: 500px;
min-height: 100px;
}
.instance {
min-width: 250px;
}
label, input, select {
display: inline-block;
}
label {
width: 33%;
text-align: right;
font-weight: bold;
}
label + input {
width: 30%;
margin: 0 33% 0 4%;
}
[type="text"] {
border-radius: 3px;
border: 1px solid #cccccc;
font-size: 14px;
padding: 5px;
vertical-align: baseline;
}
form section {
margin: 10px 0 10px 0;
}
legend {
font-weight: bolder;
font-size: 16px;
}
fieldset {
margin-bottom: 2%;
}
fieldset:disabled {
opacity: 0.3;
}
.short-button {
padding:0;
text-align:center;
margin:auto;
min-width: 0;
}
/* Notice */
.notice {
display: block;
margin-bottom: 1%;
}
.info {
font-style: italic;
}
/* Spin */
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
.spin {
animation: spin 1000ms linear infinite;
}
/* Sliders */
.switch {
position: relative;
display: inline-block;
vertical-align: bottom;
width: 40px;
height: 18px;
}