Пример #1
0
 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'Сначала надо подключиться'}        
Пример #2
0
 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}
Пример #3
0
 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"]}
Пример #4
0
 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'Сначала надо подключиться'}        
Пример #5
0
 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'Похоже, заметка отправлена'}
Пример #6
0
    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''}
Пример #7
0
    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
Пример #8
0
 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'Сначала надо подключиться'}        
Пример #9
0
 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}
Пример #10
0
 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'Сначала надо подключиться'}
Пример #11
0
 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'Введите текст сообщения для отправки на стену'}
Пример #12
0
 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'Сначала надо подключиться'}
Пример #13
0
 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'Ошибка'}
Пример #14
0
 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'Производится отключение...'}