Merge pull request #1464 from axu2/profile-changes

Profile changes
This commit is contained in:
Alex Xu
2026-10-16 13:13:58 -07:00
committed by GitHub
4 changed files with 57 additions and 31 deletions
+5 -3
View File
@@ -222,7 +222,7 @@ sudo apt-get install python3 p7zip-full python3-pil python3-psutil python3-slugi
```
'K1': ("Kindle 1", (600, 670), Palette4, 1.0),
'K2': ("Kindle 2", (600, 670), Palette15, 1.0),
'K11': ("Kindle 11", (1072, 1448), Palette16, 1.0),
'K11': ("Kindle 11/2026", (1072, 1448), Palette16, 1.0),
'K34': ("Kindle Keyboard/Touch", (600, 800), Palette16, 1.0),
'K57': ("Kindle 5/7", (600, 800), Palette16, 1.0),
'K810': ("Kindle 8/10", (600, 800), Palette16, 1.0),
@@ -231,7 +231,7 @@ sudo apt-get install python3 p7zip-full python3-pil python3-psutil python3-slugi
'KV': ("Kindle Voyage", (1072, 1448), Palette16, 1.0),
'KPW34': ("Kindle Paperwhite 3/4", (1072, 1448), Palette16, 1.0),
'KPW5': ("Kindle Paperwhite 5/Signature Edition", (1236, 1648), Palette16, 1.0),
'KPW6': ("Kindle Paperwhite 6", (1272, 1696), Palette16, 1.0),
'KPW6': ("Kindle Paperwhite 6/2026", (1272, 1696), Palette16, 1.0),
'KO': ("Kindle Oasis 2/3", (1264, 1680), Palette16, 1.0),
'KCS': ("Kindle Colorsoft", (1272, 1696), Palette16, 1.0),
'KS1860': ("Kindle 1860", (1860, 1920), Palette16, 1.0),
@@ -273,7 +273,9 @@ MANDATORY:
MAIN:
-p PROFILE, --profile PROFILE
Device profile (Available options: K1, K2, K34, K578, KDX, KPW, KPW5, KV, KO, K11, KS, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O, KoAO, KoN, KoC, KoCC, KoL, KoLC, KoF, KoS, KoE)
Device profile (Available options: K1, K2, KDX, K34, K57, KPW, KV, KPW34, K810, KO, K11, KPW5, KPW6, KS1860, KS1920,
KS1240, KS1324, KS, KCS, KS3, KSCS, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O, KoAO, KoN, KoC, KoCC, KoL, KoLC, KoF, KoS, KoE,
Rmk1, Rmk2, RmkPP, RmkPPMove, OTHER, 1072x1448, 1264x1680, 1404x1872, 1536x2048, 1650x2200, 1860x2480, 2400x3200)
[Default=KV]
-m, --manga-style Manga style (right-to-left reading and splitting)
--lightnovel Only resize images and preserve original file structure.
+29 -25
View File
@@ -47,6 +47,7 @@ from PIL.Image import Dither
from .KCC_spread_label import LabelSpreadsDialog
from .shared import HTMLStripper, sanitizeTrace, walkLevel
from .image import ProfileData
from .comicarchive import SEVENZIP, TAR, available_archive_tools
from .comic2ebook import OS_SORT_KEY, KF7_KINDLES, flattenTree, getWorkFolder, removeNonImages, sanitizeTree, detectKindleGen
from . import __version__
@@ -1498,7 +1499,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
GUI.easyLabel.hide()
# default is Kindle Paperwhite 12th Gen
self.lastDevice = self.settings.value('lastDevice', 3, type=int)
self.lastDevice = self.settings.value('lastDevice', 4, type=int)
self.currentFormat = self.settings.value('currentFormat', 0, type=int)
self.startNumber = self.settings.value('startNumber', 0, type=int)
@@ -1587,13 +1588,13 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
"Kindle Scribe Colorsoft": {
'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': False, 'ForceColor': True, 'Label': 'KSCS',
},
"Kindle 11": {
"Kindle 11/2026": {
'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'K11',
},
"Kindle Paperwhite 11": {
'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'KPW5',
},
"Kindle Paperwhite 12": {
"Kindle Paperwhite 12/2026": {
'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'KPW6',
},
"Kindle Colorsoft": {
@@ -1649,26 +1650,28 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
'Label': 'KoS'},
"Kobo Elipsa": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 1, 'DefaultUpscale': True, 'ForceColor': False,
'Label': 'KoE'},
"reMarkable 1": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': False,
"reMarkable 1/2/Pure": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': False,
'Label': 'Rmk1'},
"reMarkable 2": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': False,
'Label': 'Rmk2'},
"reMarkable Paper Pro": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': True,
"reMarkable Paper Pro": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': True,
'Label': 'RmkPP'},
"reMarkable Paper Pro Move": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': True,
"reMarkable Paper Pro Move": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': True,
'Label': 'RmkPPMove'},
"Other": {'PVOptions': False, 'ForceExpert': True, 'DefaultFormat': 1, 'DefaultUpscale': False, 'ForceColor': False,
"Other": {'PVOptions': False, 'ForceExpert': True, 'DefaultFormat': 2, 'DefaultUpscale': False, 'ForceColor': False,
'Label': 'OTHER'},
}
for s in ProfileData.FIXED_RES_STRINGS:
self.profiles[s] = {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 2, 'DefaultUpscale': False, 'ForceColor': False,
'Label': s}
profilesGUI = [
"Kindle Scribe Colorsoft",
"Kindle Scribe 3",
"Kindle Colorsoft",
"Kindle Paperwhite 12",
"Kindle Scribe 1/2",
"Kindle Colorsoft",
"Kindle Paperwhite 12/2026",
"Kindle Paperwhite 11",
"Kindle 11",
"Kindle Oasis 9/10",
"Kindle 11/2026",
"Separator",
"Kobo Clara 2E/BW",
"Kobo Clara Colour",
@@ -1676,30 +1679,30 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
"Kobo Libra 2",
"Kobo Libra Colour",
"Kobo Elipsa",
"Kobo Nia",
"Separator",
"reMarkable 1",
"reMarkable 2",
"reMarkable Paper Pro",
"reMarkable Paper Pro Move",
"reMarkable Paper Pro",
"reMarkable 1/2/Pure",
"Separator",
"Other",
*ProfileData.FIXED_RES_STRINGS,
"Separator",
"Kindle 1324x1986",
"Kindle 1920x1920",
"Kindle 1860x1920",
"Kindle 1240x1860",
"Kindle 8/10",
"Kindle Oasis 8",
"Kindle Paperwhite 7/10",
"Kindle Voyage",
"Kindle Paperwhite 5/6",
"Kindle Oasis 9/10",
"Kindle Oasis 8",
"Kindle Voyage",
"Kindle 8/10",
"Kindle 4/5/7",
"Kindle Touch",
"Kindle Keyboard",
"Kindle DX",
"Kindle 2",
"Kindle 1",
"Kindle 1324x1986",
"Kindle 1920x1920",
"Kindle 1860x1920",
"Kindle 1240x1860",
"Separator",
"Kobo Aura",
"Kobo Aura ONE",
@@ -1711,6 +1714,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
"Kobo Glo",
"Kobo Libra H2O",
"Kobo Mini/Touch",
"Kobo Nia",
]
# 这些多为约定俗成的缩写,翻译时可保留原文
@@ -1798,7 +1802,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow):
self.modeChange(1)
for profile in profilesGUI:
if profile == "Other":
if profile == "Other" or profile in ProfileData.FIXED_RES_STRINGS:
GUI.deviceBox.addItem(self.icons.deviceOther, profile)
elif profile == "Separator":
GUI.deviceBox.insertSeparator(GUI.deviceBox.count() + 1)
+1 -1
View File
@@ -1698,7 +1698,7 @@ def checkOptions(options):
options.white_borders = True
options.bordersColor = 'white'
# Disable all Kindle features for other e-readers
if options.profile == 'OTHER':
if options.profile == 'OTHER' or options.profile in image.ProfileData.FIXED_RES_STRINGS:
options.panelview = False
options.hq = False
if 'Ko' in options.profile:
+22 -2
View File
@@ -98,9 +98,9 @@ class ProfileData:
'KPW34': ("Kindle Paperwhite 3/4/Oasis", (1072, 1448), Palette16, 1.0),
'K810': ("Kindle 8/10", (600, 800), Palette16, 1.0),
'KO': ("Kindle Oasis 2/3", (1264, 1680), Palette16, 1.0),
'K11': ("Kindle 11", (1072, 1448), Palette16, 1.0),
'K11': ("Kindle 11/2026", (1072, 1448), Palette16, 1.0),
'KPW5': ("Kindle Paperwhite 5/Signature Edition", (1236, 1648), Palette16, 1.0),
'KPW6': ("Kindle Paperwhite 6", (1272, 1696), Palette16, 1.0),
'KPW6': ("Kindle Paperwhite 6/2026", (1272, 1696), Palette16, 1.0),
'KS1860': ("Kindle 1860", (1860, 1920), Palette16, 1.0),
'KS1920': ("Kindle 1920", (1920, 1920), Palette16, 1.0),
'KS1240': ("Kindle 1240", (1240, 1860), Palette16, 1.0),
@@ -141,11 +141,31 @@ class ProfileData:
'RmkPPMove': ("reMarkable Paper Pro Move", (954, 1696), Palette16, 1.0),
}
FIXED_RESOLUTIONS = [
(1072, 1448),
(1264, 1680),
(1404, 1872),
(1536, 2048),
(1650, 2200),
(1860, 2480),
(2400, 3200),
]
FIXED_RESOLUTIONS.reverse()
FIXED_RES_STRINGS = [f'{w}x{h}' for w, h in FIXED_RESOLUTIONS]
ProfilesFixed = {}
for res, s in zip(FIXED_RESOLUTIONS, FIXED_RES_STRINGS):
w, h = res
ProfilesFixed[s] = (s, res, Palette16, 1.0)
Profiles = {
**ProfilesKindle,
**ProfilesKobo,
**ProfilesRemarkable,
'OTHER': ("Other", (0, 0), Palette16, 1.0),
**ProfilesFixed
}