本文整理汇总了Python中models.Author.get_by方法的典型用法代码示例。如果您正苦于以下问题:Python Author.get_by方法的具体用法?Python Author.get_by怎么用?Python Author.get_by使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类models.Author
的用法示例。
在下文中一共展示了Author.get_by方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: scan
# 需要导入模块: from models import Author [as 别名]
# 或者: from models.Author import get_by [as 别名]
def scan(self):
try:
if sys.platform == 'win32':
ZBARPATH = list(which('zbarcam'))
if not ZBARPATH:
ZBARPATH = list(which('zbarcam', path=[r"C:\Program Files\ZBar\bin", r"C:\Program Files (x86)\ZBar\bin"]))[0]
else:
ZBARPATH = list(which('zbarcam'))[0]
except:
ZBARPATH = None
if not ZBARPATH:
QtGui.QMessageBox.information(None, "Aranduka - Error", "Can't find zbarcam. Get it at http://zbarcam.sf.net")
return
p=os.popen(ZBARPATH,'r')
p = subprocess.Popen([ZBARPATH], stdout=subprocess.PIPE).communicate()[0]
# p = "DEMO:0345400445"
guesser = manager.getPluginsOfCategory('Guesser')[0]
for code in p.splitlines():
print("scanning")
if code:
print(('Got barcode:', code))
isbn = code.split(':')[1]
# QtGui.QDesktopServices.openUrl(QtCore.QUrl('http://www.goodreads.com/search/search?q=%s'%isbn))
i = Identifier(key='ISBN', value=isbn)
# Create empty book
b = Book(identifiers = [i])
# We are supposed to have a ISBN, so assume we are getting it right.
dlg = GuessDialog(b)
dlg.isbn.setChecked(True)
dlg.on_guessButton_clicked()
r = dlg.exec_()
# FIXME this is copied from book_editor.
# The Book class probably needs an "update from metadata" method.
md = None
if not r == dlg.Accepted:
md = None
b.delete()
elif dlg.currentMD:
md = dlg.currentMD
if md is None:
return
else:
# A candidate was chosen, update data
print(md)
b.title = md.title
if md.identifiers is not None:
for k,v in md.identifiers:
i = Identifier(
key=k.upper(),
value=v,
book=b)
b.authors = []
for a in md.authors:
author = Author.get_by(name = a)
if not author:
print(("Creating author:", a))
author = Author(name = a)
b.authors.append(author)
Author.sanitize()
# FIXME: it seems Qt can't parse alibris cover images?
# b.fetch_cover(md.thumbnail)
b.fetch_cover()
session.commit()