~stefanor/ibid/translation-334764

« back to all changes in this revision

Viewing changes to ibid/plugins/identity.py

  • Committer: Stefano Rivera
  • Date: 2009-03-08 13:16:28 UTC
  • Revision ID: stefano@rivera.za.net-20090308131628-nx1cbjo2xzjwomhs
Migrated plugins to new addresponse() signature

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
                admin = True
30
30
            else:
31
31
                account = session.query(Account).filter_by(id=event.account).first()
32
 
                event.addresponse(u'You already have an account called "%s".' % account.username)
 
32
                event.addresponse(u'You already have an account called "%s"', account.username)
33
33
                return
34
34
 
35
35
        account = session.query(Account).filter_by(username=username).first()
36
36
        if account:
37
 
            event.addresponse(u'There is already an account called "%s". Please choose a different name.' % account.username)
 
37
            event.addresponse(u'There is already an account called "%s". Please choose a different name', account.username)
38
38
            return
39
39
 
40
40
        account = Account(username)
51
51
 
52
52
        identify_cache.clear()
53
53
        session.close()
54
 
        event.addresponse(u'Done')
 
54
        event.addresponse(True)
55
55
 
56
56
chars = string.letters + string.digits
57
57
 
78
78
                username = event.sender['id']
79
79
                account = session.query(Account).filter_by(username=username).first()
80
80
                if account:
81
 
                    event.addresponse(u"I tried to create the account %s for you, but it already exists. Please use 'create account <name>'." % username)
 
81
                    event.addresponse(u'I tried to create the account %s for you, but it already exists. '
 
82
                        u"Please use 'create account <name>'", username)
82
83
                    return
83
84
                account = Account(username)
84
85
                session.save_or_update(account)
88
89
                session.save_or_update(currentidentity)
89
90
                session.flush()
90
91
                identify_cache.clear()
91
 
                event.addresponse(u"I've created the account %s for you" % username)
 
92
                event.addresponse(u"I've created the account %s for you", username)
92
93
                log.info(u"Created account %s (%s) by %s/%s (%s)", account.id, account.username, event.account, event.identity, event.sender['connection'])
93
94
                log.info(u"Attached identity %s (%s on %s) to account %s (%s)", currentidentity.id, currentidentity.identity, currentidentity.source, account.id, account.username)
94
95
 
98
99
            admin = True
99
100
            account = session.query(Account).filter_by(username=username).first()
100
101
            if not account:
101
 
                event.addresponse(u"I don't know who %s is" % username)
 
102
                event.addresponse(u"I don't know who %s is", username)
102
103
                return
103
104
 
104
105
        ident = session.query(Identity).filter(func.lower(Identity.identity)==identity.lower()).filter(func.lower(Identity.source)==source.lower()).first()
105
106
        if ident and ident.account:
106
 
            event.addresponse(u'This identity is already attached to account %s' % ident.account.username)
 
107
            event.addresponse(u'This identity is already attached to account %s', ident.account.username)
107
108
            return
108
109
 
109
110
        if source.lower() not in ibid.sources:
110
 
            event.addresponse(u"I am not connected to %s" % source)
 
111
            event.addresponse(u'I am not connected to %s', source)
111
112
        else:
112
113
            source = ibid.sources[source.lower()].name
113
114
 
136
137
            session = ibid.databases.ibid()
137
138
            (account_id, user, source) = self.tokens[token]
138
139
            if event.source.lower() != source.lower() or event.sender['id'].lower() != user.lower():
139
 
                event.addresponse(u'You need to send me this token from %s on %s' % (user, source))
 
140
                event.addresponse(u'You need to send me this token from %(name)s on %(source)s', {
 
141
                    'name': user,
 
142
                    'source': source,
 
143
                })
140
144
                return
141
145
 
142
146
            identity = session.query(Identity).filter(func.lower(Identity.identity)==user.lower()).filter(func.lower(Identity.source)==source.lower()).first()
163
167
                return
164
168
            account = session.query(Account).filter_by(username=username).first()
165
169
            if not account:
166
 
                event.addresponse(u"I don't know who %s is" % username)
 
170
                event.addresponse(u"I don't know who %s is", username)
167
171
                return
168
172
 
169
173
        identity = session.query(Identity).filter_by(account_id=account.id).filter(func.lower(Identity.identity)==user.lower()).filter(func.lower(Identity.source)==source.lower()).first()
193
197
                return
194
198
            account = session.query(Account).filter_by(id=event.account).first()
195
199
            if not account:
196
 
                event.addresponse(u"%s doesn't exist. Please use 'add account' first" % username)
 
200
                event.addresponse(u"%s doesn't exist. Please use 'add account' first", username)
197
201
                return
198
202
 
199
203
        else:
201
205
                return
202
206
            account = session.query(Account).filter_by(username=username).first()
203
207
            if not account:
204
 
                event.addresponse(u"I don't know who %s is" % username)
 
208
                event.addresponse(u"I don't know who %s is", username)
205
209
                return
206
210
 
207
211
        account.attributes.append(Attribute(name, value))
208
212
        session.save_or_update(account)
209
213
        session.flush()
210
214
        session.close()
211
 
        event.addresponse(u'Done')
 
215
        event.addresponse(True)
212
216
        log.info(u"Added attribute '%s' = '%s' to account %s (%s) by %s/%s (%s)", name, value, account.id, account.username, event.account, event.identity, event.sender['connection'])
213
217
 
214
218
class Describe(Processor):
221
225
        if username.upper() == 'I':
222
226
            if not event.account:
223
227
                identity = session.query(Identity).get(event.identity)
224
 
                event.addresponse(u"%s on %s" % (identity.identity, identity.source))
 
228
                event.addresponse(u"%(name)s on %(source)s", {
 
229
                    'name': identity.identity,
 
230
                    'source': identity.source,
 
231
                })
225
232
                return
226
233
            account = session.query(Account).get(event.account)
227
234
 
228
235
        else:
229
236
            account = session.query(Account).filter_by(username=username).first()
230
237
            if not account:
231
 
                event.addresponse(u"I don't know who %s is" % username)
 
238
                event.addresponse(u"I don't know who %s is", username)
232
239
                return
233
240
 
234
 
        event.addresponse(u'%s is %s' % (account.username, ', '.join('%s on %s' % (identity.identity, identity.source) for identity in account.identities)))
 
241
        event.addresponse(u'%(accountname)s is %(identities)s', {
 
242
            'accountname': account.username,
 
243
            'identities': u', '.join(u'%s on %s' % (identity.identity, identity.source) for identity in account.identities),
 
244
        })
235
245
        session.close()
236
246
 
237
247
class Identify(Processor):