Giter Club home page Giter Club logo

gaps's Introduction

Project logo

Gaps

Status GitHub Issues GitHub Pull Requests License


Unfortunately, I no longer have the time to maintain Gaps and it is no longer under active development.

Gaps searches through your Plex Server for all movies, then queries for known movies in the same collection. If those movies don't exist in your library, Gaps will recommend getting those movies, legally of course.

📝 Table of Contents

🧐 About

Gaps is a FOSS application. An example of Gaps running would be having a copy of 'Alien (1979)' and Gaps recommending 'Aliens (1986)' and 'Alien³ (1992)' to be added to your collection.

🏁 Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Windows Users check out the Wiki to get setup

Prerequisites

What things you need to install the software and how to install them.

Option 1

Gaps can run in Docker. If you choose to run this way, you'll need a Docker environment installed. Docker has a good write up on installing Docker CE. Check it out here. Once you get docker up and running

Option 2

Gaps can run as an exe on Windows. GapsAsJar can be found on the releases page. Gaps-{version}.zip.

Installing

With Docker installed, you'll need to now pull down the latest Gaps image. The Gaps image is hosted here. To pull the image, run the following command in a terminal

If you are running an x86 machine, use the following commands. Check out the wikis for how to build ARM v8, ARM v7, or RISC.

docker pull housewrecker/gaps:latest

If you are running an ARM machine, use this command.

docker pull housewrecker/gaps:arm-latest

With the image pulled, now you can run the container.

Note: 8484 is used internally by gaps. Externally, any available host port can be used. This can be configured by changing -p {valid port number}:8484

docker run -d -p 8484:8484 --name mygaps --expose 32400 -v /{localFolder}/gaps:/usr/data housewrecker/gaps:latest

Open your browser and navigate to, http://{IP_ADDRESS}:8484

If everything worked, you will be greeted by the gaps home page.

_Note: If you would like to set a base URL, use the variable BASE_URL and set the value you would like when running in Docker. Gaps on UNRAID has a BASE_URL variable in the template. If using a base URL, navigate to http://{IP_ADDRESS}:8484/BASE_URL

Home Page

🎈 Usage

Home Page

Home Page

Click the Settings tab to set up Gaps.

Settings

TMDB

First, you need to enter your The Movie Database (TMDB) API Key. As noted on the page, to use Gaps, you'll need a MovieDB API key. Navigate over to The Movie DB, create an account, and make an API Key. Copy that key and paste it below.

With your TMDB key added, now you need to configure the information to connect to Plex.

Click the Test button to confirm your key works.

Click the Save button to add your key.

Click the Plex tab to set up Gaps.

Plex

Plex Connection

Now you'll need to configure how to connect Gaps to Plex. This includes three main things: the host/IP address of Plex, the port Plex uses, and your personal Plex Token.

The host/IP address and port are the same ones you use to connect to Plex via the web. It could look something like this

https://localhost:32400/web/index.html

Or

https://127.0.0.1:32400/web/index.html

If Plex and Gaps are both running in the same Docker, you may need to use the IP address on the local network. Example

https://192.168.1.10:32400/web/index.html

So, in the first case, the host is localhost and the port 32400. In the second case, the host is 127.0.0.1 with the same port.

Lastly, you'll need to get your personal Plex Token. If you do not know already it's easy to find. Plex has a great writeup here about how to find your token.

Click the Test button to confirm your Plex server configuration works.

Click the Save button to add your Plex server.

Folders

Note: Right now only searching via Plex is working. In time, I'll add back in searching by folder.

Network

Plex Connection

Increase the timeout if Plex connection is on a remote network and timeouts are occurring.

Libraries

Click the Libraries tab to set up Gaps.

If you have more than one Movie Library or Plex Server, the dropdown lets you pick the Server and Library to search from.

Plex Movie Libraries

Click the Search button to find your Plex Movies.

Plex Movie Libraries

Gaps will display the movies found in the Plex Server Library.

Note: Rerun this step for each server you want Gaps to find the missing movies in.

Click the Recommended tab to set up Gaps.

Missing

Once you've started searching, the movies will start populating on the final page.

Gap Not Searched Missing Movies Yet

Click the Search button to find your missing movies.

Gaps Recommended Movies

For large libraries, this can take a while to run. The results are stored and only need to be rerun when Plex updates. Missing movies are added as found. Do not navigate away. Gaps will still run, but you'll have to check logs to know when it is complete. It is currently easier to just leave the page open. Fixes for this are coming soon.

Recommended and RSS

Gaps RSS Feed

Once you've completed at least one search of your plex libraries, you can then view and use the output as RSS.

⛏️ Built Using

  • jQuery - JS Framework
  • Bootstrap - UI Framework
  • Spring Boot - Server Framework
  • NodeJs - Testing and Build Environment
  • Cypress - Fast, easy and reliable testing for anything that runs in a browser.
  • ESLint - Find and fix problems in your JavaScript code
  • Faker.js - Generate massive amounts of fake data in the browser and node.js
  • UglifyJS/ES - UglifyJS is a JavaScript parser, minifier, compressor and beautifier toolkit.

Supporters

This project would not be possible without the support by these amazing folks. Become a sponsor or backer to help us out!

Sponsors

Sponsors

Backers

Backers

✍️ Authors

🎉 Acknowledgements

  • @Knoxie Developer, testing, and support
  • Inspiration
    • I'm an avid movie watcher and this is a missing feature from Plex

gaps's People

Contributors

adamus1red avatar dependabot[bot] avatar hjone72 avatar jasonhhouse avatar jhouse-indeed avatar knoxie avatar lisa avatar saltydk 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

gaps's Issues

Cannot find '.class' file for class

I'm getting the following even though everything seems to be set up properly ?

2019-08-01 19:23:56.543 INFO 3652 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Started GapsApplication in 0.718 seconds (JVM running for 0.952)

2019-08-01 19:23:56.544 INFO 3652 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Searching for Plex Movies...

2019-08-01 19:23:56.560 DEBUG 3652 --- [ main] ocalVariableTableParameterNameDiscoverer : Cannot find '.class' file for class [class com.jasonhhouse.Gaps.Properties$$EnhancerBySpringCGLIB$$a8b9ab8f] - unable to determine constructor/method parameter names

2019-08-01 19:23:57.189 INFO 3652 --- [ main] com.jasonhhouse.Gaps.GapsApplication : 0 movies found in plex

2019-08-01 19:23:57.189 INFO 3652 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Searching for Movie Collections...
0 Recommended Movies

2019-08-01 19:23:57.916 INFO 3652 --- [ main] com.jasonhhouse.Gaps.GapsApplication :
############################################
Click the link below to authorize TMDB list access:
https://www.themoviedb.org/authenticate/c6ac63964f1eb762832fd4d8afffb3cedda909f3
Press enter to continue
############################################

Add ombi.io support

Hey, just saw post about GAPS, well rather your comment. I am not sure if you are familiar with ombi https://ombi.io it would be pretty cool after finding movies within the collections that are missing if there was a way to either pass all of them as requests to ombi or select specific ones to pass to ombi so that radarr can get the request and grab them. Legally of course. ;)

Not able to run (by java -jar and also Docker)

Hi,
unfortunately I'm not able to execute gaps.

I have the same issue as here described:
#47

With Docker:
Fatal: Need to specify DB_API_KEY as environment variable Refer to README.md

With java -jar command:

(...) 
Caused by: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found
(...)

I have tried to fix it with following instruction:

I fixed the issue by moving the Gaps jar file to the resources directory with application.yaml then fixing spacing issues within the yaml file.

But the issue is still not fixed for me.

My application.yml file (inside where this file is located is also the Gaps-0.0.3.jar file):


  gaps:
  #Put your Plex Movie All URLs here
  #Gaps supports a single movie URL or multiple.
  #Single
  movieUrls:
  - http://192.168.0.101:32400/library/sections/7/all/?X-Plex-Token=<myPlexToken>
  - http://192.168.0.101:32400/library/sections/5/all/?X-Plex-Token=<myPlexToken>

  #Go to https://www.themoviedb.org and make an API Key, place that key here
  #movieDbApiKey: {key}
  movieDbApiKey: <myMovieDBAPIKey>

  # Optional
  # Go to https://www.themoviedb.org and make a custom list for GAPS https://www.themoviedb.org/list/<id number>
  # enter the <id number> below if you want GAPS to populate the list
  movieDbListId:

  #Should Gaps write out to a file as well as console
  writeToFile: true


  #######################################
  #
  #Can read from a folder, Plex, or both
  #At least, one of the two property groups needs to be filled in though
  #
  #######################################

  #List of folders where movies can be pulled from
  folder:
    #Required
    searchFromFolder: true

    #Required if searching from folders
    #List of folders to search in
    folders:
      - /media/NAS/Filme
      - /media/NAS3/Filme

    #Required if searching from folders
    #If the subfolder should be searched in
    recursive: true

    #Required if searching from folders
    #Add any movie formats as needed
    movieFormats:
      - avi
      - mkv
      - mp4
      - mov
      - webm
      - vob
      - flv
      - mts
      - m2ts
      - m4p
      - m4v
      - 3gp
      - 3g2

    #Movie Regex
    #Expected format is Movie Name (Year)
    #Example: The Fast and the Furious (2001)
    yearRegex: \(([1-2][0-9][0-9][0-9])\)

  #Plex connection timeouts when querying for all movies in the Plex section. Time is in seconds. Default is 180 seconds
  plex:
    searchFromPlex: false
    connectTimeout: 180
    writeTimeout: 180
    readTimeout: 180

    #Mulitple
    #movieUrls:
    #  - http://127.0.0.1:32400/library/sections/1/all/?X-Plex-Token={My-Plex-Token}
    #  - http://127.0.0.1:32400/library/sections/2/all/?X-Plex-Token={My-Plex-Token}
    #  - http://127.0.0.1:32400/library/sections/3/all/?X-Plex-Token={My-Plex-Token}
    movieUrls:
       - http://192.168.0.101:32400/library/sections/7/all/?X-Plex-Token=<myPlexToken>
       - http://192.168.0.101:32400/library/sections/5/all/?X-Plex-Token=<myPlexToken>

  #Adjust logging as you see fit
  logging:
  level:
    root: INFO

So the spacing issues should also be fixed... There were some error messages regarding the spacing / indents, so I thought I'm on the right way to fix it... But after there wasn't any spacing / indents issues anymore... I have received again the old error message.

errors trying to run gaps 0.0.3.jar

Hi,
I've been trying to figure out the best way to get this thing to run. So I finally just downloaded the jar and put the application.yaml in a folder together. I edited the application.yaml with my plex key and moviedb key and I'm getting these errors when I try to run the jar through powershell - https://imgur.com/a/L15wp8l

Also I'm not 100% sure my plex token thing is working, I've gotten the key from my view xml file and inserted it and tried removing the brackets in the url and leaving the brackets in the url and both gave the same errors. Then I checked the ID for my movies and it is indeed ID 1 but the url for it(http://127.0.0.1:32400/library/sections/1/all/?X-Plex-Token=) doesn't work(nothing loads when I go to the url) but I go to http://127.0.0.1:32400/library/sections/2/all/?X-Plex-Token= or http://127.0.0.1:32400/library/sections/3/all/?X-Plex-Token= which are tv shows and music and they both load just fine in my browser.

I'm guessing that's the problem i'm getting is that the plex movie id url is incorrect maybe?

Could not resolve placeholder 'writeToFile' in value "${writeToFile}"

I'm trying to run through Docker, but getting this error: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"

$ docker run -it --rm -e DBAPIKEY=<APIKEY> -e PLEXADDRESS=https://<IP:PORT>/library/sections/1/all?X-Plex-Token=<TOKEN> gaps
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------< com.jasonhhouse:Gaps >------------------------
[INFO] Building Gaps 0.0.2
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> spring-boot-maven-plugin:2.1.2.RELEASE:run (default-cli) > test-compile @ Gaps >>>
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ Gaps ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ Gaps ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ Gaps ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /usr/src/app/src/test/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ Gaps ---
[INFO] No sources to compile
[INFO]
[INFO] <<< spring-boot-maven-plugin:2.1.2.RELEASE:run (default-cli) < test-compile @ Gaps <<<
[INFO]
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.2.RELEASE:run (default-cli) @ Gaps ---

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.2.RELEASE)

2019-02-03 15:09:12.682  INFO 16 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : Starting GapsApplication on e4dbdc4d655b with PID 16 (/usr/src/app/target/classes started by root in /usr/src/app)
2019-02-03 15:09:12.685  INFO 16 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : No active profile set, falling back to default profiles: default
2019-02-03 15:09:13.165  WARN 16 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gapsApplication': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
2019-02-03 15:09:13.173  INFO 16 --- [           main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-02-03 15:09:13.181 ERROR 16 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gapsApplication': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1308) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at com.jasonhhouse.Gaps.GapsApplication.main(GapsApplication.java:74) ~[classes/:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:558) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:380) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1378) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:575) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1244) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        ... 24 common frames omitted
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
        at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172) ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124) ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:237) ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:211) ~[spring-core-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:175) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:851) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1185) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:374) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
        ... 36 common frames omitted

[WARNING]
java.lang.reflect.InvocationTargetException
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:558)
    at java.lang.Thread.run (Thread.java:834)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'gapsApplication': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:769)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:218)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1154)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:846)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:863)
    at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:546)
    at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775)
    at org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:316)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1248)
    at com.jasonhhouse.Gaps.GapsApplication.main (GapsApplication.java:74)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:558)
    at java.lang.Thread.run (Thread.java:834)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties (AutowiredAnnotationBeanPostProcessor.java:380)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1378)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:575)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDescriptor.java:277)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1244)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1164)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:857)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:760)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:218)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1154)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:846)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:863)
    at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:546)
    at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775)
    at org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:316)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1248)
    at com.jasonhhouse.Gaps.GapsApplication.main (GapsApplication.java:74)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:558)
    at java.lang.Thread.run (Thread.java:834)
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}"
    at org.springframework.util.PropertyPlaceholderHelper.parseStringValue (PropertyPlaceholderHelper.java:172)
    at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders (PropertyPlaceholderHelper.java:124)
    at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders (AbstractPropertyResolver.java:237)
    at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders (AbstractPropertyResolver.java:211)
    at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0 (PropertySourcesPlaceholderConfigurer.java:175)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue (AbstractBeanFactory.java:851)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1185)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1164)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:593)
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject (InjectionMetadata.java:90)
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties (AutowiredAnnotationBeanPostProcessor.java:374)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1378)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:575)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDescriptor.java:277)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1244)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1164)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:857)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:760)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:218)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1154)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0 (AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:846)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:863)
    at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:546)
    at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775)
    at org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:316)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run (SpringApplication.java:1248)
    at com.jasonhhouse.Gaps.GapsApplication.main (GapsApplication.java:74)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run (AbstractRunMojo.java:558)
    at java.lang.Thread.run (Thread.java:834)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.317 s
[INFO] Finished at: 2019-02-03T15:09:13Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.1.2.RELEASE:run (default-cli) on project Gaps: An exception occurred while running. null: InvocationTargetException: Error creating bean with name 'gapsApplication': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'properties': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'writeToFile' in value "${writeToFile}" -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Docker stuck on Press Enter to Continue

So i'm trying to run the docker instance managed to get the docker container running but it comes up with:

############################################
Click the link below to authorize TMDB list access:
https://www.themoviedb.org/authenticate/[removed]
Press enter to continue
############################################

I authorise the request but there is no way for me to press "enter". I have tried to restart the container but it generates a different url. Any suggestions on how to fix this?

Where is the output file location to when running the docker container for missing movies?

Add support for large Plex Collections

Thanks for your GAPS application. I've tried to run it on my own plex movies library and I hit a timeout error. My library is pretty large--24,000 movies--so I'm wondering if that's part of the issue. As far as I know, my plex token key is correct, my plex all movies url is formatted correctly, and my themoviedb api key is correct, but I could be missing something that I'm not aware of. My plex url does seem to work, as I'm able to use run it in a browser with other section numbers and it shows a full xml list of that section's info. When I try to run it in a browser with my movie library section, it tries to load, but takes a very long time (I haven't waited long enough to see if it eventually does load). I'm running it on macOS 10.13.5.

I've included the output below. If you have any suggestions, let me know. Don't feel you need to respond or troubleshoot--I appreciate that it's a small application you built and you might not necessarily be interested in playing tech support.

Thanks again.

2019-02-02 16:06:05.718 ERROR 8011 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Error connecting to Plex to get Movie list

java.net.SocketTimeoutException: timeout at okio.Okio$4.newTimeoutException(Okio.java:232) ~[okio-1.15.0.jar!/:na] at okio.AsyncTimeout.exit(AsyncTimeout.java:285) ~[okio-1.15.0.jar!/:na] at okio.AsyncTimeout$2.read(AsyncTimeout.java:241) ~[okio-1.15.0.jar!/:na] at okio.RealBufferedSource.indexOf(RealBufferedSource.java:354) ~[okio-1.15.0.jar!/:na] at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:226) ~[okio-1.15.0.jar!/:na] at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:215) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar!/:na] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar!/:na] at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254) ~[okhttp-3.12.1.jar!/:na] at okhttp3.RealCall.execute(RealCall.java:92) ~[okhttp-3.12.1.jar!/:na] at com.jasonhhouse.Gaps.GapsApplication.findAllPlexMovies(GapsApplication.java:85) ~[classes!/:0.0.1-SNAPSHOT] at com.jasonhhouse.Gaps.GapsApplication.run(GapsApplication.java:73) ~[classes!/:0.0.1-SNAPSHOT] at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE] at com.jasonhhouse.Gaps.GapsApplication.main(GapsApplication.java:68) ~[classes!/:0.0.1-SNAPSHOT] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) ~[Gaps-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) ~[Gaps-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) ~[Gaps-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) ~[Gaps-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT] Caused by: java.net.SocketTimeoutException: Read timed out at java.base/java.net.SocketInputStream.socketRead0(Native Method) ~[na:na] at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:115) ~[na:na] at java.base/java.net.SocketInputStream.read(SocketInputStream.java:168) ~[na:na] at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140) ~[na:na] at okio.Okio$2.read(Okio.java:140) ~[okio-1.15.0.jar!/:na] at okio.AsyncTimeout$2.read(AsyncTimeout.java:237) ~[okio-1.15.0.jar!/:na] ... 35 common frames omitted

0 Recommended Movies

Unable to Run on Windows

Setup instructions are shockingly lacking, jar exits with no concrete errors. App should be restructured to allow for input verification.

One of the issues I found is that the URL needs a space after entry field, this is easily fixed through input validation. Errors on run should be much more apparent and setup instructions need to be rewritten to be much more clear. As a software developer with 20 years of experience if I cant figure it out then non-technical users stand zero chance.

add arguments to set URL and key

Well, since you've released it as a jar now (thank you), maybe add a --server argument or something, since it's tough to edit the config file to set the server.

Use HTTP instead of HTTPS to connect

Hi,

I am trying to test this very promising soft, thanks for your work!

Is there a way to use HTTP protocol instead of HTTPS to use Gaps? Indeed, I'd like to use a reverse proxy (Caddy) in front of it and this creates problems. It would be nice to switch HTTPS off.

How to do it?

Thanks!

Fix percent complete output

Percent complete output doesn't always print out, too may nested try's are causing the issue. Need to refactor a bit to correctly print out and make sure the counter is updating correctly.

Ignore characters in (parens) when querying the title

Hello,

I am trying to run gaps 0.0.3 and it is failing to find many of my movies because the meta data in the file has data in it like 'Title (1080P)'. So I get a query like:

2019-02-27 15:00:48.133 ERROR 19431 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Results not found for <title> (1080P) (2011)

I know this is bad data in my files, but I have a large number of files with this in it. Would it be possible to just ignore anything between () when searching for the title?

How to run gaps and create TMDB list?

Hi, it seems you have transitioned from a command line approach to a web UI approach. That's fine of course, but how can I run as a docker container to create a TMDB list? I see that issue #25 seemingly added the ability to populate a TMDB list, however, I am unable to get that to work using the following docker run command:

docker run \
        --rm \
        --name gaps \
        -t \
        -e DBAPIKEY=[redacted] \
        -e PLEXADDRESS=https://[redacted]/library/sections/1/all/?X-Plex-Token=[redacted] \
        -e TMDBLISTID=[redacted] \
        -e WRITETOFILE=true \
        -p 8443:8443 \
        --expose 32400 \
        housewrecker/gaps:latest

Is there a way to accomplish this? The web app works OK for me, but copying the list to the clipboard seems to be my only current output option, which isn't very useful IMHO.

Thanks

bug accessing remote plex over https

Setup:
plex is on a remote machine and accessible via a proxied SSL domain only (https://somedomain.com)
Gaps is setup via a local docker container.

initial conversation (everything from reddit is copied into this ticket):
https://www.reddit.com/r/PleX/comments/dl0drh/gaps_v004_web_interface_release_app_that_searches/f4mc2s0/

when setting up gaps and trying to connect to plex we get an error

Something went wrong. Please make sure your connection to Plex is correct. You can navigate back to make changes and then retry connecting. Check the browser and Docker logs for more information.

when checking docker log I see the following error :

2019-10-21 16:49:36.445 ERROR 1 --- [nio-8443-exec-3] com.jasonhhouse.Gaps.GapsSearchBean : Error parsing XML from Plex: http://somedomain:443/library/sections?X-Plex-Token=XXXXXXXX

org.xml.sax.SAXParseException: The element type "hr" must be terminated by the matching end-tag "".

when accessing the URL via a browser it shows up fine, but the issue seems to be that plex is only on https and Gaps is accessing it via HTTP.

possible change: allow specifying https:// as part of the plex IP/URL field instead of hardcoding it.

Hostname not verified

I'm getting an error connecting to my Plex server:

2019-02-04 14:34:32.955 ERROR 16 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : Error connecting to Plex to get Movie list

javax.net.ssl.SSLPeerUnverifiedException: Hostname <IP ADDRESS> not verified:
    certificate: sha256/OLw8G/2bRkH+g5KpGgWsw9Jy2SVx38Y5GUz8jO/9a9w=
    DN: CN=*.<DOMAIN>.plex.direct, O="Plex, Inc.", L=Los Gatos, ST=California, C=US
    subjectAltNames: [*.<DOMAIN>.plex.direct]
        at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:330) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:283) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:168) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:257) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:135) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:114) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147) ~[okhttp-3.12.1.jar:na]
        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121) ~[okhttp-3.12.1.jar:na]
        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:254) ~[okhttp-3.12.1.jar:na]
        at okhttp3.RealCall.execute(RealCall.java:92) ~[okhttp-3.12.1.jar:na]
        at com.jasonhhouse.Gaps.GapsApplication.findAllPlexMovies(GapsApplication.java:101) ~[classes/:na]
        at com.jasonhhouse.Gaps.GapsApplication.run(GapsApplication.java:79) ~[classes/:na]
        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) ~[spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
        at com.jasonhhouse.Gaps.GapsApplication.main(GapsApplication.java:74) ~[classes/:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
        at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
        at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:558) ~[na:na]
        at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

Search stuck 99% repeating console output.

{"name":"Godzilla","year":2014,"collection":"Godzilla Collection","media_id":124905},{"name":"Kong Skull Island","year":2017,"collection":"Godzilla Collection","media_id":293167},{"name":"The Hunchback of Notre Dame II","year":2002,"collection":"The Hunchback of Notre Dame Collection","media_id":12448}]}
image

LOGS

2019-10-11 08:10:44.673 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:44.923 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:45.173 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:45.423 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:45.673 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:45.924 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:46.174 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:46.424 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:46.674 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:46.925 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:47.175 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:47.425 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:47.676 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:47.926 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:48.176 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:48.426 INFO 1 --- [MessageBroker-4] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:48.676 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:48.927 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:49.177 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:49.427 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:49.677 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:49.928 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:50.178 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:50.428 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:50.678 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:50.928 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:51.179 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:51.429 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:51.679 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:51.929 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:52.179 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:52.430 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:52.680 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:52.930 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:53.180 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:53.430 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:53.681 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:53.931 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:54.181 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:54.431 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:54.681 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:54.932 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:55.182 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:55.432 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:55.682 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:55.932 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:56.182 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:56.433 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:56.683 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:56.933 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:57.183 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:57.434 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:57.684 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:57.934 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:58.184 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:58.435 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:58.685 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:58.935 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:59.185 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:59.436 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:59.686 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:10:59.936 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:00.186 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:00.437 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:00.687 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:00.937 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:01.187 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:01.437 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:01.688 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:01.938 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:02.188 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:02.438 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:02.689 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:02.939 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:03.189 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:03.439 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:03.690 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:03.940 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:04.190 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:04.440 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:04.691 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:04.941 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:05.191 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:05.441 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:05.691 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:05.942 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:06.192 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:06.442 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:06.692 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:06.942 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:07.193 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:07.443 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:07.693 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:07.943 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:08.194 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:08.444 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:08.694 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:08.944 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:09.194 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:09.445 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:09.695 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:09.945 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:10.195 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:10.446 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:10.696 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:10.946 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:11.196 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:11.447 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:11.697 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:11.947 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:12.197 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:12.447 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:12.698 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:12.948 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:13.198 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:13.448 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:13.698 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:13.949 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:14.199 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:14.449 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:14.699 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:14.950 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:15.200 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:15.450 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:15.700 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:15.951 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:16.201 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:16.451 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:16.701 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:16.952 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:17.202 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:17.452 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:17.702 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:17.953 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:18.203 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:18.453 INFO 1 --- [MessageBroker-3] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:18.703 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:18.954 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:19.204 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:19.454 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:19.704 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:19.955 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:20.205 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:20.455 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:20.705 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:20.956 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:21.206 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:21.456 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:21.706 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:21.956 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:22.207 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:22.457 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:22.707 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:22.957 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:23.207 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:23.458 INFO 1 --- [MessageBroker-8] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:23.708 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:23.958 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:24.208 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:24.459 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:24.709 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:24.959 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:25.209 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:25.459 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:25.710 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:25.960 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:26.210 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:26.460 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:26.710 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:26.961 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:27.211 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:27.461 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:27.711 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:27.962 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:28.212 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:28.462 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:28.712 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:28.963 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:29.213 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:29.463 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:29.713 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:29.964 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:30.214 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:30.464 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:30.714 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:30.965 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:31.215 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:31.465 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:31.715 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:31.966 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:32.216 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:32.466 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:32.716 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:32.967 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:33.217 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:33.467 INFO 1 --- [essageBroker-11] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:33.717 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:33.967 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:34.218 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:34.468 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:34.718 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:34.968 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:35.219 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:35.469 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:35.719 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:35.969 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:36.220 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:36.470 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:36.720 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:36.970 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:37.221 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:37.471 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:37.721 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:37.971 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:38.222 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:38.472 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:38.722 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:38.972 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:39.223 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:39.473 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:39.723 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:39.973 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:40.223 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:40.474 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:40.724 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:40.974 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:41.224 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:41.475 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:41.725 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:41.975 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:42.225 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:42.476 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:42.726 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:42.976 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:43.226 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:43.476 INFO 1 --- [MessageBroker-7] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:43.727 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:43.977 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:44.227 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:44.478 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:44.728 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:44.978 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:45.228 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:45.478 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:45.729 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:45.979 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:46.229 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:46.480 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:46.730 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:46.980 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:47.230 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:47.481 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:47.731 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:47.981 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:48.231 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:48.482 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:48.732 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:48.982 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:49.232 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:49.482 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:49.733 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:49.983 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:50.233 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:50.484 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:50.734 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:50.984 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:51.234 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:51.484 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:51.735 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:51.985 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:52.235 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:52.485 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:52.736 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:52.986 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:53.236 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:53.486 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:53.737 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:53.987 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:54.237 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:54.487 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:54.737 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:54.988 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:55.238 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:55.488 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:55.738 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:55.988 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:56.239 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:56.489 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:56.739 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:56.989 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:57.240 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:57.490 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:57.740 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:57.990 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:58.240 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:58.491 INFO 1 --- [essageBroker-10] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:58.741 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:58.991 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:59.241 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:59.492 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:59.742 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:11:59.992 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:00.242 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:00.493 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:00.743 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:00.993 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:01.243 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:01.494 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:01.744 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:01.994 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:02.244 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:02.494 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:02.745 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:02.995 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:03.245 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:03.495 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:03.746 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:03.996 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:04.246 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:04.496 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:04.746 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:04.997 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:05.247 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:05.497 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:05.747 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:05.997 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:06.248 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:06.498 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:06.748 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:06.998 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:07.249 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:07.499 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:07.749 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:07.999 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:08.250 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:08.500 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:08.750 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:09.000 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:09.250 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:09.500 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:09.751 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:10.001 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:10.251 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:10.501 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:10.752 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:11.002 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:11.252 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:11.502 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:11.752 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:12.003 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:12.003 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:12.253 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:12.503 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:12.754 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:13.004 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:13.254 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:13.504 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:13.754 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:14.005 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:14.255 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:14.505 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:14.755 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:15.006 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:15.256 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:15.506 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:15.756 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.006 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.257 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.507 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.006 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.257 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.507 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:16.757 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:17.008 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:17.258 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:17.508 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:17.758 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:18.009 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:18.259 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:18.509 INFO 1 --- [MessageBroker-5] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()
2019-10-11 08:12:18.759 INFO 1 --- [essageBroker-12] com.jasonhhouse.Gaps.GapsControllerImpl : currentSearchResults()

Error on Configuration page

I have GAPS installed via docker and I am having an issue trying to bypass the configuration page... I keep getting the attached error.
Screen Shot 2019-10-18 at 12 08 28 PM

Certificate Revoked

I'm unable to access the Gaps site using Chrome browser as it flags "Certificate Revoked" warning and won't let me proceed. I can access the site by clicking through warnings using Safari and the app itself is configured and working correctly. Cert causing the issue:

Screenshot_14_11_2019__10_13

Err connection reset

Hi! I am trying to run the docker image but even after exposing the port 8443, I can't access the config page.
I keep getting Err-connection-reset when accessing it. Any idea why?

Error parsing library with language in guids

As an example, an entry in my library xml looks like this;

<Video ratingKey="13280" key="/library/metadata/13280" guid="com.plexapp.agents.imdb://tt2024544?lang=es" studio="Plan B Entertainment" type="movie" title="12 años de esclavitud" titleSort="12 anos de esclavitud" originalTitle="12 Years a Slave" contentRating="R" summary="Basada en un hecho real ocurrido en 1850, narra la historia de Solomon Northup, un culto músico negro -y hombre libre- que vivía con su familia en Nueva York. Tras compartir una copa con dos desconocidos, Solomon descubre que ha sido drogado y secuestrado para ser vendido como esclavo en el Sur en una plantación de Louisiana. Renunciando a abandonar la esperanza, Solomon contempla cómo todos a su alrededor sucumben a la violencia, al abuso emocional y a la desesperanza. Entonces decide correr riesgos increíbles y confiar en la gente menos aparente para intentar recuperar su libertad y reunirse con su familia." rating="9.5" audienceRating="9.0" viewCount="1" lastViewedAt="1558820723" year="2013" tagline="La extraordinaria historia real de Solomon Northup." thumb="/library/metadata/13280/thumb/1572133643" art="/library/metadata/13280/art/1572133643" duration="8052194" originallyAvailableAt="2013-10-18" addedAt="1558817993" updatedAt="1572133643" audienceRatingImage="rottentomatoes://image.rating.upright" chapterSource="media" primaryExtraKey="/library/metadata/13295" ratingImage="rottentomatoes://image.rating.ripe">

Please note the appended ?lang=es at the end of the guid value. This is the error Gaps is throwing:

java.lang.NumberFormatException: For input string: "584427?lang=es"

Issue with Non-English Characters

Thanks for an awesome project - after figuring out the All Movie URL everything works well, and I'm able to redirect StdOut to get the output easily.

We have a few non-English collections in our library though, and it looks like Gaps is having a hard time with them - we're getting question marks instead of names in the output:

?????? ??? ????????? ????? - ? (2012) --- collection='Gangs of Wasseypur Collection'
?????? ??? ????????? ????? - ? (2012) --- collection='Gangs of Wasseypur Collection'
?????????? (2003) --- collection='Buppah Ratree'
?????????? 3.1 (2009) --- collection='Buppah Ratree'
?????????? 3.2 (2009) --- collection='Buppah Ratree'
?????????? ??? 2 (2005) --- collection='Buppah Ratree'
?????????????? (2016) --- collection='Buppah Ratree'
????? (2004) --- collection='Ghost in the Shell Collection'
?????????? (1962) --- collection='Godzilla (Showa) Collection'
??? (1954) --- collection='Godzilla (Showa) Collection'
??? ????????? (2004) --- collection='Godzilla (Millennium) Collection'
???vs?????? (1991) --- collection='Godzilla (Heisei) Collection'
???vs??????? (1994) --- collection='Godzilla (Heisei) Collection'
???vs????? (1989) --- collection='Godzilla (Heisei) Collection'
???vs????? (1993) --- collection='Godzilla (Heisei) Collection'
???vs??? (1992) --- collection='Godzilla (Heisei) Collection'
???×????? (2002) --- collection='Godzilla (Millennium) Collection'
???×????? G???? (2000) --- collection='Godzilla (Millennium) Collection'
???×???×????????SOS (2003) --- collection='Godzilla (Millennium) Collection'
?????????????????? (1966) --- collection='Godzilla (Showa) Collection'
???????????????????? (2001) --- collection='Godzilla (Millennium) Collection'
??????? (1971) --- collection='Godzilla (Showa) Collection'
????????? (1974) --- collection='Godzilla (Showa) Collection'
??????? ?????? (2017) --- collection='Resident Evil: Biohazard'
??????? (1964) --- collection='Godzilla (Showa) Collection'
???????????? (1964) --- collection='Godzilla (Showa) Collection'
???? (2000) --- collection='Crouching Tiger, Hidden Dragon Collection'
?????? ???????? (1972) --- collection='Godzilla (Showa) Collection'
????? (1968) --- collection='Godzilla (Showa) Collection'
????? 2.0 (2008) --- collection='Ghost in the Shell Collection'
?? (1978) --- collection='Drunken Master Collection'
??III (1994) --- collection='Drunken Master Collection'
??? (1994) --- collection='Drunken Master Collection'
???? ?? (2001) --- collection='My Sassy Girl Collection'
???? ?? 2 (2016) --- collection='My Sassy Girl Collection'

Just wondering if there's a possible fix to have it print the English title?

Error building Docker container

I am trying to build a gaps docker container, on Debian Jessie. After cloning the git to a folder and running the docker build command, I get the following error:

Non-resolvable parent POM for com.jasonhhouse:Gaps:0.0.3: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.1.2.RELEASE from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org: Temporary failure in name resolution and 'parent.relativePath' points at no local POM @ line 5, column 13

This is the full log:

Sending build context to Docker daemon  90.11kB
Step 1/8 : FROM maven:3.6.0-jdk-11-slim
 ---> 805c08148a8d
Step 2/8 : RUN mkdir -p /usr/src/app/src
 ---> Using cache
 ---> f676f3334ea0
Step 3/8 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 84e9f76b50f4
Step 4/8 : COPY startup.sh mvnw mvnw.cmd pom.xml /usr/src/app/
 ---> 7944a5cf2444
Step 5/8 : COPY src /usr/src/app/src/
 ---> e2ba08da552d
Step 6/8 : RUN chmod +x /usr/src/app/startup.sh
 ---> Running in d4f0fb800f07
Removing intermediate container d4f0fb800f07
 ---> 13375f776abf
Step 7/8 : RUN mvn clean install -Dassembly.skipAssembly=true
 ---> Running in f6fc887823b1
[INFO] Scanning for projects...
Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/2.1.2.RELEASE/spring-boot-starter-parent-2.1.2.RELEASE.pom
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.jasonhhouse:Gaps:0.0.3: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.1.2.RELEASE from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org: Temporary failure in name resolution and 'parent.relativePath' points at no local POM @ line 5, column 13
 @
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]
[ERROR]   The project com.jasonhhouse:Gaps:0.0.3 (/usr/src/app/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM for com.jasonhhouse:Gaps:0.0.3: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:2.1.2.RELEASE from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org: Temporary failure in name resolution and 'parent.relativePath' points at no local POM @ line 5, column 13: Unknown host repo.maven.apache.org: Temporary failure in name resolution -> [Help 2]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException
The command '/bin/sh -c mvn clean install -Dassembly.skipAssembly=true' returned a non-zero code: 1 ```

Where is the .jar file?

I don't see it anywhere in the directory. When running run.bat on Windows I get 'Error: Unable to access jarfile Gaps-0.0.3.jar'.

Feature Request - Use Radarr's "Import Exclusions" movie list for movies for Gaps to ignore

Would it be possible to have Gaps when proposing movies that are missing from collections for it to ignore movies based off either an ignore button within gaps (to ignore a proposed movie on future rescans) ...OR... for it to ignore a movie if it sees the movie is on Radarr's excluded movie list (Import Exclusions)?

For example, in Radarr if you go and search for a movie and you hit the "Ignore this movie, so it does not show up anymore" button (eye with a line through it) so that the movie will not be included in list pulls etc. That list of all previously ignored movies can be found under Radarr's Settings > Lists > Import Exclusions. If while your proposing missing movies from a collection you could compare the movie against that "Import Exclusions" list that would be ideal (or make this an option that can be turned on / off by user at time they run the Gaps scan). That way if there are certain movies people are intentionally deciding to ignore such as some crappy "straight to DVD" sequels then those don't keep showing up in future Gaps scan.

Bad Request This combination of host and port requires TLS.

After deploying the docker container, going to http://ipaddressofdockerserver:8443/ gives an error Bad Request This combination of host and port requires TLS. Logs are

gaps           | 2019-10-21 19:46:57.138  INFO 1 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : Starting GapsApplication v0.0.4 on zoe02 with PID 1 (/usr/src/app/Gaps-0.0.4.jar started by root in /usr/src/app)
gaps           | 2019-10-21 19:46:57.142  INFO 1 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : No active profile set, falling back to default profiles: default
gaps           | 2019-10-21 19:46:57.411  WARN 1 --- [kground-preinit] o.s.h.c.j.Jackson2ObjectMapperBuilder    : For Jackson Kotlin classes support please add "com.fasterxml.jackson.module:jackson-module-kotlin" to the classpath
gaps           | 2019-10-21 19:46:59.360  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8443 (https)
gaps           | 2019-10-21 19:46:59.431  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
gaps           | 2019-10-21 19:46:59.432  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.24]
gaps           | 2019-10-21 19:46:59.561  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
gaps           | 2019-10-21 19:46:59.561  INFO 1 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2306 ms
gaps           | 2019-10-21 19:47:00.361  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'clientInboundChannelExecutor'
gaps           | 2019-10-21 19:47:00.368  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'clientOutboundChannelExecutor'
gaps           | 2019-10-21 19:47:00.407  INFO 1 --- [           main] o.s.s.c.ThreadPoolTaskScheduler          : Initializing ExecutorService 'messageBrokerTaskScheduler'
gaps           | 2019-10-21 19:47:00.469  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'brokerChannelExecutor'
gaps           | 2019-10-21 19:47:00.674  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService
gaps           | 2019-10-21 19:47:00.674  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'taskExecutor'
gaps           | 2019-10-21 19:47:00.952  INFO 1 --- [           main] o.s.b.a.w.s.WelcomePageHandlerMapping    : Adding welcome page: class path resource [static/index.html]
gaps           | 2019-10-21 19:47:01.185  WARN 1 --- [           main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates or check your Thymeleaf configuration)
gaps           | 2019-10-21 19:47:01.436  INFO 1 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Starting...
gaps           | 2019-10-21 19:47:01.436  INFO 1 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : BrokerAvailabilityEvent[available=true, SimpleBrokerMessageHandler [DefaultSubscriptionRegistry[cache[0 destination(s)], registry[0 sessions]]]]
gaps           | 2019-10-21 19:47:01.437  INFO 1 --- [           main] o.s.m.s.b.SimpleBrokerMessageHandler     : Started.
gaps           | 2019-10-21 19:47:02.306  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8443 (https) with context path ''
gaps           | 2019-10-21 19:47:02.320  INFO 1 --- [           main] com.jasonhhouse.Gaps.GapsApplication     : Started GapsApplication in 6.389 seconds (JVM running for 7.087)
gaps           | 2019-10-21 19:47:15.485 ERROR 1 --- [nio-8443-exec-1] o.a.coyote.http11.Http11NioProtocol      : Error reading request, ignored
gaps           | 
gaps           | java.lang.NullPointerException: null
gaps           |        at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.getSslSupport(NioEndpoint.java:1392) ~[tomcat-embed-core-9.0.24.jar!/:9.0.24]
gaps           |        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853) ~[tomcat-embed-core-9.0.24.jar!/:9.0.24]
gaps           |        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1593) ~[tomcat-embed-core-9.0.24.jar!/:9.0.24]
gaps           |        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.24.jar!/:9.0.24]
gaps           |        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
gaps           |        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
gaps           |        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.24.jar!/:9.0.24]
gaps           |        at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
gaps           | 
gaps           | 2019-10-21 19:47:15.487 ERROR 1 --- [nio-8443-exec-1] org.apache.tomcat.util.net.NioEndpoint   : Error running socket processor

Error running with Docker

Please let me know if more information is required.
I attempted to run this using Docker because the Java implementation wasn't working for me either.

docker run -t -e DBAPIKEY=myapikey -e PLEXADDRESS=http://192.168.0.116:32400/library/sections/1/all/?X-Plex-Token=mytoken -e WRITETOFILE=true -e TMDBLISTID=123450 gaps

and it returns the following:
Fatal: Need to specify DB_API_KEY as environment variable Refer to README.md

I did check the readme, there's nothing to be found regarding the environment variable, same with the application.yml. The application.yml file also already contains all the keys it's asking for.

When I attempt to run this with Java:

`java -jar Gaps-0.0.3.jar

. ____ _ __ _ _
/\ / ' __ _ () __ __ _ \ \ \
( ( )_
_ | '_ | '| | ' / ` | \ \ \
\/ )| |)| | | | | || (| | ) ) ) )
' |
| .__|| ||| |_, | / / / /
=========|
|==============|/=////
:: Spring Boot :: (v2.1.2.RELEASE)

2019-08-27 13:18:48.422 INFO 143751 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Starting GapsApplication v0.0.3 on leo with PID 143751 (/opt/Gaps/Gaps-0.0.3.jar started by root in /opt/Gaps)
2019-08-27 13:18:48.426 INFO 143751 --- [ main] com.jasonhhouse.Gaps.GapsApplication : No active profile set, falling back to default profiles: default
2019-08-27 13:18:49.341 INFO 143751 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Started GapsApplication in 1.339 seconds (JVM running for 1.801)
2019-08-27 13:18:49.342 INFO 143751 --- [ main] com.jasonhhouse.Gaps.GapsApplication : Searching for Plex Movies...
2019-08-27 13:18:49.590 INFO 143751 --- [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-08-27 13:18:49.595 ERROR 143751 --- [ main] o.s.boot.SpringApplication : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:816) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
at com.jasonhhouse.Gaps.GapsApplication.main(GapsApplication.java:80) [classes!/:0.0.3]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [Gaps-0.0.3.jar:0.0.3]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [Gaps-0.0.3.jar:0.0.3]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [Gaps-0.0.3.jar:0.0.3]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [Gaps-0.0.3.jar:0.0.3]
Caused by: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found
at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1333) ~[okhttp-3.12.1.jar!/:na]
at okhttp3.HttpUrl.get(HttpUrl.java:916) ~[okhttp-3.12.1.jar!/:na]
at okhttp3.Request$Builder.url(Request.java:165) ~[okhttp-3.12.1.jar!/:na]
at com.jasonhhouse.Gaps.GapsApplication.findAllPlexMovies(GapsApplication.java:201) [classes!/:0.0.3]
at com.jasonhhouse.Gaps.GapsApplication.run(GapsApplication.java:85) [classes!/:0.0.3]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) [spring-boot-2.1.2.RELEASE.jar!/:2.1.2.RELEASE]
... 13 common frames omitted
`

I'm happy to provide more information, just let me know what you need!

Screen gets misaligned

image

Ip/Port/token details get hidden when entering data and using a 'suggested' text item.

org.json.JSONException: JSONObject["release_date"] not found.

image

org.json.JSONException: JSONObject["release_date"] not found.
	at org.json.JSONObject.get(JSONObject.java:566) ~[json-20180813.jar:na]
	at org.json.JSONObject.getString(JSONObject.java:851) ~[json-20180813.jar:na]
	at com.jasonhhouse.Gaps.GapsApplication.searchForPlexMovie(GapsApplication.java:214) [classes/:na]
	at com.jasonhhouse.Gaps.GapsApplication.run(GapsApplication.java:74) [classes/:na]
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.2.RELEASE.jar:2.1.2.RELEASE]
	at com.jasonhhouse.Gaps.GapsApplication.main(GapsApplication.java:68) [classes/:na]

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.