| 92 | |
| 93 | |
| 94 | class BMAccount(object): |
| 95 | def __init__(self, address = None): |
| 96 | self.address = address |
| 97 | self.type = AccountMixin.NORMAL |
| 98 | if BMConfigParser().has_section(address): |
| 99 | if BMConfigParser().safeGetBoolean(self.address, 'chan'): |
| 100 | self.type = AccountMixin.CHAN |
| 101 | elif BMConfigParser().safeGetBoolean(self.address, 'mailinglist'): |
| 102 | self.type = AccountMixin.MAILINGLIST |
| 103 | elif self.address == str_broadcast_subscribers: |
| 104 | self.type = AccountMixin.BROADCAST |
| 105 | else: |
| 106 | queryreturn = sqlQuery( |
| 107 | '''select label from subscriptions where address=?''', self.address) |
| 108 | if queryreturn: |
| 109 | self.type = AccountMixin.SUBSCRIPTION |
| 110 | |
| 111 | def getLabel(self, address = None): |
| 112 | if address is None: |
| 113 | address = self.address |
| 114 | label = address |
| 115 | if BMConfigParser().has_section(address): |
| 116 | label = BMConfigParser().get(address, 'label') |
| 117 | queryreturn = sqlQuery( |
| 118 | '''select label from addressbook where address=?''', address) |
| 119 | if queryreturn != []: |
| 120 | for row in queryreturn: |
| 121 | label, = row |
| 122 | else: |
| 123 | queryreturn = sqlQuery( |
| 124 | '''select label from subscriptions where address=?''', address) |
| 125 | if queryreturn != []: |
| 126 | for row in queryreturn: |
| 127 | label, = row |
| 128 | return label |
| 129 | |
| 130 | def parseMessage(self, toAddress, fromAddress, subject, message): |
| 131 | self.toAddress = toAddress |
| 132 | self.fromAddress = fromAddress |
| 133 | if isinstance(subject, unicode): |
| 134 | self.subject = str(subject) |
| 135 | else: |
| 136 | self.subject = subject |
| 137 | self.message = message |
| 138 | self.fromLabel = self.getLabel(fromAddress) |
| 139 | self.toLabel = self.getLabel(toAddress) |
| 140 | |
| 141 | |
| 142 | class NoAccount(BMAccount): |
no outgoing calls
no test coverage detected