Skip to content

Commit

Permalink
New: Option to use the first image in the folder/file as a poster
Browse files Browse the repository at this point in the history
  • Loading branch information
ollm committed Nov 20, 2023
1 parent 40ae6d1 commit a5cf998
Show file tree
Hide file tree
Showing 22 changed files with 114 additions and 12 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
##### 🚀 New Features

- Preliminary support for the `EPUB` format (Alpha) [`24b6494`](https://github.com/ollm/OpenComic/commit/24b6494c00f35dcb5fcea4f2e4cb713a8a130cd9)
- Option to use the first image in the folder/file as a poster

##### 🐛 Bug Fixes

- Remove button in library not showing [`24ba9ba`](https://github.com/ollm/OpenComic/commit/24ba9ba787130c8f92b098cfefefdb7d37d18549)
- Window buttons not showing in About OpenComic (macOS only)
- Window buttons not showing in About OpenComic (macOS only) [`40ae6d1`](https://github.com/ollm/OpenComic/commit/40ae6d1caa80bb404d4986af1d0853e2bbec5eed)

## [v1.0.0-beta.4](https://github.com/ollm/OpenComic/releases/tag/v1.0.0-beta.4) (17-10-2023)

Expand Down
3 changes: 3 additions & 0 deletions languages/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "Navegación",
"folders": "Navegació (Carpetes)",
"files": "Navegació (Fitxers)",
"ignoreSingleFoldersLibrary": "Ignorar carpetes individuals (S'obren automàticament)",
"whenOpenFolderContinueReading": "Obrir directament en continuar llegint en lloc de la llista de fitxers",
"useTheFirstImageAsPoster": "Utilitzar la primera imatge com a pòster (Només si no n'hi ha cap actualment)",
"showFullPathLibrary": "Mostrar la ruta completa a l'obrir els còmics de la biblioteca",
"showFullPathOpened": "Mostrar la ruta completa a l'obrir un arxiu o carpeta"
},
Expand Down
3 changes: 3 additions & 0 deletions languages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "Navigation",
"folders": "Navigation (Folders)",
"files": "Navigation (Files)",
"ignoreSingleFoldersLibrary": "Ignore single folders (Open automatically)",
"whenOpenFolderContinueReading": "Open directly in continue reading instead of the file list",
"useTheFirstImageAsPoster": "Use the first image as a poster (Only if there is none currently)",
"showFullPathLibrary": "Show full path when opening library comics",
"showFullPathOpened": "Show full path when opening a file or folder"
},
Expand Down
3 changes: 3 additions & 0 deletions languages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "Navegación",
"folders": "Navegación (Carpetas)",
"files": "Navegación (Archivos)",
"ignoreSingleFoldersLibrary": "Ignorar carpetas individuales (Se abren automáticamente)",
"whenOpenFolderContinueReading": "Abrir directamente en continuar leyendo en lugar de la lista de archivos",
"useTheFirstImageAsPoster": "Utilizar la primera imagen como póster (Solo si no hay ninguno actualmente)",
"showFullPathLibrary": "Mostrar la ruta completa al abrir los comics de la biblioteca",
"showFullPathOpened": "Mostrar la ruta completa al abrir un archivo o carpeta"
},
Expand Down
3 changes: 3 additions & 0 deletions languages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/th.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "การนำทาง",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "ละเว้นโฟลเดอร์เดี่ยว (เปิดอัตโนมัติ)",
"whenOpenFolderContinueReading": "เปิดไปอ่านต่อโดยตรงแทนที่จะเป็นรายการไฟล์",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "แสดงที่ตั้งแบบเต็มเมื่อเปิดห้องสมุดคอมมิกส์",
"showFullPathOpened": "แสดงที่ตั้งแบบเต็มเมื่อเปิดไฟล์หรือโฟลเดอร์"
},
Expand Down
3 changes: 3 additions & 0 deletions languages/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
3 changes: 3 additions & 0 deletions languages/zh-hans.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "导航",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "忽略单个文件夹(自动打开)",
"whenOpenFolderContinueReading": "直接在继续阅读中打开而不是文件列表",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "打开库时显示漫画完整路径",
"showFullPathOpened": "打开文件或文件夹时显示完整路径"
},
Expand Down
3 changes: 3 additions & 0 deletions languages/zh-hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,11 @@
},
"navigation": {
"main": "",
"folders": "",
"files": "",
"ignoreSingleFoldersLibrary": "",
"whenOpenFolderContinueReading": "",
"useTheFirstImageAsPoster": "",
"showFullPathLibrary": "",
"showFullPathOpened": ""
},
Expand Down
8 changes: 4 additions & 4 deletions scripts/dom.js
Original file line number Diff line number Diff line change
Expand Up @@ -1278,15 +1278,15 @@ async function comicContextMenu(path, fromIndex = true, folder = false, gamepad
let images = await file.images(2, false, true);
file.destroy();

poster = !Array.isArray(images) ? images.path : false;
let poster = !Array.isArray(images) ? images : false;

addPoster.setAttribute('onclick', 'dom.addPoster('+(fromIndex ? 'true' : 'false')+', \''+escapeQuotes(escapeBackSlash(path), 'simples')+'\', '+(poster ? '\''+escapeQuotes(escapeBackSlash(poster), 'simples')+'\'' : 'false')+');');
addPoster.setAttribute('onclick', 'dom.addPoster('+(fromIndex ? 'true' : 'false')+', \''+escapeQuotes(escapeBackSlash(path), 'simples')+'\', '+(poster ? '\''+escapeQuotes(escapeBackSlash(poster.path), 'simples')+'\'' : 'false')+');');
addPoster.querySelector('span').innerHTML = poster ? language.global.contextMenu.changePoster : language.global.contextMenu.addPoster;

if(poster)
if(poster && !poster.fromFirstImageAsPoster)
{
deletePoster.style.display = 'block';
deletePoster.setAttribute('onclick', 'dom.deletePoster(\''+escapeQuotes(escapeBackSlash(poster), 'simples')+'\');');
deletePoster.setAttribute('onclick', 'dom.deletePoster(\''+escapeQuotes(escapeBackSlash(poster.path), 'simples')+'\');');
}
else
{
Expand Down
32 changes: 31 additions & 1 deletion scripts/file-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,8 @@ var file = function(path) {
let regex = new RegExp('^(?:[\-\s0-9+])?(?:'+pregQuote(name)+(inside ? '|cover|default|folder|series|poster' : '')+')(?:[\-\s0-9+])?\.[a-z0-9]+$');
let poster = false;

for(let i = 0, len = files.length; i < len; i++)
let len = files.length
for(let i = 0; i < len; i++)
{
let file = files[i];

Expand All @@ -403,6 +404,35 @@ var file = function(path) {
}
}

if(!poster && inside && len && (config.useTheFirstImageAsPosterInFolders || config.useTheFirstImageAsPosterInFiles))
{
let _containsCompressed = containsCompressed(path);

if((!_containsCompressed && config.useTheFirstImageAsPosterInFolders) || (_containsCompressed && config.useTheFirstImageAsPosterInFiles))
{
for(let i = 0; i < len; i++)
{
let file = files[i];

if(!file.folder && !file.compressed)
{
if(inArray(mime.getType(file.path), compatibleMime))
{
file.sha = sha1(file.path);
file.fromFirstImageAsPoster = sha1(file.path);
poster = file;

break;
}
}
else
{
break;
}
}
}
}

return poster;
}

Expand Down
6 changes: 5 additions & 1 deletion scripts/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -324,7 +324,6 @@ function setIgnoreSingleFoldersLibrary(value)
function setWhenOpenFolderContinueReading(value)
{
storage.updateVar('config', 'whenOpenFolderContinueReading', value);

}

function setShowFullPathLibrary(value)
Expand Down Expand Up @@ -372,9 +371,14 @@ function setCheckPreReleases(value)
storage.updateVar('config', 'checkPreReleases', value);
}

function set(key, value)
{
storage.updateVar('config', key, value);
}

module.exports = {
start: start,
set: set,
setMaxMargin: setMaxMargin,
setGlobalZoom: setGlobalZoom,
setMoveZoomWithMouse: setMoveZoomWithMouse,
Expand Down
4 changes: 3 additions & 1 deletion scripts/storage.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var changes = 59; // Update this if readingPagesConfig is updated
var changes = 60; // Update this if readingPagesConfig is updated

var readingPagesConfig = {
readingConfigName: '',
Expand Down Expand Up @@ -113,6 +113,8 @@ var storageDefault = {
startOnStartup: false,
ignoreSingleFoldersLibrary: true,
whenOpenFolderContinueReading: false,
useTheFirstImageAsPosterInFolders: false,
useTheFirstImageAsPosterInFiles: true,
renderMaxWidth: 12000,
checkReleases: true,
checkPreReleases: true,
Expand Down
20 changes: 20 additions & 0 deletions templates/settings.content.right.html
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,26 @@ <h2 class="headline-small">{{language.settings.navigation.main}}</h2>
</div>
</div>

<h2 class="headline-small">{{language.settings.navigation.folders}}</h2>

<div class="menu-simple-text gamepad-item">
<span>{{language.settings.navigation.useTheFirstImageAsPoster}}</span>
<div class="switch{{#if config.useTheFirstImageAsPosterInFolders}} a{{/if}}" on="settings.set('useTheFirstImageAsPosterInFolders', true)" off="settings.set('useTheFirstImageAsPosterInFolders', false)">
<div></div>
<svg viewBox="0 0 52 32"><path d="M 8,0 C 3.58,0 0,3.58 0,8 0,12.42 3.58,16 8,16 8,16 8,16 8,16 12.42,16 16,12.42 16,8 16,3.58 12.42,0 8,0 8,0 8,0 8,0 Z"></path></svg>
</div>
</div>

<h2 class="headline-small">{{language.settings.navigation.files}}</h2>

<div class="menu-simple-text gamepad-item">
<span>{{language.settings.navigation.useTheFirstImageAsPoster}}</span>
<div class="switch{{#if config.useTheFirstImageAsPosterInFiles}} a{{/if}}" on="settings.set('useTheFirstImageAsPosterInFiles', true)" off="settings.set('useTheFirstImageAsPosterInFiles', false)">
<div></div>
<svg viewBox="0 0 52 32"><path d="M 8,0 C 3.58,0 0,3.58 0,8 0,12.42 3.58,16 8,16 8,16 8,16 8,16 12.42,16 16,12.42 16,8 16,3.58 12.42,0 8,0 8,0 8,0 8,0 Z"></path></svg>
</div>
</div>

<h2 class="headline-small">{{language.settings.startupBehavior.main}}</h2>

<div class="menu-simple-text gamepad-item">
Expand Down
8 changes: 4 additions & 4 deletions themes/material-design/theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -1534,11 +1534,11 @@ cb

.content-view-module .folder-poster
{
height: calc(100% - 8px);
width: calc(100% - 8px);
height: calc(100% - 4px);
width: calc(100% - 4px);
position: absolute;
top: 4px;
left: 4px;
top: 2px;
left: 2px;
border-radius: 10px;
}

Expand Down

0 comments on commit a5cf998

Please sign in to comment.