Code Monkey home page Code Monkey logo

comicinfo-parser's Introduction

ComicInfo Parser

A simple GUI for create ComicInfo.xml and .cbz archive at easy way.

About

ComicInfo.xml is a metadata for manga/comic. It is used in some self-hosted app, e.g. komga.

Feature Available

Preview generated ComicInfo

After select folder for generate ComicInfo.xml, a preview page will appear. User can change content before export real ComicInfo.xml.

Currently, this project supports fields:

  • Title, Number, Summary, Year/Month/Day, Web, GTIN
  • ALL Creator fields: Writer, Translator .etc
  • Tags with GUI to edit & view
  • Series, Volume, Count
  • AgeRating, Manga with Enum values supported
  • Genre, LanguageISO
  • SeriesGroup, AlternateSeries
  • AlternateNumber, AlternateCount
  • StoryArc, StoryArcNumber

Option to Export ComicInfo

After preview & press button to export, User can defined export folder, and export in following options:

  • .cbz with komga folder structure
  • .cbz file ONLY
  • ComicInfo.xml ONLY

Quick Export (Komga Only)

Ignore preview section and generate .cbz with komga folder structure directly.

Already contains a .cbz archive and ComicInfo.xml at {selected-folder}/{comic-title} location, while export location can NOT be changed.

User can directly copy exported folder to komga comic directory.

Screenshots

Select Folder Preview Page
Tag View Enum Support
Export

comicinfo-parser's People

Contributors

dark-person avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar

comicinfo-parser's Issues

Add package for handle `sqlite` database

Changed Scope

New package: database

Description

Package for handle local database, includes:

  • sqlite file creation
  • sql.DB connection management
  • Table & view creation
  • Migration for schema

As table needed is different for different module, it is not suggested to put those implementation in this package.

Related issue (Optional)

#54, #71

Notes

N/A

Unexpected result when author name contains `,` character

Describe the bug

When author name contains , character, e.g. [special(author1, author2)] , unexpected result appear as:

[special(author1, author2)

To Reproduce

Steps to reproduce the behavior:

  1. Enter author name as [special(author1, author2)]
  2. Generate .cbz folder and upload to komga

Expected behavior

Complete author name [special(author1, author2)], or any warning message.

Screenshots (If applicable)

N/A

OS Version (please complete the following information):

OS (With Version): Window 10

Notes

N/A

Unexpected result of 'Title' when parser the folder name with '.' character

Bug appear when parser folder name into ComicInfo, the title of comic is displayed the string before '.' character, but not the whole string instead.

The used directory is called [しまぱん (立花オミナ)] 異世界ハーレム物語 4.5 (Side Story).

Expected Result is [しまぱん (立花オミナ)] 異世界ハーレム物語 4.5 (Side Story), but output [しまぱん (立花オミナ)] 異世界ハーレム物語 4 instead.

Complete Entire JSX documentation

Currently, the JSX documentation is not completed, e.g.

  • The field inside props is not documented
  • Handler function is not well documented about their function
  • Code inside handler function is not well documented about the task they are doing

This issue MUST be solve before process to next version.

Here is a temp list for file to document:

  • exportPanel.tsx:
    • Component
  • folderSelect.tsx:
    • All State,
    • handleSelect,
    • handleQuickExport,
    • handleProcess,
    • handleCollapse,
    • CollapseCard props
    • HTML,
  • inputPanel.tsx
    • InputProps
    • MetadataProps
    • HTML
  • App.tsx
    • All Constant Value
    • App Component
    • All State
    • exportToCbz
    • HTML
  • formRow.tsx
    • All props of component
  • modal.tsx
    • All Props of Component

For Backend:

  • ComicPageInfo
  • GetSpecialTags()

For Project:

  • All Readme.md file, need to update to date to v2

Require ability to delete tag

Currently tag deletion is by human editing the tag text input, an GUI option should be provide to delete tags to prevent human error when editing large amount of tags.

Allow user to choose export directory with config

Export Page Proposal

Provide options in export page:

  1. Export inside selected folder
  2. Export to user-defined directory from config
  3. Export to custom directory

Current export function is act as option 3.

Implementation should use radio button to select choice.

Add support to load existing `comicinfo`

Related Problems

When user require to edit some part of existing comicinfo, current approach (with using this project) is:

  1. Open comic directory which have an existing comicinfo
  2. Re-enter everything
  3. Export

Sometime user may only need to change a typo of single field, but require to re-enter all data, which is user unfriendly.

Proposal for Solution

When image directory has existing comicinfo file, load the comicinfo data into input page, instead of load a empty comicinfo.

Update Package: wails

In 2023-12-22, the version of these package has been upgraded to:

Package Current Version Latest
wails 2.6.0 2.7.1 (New)

Consider to upgrade these go package & confirm no bugs occur.

Allow user to config special tags in filename

Special Tags is some tags that will added to tag field in comicInfo when filename contains corr. string.

This function should have these feature:

  1. Ability to use regex to config
  2. Add to tag automatically
  3. Allow user to defined these tag in GUI

Add recent used value as suggestion for `Genre` field

Related Problems

The value of Genre is commonly used with specified value, but require human input at every time.

Proposal for Solution

Allow user to use recently used value when input Genre, for example dropdown menu.

Notes

N/A

Config: Customize default export folder (Both Normal Export & Quick Export)

Support user to choose directory that output:

  • .cbz file
  • .cbz file that wrapped with folder

If user keep blank for this setting, then default setting will be used (export inside image directory). This will be handle by proposal in issue #63

Config Proposal

Provide a new config value:

  • comic_directory_standard: Apply to normal generate process
  • comic_directory_quick : Apply to Quick Export ONLY

Notes

Consider allow user to define multiple comic_directory_standard from config, while comic_directory_quick must be ONE only.

Ignore part of filename when matched with pattern/words

Add feature to ignore part of filename, e.g.

Input:

  • Filename: Hello World [abc][Archive][HD]
  • Ignore Words: [HD]

Output of comicInfo:

  • title : Hello World [abc][Archive][HD]

This feature should support user to choose regex pattern, or words.

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.