Giter Club home page Giter Club logo

flox's People

Contributors

dependabot[bot] avatar devfake avatar dragnucs avatar ellinia avatar exane avatar guastallaigor avatar lex111 avatar samuelcarlos93 avatar temamagic avatar timotk avatar yiannakis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flox's Issues

Docker setup

Hello, i'm trying to create a Dockerize this application, but I'm not getting it to work.

I found an already existing Dockerfile on Dockerhub which i modified to install php 7.4 instead of 7.0
Here is my Dockerfile:

FROM php:7.4-alpine

RUN apk add --update php7 php7-sqlite3 php7-json php7-phar php7-mbstring php7-openssl php7-dom php7-tokenizer php7-xml php7-pdo php7-pdo_sqlite curl git

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

RUN git clone https://github.com/devfake/flox

WORKDIR flox/backend

RUN composer install

CMD tail -f /dev/null

Here is the docker-compose file:

version: '3'

services:

  db:
    image: mysql:8.0.17
    environment:
      MYSQL_ROOT_PASSWORD: mypass
      MYSQL_DATABASE: flox_db
    ports:
      - "3308:3306"
    networks:
      - private
    volumes:
      - data:/var/lib/mysql
    deploy:
      placement:
        constraints:
          - node.role == manager

  app:
    image: calgara12/flox
    networks:
      - private
      - public
    ports:
      - "6030:8888"
    deploy:
      placement:
        constraints:
          - node.role == manager
      labels:
        - traefik.frontend.rule=Host:flox.mydomain.com
        - traefik.enable=true
        - traefik.port=8888
        - traefik.tags=public
        - traefik.docker.network=public
        - traefik.redirectorservice.frontend.entryPoints=http
        - traefik.redirectorservice.frontend.redirect.entryPoint=https
        - traefik.webservice.frontend.entryPoints=https

volumes:
  data:

networks:
  public:
    external: true
  private:

Once my containers are up and running I connect to my app container and type in the commands listed in your ReadMe.

/flox/backend # php artisan flox:init

 Enter your Database Name:
 > flox_db

 Enter your Database Username:
 > myusername

 Enter your Database Password:
 > mypass

 Enter your Database Hostname [localhost]:
 > 10.0.10.43

 Enter your Database Port [3306]:
 > 3306

/flox/backend #

But when i then do the db command i get an error:

/flox/backend # php artisan flox:db
TRYING TO MIGRATE DATABASE
Can not connect to the database. Error: could not find driver (SQL: select * from information_schema.tables where table_schema = flox_db and table_name = migrations and table_type = 'BASE TABLE')
Make sure your database credentials in .env are correct

Any help would be greatly appreciated :)

Mixed Content issue. Https

Hey, first of all, thank you so much for making this awesome application.

I wanted to install this in docker, and luckily i found a fork, that already implemented this. So i spun up the container, i just added my traefik labels to make it accessible publicly.
When i tried to reach it locally through 192.168.1.178:6030 it worked, but, when i tried to access it through my domain https://flox.mydomain.com i got an empty page, and when i looked at the console with F12 it gave me these errors:
https://i.stack.imgur.com/pYk2t.png

Then i went ahead and changed the APP_URL from http://localhost to https://flox.mydomain.com in the .env file which gave me the same result.

Then after doing some research i tried to force https by editing /backend/app/Providers/AppServiceProvider.php

I added use Illuminate\Support\Facades\URL; at the beginning of the file and URL::forceScheme('https'); inside the boot function.

This helped resolve all the above mentioned Errors and the Application finally loaded and i thought this would be the end of it. But that's not how the cookie crumbled.

I added a few movies to my watchlist, and then later when i looked at the list, not all movies loaded but there is a "Load more" button at the end of the website, and when i click that button, the old familliar "mixed content" error came back.
https://i.stack.imgur.com/KbVZZ.png
https://i.stack.imgur.com/2Wswd.png

I have no Idea why this is not served over https. Any help would be greatly appreciated! Thanks

Composer Install Missing Dependencies

After cloning this repo and making sure all packages are up-to-date, I run composer install in the flox/backend/ directory. The install fails with the following error.
It seems like there are missing dependencies that should probably be added to the install instructions. I'm trying to spin this up on a new container, so I'm starting from scratch, dependency-wise.

flox-host:/opt/flox/backend# composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for nikic/php-parser v2.1.1 -> satisfiable by nikic/php-parser[v2.1.1].
    - nikic/php-parser v2.1.1 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
  Problem 2
    - Installation request for phpunit/php-token-stream 1.4.8 -> satisfiable by phpunit/php-token-stream[1.4.8].
    - phpunit/php-token-stream 1.4.8 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
  Problem 3
    - Installation request for phpunit/phpunit 5.6.1 -> satisfiable by phpunit/phpunit[5.6.1].
    - phpunit/phpunit 5.6.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
  Problem 4
    - nikic/php-parser v2.1.1 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
    - psy/psysh v0.7.2 requires nikic/php-parser ^1.2.1|~2.0 -> satisfiable by nikic/php-parser[v2.1.1].
    - Installation request for psy/psysh v0.7.2 -> satisfiable by psy/psysh[v0.7.2].

  To enable extensions, verify that they are enabled in your .ini files:
    - /etc/php7/php.ini
    - /etc/php7/conf.d/00_iconv.ini
    - /etc/php7/conf.d/00_json.ini
    - /etc/php7/conf.d/00_mbstring.ini
    - /etc/php7/conf.d/00_openssl.ini
    - /etc/php7/conf.d/01_phar.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Unsecured content to https

Hello! First of all, I love your project. As a huge movie-holic it's my dream to build a recommendations engine some day using data from IMDb, TMDb, Trakt, Letterboxd, etc.

But for the issue. My https is not green and I see the images from tmdb are unsecure. Can you update flox to be 100% under http, including assets from outside.

Deploying Flox on Ubuntu

I find this project very interesting and want to deploy it on a home Ubuntu machine but I have very little knowledge about php, composer and nginx. I was able to follow alone up until database migrations. I think I messed up on the CLIENT_URI part as I can't access the site at the CLIENT_URI. Is it possible to make a installation guide for Ubuntu? I am using Ubuntu 16.04. Thanks in advance !

Anime Missing

There appears to be no anime based titles in this anymore, suggestions on how to fix it?

Adding Items with releasedate earlier than 1970-01-01 fails.

Hi,

try adding "Asterix der Gallier" - it will fail with: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1968-12-16 20:52:25' for column 'released_timestamp' at row 1

The problem is:

MariaDB stores values that use the TIMESTAMP data type as the number of seconds since '1970-01-01 00:00:00' (UTC). This means that the TIMESTAMP data type can hold values between '1970-01-01 00:00:01' (UTC) and '2038-01-19 03:14:07' (UTC).
see: https://mariadb.com/kb/en/timestamp/

To fix it, you can change from timestamp to datetime - find a migration a attached.
2020_01_09_210708_change_released_timestamp_to_datetime.txt

Remove requirement for user authentication?

It seems most modifications/additions in the app can only be made when the admin user is logged in. Is there an option to remove that requirement?
I don't really need users to be logged in to do anything, don't think most users would expose this to the internet and for home-internal use it probably doesn't really need user auth/password?
It's not like someone accidentally stumbling onto the app could cause any serious trouble - and if yes, you shouldn't really let him into your home network anyway. ;)

Add short notes to media items

It'd be nice if we could add short notes to items while on the detail media screen.
The wife asked for this, just so that she can add short remarks to an item.
Guess a simple text field would do, 3-4 lines, just to add some quick additional data like for items that she liked and I didn't or so.

TMDB 500 Error

I finally got Flox up and running just fine, but when I search for anything, click on Trending, etc I get a 500 error returned from TMDB. I checked their status page and they don't show anything going on that would affect this. I'm using the version 3 API key. Any ideas?

Thanks!

Kodi

I am looking for someone who could build a simple Kodi API for Flox.

There is already one for Plex (#127). However, I don't think there is any simple webhook functionality built in for Kodi?

Maybe this addon would help here: https://kodi.wiki/view/Add-on:Kodi_Callbacks.

The required data for Flox are very simple. The class must inherit from the abstract api class and implement the necessary methods. Example from Plex: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php.

API key inserted but loading without result

Hello,

I have setup flox and its running on a subdomain flox.xxx.de/ but its not loading anything.
The API key have created, Im using v3.

But its not working.
Do you can help me?

Thanks

Jellyfin

I am looking for someone who could build a simple Jellyfin API for Flox.

There is already one for Plex (#127). However, I don't think there is any simple webhook functionality built in for Jellyfin?

The required data for Flox are very simple. The class must inherit from the abstract api class and implement the necessary methods. Example from Plex: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php.

Or is it necessary to request the API of Jellyfin itself? For example via a cronjob.

integrate videojs

hello, is there any plan to integrate videojs or other video player?

here is a vue version of videojs [https://www.npmjs.com/package/vue-video-player]

404's with attempted api calls

Hi, I just tried to get Flox working on a VPS. It seems that it worked, since I am now presented with the flox main page, however it loads forever because it can't make some API calls for some reason.
relevant logs:

vendor.js:13 GET http://localhost/flox/public/api/settings 404 (Not Found)
(anonymous) @ vendor.js:13
e.exports @ vendor.js:13
e.exports @ vendor.js:13
vendor.js:13 Uncaught (in promise) Error: Request failed with status code 404
    at e.exports (http://localhost/flox/public/assets/vendor.js:13:21191)
    at e.exports (http://localhost/flox/public/assets/vendor.js:13:26983)
    at XMLHttpRequest.p.(anonymous function) (http://localhost/flox/public/assets/vendor.js:13:19950)
e.exports @ vendor.js:13
e.exports @ vendor.js:13
p.(anonymous function) @ vendor.js:13
vendor.js:13 GET http://localhost/flox/public/api/items/home/rating 404 (Not Found)

any idea? the call itself is strange, since the public folder is not restful.

I am running on nginx with php7 and mariadb, all stable.

Composer Install Artisan Fatal Error

After cloning the master branch, installing dependencies, and running composer install in flox/backend/ the following error is thrown on Alpine 3.10:

flox-host:/opt/flox/backend# composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Class 'PDO' not found in /opt/flox/backend/config/database.php:16
Stack trace:
#0 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(60): require()
#1 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(38): Illuminate\Foundation\Bootstrap\LoadConfiguration->loadConfigurationFiles(Object(Illuminate\Foundation\Application), Object(Illuminate\Config\Repository))
#2 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(203): Illuminate\Foundation\Bootstrap\LoadConfiguration->bootstrap(Object(Illuminate\Foundation\Application))
#3 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(268): Illuminate\Foundation\Application->bootstrapWith(Array)
#4 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(114): Illuminate\Foundation\Console\Kernel->bootstrap()
 in /opt/flox/backend/config/database.php on line 16
Script php artisan optimize handling the post-install-cmd event returned with error code 255

Feature: Multi-User Support

Hi,

is support for multiple users on one installation something you would consider? I would like to host a Flox instance for my friends and family, each which his own watchlist and rankings.

Docker compose

Hi,
very nice project.
Are there any plans to be able to use this with docker (-compose)?

Set default queue driver to database

Most people probably don't have a running Redis at hand and installing one just for the Laravel queue of Flox seems a bit oversized.
I believe we can set the default queue driver to database in backend/.env?
The DB table for the queue is already created during the installation, so there should not be any additional steps necessary. At least it seems to work fine here.

Calling flox:db twice causes error

As the title says, when I call php artisan flox:db twice, it will ask for a admin username and password even though an account already exists. It throws an error as shown below. I haven't used this software for long, but when Flox gets updated I need to call this command again to update the database, correct?

I ask this because I'm creating a docker image and I call php artisan flox:db admin password so the database can be initialized (and updated, if needed), and to create a default login.

> php artisan flox:db admin password
TRYING TO MIGRATE DATABASE
Nothing to migrate.
MIGRATION COMPLETED

In Connection.php line 669:
                                                                               
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi  
  n' for key 'users_username_unique' (SQL: insert into `users` (`username`, `  
  password`, `updated_at`, `created_at`) values (admin, $2y$10$lSOtTRAlNmEvZ2  
  cbFYXmwOemYbTNi2anhbBzXIabZVkGFmC3C6LuC, 2020-01-23 04:31:11, 2020-01-23 04  
  :31:11))                                                                     
                                                                               

In PDOStatement.php line 123:
                                                                               
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi  
  n' for key 'users_username_unique'                                           
                                                                               

In PDOStatement.php line 121:
                                                                               
  SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi  
  n' for key 'users_username_unique

Delete item?

I can, even after solid searching most pixels of the interface, not find a delete button to remove added media from Flox. Anyone have a screenshot of where to find it, if it's there? :)

Import fails with error "Filename cannot be empty"

Hello, it's me again! ;)

Just to be sure it will work for future backups I tried to export->import a backup on a quickly created new instance with roundabout 30 entries. It fails with the following error:

[2020-02-04 21:58:35] local.ERROR: file_get_contents(): Filename cannot be empty {"userId":1,"exception":"[object] (ErrorException(code: 0): file_get_contents(): Filename cannot be empty at /var/www/flox/backend/app/Http/Controllers/ExportImportController.php:74) [stacktrace] #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_get_conten...', '/var/www/flox/b...', 74, Array) #1 /var/www/flox/backend/app/Http/Controllers/ExportImportController.php(74): file_get_contents('') #2 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): App\\Http\\Controllers\\ExportImportController->import() #3 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ExportImportController), 'import') #4 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController() #5 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\\Routing\\Route->run() #6 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #7 /var/www/flox/backend/app/Http/Middleware/HttpBasicAuth.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #8 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\HttpBasicAuth->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #9 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #10 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #11 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #12 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 60, '1') #13 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #14 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #15 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #16 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #17 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request)) #18 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route)) #19 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request)) #20 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request)) #21 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request)) #22 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #23 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #24 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #25 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #26 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request)) #27 /var/www/flox/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request)) #28 {main} "}

I tried to find an misconfiguration (recursive write, upload_max_filesize etc.) on my side but as far as I can see there isn't one. Do you have an idea?

Redundancy with discrepancy

It seems if I search for series with different titles (title and original_title) it yields different results kind of, I added "Classroom of the elite" to my list but after some time (today) I didn't remember if I already added it so I searched for the jap title "Youkoso jitsuryoku...". It both yielded from the laravel logs apparently the same result with the same id but on the site it didn't show as already added, so when I clicked I got that endless spinning wheel (box filling up and rotating), as adding it again caused a duplicate entry violation in SQL but no error callback ends the spinning.

But the real issue here is that it didn't realise that both queries are the same series. The logs are below:

Next Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '72517' for key 'items_tmdb_id_unique' (SQL: insert into `items` (`tmdb_id`, `title`, `media_type`, `original_title`, `poster`, `rating`, `released`, `genre`, `created_at`) values (72517, Classroom of the Elite, tv, ようこそ実力至上主義の教室へ, /ok9vS2v7r4in14R9AUOtBXTwdYy.jpg, 1, 1499888046, Animation, Comedy, Drama, 1506540849)) in /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:764
Stack trace:
#0 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(720): Illuminate\Database\Connection->runQueryCallback('insert into `it...', Array, Object(Closure))
#1 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(481): Illuminate\Database\Connection->run('insert into `it...', Array, Object(Closure))
#2 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(435): Illuminate\Database\Connection->statement('insert into `it...', Array)
#3 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php(32): Illuminate\Database\Connection->insert('insert into `it...', Array)
#4 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2142): Illuminate\Database\Query\Processors\Processor->processInsertGetId(Object(Illuminate\Database\Query\Builder), 'insert into `it...', Array, 'id')
#5 [internal function]: Illuminate\Database\Query\Builder->insertGetId(Array, 'id')
#6 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1441): call_user_func_array(Array, Array)
#7 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10783): Illuminate\Database\Eloquent\Builder->__call('insertGetId', Array)
#8 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10772): Illuminate\Database\Eloquent\Model->insertAndSetId(Object(Illuminate\Database\Eloquent\Builder), Array)
#9 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10726): Illuminate\Database\Eloquent\Model->performInsert(Object(Illuminate\Database\Eloquent\Builder))
#10 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10384): Illuminate\Database\Eloquent\Model->save()
#11 /var/www/flox.example.com/backend/app/Http/Controllers/ItemController.php(161): Illuminate\Database\Eloquent\Model::create(Array)
#12 /var/www/flox.example.com/backend/app/Http/Controllers/ItemController.php(114): App\Http\Controllers\ItemController->createItem(Array, Object(App\Services\TMDB))
#13 [internal function]: App\Http\Controllers\ItemController->add(Object(App\Services\TMDB))
#14 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9403): call_user_func_array(Array, Array)
#15 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8459): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\ItemController), 'add')
#16 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8440): Illuminate\Routing\Route->runController()
#17 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8149): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#18 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9967): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#21 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#23 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(3151): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#26 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13459): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#29 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(11899): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#32 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13205): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#35 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13142): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#38 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9844): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#41 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8150): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#42 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8141): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#43 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8132): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#44 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2472): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#45 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#46 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(3213): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#47 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#48 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#49 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9844): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#50 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2416): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#51 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2400): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#52 /var/www/flox.example.com/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#53 {main}

And here is a screenshot of the not added and the added one

screenshot

screen shot 2017-09-27 at 21 48 47

is it possible to input/read movies & tv from a directory / file structure ?

for example, if i got: ~/Movies/Example.Movie.2016.bla.bla.bla.mkv in a folder, along with a ton of others, is there a way for Flox to watch this folder and build my movie db from the names of the folders and files inside of it ?

This feature would make this super useful to me. Anyway, good work keep it up!

PDOException - Error 1698 and 1045

Hello Devfake!

I have tried multiple systems and I cannot seem to get this to work. I know this is bad practice, but I added the root user of MySQL to try and get this project up, but I get the below error. Without the root account, I have been seeing Error Code 1045 even though I am able to log into the MySQL server with the same credentials.

I tried looking through the other issues, both opened and closed but have not found a similar issue. I have tried both Ubuntu 19.10 and Debian 10, both exhibiting the same issues, so it must be something that I am doing or not doing.

Do you have any thoughts?

Thanks!

[previous exception] [object] (PDOException(code: 1698): SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' at /var/www/html/flox/backend/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27)
[stacktrace]

TV shows and movies get mixed up

If a TV show and a movie have the same id on TMDB and you add one of them to as watched, you are unable to add the other item with the same id.

Tested with the following items:

Sabrina the Teenage Witch [TV Show]: https://www.themoviedb.org/tv/605-sabrina-the-teenage-witch
The Matrix Revolutions [Movie]: https://www.themoviedb.org/movie/605-the-matrix-revolutions

The items show up right in the search, but if you interact with them, they are transforming to the element already in the database.

Flox fails if openssl-1.1.1.e-1 is installed

If openssl is installed with the version 1.1.1.e-1, Symfony fails with the following error:

SSL routines:ssl3_read_n:unexpected eof while reading at /usr/share/nginx/flox/backend/app/Services/Storage.php:39 (openssl/openssl#10882)

This breaks some of the functionality of flox, e.g. the image retrieval...

Updates don't work properly

It seems my installation works half. I can add new series even though I have to reload to make sure they show up and every second time I try to change my ratings I get an error "Error in saveNewRating()".

AND: I cannot load the episode information on the series. It loads and then it stops.

here is my installation: https://flox.satanik.at

Suggestions and view progress buttons disappear on small screens

Hi there, awesome project!

I just played a bit around with it and found that when using smaller screens, the buttons for the suggestions and for the view progress will simply disappear so that you can't track your progress from a mobile phone for example. Maybe the buttons also just move to somewhere else, but I simply can't find them. Would appreciate an answer and if applicable a fix for this 😊. Thank you!

Large screens

grafik

Small screens

grafik

Database on separate host

Not familiar with artisan/laraval, but I assume it should be easy to change the init script to add a question for "DB_HOST" for those of us with MYSQL running on a separate host? I added the "DB_HOST=192.168.1.1" line to my .env file manually but might be something you could add to the install process.

Setting up Flox with SQLite

I try to deploy flox on my Raspberry Pi with sqlite.

However, the database doesn't get filled, the db file stays empty even though the "php artisan flox:db" command outputs "MIGRATION COMPLETED".

I followed the instructions on https://laravel.com/docs/6.x/database and those on this site.
The webserver is Apache2 on a debian based linux (OSMC).

This is my .env:

TMDB_API_KEY=apikey
TRANSLATION=DE

CLIENT_URI=/flox/public
LOADING_ITEMS=30

# Default 10 minutes (600 seconds)
PHP_TIME_LIMIT=600

# Set your correct timezone
TIMEZONE=UTC

# Date pattern for reminder mails
DATE_FORMAT_PATTERN=d.m.Y

DAILY_REMINDER_TIME=10:00
WEEKLY_REMINDER_TIME=20:00

DB_CONNECTION=sqlite
DB_HOST=
DB_PORT=
DB_DATABASE=/var/www/html/flox/backend/database/database.sqlite
DB_USERNAME=
DB_PASSWORD=

APP_URL=http://osmc
APP_ENV=local
APP_KEY=appkey
APP_DEBUG=true

APP_LOG=daily
QUEUE_DRIVER=database

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Thank you for any input in advance!

Reverse Proxy Support

I had trouble getting Flox to run using a reverse proxy, especially over https. I'm not a php developer but I did some researching and found a solution that worked for me. The documentation says it introduces a security risk so I feel there should be a better solution. Has anyone else run into this issue?

Here's an article on the Laravel website that explains the issue. On that article they mention an external php package (fideloper/proxy) that allows for easy configuration of trusted proxies. I haven't tried setting that up because I'm not familiar enough with php.

The solution I had success with is mentioned on this page. I added the following code to public/index.php and it loaded successfully. I tried replacing 'REMOTE_ADDR' with '127.0.0.1' but that didn't work.

Request::setTrustedProxies(
    ['REMOTE_ADDR'],
    Request::HEADER_X_FORWARDED_PROTO
);

Does not rescrape

It does not rescrape show details on a scheduled basis or an option to manually rescrape so once added, the seaons/episodes will be outdated.

Can you please add a manually rescrape or daily auto rescrape feature?

Thanks

Installation

Hello,

I'm relatively new to this whole Linux world... I managed to install everything correctly (I assume) on my DietPi (Obviously running on my RPi3) created database on MySQL (MariaDB) and I managed to make the software connect to it, created the API and everything but I really can't figure out how to access the web page?

I have the CLIENT_URI set as /flox so I'm assuming I'll have to do localhost/flox to access the web page but that seems like it doesn't work... on the github page an "8888" port is mentioned, unfortunately I have another service running on that port and I can't seem to figure out how to change that port from the default one (if it's actually needed)

Am I missing something?

Watched episodes are not saved

I can add TV shows, but the selection of watched episodes doesn't get saved in my installation.
I am using Apache2 and SQLite as db.

After reloading the page the TV show reverts back to this:
Flox Bug

Thank you in advance for looking into it!
Let me know if I can upload a log.

Issues with migration

I noticed with the latest version that apparently we need to reset the migration, rather than the table being expanded with the new fields.
Could you do this for the next release(s) so I (and others) don't have to reset my entire database?
I also noticed that the application doesn't work correctly since there is no created_at field in the episodes table, which you use with the query to get recent items.

I manually fixed these in my database but a more elegant solution should be made!
Great work on this so far!

Feature Requests

Hi, first up i just wanted to let you know that this project looks really promising.
I really like the idea is there any chance that i version 2 you would add some function that you could add custom columns?

I'm searching for a nice way to keep an overview of my collection but at the same time keep it self hosted so that i do not have to rely on other services and could still add info manually like in my Spreadsheet right now.

So basically would you consider it possible to:
Add custom columns to Shows/Movies
Download the Covers when exporting (if TMDB ever shuts down its API )

With best regards.

Shared Hosting Support?

Most shared hosting services don't support Composer so would you be willing to release a package that could be used on a shared hosting service?

Support for view timestamps

Thanks a ton for the awesome work. 👍

I am unsure of the whole architecture of the app. But was just wondering if the app could have support for timestamps (time and date of the view/rating). Not sure if it's a general requirement but I like to see when and how many times I have viewed a particular episode or a movie just for stat nerds :). I currently use trakt exclusively for this and was looking to replace that with a self hosted service.

Plex

A simple Plex API has now been added.

This enables the creation of new items in Flox when playing a video in Plex. Mark a episode as seen if a episode is finished or rate a movie/tv show.

A simple API for this has been added to Flox. The implementation for Plex is available here: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php. It can be used for other programs as well.

Is that enough? Or do we also need a sync from Flox to Plex? Is there an API for that?

Could someone use real media to test the Plex implementation in Flox?

TV Show added twice by Plex API

I just connected my Plex via API and when I started a client, it nicely added the show I was just watching to Flox, so nice one there!
However, for some reason it added the same show twice. Now I have two pictures of Young Sheldon on my screen, waiting to be rated.
One would be enough... how do I get rid of the other one (without tinkering in the DB?) and why did I end up with two of them in the first place?
Ideally there should be a duplication check - maybe it happened because it came through the Plex API and we're missing a check there?

Site Loads but no Content - Linux Install

Hello,

Does anyone have this project working on a Linux system? I have tried Debian (v9 & 10) and Ubuntu (18.04 & 19.10), both as containers and VMs and have been unable to load any movies on the site. I can see the site but they 'eye' icon just blinks. I am using Apache2, MySQL, and PHP.

What flavor of Linux are you using to get this project running?

Thanks,
Mitch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.