subject-f / guyamoe Goto Github PK
View Code? Open in Web Editor NEWKaguya Manga Reader Website
Home Page: https://guya.moe
License: GNU Affero General Public License v3.0
Kaguya Manga Reader Website
Home Page: https://guya.moe
License: GNU Affero General Public License v3.0
After running init.py I get an error stating "Group matching query does not exist."
Migrations for 'reader':
reader/migrations/0001_initial.py
- Create model Group
- Create model Person
- Create model Series
- Create model HitCount
- Create model Volume
- Create model ChapterIndex
- Create model Chapter
Traceback (most recent call last):
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 173, in __get__
rel_obj = self.field.get_cached_value(instance)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value
return instance._state.fields_cache[cache_name]
KeyError: 'group'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/serializers/json.py", line 70, in Deserializer
yield from PythonDeserializer(objects, **options)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/serializers/python.py", line 146, in Deserializer
obj = base.build_instance(Model, data, using)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/serializers/base.py", line 270, in build_instance
return Model(**data)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/base.py", line 503, in __init__
post_init.send(sender=cls, instance=self)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 177, in send
return [
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 178, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
File "/home/kay/dev/python/guyamoe/app/reader/signals.py", line 85, in remember_original_series_of_chapter
instance.old_group_id = str(instance.group.id) if hasattr(instance, 'group') else None
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 187, in __get__
rel_obj = self.get_object(instance)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 154, in get_object
return qs.get(self.field.get_reverse_related_filter(instance))
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/db/models/query.py", line 429, in get
raise self.model.DoesNotExist(
reader.models.DoesNotExist: Group matching query does not exist.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "manage.py", line 21, in <module>
main()
File "manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
utility.execute()
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
output = self.handle(*args, **options)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/commands/loaddata.py", line 72, in handle
self.loaddata(fixture_labels)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/commands/loaddata.py", line 114, in loaddata
self.load_label(fixture_label)
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/management/commands/loaddata.py", line 172, in load_label
for obj in objects:
File "/home/kay/dev/python/guyamoe/lib/python3.8/site-packages/django/core/serializers/json.py", line 74, in Deserializer
raise DeserializationError() from exc
django.core.serializers.base.DeserializationError: Problem installing fixture '/home/kay/dev/python/guyamoe/app/./reader/fixtures/reader_fixtures.json':
I have two gdrive gists. One that I created 5 months ago and one that I created just now. The previous one works very well but the recent one gives 500 error whatever I do. The unix timestamps are correct (I think) as mentioned in the closed issue.
The previous one is -
https://guya.moe/proxy/gist/Jszg1/
Gist - https://raw.githubusercontent.com/rohiCoder/selfhosted-manga-cubari/main/AoT(complete)
The current one - https://guya.moe/proxy/gist/Jrzu5/
Gist - https://raw.githubusercontent.com/rohiCoder/selfhosted-manga-cubari/main/Kny(complete)
Please direct me as to what I am missing.
Cubari gist issue, Author and Artist name not shown in UI.
You can check this link. and check the raw json data.
It's not just this case it's been like this for all of them.
The overlay remains regardless of where you tap on the screen, which causes you to skip pages and makes navigating to the next page extremely frustrating.
Tapping on the overlay should dismiss it and allow you to continue reading normally.
Additionally, the majority of the navigation bar is positioned off-screen in the mobile reader.
This can be easily replicated in Chrome DevTools, and seems to occur for a variety of phone sizes.
hey there,
im on windows 7 64bit, have python 3.6.1, following the installation guide and i did the first 2 steps without problems (pip install -r requirements.txt and the SECRET_KEY) when i try to do:
./manage.py makemigrations
i get this error at the end
conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.OperationalError: fe_sendauth: no password supplied
here is the full thing:
Veelst@Veelst-PC MINGW64 /c/Server/guyamoe
$ ./manage.py makemigrations
Traceback (most recent call last):
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 195, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\postgresql\base.py", line 178, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\psycopg2\__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: fe_sendauth: no password supplied
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "./manage.py", line 21, in <module>
main()
File "./manage.py", line 17, in main
execute_from_command_line(sys.argv)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 364, in execute
output = self.handle(*args, **options)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle
loader.check_consistent_history(connection)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\loader.py", line 283, in check_consistent_history
applied = recorder.applied_migrations()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\recorder.py", line 73, in applied_migrations
if self.has_table():
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\recorder.py", line 56, in has_table
return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor())
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 256, in cursor
return self._cursor()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 233, in _cursor
self.ensure_connection()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\utils.py", line 89, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 217, in ensure_connection
self.connect()
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\base.py", line 195, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\postgresql\base.py", line 178, in get_new_connection
connection = Database.connect(**conn_params)
File "C:\Users\Veelst\AppData\Local\Programs\Python\Python36\lib\site-packages\psycopg2\__init__.py", line 126, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: fe_sendauth: no password supplied
i tried to ignore it and proceed but i just get it everytime, no idea what to do, sorry if its such a newbie question in python i know nothing about it!
thanks for help
is it possible to get guya.moe's webreader template (if it's open source/freeware) ?
or of guya.moe?
(Well, Devs here, you can make fun of me, when I've zero coding knowledge and I'm Dumb)
The current implementation of double-page mode has issues when there are pre-stitched spreads in an otherwise normal chapter.
When it should be leaving it as a standalone image, it puts it as part of another spread, messing up the page count and spreads thereafter irrevocably thanks to the implementation of double-page mode. Although I like the implementation otherwise, this should be fixed.
Example: https://guya.moe/proxy/imgur/QhQijGx/1/11
Other readers e.g. mcomix and mangadex handle this more gracefully by looking at the resolution or ratio of the image.
Any plans to make an app for Windows or a browser extension to read offline cbz/cbr manga?
The custom scrollbar should use the pointer cursor rather than the move (grabber) cursor. It may also be possible to use CSS to change the look of the scrollbar rather than inventing a custom one, but I would imagine there is some functional reason for using a custom one here other than looks.
Cursor before:
Cursor after:
It's better UX to have scrollbar replacements retain the same pointer as other scrollbars; else, it ruins the illusion and feels bad.
Cubari.moe support now Imgbb host, this image host support lossless image compression hosts (32mb per file)
you can set never expire to your images/albums. it is already known, i think everybody knows about that, but Imgur host compress all images that has a storage larger than 1mb.
anyway thanks for this website, it is brilliant.
appu, I have problems with the selfbot and would like to have your discord, please. i've tried fixing it for like a whole day.
Go to the Guya.moe about section
- We have proxies for mangadex (replace
mangadex.org
in the url withguya.moe
for whatever manga you're reading), nh (same way as md), and all sites that use the foolslide comic reader (jaiminisbox, helveticascans, a certain nsfw cafe, and more). For foolslide sites, addguya.moe/fs/
before the entire link (e.g. https://guya.moe/fs/https://helveticascans.com/r/series/mousou-telepathy/).
The features advertised do not work, and the example link doesnt either!
Looks like you moved this feature over to here https://proxy.cubari.moe/#/
The primary way of aggregating lists is currently involves making a gist and then linking to it with git.io .
Unfortunately, git.io has been frozen, with an eye to discontinuation. There are a lot of ways to get around this on a technical level, but I don't know precisely what issues were being solved originally, so I will not comment. However, addressing it is a pending issue.
Hi,
Would you perhaps know the contents of ocr_tool.sh
?
The download system uses the current chapter for naming the file
https://github.com/appu1232/guyamoe/blob/4f9606bcfdbabc9da0c06755ea7ee5de861d3041/reader/static/js/init.js#L3607
This is not correct because there's no guarantee that is same chapter that was downloaded, in fact if you click on download and switch chapter immediately the chapter download is the previous one but the name refers to the current one.
It would be better to save the name of the chapter being downloaded in the local function of the Download manager and pass it as an argument to initiateDownload function, that way would keep the correct name even if the chapter is changed in the UI.
support imgbox.com to be used cross your proxy like imgur
here a test chapter: OPM140
ps: Imgur does compression on anything larger than 1mb. Basically all colours & spreads which is less than ideal.
imgbox don't.
There's a problem with using google drive gists where cubari sometimes loads the first couple images and stops loading the rest. However this is a problem I've only seen on mobile browsers. When using a pc or tachiyomi to view these pages, I've never had a problem.
Here's an example of a gist that I've had the problem with.
https://cubari.moe/read/gist/NarutoColored/
Would be nice to have an option to disable scrolling up/down at all when clicking anywhere on the screen and/or outside of the pictures.
https://i.imgur.com/hs4W6JK.jpeg So clicking on the highlighted areas would not scroll up/down.
I tried all the settings, hopefully i didnt miss it.
Self-explanatory.
Also consider increasing the size of the modal/the volume cover image. On 1920x1080, the volume cover is only about 4.5x larger when enlarged.
Pretty much what's written in the title, if you click on the arrow the input will not receive focus and the options are not shown.
It's pretty strange that the dropdown arrow does nothing at all when I would imagine a user will click on it to open the dropdown (well, I do, it's very possible I'm the strange one).
document.getElementsByClassName("arrd")[0].addEventListener("click", function() {document.getElementsByClassName("dropbtn")[0].focus();});
Something like that solves the problem on my end.
I also think it would be nicer for the arrow span to cover the right part of the dropdown without a gap, currently there are 5 pixels where the cursor gets back to text (and clicking on them also opens the dropdown since the click focuses on the input)
"Open original" button in modal opens the volume cover image
It doesn't and just closes the modal dialog
Hey,
(addition to cubari.moe)
Is it possible to support this lossless image host as proxy please https://imgbb.com/ ?
here a sample link https://ibb.co/album/QXZ0mZ there is 20 images there.
anyway thanks a lot for your framework guys it serves a lot to many teams.
The search functionality for the Cubari proxy cannot be directly accessed via the cubari.moe domain, and only appears to exist at proxy.guya.moe.
I'm trying to create a sort of master reading list for a comic contest, so I generated a cubari.moe gist that would hopefully help me with that. Unfortunately, I get a 500 response with it, like so:
https://cubari.moe/read/gist/JOiI4/
For convenience, the git.io shortened link refers to this revision of this gist: https://gist.github.com/xrabohrok/0b24ba6660c030fd9c446b9eb62d2214
My only guess is that the server is not too happy with receiving about 153 chapters in a go, but the 500 error doesn't give me a lot to go on. Love the site otherwise.
Thanks
https://guya.moe/proxy/mangadex/36329/
The description, the bbcode is unparsed.
Swipe gestures cannot be disabled and have no settings corresponding to them.
This makes the reader entirely unusable on my phone, since the entire reader becomes jittery and the slightest touch of the screen will cause it to switch pages, volumes, chapters, etc. The only time it's bearable is when dragging by first clicking on the top bar somewhere.
Having swipe gestures disabled would then mean that the image is entirely fixed, and no amount of sliding your finger across the screen will do anything except scroll up or down, left or right if zoomed.
Pages would be changed by enabling the tap to switch page option, or by using the top bar's controls.
Reproducible on MacOS only, with Firefox and Safari. The bug results in the inability to change themes (since that's the only setting element that's using UI_Dropdown
at the moment).
Looks like it's related to this. I'll look into it later, just creating an issue to document this.
First amazing app. You have motivated me to read the manga after finishing the anime. Thanks a lot <3
Second you've made it libre/open source, this is even better! :D
<end-fanboying-fangirling/>
So the AGPL is the web app version of the GPL otherwise the copyleft won't be applied in practice.
https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License
I guess copyleft is your intent since you are using the GPL.
Since you seems to have only 3 copyright holders, changing to the AGPL is doable if you want you.
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.