def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if self.trans.hasUser(bjid): user=self.trans.users[bjid] fl=user.vclient.getFriendList() user.sendFriendList(fl) msg=u'Отправлены запросы авторизации (всего друзей: %s)'%len(fl) return {"status":"completed","title":self.name,'message':msg} else: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if (to_id==0): print "where is id???" return {"status":"completed","title":self.name,'message':u'ПукЪ'} hist=self.trans.users[bjid].vclient.getHistory(to_id) msg=u'' for t,m in hist: msg=u'%s\n%s: %s'%(msg,t,m) return {"status":"completed","title":self.name,'message':msg}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if (args.has_key("text")): #FIXME "too fast" safe!!! if (self.trans.hasUser(bjid)): self.trans.users[bjid].vclient.setStatus(args["text"]) else: #print ("done") return {"status":"completed","title":u"Установка статуса",'message':u'Не получилось.\nСкорее всего, вам надо подключиться (команда .login)'} else: return {"status":"executing","title":u"Установка статуса","form":{"fields":{"text":('text-single',u'Статус')}},'message':u'Введите статус'} self.trans.users[bjid].VkStatus = args["text"] return {"status":"completed","title":u"Установка статуса",'message':u'Похоже, статус установлен (%s)'%args["text"]}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if self.trans.hasUser(bjid): user=self.trans.users[bjid] for i in user.roster.keys(): self.trans.sendPresence(src=i,dest=user.bjid,t='unavailable') user.tonline={} user.refreshData() #fl=user.vclient.getFriendList() #user.sendFriendList(fl) msg=u'Готово' return {"status":"completed","title":self.name,'message':msg} else: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) print(args) if (args.has_key("text")): #FIXME "too fast" safe!!! if (self.trans.hasUser(bjid)): res=self.trans.users[bjid].vclient.addNote(args["text"],args["title"]) if res!=0: return {"status":"completed","title":u"Отправка заметки",'message':u'Ошибка.'} else: return {"status":"completed","title":u"Отправка заметки",'message':u'Не получилось.\nСкорее всего, вам надо подключиться (команда .login)'} else: return {"status":"executing","title":u"Отправка заметки","form":{"fields":{"title":('text-single',u'Заголовок',''),"text":('text-multi',u'Текст','')}},'message':u'Введите текст заметки и название'} return {"status":"completed","title":u"Отправка на стену",'message':u'Похоже, заметка отправлена'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) #print(args) cf=gen.userConfigFields try: user=self.trans.users[bjid] except KeyError: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'} if (len(args)): show_onlines_old = user.getConfig("show_onlines") #try: if (type(user.config)==bool): print "someone f****d our config" user.config={} for i in args: if cf.has_key(i): if cf[i]["type"]=="boolean": user.config[i]=args[i]=="1" else: user.config[i]=args[i] else: print "WTF!" print user.config nc=str(user.config) show_onlines = user.getConfig("show_onlines") #if show_onlines flag changed hide or show online contacts if show_onlines_old and not show_onlines: user.contactsOffline(user.onlineList,force=1) if not show_onlines_old and show_onlines: user.contactsOnline(user.onlineList) user.saveData() #self.trans.saveConfig(bjid) #except KeyError: #print "keyError" #nc="[void]" return {"status":"completed","title":self.name,'message':u'Настройки сохранены'} else: fl={} for i in cf: #print "field ",i val=user.getConfig(i) fl[i]=(cf[i]["type"],cf[i]["desc"],val) #print "fieldList: ",fl return {"status":"executing","title":self.name,"form":{"fields":fl},'message':u''}
def makeCmdList(self,s_jid,v_id): ret={} bjid=gen.bareJid(s_jid) #print bjid,v_id for i in self.globalCmdList: ret[i]=self.globalCmdList[i] if (v_id==0): for i in self.transportCmdList: ret[i]=self.transportCmdList[i] if (bjid==self.admin): for i in self.adminCmdList: ret[i]=self.adminCmdList[i] else: for i in self.contactCmdList: ret[i]=self.contactCmdList[i] #print ret return ret
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if self.trans.hasUser(bjid): user=self.trans.users[bjid] if (args.has_key('code')): pass if (user.vclient.captchaRequestData): logging.warning('captcha cmd!') ret=user.vclient.enterUserapiCaptcha(args['code']) logging.warning('response lenght: %s'%len(str(ret))) msg=u'Запрос отправлен. Проверьте результат операции.' pass else: msg=u'Нет данных для запроса. Или капча не запрашивалась вообще, или это ошибка транспорта.' else: msg=u'А где код?' return {"status":"completed","title":self.name,'message':msg} else: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'}
def run(self,jid,args,sessid="0",to_id=0): #print "login" #print args #return 'test' bjid=gen.bareJid(jid) if (self.trans.isActive==0 and bjid!=self.trans.admin): return {"status":"completed","title":u"Подключение",'message':u"В настоящий момент транспорт неактивен, попробуйте подключиться позже"} if (self.trans.hasUser(bjid)): return {"status":"completed","title":u"Подключение",'message':u'Вы уже подключены'} captcha_key=None msg=u'Производится подключение...' try: #print args['key'] captcha_key=args['key'] msg=u'Производится подключение [капча "%s"]...'%captcha_key except KeyError: pass self.trans.addResource(jid,captcha_key=captcha_key) #print "resources: ",self.trans.users[bjid].resources return {"status":"completed","title":u"Подключение",'message':msg}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if self.trans.hasUser(bjid): user=self.trans.users[bjid] wm=user.vclient.getWall(to_id) msg=u'Стена:' temp={} temp['text']=string.Template("$from ($v_id@$tjid) $date:\n$text") temp['audio']=string.Template("$from ($v_id@$tjid) $date:\n$desc\n( $dlink )") temp['graffiti']=string.Template(u"$from ($v_id@$tjid) $date:\nГраффити ( $dlink )") temp['video']=string.Template(u"$from ($v_id@$tjid) $date:\nВидео:'$desc'\n( $link )\nМиниатюра: $thumb\nСкачать: $dlink") temp['photo']=string.Template(u"$from ($v_id@$tjid) $date:\nФотография:'$desc'\n( $link )\nМиниатюра: $thumb") temp['unknown']=string.Template("$from ($v_id@$tjid) $date:\n[error: cant parse]") for i,m in wm: try: msg="%s\n\n- %s"%(msg,temp[m['type']].safe_substitute(m,tjid=self.trans.jid)) except KeyError: msg="%s\n\n- %s"%(msg,temp['unknown'].substitute(m,tjid=self.trans.jid)) msg=gen.unescape(msg.replace('<br>','\n')).strip() return {"status":"completed","title":self.name,'message':msg} else: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) #if (to_id==0): #print "where is id???" #return {"status":"completed","title":self.name,'message':u'ПукЪ'} print(args) if (args.has_key("text")): #print ("sending wall message...") #FIXME "too fast" safe!!! if (self.trans.hasUser(bjid)): #print ("sending wall message...") res=self.trans.users[bjid].vclient.sendWallMessage(to_id,args["text"]) #if res==1: #return {"status":"completed","title":u"Отправка на стену",'message':u'Ошибка сети'} #elif res==2: #return {"status":"completed","title":u"Отправка на стену",'message':u'Ошибка. Возможно запись на стену запрещена.'} if res!=0: return {"status":"completed","title":u"Отправка на стену",'message':u'Неизвестная ошибка.'} return {"status":"completed","title":u"Отправка на стену",'message':u'Сообщение отправлено'} else: return {"status":"completed","title":u"Отправка на стену",'message':u'Не получилось.\nСкорее всего, вам надо подключиться (команда .login)'} else: return {"status":"executing","title":u"Отправка на стену","form":{"fields":{"text":('text-single',u'Сообщение','')}},'message':u'Введите текст сообщения для отправки на стену'}
def run(self,jid,args,sessid="0",to_id=0): y=time.gmtime().tm_year m=time.gmtime().tm_mon d=time.gmtime().tm_mday delta=5 bjid=gen.bareJid(jid) if self.trans.hasUser(bjid): user=self.trans.users[bjid] cal=user.vclient.getCalendar(month=m,year=y) for i in cal: if (i>d and i<d+delta): for j in cal[i]: if (j[:2]=="id"): t=time.strptime("%s.%s.%s"%(i,m,y),"%d.%m.%Y") self.trans.sendMessage( src="%s@%s"%(j[2:],self.trans.jid), dest=jid, body=u"Скоро день рождения пользователя: %s"%time.strftime("%a, %d %b",t), title=u"pyvk-t") #FIXME работа в конце месяца!! return {"status":"completed","title":self.name,'message':u'Уведомления высланы от имени соответствующих пользователей'} else: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) try: user=self.trans.users[bjid] except KeyError: return {"status":"completed","title":self.name,'message':u'Сначала надо подключиться'} print args #if (len(args)<1): #TODO run in pool? if (args.has_key("operation")): # return values from userapi.com #retval={0:u'Текущий статус: Не друзья', #1:u'Заявка отправлена', #2:u'Текущий статус: Друзья', #3:u'Вы приняли заявку', #4:u'Вы отклонили заявку', #5:u'Текущий статус: Не друзья', #} if args["operation"]=='add': add=True # possible values: 2(accepted), 4(sent) retval={4:u'Заявка отправлена', 2:u'Вы приняли заявку', } user.vclient.addDeleteFriend(to_id,1) elif args["operation"]=='del': #possible values: 4(rejected), 5 (deleted), 0(cancelled) retval={4:u'Вы отклонили заявку', 5:u'Друг удален', 0:u'Не друг' } add=False else: return {"status":"completed","title":self.name,'message':u'Неизвестная операция: %s'%args["operation"]} res=user.vclient.addDeleteFriend(to_id,add) print res try: return {"status":"completed","title":self.name,'message':u'Выполнено (%s)'%(retval[res])} except KeyError: return {"status":"completed","title":self.name,'message':u'Выполнено (ok: %s)'%(res)} else: isFriend=self.trans.users[bjid].vclient.isFriend(to_id) fl={"operation":("text-single",u'Операция',"")} if (isFriend==0): st=u"друг" opt=u"del - удалить" elif (isFriend==1): st=u"не друг" opt=u"add - отправить заявку" elif (isFriend==2): st=u"не друг (сделал заявку)" opt=u"add - принять заявку, del - отклонить" elif (isFriend==-1): st=u"<внутренняя ошибка транспорта>" opt=u"<внутренняя ошибка транспорта>" return {"status":"executing","title":self.name,"form":{"fields":fl}, 'message':u'Сейчас пользователь - %s\nДоступные операции: %s'%(st,opt)} print args return {"status":"completed","title":self.name,'message':u'Ошибка'}
def run(self,jid,args,sessid="0",to_id=0): bjid=gen.bareJid(jid) if(self.trans.hasUser(bjid)): self.trans.users[bjid].logout() return {"status":"completed","title":u"Отключение",'message':u'Производится отключение...'}