mirror of
https://codeberg.org/SafeTwitch/safetwitch.git
synced 2024-12-21 21:03:00 -05:00
Move folder
This commit is contained in:
parent
6265fa182b
commit
1e9726a601
29 changed files with 86 additions and 121 deletions
0
frontend/.gitignore → .gitignore
vendored
0
frontend/.gitignore → .gitignore
vendored
71
README.md
71
README.md
|
@ -1,29 +1,46 @@
|
||||||
# twitch-frontend
|
# test
|
||||||
twitch-frontend is a privacy respecting frontend for [twitch.tv](https://twitch.tv/)
|
|
||||||
|
|
||||||
The main advantages of twitch-frontend are:
|
This template should help get you started developing with Vue 3 in Vite.
|
||||||
- Private: Every request is proxied through the server, and no logs are kept.
|
|
||||||
- Lightweight: Compared to twitch, twitch-frontend is optimized for speed and usability. Scraping is the only current speed issue, but improves with caching
|
|
||||||
|
|
||||||
</br>
|
|
||||||
|
|
||||||
# Features
|
|
||||||
|
|
||||||
### User features
|
|
||||||
- [x] No connection to twitch/amazon
|
|
||||||
- [x] No Ads or tracking
|
|
||||||
- [x] No outside connections, only connection is the instance
|
|
||||||
- [x] Uses [Vue](https://vuejs.org/) for a speedy experience
|
|
||||||
- [x] No identifiable logs are kept (see [logs](#so-what-is-logged))
|
|
||||||
- [x] Much smaller pages compared to Twitch (<600kb compared to >8.2mb)
|
|
||||||
|
|
||||||
### Technical features
|
|
||||||
- [x] Public API
|
|
||||||
- [x] No official APIs are used
|
|
||||||
- [x] Uses a custom Twitch webscraper
|
|
||||||
|
|
||||||
|
## Recommended IDE Setup
|
||||||
|
|
||||||
## So, what is logged?
|
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
|
||||||
You may have caught the "No identifiable logs are kept",
|
|
||||||
When the server encounters an error, a log is kept. The log only includes the error message, the time, and an id, which is also given to the user so the instance owner can investigate the issue. This is mainly only used for debugging, and can be disabled in the config.
|
## Type Support for `.vue` Imports in TS
|
||||||
|
|
||||||
|
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
|
||||||
|
|
||||||
|
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
|
||||||
|
|
||||||
|
1. Disable the built-in TypeScript Extension
|
||||||
|
1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
|
||||||
|
2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
|
||||||
|
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
|
||||||
|
|
||||||
|
## Customize configuration
|
||||||
|
|
||||||
|
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
||||||
|
|
||||||
|
## Project Setup
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
### Compile and Hot-Reload for Development
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### Type-Check, Compile and Minify for Production
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lint with [ESLint](https://eslint.org/)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm run lint
|
||||||
|
```
|
||||||
|
|
0
frontend/env.d.ts → env.d.ts
vendored
0
frontend/env.d.ts → env.d.ts
vendored
|
@ -1,46 +0,0 @@
|
||||||
# test
|
|
||||||
|
|
||||||
This template should help get you started developing with Vue 3 in Vite.
|
|
||||||
|
|
||||||
## Recommended IDE Setup
|
|
||||||
|
|
||||||
[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
|
|
||||||
|
|
||||||
## Type Support for `.vue` Imports in TS
|
|
||||||
|
|
||||||
TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
|
|
||||||
|
|
||||||
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
|
|
||||||
|
|
||||||
1. Disable the built-in TypeScript Extension
|
|
||||||
1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
|
|
||||||
2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
|
|
||||||
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
|
|
||||||
|
|
||||||
## Customize configuration
|
|
||||||
|
|
||||||
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
|
||||||
|
|
||||||
## Project Setup
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
### Compile and Hot-Reload for Development
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### Type-Check, Compile and Minify for Production
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
### Lint with [ESLint](https://eslint.org/)
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm run lint
|
|
||||||
```
|
|
|
@ -1,46 +0,0 @@
|
||||||
{
|
|
||||||
"name": "test",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite",
|
|
||||||
"build": "run-p type-check build-only",
|
|
||||||
"preview": "vite preview",
|
|
||||||
"build-only": "vite build",
|
|
||||||
"type-check": "vue-tsc --noEmit",
|
|
||||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
|
||||||
"format": "prettier --write src/"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@dragongoose/streamlink": "^1.0.2",
|
|
||||||
"oh-vue-icons": "^1.0.0-rc3",
|
|
||||||
"video.js": "^8.0.4",
|
|
||||||
"videojs-contrib-quality-levels": "^3.0.0",
|
|
||||||
"videojs-hls-quality-selector": "^1.1.4",
|
|
||||||
"vue": "^3.2.47",
|
|
||||||
"vue-router": "^4.1.6"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@catppuccin/tailwindcss": "^0.1.1",
|
|
||||||
"@rushstack/eslint-patch": "^1.2.0",
|
|
||||||
"@tailwindcss/typography": "^0.5.9",
|
|
||||||
"@types/node": "^18.14.2",
|
|
||||||
"@types/videojs-contrib-quality-levels": "^2.0.1",
|
|
||||||
"@types/videojs-hls-quality-selector": "^1.1.0",
|
|
||||||
"@types/video.js": "^7.3.51",
|
|
||||||
"@vitejs/plugin-vue": "^4.0.0",
|
|
||||||
"@vue/eslint-config-prettier": "^7.1.0",
|
|
||||||
"@vue/eslint-config-typescript": "^11.0.2",
|
|
||||||
"@vue/tsconfig": "^0.1.3",
|
|
||||||
"autoprefixer": "^10.4.13",
|
|
||||||
"eslint": "^8.34.0",
|
|
||||||
"eslint-plugin-vue": "^9.9.0",
|
|
||||||
"npm-run-all": "^4.1.5",
|
|
||||||
"postcss": "^8.4.21",
|
|
||||||
"prettier": "^2.8.4",
|
|
||||||
"tailwindcss": "^3.2.7",
|
|
||||||
"typescript": "~4.8.4",
|
|
||||||
"vite": "^4.1.4",
|
|
||||||
"vue-tsc": "^1.2.0"
|
|
||||||
}
|
|
||||||
}
|
|
0
frontend/package-lock.json → package-lock.json
generated
0
frontend/package-lock.json → package-lock.json
generated
44
package.json
44
package.json
|
@ -1,6 +1,46 @@
|
||||||
{
|
{
|
||||||
|
"name": "test",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "cd frontend && npm run build",
|
"dev": "vite",
|
||||||
"prod": "cd server && npm run prod"
|
"build": "run-p type-check build-only",
|
||||||
|
"preview": "vite preview",
|
||||||
|
"build-only": "vite build",
|
||||||
|
"type-check": "vue-tsc --noEmit",
|
||||||
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
||||||
|
"format": "prettier --write src/"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@dragongoose/streamlink": "^1.0.2",
|
||||||
|
"oh-vue-icons": "^1.0.0-rc3",
|
||||||
|
"video.js": "^8.0.4",
|
||||||
|
"videojs-contrib-quality-levels": "^3.0.0",
|
||||||
|
"videojs-hls-quality-selector": "^1.1.4",
|
||||||
|
"vue": "^3.2.47",
|
||||||
|
"vue-router": "^4.1.6"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@catppuccin/tailwindcss": "^0.1.1",
|
||||||
|
"@rushstack/eslint-patch": "^1.2.0",
|
||||||
|
"@tailwindcss/typography": "^0.5.9",
|
||||||
|
"@types/node": "^18.14.2",
|
||||||
|
"@types/videojs-contrib-quality-levels": "^2.0.1",
|
||||||
|
"@types/videojs-hls-quality-selector": "^1.1.0",
|
||||||
|
"@types/video.js": "^7.3.51",
|
||||||
|
"@vitejs/plugin-vue": "^4.0.0",
|
||||||
|
"@vue/eslint-config-prettier": "^7.1.0",
|
||||||
|
"@vue/eslint-config-typescript": "^11.0.2",
|
||||||
|
"@vue/tsconfig": "^0.1.3",
|
||||||
|
"autoprefixer": "^10.4.13",
|
||||||
|
"eslint": "^8.34.0",
|
||||||
|
"eslint-plugin-vue": "^9.9.0",
|
||||||
|
"npm-run-all": "^4.1.5",
|
||||||
|
"postcss": "^8.4.21",
|
||||||
|
"prettier": "^2.8.4",
|
||||||
|
"tailwindcss": "^3.2.7",
|
||||||
|
"typescript": "~4.8.4",
|
||||||
|
"vite": "^4.1.4",
|
||||||
|
"vue-tsc": "^1.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Loading…
Reference in a new issue