mirror of
https://github.com/NoCrypt/migu.git
synced 2026-03-11 17:45:32 +00:00
Swap identity
This commit is contained in:
parent
f721a2748c
commit
472534833a
9 changed files with 27 additions and 145 deletions
130
README.md
130
README.md
|
|
@ -1,124 +1,18 @@
|
|||
<p align="center">
|
||||
<a href="https://github.com/ThaUnknown/miru">
|
||||
<img src="./web/static/logo_filled.svg" width="200">
|
||||
</a>
|
||||
</p>
|
||||
<h1 align="center"><b>Miru</b></h1>
|
||||
# Migu
|
||||
|
||||
<h4 align="center"><b>Stream anime torrents, real-time with no waiting for downloads</b></h4>
|
||||
**Migu** is a fork of Miru that focused on mobile-first experience with added features. Designed to stream anime torrents, real-time with no waiting for downloads. Currently, there is no support for a PC version, but this may be considered in the future.
|
||||
|
||||
<p align="center">
|
||||
<a href="https://miru.watch/#about">About</a> •
|
||||
<a href="https://miru.watch/features/">Features</a> •
|
||||
<a href="https://miru.watch/faq/">Frequently Asked Questions</a> •
|
||||
<a href="#building-and-development">Building and Development</a> •
|
||||
<a href="https://miru.watch/download/">Download</a>
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="./docs/out.gif" alt="showcase"><br>
|
||||
<a href="https://discord.gg/Z87Nh7c4Ac">
|
||||
<img src="https://img.shields.io/discord/953341991134064651?style=flat-square" alt="chat">
|
||||
</a>
|
||||
<a href="https://miru.watch/download/">
|
||||
<img alt="GitHub all releases" src="https://img.shields.io/github/downloads/ThaUnknown/miru/total?style=flat-square">
|
||||
</a>
|
||||
</p>
|
||||
## Unique Features (Changes from Miru)
|
||||
|
||||
## **About**
|
||||
A pure JS BitTorrent streaming environment, with a built-in list manager. Imagine qBit + Taiga + MPV, all in a single package, but streamed real-time. Completly ad free with no tracking/data collection.
|
||||
### Limited Bandwidth Options
|
||||
- **Close Mini Player:** Option to close the mini player.
|
||||
- **Prevent Mini Player Loading:** By default, the mini player does not load on startup (this can be toggled).
|
||||
- **Separate Download and Upload Limits:** Allows setting different limits for downloading and uploading.
|
||||
- **Disable Seeding:** Option to fully disable seeding.
|
||||
|
||||
This app is meant to feel look, work and perform like a streaming website/app, while providing all the advantages of torrenting, like file downloads, higher download speeds, better video quality and quicker releases.
|
||||
#### Why?
|
||||
Mobile users often have limited bandwidth or data quotas. Miru can consume up to 1GB per minute, which is impractical for mobile users.
|
||||
|
||||
Unlike qBit's sequential, seeking into undownloaded data will prioritise downloading that data, instead of flat out closing MPV.
|
||||
## **Features**
|
||||
### **Anime:**
|
||||
- full AniList integration
|
||||
- filter anime by name, genre, season, year, format, status
|
||||
- view anime on your planning and watching list
|
||||
- add and remove anime from your planning list
|
||||
- automatically mark episodes as complete as you watch them
|
||||
- view trailers/previews for anime
|
||||
- score anime
|
||||
- view anime relations
|
||||
- automatically find torrents for desired episodes
|
||||
- automatically detect what anime a torrent is
|
||||
- view latest releases on any custom RSS
|
||||
- airing schedule
|
||||
- find anime by image [just paste an image into the app]
|
||||
### **Video:**
|
||||
- full subtitle support
|
||||
- support for softcoded subtitles
|
||||
- support for external subtitle files
|
||||
- support for VTT, SSA, ASS, SUB, TXT subtitles
|
||||
- subtitle display in PiP
|
||||
- keybinds for all functions:
|
||||
- **S** - seek forwards 90 seconds [skip opening]
|
||||
- **R** - seek backwards 90 seconds
|
||||
- **→** - seek forwards 2 seconds
|
||||
- **←** - seek backwards 2 seconds
|
||||
- **↑** - increase volume
|
||||
- **↓** - decrease volume
|
||||
- **M** - mute volume
|
||||
- **C** - cycle through subtitle tracks
|
||||
- **N** - play next episode [if available]
|
||||
- **B** - play last episode [if available]
|
||||
- **F** - toggle fullscreen
|
||||
- **P** - toggle picture in picture
|
||||
- **[** - increase playback speed
|
||||
- **]** - decrease playback speed
|
||||
- **\\** - reset playback speed to 1
|
||||
- **I** - view video stats for nerds
|
||||
- **`** - open keybinds UI
|
||||
- editable keybinds **`** allows drag dropping any key
|
||||
- miniplayer
|
||||
- media session display
|
||||
- media keys support
|
||||
- Discord rich pressence
|
||||
- preview thumbnails
|
||||
- pause on lost focus
|
||||
- autoplay next episode
|
||||
- multi-audio support
|
||||
- torrent download progress on the seek bar
|
||||
### **Torrent:**
|
||||
- select downloads folder
|
||||
- specify download/upload speeds
|
||||
- support for most popular BEP's
|
||||
- support for custom torrent RSS feeds for latest releases
|
||||
- change what resolution to find torrents in
|
||||
- stream real-time with no waiting for downloads
|
||||
- support for custom extensions for custom sources and trackers
|
||||
## License
|
||||
|
||||
## **Linux Installation**
|
||||
|
||||
### Arch
|
||||
|
||||
If you use paru:
|
||||
```bash
|
||||
paru -S miru-bin
|
||||
```
|
||||
|
||||
If you use yay:
|
||||
|
||||
```bash
|
||||
yay -S miru-bin
|
||||
```
|
||||
|
||||
### Debian/Ubuntu
|
||||
|
||||
- Download the `linux-Miru-version.deb` from the [releases](https://github.com/ThaUnknown/miru/releases/latest) page.
|
||||
- Install the deb file with package manager.
|
||||
```bash
|
||||
apt install linux-Miru-*.deb
|
||||
```
|
||||
|
||||
## **Building and Development**
|
||||
|
||||
*dont*
|
||||
|
||||
Dependencies:
|
||||
- Node 16 or above
|
||||
- PNPM
|
||||
- Docker
|
||||
- Android Debug Bridge
|
||||
- Java 18 or above [probably?]
|
||||
- maybe others... have fun.
|
||||
This project acknowledges and complies with the GPL license.
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
"build:native-win": "cd public\\nodejs && for %I in (.) do docker run -v %~fI:/app/ -it android-build:latest /bin/bash /app/setup-deps-win.sh",
|
||||
"build:app": "cross-env NODE_ENV=production run-s build:web build:native build:assets",
|
||||
"build:web": "webpack build",
|
||||
"build:assets": "capacitor-assets generate --iconBackgroundColor #e5204c --iconBackgroundColorDark #e5204c --splashBackgroundColor #e5204c --splashBackgroundColorDark #e5204c --android",
|
||||
"build:assets": "capacitor-assets generate --iconBackgroundColor #20a2ff --iconBackgroundColorDark #20a2ff --splashBackgroundColor #20a2ff --splashBackgroundColorDark #20a2ff --android",
|
||||
"dev:adb-port": "adb reverse tcp:5001 tcp:5001",
|
||||
"dev:ios": "run-p dev:start cap-run:ios",
|
||||
"dev:android": "cap run android",
|
||||
|
|
|
|||
|
|
@ -38,21 +38,22 @@
|
|||
icon: 'groups',
|
||||
text: 'Watch Together'
|
||||
},
|
||||
{
|
||||
click: () => {
|
||||
IPC.emit('open', 'https://github.com/sponsors/ThaUnknown/')
|
||||
},
|
||||
icon: 'favorite',
|
||||
text: 'Support This App',
|
||||
css: 'ml-auto donate'
|
||||
},
|
||||
// {
|
||||
// click: () => {
|
||||
// IPC.emit('open', 'https://github.com/sponsors/ThaUnknown/')
|
||||
// },
|
||||
// icon: 'favorite',
|
||||
// text: 'Support This App',
|
||||
// css: 'ml-auto donate'
|
||||
// },
|
||||
{
|
||||
click: () => {
|
||||
page = 'settings'
|
||||
},
|
||||
page: 'settings',
|
||||
icon: 'settings',
|
||||
text: 'Settings'
|
||||
text: 'Settings',
|
||||
css: 'ml-auto'
|
||||
}
|
||||
]
|
||||
function close () {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
:root {
|
||||
--accent-color: #e5204c;
|
||||
--accent-color: #20a2ff;
|
||||
--dm-link-text-color: var(--dm-muted-text-color) !important;
|
||||
--dm-link-text-color-hover: var(--dm-text-color) !important;
|
||||
--base-html-font-size: 50%;
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 10 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 33 KiB |
|
|
@ -1,13 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="39.147381mm"
|
||||
height="39.147381mm"
|
||||
viewBox="0 0 39.147381 39.14738"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<g aria-label="みる" transform="matrix(1.8923544,0,0,1.8923544,-125.56938,-95.152054)" style="fill:#e5204c">
|
||||
<path d="m 76.79068,62.020505 -0.733118,1.300869 q -0.865408,-0.479558 -1.802475,-0.903994 -0.799263,1.631599 -1.956817,3.158467 l -1.25126,-0.76619 q 1.113456,-1.394576 1.841061,-2.954517 -0.942579,-0.374827 -2.067059,-0.600825 -0.777214,1.774915 -1.389064,2.359203 -0.61185,0.578777 -1.273309,0.578777 -0.744141,0 -1.273308,-0.529167 -0.529167,-0.529167 -0.529167,-1.30087 0,-0.981164 0.964627,-1.785939 0.97014,-0.810287 2.574178,-0.859897 0.474046,-1.063846 0.881946,-2.166278 -1.510332,0.4079 -2.508032,0.529167 l -0.369315,-1.350478 q 1.670184,-0.198438 4.018363,-0.959116 l 0.617362,1.12448 q -0.01102,0.115756 -1.141017,2.971054 0.986677,0.209462 2.011938,0.600825 0.314193,-1.113456 0.48507,-2.585202 l 1.422137,0.28112 q -0.181901,1.515843 -0.551216,2.844273 1.129993,0.518143 2.028475,1.014238 z m -7.573706,-0.788239 q -0.650435,0.132292 -1.025262,0.512631 -0.369314,0.374826 -0.369314,0.677995 0,0.319705 0.314193,0.319705 0.159852,0 0.474045,-0.380339 0.319706,-0.380339 0.606338,-1.129992 z" />
|
||||
<path d="m 83.118637,59.325059 q 0.48507,-0.115755 0.942579,-0.115755 1.367016,0 2.171791,0.926042 0.810287,0.920531 0.810287,2.171791 0,1.394576 -1.063846,2.287546 -1.058335,0.887457 -2.689934,0.887457 -1.27882,0 -2.039498,-0.617362 -0.755166,-0.617361 -0.755166,-1.488282 0,-0.749654 0.545704,-1.25126 0.551215,-0.501607 1.295357,-0.501607 1.433161,0 2.37574,2.033987 0.837848,-0.396876 0.837848,-1.284333 0,-1.769403 -1.934767,-1.769403 -1.069359,0 -1.934768,0.474045 -0.865409,0.474046 -2.149742,1.890671 l -1.096919,-1.080383 q 2.596226,-2.463935 4.497921,-4.503434 -1.58199,0.159853 -2.745055,0.132292 l -0.28112,-1.477258 q 0.424436,0.02205 0.865409,0.02205 1.741842,0 4.056948,-0.385851 l 0.68902,1.152041 q -0.9977,1.074871 -2.397789,2.497008 z m 0.170877,4.718408 q -0.474045,-0.992189 -0.953603,-0.992189 -0.35829,0 -0.35829,0.308681 0,0.259071 0.336241,0.474046 0.341754,0.209462 0.975652,0.209462 z" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
|
@ -35,7 +35,7 @@
|
|||
</div>
|
||||
</SettingCard>
|
||||
<SettingCard title='CSS Variables' description='Used for custom themes. Can change colors, sizes, spacing and more. Supports only variables. Best way to discover variables is to use the built-in devtools via Ctrl+Shift+I or F12.'>
|
||||
<textarea class='form-control w-500 mw-full bg-dark' placeholder='--accent-color: #e5204c;' bind:value={$variables} />
|
||||
<textarea class='form-control w-500 mw-full bg-dark' placeholder='--accent-color: #20a2ff;' bind:value={$variables} />
|
||||
</SettingCard>
|
||||
<SettingCard title='Card Type' description='What type of cards to display in menus.'>
|
||||
<select class='form-control bg-dark w-300 mw-full' bind:value={settings.cards}>
|
||||
|
|
|
|||
|
|
@ -118,12 +118,12 @@
|
|||
</div>
|
||||
</TabLabel>
|
||||
{/each}
|
||||
<div class='pointer my-5 rounded' tabindex='0' role='button' use:click={() => IPC.emit('open', 'https://github.com/sponsors/ThaUnknown/')}>
|
||||
<!-- <div class='pointer my-5 rounded' tabindex='0' role='button' use:click={() => IPC.emit('open', 'https://github.com/sponsors/ThaUnknown/')}>
|
||||
<div class='px-20 py-10 d-flex'>
|
||||
<span class='material-symbols-outlined font-size-24 pr-10 d-inline-flex justify-content-center align-items-center'>favorite</span>
|
||||
<div class='font-size-16'>Donate</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class='pointer my-5 rounded' use:click={loginButton}>
|
||||
<div class='px-20 py-10 d-flex'>
|
||||
{#if anilistClient.userID?.viewer?.data?.Viewer}
|
||||
|
|
|
|||
Loading…
Reference in a new issue