Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Software > Calibre > Plugins

Notices

Reply
 
Thread Tools Search this Thread
Old 12-06-2020, 04:27 PM   #1
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
[GUI Plugin] Mass Search/Replace

Mass Search/Replace is a small plugin to facilitate the execution of one or more of your favorite Search and Replace operations to your books metadata.

Each entry in the context menu will launch a list of Search/Replace operations that you have previously set up. Setting up an operation uses the Calibre Search and Replace module.

The plugin has the following features:
  • Editable context menu
  • Editables operations list
  • Quick Search/Replace
  • Error Strategy

Available operation type:
  • Character match
  • Regular expression
  • Replace field

Installation
Open Preferences -> Plugins -> Get new plugins and install the "Mass Search/Replace" plugin.
You may also download the attached zip file and install the plugin manually, then restart calibre as described in the Introduction to plugins thread

Special Notes:
  • Uses the Calibre Search/Replace module.
  • You can destroy your library using this plugin. Changes are permanent. There is no undo function. You are strongly encouraged to back up your library before proceeding.

Credits:
  • The icon dialog and the dynamic menus for chains are based on code from the Open With plugin by kiwidude.
  • The Calibre Actions is based on code from the Favourites Menu plugin by kiwidude.
  • The module editor is based on calibre editor function editor by Kovid Goyal.
  • The Search and Replace Action is based on calibre's search and replace. (chaley and Kovid Goyal)
  • Thanks to capink and its plugin Action Chains without which this one wouldn't exist.

The plugin works for Calibre 4 and later.

Version History:
Spoiler:
version 1.3.0
Compatible Calibre6/Qt6

version 1.2.2
FIX wrong error message when an error occurs during the update of the library

version 1.2.1
FIX ghost identifier with empty value

version 1.2.0
Add a 'Replace Field' mode that replace any values with the specified string
FIX Freeze when your config the settings of operations when many books are selected
FIX the displaying of a error in dialog

version 1.1.0
Improved handling of errors with invalid identifiers

version 1.0.2
[Follow Calibre] Fix invalide identifier with colon

version 1.0.1
Fix search mode "Character match" doesn't work

version 1.0.0
Full release
Fix regression with case sensitivity

version 0.9.3
Add Spanish translation
Thanks dunhill

version 0.9.2
FIX case for the test result field
FIX detection of None and inchanged value

version 0.9.1
fix library switch

version 0.9.0
First release
Beta public test

GitHub

Note for those who wish to provide a translation:
I am French! Although for obvious reasons, the default language of the plugin is English, keep in mind that already a translation.
Attached Thumbnails
Click image for larger version

Name:	context.png
Views:	537
Size:	64.4 KB
ID:	183820   Click image for larger version

Name:	config-menu.png
Views:	517
Size:	51.3 KB
ID:	183821   Click image for larger version

Name:	config-operation.png
Views:	485
Size:	29.6 KB
ID:	183822   Click image for larger version

Name:	search-replace.png
Views:	198
Size:	58.8 KB
ID:	187555  
Attached Files
File Type: zip Mass Search-Replace 1.3.0.zip (105.2 KB, 1028 views)

Last edited by un_pogaz; 01-04-2022 at 01:37 PM.
un_pogaz is offline   Reply With Quote
Old 12-06-2020, 04:28 PM   #2
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
reserverd for futur usage

Last edited by un_pogaz; 01-18-2021 at 12:55 PM.
un_pogaz is offline   Reply With Quote
Advert
Old 12-07-2020, 11:03 AM   #3
jjk
Enthusiast
jjk began at the beginning.
 
Posts: 38
Karma: 10
Join Date: Aug 2018
Location: Paris (France)
Device: Kobo Kindle Vivlio-Inkpad3
Hello un_pogaz
Thanks for your plugin. I've just tried it a little. (on Calibre 5.6)
In fields=authors, I search "Cam" and replace it by "CAM", case-sensitive, type=car. match (not regex).
Casse to apply to each replace = All in CAPS

I select some books from Camilla Lackberg, and other ones. For each of those selected books, authors are Camilla Lackberg, or Jack London..., ie initials in CAPS (MAJUSCULES), other letters not in CAPS (so minuscules)

When I apply MSR plugin, all authors become all in CAPS (CAMILLA LACKBERG, JACK LONDON...), although I thought that they would become CAMilla Lackberg, Jack London ... because I had precised only Cam/CAM in S/R fields.

In a second time, to try to repare it, I put : Casse to apply to replace = Majuscule à chaque mot (I'm French also), and still S/R=Cam/CAM.
Result : CamILLA LACKBERG, Jack London
I don't understand the whole logic.

That is all my test for the moment.

Anyway, your plugin is promising. Cheers.
jjk is offline   Reply With Quote
Old 12-07-2020, 12:26 PM   #4
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
Si t'est français, met ton texte en français dans un Spoiler, et traduit traduit normalement pour le mesage publique.

Spoiler:
Je rappel que j'ai utilisé le module de Calibre telle quelle, et je peut difficilement le "corrigé". Aussi, il est difficile a mettre en tort, encore faut-il comprendre ça logique.

Pour le premier cas:
Apparemment dans type=car. match (not regex), Calibre applique la "CASE applique sur le remplacement" dans tous les cas. Il ne faut vraiment l'utilisé qu'avec parcimonie.
Dans votre cas, il aurait fallut gardé "Casse a appliqué" vide.
Le case-sensitive ne marche que pour la recherche : Cam/cam/cAm => CAM

Pour second cas:
Ça ressemble plus un bug de Calibre. Signale-le en temps que telle, je vais voir de mon coté ce que je peut faire.
En gros, la Casse n'est appliqué normalement que pour le texte de remplacement, le reste est copier telle quelle.
Mais dans le cas où le texte cherchée n'est pas trouvé, il capture tous et applique la Casse.
(CAM)ILLA LACKBERG, (JACK LONDON) => (Cam)ILLA LACKBERG, (Jack London)
Seul le texte entre parenthèse voit ça Casse changé.

A la réflexion, le modificateur de Casse n'e doit être utilisé que pour du Regex.


EDIT: Après avoir regardé, s'est bien le comportement attendu.
Le seul bug est que, en mode "Correspondance de caractères", la Casse n'est pas correctement appliqué dans le champs de test. J'ai corrigé et reporté le bug.


I remind you that I used the Caliber module as is, and I can hardly "correct" it. Also, it is difficult to blame it, but it is still necessary to understand that logic.

For the first case:
Apparently in type=car. match (not regex), Calibre applies the "CASE applies on replacement" in all cases. It should really be used sparingly.
In your case, you should have kept "Case applied" empty.
The case-sensitive only works for search : Cam/cam/cAm => CAM

For second case:
It looks more like a Caliber bug. Report it as such, I'll see what I can do.
Basically, the Case is normally applied only for the replacement text, the rest is copied as is.
But if the text you are looking for is not found, it captures all of it and applies the Casse.
(CAM)ILLA LACKBERG, (JACK LONDON) => (Cam)ILLA LACKBERG, (Jack London)
Only the text in brackets sees that Case changed.

On second thought, the Casse modifier should only be used for Regex.

EDIT: After look, this is expected behaviour.
The only bug is, in "Character Matching" mode, the box is not correctly applied in the test field. I have corrected and reported the bug.

Last edited by un_pogaz; 12-07-2020 at 02:09 PM.
un_pogaz is offline   Reply With Quote
Old 12-07-2020, 03:04 PM   #5
jjk
Enthusiast
jjk began at the beginning.
 
Posts: 38
Karma: 10
Join Date: Aug 2018
Location: Paris (France)
Device: Kobo Kindle Vivlio-Inkpad3
Ok. Sorry, I hadn't seen that it was an internal Calibre feature. And thanks for postponing the bug.
Spoiler:
Désolé, je n'avais pas vu que c'était une fonctionnalité interne à Calibre. Et merci d'avoir reporté le bug.
jjk is offline   Reply With Quote
Advert
Old 12-08-2020, 01:20 PM   #6
dunhill
Evangelist
dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.dunhill can program the VCR without an owner's manual.
 
dunhill's Avatar
 
Posts: 426
Karma: 196652
Join Date: Sep 2017
Location: Argentina
Device: moon+ reader, kindle paperwhite
Couldn't upload po and mo on GitHub
With your permission I upload them here.
Excelent travail!!
Attached Files
File Type: zip translations spanish.zip (9.8 KB, 162 views)
dunhill is offline   Reply With Quote
Old 12-08-2020, 04:29 PM   #7
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
Thanks o/
un_pogaz is offline   Reply With Quote
Old 01-17-2021, 07:41 PM   #8
capink
Guru
capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.capink ought to be getting tired of karma fortunes by now.
 
Posts: 709
Karma: 211790
Join Date: Aug 2015
Device: Kindle
Here is another fix by Kovid. You might want to include that into your plugin.
capink is online now   Reply With Quote
Old 01-18-2021, 12:57 PM   #9
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
Quote:
Originally Posted by capink View Post
Here is another fix by Kovid. You might want to include that into your plugin.
Thanks, fixed.

Also, I think the development is stable enough for this stage:
New version 1.0.0
Full release
Fix regression with case sensitivity
un_pogaz is offline   Reply With Quote
Old 06-08-2021, 05:40 AM   #10
un_pogaz
Chalut o/
un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.un_pogaz is the One.
 
un_pogaz's Avatar
 
Posts: 237
Karma: 101867
Join Date: Dec 2017
Device: Kobo
Lot of little thing, but the 1.2.0 has a significant addition:
  • Add a 'Replace Field' mode that replace any values with the specified string.
This mode is an extension/edit of the caliber's search and replace module, and was made to facilitate the editing of a field with a predefined values without the headache of a complex regex.
Attached Thumbnails
Click image for larger version

Name:	replace-field.png
Views:	140
Size:	40.3 KB
ID:	187559  
un_pogaz is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
[GUI Plugin] Search the Internet kiwidude Plugins 361 Yesterday 10:08 PM
[GUI Plugin] Drop Search Results DaltonST Plugins 28 Yesterday 11:40 AM
[GUI Plugin] Clipboard Search kiwidude Plugins 19 01-04-2022 08:42 AM
Mass search and replace word in epub Fangles Library Management 4 07-26-2016 06:23 PM


All times are GMT -4. The time now is 07:59 PM.


MobileRead.com is a privately owned, operated and funded community.