Giter Site home page Giter Site logo

happypandax / happypandax Goto Github PK

View Code? Open in Web Editor NEW
795.0 45.0 52.0 78.32 MB

A cross-platform server and client application for managing and reading manga and doujinshi

Home Page: https://happypandax.github.io/

License: GNU Lesser General Public License v3.0

JavaScript 40.50% TypeScript 29.90% Less 27.27% CSS 1.83% CMake 0.36% C++ 0.10% Python 0.03%
cross-platform sadpanda management manga doujinshi downloader e-hentai client server rpc

happypandax's Introduction

HappyPanda X

HappyPanda X is a cross-platform server and client application for managing and reading manga and doujinshi

Gitter GitHub release Github All Releases Docker Pullsr Twitter Follow

This project is under heavy development and is currently in the alpha stage.

Coming from HappyPanda? See Migrating from HappyPanda

Get Involved

Features

  • Highly customizable
  • Portable, self-contained and works cross-platform
  • Client and device agnostic, library is viewable from phone, laptop, tablet, smart tv and more
  • User and permission management (Not fully implemented yet)
  • Advanced E-Hentai-like search with regex support
  • Tagging: supports user-defined namespaces and tags
  • Find and apply metadata from the web automatically with plugins
  • Download manga and doujinshi from the web with plugins
  • Advanced management of manga with support for grouping similar content together in collections and groups, alternative titles, and more
  • Advanced manga importer
  • Support for common archive files (full list here) and folders with loose files
  • Extensible with plugin support for custom actions and behaviour
  • I18n support

Examples

HappyPanda X comes bundled with a default webclient front-end

Want to report an issue or suggest a feature?

This is the official issue-tracker for HPX. Please create a new issue here. If the issue is related to a plugin, please use the issue tracker for plugins.

happypandax's People

Contributors

animedalit97 avatar evaia avatar fadillzzz avatar kimabjorkede avatar twiddli avatar

Stargazers

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

Watchers

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

happypandax's Issues

Navigation feature for the image viewer [Request]

I was thinking that it would be more user-friendly if there was a feature where if you click to the right side of the page it goes forward a page and if you click to the left side it goes back a page. Kind of like how they have it set up on NHentai

Separate User Profiles [Request]

I thought it would be nice to have different profiles so if I wanted to allow my friend to use the server, but not mess with my database, he could. I was thinking something like separate tags, manga, and settings or have the choice to share those and just keep what you have read separate.

It won't start

I have no idea, I followed your instructions.

Log:

(henv) kim@ubuntu:~/happypandax$ python3 run.py
Traceback (most recent call last):
  File "/home/kim/happypandax/happypanda/server/core/plugins.py", line 261, in _init_plugin
    node.instanced = node.plugin(*node.args, **node.kwargs)
  File "/home/kim/happypandax/plugins/test/HPlugin.py", line 15, in __init__
    self.core.hello()
  File "/home/kim/happypandax/happypanda/server/core/plugins.py", line 387, in __getattr__
    raise exceptions.PluginMethodError(name, "Plugin {}:{} has no such method: {}".format(node.plugin.NAME, node.plugin.ID, key))
happypanda.common.exceptions.PluginMethodError: Plugin Core:9fb4ce2a-fe47-42ef-8c58-e039d999eb19 has no such method: hello

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "run.py", line 11, in <module>
    main.start()
  File "/home/kim/happypandax/happypanda/main.py", line 21, in start
    plugins.plugin_loader(constants.dir_plugin)
  File "/home/kim/happypandax/happypanda/server/core/plugins.py", line 76, in plugin_loader
    return registered.init_plugins()
  File "/home/kim/happypandax/happypanda/server/core/plugins.py", line 226, in init_plugins
    self._init_plugin(node)
  File "/home/kim/happypandax/happypanda/server/core/plugins.py", line 266, in _init_plugin
    raise exceptions.PluginError(node.plugin.NAME, "{}".format(e))
happypanda.common.exceptions.PluginError: Plugin Core:9fb4ce2a-fe47-42ef-8c58-e039d999eb19 has no such method: hello

Happypanda exporting database

Happypanda can add a gallery when it's within a folder
c:examplesub/*actual files
but Happypanda can also add a gallery when it's within a within of a folder when you just choose the path "c:examplesub/" but the actual directory is
c:examplesub/examplesub/*actual files

Now the problem when exporting database and transferring it to HPX is that HPX can't 'see' that specific gallery it would appear only as blank cover page and no images

Mascot

Hi guys,
I decided to draw us a mascot but I need help. Which one do you prefer?
1:

2:

SimilarGallery command fails to return on first use

The [More like this] view on the gallery page in the web-client will not display similar galleries on first use with a new database. A simple fix is to restart HPX.


Not tested yet but this is likely where it fails to return

gl_data.update(self._calculate(gallery_or_id, all_gallery_tags).get())

I'm sure the problem lies somewhere in the async module.

Same behavior has also been encountered with the requests module where it'll hang when it's used first thing when the server starts. Really not sure what's triggering it.
Waiting on next gevent release. It might have been fixed.

Set path to manga archives

Hello,
first i want to thank you for your effort in developing this application! It looks really good.

Unfortunately i don't really understand how i can add my local manga collection. I would really appreciate if you could help me solve this issue.
Thanks in advance!
:]

UNIQUE constraint failed: language.name

Describe the bug
Exception on adding any gallery

To Reproduce
Steps to reproduce the behavior:

  1. Start happypandax
  2. Go to localhost:7008
  3. Login
  4. Go to 'Manage'
  5. Set the path
  6. Press 'Submit'
  7. Look into logs/console

Expected behavior
Gallery successfully added

Logs
error.log

Environment:

  • OS: Linux
  • Browser and browser version: chrome 67
  • HPX Version: 0.2.0

Additional context
Looks like it tries to create new language called 'English' which already exists.

building error

in the step 6 of the building section, it give the following error:

Requirement already satisfied: MarkupSafe>=0.23 in c:\program files\python36\lib
\site-packages (from Jinja2>=2.4->Flask==0.11.1->-r requirements.txt (line 2))
Collecting typed-ast<1.1.0,>=1.0.3 (from mypy->transcrypt==3.6.25->-r requiremen
ts.txt (line 9))
  Using cached typed_ast-1.0.3-cp36-cp36m-win_amd64.whl
Installing collected packages: gevent, Werkzeug, itsdangerous, Flask, SQLAlchemy
, sqlalchemy-utils, rarfile, appdirs, karellen-geventws, Mako, python-editor, al
embic, typed-ast, mypy, transcrypt, required, python-dateutil, arrow, python-eng
ineio, python-socketio, happy-socketio, multidict, yarl, async-timeout, aiohttp,
 bencodepy, bitarray, happy-bittorrent
  Running setup.py install for gevent ... error
Exception:
Traceback (most recent call last):
  File "c:\program files\python36\lib\site-packages\pip\compat\__init__.py", lin
e 73, in console_to_str
    return s.decode(sys.__stdout__.encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 69: invalid
 continuation byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\program files\python36\lib\site-packages\pip\basecommand.py", line 21
5, in main
    status = self.run(options, args)
  File "c:\program files\python36\lib\site-packages\pip\commands\install.py", li
ne 342, in run
    prefix=options.prefix_path,
  File "c:\program files\python36\lib\site-packages\pip\req\req_set.py", line 78
4, in install
    **kwargs
  File "c:\program files\python36\lib\site-packages\pip\req\req_install.py", lin
e 878, in install
    spinner=spinner,
  File "c:\program files\python36\lib\site-packages\pip\utils\__init__.py", line
 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "c:\program files\python36\lib\site-packages\pip\compat\__init__.py", lin
e 75, in console_to_str
    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 69: invalid
 continuation byte

OS:Win7 x64, installed py27 and py36.

Ability to scan nested folders

Is your feature request related to a problem? Please describe.
I cannot scan in my collection because they are organized into nested folders. Unfortunately, as of now, HPX can only scan directories where the content is directly in the folder.

Describe the solution you'd like
The ability to scan in content within nested folders recursively.

Describe alternatives you've considered
N/A

Additional context
N/A

Unable to start server/web-server on HPX 0.1.0

Describe the bug
When attempting to run either happypandax or happypandax_gui and starting the server/web-server, the startup fails and exits. I've attached the output of the errors from start to finish in the "screenshots" section.

To Reproduce
Steps to reproduce the behavior:

  1. Download and unzip the latest tar.gz for Linux (HPX 0.1.0)
  2. Run happypandax from the command line
  3. See output displaying many errors

Expected behavior
The server and web-server should start normally.

Screenshots
Error log

Environment:

  • OS: Xubuntu Linux 18.04, Kernel 4.15.0-23-generic (edited for incorrect Xubuntu ver)
  • Firefox Quantum 60.0.2
  • HPX ver. 0.1.0

Additional context
I've tried to start the program both through the command line and the GUI, both result in the same errors.

The web-client cannot handle SessionExpiredError

It'll just move back to the login page when attempting to login again. A simple fix is to never expire the session by setting the server setting server.session_span to 0.


i'm just too lazy to handle it atm.

Add way to update data and pages of galleries in database

Is your feature request related to a problem? Please describe.
I have got some partially downloaded galleries. though their downloads are pending in my downloader, and can be finished if given the time. I do regular updates on the hpx db. and now with the fact that hpx will only add new galleries, and not ones that may have been modified. so those galleries are left incomplete in the db.

Describe the solution you'd like
A way of requesting a galleries update, either manually or automatically

Status Update

Alright guys,
I want to release a preview version.
This preview version will have the following features:

  • View, read and basic gallery modification

Note: It will not be possible to add or delete galleries in this version.

Accompained with this preview version is this single plugin:

  • A HP to HPX database converter.

For this release to be realized, the issues in this project needs to be done.
If i work fast, I believe those issues will be completed in about 2 weeks time at most.

That's all!

Any news? :V

How's the progress so far? Can't wait to use the new version, any screenshots you could share with us while we wait?

Fast editing mode

A mode that lets you fastly edit a gallery's or galleries' info by hotkeys. (i. e. change the type of gallery, change the language of the gallery, add a specific tag, remove a tag, etc,), it also lets you change the url from where the gallery fetch the metadata from by just using ctrl+v.

I have no idea how to add a gallery

HOW?! I can't find how anywhere, I think it's a command at this point, but I can't figure out where to type commands.

I have no idea how to reply on github, but I appreciate the help Pewpews. :)

HPX Plugins

  • Define plugin interface
  • Load plugins
  • Solve plugin dependencies
  • Create and connect hooks

Tankobons, magazines, split chapters etc

How would Happypandax work around and display tankobons, magazines or galleries with split chapters into multiple .zip/.cbz files in the interface?

H:\Artists\Shunjou Shuusuke[Shunjou Shuusuke] Ichizu na Toriko - A Earnest Captive [English] [SaHa]
https://puu.sh/z8Ljq/56208c8250.jpg

In this example, would it include 1.cbz, 2.cbz, 3.cbz, "everything else" and all of the images inside the folder "everything else" in the interface?

codec can't encode character '\u200b' in position 84: character maps to <undefined>

converting my extremely large HP database to HPX, using the included script, got an error 15% down the line.

File "./HPtoHPX.py", line 717, in <module> print("Skipping {} because path doesn't exists.".format(ch.title)) File "C:\Program Files\Python35\lib\encodings\cp437.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_map)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u200b' in position 84: character maps to <undefined>

GALLERY_LIST not defined

another issue from the recent HPtoHPX script changes. gives this error;

 C:\happypandax> python ./HPtoHPX.py happypanda.db hpx.db
Source: happypanda.db
Destination: hpx.db
Connecting to Happypanda database..
Fetching gallery lists..
Traceback (most recent call last):
  File "./HPtoHPX.py", line 678, in <module>
    src_galleries = GalleryDB.get_all_gallery()
  File "./HPtoHPX.py", line 140, in get_all_gallery
    return GalleryDB.gen_galleries(all_gallery, chapters, tags, hashes)
  File "./HPtoHPX.py", line 154, in gen_galleries
    ListDB.query_gallery(gallery)
  File "./HPtoHPX.py", line 323, in query_gallery
    for l in GALLERY_LISTS:
NameError: name 'GALLERY_LISTS' is not defined

HPX Web Client

  • Setup webserver
  • Establish connection with server
  • Communicate with server
  • Gallery Management

Tsumino plugin

  • fetch metadata?
    it'd be nice to get tags from tsumino, they having tags that for example exhentai.org doesnt have.

Converting HP database to HPX database

: Progress: |██████████████████████████████████████████████████| 100.0%
: Resolving gallery pages...
: Creating gallery lists
: Adding languages...
: Adding artists...
: Adding gallery types...
: Adding gallery status...
: Adding gallery namespaces...
: Adding gallery tags...
: Adding galleries...
: Adding gallery lists...
: Committing... (might take a while)
: (sqlite3.IntegrityError) UNIQUE constraint failed: language.name [SQL: 'INSERT INTO language (properties, name) VALUES (?, ?)'] [parameters: ('{}', 'English')] (Background on this error at: http://sqlalche.me/e/gkpj)
None of them show up in HPX

(sqlite3.OperationalError) unable to open database file

Happens in 0.0.2 to .4, HP was able to successfully export the database though, like the popup closed after 100% etc. I was able to import to HPX successfully back then.

HP log
INFO io_misc Finished exporting galleries!

HPX Server

  • Connect to port
  • Establish connection with client
  • Communicate with client
  • Gallery IO
  • Settings
  • Server API

Gallery detection doesn't work on some zip files

The namelist method in the ArchiveFile() class relies on the namelist method in the zipfile module, which for some reason doesn't return folders in some zip files (I can provide examples but I'm not sure how would be best - they appear to be zips that don't have dates on the folders, it's some quirk of whatever program made them). This leads to some zip files being detected as empty and not added.

Here's my hack method that takes filenames and truncates them to derive folder names, and then remove duplicates. It should (hopefully) preserve ideal list order as well.

    def namelist(self):
        filelist= []
        for x in self.archive.namelist():
            if x.endswith('/'):
                filelist.append(x)
            else:
                filelist.append(x[:(x.rindex('/')+1)])
                filelist.append(x)
        seen = set()
        filelist = [x for x in filelist if x not in seen and not seen.add(x)]
        return filelist

I haven't tested with rars, but I think it should work for them, too. And I haven't done any test outside of the single .py, but I can't think of any bugs this may cause downstream.

I know you said you weren't supporting happypanda any more, but if you could make this into a release I'd be super grateful. I'd have no idea how myself, and Qt5 is like a bajillion GB dl.

I have about 200 zips out of 5000 that aren't recognised by the old method, so I think it's worthy of a final release...

Issue adding small galleries (<7 images)

I have about 30 galleries in the .cbz format that the old happypanda refuses to add to the library. When added, all the archives are skipped with the reason "Empty Archive". I finally determined that they were being considered as empty archives because they have 7 or less images in them.

  • I tried renaming them using only alphanumeric characters and using a different directory on the disk.
  • I converted the images to a different file type just to be sure the images themselves weren't messed up
  • They all have a file size between 1.7mb and 30mb, and I have galleries in that file size range that are properly detected, so I do not think it is a small file size causing the problem.
  • Every single archive that is considered an empty archive has 7 or less images and a tags.txt file.

I hope in happypandax this issue can be resolved!

Have a problem while installing

I just do the step from building, and have problem like this..
already install Visual C++ 14.0, but too much problem there.. need advice..
thank you
problems

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.