-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Many things has been updated, added and enhanced. Cannot do a list of changes because they're too many
- Loading branch information
Showing
43 changed files
with
7,535 additions
and
893 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,112 @@ | ||
# CosmicComics | ||
[![cosmiccomics](https://snapcraft.io/cosmiccomics/badge.svg)](https://snapcraft.io/cosmiccomics) | ||
[![cosmiccomics](https://snapcraft.io/cosmiccomics/trending.svg?name=0)](https://snapcraft.io/cosmiccomics) | ||
Open Source, Pure Javascript, NodeJS / Electron Comics and Manga Viewer | ||
Open Source, Pure Javascript, NodeJS / Electron, Comics and Manga Viewer | ||
|
||
# Currently under active developpement. Some functionnalities will be added in the future and some will disapears. The look is able to change too. | ||
## Introduction | ||
I wanted a software easy to use and looking great in which I can display all my comics/mangas collection and read them with cool features. | ||
### Why this project ? | ||
I beginning reading comics and manga and found some softwares to do it but none of them correspond to me. So I decided to create my own software. | ||
|
||
## Features: | ||
This is all you can do with this software and more: | ||
- Read CBR, CBZ, CB7, CBT, ZIP, RAR, 7z, TAR, Folder which contains PNG, JPG, JPEG, BMP. | ||
- Display your books and navigate your folders with custom covers (automaticatly by extraction or manually set) | ||
- Discord Rich Presence (RPC) | ||
- Multi-lang Support (English(US) and French(FR) are officially supported but you can wrote your own, see more under the Languages section) | ||
- Keyboard and mouse shortcuts (see more on the Keyboard and Mouse shortcuts section) | ||
- Keep info of your books and app settings in a JSON under the AppData | ||
- Set your books as Read, Unread, Reading or favorite and note them. | ||
- Many Customizable parameters | ||
- Zoom, Auto Background Color, Double page Mode, Blank first page, No double page for Horizontal, Manga Mode, Webtoon Mode, fullscreen, rotations, Bookmarks, Slideshow, SideBar, Hide Menu Bar. | ||
- Display informations about Comics/ Manga | ||
- Open a single or a whole folder (recommanded) | ||
- Open a file by drag&Drop, or open it via the file explorer (only if you have set Cosmic-Comics as default app for this extension) | ||
- Continue reading where you stopped and more... | ||
|
||
## License | ||
The Cosmic-Comics is licensed under the GNU GPL v3 License, You can find info on it on the source code and on the internet. | ||
|
||
## Installation | ||
### For Windows | ||
- Directly on the Microsoft Windows Store | ||
- As an exe file (OneClick NSIS Installer, installed in "Program Files") | ||
- As a .zip file containing the app for portable edition (see more under the Portable section) | ||
|
||
### Linux | ||
- Directly on the SnapCraft Store | ||
- As a Snap file (to manually install the same version as the snapcraft one) | ||
- As a Deb file (for using in all Debian Based distribution) | ||
- As a RPM file (for using with all Red Hat based distribution) | ||
- As an AppImage (image normally running on all distribution) | ||
- As a ZIP file (for portable version, see more on the portable edition) | ||
|
||
### MacOS | ||
Note: Since I am not familiar to MacOS, don't have a MacOS machine and don't really love Apple, this version of the software can have some issues that I will do my best to correct. (I use a Virtual Machine to build the soft on Windows to MacOS) | ||
- As a DMG | ||
- As a ZIP | ||
|
||
### Portable Edition | ||
This software will have a portable edition support that you can enable by following those steps: | ||
1. Download the ZIP version for your OS. | ||
2. Create where you want a folder (name of your choice) in which you will create 3 other folders, the app (name of your choice), the temporary (named TMP), and the AppData (named AppData). | ||
3. Extract the archive in the app folder | ||
4. Adding a text file nammed `portable` with the extension `TXT` in the main directory (where the other 3 folders are). | ||
5. Run the cosmic-comics file in the app folder and select The ZIP version corresponding to your OS (if MAC select DevMode) as an update provider. | ||
|
||
## Update | ||
I implemented a custom updater (which do NOT support MacOS for the moment) it will let you know when an update is available. | ||
If you are on a store version you will have to update through this store. | ||
If you have selected DevMode you will have to download manually the new version on Github. | ||
If you have selected a ZIP version you will have to update manually but the ZIP is downloaded and openned directly. | ||
If you have selected AppImage you will have to delete the old one and replace it by the new one downloaded directly. | ||
If you have selected other than thoses choices then you will deal with the normal installation. | ||
Note : Remerber to close the app when the update is download / the installation process begin | ||
|
||
## Languages | ||
You can change the language of the app in the settings by clicking on the flags. | ||
English (symbolized by the USA Flags) and French (symbolized by the French Flags) are made by me and officially supported (If you discover a traduction error, please tell me). | ||
But you can add your languages too! | ||
Dead simple, go the App folder (where the application is installed or launched), then open the "resources/app/languages" folder, on it you will see actual languages, duplicate(copy&paste) a JSON file (for example the english one), rename it with your country ID (for the flags (english = us.json to display the American flag)). Open the file and start translating the values. When you have finished, then start the application and you will see on the settings the flags and when you click on it the language you made. | ||
Note: You can also open an issue if you want a language to be added or submit your own. In the last case, I will verified it, and add it to the project. | ||
|
||
## Keyboard and Mouse shortcuts | ||
Home page (index, where your files are): | ||
- C : Continue reading | ||
- F : Forget the actual folder | ||
- R : Refresh the actual folder | ||
- O : Open a single file | ||
- D : Open a Directory | ||
|
||
------------------------------ | ||
|
||
Viewer page (viewer, where you read the book): | ||
- Ctrl + +(numPad or Digit) : Zoom In | ||
- Ctrl + -(numPad or Digit) : Zoom Out | ||
- Left Arrow || Up Arrow : Previous Page | ||
- Right Arrow || Down Arrow : Next Page | ||
- Ctrl + Left Arrow || Ctrl + Up Arrow : Go to the first page | ||
- Ctrl + Right Arrow || Ctrl + Down Arrow : Go to the last page | ||
- F : FullScreen | ||
- H : Display by Height | ||
- W : display by Width | ||
- B : Toggle Bookmarks | ||
- R : Rotate 90° (to the right) | ||
- Shift + R : Rotate -90° (To the left) | ||
- O : Mark as Read | ||
- I : Mark as Reading | ||
- U : Mark as Unread | ||
- P : Toggle Favorite | ||
- Mouse Left Click (not on the MenuBar or the SideBar) : Previous Page | ||
- Mouse Right Click (Not on the MenuBar or the SideBar) : Next Page | ||
|
||
## Mobile Version ? | ||
Well, my software use Electron which is not possible to export to Android (and I don't talk about IOS), I try many way to convert my project to Android but still no success. | ||
In the future I have the plan to make an android application. | ||
If you have any tips on how to brings Electron / NodeJS to Android, let's me know in the issues section. And if you want make it and send it as a PR. | ||
|
||
## Got an idea of something which could be added or enhanced ? | ||
Then open an issue on GitHub or make a Pull Request if you have implemented it already. | ||
|
||
## Got issues, have a feedback, want helps ? | ||
Then Open an issue on Github. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
0.0.22 | ||
1.0.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2021 maruf99 | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
# comicgeeks | ||
|
||
A NodeJS module to get data from League of Comic Geeks | ||
|
||
```bash | ||
npm install comicgeeks | ||
``` | ||
|
||
## Features | ||
|
||
- Fetching weekly release lists | ||
- Fetching search results | ||
- Fetching user pull lists | ||
- Fetching user collections | ||
- Fetching user wish lists | ||
- Filter by publisher, comic format, etc | ||
- Sort by pull count, community rating, price, alphabetically, etc | ||
|
||
## Usage | ||
|
||
View the full documentation [here](https://maruf99.github.io/comicgeeks/). | ||
|
||
Every method to retrieve data is prefixed with `fetch`: | ||
|
||
- `fetchReleases` | ||
- `fetchSearchResults` | ||
- `fetchPulls` | ||
- `fetchCollection` | ||
- `fetchWishList` | ||
|
||
Each method returns a Promise that resolves with the data. Here are a few examples: | ||
|
||
```js | ||
const { fetchReleases, FilterTypes } = require('comicgeeks'); | ||
// ES Module or TypeScript: import { fetchReleases, FilterTypes } from 'comicgeeks'; | ||
|
||
// Fetch regular, digital, and annual DC Comics issues that released on 2020-12-15, and sort them alphabetically | ||
fetchReleases('2020-12-15', { | ||
publishers: ['DC Comics'], | ||
filter: [ | ||
FilterTypes.Regular, | ||
FilterTypes.Digital, | ||
FilterTypes.Annual | ||
], | ||
sort: SortTypes.AlphaAsc | ||
}) | ||
// Resolves to an array of objects | ||
.then(console.log) | ||
.catch(console.error); | ||
``` | ||
|
||
The return objects will look something like this: | ||
|
||
```js | ||
{ | ||
name: 'Batman #105', | ||
publisher: 'DC Comics', | ||
url: 'https://leagueofcomicgeeks.com/comic/9430629/batman-105', | ||
cover: 'https://s3.amazonaws.com/comicgeeks/comics/covers/large-9430629.jpg?1612100060', | ||
description: 'GHOST STORIES, PART 4 Batman battles Ghost-Maker in the no-holds-barred, bloody conclusion of this epic tale…winner take Gotham City! And the outcome is not what you’re expecting! The future of Gotham City and the fate of...', | ||
price: '$3.99', | ||
rating: 84, | ||
pulls: 9288, | ||
potw: 2 | ||
} | ||
``` | ||
|
||
Let's try search results. | ||
|
||
```js | ||
const { fetchSearchResults, CollectionTypes } = require('comicgeeks'); | ||
|
||
// Search for 'batman' in issue format | ||
fetchSearchResults('batman', CollectionTypes.Issue) | ||
// Will resolve to an array of objects, similar to the one above | ||
.then(console.log) | ||
.catch(console.error); | ||
``` | ||
|
||
When fetching user specific data, things become a bit more complicated. Each method will take the user's ID as the first parameter. There is a helper method, `fetchUser` to retrieve the ID from a username. | ||
|
||
```js | ||
const { fetchUser } = require('comicgeeks'); | ||
|
||
fetchUser('maruf99') | ||
.then(console.log) | ||
.catch(console.error); | ||
|
||
/* | ||
{ | ||
id: 122444, | ||
name: 'maruf99', | ||
url: 'https://leagueofcomicgeeks.com/profile/maruf99', | ||
avatar: 'https://s3.amazonaws.com/comicgeeks/avatars/large-122444.jpg?t=1609863575' | ||
} | ||
*/ | ||
``` | ||
|
||
Let's try fetching a pull list, collection, and wish list. | ||
|
||
```js | ||
const { | ||
CollectionTypes, | ||
fetchCollection, | ||
fetchPulls, | ||
fetchUser, | ||
fetchWishList, | ||
SortTypes | ||
} = require('comicgeeks'); | ||
|
||
fetchUser('maruf99') | ||
// async/await syntax | ||
.then(async user => { | ||
// Fetch the collection | ||
const collection = await fetchCollection(user.id, CollectionTypes.Series, { | ||
sort: SortTypes.AlphaAsc | ||
}); | ||
|
||
// Fetch the pull list and order by most pulled | ||
const pullList = await fetchPulls(user.id, '2021-01-05', { | ||
sort: SortTypes.MostPulled | ||
}); | ||
|
||
// Fetch the wish list and order by price | ||
const wishList = await fetchWishList(user.id, CollectionTypes.Series, { | ||
sort: SortTypes.HighPrice | ||
}); | ||
|
||
// Do stuff with the data | ||
}) | ||
.catch(console.error); | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import ComicGeeks from '../dist/index.js'; | ||
|
||
export default ComicGeeks; | ||
|
||
export const { | ||
fetchCollection, | ||
fetchWishList, | ||
fetchReleases, | ||
fetchPulls, | ||
fetchSearchResults, | ||
fetchUser, | ||
FilterTypes, | ||
SortTypes, | ||
CollectionTypes, | ||
Publishers | ||
} = ComicGeeks; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
{ | ||
"name": "comicgeeks", | ||
"version": "1.1.0", | ||
"description": "A NodeJS module to get data from League of Comic Geeks", | ||
"main": "dist/index.js", | ||
"module": "esm/index.mjs", | ||
"typings": "typings/index.d.ts", | ||
"scripts": { | ||
"prepublishOnly": "npm run build", | ||
"build": "rimraf ./dist ./typings && tsc", | ||
"docs": "rimraf ./docs && typedoc" | ||
}, | ||
"files": [ | ||
"dist", | ||
"esm", | ||
"typings" | ||
], | ||
"keywords": [ | ||
"comic", | ||
"comicbook", | ||
"comic geeks", | ||
"comicgeeks", | ||
"leagueofcomicgeeks", | ||
"league of comic geeks" | ||
], | ||
"author": "maruf99", | ||
"repository": "https://github.com/maruf99/comicgeeks", | ||
"homepage": "https://github.com/maruf99/comicgeeks#readme", | ||
"license": "MIT", | ||
"devDependencies": { | ||
"@types/cheerio": "^0.22.23", | ||
"@types/node": "^14.14.25", | ||
"@types/node-fetch": "^2.5.8", | ||
"@typescript-eslint/eslint-plugin": "^4.14.2", | ||
"@typescript-eslint/parser": "^4.14.2", | ||
"eslint": "^7.19.0", | ||
"eslint-config-marine": "^8.1.0", | ||
"rimraf": "^3.0.2", | ||
"typedoc": "^0.20.22", | ||
"typescript": "^4.1.3" | ||
}, | ||
"dependencies": { | ||
"cheerio": "^1.0.0-rc.5", | ||
"node-fetch": "^2.6.1" | ||
} | ||
} |
Oops, something went wrong.