本文整理汇总了Python中dbclient.DbClient.getContactList方法的典型用法代码示例。如果您正苦于以下问题:Python DbClient.getContactList方法的具体用法?Python DbClient.getContactList怎么用?Python DbClient.getContactList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类dbclient.DbClient
的用法示例。
在下文中一共展示了DbClient.getContactList方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: broadcastOnlineStatus
# 需要导入模块: from dbclient import DbClient [as 别名]
# 或者: from dbclient.DbClient import getContactList [as 别名]
def broadcastOnlineStatus(self):
'''Queue a status notification message for each of our trusted contacts'''
print("Outgoing postman is broadcasting the status...")
self._broadcasting = True
profileList = DbClient.getContactList("trusted")
if profileList:
msg = StatusNotifyMessage(online=True, ping=True, profileHash=None)
msg.recipients = [c['torid'] for c in profileList]
DbClient.addMessageToOutbox(msg)
self._broadcasting = False
self.flushSignal.emit()
示例2: servePage
# 需要导入模块: from dbclient import DbClient [as 别名]
# 或者: from dbclient.DbClient import getContactList [as 别名]
def servePage(self, view, url, params):
DbClient.exportAvatars(Config.getWebCacheDir())
if url == "/send":
print("send message of type '%(messageType)s' to id '%(sendTo)s'" % params)
elif url.startswith("/delete/"):
DbClient.deleteMessageFromInbox(params.get("msgId", ""))
# Make dictionary to convert ids to names
contactNames = {c['torid']:c['displayName'] for c in DbClient.getContactList()}
unknownSender = I18nManager.getText("messages.sender.unknown")
unknownRecpt = I18nManager.getText("messages.recpt.unknown")
# Get contact requests, responses and mails from inbox
conreqs = []
conresps = []
mails = []
for m in DbClient.getInboxMessages():
m['msgId'] = str(m.get("_id", ""))
if m['messageType'] == "contactrequest":
conreqs.append(m)
elif m['messageType'] == "contactrefer":
senderId = m.get('fromId', None)
m['senderName'] = contactNames.get(senderId, unknownSender)
conreqs.append(m)
elif m['messageType'] == "contactresponse":
if not m.get('accepted', False):
m['messageBody'] = I18nManager.getText("messages.contactrequest.refused")
m['fromName'] = DbClient.getProfile(m['fromId'], True).get("displayName")
elif not m.get('messageBody', False):
m['messageBody'] = I18nManager.getText("messages.contactrequest.accepted")
conresps.append(m)
else:
senderId = m.get('fromId', None)
if not senderId and m.get('signatureKeyId', None):
senderId = DbClient.findUserIdFromKeyId(m['signatureKeyId'])
m['senderName'] = contactNames.get(senderId, unknownSender)
m['sentTimeStr'] = self.makeLocalTimeString(m['timestamp'])
# Split m['recipients'] by commas, and look up each id with contactNames
recpts = m.get('recipients', '')
if recpts:
m['recipients'] = ", ".join([contactNames.get(i, unknownRecpt) for i in recpts.split(",")])
else:
m['recipients'] = unknownRecpt
mails.append(m)
bodytext = self.messagestemplate.getHtml({"contactrequests":conreqs, "contactresponses":conresps,
"mails":mails, "nummessages":len(conreqs)+len(conresps)+len(mails),
"webcachedir" : Config.getWebCacheDir()})
contents = self.buildPage({'pageTitle' : I18nManager.getText("messages.title"),
'pageBody' : bodytext,
'pageFooter' : "<p>Footer</p>"})
view.setHtml(contents)
示例3: generateListPage
# 需要导入模块: from dbclient import DbClient [as 别名]
# 或者: from dbclient.DbClient import getContactList [as 别名]
def generateListPage(self, doEdit=False, userid=None, extraParams=None):
self.requirePageResources(['avatar-none.jpg', 'status-self.png', 'status-requested.png', 'status-untrusted.png', 'status-trusted.png'])
# List of contacts, and show details for the selected one (or self if userid=None)
selectedprofile = DbClient.getProfile(userid)
if selectedprofile is None:
selectedprofile = DbClient.getProfile()
userid = selectedprofile['torid']
ownPage = userid == DbClient.getOwnTorId()
# Build list of contacts
userboxes = []
for p in DbClient.getContactList():
box = Bean()
box.dispName = p['displayName']
box.torid = p['torid']
box.tilestyle = "contacttile" + ("selected" if p['torid'] == userid else "")
box.status = p['status']
box.isonline = Contacts.isOnline(box.torid)
userboxes.append(box)
# expand templates using current details
lefttext = self.listtemplate.getHtml({'webcachedir' : Config.getWebCacheDir(), 'contacts' : userboxes})
pageProps = {"webcachedir" : Config.getWebCacheDir(), 'person':selectedprofile}
# Add extra parameters if necessary
if extraParams:
pageProps.update(extraParams)
# See which contacts we have in common with this person
(sharedContactIds, possIdsForThem, possIdsForMe, nameMap) = ContactMaker.getSharedAndPossibleContacts(userid)
sharedContacts = self._makeIdAndNameBeanList(sharedContactIds, nameMap)
pageProps.update({"sharedcontacts" : sharedContacts})
possibleContacts = self._makeIdAndNameBeanList(possIdsForThem, nameMap)
pageProps.update({"possiblecontactsforthem" : possibleContacts})
possibleContacts = self._makeIdAndNameBeanList(possIdsForMe, nameMap)
pageProps.update({"possiblecontactsforme" : possibleContacts})
# Which template to use depends on whether we're just showing or also editing
if doEdit:
# Use two different details templates, one for self and one for others
detailstemplate = self.editowndetailstemplate if ownPage else self.editdetailstemplate
righttext = detailstemplate.getHtml(pageProps)
else:
detailstemplate = self.detailstemplate # just show
righttext = detailstemplate.getHtml(pageProps)
contents = self.buildTwoColumnPage({'pageTitle' : I18nManager.getText("contacts.title"),
'leftColumn' : lefttext,
'rightColumn' : righttext,
'pageFooter' : "<p>Footer</p>"})
return contents