スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

オライリーiPhone向け電子ブックipa形式からepub形式に変換ツールをpythonで作ってみた!

オライリーiPhone向け電子ブックを簡単な操作をすることで、パソコンでも読めるようにできるようなので、早速Programming Google App Engineを買ってみましたw
3,000円以上もするものが\600円で買えちゃうなんてすてき~www

Goog App En 1.0.ipaというファイルがiTuneのフォルダに増えているので、これのbook以下のフォルダをzipにして、拡張子をepubにすればいいらしい。
早速ファイルを作成して、FirefoxのEPUBReaderを入れて、読み込んで見たところ読み込めました!


あんまり自動化する意味もなさそうですが、Pythonで作ってみましたw
zipfileライブラリをインポートすることで、bookフォルダ以下を直接読み込み書き出してみたいと思います。

 
#!/usr/bin/env python
# -*- coding:utf-8 -*-

#import-----------------------------------------------------------------------
import sys, os, re, zipfile

#define-----------------------------------------------------------------------
p_ver = u'0.30'
p_name = u'o\'reilly book format to epub converter'

#function---------------------------------------------------------------------
#正規表現をあらかじめコンパイルしておく関数
def create_re_obj():

precompile = {}

precompile['dir_check'] = re.compile(u'payload\/.*?\/book\/(.*?)$', re.IGNORECASE)

return precompile

#main
def main():

#正規表現のプリコンパイル
p_obj = create_re_obj()

print '%s %s' % (p_name, p_ver)
print u'Ctrl + Cで強制終了!'

try:
ipa_file = unicode(sys.argv[1], 'sjis', "ignore")
except:
print u'Usage : ipa2epub.exe xxx.ipa'
raw_input(u'Press Enter Key')
exit()

pg_path = unicode(os.path.dirname(sys.argv[0]), 'sjis', "ignore")
pg_name = unicode(os.path.basename(sys.argv[0]), 'sjis', "ignore")
ipa_body = os.path.splitext(ipa_file)[0]

if zipfile.is_zipfile(ipa_file):
src_file = zipfile.ZipFile(ipa_file, 'r')
dst_file = zipfile.ZipFile(ipa_body + '.epub', 'w', zipfile.ZIP_DEFLATED)

for src_path_file in src_file.namelist():
dir_check = p_obj['dir_check'].match(src_path_file)
if dir_check:
dist_path_file = dir_check.group(1)
if dist_path_file != '':
print 'compress : %s' % dist_path_file
dst_file.writestr(dist_path_file, src_file.read(src_path_file))

src_file.close()
dst_file.close()

raw_input(u'Press Enter Key')

#test-------------------------------------------------------------------------
if __name__ == '__main__':

main()



epub形式にきちんと変換できて、firefoxでも読むことができました!

Pyinstallerでexe化しておくとexeにドラッグ&ドロップすることで変換してくれて便利です。
コマンドラインで下記のコマンドを打てば、exe化できます。

.\App\python.exe .\App\pyinstaller-1.4\Makespec.py -F -c ipa2epub.py
.\App\python.exe .\App\pyinstaller-1.4\Build.py ipa2epub.spec

Pyinstallerを入れてない方は、下記の記事を見て入れておくといいですよ!

Pythonコードのexe化

コマンドライン版はこちらからダウンロードできます。
http://www.easy-share.com/1915720307/ipa2epub030.zip
関連記事
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Python Portable iPhone GoogleAppEngine

コメント

Secret

プロフィール

cherrypy

Author:cherrypy
四方山話とか、にわかプログラミングなどについて語ります。

カウンター
はてな人気エントリー
最新記事
スポンサードリンク
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。