Changes in python/wa.py [7051acb:365b25a]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
python/wa.py
r7051acb r365b25a 280 280 def onStatusNotification(self, status): 281 281 print "New status for %s: %s" % (status.getFrom(), status.status) 282 self. bee.buddy_status_msg(status.getFrom(), status.status)282 self.cb.buddy_status_msg(status.getFrom(), status.status) 283 283 284 284 def onGroupSubjectNotification(self, sub): … … 329 329 "type": "int", 330 330 }, 331 "reg_mode": {332 "default": "sms",333 },334 331 "name": { 335 332 "flags": 0x100, # NULL_OK 336 },337 # EW! Need to include this setting to trick BitlBee into338 # doing registration instead of refusing to login w/o pwd.339 # TODO: Make this a flag instead of faking oauth.340 "oauth": {341 "default": True,342 333 }, 343 334 } … … 349 340 350 341 def login(self, account): 351 super(YowsupIMPlugin, self).login(account) 352 self.account = account 353 self.number = self.account["user"].split("@")[0] 354 self.registering = False 355 if not self.account["pass"]: 356 return self._register() 357 358 self.stack = self._build_stack() 342 self.stack = self.build_stack(account) 359 343 self.daemon = YowsupDaemon(name="yowsup") 360 344 self.daemon.stack = self.stack … … 382 366 self.stack.execDetached(self.daemon.StopDaemon) 383 367 384 def _register(self):385 self.registering = True386 self.bee.log("New account, starting registration")387 from yowsup.registration import WACodeRequest388 cr = WACodeRequest(str(self.setting("cc")), self.number,389 "000", "000", "000", "000",390 self.setting("reg_mode"))391 res = cr.send()392 res = {k: v for k, v in res.iteritems() if v is not None}393 if res.get("status", "") != "sent":394 self.bee.error("Failed to start registration: %r" % res)395 self.bee.logout(False)396 return397 398 text = ("Registration request sent. You will receive a SMS or "399 "call with a confirmation code. Please respond to this "400 "message with that code.")401 sender = "wa_%s" % self.number402 self.bee.add_buddy(sender, "")403 self.bee.buddy_msg(sender, text, 0, 0)404 405 def _register_confirm(self, code):406 from yowsup.registration import WARegRequest407 code = code.strip().replace("-", "")408 rr = WARegRequest(str(self.setting("cc")), self.number, code)409 res = rr.send()410 res = {k: v for k, v in res.iteritems() if v is not None}411 if (res.get("status", "") != "ok") or (not self.get("pw", "")):412 self.bee.error("Failed to finish registration: %r" % res)413 self.bee.logout(False)414 return415 self.bee.log("Registration finished, attempting login")416 self.bee.set_setstr("password", res["pw"])417 self.account["pass"] = res["pw"]418 self.login(self.account)419 420 368 def buddy_msg(self, to, text, flags): 421 if self.registering:422 return self._register_confirm(text)423 369 msg = TextMessageProtocolEntity(text, to=to) 424 370 self.yow.Ship(msg) … … 442 388 443 389 def set_set_name(self, _key, value): 444 #self.yow.Ship(PresenceProtocolEntity(name=value)) 445 pass 390 self.yow.Ship(PresenceProtocolEntity(name=value)) 446 391 447 392 def chat_join(self, id, name, _nick, _password, settings): … … 489 434 del group["id"] 490 435 491 def _build_stack(self): 492 creds = (self.number, self.account["pass"]) 436 def build_stack(self, account): 437 self.account = account 438 creds = (account["user"].split("@")[0], account["pass"]) 493 439 494 440 stack = (YowStackBuilder() 495 .pushDefaultLayers( False)441 .pushDefaultLayers(True) 496 442 .push(BitlBeeLayer) 497 443 .build()) … … 527 473 lines.append(msg.getCaption()) 528 474 text = "\n".join(lines) 475 else: 476 text = "Message of unknown type %r" % type(msg) 529 477 530 478 if msg.getParticipant():
Note: See TracChangeset
for help on using the changeset viewer.