Advertisement
Scramper

vk Api send message with image

Oct 23rd, 2017
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.65 KB | None | 0 0
  1. import vk
  2. import os
  3. import codecs
  4. import urllib.request
  5. import string
  6. import random
  7. import requests
  8. import json
  9. from functions_support import *
  10. import time
  11.  
  12. app_id = ''
  13. user_login = ''
  14. user_password = ''
  15. scope = 'messages, wall, photos'
  16. access_token = ""
  17. target_id = ''
  18.  
  19.  
  20.  
  21. def getListedText(messageContentDirectory):
  22.     imageLinks = list()
  23.     textMessages = list()
  24.     listedText = dict()
  25.  
  26.     for filename in os.listdir(messageContentDirectory):
  27.         messageContentFile = os.path.join(messageContentDirectory, filename)
  28.         targetFile = codecs.open(messageContentFile, "r", encoding='utf8')
  29.  
  30.         for line in targetFile:
  31.             if line[:3] == "htt":
  32.                 imageLinks.append(line.rstrip("\n"))
  33.             else:
  34.                 textMessages.append(line)
  35.  
  36.     listedText["imageLinks"] = imageLinks
  37.     listedText["textMessages"] = textMessages
  38.  
  39.     return(listedText)
  40.  
  41.  
  42. def downloadImages(imageURLList=[]):
  43.  
  44.     for link in imageURLList:
  45.         randomName = "".join([random.choice(string.ascii_letters)
  46.                               for x in range(15)]) + ".png"
  47.         fullfilename = os.path.join("images/", randomName)
  48.         urllib.request.urlretrieve(link.rstrip("\r"), fullfilename)
  49.  
  50.     return(getImageFiles("/images/"))
  51.  
  52.  
  53. def getImageFiles(directoryFolder):
  54.  
  55.     imagesDirectory = os.path.dirname(__file__) + directoryFolder
  56.  
  57.     imageFilenames = list()
  58.  
  59.     for filename in os.listdir(imagesDirectory):
  60.         imagePath = os.path.join(imagesDirectory, filename)
  61.         imageFilenames.append(imagePath)
  62.  
  63.     return(imageFilenames)
  64.  
  65.  
  66. session = vk.AuthSession(app_id=app_id, user_login=user_login,
  67.                          user_password=user_password, scope=scope)
  68. vkapi = vk.API(session)
  69. vkapi.access_token = access_token
  70.  
  71. readyImages = getImageFiles("\\readyImages\\")
  72. messageContentDirectory = os.path.dirname(__file__) + "\\folder\\"
  73. readyMessages = getListedText(messageContentDirectory)["textMessages"]
  74. data = vkapi.photos.getMessagesUploadServer(user_id=target_id)
  75.  
  76. upload_url = data["upload_url"]
  77.  
  78. for i in range(3):
  79.     files = {'photo': open(random.choice(readyImages), 'rb')}
  80.  
  81.     response = requests.post(upload_url, files=files)
  82.     result = json.loads(response.text)
  83.  
  84.     uploadResult = vkapi.photos.saveMessagesPhoto(server=result["server"],
  85.                                                   photo=result["photo"],
  86.                                                   hash=result["hash"])
  87.  
  88.     vkapi.messages.send(user_id=target_id,
  89.                         message=random.choice(readyMessages),
  90.                         attachment=uploadResult[0]["id"])
  91.  
  92.     time.sleep(5)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement