View Single Post
Old 06-03-2014, 02:38 AM   #1
yang738
Member
yang738 began at the beginning.
 
Posts: 11
Karma: 10
Join Date: Jun 2014
Device: kindle fire hd
need help in Plugin

Hello there:

I am a newcomer to plugin developer.

firstly , I downloaded the Helloworld plugin and made a slight change to it. I want to change the metadata of the ebooks. but it didn't work.

Anyone can kindly tell me the reason? Thanks in advance.

commandline:
calibre-customize -b .

output: Plugin updated: SGF File (1, 0, 0)

I intended to update the metadata ,but nothing changed to ebooks in calibre library.

the changed python script:

#!/usr/bin/env python
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
from __future__ import (unicode_literals, division, absolute_import,
print_function)

__license__ = 'GPL v3'
__copyright__ = '2011, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en'

import os
from calibre.customize import MetadataWriterPlugin

class HelloWorld(MetadataWriterPlugin):

name = 'SGF File' # Name of the plugin
description = 'Set the publisher to Hello World for all new conversions'
supported_platforms = ['windows', 'osx', 'linux'] # Platforms this plugin will run on
author = 'Acme Inc.' # The author of this plugin
version = (1, 0, 0) # The version number of this plugin
file_types = set(['SGF', 'sgf']) # The file types that this plugin will be applied to
on_postprocess = True # Run this plugin after conversion is complete
minimum_calibre_version = (0, 7, 53)

def run(self, path_to_ebook):
from calibre.ebooks.metadata.meta import get_metadata, set_metadata
file = open(path_to_ebook, 'r+b')
ext = os.path.splitext(path_to_ebook)[-1][1:].lower()
mi = get_metadata(file, ext)
mi.publisher = 'Hello World'
set_metadata(file, mi, ext)
return path_to_ebook
yang738 is offline   Reply With Quote