kindle manager
This commit is contained in:
4
kman.py
4
kman.py
@@ -63,8 +63,8 @@ SYS = 'WIN' if platform.system()=='Windows' else \
|
||||
# some constants
|
||||
LASTLINE = '=========='
|
||||
NTPREF = '--CG注:'
|
||||
#CLIPPATH = './My Clippings.txt' # /Volumes/Kindle/documents/My\ Clippings.txt
|
||||
CLIPPATH = './tclip.txt'
|
||||
CLIPPATH = './My Clippings.txt' # /Volumes/Kindle/documents/My\ Clippings.txt
|
||||
#CLIPPATH = './tclip.txt'
|
||||
OUTPREF = './clip'
|
||||
DEBUG = 1 # 0 - INFO; 1 - DEBUG
|
||||
LOG2FILE = 1 # 0 - to stdio; 1 - to file
|
||||
|
||||
86
kmanapp.py
86
kmanapp.py
@@ -47,9 +47,7 @@ class kmanWindow(QMainWindow):
|
||||
self.filter_data = self.km.filter_clips(self.books)
|
||||
|
||||
self.add_ui_component()
|
||||
|
||||
self.show_status_info()
|
||||
self.fill_treeview()
|
||||
self.refresh_ui_component()
|
||||
|
||||
# timer to check status of kindle
|
||||
self.timer = QTimer(self)
|
||||
@@ -93,62 +91,29 @@ class kmanWindow(QMainWindow):
|
||||
self.ui.tableView.horizontalHeader().setStretchLastSection(True)
|
||||
self.ui.tablemodel.tabledata_update.connect(self.tabledata_update_slot)
|
||||
|
||||
# initial textedit content
|
||||
def refresh_ui_component(self):
|
||||
self.fill_treeview()
|
||||
self.show_status_info()
|
||||
|
||||
# refresh tableview
|
||||
data = self.convert_to_panda(self.filter_data)
|
||||
del self.ui.tablemodel
|
||||
self.ui.tablemodel = nTableModel(data)
|
||||
self.ui.tableView.verticalHeader().hide()
|
||||
self.ui.tableView.setModel(self.ui.tablemodel)
|
||||
|
||||
# refresh textedit content
|
||||
[stype,sbookname,sauthor,sposition,stime,scontent] = self.filter_data[0]
|
||||
self.ui.textEdit.setHtml("""<span style='font-size:22pt;color:maroon'>《{bookname}》</span>
|
||||
<span style='font-size:22pt;color:maroon'> {author} </span>
|
||||
<span style='font-size:22pt;color:maroon'>{time}</span>
|
||||
<span style='font-size:22pt;color:maroon'> ({time}) </span>
|
||||
<span style='font-size:11pt;color:maroon'> 【{note}】 </span><br><br>
|
||||
<span>********************************************************</span><br><br>
|
||||
<span><HR style="FILTER: progid:DXImageTransform.Microsoft.Shadow(color:#987cb9,direction:145,strength:15)" width="95%" color=#987cb9 SIZE=1></span>
|
||||
<span style='font-size:22pt;color:#31849B'>{content}</span>
|
||||
<span style='font-size:11pt;color:maroon'>【P{position}】</span><br>""".
|
||||
format(bookname=sbookname, author=sauthor, time=stime,
|
||||
note=stype, content=scontent, position=sposition))
|
||||
|
||||
|
||||
"""
|
||||
if not ONLY_TEST: # XXXXXXXXXXXXX
|
||||
model = QStandardItemModel()
|
||||
rootItem = model.invisibleRootItem()
|
||||
idx = 0
|
||||
for i in range(4):
|
||||
idx += 1
|
||||
item = QStandardItem('item {}'.format(idx))
|
||||
rootItem.appendRow(item)
|
||||
icon = QIcon()
|
||||
icon.addFile(u":/icons/book_open_bookmark.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
item.setIcon(icon)
|
||||
if i==0:
|
||||
parentItem = item
|
||||
icon = QIcon()
|
||||
icon.addFile(u":/icons/emblem_library.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
item.setIcon(icon)
|
||||
parentItem.appendRows([QStandardItem('append rows {}'.format(i+idx)) for i in range(5)])
|
||||
if i==1:
|
||||
parentItem = item
|
||||
for i in range(5):
|
||||
idx += 1
|
||||
item = QStandardItem('type item {}'.format(i+idx))
|
||||
#item.setEnabled(False)
|
||||
item.setEditable(False)
|
||||
icon = QIcon()
|
||||
icon.addFile(u":/icons/register.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
item.setIcon(icon)
|
||||
parentItem.appendRow(item)
|
||||
if i==3:
|
||||
parentItem = item
|
||||
for i in range(5):
|
||||
idx += 1
|
||||
item = QStandardItem('another item {}'.format(i+idx))
|
||||
#item.setEnabled(False)
|
||||
item.setEditable(False)
|
||||
icon = QIcon()
|
||||
icon.addFile(u":/icons/book_open.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
item.setIcon(icon)
|
||||
parentItem.appendRow(item)
|
||||
self.ui.treeView.setModel(model)
|
||||
"""
|
||||
|
||||
def convert_to_panda(self, seclist):
|
||||
pdframe = pd.DataFrame(seclist, \
|
||||
columns = ['Type','Bookname','Author','Position','Date','Content'])
|
||||
@@ -166,7 +131,6 @@ class kmanWindow(QMainWindow):
|
||||
description = item.accessibleDescription()
|
||||
print(description, item.text())
|
||||
|
||||
|
||||
# filter clips
|
||||
self.filter_data = None
|
||||
if description in ['root', 'bookname', 'author']:
|
||||
@@ -179,6 +143,7 @@ class kmanWindow(QMainWindow):
|
||||
self.filter_data = self.km.filter_clips(self.books, info, 2)
|
||||
|
||||
data = self.convert_to_panda(self.filter_data)
|
||||
del self.ui.tablemodel
|
||||
self.ui.tablemodel = nTableModel(data)
|
||||
self.ui.tableView.verticalHeader().hide()
|
||||
self.ui.tableView.setModel(self.ui.tablemodel)
|
||||
@@ -192,11 +157,12 @@ class kmanWindow(QMainWindow):
|
||||
sposition = index.sibling(row, 3).data()
|
||||
stime = index.sibling(row, 4).data()
|
||||
scontent = index.sibling(row, 5).data()
|
||||
else: return
|
||||
else:
|
||||
return
|
||||
|
||||
self.ui.textEdit.setHtml("""<span style='font-size:22pt;color:maroon'>《{bookname}》</span>
|
||||
<span style='font-size:22pt;color:maroon'> {author} </span>
|
||||
<span style='font-size:22pt;color:maroon'>{time}</span>
|
||||
<span style='font-size:22pt;color:maroon'> ({time}) </span>
|
||||
<span style='font-size:11pt;color:maroon'> 【{note}】 </span><br><br>
|
||||
<span>********************************************************</span><br><br>
|
||||
<span style='font-size:22pt;color:#31849B'>{content}</span>
|
||||
@@ -214,11 +180,13 @@ class kmanWindow(QMainWindow):
|
||||
#print(search_clip(self.books,s,'ALL',p[t]))
|
||||
print('call search_scope_change()')
|
||||
|
||||
## XXXX
|
||||
## XXX
|
||||
'''
|
||||
def check_kindle_status(self):
|
||||
while self.flag:
|
||||
self.show_status_info()
|
||||
sleep(2)
|
||||
'''
|
||||
|
||||
def show_status_info(self):
|
||||
""" show status information on statusbar
|
||||
@@ -244,9 +212,10 @@ class kmanWindow(QMainWindow):
|
||||
return 0
|
||||
|
||||
self.books = self.km.import_clips(self.km.get_kindle_path())
|
||||
self.filter_data = self.km.filter_clips(self.books)
|
||||
|
||||
status = self.km.status_info()
|
||||
self.show_status_info()
|
||||
self.refresh_ui_component()
|
||||
|
||||
print(bks)
|
||||
|
||||
@@ -258,8 +227,9 @@ class kmanWindow(QMainWindow):
|
||||
self.fn = fn
|
||||
|
||||
self.books = self.km.import_clips(fn)
|
||||
self.filter_data = self.km.filter_clips(self.books)
|
||||
|
||||
self.show_status_info()
|
||||
self.refresh_ui_component()
|
||||
|
||||
#print('filename ', fn, 'filetype ', ft)
|
||||
if fn == "": return False
|
||||
@@ -405,6 +375,10 @@ if __name__ == "__main__":
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
kmw = kmanWindow()
|
||||
icon = QIcon()
|
||||
icon.addFile(u":/icons/Cbb20.png", QSize(), QIcon.Normal, QIcon.Off)
|
||||
kmw.setWindowIcon(icon)
|
||||
kmw.setWindowTitle("kindle management")
|
||||
#kmw.resize(900, 600)
|
||||
kmw.showFullScreen()
|
||||
kmw.show()
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
TYPE|BOOKNAME|AUTHOR|MARKTIME|CONTENT
|
||||
--|--|--|--|--
|
||||
HL|薛兆丰经济学讲义|薛兆丰|2020/1/13 8:11:05|么到底什么叫边际?边际就是“新增”带来的“新增”。 例如,边际成本就是每新增一个单位产品所需要付出的新增成本;边际收入是每多卖一个产品能够带来的新增收入;边际产量是每新增一份投入所带来的新增产量;边际效用是每消耗一个单位的商品所能带来的新增享受。
|
||||
HL|薛兆丰经济学讲义|薛兆丰|2020/1/30 10:23:58|一个国家很大,贫富有差距,并非每个学校和家长都能负担得起这样标准的校车。标准太高,就会逼着很多学校,尤其是农村的学校放弃提供校车,家长们就只能使用安全性能更低的交通工具,比如自己骑自行车或雇用黑车等,结果是孩子们享受到的安全保障反而降低了。
|
||||
NT|薛兆丰经济学讲义|薛兆丰|2020/1/30 10:26:31|山寨 假货 问题
|
||||
Reference in New Issue
Block a user