Giter Site home page Giter Site logo

difegue / lanraragi Goto Github PK

View Code? Open in Web Editor NEW
2.0K 30.0 128.0 76.02 MB

Web application for archival and reading of manga/doujinshi. Lightweight and Docker-ready for NAS/servers.

Home Page: https://lrr.tvc-16.science

License: MIT License

JavaScript 14.79% CSS 6.13% Perl 46.98% Ruby 0.43% Dockerfile 0.44% Shell 0.72% PowerShell 0.09% HTML 30.42%
perl reader comics manga sadpanda doujinshi management mojolicious docker server

lanraragi's People

Contributors

asinin3 avatar bl4cc4t avatar cirnot avatar difegue avatar djacks6278 avatar efronc avatar forsakenrei avatar gin-no-kami avatar guerra24 avatar icebreeze avatar imgbot[bot] avatar imgbotapp avatar kagoromo avatar koma-cute avatar kuroneko995 avatar mayriad avatar nodja avatar nonamethanks avatar pastalian avatar polak14 avatar pratello avatar rodolfofigueroa avatar satiricon avatar siliconfeces avatar suika avatar tomasajt avatar urenko avatar utazukin avatar xiazeyu avatar zizzdog avatar

Stargazers

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

Watchers

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

lanraragi's Issues

Decouple Archive Index and Reader JSONs into RESTful APIs

To make the server potentially extensible later on, it'd be good to have clean API endpoints that return the bigass JSONs we're using for the Archive list and the Reader.

See Controller/Index.pm for the Archive Index - currently it spits out the JSON as a parameter for the template.
See Controller/Reader.pm for the pages of an opened archive - same method.

Ideally, those JSONs would be available through the already existing /api route - see LANraragi.pm and Controller/Api.pm

Once this is done, it should be possible to make a basic Desktop client for LRR, if anyone wants to. Crazy, right?

Scripting for deployment/updating

The current way to update the app (copying all files manually) isn't optimal. Ideally, a script that copies the files of the app directory to a given ssh server would be sufficient. Bonus points for being callable from npm with a cool command like npm deploy.

Namespace Display

Hey. Thanks for adding namespace support.
When a lot of tags are added to a namespace. The tags in the namespace expand upwards and downwards which is confusing as there is no clear demarcation between two namespaces. Could you either
1: Make clear demarcation
2: Have the tags begin from the same line as the namespace
Thanks.

Will LANraragi support galleries not in archive format?

I've been looking for a reader for my content for quite some time and stumbled upon LANraragi. Which looks really promising!

Will LANraragi ever support galleries that are not in archive format such as .rar's and .zips and support native image types like .png and .jpg?

Essentially my collection is all unzipped, each has it's own folder and the images are either in .png or .jpg format.

  • /Manga Collection
  • Manga 1
    • ...image 01.png
    • ...image 02.png
    • ...image 03.png
  • Manga 2
    • ...image 01.png
    • ...image 02.png
      and so on...

Thanks for any info!

Support for HTTPS/SSL

I really want to be able to have this service open to the outside to access it easily, but I can't securely do that when it is not encrypted. I was wondering if HTTPS/SSL could be implemented similar to how Ubooquity does it with a Keystore.

Ability to edit thumbnails.

Pretty simple suggestion. Currently, it's impossible to edit thumbnails of existing/uploaded archives. You could edit the thumbnail directly in the thumb directory that LANraragi generates, but after a few page refreshes, it resets the thumbnail back to the auto-generated image of the first page.

Windows Installer Encoding Issue

Hello.
LANraragi does not seem to handle Unicode filenames and throws the following error

[Shinobu] [warn] Deleting ID 35896a024099377df6bd295f52220ba7132bf659 - File D:/Portable/LANraragi/lanraragi/content/(COMIC1☆13) [星屑コメット (柚月ゆあ)] COMET_12 (Fate Grand Order).zip cannot be found.
threadId=00002AC8:tick=6261515:Unknown codepage=932

Archive with nested folders

Hello.
Any archives added that have nested folders will cause LANraragi to stop working after the upload is complete and return to library is clicked. Library works after deleting the file.

Reverse proxy compatability

Would love a supported way to reverse proxy LANraragi over my Nginx server to give me the ability to read on the go.

I've got a really janky way of it working right now, but I'm missing the page style.

My location blocks:

location /manga/ {
	include /config/nginx/auth_basic.conf;
	proxy_pass http://172.20.0.8:3000/;
}

location /js/ {
	include /config/nginx/auth_basic.conf;
	proxy_pass http://172.20.0.8:3000/js/;
}

location /js/vendor/ {
	include /config/nginx/auth_basic.conf;
	proxy_pass http://172.20.0.8:3000/js/vendor/;
}

location /css/ {
	include /config/nginx/auth_basic.conf;
	proxy_pass http://172.20.0.8:3000/css/;
}

location /css/vendor/ {
	include /config/nginx/auth_basic.conf;
	proxy_pass http://172.20.0.8:3000/css/vendor/;
}

Singular tooltip implementation

The way tooltips/overlays are currently done is a bit messy, with a JS file dedicated entirely to the image thumbnails, and a css trick for the tag ones.

Using a proper jquery plugin to regroup both those implementations and reduce the amount of home-made code in the front-end would be a good improvement.

Default Password

Hey. Has the default password changed?
I overwrote my files with the ones from the repository and I can't login anymore.

Hash building troubles

[2018-09-07 02:32:11] [Shinobu] [warn] This ID exists in the Redis Database but doesn't have the same file! You might be having duplicate files!
[2018-09-07 02:32:11] [Shinobu] [warn] Our file: /home/koyomi/lanraragi/content/[Tsurumiku] Osaka AWAKING (Maria's Event CG).zip
[2018-09-07 02:32:11] [Shinobu] [warn] Cached file: /home/koyomi/lanraragi/content/[Tsurumiku] Osaka AWAKING (Karin's Event CG).zip
[2018-09-07 02:32:11] [Shinobu] [warn] This ID exists in the Redis Database but doesn't have the same file! You might be having duplicate files!
[2018-09-07 02:32:11] [Shinobu] [warn] Our file: /home/koyomi/lanraragi/content/[Tsurumiku] Osaka AWAKING (Saya's Event CG).zip
[2018-09-07 02:32:11] [Shinobu] [warn] Cached file: /home/koyomi/lanraragi/content/[Tsurumiku] Osaka AWAKING (Karin's Event CG).zip

[2018-09-07 02:32:15] [Hash Computation] [error] Error building hash for ./public/temp/thumb/Wokada (���)/Pixiv@10779250/Paged/43339581_p0 [10779250][20140506 1648].png -- Open failed: No such file or directory at /home/koyomi/lanraragi/script/../lib/LANraragi/Utils/Generic.pm line 42.

[2018-09-07 02:54:26] [Hash Computation] [error] Error building hash for ./public/temp/thumb/ -- Open failed: No such file or directory at /home/koyomi/lanraragi/script/../lib/LANraragi/Utils/Generic.pm line 42.

[2018-09-07 02:54:29] [Hash Computation] [error] Error building hash for ./public/temp/thumb/ -- Open failed: No such file or directory at /home/koyomi/lanraragi/script/../lib/LANraragi/Utils/Generic.pm line 42.

[2018-09-07 02:54:35] [Hash Computation] [error] Error building hash for ./public/temp/thumb/ -- Open failed: No such file or directory at /home/koyomi/lanraragi/script/../lib/LANraragi/Utils/Generic.pm line 42.

Implement Background Processing

Thanks to the Mojolicious port, it's now possible for LRR to spawn a background process, using Mojo::IOLoop::ProcBackground.

Implementing a background process would allow to move a few things out of the main app's code and add good new features, such as:

  • Automatic detection/indexing of new archives without visiting the main page (no more hourglass page!)
  • Automatic tagging of new archives using enabled plugins
  • Automatic cleaning of the temporary folder when it reaches a certain size

And probably more.

Namespace Support and Comic Preview in Thumbnail view + Wrapping in List View

A few suggestions/questions.

  1. Do you plan to add namespace support at some point?
  2. Modify the metadata regex so that bracket enclosed content at the end of file name is parsed as language.
  3. A metadata overview popup having content formatted similar to EX's metadata page in thumbnail mode.
  4. Associating an archive with Ex or another metadata site's ID so there is easier duplicate detection + future metadata calls.
  5. Storing both Japanese and Romaji versions of the title/author/circle on metadata collection.
  6. Parse (ongoing) and (complete) into the title field after title.

Preload Images

Would it be possible to add preloading 5 images before and after the current image? And navigating via AJAX for instant page change?(I have no idea what I'm talking about and just typed the description of this script which does the above for Ex among other sites.

Redis cleanup command?

Is there a way to have the database sanity-check the files it knows about? I get a lot of errors like

2018-04-07 11:47:25] [Hash Computation] [error] Error building hash for ./public/temp/thumb/Gekkan Shoujo Nozaki-kun - c092 (NA) - p001 [web] [cashmoneychiyo].jpg -- Open failed: No such file or directory at /root/LANraragi/script/../lib/LANraragi/Model/Utils.pm line 79.

[2018-04-07 11:47:25] [Hash Computation] [error] Error building hash for ./public/temp/thumb/Henjyo - Hen na Jyoshi Kousei Amaguri Senko - v01 c01-05 + Bonus [Doki]/[Doki] Henjyo - Hen na Jyoshi Kousei Amaguri Senko - Volume 01/[Doki] Henjyo - Hen na Jyoshi Kousei Amaguri Senko - Chapter 01/[Doki] Henjyo - Hen na Jyoshi Kousei Amaguri Senko - Chapter 01 - Page 00.png -- Open failed: No such file or directory at /root/LANraragi/script/../lib/LANraragi/Model/Utils.pm line 79.

The files it is mad about don't exist, but it's doggedly, over and over, trying to make those hashes.

Also, there are several empty directories in the ./public/temp/thumbs that aren't generating errors but are quite stale and such. I assume it's fine to purge them?

Undefined subroutine Meta data lookup

Hi i just today found your amazing program and after the sad death of HappyPanda this is exactly what i was searching for, i can Import my files but for some reason it keeps failing on importing the meta data.
Could you take a look at this?

LRR Version and OS
Docker Version latest, and OS OpenmediaVault 4

Bug Details
I seem to not getting any tags for my archives, it just keeps spamming this down below in the logs.
I chose exhentai and nhentai as plugins.

Matching Logs
[Shinobu] [error] Undefined subroutine &LANraragi::Model::Plugins::exec_enabled_plugins_on_file called at ./lib/Shinobu.pm line 194.

Category buttons.

Hello, I wonder, is there any options to pick category of galleries, customizable buttons like
2018-06-25 02_13_30-manga club read official manga for free
Maybe point category at the end of file name, or smth like this

Can't update a working LANraragi container through docker-ssh and npm deploy

I downloaded and got LANraragi running right before the 4.0 update and decided to test it out a bit more before updating. I started having an issue with it so I decided to update to 4.0 before raising an issue on that. However since I have a ftp server running on the same machine I cannot connect to the docker ssh to perform the update.

I have FTP software that does not unbind from port 22, and while the issue I have is caused by another program and not LANraragi's fault, I think being able to change the port for updating is essential.

Is there a workaround to this? I am currently trying to copy the docker VHD to another machine to see if I can do the update there.

E-H Plugin

Hey.
I'm guessing standard metadata fetching is only using the title and only the first result of multiple hits is requested? I'm asking because most of my tags are from french and russian galleries. English and Japanese galleries tend to be the most extensively tagged and accurate. So I was wondering whether you could add the tags scraped from file during query like so
parody:"fate grand order$" language:english$ "Blah Blah(Title)"

Android device

How can I access my server (running the QuickStarter) from my Android device?

Feature request - Mouseover displays filename in thumbnail view

So I got a LANraragi set up in a debian LXC container without too much fuss. I ran into weird errors when I tried a couple of weeks ago with it not liking the .zip files I was trying to upload (or any archives for that matter) but they seem to have gone away on their own this time!

Overall, I really like the software. For me, the only thing I've noticed is that when in thumbnail view, I can't seem to see what the filename of the archive I'm seeing is. From the layout, it seems like it would be useless to try and squeeze it in above the image, so perhaps the mouseover event for the thumbnail itself could be used?

Feature suggestion: Have spacebar only go to next page if at the bottom of the page.

See title.

I like using the keyboard controls, but the space button always advances to the next page, even if the current page doesn't fit on the screen properly. Maybe having it as a reader option to only advance to the next page w/ the spacebar if you're already at the bottom of the page (instead of always advancing to the next page) could be useful.

App not loading after power-failure/reboot since 4.5

Hello
I can't seem to re-run the app after a power-failure/reboot since 4.5. I get a "The connection to the server was reset while the page was loading." error on localhost:3000 in my browser.
For reference I'm using the Vagrant installation and the command line dosen't throw any errors when I give it the vagrant up command to boot LANraragi. Right now I'm deleting the VM and reinstalling on every boot.
Anything you could suggest?

Resetting the scroll bar at page change

Has the new reader already been implemented? I turned off Tampermonkey and the images were still switching quickly. Awesome :). Anyhow the images don't reset to the top on page change and so you'll have to scroll up and might even be potentially spoilered (if you could even call it that).

Redis won't start on docker image

  'Supervisord is running as root and it is searching '
2018-07-08 13:39:06,595 CRIT Supervisor running as root (no user in config file)
2018-07-08 13:39:06,596 INFO Included extra file "/etc/supervisor/conf.d/supervisord.conf" during parsing
2018-07-08 13:39:06,674 INFO RPC interface 'supervisor' initialized
2018-07-08 13:39:06,674 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2018-07-08 13:39:06,675 INFO supervisord started with pid 1
2018-07-08 13:39:07,679 INFO spawned: 'lanraragi' with pid 7
2018-07-08 13:39:07,684 INFO spawned: 'redis' with pid 8
2018-07-08 13:39:07,879 INFO exited: redis (exit status 1; not expected)
2018-07-08 13:39:08,881 INFO success: lanraragi entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2018-07-08 13:39:08,883 INFO spawned: 'redis' with pid 13
2018-07-08 13:39:08,897 INFO exited: redis (exit status 1; not expected)
2018-07-08 13:39:10,902 INFO spawned: 'redis' with pid 25
2018-07-08 13:39:10,914 INFO exited: redis (exit status 1; not expected)
2018-07-08 13:39:14,480 INFO spawned: 'redis' with pid 32
2018-07-08 13:39:14,493 INFO exited: redis (exit status 1; not expected)
2018-07-08 13:39:15,494 INFO gave up: redis entered FATAL state, too many start retries too quickly
2018-07-08 13:39:17,296 INFO exited: lanraragi (exit status 111; not expected)

Plugin for eze files inside archives

As said in #25, a plugin handling files created by eze inside archives is planned.

This plugin would also be a good basis for other people to write plugins handling various text formats, such as hdoujin downloader, etc.

Viewing Modes

Hello.
Are there plans for more viewing modes?
As in fit to width/height, full size image as well as paged images? Also an exclusive mode where the image is the only thing visible since there are hotkeys for everything anyways. I'm not sure whether I'm asking or making suggestions at this point :D.

Specify listening interface in native install

Perhaps I'm just dumb and missed it, but I don't see where I can tell a native installed lanraragi to bind to any interface other than loopback/localhost. I looked in the lrr.conf but all I saw was the redis config, and nothing about the npm webserver.

I suppose I could set up a reverse proxy setup with nginx, but I'd rather not. : /

Add an Interface for Theme/Plugin upload

Currently, Themes and Plugins can only be added by directly dropping them in the matching folders in the app.

While this is good enough for users installing on Native, Docker/Vagrant users are left in the dust, as they don't have easy access to the app folder.

Empty Archive Index

After going through and tagging a bunch of my archives, My archive index stopped showing anything. Archives can still be read if I go to a random one and they are on record in statistics. I have given it about 12 hours to make sure it wasn't just reloading from all the changes I made and restarted it. The only thing that comes up in the logs is
[Shinobu] [info] Archive count (313) has changed since last cached value (319) OR rebuild has been forced (flag value = 0), rebuilding... [Shinobu] [info] Done!
every 5 seconds.
1nlqp

input data from text inside archive

I downloaded a doujin from a program called hdoujin downloader that supports entering doujin info into text within the archive

can lanraragi input tags data from within the text in the archive
using google translate
sample info.txt
untitled

Archives with unicode folder names not opening

Hello
As mentioned, an archive with unicode folder names i.e
D-Frag! (ディーふらぐ! ) 02.zip
└─D-Frag! (ディーふらぐ! ) 02
└─001.jpeg
└─002.jpeg
will not open and keep reloading.

Support for embedding chapters into main title names?

Currently, I have the following showing up in my LANraragi library:

Fairy Tail Ch. 1-4
Fairy Tail Ch. 5-8
...
Fairy Tail Ch. 529
Fairy Tail Ch. 530

Is there any way to create "parent titles", with the chapters residing within that parent?

Example:

Fairy Tail
 | - Fairy Tail Ch. 1-4
 | - Fairy Tail Ch. 5-8
 | - ...
 | - Fairy Tail Ch. 529
 | - Fairy Tail Ch. 530

For books with LOTS of chapters, there can be pages of these. It'd just be nicer/cleaner to be able to drill down into each series and find the chapters there.

Provide a systemd .service file?

It would be great if the software provided a Systemd .service unitfile. Wouldn't have to be installed by default, but just having it tucked away in lib/ or something where someone could edit the relevant paths and get that up and running. Thanks.

Implement button fade-in in Reader View

Some feedback from the /h/ thread:

Reader mode could use a different button layout so that the image can hit the top of the browser, basically maximizing it. Perhaps by implementing the buttons as fade-ins in the image itself?
Take a look at this stylescript for vndb https://userstyles.org/styles/124921/vndb-complete it inserts button fade-ins to the preview pictures on that site.

This could either be implemented as a theme, through JS in Reader options, or as a global modification through the general CSS (/public/css/lrr.css). Lots of different ways to tackle this!
Small touch-ups to the Reader Template (/templates/reader.html.tt2) might be necessary.

Can't open files

[Shinobu] [error] Couldn't open A:/xxxxx/xxxxxx/xxxxxx/chapters/someshit.zip :Invalid argument at A:/LRR 0.5.4/lanraragi/lib/../lib/LANraragi/Utils/Database.pm line 104.

I get this error for every file that it trys to load, i dont know what to do about it.

Plugin system for metadata handling

Now that the JS reader is done, I need something else to take 8 months completing.

Extending the current tag import system isn't too hard, but could be done in a better way.
Taking into account the fact basically everyone has their own metadata storages/websites they'd like to pull data from, a plugin system sounds like a good solution (and everyone does it anyway)

Basic structure for this would be:

  • Plugins are Perl Modules, placed in a specific folder (/plugins most likely)
  • Each plugin acts as a source for metadata - They can be activated or deactivated in the LRR Configuration pane.
  • When pulling metadata for an archive, all the active plugins will be triggered.

The plugins themselves would need to have access to the already-present metadata for the archive, a copy of the file itself (for hash lookups/importing stuff from files in the archive itself/reverse image searching), and arguments provided by the user. (for URL overrides or logins, for example)

Plugins would return a JSON file containing full metadata - that metadata would then be integrated into the LRR database.

This issue also implies porting the existing E-H and nh tag lookup systems - alongside their tests - to the plugin system.

[Issue] Invalid Argument

Getting an invalid argument error located in /lib/LANraragi/Model/Utils.pm line 99. This happened after it added a few archives and now it's just repeatedly outputting this in the console.

cmd_2018-05-10_00-15-15

Namespace support

Currently, title/artist/series/language are separate fields in the database, with a "tags" field acting as a catch-all for everything else.

Implementing namespaces would allow us to store everything in one field only (maybe two if we keep the title separate), while adding support for a lot more categories.

This also requires an overhaul of the search functionalities of LRR, in order to handle those new namespaces.

Plugin System Improvements + ExHentai.org support

Currently, Plugins can only accept two arguments, and one of them is reserved for file-specific operations (when you specify an EH URL for example).

Being able to give more arguments to a Plugin would make them more configurable, by allowing more than one option field in Plugin configuration.

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.