Skip to content

Commit

Permalink
New: Tracking at the end of the chapter/volume setting option
Browse files Browse the repository at this point in the history
  • Loading branch information
ollm committed Oct 6, 2023
1 parent d4e584e commit 39f1954
Show file tree
Hide file tree
Showing 20 changed files with 84 additions and 44 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Master folder support from settings [`9edd70e`](https://github.com/ollm/OpenComic/commit/9edd70ec871855cf2b43fa5cebea4bdf83baae7f)
- Ignore single folders in browsing [`7507563`](https://github.com/ollm/OpenComic/commit/75075631fcad5fb269427c178e9bac86bc352971)
- Search and filter in library/browsing [`8393903`](https://github.com/ollm/OpenComic/commit/8393903117981bea2b8a79e2e50b77d02334aa05)
- Tracking at the end of the chapter/volume setting option

##### 🐛 Bug Fixes

Expand Down
3 changes: 2 additions & 1 deletion languages/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "Preferències de lectura",
"maxMargin": "Marge horitzontal i vertical màxim",
"globalZoom": "Aplica un zoom global en comptes d'imatge a imatge (Només en lectura vertical)"
"globalZoom": "Aplica un zoom global en comptes d'imatge a imatge (Només en lectura vertical)",
"trackingAtTheEnd": "Seguiment al final del capítol/tom"
},
"navigation": {
"main": "Navegación",
Expand Down
3 changes: 2 additions & 1 deletion languages/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
6 changes: 4 additions & 2 deletions languages/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "Reading preferences",
"maxMargin": "Maximum horizontal and vertical margin",
"globalZoom": "Applies a global zoom instead of image by image (Only in vertical reading)"
"globalZoom": "Applies a global zoom instead of image by image (Only in vertical reading)",
"trackingAtTheEnd": "Tracking at the end of the chapter/volume"
},
"navigation": {
"main": "Navigation",
Expand Down Expand Up @@ -174,7 +175,8 @@
"main": "Master folders",
"folder": "Folder",
"noFolders": "No folders"
}
},
"tracking": {}
},
"menu": {
"file": {
Expand Down
3 changes: 2 additions & 1 deletion languages/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "Preferencias de lectura",
"maxMargin": "Margen horizontal y vertical máximo",
"globalZoom": "Aplica un zoom global en vez de imagen a imagen (Solo en lectura vertical)"
"globalZoom": "Aplica un zoom global en vez de imagen a imagen (Solo en lectura vertical)",
"trackingAtTheEnd": "Seguimiento al final del capítulo/tomo"
},
"navigation": {
"main": "Navegación",
Expand Down
3 changes: 2 additions & 1 deletion languages/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/pt-br.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/zh-hans.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
3 changes: 2 additions & 1 deletion languages/zh-hant.json
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,8 @@
"reading": {
"main": "",
"maxMargin": "",
"globalZoom": ""
"globalZoom": "",
"trackingAtTheEnd": ""
},
"navigation": {
"main": "",
Expand Down
16 changes: 13 additions & 3 deletions scripts/reading.js
Original file line number Diff line number Diff line change
Expand Up @@ -688,6 +688,12 @@ function changeHeaderButtons(scrollInStart = null, scrollInEnd = null)
lastPage.innerHTML = nextIsNextComic ? 'skip_next' : 'last_page';
lastPage.setAttribute('hover-text', nextIsNextComic ? language.reading.nextChapter : language.reading.lastPage);

if(config.readingTrackingAtTheEnd && !trackingCurrent && ((_config.readingManga && prevIsPrevComic) || (!_config.readingManga && nextIsNextComic)))
{
trackingCurrent = true;
tracking.track();
}

prevChangeHeaderButtons = currentChangeHeaderButtons;
changeHeaderButtonsDelayed = false;
}
Expand Down Expand Up @@ -3014,12 +3020,12 @@ function eachImagesDistribution(index, contains, callback, first = false, notFou
}
}

var touchTimeout, mouseOut = {lens: false, body: false}, touchStart = false, magnifyingGlassOffset = false, readingCurrentPath = false, readingCurrentBookmarks = undefined, zoomMoveData = {}, magnifyingGlassScroll = {scrollTop: false, time: 0}, readingDragScroll = false, gamepadScroll = false, readingIsCanvas = false, readingFile = false, gamepadAxesNow = 0, scrollInStart = false, scrollInEnd = false;
var touchTimeout, mouseOut = {lens: false, body: false}, touchStart = false, magnifyingGlassOffset = false, readingCurrentPath = false, readingCurrentBookmarks = undefined, zoomMoveData = {}, magnifyingGlassScroll = {scrollTop: false, time: 0}, readingDragScroll = false, gamepadScroll = false, readingIsCanvas = false, readingFile = false, gamepadAxesNow = 0, scrollInStart = false, scrollInEnd = false, trackingCurrent = false;

//It starts with the reading of a comic, events, argar images, counting images ...
async function read(path, index = 1, end = false, isCanvas = false)
{
images = {}, imagesData = {}, imagesDataClip = {}, imagesPath = {}, imagesNum = 0, contentNum = 0, imagesNumLoad = 0, currentIndex = index, foldersPosition = {}, currentScale = 1, currentZoomIndex = false, previousScrollTop = 0, scalePrevData = {tranX: 0, tranX2: 0, tranY: 0, tranY2: 0, scale: 1, scrollTop: 0}, originalRect = false, scrollInStart = false, scrollInEnd = false, prevChangeHeaderButtons = {};
images = {}, imagesData = {}, imagesDataClip = {}, imagesPath = {}, imagesNum = 0, contentNum = 0, imagesNumLoad = 0, currentIndex = index, foldersPosition = {}, currentScale = 1, currentZoomIndex = false, previousScrollTop = 0, scalePrevData = {tranX: 0, tranX2: 0, tranY: 0, tranY2: 0, scale: 1, scrollTop: 0}, originalRect = false, scrollInStart = false, scrollInEnd = false, prevChangeHeaderButtons = {}, trackingCurrent = false;

loadReadingConfig(currentReadingConfigKey);

Expand Down Expand Up @@ -3737,7 +3743,11 @@ async function read(path, index = 1, end = false, isCanvas = false)

template.contentRight().children('div').css({scrollbarGutter: readingViewIs('scroll') ? '' : 'initial'});

tracking.track();
if(!config.readingTrackingAtTheEnd)
{
trackingCurrent = true;
tracking.track();
}

filters.apply();

Expand Down
6 changes: 6 additions & 0 deletions scripts/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,11 @@ function setGlobalZoom(value)
storage.updateVar('config', 'readingGlobalZoom', value);
}

function setTrackingAtTheEnd(value)
{
storage.updateVar('config', 'readingTrackingAtTheEnd', value);
}

function setIgnoreSingleFoldersLibrary(value)
{
storage.updateVar('config', 'ignoreSingleFoldersLibrary', value);
Expand Down Expand Up @@ -276,6 +281,7 @@ module.exports = {
start: start,
setMaxMargin: setMaxMargin,
setGlobalZoom: setGlobalZoom,
setTrackingAtTheEnd: setTrackingAtTheEnd,
setIgnoreSingleFoldersLibrary: setIgnoreSingleFoldersLibrary,
setShowFullPathLibrary: setShowFullPathLibrary,
setShowFullPathOpened: setShowFullPathOpened,
Expand Down
5 changes: 3 additions & 2 deletions scripts/storage.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var changes = 51; // Update this if readingPagesConfig is updated
var changes = 52; // Update this if readingPagesConfig is updated

var readingPagesConfig = {
readingConfigName: '',
Expand Down Expand Up @@ -80,6 +80,7 @@ var storageDefault = {
readingHideBarHeaderFullScreen: true,
readingMaxMargin: 400,
readingGlobalZoom: true,
readingTrackingAtTheEnd: true,
controllerDeadZone: 0.06,
startInFullScreen: false,
startOnStartup: false,
Expand Down Expand Up @@ -338,7 +339,7 @@ function updateStorageMD(data, defaultObj)
{
newData = updateStorageArrayMD(data, defaultObj);
}
else if(defaultObj !== 'object')
else if(typeof defaultObj !== 'object')
{
newData = data;
}
Expand Down
45 changes: 22 additions & 23 deletions scripts/tracking.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ var tracked = {}, trackST = [], trackIndex = 0;

async function track(chapter = false, volume = false, onlySite = false)
{
var fromDialog = false;
let fromDialog = false;

if(chapter !== false || volume !== false)
{
Expand All @@ -41,9 +41,9 @@ async function track(chapter = false, volume = false, onlySite = false)
volume = getVolume();
}

var _trackingSites = trackingSites.list(true);
let _trackingSites = trackingSites.list(true);

var haveToTracking = false;
let haveToTracking = false;

for(let key in _trackingSites)
{
Expand All @@ -62,21 +62,22 @@ async function track(chapter = false, volume = false, onlySite = false)
if(!fromDialog)
$('.bar-right-buttons .button-tracking-sites').html('sync').removeClass('tracking-problem');

var allTracked = true;
let indexMainPathA = dom.indexMainPathA();
let readingCurrentPath = reading.readingCurrentPath();

let allTracked = true;

for(let key in _trackingSites)
{
var site = _trackingSites[key];
let site = _trackingSites[key];

var prevTracked = false;
let prevTracked = false;

if(tracked[dom.indexMainPathA()] && tracked[dom.indexMainPathA()][site.key])
if(tracked[indexMainPathA] && tracked[indexMainPathA][site.key])
{
var readingCurrentPath = reading.readingCurrentPath();

for(let key2 in tracked[dom.indexMainPathA()][site.key])
for(let key2 in tracked[indexMainPathA][site.key])
{
if(readingCurrentPath == tracked[dom.indexMainPathA()][site.key][key2])
if(readingCurrentPath == tracked[indexMainPathA][site.key][key2])
{
prevTracked = true;

Expand All @@ -92,7 +93,7 @@ async function track(chapter = false, volume = false, onlySite = false)
let chapters = '??';
let volumes = '??';

let tracking = storage.getKey('tracking', dom.indexMainPathA());
let tracking = storage.getKey('tracking', indexMainPathA);

for(let site in tracking)
{
Expand All @@ -110,7 +111,7 @@ async function track(chapter = false, volume = false, onlySite = false)
{
console.log('Get chapters and volumes number');

let path = dom.indexMainPathA();
let path = indexMainPathA;

sitesScripts[site].getComicData(data.id, function(data){

Expand All @@ -129,17 +130,15 @@ async function track(chapter = false, volume = false, onlySite = false)

for(let key in _trackingSites)
{
var site = _trackingSites[key];
let site = _trackingSites[key];

var prevTracked = false;
let prevTracked = false;

if(tracked[dom.indexMainPathA()] && tracked[dom.indexMainPathA()][site.key])
if(tracked[indexMainPathA] && tracked[indexMainPathA][site.key])
{
var readingCurrentPath = reading.readingCurrentPath();

for(let key2 in tracked[dom.indexMainPathA()][site.key])
for(let key2 in tracked[indexMainPathA][site.key])
{
if(readingCurrentPath == tracked[dom.indexMainPathA()][site.key][key2])
if(readingCurrentPath == tracked[indexMainPathA][site.key][key2])
{
prevTracked = true;

Expand All @@ -150,9 +149,9 @@ async function track(chapter = false, volume = false, onlySite = false)

if(site.config.session.valid && ((vars.onlySite && vars.onlySite == site.key) || (site.tracking.active && !prevTracked && !vars.onlySite)))
{
if(!tracked[dom.indexMainPathA()]) tracked[dom.indexMainPathA()] = {};
if(!tracked[dom.indexMainPathA()][site.key]) tracked[dom.indexMainPathA()][site.key] = [];
tracked[dom.indexMainPathA()][site.key].push(reading.readingCurrentPath());
if(!tracked[indexMainPathA]) tracked[indexMainPathA] = {};
if(!tracked[indexMainPathA][site.key]) tracked[indexMainPathA][site.key] = [];
tracked[indexMainPathA][site.key].push(readingCurrentPath);

loadSiteScript(site.key);

Expand Down
10 changes: 9 additions & 1 deletion templates/settings.content.right.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,15 @@ <h2 class="headline-small">{{language.settings.reading.main}}</h2>
</div>
</div>

<div class="simple-slider gamepad-item" data-gamepad-left="events.rangeMoveStep(this, -1)" data-gamepad-right="events.rangeMoveStep(this, 1)">
<div class="menu-simple-text gamepad-item">
{{language.settings.reading.trackingAtTheEnd}}
<div class="switch{{#if config.readingTrackingAtTheEnd}} a{{/if}}" on="settings.setTrackingAtTheEnd(true)" off="settings.setTrackingAtTheEnd(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>

<div class="simple-slider gamepad-item" data-gamepad-left="events.rangeMoveStep(this, -1)" data-gamepad-right="events.rangeMoveStep(this, 1)" style="margin-top: 10px;">
<div class="simple-slider-text">{{language.settings.reading.maxMargin}}<div><span>{{config.readingMaxMargin}}</span>px</div></div>
<div class="range">
<div class="range-position">
Expand Down

0 comments on commit 39f1954

Please sign in to comment.