![]() |
#226 |
Junior Member
![]() Posts: 2
Karma: 10
Join Date: Dec 2023
Device: Kobo Sage
|
|
![]() |
![]() |
![]() |
#227 | |
Resident Curmudgeon
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 79,654
Karma: 145864619
Join Date: Nov 2006
Location: Roslindale, Massachusetts
Device: Kobo Libra 2, Kobo Aura H2O, PRS-650, PRS-T1, nook STR, PW3
|
Quote:
So either way a manual intervention is required. But the calibre way works better (IMHO). |
|
![]() |
![]() |
Advert | |
|
![]() |
#228 |
Junior Member
![]() Posts: 1
Karma: 10
Join Date: Jan 2024
Device: Kobo Libra 2
|
Can't uninstall it or do anything
i've tried anything since this morning. i installed it and the little logo appear when I plug the Kobo Libra 2 into my PC but it does absolutely nothing. i smashed my screen an infinite amount of time since it said that you have to tap the screen but it does nothing. i tried the path path=/mnt/onboard/ZOthers/:/mnt/onboard/.add/kobocloud/Library/
because i made a folder named ZOther in the devices and i also wanted to do it on my cloud storage folder, i also tried to just do it with path=/mnt/onboard/ZOthers/ to see if it was because my config files wasn't good but it didn't do anything. and i tried to uninstall it countless of time, even trying to remove all the files related to it from the ereader (before i noticed that i couldn't access these files). i even tried to launch it with Nickel menu by using the command menu_item :main :AutoShelf :cmd_spawn :/usr/local/AutoShelf/autoshelf.sh but whatever i do, it dosen't seems to do anything appart from displaying a logo when i connect it to my PC I'm in despair, i beg you to help me please ![]() |
![]() |
![]() |
![]() |
#229 |
Member
![]() Posts: 14
Karma: 10
Join Date: Aug 2015
Device: kobo aura hd, aura h20, elipsa 2e
|
Sorry for the late reply. I finally got motivated this weekend to fix it. The problem seems to have been the following line:
PRAGMA journal_mode = MEMORY; which was causing the 'locked database' error. You'll see in my script, I have just commented out that line of SQL. Here is my nickelmenu entry: Code:
menu_item :main :Autoshelf :cmd_output :9999:quiet :/usr/local/AutoShelf/autoshelf-now.sh Code:
#!/bin/sh export LD_LIBRARY_PATH="/usr/local/AutoShelf:$LD_LIBRARY_PATH" PATH="/usr/local/AutoShelf:$PATH" BASE="/mnt/onboard/.adds/autoshelf" CONFIGFILE="$BASE/autoshelf.cfg" # # configuration # config() { local value value=$(grep -m 1 "^$1=" "$CONFIGFILE") value="${value:$((1+${#1}))}" [ "$value" != "" ] && echo "$value" || echo "$2" } # database escapes escape() { echo -n "${1//"'"/"''"}" } like() { escape "$1" | sed -e 's@[%_]@\\\0@g' } udev_workarounds() { # udev kills slow scripts if [ "$SETSID" != "1" ] then SETSID=1 setsid "$0" "$@" & exit fi } suspend_nickel() { mkdir /tmp/suspend-nickel && ( pkill -SIGSTOP sickel # 3.16.10 watchdog pkill -SIGSTOP nickel ) mkdir /tmp/suspend-nickel/"$1" || exit } resume_nickel() { rmdir /tmp/suspend-nickel/"$1" rmdir /tmp/suspend-nickel && ( pkill -SIGCONT nickel pkill -SIGKILL sickel # 3.16.10 watchdog ) } autoshelf() { # variables from configuration file, if present cfg_path=$(config path '/mnt/onboard:/mnt/sd') cfg_skip=$(config skip '/mnt/onboard/.kobo') cfg_consume=$(config consume '1') cfg_series=$(config series '1') cfg_series_regexp=$(config series_regexp '#([^/]+)/([0-9.]+)#:\1:\2:#') cfg_exclusive=$(config exclusive '0') cfg_unique_book=$(config unique_book '1') cfg_uninstall=$(config uninstall '0') today="strftime('%Y-%m-%dT%H:%M:%f')" echo " -- -- path = '$cfg_path' -- skip = '$cfg_skip' -- consume = '$cfg_consume' -- series = '$cfg_series' -- series_regexp = '$cfg_series_regexp' -- exclusive = '$cfg_exclusive' -- unique_book = '$cfg_unique_book' -- uninstall = '$cfg_uninstall' -- logfile = '$cfg_logfile' -- " echo " PRAGMA synchronous = OFF; -- PRAGMA journal_mode = MEMORY; BEGIN TRANSACTION; CREATE TABLE AutoShelf AS SELECT * FROM Shelf WHERE 0; CREATE TABLE AutoShelfContent AS SELECT * FROM ShelfContent WHERE 0; CREATE UNIQUE INDEX autoshelf_id ON AutoShelf(Id); CREATE UNIQUE INDEX autoshelfcontent_key ON AutoShelfContent(ShelfName, ContentId); CREATE UNIQUE INDEX autoshelf_name ON AutoShelf(InternalName); " if [ "$cfg_unique_book" == "1" ] then echo " CREATE UNIQUE INDEX autoshelfcontent_id ON AutoShelfContent(ContentId); " fi echo " REPLACE INTO AutoShelf SELECT * FROM Shelf WHERE _IsDeleted!='true'; REPLACE INTO AutoShelfContent SELECT * FROM ShelfContent WHERE _IsDeleted!='true'; DELETE FROM ShelfContent WHERE _IsSynced!='true'; UPDATE Shelf SET LastModified=$today, _IsDeleted='true'; UPDATE ShelfContent SET DateModified=$today, _IsDeleted='true'; " if [ "$cfg_exclusive" == "1" ] then echo " UPDATE AutoShelf SET LastModified=$today, _IsDeleted='true'; UPDATE AutoShelfContent SET DateModified=$today, _IsDeleted='true'; " else echo " UPDATE AutoShelf SET LastModified=$today, _IsDeleted='true' WHERE InternalName LIKE '%/'; UPDATE AutoShelfContent SET DateModified=$today, _IsDeleted='true' WHERE ShelfName LIKE '%/'; " fi if [ "$cfg_uninstall" == "1" ] then echo "DELETE FROM Activity WHERE Type='Shelf' AND Id LIKE '%/';" cfg_path="" fi consume="" while [ ${#cfg_skip} -gt 0 ] do # cut off first path element skip=${cfg_skip%%:*} echo "-- skip '$skip'" cfg_skip=${cfg_skip:$((${#skip}+1))} consume="$consume AND ContentId NOT LIKE 'file://$(like "$skip")/%' ESCAPE '\\'" done while [ ${#cfg_path} -gt 0 ] do # cut off first path element this=${cfg_path%%:*} cfg_path=${cfg_path:$((${#this}+1))} path=${this%%=*} pathlike=$(like "$path") prefix=${this:$((${#path}+1))} echo "-- path '$path' prefix '$prefix'" sqlite3 /mnt/onboard/.kobo/KoboReader.sqlite " SELECT ContentId FROM content WHERE ContentType=6 AND ContentId LIKE 'file://$pathlike/%' ESCAPE '\\' $consume ORDER BY ContentId; " | tee -a "$cfg_logfile" | while read file do escapefile=$(escape "$file") base=${file:$((8+${#path}))} shelf=$(dirname /"$base") shelf=${shelf:1} shelf="$prefix$shelf" if [ "$shelf" != "$prevshelf" ] then prevshelf="$shelf" escapeshelf=$(escape "$shelf") echo " UPDATE OR IGNORE AutoShelf SET LastModified=$today, _IsDeleted='false', _IsVisible='true' WHERE InternalName='$escapeshelf/'; INSERT OR IGNORE INTO AutoShelf ('CreationDate','Id','InternalName','LastModified','Name','Type','_IsDeleted','_IsVisible','_IsSynced') VALUES ($today, '$escapeshelf/','$escapeshelf/',$today,'$escapeshelf/',NULL,'false','true','false'); " fi echo " REPLACE INTO AutoShelfContent ('ShelfName','ContentId','DateModified','_IsDeleted','_IsSynced') VALUES ('$escapeshelf/', '$escapefile', $today, 'false', 'false'); " if [ "$cfg_series" == "1" ] then result=$(echo -n "$base" | sed -r -e s"$cfg_series_regexp") echo "-- series_regexp '$base' -> '$result'" set -- if [ "$result" != "$base" ] then IFS=: set -- $result unset IFS fi if [ $# -ge 3 ] then series=$2 number=$3 echo " UPDATE content SET Series='$(escape "$series")', SeriesNumber='$(escape "$number")' WHERE ContentId='$escapefile'; " fi fi done if [ "$cfg_consume" == "1" ] then consume="$consume AND ContentId NOT LIKE 'file://$pathlike/%' ESCAPE '\\'" fi done echo " REPLACE INTO Shelf SELECT * FROM AutoShelf; REPLACE INTO ShelfContent SELECT * FROM AutoShelfContent; DROP TABLE AutoShelf; DROP TABLE AutoShelfContent; COMMIT TRANSACTION; " } udev_workarounds touch /mnt/onboard.adds/cloud/write_test || mount -o remount,rw /mnt/onboard qndb -m mwcToast 100 "Updating collections..." suspend_nickel autoshelf for i in $(seq 1 60) do if [ -e /mnt/onboard/.kobo/KoboReader.sqlite ] then break fi sleep 1 done if [ -e /mnt/onboard/.kobo/KoboReader.sqlite ] then cfg_logfile="$BASE"/$(config logfile '') echo "-------- AutoShelf $(date) --------" | tee -a "$cfg_logfile" autoshelf > /tmp/autoshelf.sql echo "---- SQL Execution: ----" | tee -a "$cfg_logfile" ( sqlite3 -bail -batch -echo /mnt/onboard/.kobo/KoboReader.sqlite < /tmp/autoshelf.sql \ || (echo "---- Dump after error: ----"; cat /tmp/autoshelf.sql) ) 2>&1 | tee -a "$cfg_logfile" mv /tmp/autoshelf.sql /tmp/autoshelf.bak if [ "$(config uninstall 0)" == "1" ] then echo "==== Uninstalling ====" | tee -a "$cfg_logfile" touch /mnt/onboard/.addons/autoshelf/uninstalled-$(date +%Y%M%d-%H%M) rm /etc/udev/rules.d/autoshelf.rules rm -rf /usr/local/AutoShelf fi fi resume_nickel autoshelf qndb -m mwcToast 2000 "Refreshing collections..." qndb -m pfmRescanBooksFull #probably should wait for the finish signal, then touch /mnt/onboard.adds/cloud/write_test || mount -o remount,rw /mnt/onboard |
![]() |
![]() |
![]() |
#230 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 57
Karma: 20316
Join Date: Nov 2010
Location: Netherlands
Device: Kobo Libra 2
|
can't uninstall
Hi, i renamed the cfg to \.addons\autoshelf\autoshelf.cfg and put in uni, changed to uninstall=1, but it's still present.
Thanks. |
![]() |
![]() |
Advert | |
|
![]() |
#231 |
Linux User
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 2,282
Karma: 6123806
Join Date: Sep 2010
Location: Heidelberg, Germany
Device: none
|
The uninstall routine in this mod is unfortunately tied to an active run of autoshelf (connect USB, then touch the USB connection screen once, to activate it, then eject/unplug USB), as cleaning up database entries is part of the uninstall routine and this can only run between USB connections. If it doesn't run at all, then it also won't uninstall, unfortunately.
Attached is a script that should unconditionally remove autoshelf files (but not database entries, so if any shelves were created, you'd have to remove them yourself). Last edited by frostschutz; 02-27-2025 at 09:35 AM. |
![]() |
![]() |
![]() |
#232 |
Connoisseur
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 57
Karma: 20316
Join Date: Nov 2010
Location: Netherlands
Device: Kobo Libra 2
|
Thank you, after a few restarts the autoshelf script did remove itself.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
New Beta for BB? | FF2 | Amazon Kindle | 2 | 05-28-2011 10:21 AM |
Development Signing up for the beta | glen | enTourage Archive | 16 | 04-06-2011 04:33 PM |
Beta Beta Test of Major New Features | Starson17 | Calibre | 45 | 05-17-2010 10:55 AM |
0.6 out of beta? | Nate the great | Calibre | 3 | 07-17-2009 02:45 AM |