ウニ’s blog

勉強した結果を書いていきます

PythonでECサイト作る(1)

DjangoECサイト作ってる方がいらっしゃるので、こっちもお試しで作ってみよう。

さしあたり考えることは多いけど、まずは取引=決済のために必要なものが何かなどを洗い出した。
2017/1/1以降に個人事業主申請・青色申告届けを出すとして、まずはpaypalのアカウントをビジネス向けにupgradeした。
アカウントアップグレード自体は無料。基本的には決済毎に規定の手数料を取られる。

青色申告に必要な経理系はfreeeに任せるという感じにしたい。
あとは口座をネットバンクにする、等。
paypalと入金口座のヒモ付へがよくわからないので、調べながらすすめたい。
うーむ。未知なことが多いな。

全然参考にならない

参考にならないが、freeeの広告記事でこれはすごい笑ったw。

www.freee.co.jp

税理士の方が見事にオチを決めてくれて、すごいQuality高い記事!

終わりに

年内にローンチしたいけど、全く日程感がない戯言。
友人に見せるプロトタイプを1/1W完で進めていきたい。

アジャイルサムライ読んだ結果も試していこう。
f:id:uni8inu:20161227041637j:plain

スクリプト実行ファイルのTestCase

pythonスクリプト実行部分をTestしたい。
例えば、sys.argvの切り分け処理部分をテストしたいときに使う。

コード

スクリプト実行ファイル

# hello.py
import sys

args = sys.argv

if len(args) > 1:
    print("Hello world.","args 1 : " + args[1])

テストファイル

import sys
import runpy
from unittest import TestCase

class ScriptTest(TestCase):
    saved_argv = []

    def setUp(self):
        self.saved_argv = sys.argv

    def tearDown(self):
        sys.argv = self.saved_argv

    def test_hello_module_normal(self):
        my_args = ["hello.py","wanwan"]
        sys.argv = my_args

        runpy.run_path("hello.py",run_name="__main__")

サンプルコード置き場

github.com

イマイチ

`argv`の渡し方がもっとなんとかなりそうな気もするが、分からず。
とりあえずこれで行こう。

新Google翻訳のAPIを試す(7)--公開

Google翻訳使ったePub翻訳ツール、えいやで完成。
図は翻訳したePubの結果。(ProGit本)
一見良さそうな感じ。でも読み込むと、ところどころオカシイ。

f:id:uni8inu:20161223012352p:plain

処理時間もあまりよくない。
文字列をhtmlタグレベルでGoogleAPIに投げてるので、1冊翻訳完了までかなりかかった。

処理時間

** All file translated. **
translate total time : 2220.89 sec / query total 621460 chars
progit-en.1084_ja.epub created.

english chars 62万文字で 約37分。おせー。
認証tokenの時間切れとの戦いでした。tokenいつ切れるんだろう。

うまく作れば10分以内で処理完了できそう。
でも、今後chromeのwebサイト翻訳にGoogle新翻訳が追加されるだろうから、その機能経由でePub翻訳したほうが良い結果になると考える。

pythonePub翻訳ツール自作するのは筋が良くない、という結論でおわる🙏🏼

サンプルとして使った翻訳本

ProGit本を翻訳しました。
ProGit本は有志で日本語に翻訳済みなので、翻訳精度の比較に丁度よいです。

Git - Book

Pro Git 日本語版電子書籍公開サイト

終わりに

一段落したので、明日はグダグダすごそう。
Qiitaに記事も書きたいが、まずはとりあえずICON作りたい!
ねもうす。

追記

思うところがありリポジトリ削除。
あーあ。

新Google翻訳のAPIを試す(6)

うわー!お試しで技術書1冊丸ごと翻訳中に認証トークンの期限切れた!
トークンの期限切れ早すぎないか?

f:id:uni8inu:20161222015942p:plain

GCPの認証方法がそもそも良くわかってないんだよなあ。
プログラム実行中に再認証するにはどうすれば良いのか…。

進捗的には上の問題なければgithub公開までもう少し、という感じ。
翻訳漏れ箇所も結構あるので、そこも改善すべきか悩む…。

新Google翻訳のAPIを試す(5)

ePub->文字列処理->ePub完成。作ったモジュールを整理した。

f:id:uni8inu:20161221014044p:plain

技術書のxhtmlの構成を見てるけど、ソースコード使ったりしていて、翻訳したくない部分が確実にある。
やっぱりhtmlタグ毎に処理を変える必要があるよなあ。
完璧にはどうせ無理なので、あまり深入りしたくないんだけど…。悩みます。

新Google翻訳のAPIを試す(4)

html(xhtml)を読み込ませて、翻訳させる、結果を出力する、まで完成。

htmlの構文解析して、文字列部分を辿る処理の実装具合が非常に良くない。
あらゆるePubに対応できるか?というと、無理だ。
やはりChrome経由のgoogle webページ翻訳が新Google翻訳対応するのを待ったほうが良いという結論。
ブラッシュアップするには筋が悪い。

f:id:uni8inu:20161219234828p:plain
技術書翻訳例

翻訳サンプルとして使用した技術書

Git - Book

考察

せっかくここまでやったので、サンプルコードを公開するところまではやろう。
2タイプ準備する、というところをゴールにしよう。

1. ePubを直接翻訳して、別のePubファイルを作成する君
2. ePubを回答して、中身のファイル(html)を指定して、htmlを置き換える君
2.1 元のファイルはorg_XXX.htmlとかに退避する

新Google翻訳のAPIを試す(3)

BeautifulSoup4でePub構成ファイルの編集やってるけど、なかなか思い通りに行かずふてくされたりした。

ようやくなんとなく操作がわかってきた。xhtml→soupオブジェクト→xhtmlの変換ができた。
Google翻訳にぶち込むために、なるべくプレーンなデータ形状に変更が必要。しかしそれに伴い、タグ情報が結構落ちる。

頑張れば翻訳結果に対してタグを復旧させられるだろうけど、個人ではこれ以上の帳尻合わせは限界なり。
正直、天才が作っているgoogleサイト翻訳が新翻訳に対応するだろう。その後に、html系の翻訳データを読み込ませたほうが正確だろう。
頑張るところではないと判断した。

とにかく、今回は実験ソフトなので、この残念仕様で進めていく。

f:id:uni8inu:20161217020457p:plain
左が原文、右がBeautifulSoup4で加工後。
文字列は影響ないんだけど、pタグ内部のタグ情報がすべて落ちてて、レイアウトがちょっと変わってしまっている。
(brとか)

ねよう。