mluzarow / mangobango Goto Github PK
View Code? Open in Web Editor NEWA personal manga server for your manga collection.
License: MIT License
A personal manga server for your manga collection.
License: MIT License
The configs for the database are hard coded in the database controller. This should be moved out into some ini or otherwise be made easily configurable.
Implement the new metadata lookup classes into the AJAX library scan of the config page controller.
Should use Jikan as the primary data source and then search for more information if any items are missing from other sources.
Updated the meta page to having the standard html and header content added to it and not force as a part of the render method. This will allow this class to be usable for every view.
Currently the library scanning system will look for the first available numeric string in the file/folder name. Those, it totally skips non-numeric items.
Should be updated to add in these items, in alphabetical order, after all the numeric items. (I guess until there is solid metadata from which the chapter order can be drawn)
Add methods to the config page controller that allow editing / adding / deleting of users and user permissions.
Add a new section to the configs page that shows up only if the user is of type 'admin'. This section should show a list of users AND user types, with the ability to edit usernames and user types.
Accessible from localhost:port or 127.0.0.1:port
Create a new table in the DB users
which stores username, password, and a user type column. All 3 should be varchar 255. Also include primary key user id.
Create new table user_types
which stores user id, and access
which is an array of flags (0/1). access
should be varchar.
Describe the bug
On the series view, the images seem to "jump" as they are loaded in.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Image backdrop should remain in the same place before, during, and after image load.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
N/A
Create a class that used the given URI to point the the correct page manager class so as the load the correct data,
Add a lazy loader script that will process the images once the initial page is loaded.
This should go into the head of the meta page as it will be used on every page.
Should be looking for img tags that have a certain attribute, "original-src", collect all the source image paths (this is buildable from DB information) and hold on to them until a page specific script tells it when to request images and how many it should request.
Pages such as displayLibrary will most likely need to load in a typical scroll into view style load. Readers should probably load 5 images ahead of the current reader position.
AS AN ALTERNATIVE, could simply call for some bundle of images at a time, regardless of page. Network usage and server processing don't really matter so much as this would be for private use...
Create a view "LoginView" which is a page outside meta page. I will contain nothing but the MangoBango logo on the top bar and a centered login form. Login for will container fields "username" and "password" and a login button.
Might be a good idea for the future in order to restructure how the import system accepts files. Currently there was be a very rigid structure of [series name]/[volume number][chapter number][page]. Given that many download softwares AND scanlation releases in general go by chapter, its probably a good idea to accept a structure like [series name][chapter num][page].
Item detection in general should be upgraded. This will likely work in tandem with the metadata project as pulling volume and image data will help us decide where each chapter will go in a volume in order to build out the multitude of views the mango can provide.
Site is currently missing a favicon. One should be added.
Need to protect the page with a username/password
Added drawing from saved metadata in the page controllers of the library pages, (most likely just the displaySeries one).
Add a config for setting up the order of important for metadata sources. Should allow user to resort the order in which certain plugins are used to populate data OR disabled certain plugins.
This should go into the config page view as a new section called "Metadata Settings".
Should use new config name metadata_plugins
.
Describe the bug
The series view is styled in a way that does not work very well for lower widths. Styling should be updated so that it looks good on mobile.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Site sections should move around and resize in order not to be so squeezed. The cover images should probably have some scaling queries like they do in the library view. The chapter list should probably become bigger around 900 and move under the metadata section around 500. Typical responsive look, I dunno.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Additional context
N/A
This would allow you to edit the storage location, removal (and/or deletion from db)
Helvetica is the best
Add AJAX method for processing login value and initializing the session. This also includes updating the JS on the login screen so that it trades the data correctly.
create the ability to save certain series as favorites and then view them on a separate tab.
This connector currently exists but is missing certain methods. This API is rather small so I shouldn't be too much work.
MCD docs: link
NOTE: The MCD POST for covers by series title currently does not work and always returns a 400 error. Emailed the developer to see what they say.
Add in the appropriate database tables for storing metadata. Existing tables may have to be edited as well to make more sense.
Currently the table manga_metadata exists with the folder path name an an unused "original title" column. This could probably be expanded to store all text metadata.
POSSIBLY save metadata from multiple sources in source-specific tables so that the user can choose which they want to use? Or maybe that just wastes space.
This connector already exists but currently only has one untested method. Implement the rest of the required methods and test that this actually works.
Jikan Documentation: link
Add an "add new manga" button. Function looks out to a web database of manga and finds the query, includes the synopsis, total chapters, etc. Then adds to the local manga db
The first time setup utility does not set up the required default configs, causing the config page to error out. This makes changing the configs impossible from the user side.
Should have a default config setup added to the setup page while creating tables or (probably better idea) ask the user for config values, populating the current items with some default values.
Make the manga read in a continuous strip form.
Add a setting to the config page that allows the user to enable the usage of a user-sourced XML or JSON file that contains manga metadata. This config should use the file as a plugin option, weight ordered by the metadata_plugins
config. Config should hold the path to the metadata file.
Config should be treated as enabled if it exists in the megadata_plugins
list. This addition / removal from this list should be automatic.
Config should be called metadata_user_file
.
Add a login page controller and a script that will route you to said controller if you are not correctly logged in.
Create a class that deals with response headers, giving back proper response codes, content lengths, and content types.
Updated library page controllers to not load and encode images anymore, but rather to save a list of image paths, which the lazy load js will then use.
Create a view that will be called via AJAX when a user clicks the edit button for a series.
View should be a form WITH an update button "Save Changes" displayed prominently at the top of the popup. Should contain inputs for all metadata returned from Jikan (subject to change depending on how useful it is).
Needs to list every chapter on the main page of each manga for easy adding to MangaStorm iOS app
Describe the bug
There are so many lazy loading AJAX requests that they are actually being blocked.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Images should be lazy loaded as the user scrolls them into view or slightly before. In the case of the strip view, perhaps load in batches of 4 images, triggering a load of the next 4 images once the user gets to the 1 before an unloaded image.
Screenshots
N / A
Desktop (please complete the following information):
All
Smartphone (please complete the following information):
All
Added a search bar to the top bar of the meta page. This should appear before all the other icons. Should also include a content dropdown which will list results found via the search.
When loading on library pages with images (usually Reader controller pages or DisplayLibrary) sometimes page will stop loading and the connection will be reset, or alternatively will display an out of memory error.
Likely fix will be an implementation of lazy image loading via AJAX .
This is a reference item and will be completed once the project attached to it is completed.
Users that are not logged in (aka new users) who try to use the first time setup page will be rerouted to the login page. This makes it impossible to use the system as the only way they can create the first login is by accessing the first time setup.
Should be able to edit the index to add an exception for this page and its ajax requests. Might also be a good idea to lock access to this page once there is at least one user in the users
table.
Describe the bug
The current database organization for the manga content is has columns that are poorly set up.
Expected behavior
Clean up to not have extra information in each table that does not belong there (E.G. the manga ID of each chapter which only needs a volume ID)
Create a controller "LazyLoader" in Core which will be the item called via AJAX from the lazy loader JS.
Should pass back the lazy js a list of base 64 encoded images for each path given.
DBViewer pages are rendering via the old method (echoing immediately at the page controller) and should be updated to use the meta page.
You can see this in action with the displayLibrary view.
Create the skeleton for a session controller"SessionManager", which will manager logging in/out, adding stuff to favorites, and other user-specific data. This should be in Core.
Add placeholders images for all the cover / spine images as well as a loading gif to indicate that they are in the process of loading. Also include ones for the reader.
It would probably be better if the covers all had a bordered, slightly darker image as a placeholder while the reader just had a plain white image.
Update would refresh the local db with info from the manga db out on the internet
Edit the meta page's top bar to have an item at the far left. Should display small text reading either "Logged in as username
. Do not worry about no active login as the metapage is not used when there is not used when not logged in.
Should have tiny dropdown arrow pointing down to the right of the username. Should show a menu with 1 item "Log out".
Update all the live view classes to display placeholder images instead of loaded base 64 encoded images.
These will be placed in an img take with the src being a placeholder image while an attribute "original-src" is added with the value being the path to the image that is to be loaded.
Create a controller that will use the popup editor view and populate the existing fields with data from the database. Should also contain a method that will handle AJAX request from the save button of the editor form and save data to the database.
If there are no items in the manga library, the series view throws an exception. Should not be doing that.
Add the ability to manually edit metadata on each series page.
Should be either a JS based popup which populates via AJAX using some view class or alternatively a separate page controller. Should be activated by hovering over a series icon and selecting an edit icon, preferably in the lower right as a pencil icon.
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.