mirror of
https://github.com/YunoHost-Apps/calibreweb_ynh.git
synced 2024-09-03 18:16:20 +02:00
commit
d134275505
11 changed files with 116 additions and 9 deletions
|
@ -18,8 +18,6 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
|
|||
Browsing, reading and downloading eBooks using a Calibre database
|
||||
|
||||
**Shipped version:** 0.6.19
|
||||
|
||||
|
||||
## Screenshots
|
||||
|
||||

|
||||
|
@ -57,6 +55,13 @@ or
|
|||
chmod o+rw path/to/library
|
||||
```
|
||||
|
||||
### Kobo Sync
|
||||
|
||||
Calibre-web comes with a [synching feature with a kobo device](https://github.com/janeczku/calibre-web/wiki/Kobo-Integration). You can activate this feature from inside the app in the administration menu. You need to set port 443 as the external server port.
|
||||
A dedicated permission "Kobo sync" is created by default by the app so that you don't need to expose the whole app for synching.
|
||||
|
||||
[Kepubify](https://pgaskin.net/kepubify/) is also set up as the default kepub converter during installation : This means that your whole library will be converted to kepub when creating the sync token for the first time (this will not affect the existing epubs). This can take a long time : For reference, I have around 10K ebooks on my calibre library and the conversion lasted around 3-4hours on a raspberry Pi 4.
|
||||
|
||||
### OPDS
|
||||
|
||||
For **OPDS** to work, most OPDS-readers will require the app must be set in public mode.
|
||||
|
|
11
README_fr.md
11
README_fr.md
|
@ -17,9 +17,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
|
|||
|
||||
Explorer, lire et télécharger des eBooks à partir d'une base de données Calibre
|
||||
|
||||
**Version incluse :** 0.6.19
|
||||
|
||||
|
||||
**Version incluse :** 0.6.19
|
||||
## Captures d'écran
|
||||
|
||||

|
||||
|
@ -57,6 +55,13 @@ ou
|
|||
chmod o+rw chemin/vers/bibliothèque
|
||||
```
|
||||
|
||||
### Synchronisation Kobo
|
||||
|
||||
Calibre-web possède [une fonction de synchronisation avec les liseuses Kobo](https://github.com/janeczku/calibre-web/wiki/Kobo-Integration). Vous pouvez activer cette fonctionnalité depuis le menu d'administration de l'application. Il faut paramétrer le port 443 comme port externe du serveur.
|
||||
Une permission spécifique "Kobo sync" est créée lors de l'installation de l'application afin de ne pas avoir à exposer l'application entière.
|
||||
|
||||
[Kepubify](https://pgaskin.net/kepubify/) est également installé en tant que convertisseur par défaut vers le format kepub : Cela signifie que l'intégralité de votre bibliothèque sera convertie en format kepub lorsque vous créerez le jeton de synchronisation pour la première fois (ceci n'affecte pas les epubs existant). Cela peut prendre un certain temps : Par exemple, j'ai environ 10K livres dans ma bibliothèque calibre, et la conversion a durée environ 3-4h sur un Raspberry Pi 4 .
|
||||
|
||||
### OPDS
|
||||
|
||||
Pour que l'**OPDS** fonctionne, la plupart des lecteurs OPDS exigent que l'application soit en accès publique.
|
||||
|
|
4
conf/appkepubify.src.default
Normal file
4
conf/appkepubify.src.default
Normal file
|
@ -0,0 +1,4 @@
|
|||
SOURCE_URL=https://github.com/pgaskin/kepubify/releases/download/v4.0.4/kepubify-linux-__MACH__
|
||||
SOURCE_SUM=__SHA256__
|
||||
SOURCE_EXTRACT=false
|
||||
SOURCE_FILENAME=kepubify-linux-__MACH__
|
|
@ -29,6 +29,13 @@ or
|
|||
chmod o+rw path/to/library
|
||||
```
|
||||
|
||||
### Kobo Sync
|
||||
|
||||
Calibre-web comes with a [synching feature with a kobo device](https://github.com/janeczku/calibre-web/wiki/Kobo-Integration). You can activate this feature from inside the app in the administration menu. You need to set port 443 as the external server port.
|
||||
A dedicated permission "Kobo sync" is created by default by the app so that you don't need to expose the whole app for synching.
|
||||
|
||||
[Kepubify](https://pgaskin.net/kepubify/) is also set up as the default kepub converter during installation : This means that your whole library will be converted to kepub when creating the sync token for the first time (this will not affect the existing epubs). This can take a long time : For reference, I have around 10K ebooks on my calibre library and the conversion lasted around 3-4hours on a raspberry Pi 4.
|
||||
|
||||
### OPDS
|
||||
|
||||
For **OPDS** to work, most OPDS-readers will require the app must be set in public mode.
|
||||
|
|
|
@ -29,6 +29,13 @@ ou
|
|||
chmod o+rw chemin/vers/bibliothèque
|
||||
```
|
||||
|
||||
### Synchronisation Kobo
|
||||
|
||||
Calibre-web possède [une fonction de synchronisation avec les liseuses Kobo](https://github.com/janeczku/calibre-web/wiki/Kobo-Integration). Vous pouvez activer cette fonctionnalité depuis le menu d'administration de l'application. Il faut paramétrer le port 443 comme port externe du serveur.
|
||||
Une permission spécifique "Kobo sync" est créée lors de l'installation de l'application afin de ne pas avoir à exposer l'application entière.
|
||||
|
||||
[Kepubify](https://pgaskin.net/kepubify/) est également installé en tant que convertisseur par défaut vers le format kepub : Cela signifie que l'intégralité de votre bibliothèque sera convertie en format kepub lorsque vous créerez le jeton de synchronisation pour la première fois (ceci n'affecte pas les epubs existant). Cela peut prendre un certain temps : Par exemple, j'ai environ 10K livres dans ma bibliothèque calibre, et la conversion a durée environ 3-4h sur un Raspberry Pi 4 .
|
||||
|
||||
### OPDS
|
||||
|
||||
Pour que l'**OPDS** fonctionne, la plupart des lecteurs OPDS exigent que l'application soit en accès publique.
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"en": "Browsing, reading and downloading eBooks using a Calibre database",
|
||||
"fr": "Explorer, lire et télécharger des eBooks à partir d'une base de données Calibre"
|
||||
},
|
||||
"version": "0.96.19~ynh1",
|
||||
"version": "0.96.19~ynh2",
|
||||
"url": "https://github.com/janeczku/calibre-web",
|
||||
"upstream": {
|
||||
"version": "0.6.19",
|
||||
|
|
|
@ -8,3 +8,35 @@ DOSSIER_MEDIA=/home/yunohost.multimedia
|
|||
#These var are used in init_calibre_db_settings conf file
|
||||
log_file=/var/log/$app/$app.log
|
||||
access_log_file=/var/log/$app/$app-access.log
|
||||
|
||||
|
||||
mach=`uname -m`
|
||||
|
||||
sha256_32bit=3365a848ce06d43fca8f1999eb69c6c8e0e20a56b6b8658a8466b9726adef0f5
|
||||
sha256_64bit=37d7628d26c5c906f607f24b36f781f306075e7073a6fe7820a751bb60431fc5
|
||||
sha256_arm=07f23275c4e674093443f01a591aa0980b0b87dbb0a10986d5001e9d56b0e1e7
|
||||
sha256_arm64=5a15b8f6f6a96216c69330601bca29638cfee50f7bf48712795cff88ae2d03a3
|
||||
sha256_armv6=7912901dc7b6f51e119f59cfd1f3f8ac2a5c64c42efba9d69ebf2ea8c3a7a2c9
|
||||
|
||||
|
||||
|
||||
case "$mach" in
|
||||
"armv6l" ) mach="arm"
|
||||
sha256=$sha256_arm
|
||||
;;
|
||||
"armv7l" ) mach="arm"
|
||||
sha256=$sha256_arm
|
||||
;;
|
||||
"armv8l" ) mach="arm64"
|
||||
sha256=$sha256_arm64
|
||||
;;
|
||||
"aarch64" ) mach="arm64"
|
||||
sha256=$sha256_arm64
|
||||
;;
|
||||
"x86_64" ) mach="64bit"
|
||||
sha256=$sha256_64bit
|
||||
;;
|
||||
* ) mach="32bit"
|
||||
sha256=$sha256_32bit
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -92,6 +92,11 @@ ynh_add_config --template="../sources/patches/app-constants.py.patch.src" --dest
|
|||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source "$final_path"
|
||||
|
||||
#install kepubify converter
|
||||
ynh_script_progression --message="Installing kepubify..." --weight=1
|
||||
ynh_add_config --template="../conf/appkepubify.src.default" --destination="../conf/appkepubify.src"
|
||||
ynh_setup_source --dest_dir="/opt/kepubify" --source_id="appkepubify"
|
||||
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
|
@ -216,6 +221,8 @@ yunohost service add $app --description="Browse eBook in the web" --log="/var/lo
|
|||
|
||||
chown -R $app: $final_path
|
||||
chmod 740 $final_path
|
||||
chown -R $app: /opt/kepubify
|
||||
chmod 770 /opt/kepubify/kepubify-linux-$mach
|
||||
|
||||
#=================================================
|
||||
# SETUP SSOWAT
|
||||
|
@ -232,6 +239,9 @@ if [ $public_library -eq 0 ]; then
|
|||
ynh_permission_update --permission "main" --add $admin
|
||||
fi
|
||||
|
||||
#Kobo sync permission
|
||||
ynh_permission_create --permission="Kobo sync" --url="$domain/kobo" --allowed="visitors"
|
||||
|
||||
#=================================================
|
||||
# RELOAD NGINX
|
||||
#=================================================
|
||||
|
|
|
@ -72,6 +72,14 @@ then
|
|||
ynh_secure_remove --file="$calibre_dir"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# REMOVE KEPUBIFY DIR
|
||||
#=================================================
|
||||
|
||||
# Remove the data directory if --purge option is used
|
||||
ynh_script_progression --message="Removing kepubify directory..." --weight=1
|
||||
ynh_secure_remove --file="/opt/kepubify"
|
||||
|
||||
#=================================================
|
||||
# REMOVE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
|
|
@ -126,6 +126,21 @@ if ynh_legacy_permissions_exists; then
|
|||
ynh_app_setting_delete --app=$app --key=is_public
|
||||
fi
|
||||
|
||||
#Adding kepubify converter
|
||||
if [ -z $(sqlite3 $final_path/app.db "SELECT config_kepubifypath FROM settings") ]; then
|
||||
ynh_add_config --template="../conf/appkepubify.src.default" --destination="../conf/appkepubify.src"
|
||||
ynh_setup_source --dest_dir="/opt/kepubify" --source_id="appkepubify"
|
||||
chmod 770 /opt/kepubify/kepubify-linux-$mach
|
||||
eval sqlite3 $final_path/app.db "\"UPDATE settings SET config_kepubifypath='/opt/kepubify/kepubify-linux-$mach' WHERE ID=1\""
|
||||
fi
|
||||
|
||||
# Create the permission "kobo_sync" only if it doesn't exist.
|
||||
if ! ynh_permission_exists --permission="Kobo sync"
|
||||
then
|
||||
# API Authorization with dedicated URL
|
||||
ynh_print_warn --message="This version has now a dedicated Kobo sync authorization, please review group and permission"
|
||||
ynh_permission_create --permission="Kobo sync" --url="$domain/kobo" --allowed="visitors"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# STANDARD UPGRADE STEPS
|
||||
|
@ -247,6 +262,7 @@ ynh_add_systemd_config
|
|||
|
||||
# Set permissions on app files
|
||||
chown -R $app: $final_path
|
||||
chown -R $app: /opt/kepubify
|
||||
|
||||
#=================================================
|
||||
# INTEGRATE SERVICE IN YUNOHOST
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
--- a/cps/config_sql.py 2022-08-12 13:48:46.980029500 +0200
|
||||
+++ b/cps/config_sql.py 2022-08-12 13:51:56.223434627 +0200
|
||||
--- a/cps/config_sql.py 2022-11-10 20:01:25.834187046 +0100
|
||||
+++ b/cps/config_sql.py 2022-11-09 23:48:08.351335088 +0100
|
||||
@@ -62,7 +62,7 @@
|
||||
mail_server_type = Column(SmallInteger, default=0)
|
||||
mail_gmail_token = Column(JSON, default={})
|
||||
|
@ -39,7 +39,7 @@
|
|||
config_ldap_port = Column(SmallInteger, default=389)
|
||||
config_ldap_authentication = Column(SmallInteger, default=constants.LDAP_AUTH_SIMPLE)
|
||||
config_ldap_serv_username = Column(String, default='cn=admin,dc=example,dc=org')
|
||||
@@ -122,11 +122,11 @@
|
||||
@@ -122,15 +122,15 @@
|
||||
config_ldap_cacert_path = Column(String, default="")
|
||||
config_ldap_cert_path = Column(String, default="")
|
||||
config_ldap_key_path = Column(String, default="")
|
||||
|
@ -54,3 +54,16 @@
|
|||
config_ldap_group_members_field = Column(String, default='memberUid')
|
||||
config_ldap_group_name = Column(String, default='calibreweb')
|
||||
|
||||
- config_kepubifypath = Column(String, default=None)
|
||||
+ config_kepubifypath = Column(String, default='/opt/kepubify/kepubify-linux-__MACH__')
|
||||
config_converterpath = Column(String, default=None)
|
||||
config_calibre = Column(String)
|
||||
config_rarfile_location = Column(String, default=None)
|
||||
@@ -269,6 +269,7 @@
|
||||
def set_from_dictionary(self, dictionary, field, convertor=None, default=None, encode=None):
|
||||
"""Possibly updates a field of this object.
|
||||
The new value, if present, is grabbed from the given dictionary, and optionally passed through a convertor.
|
||||
+
|
||||
:returns: `True` if the field has changed value
|
||||
"""
|
||||
new_value = dictionary.get(field, default)
|
||||
|
|
Loading…
Add table
Reference in a new issue