From b4137a6f85cedf2f3b7242c3a8a52bd267b19901 Mon Sep 17 00:00:00 2001 From: Siarhei Fiedarcou Date: Thu, 5 Aug 2010 15:31:22 +0300 Subject: [PATCH] Songs without Artist tag names as Unknown --- src/audiodb.py | 8 ++++++- src/audiodb.pyc | Bin 0 -> 5276 bytes src/foo | Bin 18432 -> 20480 bytes src/mainwindow.py | 5 +++-- src/mainwindow.pyc | Bin 2724 -> 2837 bytes src/treeview.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 src/audiodb.pyc rewrite src/foo (62%) create mode 100644 src/treeview.py diff --git a/src/audiodb.py b/src/audiodb.py index 3712917..7cebe5b 100644 --- a/src/audiodb.py +++ b/src/audiodb.py @@ -73,8 +73,14 @@ class AudioDB: try: # print "insert into artists (`title`) values ('%s')" % currentSongID3["artist"][0] query.exec_("insert into artists (`title`) values ('%s')" % currentSongID3["artist"][0]) + # currentSongID3.pprint() # print currentSongID3["artist"] - except KeyError: pass + except KeyError: + query.exec_("insert into artists (`title`) values ('Unknown')") + currentSongID3["artist"] = u"Unknown" + currentSongID3.save() + # currentSongID3.pprint() + print "Unknown" except: pass #-------------------------------------------------- # query.prepare("insert into %s (id, file_name, artist, album, title) values (:id, :file_name, :artist, :album, :title)" % (self.name)) diff --git a/src/audiodb.pyc b/src/audiodb.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5247fa948209d6127c8f2935e47786160f076885 GIT binary patch literal 5276 zcwWU=TXWk~5Z)s@PVHQpq?AjcpaPvbToT$828Pn%k^&tdLll^T8E_QqBvC9&iFDl5 zOu|b$yztI2yzs^Ye}iAZU*QkHetYCgQV6t$#*Wr|uKITM?e0;2`+cJFsjhw4p!{=! zuQ&P1zGD&apQ0vFq^PDyq3ux9p{PK$f^8S5S)^!$Y9qE?q-Kd~CCc?ts*O@GLU)L2 zCn(_l3I(HR-X{9IRwiABR;!S%P&h^bPvRbj6x!n$Q@qbgb&T755z(E93)< zUp`6u+$g}#tx-zGNbNaj&+N>S;_DlSCtb&+e9t15@&qfs&uVpMfLERua{EklNKTeY^-7wjF!#94EY|LkAW8QBEVG^v(ZFjs1F9FUBXh_Yd zD^yaa)hRXY2>!P)b@A;UJ>inKG5;49n!rkS7|7*-s!$5xD3l@|8k7+*5lX4c#8EIY zr=*aPiO9^mBSd8WK^X&8p^Q^7Cdvc_>q9x$AeQU(Fb++<4gkU&QVp;OcW}Bmer5p{ z@^rqr1O|ry`}4N#6izdi4~*JY^a1M@C0O*Z4?F@#lgnNV52nH813Dr zOnY`W@f2)Y5^5~3EPr_YlWW;SaAKNlyT)IOw7cr3hDo2TW+{B0YTxL?LvA%!>tV3! za#ZLIow{*i+_)V@?sgis{IugXb;tGFhQo%pY3bO!;I5j`M0(Y2Z2D>S(#x;R_E)vz zaHp+jvr~uhL~HF9!};NEICcbRpxrx|BaGnDj`q_W>BX03kHS8i%^U)qCGiGh{`D@* zc7P#6xevsDYv@0ja|C=|icA#yE#0&C(&Yj3s+Dd~VUC9=Fylg@ooJC`XU)&FL4omu zpw~up1Z(D`grezoFYyMlQ?kt#mGe!O+dAz?PSm$_qi*B3;m4B5y=e&0)Wbbw+71>B z7u}WKv#G~=_cV5S6nm+%b6QQQ31?hQ^uHx3gt(5(KF$HW!vTb`@KRmhLe#xV{S0(h zCd4ff>{2eJ=J$aKrbj6ETq8;{EhB<+D2SfROI{zq)%8)Kiwj;b-Q*bBntd3WkV}py zamGcnj>s5rktgwxzdI4BiWOc_$v@+CAUd++NdeE zaNv9;#l=>O&RHoKMHCFq@?0q%;{x&6!$|ix;@7Cik9?~_$%~};lTWopgUf|oafN^K zLc~?$z4v2&M4#Q*`5sGHeik1n9T_j|}N1ar5fHxy@#pS@)(NwKaEK zIG29WxOXLo`P^8aDwulhBya-H0PoGdoM!FL!g>_ z7a=Y|EI?d_cp2iA118% literal 0 HcwPel00001 diff --git a/src/foo b/src/foo dissimilarity index 62% index 4d0292ba94f08eea6bc3f492e61d888309b778b8..ef44c43725f2fef189a3a43f4df59534c5090571 100644 GIT binary patch literal 20480 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 delta 365 zcwTE*z}PT>ae|Z(qXGj2umdp<5c6-;F<@lmogB+}hmmKq6%#8XBiCdH<~~O5$>*63 zMR0H0V@ A+W-In diff --git a/src/mainwindow.py b/src/mainwindow.py index b73e2f4..16a0887 100644 --- a/src/mainwindow.py +++ b/src/mainwindow.py @@ -1,5 +1,5 @@ from PyQt4 import QtGui, QtCore - +from audiodb import AudioDB class CatalogMainWindow(QtGui.QMainWindow): def __init__(self, parent=None): @@ -58,7 +58,8 @@ class CatalogMainWindow(QtGui.QMainWindow): @QtCore.pyqtSlot() def act_create_new_db(self): - QtGui.QMessageBox.aboutQt(self) + a = AudioDB() + a.create_new("foo", "/home/miksayer/Files/Music") @QtCore.pyqtSlot() def act_help(self): diff --git a/src/mainwindow.pyc b/src/mainwindow.pyc index 9bc04d057ad961bcd65d186ce66ba451b83215ef..b22b1c0c25bca25e72af57c6b26d6d7ef6deb4d5 100644 GIT binary patch delta 516 zcwR+NO-lk%6uoc0bVdseMoQ^}R#S`IL@gxHv}lo%V-UHC$v4uV&VVz62t^B9y2u_u z+n`O$aMzCr`YWwk_O50P+%uQ=&O7Ja`=URlGM`^_+8(VRH{kb^dF6Te#Ze}`1waL8 ziO`myE&-t;*aRFIngpl>cK`!`^ST05hMJ*_YU@dZ@W(-fLm{M&SK5CIzX?&suJ9@l zl`YE8B+lODF^Mr(dE$LcE#0ng`YxIZ7(r;D2DT!vBAzd!=)~=Yz%`G+{Rw6p2s{;V zbEH-R#HQ!@Y5vb%c^y03aaz9Bx4YRxr)~S$a_Bn^1GPe^OdU$}N}dK1SR z%wVy3wU9)y9Hx*a=~Tk%kz8T}nVTFY6Pq~55y`V*v_K^G5jAuq1h`J?(hGxsR!Lst zZHb+#JBosbF?O$}blic7R^}=KatuH^5g#=DK-Q&-5t&Jz^sB+PiE+%oeOtJ1dO4jd c#-Uoa9QVv|sn;{bnOu<#wS_27k|GJ=2ly^my8r+H delta 363 zcwU<-wnS9=;wN4%{j-ri$qZ1y0>lnLTx>j1T1t+IA(fFKlbIonks*bdp@o5=nSmiP ziiIJCg&|mjbz-v8#%Vto8Cf^?Gp%G|}5j9ioZ*=7LQ3prf)Wr4<- zgN$SXS->>;G@F%RkOq($qzNQ67(pzEN=YEoni!R=azLj2= len(self.itemData): + return False + itemData[column] = value + return True + + def insertChildren(self, position, count, columns): + if position < 0 or position > len(self.childItems): + return False + for row in xrange(count): + item = AudioTreeItem([], self) + self.childItems.append(position,item) + return True + + def removeChildren(self, position, count): + if position < 0 or position + count > len(self.childItems): + return False + for row in xrange(count): + del self.childItems[position] + return True + + def insertColumns(self, position, columns): + if position < 0 or position > len(self.itemData): + return False + for column in xrange(columns): + self.itemData.insert(position, QtCore.QVariant()) + + for child in self.childItems: + child.insertColumns(position, columns) + + +class AudioTreeModel(QtCore.QAbstractItemModel): + def __init__(self, headers, data, parent = None): + + + -- 2.11.4.GIT