Skip to content

Commit

Permalink
1.0.0
Browse files Browse the repository at this point in the history
Many things has been updated, added and enhanced.
Cannot do a list of changes because they're too many
  • Loading branch information
Nytuo committed Aug 31, 2021
1 parent 8b61ada commit 6ae4998
Show file tree
Hide file tree
Showing 43 changed files with 7,535 additions and 893 deletions.
Binary file removed Images/NComics.ico
Binary file not shown.
Binary file removed Images/NComics.png
Binary file not shown.
Binary file removed Images/NComicsB.png
Binary file not shown.
Binary file removed Images/NComicsB2.png
Binary file not shown.
Binary file removed Images/NComicsS.png
Binary file not shown.
Binary file added Images/Nytuo website.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Nytuo_softwares.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/appx_assets/SampleAppx.150x150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/appx_assets/SampleAppx.310x150.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/appx_assets/SampleAppx.44x44.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/appx_assets/SampleAppx.50x50.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/fileDefault.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/folderDefault.jpg
Binary file not shown.
Binary file modified Images/folderDefault.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/orangeribbon.png
Binary file not shown.
Binary file removed Images/outline_favorite_black_24dp.png
Binary file not shown.
Binary file removed Images/redribbon.png
Binary file not shown.
Binary file removed Images/swsb_character_fact_comicbookguy_550x960.png
Binary file not shown.
Binary file removed Images/vertribbon.png
Binary file not shown.
110 changes: 108 additions & 2 deletions README.md
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.
Binary file modified UnRAR.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion Version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.22
1.0.0
21 changes: 21 additions & 0 deletions comicgeeks/LICENSE
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.
132 changes: 132 additions & 0 deletions comicgeeks/README.md
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);
```
16 changes: 16 additions & 0 deletions comicgeeks/esm/index.mjs
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;
46 changes: 46 additions & 0 deletions comicgeeks/package.json
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"
}
}
Loading

0 comments on commit 6ae4998

Please sign in to comment.