0 pythonでfoobarのalternativeを作る 14

190521 開発

DBのGUIビューア(タグのビュー)

  • 二枚組の CDの場合、ディスクの番号がないとトラックをソートできないが、このタグがわからなかった
    DBのGUIビューアにドラッグでタグを表示するようにしてみた

  • mutagenはタグを辞書で返す。prntするのは簡単だけどGUIに表示するのはちょっと面倒で、要素を一つ一つ取り出さなければならない
    forのイテレータにするとキーの文字列が順番に返る
    そこから要素を取得してリストボックスに追加した
    mutagenはタグを辞書で返すが、各要素もリストになってるので[0]で取り出すことになる
self.m_listBox1.Clear()     
m = mutagen.File(fname[0], easy=True)
for n in m:
   self.m_listBox1.Append(n + ' : ' + m[n][0])
  • ちなみにタグはそのまんまでdiscnumberだった
    DBに追加するときは必ずこのタグも取得しなくちゃいけないなあ
    ほとんどエラーになるってわかってるけどね(¯―¯٥)

DB作成

  • treeにしてみてこっちに戻ってきた
    やはりDB作成の際にソートしてtree表示しやすいように作っておくのが良いと思うようになった
    演奏中のタグ表示は改めて取得し直せば良い、多分foobarはそうしてる
    DBの項目としては、
  • ①albumartist
    あればそれ、無ければartist、それでもなければ
  • ②date と album
    [date]album として一つのカラムにしておく
  • ③tracknumber と title
    これもつなげて一つのカラム、なおtracknumberは二桁表示
    tracknumberが無い場合は、両方無い場合はファイル名とする
    tracknumberに/がある場合は削除、discが二枚の場合は2.01のような表示だが出来るかな?
  • こうしてみるとDBに加えるのは第一段階で fullpath とmdate、第二段階で上の3つって事になる
    結構DBの中身変わることになるかなあ(・_・?)

二段階合体の実用化DB構想

新規と更新いずれも使えること
<モニタとして使えること>

class makedb():
 init
  self.db=r''
  folda=[r'' 
          ]
  col=['path','mdate','flag','artist','album','title']
  # DB開く、cを引数で渡すか

  for f in folda:
    print('first step....')
    self.first(f)

    print('second step....')
    self.second()

  # DB閉じる

  
  def first(self,f):
    #フルパスとmdate挿入、成功したらそのまま、失敗したらmdate比較して同じならそのまま、違ってたら
    # mdateをupdateしてflagをnullに戻す


  def second(self):
    # DBからflagのNoneを抽出しMutagenで取得したタグをDBにupdate


  def moniter():
    # 更新ファイルを取得したらDBのflagをnullに戻してsecond を呼ぶ
  • kaomoji
0

メモを他の人に見せる

このメモを見せたい人に、このURL(今開いているページのURLです)を教えてあげてください

コメント(0)

  • someone

  • someone