スクリプトの主な目的は、ユーザーがサーバー上のディレクトリまたはファイルを選択し、dvd + rw-toolsパッケージから書き込みコマンドを実行できるようにすることです。
growisofs -dvd-compat -Z <デバイス> -R -J -pad "<記録するディレクトリへのパス>"VIDEO_TSなしでレイアウトされた映画に追加する必要があります。
growisofs -dvd-compat -Z <デバイス> -R -J -pad -graftpoints "/ VIDEO_TS = <記録用ディレクトリへのパス>"
Djangoの使用機能:
- 人に優しいURL
- テンプレートエンジン
- MVC
Djangoのモジュールアーキテクチャのおかげで、未使用の機能はまったく干渉しません。
growisofs のラッパーライブラリから始めましょう。 コンストラクター内のBurnerオブジェクトはレコーダーの名前を取得し、growisofsのバージョンを判別しようとし、例外が発生しない場合は非常に簡単です。 オブジェクトでは、subprocess.Popenを使用してpathパラメーターを指定したburndvdメソッドがディスクのスライスを試みます。 エラーはstderrを読み取ることで決定され、いくつかの例外の呼び出しに反映されます。
アプリケーションの最も興味深い部分は、ユーザーインターフェイスです。
URLを生成するためのルール:
urlpatterns =パターン( ''、 (r '^ / dvdburn $'、 'default.dvdburn.views.index'、{'dirname': ''})、 (r '^ / dvdburn /(?P <dirname> [^?] +)/ $'、 'default.dvdburn.views.index')、 )
/ dvdburnで始まるものはすべてindexメソッドに入り、残りのurlはdirnameパラメーターとして渡されます。
ビューインデックスメソッドには、スクリプトロジックの大部分が含まれています。
このメソッドでは、ムービーストレージのルートへのパスがurlで受信したパスに追加され、パスは親ディレクトリへのリンクを配置するためのコンポーネントに分割され、現在のパスの内容がナビゲーションテンプレートに転送されます。 ポストコールが検出されると、記録が開始されます。現在のバージョンではプロセス表示は実装されていないため、記録の進行中にページが読み込まれ、記録の最後に結果テンプレートが表示されます。
私が改善したいこと:
- 必要に応じてDVD9を2枚の単層DVDに書き込む
記録プロセスをパーセントで表示し、growisofsの出力とajaxを使用して出力を解析することで情報を取得できます
スクリプトソースコード