nicoapi Version0.3について気になった点のメモ

bonlifeです。 nicoapi Version0.3を見ていていくつか気になった点がありました。どうやって伝えるのか迷った末にはてダに書いてみましたよ。(コメントするには長過ぎる気がしたので。) ちなみに、アップロード関係の処理はノーチェックです。

  • smではなくnmではじまる動画もあるので、対応した方が良い
  • クラスを定義する際、objectクラスを継承した方が新しい感じがする (新スタイルクラス)
  • 関数名の命名基準は合わせておいた方が読みやすい (mixedCaseなのかlower_case_with_underscoresなのか) (参考 : REP 8)
  • login_n, login_s は opener を返すが、True (失敗時はException)を返す方が良い(気がする)
  • インスタンス変数あたりで opener を定義しておき、getFlv, getFlvs の引数では opener を渡すのをやめた方がスッキリする
  • getFlv と getFlvs はほぼ同じことをしているので、getFlvs 内で getFlv を呼び出すようにした方がスッキリする
    • getFlv はファイル名を指定しなければならないため getFlvs ではそのまま使えないが、filepath のデフォルト値を None としておき、 None の場合には自動的に filepath を決めるようにすればOKのはず
  • getFlv は複数のidに対応するために getFlvs という別の関数があるが、 getThumbnail は1つの関数で両方に対応しており、揃っていない印象を受ける
  • ニコニコ動画のAPIのメモを参考にすると、サムネイルのURLは getthumbinfo APIXMLから取得できるので、そちらを使った方が良さそう (URLの変更に強い)
    • getThumbnail の中でも if の後のブロックと elif の後のブロックでほぼ同じ内容なので、1つのサムネイルを取得する処理を関数として用意しておき、それを呼び出すようにした方がスッキリする ( _get_thumbnail_image とかそんな内部関数を作ると良い)
  • parseクラスはtitleのリスト、linkのリストを別々に返すが、{'title':title, 'link':link} の辞書のリストを返した方が使いやすい気がする
  • 例外を try, except でつかまえて標準出力に print しているが、他のスクリプトと連携することを考慮すると、Exceptionのサブクラスを定義して、例外を投げた方が良い気がする
  • URLの記述が長いので、ベースとなるURLをクラス変数か、インスタンス変数にしておいた方が良い気がする
  • getRankRss 内でのURL生成は、ichiba以外はまとめても良い気がする

ところどころ好みの問題も混じっていますが、ご愛嬌。いっつもいっつもいっつもいっつも他人のソースコードに関するダメ出しみたいなPython記事でサーセンです。
もうちょっと凝った作りのニコニコ動画用のPythonライブラリが公開されていたので、チラッと見てみましたが、途中で頭がパーン!したので、じっくり確認するのはまた後日。(xpathのためだけにlxmlを使っているような気がしたが気のせいかもしれない。)