kaethorn / alfred Goto Github PK
View Code? Open in Web Editor NEWManage & read your comics
Home Page: https://alfred.cx
Manage & read your comics
Home Page: https://alfred.cx
Pages /bookmarks
and /library/*/volumes
need improved display of comic tiles:
All columns should display comic covers horizontally centered.
The following URL cannot be matched:
library/publishers/Amalgam%20Comics/series/DC%20Versus%20Marvel/Marvel%20Versus%20DC/volumes
Handle publishers, series and volume names with /
, e.g. URL-encode them. Double check routing for any other URLs that might be affected by this bug.
I'm struggling to get the google sign-in to work.
After having setup a gmail account for the user login, and setting up some form of app in order to get a client ID, I still don't know where to find the auth.jwt.secret.
My users (family) don't have gmail accounts (IOS users) and are unlikely to get one just to access this app.
I might use it for myself if I could work out what is needed to get it going.
The alfred and mongo containers run fine and appear to be linked.
I just can't login.. (nothing happens when I click on the login button) and nothing is recorded in the logs)
Is there any way to just have a login and password to access the app? (or maybe a quick runthru of what I need to do to get the required credentials)
Thanks
Scanning a huge library might cause an abort
Implement loading & processing feedback.
Priority list:
I already have Mongo with Manga_Tagger Docker setup (image: mongo:4.2.19) and I passed the info to login via the URI but I get a bunch of errors and Alfred doesn't start.
- SPRING_PROFILES_ACTIVE=prod
- SPRING_DATA_MONGODB_URI=mongodb://manga_tagger:[email protected]/alfred
:: Spring Boot :: (v2.3.1.RELEASE)
2022-10-05 23:48:34.333 INFO 1 --- [ main] de.wasenweg.alfred.AlfredApplication : Starting AlfredApplication on 2f8e53105511 with PID 1 (/app started by root in /)
2022-10-05 23:48:34.336 DEBUG 1 --- [ main] de.wasenweg.alfred.AlfredApplication : Running with Spring Boot v2.3.1.RELEASE, Spring v5.2.7.RELEASE
2022-10-05 23:48:34.337 INFO 1 --- [ main] de.wasenweg.alfred.AlfredApplication : The following profiles are active: prod
2022-10-05 23:48:35.789 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data MongoDB repositories in DEFAULT mode.
2022-10-05 23:48:35.986 INFO 1 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 192ms. Found 5 MongoDB repository interfaces.
2022-10-05 23:48:36.980 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2022-10-05 23:48:36.993 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2022-10-05 23:48:36.993 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.36]
2022-10-05 23:48:37.141 INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2022-10-05 23:48:37.141 INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2734 ms
2022-10-05 23:48:37.660 INFO 1 --- [ main] org.mongodb.driver.cluster : Cluster created with settings {hosts=[10.1.1.10:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms'}
2022-10-05 23:48:37.772 INFO 1 --- [10.1.1.10:27017] org.mongodb.driver.connection : Opened connection [connectionId{localValue:1, serverValue:72}] to 10.1.1.10:27017
2022-10-05 23:48:37.779 INFO 1 --- [10.1.1.10:27017] org.mongodb.driver.cluster : Monitor thread successfully connected to server with description ServerDescription{address=10.1.1.10:27017, type=STANDALONE, state=CONNECTED, ok=true, minWireVersion=0, maxWireVersion=8, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, roundTripTimeNanos=4376435}
2022-10-05 23:48:38.316 INFO 1 --- [ main] org.mongodb.driver.connection : Closed connection [connectionId{localValue:2}] to 10.1.1.10:27017 because there was a socket exception raised by this connection.
2022-10-05 23:48:38.319 WARN 1 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicController' defined in file [/app/de/wasenweg/alfred/comics/ComicController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicService' defined in file [/app/de/wasenweg/alfred/comics/ComicService.class]: Unsatisfied dependency expressed through constructor parameter 4; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scannerService' defined in file [/app/de/wasenweg/alfred/scanner/ScannerService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'apiMetaDataService' defined in file [/app/de/wasenweg/alfred/scanner/ApiMetaDataService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicVineService' defined in file [/app/de/wasenweg/alfred/scanner/ComicVineService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'settingsService': Invocation of init method failed; nested exception is org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='manga_tagger', source='alfred', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='manga_tagger', source='alfred', password=<hidden>, mechanismProperties=<hidden>}
2022-10-05 23:48:38.324 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2022-10-05 23:48:38.344 INFO 1 --- [ main] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-10-05 23:48:38.348 ERROR 1 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicController' defined in file [/app/de/wasenweg/alfred/comics/ComicController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicService' defined in file [/app/de/wasenweg/alfred/comics/ComicService.class]: Unsatisfied dependency expressed through constructor parameter 4; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scannerService' defined in file [/app/de/wasenweg/alfred/scanner/ScannerService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'apiMetaDataService' defined in file [/app/de/wasenweg/alfred/scanner/ApiMetaDataService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'comicVineService' defined in file [/app/de/wasenweg/alfred/scanner/ComicVineService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'settingsService': Invocation of init method failed; nested exception is org.springframework.data.mongodb.UncategorizedMongoDbException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='manga_tagger', source='alfred', password=<hidden>, mechanismProperties=<hidden>}; nested exception is com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='manga_tagger', source='alfred', password=<hidden>, mechanismProperties=<hidden>}
Investigate why some comic book meta data files are changed after scanning the library.
Loading all front- and back covers for all comics is not feasible.
Either by:
or a combination of both.
Using ion-virtual-scroll
might help as well.
Hi,
Is there any plans to add the docker to dockerhub?
Thanks.
Please add docker hub images. x86, ARMHF, and ARM64 if possible.
Thanks.
Looking forward to trying this out.
Perhaps store both 200px and 400px versions. Use low res versions on /covers
page, high res versions on /library
and /bookmarks
pages.
Choose a persistent DB instead of in memory H2. Document based DB might be more performant.
Relations to consider:
has one
has one
has many open at position => ?
$ docker pull de.wasenweg/alfred
Using default tag: latest
Error response from daemon: Get https://de.wasenweg/v2/: dial tcp: lookup de.wasenweg: no such host
Is the host down?
Hello,
I'm a noob.
Your work seems interesting but could you explain a little more how to run it on a PC with Windows 10 ?
Thank you !
When an image cannot be loaded when opening a comic book, the following could happen:
There a various issues that need to be solved:
Happened on live system. At least show an error toast.
It just shows the background without images and a toast regarding successful caching. After reopening the comic, images show up fine.
I successfully created the image and ran the application and when I go to localhost:5000 I end up with a blank page. The tab identifies it as Alfred with the Alfred icon, but there's no content. Docker also shows mongo as running but de.wasenweg/alfred as exited. Am I doing something wrong? I'm a bit of a noob with this stuff. Thanks!
Currently, the UI expects all progress information to be part of Comic
data whereas the backend stores progress information in a separate collection. In order to achieve that, the backend models a Comic
to have transient progress attributes and populates them with information in the Progress
collection before returning it to the UI.
For example, the UI knows about the current user and stores progress directly in the Comic
data when sending updates to the backend which has to read out the relevant attributes and map them to the principal in order to store them in the Progress
collection. Similarly, when the UI fetches a comic, it expects it to contain progress information for the current user.
This appeared to be convenient at first, but turned out to yield a couple of pitfalls, one of which is caused by the fact that the backend models Comic
to have Progress
attributes that are persisted whenever a comic is saved, so when fetching that comic it would appear to contain progress information even when no Progress information was merged in.
This can be solved by removing progress attributes from Comic
(namely read
, currentPage
and lastRead
). This will require one of the following changes:
/api/progress
end points for the UI which has to explicitly manage progress. DB aggregation will break and might need $lookup instead of mergeObjects
.Figure out a caching strategy:
So a strategy would look like this:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.