mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Remove unused code
This commit is contained in:
parent
1a2773cd3f
commit
84fd2da5cc
@ -1,80 +0,0 @@
|
||||
#!/usr/bin/env python2
|
||||
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
|
||||
from __future__ import with_statement
|
||||
|
||||
__license__ = 'GPL v3'
|
||||
__copyright__ = '2009, Kovid Goyal <kovid@kovidgoyal.net>'
|
||||
__docformat__ = 'restructuredtext en'
|
||||
|
||||
|
||||
import sys, subprocess, os, errno
|
||||
from functools import partial
|
||||
from contextlib import nested
|
||||
|
||||
from calibre.ptempfile import TemporaryFile
|
||||
from calibre.constants import iswindows
|
||||
|
||||
PDFTK = 'pdftk'
|
||||
popen = subprocess.Popen
|
||||
#if isosx and hasattr(sys, 'frameworks_dir'):
|
||||
# PDFTK = os.path.join(getattr(sys, 'frameworks_dir'), 'pdftk')
|
||||
if iswindows and hasattr(sys, 'frozen'):
|
||||
PDFTK = os.path.join(os.path.dirname(sys.executable), 'pdftk.exe')
|
||||
popen = partial(subprocess.Popen, creationflags=0x08) # CREATE_NO_WINDOW=0x08 so that no ugly console is popped up
|
||||
|
||||
class PdftkError(Exception): pass
|
||||
|
||||
def mi_to_info(mi):
|
||||
ans = []
|
||||
if mi.title:
|
||||
ans.extend(('InfoKey: Title', 'InfoValue: '+mi.title))
|
||||
if mi.authors:
|
||||
from calibre.ebooks.metadata import authors_to_string
|
||||
ans.extend(('InfoKey: Author', 'InfoValue: ' +
|
||||
authors_to_string(mi.authors)))
|
||||
return u'\n'.join(ans)
|
||||
|
||||
def set_metadata(stream, mi):
|
||||
raw = mi_to_info(mi)
|
||||
if not raw: return
|
||||
raw = raw.encode('utf-8')
|
||||
with nested(TemporaryFile('.pdf'), TemporaryFile('.pdf'),
|
||||
TemporaryFile('.info')) as (input, output, meta):
|
||||
oi = getattr(stream, 'name', None)
|
||||
if not oi or not os.access(oi, os.R_OK):
|
||||
stream.seek(0)
|
||||
with open(input, 'wb') as f: f.write(stream.read())
|
||||
else:
|
||||
input = oi
|
||||
with open(meta, 'wb') as f: f.write(raw)
|
||||
if os.path.exists(output):
|
||||
os.remove(output)
|
||||
cmd = (PDFTK, input, 'update_info', meta, 'output', output)
|
||||
p = popen(cmd)
|
||||
|
||||
while True:
|
||||
try:
|
||||
p.wait()
|
||||
break
|
||||
except OSError as e:
|
||||
if e.errno == errno.EINTR:
|
||||
continue
|
||||
else:
|
||||
raise
|
||||
|
||||
if os.stat(output).st_size < 2048:
|
||||
raise PdftkError('Output file too small')
|
||||
|
||||
with open(output, 'rb') as f: raw = f.read()
|
||||
if raw:
|
||||
stream.seek(0)
|
||||
stream.truncate()
|
||||
stream.write(raw)
|
||||
stream.flush()
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = sys.argv
|
||||
from calibre.ebooks.metadata import MetaInformation
|
||||
mi = MetaInformation(args[2], [args[3]])
|
||||
x = open(args[1], 'r+b')
|
||||
set_metadata(x, mi)
|
Loading…
x
Reference in New Issue
Block a user