diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 293fdb2e..532f831b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -22,7 +22,7 @@ body: label: Official Instance description: Can the bug be reproduced on the official instance? options: - - label: The bug is reproducable on the [official hosted instance](http://piped.kavin.rocks/) or is API related. + - label: The bug is reproducable on the [official hosted instance](http://piped.video/) or is API related. - type: textarea attributes: diff --git a/.github/workflows/deploy-azure.yml b/.github/workflows/deploy-azure.yml new file mode 100644 index 00000000..aabf7dce --- /dev/null +++ b/.github/workflows/deploy-azure.yml @@ -0,0 +1,30 @@ +name: Azure Static Web Apps CI/CD + +on: + push: + branches: + - master + +jobs: + build_and_deploy_job: + if: github.event_name == 'push' + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_LEMON_WATER_0063A7F03 }} + repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for Github integrations (i.e. PR comments) + action: "upload" + ###### Repository/Build Configurations - These values can be configured to match your app requirements. ###### + # For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig + app_location: "/" # App source code path + app_build_command: "yarn build && sed -i 's/fonts.gstatic.com/fonts.kavin.rocks/g' dist/assets/*.css" + api_location: "" # Api source code path - optional + output_location: "dist" # Built app content directory - optional + ###### End of Repository/Build Configurations ###### diff --git a/.github/workflows/weblate-merge.yml b/.github/workflows/weblate-merge.yml new file mode 100644 index 00000000..e5bedee1 --- /dev/null +++ b/.github/workflows/weblate-merge.yml @@ -0,0 +1,16 @@ +name: Merge Weblate translations + +on: + pull_request: + types: [opened, reopened] + +jobs: + merge: + runs-on: ubuntu-latest + steps: + - name: AutoMerge Weblate translations + if: github.event.pull_request.user.login == 'weblate' + run: gh pr merge --auto --delete-branch --merge "$PR_URL" + env: + PR_URL: ${{github.event.pull_request.html_url}} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 24ebc057..d7c1441d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![AGPL v3](https://shields.io/badge/License-AGPL%20v3-blue.svg)](https://www.gnu.org/licenses/agpl-3.0.en.html) [![Matrix](https://img.shields.io/matrix/piped:matrix.org)](https://matrix.to/#/#piped:matrix.org) -[![Registered Users](https://pipedapi.kavin.rocks/registered/badge)](https://piped.kavin.rocks/register) +[![Registered Users](https://pipedapi.kavin.rocks/registered/badge)](https://piped.video/register) [![IPFS Build](https://github.com/TeamPiped/Piped/actions/workflows/ipfs-build.yml/badge.svg)](https://piped-ipfs.kavin.rocks/) [![GitHub Repo stars](https://img.shields.io/github/stars/TeamPiped/Piped-Frontend?style=social)](https://github.com/TeamPiped/Piped/stargazers) [![GitHub last commit](https://img.shields.io/github/last-commit/TeamPiped/Piped-Frontend)](https://github.com/TeamPiped/Piped/commits) @@ -39,6 +39,7 @@ By using Piped, you can freely watch and listen to content without the fear of p - [x] [Available in many languages](src/locales), thanks to [our translators](https://hosted.weblate.org/projects/piped/frontend/) - [x] Embedded video support - [x] No age restriction +- [x] Bypasses Geo restrictions if possible through a federated network **Technical Features** @@ -46,7 +47,8 @@ By using Piped, you can freely watch and listen to content without the fear of p - [x] Performant by design, designed to handle 1000s of users concurrently - [x] Does not use official YouTube APIs - [x] Uses [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) to extract information -- [x] Public [JSON API](https://piped-docs.kavin.rocks/docs/api-documentation/) +- [x] Public [JSON API](https://docs.piped.video/docs/api-documentation/) +- [x] Federated protocol on Matrix to let instances collaborate with each other ## Screenshots @@ -61,13 +63,13 @@ By using Piped, you can freely watch and listen to content without the fear of p ## Self-Hosting -See https://piped-docs.kavin.rocks/docs/self-hosting/ for more details. +See https://docs.piped.video/docs/self-hosting/ for more details. The source code of the documentation website is available at https://github.com/TeamPiped/Documentation. ## Documentation -The documentation can be found at https://piped-docs.kavin.rocks (accessible via IPNS as well). +The documentation can be found at https://docs.piped.video (accessible via IPNS as well). ## Extensions @@ -79,6 +81,16 @@ To redirect all YouTube links to Piped, you are highly recommended to use either You can help by translating the project to a language you speak at https://hosted.weblate.org/projects/piped/frontend/ +### Mirrors + +- Cloudflare Pages - [cf.piped.video](https://cf.piped.video/) +- Vercel - [vc.piped.video](https://vc.piped.video/) +- Render - [re.piped.video](https://re.piped.video/) +- Fleek - [fl.piped.video](https://fl.piped.video/) +- DigitalOcean - [do.piped.video](https://do.piped.video/) +- Netlify - [nf.piped.video](https://nf.piped.video/) +- Azure - [az.piped.video](https://az.piped.video/) + ### Forking, and contributing - Fork the repository on GitHub: https://github.com/TeamPiped/Piped/fork diff --git a/package.json b/package.json index eb3faabb..f9161981 100644 --- a/package.json +++ b/package.json @@ -9,41 +9,41 @@ "lint": "eslint --fix --color --ignore-path .gitignore --ext .js,.vue ." }, "dependencies": { - "@fortawesome/fontawesome-svg-core": "6.2.0", - "@fortawesome/free-brands-svg-icons": "6.2.0", - "@fortawesome/free-solid-svg-icons": "6.2.0", - "@fortawesome/vue-fontawesome": "3.0.1", + "@fortawesome/fontawesome-svg-core": "6.2.1", + "@fortawesome/free-brands-svg-icons": "6.2.1", + "@fortawesome/free-solid-svg-icons": "6.2.1", + "@fortawesome/vue-fontawesome": "3.0.2", "buffer": "6.0.3", - "dompurify": "2.4.0", - "hotkeys-js": "3.10.0", + "dompurify": "2.4.1", + "hotkeys-js": "3.10.1", "javascript-time-ago": "2.5.9", "mux.js": "6.2.0", - "shaka-player": "4.2.3", + "shaka-player": "4.3.2", "stream-browserify": "3.0.0", - "vue": "3.2.41", + "vue": "3.2.45", "vue-i18n": "9.2.2", "vue-router": "4.1.6", "xml-js": "1.6.11" }, "devDependencies": { - "@iconify/json": "2.1.132", + "@iconify/json": "2.1.153", "@intlify/vite-plugin-vue-i18n": "6.0.3", - "@unocss/preset-icons": "0.46.3", - "@unocss/preset-web-fonts": "0.46.3", - "@unocss/transformer-directives": "0.46.3", - "@unocss/transformer-variant-group": "0.46.3", - "@vitejs/plugin-legacy": "2.3.0", - "@vitejs/plugin-vue": "3.2.0", - "@vue/compiler-sfc": "3.2.41", - "eslint": "8.26.0", + "@unocss/preset-icons": "0.47.6", + "@unocss/preset-web-fonts": "0.47.6", + "@unocss/transformer-directives": "0.47.6", + "@unocss/transformer-variant-group": "0.47.6", + "@vitejs/plugin-legacy": "3.0.1", + "@vitejs/plugin-vue": "4.0.0", + "@vue/compiler-sfc": "3.2.45", + "eslint": "8.29.0", "eslint-config-prettier": "8.5.0", "eslint-plugin-prettier": "4.2.1", - "eslint-plugin-vue": "9.7.0", - "prettier": "2.7.1", - "unocss": "0.46.3", - "vite": "3.2.2", + "eslint-plugin-vue": "9.8.0", + "prettier": "2.8.1", + "unocss": "0.47.6", + "vite": "3.2.5", "vite-plugin-eslint": "1.8.1", - "vite-plugin-pwa": "0.13.1" + "vite-plugin-pwa": "0.14.0" }, "eslintConfig": { "root": true, diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 00000000..43085054 --- /dev/null +++ b/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 diff --git a/public/opensearch.xml b/public/opensearch.xml index 6916840d..fa327f38 100644 --- a/public/opensearch.xml +++ b/public/opensearch.xml @@ -4,7 +4,7 @@ Piped Search Search for videos, channels, and playlists on Piped UTF-8 - https://piped.kavin.rocks/favicon.ico - + https://piped.video/favicon.ico + diff --git a/public/robots.txt b/public/robots.txt index eb053628..1f53798b 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,2 +1,2 @@ User-agent: * -Disallow: +Disallow: / diff --git a/src/App.vue b/src/App.vue index 3670746f..d89eb45e 100644 --- a/src/App.vue +++ b/src/App.vue @@ -181,7 +181,7 @@ export default { const App = this; (async function () { - const defaultLang = await App.defaultLangage; + const defaultLang = await App.defaultLanguage; const locale = App.getPreferenceString("hl", defaultLang); if (locale !== App.TimeAgoConfig.locale) { const localeTime = await import(`../node_modules/javascript-time-ago/locale/${locale}.json`) diff --git a/src/components/ChannelPage.vue b/src/components/ChannelPage.vue index 148e14d8..710c1330 100644 --- a/src/components/ChannelPage.vue +++ b/src/components/ChannelPage.vue @@ -36,6 +36,7 @@ > +

|