Skip to content

Commit

Permalink
feat: frontend improvements (#158)
Browse files Browse the repository at this point in the history
* feat: added global debug for settings

* feat: added dev to formDebug so it's always true in development but false in production

* feat: added DEBUG & LOG to general settings

* deps: switched svelte-sonner to shadcn customized toast component

* refactor: renamed PlexDebridItem to IcebergItem and added changes made to /items

* fix: fixed the wrong relative date in status page

* docs: readme improvements

* docs: readme improvements

* docs: readme improvements

* chore(deps): bump lucide-svelte from 0.303.0 to 0.307.0 in /frontend (#124)

* refactor: componentized forms, soon will do same for fields too

* Parse rewrite (#128)

* Move parser to its own module

* Add ORIGIN to env vars

* Fix overseerr, watchlist, jackett validation.

* Added more refined logic to parser module.

* Set stage for testing

* Add methods for individual checks

* Update sort logic

* Update default settings

* Fix jackett. Begin to add title support for jackett.

---------

Co-authored-by: Spoked <Spoked@localhost>
Co-authored-by: Dreu LaVelle <dreu.lavelle@localhost>

* feat: onboarding on the way ;), major refactoring of form related code

* Simplified downloading logic and modified state matchine

* fix typo in state machine and handle movie pathing correctly

* Remove useless method

* Temporary fix to test

* Remove uncached stream hashes from item to avoid loop, some blacklisting logic could also be good

* chore(deps-dev): bump @typescript-eslint/eslint-plugin in /frontend (#134)

* chore(deps): bump lucide-svelte from 0.307.0 to 0.309.0 in /frontend (#133)

* chore(deps-dev): bump @sveltejs/kit from 2.0.1 to 2.3.2 in /frontend (#132)

* chore(deps): bump bits-ui from 0.13.0 to 0.14.0 in /frontend (#130)

* chore(deps-dev): bump @sveltejs/adapter-node in /frontend (#138)

* feat: some more onboarding and form improvements

* Dev startup to disabling pickling

* feat: Listrr Support Added (#136)

* Start Listrr Feature
* feat: Listrr ready for review.
* small tweaks. rewrite coming later.

---------

Co-authored-by: Spoked <Spoked@localhost>

* Jackett rewrite (#139)

* Add TorBox scraper

* Add is_anime attribute to item

* Rework Jackett to Keyword Queries. Added categories. Removed Torbox

* Remove audio from parsing, it removed alot of good hits

* fix movie scraping and modify response parsing logic to be more readable

* fix: remove torbox module

* remove audio from being parsed

* remove more audio from parser

* fix typo

* fix: tidy audio and networks

* small tweaks

---------

Co-authored-by: Spoked <Spoked@localhost>
Co-authored-by: Gaisberg <None>

* Avoid [None] if empty content service

* fix: handle bad quality manually in parser (#145)

Co-authored-by: Spoked <Spoked@localhost>

* deps: updated deps due to security updateS

* feat: added more onboarding steps, some bugs also introduced

* chore(deps-dev): bump @sveltejs/kit from 2.3.2 to 2.4.2 in /frontend (#156)

* chore(deps-dev): bump prettier from 3.1.1 to 3.2.4 in /frontend (#155)

* chore(deps): bump lucide-svelte from 0.309.0 to 0.314.0 in /frontend (#154)

* chore(deps): bump bits-ui from 0.14.0 to 0.15.1 in /frontend (#153)

* feat: minor changes

* feat: deps change

* feat: deps change

* feat: onboarding MVP done

---------

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Spoked <[email protected]>
Co-authored-by: Spoked <Spoked@localhost>
Co-authored-by: Dreu LaVelle <dreu.lavelle@localhost>
Co-authored-by: Gaisberg <None>
  • Loading branch information
5 people authored and Dreu LaVelle committed Jan 25, 2024
1 parent 3997cad commit 54dc70a
Show file tree
Hide file tree
Showing 35 changed files with 2,253 additions and 1,329 deletions.
97 changes: 74 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,42 @@
# Iceberg

The idea behind this was to make a simple and functional rewrite of plex debrid that seemed to get a bit clustered.
Plex torrent streaming through Real Debrid and 3rd party services like Overseerr, Mdblist, etc.

Rewrite of [plex_debrid](https://github.com/itsToggle/plex_debrid) project.

Currently:
- Services include: Plex, Mdblist, Torrentio and Real Debrid

TODO:
- Implement uncached download in real-rebrid, dont know if we need this, movies seem to work ok...
- Implement updating quality of fetched items if below something
- Add frontend, ongoing... (adding api endpoints as we go along)
Services currently supported:
- [x] Real Debrid
- [x] Plex
- [x] Overseerr
- [x] Mdblist
- [x] Plex Watchlist RSS
- [x] Torrentio
- [x] Orionoid
- [x] Jackett
- [ ] and more to come!

Check out out [Project Board](https://github.com/users/dreulavelle/projects/2) to stay informed!

COMPLETED:
- ~~Update plex libraries for changes, ongoing...~~ (functional but we need to be more specific when to update)
- ~~Real-debrid should download only one file per stream, lets avoid collections~~
- ~~Add overseerr support, mostly done~~ still need to mark items as available?
- ~~Add support for shows, ongoing...~~ (Functionalish, needs work...)
- ~~Modify scraping logic to try scaping once a day if not found?~~
- ~~Store data with pickle~~
- ~~Improve logging...~~
- And more..

Please add feature requests and issues over on our [Issue Tracker](https://github.com/dreulavelle/iceberg/issues)!
Please add feature requests and issues over on our [Issue Tracker](https://github.com/dreulavelle/iceberg/issues) or join our [Discord](https://discord.gg/wDgVdH8vNM) to chat with us!

We are constantly adding features and improvements as we go along and squashing bugs as they arise.

Enjoy!
---

## Table of Contents
- [Docker Compose](#docker-compose)
- [What is ORIGIN ?](#what-is-origin-)
- [Running outside of Docker](#running-outside-of-docker)
- [Symlinking settings](#symlinking-settings)
- [Development](#development)
- [Development without `make`](#development-without-make)

---

## Docker Compose

Create a `docker-compose.yml` file with the following contents:

```yml
version: '3.8'

Expand All @@ -43,28 +48,47 @@ services:
environment:
PUID: "1000"
PGID: "1000"
ORIGIN: "http://localhost:3000" # read below for more info
ports:
- "3000:3000"
volumes:
- ./data:/iceberg/data
```
Then run `docker compose up -d` to start the container in the background. You can then access the web interface at `http://localhost:3000` or whatever port and origin you set in the `docker-compose.yml` file.

#### What is ORIGIN ?
`ORIGIN` is the URL of the frontend on which you will access it from anywhere. If you are hosting Iceberg on a vps with IP address `134.32.24.44` then you will need to set the `ORIGIN` to `http://134.32.24.44:3000` (no trailing slash). Similarly, if using a domain name, you will need to set the `ORIGIN` to `http://iceberg.mydomain.com:3000` (no trailing slash). If you change the port in the `docker-compose.yml` file, you will need to change it in the `ORIGIN` as well.

## Running outside of Docker

First terminal:
To run outside of docker you will need to have node (v18.13+) and python (3.10+) installed. Then clone the repository

```sh
git clone https://github.com/dreulavelle/iceberg.git
cd frontend && npm install && npm run dev
```

Second terminal:
and open two terminals in the root of the project and run the following commands in each.

#### First terminal:

```sh
cd frontend
npm install
npm run build
ORIGIN=http://localhost:3000 node build
```
Read above for more info on `ORIGIN`.

#### Second terminal:

```sh
pip install -r requirements.txt
python backend/main.py
```

---

## Symlinking settings
"host_mount" should point to your rclone mount that has your torrents on your host, if you are using native webdav set webdav-url to "https://dav.real-debrid.com/torrents"

Expand All @@ -77,6 +101,7 @@ Plex container volume configuration for rclone mount is "/iceberg/vfs:/media/vfs

Plex libraries you want to add to sections: movies -> /media/library/movies, shows -> /media/library/shows

---

## Development
You can view the readme in `make` to get started!
Expand All @@ -94,3 +119,29 @@ make start
```

You can also restart the container with `make restart`, or view the logs with `make logs`.

### Development without `make`
If you don't want to use `make` and docker, you can use the following commands to run development environment.

```sh
pip install -r requirements.txt
python backend/main.py
```

```sh
cd frontend
npm install
npm run dev
```

---

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

We use Black for backend and Prettier for frontend. Please make sure to run the formatters before submitting a pull request. Also use CRLF line endings unless it is a shell script or something that requires LF line endings.

---

## License
This project is licensed under the GNU GPLv3 License - see the [LICENSE](LICENSE) file for details
6 changes: 4 additions & 2 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
"format": "prettier --write ."
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^3.0.1",
"@sveltejs/kit": "^2.4.2",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/luxon": "^3.3.7",
"@types/nprogress": "^0.2.3",
"@types/uuid": "^9.0.7",
"@typescript-eslint/eslint-plugin": "^6.19.0",
"@typescript-eslint/parser": "^6.17.0",
"autoprefixer": "^10.4.14",
Expand All @@ -34,7 +34,7 @@
"tailwindcss": "^3.4.0",
"tslib": "^2.4.1",
"typescript": "^5.0.0",
"vite": "^5.0.0",
"vite": "^5.0.12",
"vitest": "^1.1.0"
},
"type": "module",
Expand All @@ -46,11 +46,13 @@
"lucide-svelte": "^0.314.0",
"luxon": "^3.4.4",
"mode-watcher": "^0.1.2",
"motion": "^10.17.0",
"nprogress": "^0.2.0",
"svelte-sonner": "^0.3.6",
"sveltekit-superforms": "^1.13.1",
"tailwind-merge": "^2.2.0",
"tailwind-variants": "^0.1.18",
"uuid": "^9.0.1",
"zod": "^3.22.4"
}
}
Loading

0 comments on commit 54dc70a

Please sign in to comment.