Advertisement
Guest User

Bot_Vk.py

a guest
Feb 25th, 2018
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.50 KB | None | 0 0
  1. from datetime import datetime
  2. from time import sleep
  3. import vk_api
  4. from vk_api.longpoll import VkLongPoll, VkEventType
  5. import login
  6.  
  7. def main():
  8.  
  9.     def captcha_handler(captcha):
  10.         key = input("Enter captcha code {0}: ".format(captcha.get_url())).strip()
  11.         return captcha.try_again(key)
  12.  
  13.     vk_session = vk_api.VkApi(login=login.log,
  14.                               password=login.passw,
  15.                               captcha_handler=captcha_handler)
  16.     vk_session.auth()
  17.     longpoll = VkLongPoll(vk_session)
  18.     vk = vk_session.get_api()
  19.     tools = vk_api.VkTools(vk_session)
  20.     my_profile = vk.users.get()
  21.     my_id = my_profile[0]['id']
  22.     print(my_id)
  23.  
  24.     def last_seen():
  25.         last_seen = vk.users.get(user_id=event.user_id, fields='last_seen')
  26.         last_seen = (last_seen[0]['last_seen']['time'])
  27.         last_seen = datetime.fromtimestamp(last_seen).strftime('%H:%M:%S')
  28.         return last_seen
  29.  
  30.  
  31.     def platform():
  32.         platform = str(event.platform)
  33.         platform = platform[11:].capitalize()
  34.         return platform
  35.  
  36.  
  37.     def sex(id):
  38.         sex = vk.users.get(user_id=id, fields='sex')
  39.         return sex[0]['sex']
  40.  
  41.  
  42.     def fam_name(id):
  43.         last_name = vk.users.get(user_id=id, fields='last_name')
  44.         first_name = vk.users.get(user_id=id, fields='first_name')
  45.         last_name = last_name[0]['last_name']
  46.         first_name = first_name[0]['first_name']
  47.         name = last_name + ' ' + first_name
  48.         return name
  49.  
  50.     def relation_partner(id):
  51.         relation_partner = vk.users.get(user_id=id, fields='relation')
  52.         relation_partner = relation_partner[0]['relation_partner']
  53.         if relation_partner == None:
  54.             return ''
  55.         else:
  56.             relation_partner = vk.users.get(user_id=id, fields='relation')
  57.             relation_partner = relation_partner[0]['relation_partner']
  58.             id_relation_partner = str(relation_partner.get('id'))
  59.             last_name = relation_partner.get('last_name')
  60.             first_name = relation_partner.get('first_name')
  61.             self_relation_partner = str('[' + 'id' + id_relation_partner +
  62.                                         '|' + last_name + ' ' + first_name + ']')
  63.             return self_relation_partner
  64.  
  65.  
  66.     def silca():
  67.         text_silca = str('[id' + str(event.user_id) +
  68.                          '|' + fam_name(event.user_id) + ']')
  69.         return text_silca
  70.  
  71.     for event in longpoll.listen():
  72.         commands = {
  73.             '!bot info': 'Бот собирает информацию профиля, команды !bot commands',
  74.             '!bot about': vk.users.get(user_id=event.user_id,
  75.                                        fields='about'),
  76.             '!bot activities': vk.users.get(user_id=event.user_id,
  77.                                             fields='activities'),
  78.             '!bot bdate': vk.users.get(user_id=event.user_id,
  79.                                        fields='bdate'),
  80.             '!bot counters': vk.users.get(user_id=event.user_id,
  81.                                           fields='counters'),
  82.             '!bot status': vk.users.get(user_id=event.user_id,
  83.                                         fields='status'),
  84.             '!bot relation': vk.users.get(user_id=event.user_id,
  85.                                           fields='relation'),
  86.         }
  87.         if event.type == VkEventType.MESSAGE_NEW and event.from_me:
  88.             if event.text == '!bot appid':
  89.                 #get_appid()
  90.                 pass
  91.  
  92.         elif event.type == VkEventType.MESSAGE_NEW and not event.from_me \
  93.                 and event.user_id != my_id:
  94.                 if event.from_user:
  95.                     print('Сообщение от: ',event.user_id,' Текст: ',event.text)
  96.                     if event.text == '!bot about':
  97.                         about = commands.get(event.text)
  98.                         about = about.pop().get('about')
  99.                         if about == '':
  100.                             vk.messages.send(user_id=event.user_id,
  101.                                              message='Данное поле пустое')
  102.                         else:
  103.                             vk.messages.send(user_id=event.user_id,
  104.                                              message=about)
  105.  
  106.                     elif event.text == '!bot activities':
  107.                         activities = commands.get(event.text)
  108.                         activities = activities.pop().get('activities')
  109.                         if activities == '':
  110.                             vk.messages.send(user_id=event.user_id,
  111.                                              message='Данное поле пустое')
  112.                         else:
  113.                             vk.messages.send(user_id=event.user_id,
  114.                                              message=activities)
  115.  
  116.                     elif event.text == '!bot bdate':
  117.                         bdate = commands.get(event.text)
  118.                         bdate = bdate.pop().get('bdate')
  119.                         if bdate == '':
  120.                             vk.messages.send(user_id=event.user_id,
  121.                                              message='Данное поле пустое')
  122.                         else:
  123.                             vk.messages.send(user_id=event.user_id,
  124.                                              message=bdate)
  125.  
  126.                     elif event.text == '!bot books':
  127.                         books = commands.get(event.text)
  128.                         books = books.pop().get('books')
  129.                         if books == '':
  130.                             vk.messages.send(user_id=event.user_id,
  131.                                              message='Данное поле пустое')
  132.                         else:
  133.                             vk.messages.send(user_id=event.user_id,
  134.                                              message=books)
  135.  
  136.                     elif event.text == '!bot counters':
  137.                         counters = commands.get(event.text)
  138.                         counters = counters.pop().get('counters')
  139.                         if counters == '':
  140.                             vk.messages.send(user_id=event.user_id,
  141.                                              message='Данное поле пустое')
  142.                         else:
  143.                             for key, value in counters.items():
  144.                                 sleep(2)
  145.                                 vk.messages.send(user_id=event.user_id,
  146.                                                  message=key+': '+str(value))
  147.  
  148.                     elif event.text == '!bot info':
  149.                         vk.messages.send(user_id=event.user_id,
  150.                                          message=commands.get(event.text))
  151.  
  152.                     elif event.text == '!bot commands':
  153.                         for keys, values in commands.items():
  154.                             sleep(2)
  155.                             vk.messages.send(user_id=event.user_id,
  156.                                              message=keys)
  157.  
  158.                     elif event.text == '!bot status':
  159.                         status = commands.get(event.text)
  160.                         status = status.pop().get('status')
  161.                         if status == '':
  162.                             vk.messages.send(user_id=event.user_id,
  163.                                              message='Данное поле пустое')
  164.                         else:
  165.                             vk.messages.send(user_id=event.user_id,
  166.                                              message=status)
  167.  
  168.                     elif event.text == '!bot relation':
  169.                         relation = commands.get(event.text)
  170.                         relation = relation.pop().get('relation')
  171.                         if sex(event.user_id) != 1:
  172.                             if relation == 1:
  173.                                 vk.messages.send(user_id=event.user_id,
  174.                                                  message='не женат')
  175.                             elif relation == 2:
  176.                                 vk.messages.send(user_id=event.user_id,
  177.                                                  message='есть подруга '+relation_partner(event.user_id))
  178.                             elif relation == 3:
  179.                                 vk.messages.send(user_id=event.user_id,
  180.                                                  message='помолвлен '+relation_partner(event.user_id))
  181.                             elif relation == 4:
  182.                                 vk.messages.send(user_id=event.user_id,
  183.                                                  message='женат '+relation_partner(event.user_id))
  184.                             elif relation == 5:
  185.                                 vk.messages.send(user_id=event.user_id,
  186.                                                  message='всё сложно '+relation_partner(event.user_id))
  187.                             elif relation == 6:
  188.                                 vk.messages.send(user_id=event.user_id,
  189.                                                  message='в активном поиске')
  190.                             elif relation == 7:
  191.                                 vk.messages.send(user_id=event.user_id,
  192.                                                  message='влюблён '+relation_partner(event.user_id))
  193.                             elif relation == 8:
  194.                                 vk.messages.send(user_id=event.user_id,
  195.                                                  message='в гражданском браке '+relation_partner(event.user_id))
  196.                             else:
  197.                                 vk.messages.send(user_id=event.user_id,
  198.                                                  message='не указано')
  199.                         elif sex(event.user_id) == 1:
  200.                             if relation == 1:
  201.                                 vk.messages.send(user_id=event.user_id,
  202.                                                  message='не замужем')
  203.                             elif relation == 2:
  204.                                 vk.messages.send(user_id=event.user_id,
  205.                                                  message='есть друг '+relation_partner(event.user_id))
  206.                             elif relation == 3:
  207.                                 vk.messages.send(user_id=event.user_id,
  208.                                                  message='помолвлена '+relation_partner(event.user_id))
  209.                             elif relation == 4:
  210.                                 vk.messages.send(user_id=event.user_id,
  211.                                                  message='замужем '+relation_partner(event.user_id))
  212.                             elif relation == 5:
  213.                                 vk.messages.send(user_id=event.user_id,
  214.                                                  message='всё сложно '+relation_partner(event.user_id))
  215.                             elif relation == 6:
  216.                                 vk.messages.send(user_id=event.user_id,
  217.                                                  message='в активном поиске')
  218.                             elif relation == 7:
  219.                                 vk.messages.send(user_id=event.user_id,
  220.                                                  message='влюблена '+relation_partner(event.user_id))
  221.                             elif relation == 8:
  222.                                 vk.messages.send(user_id=event.user_id,
  223.                                                  message='в гражданском браке '+relation_partner(event.user_id))
  224.                             else:
  225.                                 vk.messages.send(user_id=event.user_id,
  226.                                                  message='не указано')
  227.  
  228.  
  229.                 else:
  230.                     vk.messages.send(user_id=my_id, message=event.text + ' ({})'.format(silca()))
  231.                     sleep(3)
  232.  
  233.         elif event.type == VkEventType.USER_ONLINE:
  234.             print('Пользователь', event.user_id, 'онлайн', event.platform)
  235.             online_time = vk.utils.getServerTime()
  236.             online_time = datetime.fromtimestamp(online_time).strftime('%H:%M:%S')
  237.             vk.messages.send(user_id=my_id, message='Online {} {} {}'.format(silca(),platform() ,online_time))
  238.  
  239.         elif event.type == VkEventType.USER_OFFLINE:
  240.             print('Пользователь', event.user_id, 'оффлайн', event.offline_type)
  241.             type_offline = str(event.offline_type)
  242.             type_offline = type_offline[14:].capitalize()
  243.             vk.messages.send(user_id=my_id, message='Offline {} {} {} '.format(silca(), last_seen(), type_offline))
  244.  
  245. if __name__ == '__main__':
  246.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement