Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 13.75 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3.  
  4. from django.shortcuts import render
  5. from django.template import Template, Context
  6. from selenium import webdriver
  7. import time
  8. import os
  9. from random import choice
  10. from wall.models import Proxy, Accounts, Clients, Groups, Remote_server, UserAgent
  11. from wall.forms import Start_ank
  12. import urllib
  13. from django.http import HttpResponse, HttpResponseRedirect
  14. from django.http import Http404
  15. from django.shortcuts import render, get_object_or_404, redirect
  16. from django.db.models import F
  17. from background_task import background
  18. from django.http import JsonResponse
  19. import requests
  20. import json
  21. from django.utils import timezone
  22. from selenium.webdriver.common.keys import Keys
  23. global cwd
  24. cwd = str(os.getcwd()) + str('/media/')  # путь до директории с медиа
  25.  
  26.  
  27. def active_clients(request, id):
  28.     if request.user.is_authenticated():
  29.         post = Clients.objects.get(id=id)
  30.         if request.method == "POST":
  31.             form = Start_ank(request.POST, instance=post)
  32.             if form.is_valid():
  33.                 post = form.save(commit=False)
  34.                 post.save()
  35.                 return redirect('active_clients', id=id)
  36.         else:
  37.             form = Start_ank(instance=post)
  38.         context = {
  39.             'form': form,
  40.         }
  41.         return render(request, 'start_stop/start.html', context)
  42.  
  43. def base_views(request):
  44.     if request.user.is_authenticated():
  45.         clients = Clients.objects.all()
  46.         context = {
  47.             'clients': clients,
  48.             }
  49.         return render(request, 'base/base.html', context)
  50.     else:
  51.         raise Http404("ФИГ ВАМ!")
  52.  
  53. def accounts(request):
  54.     account = Accounts.objects.all()
  55.     context = {
  56.         'account': account,
  57.     }
  58.     return render(request, 'accounts/account_main.html', context)
  59.  
  60. @background(schedule=timezone.now())
  61. def start(id):
  62. #def start_ankk():
  63.     client = Clients.objects.get(id=id)
  64.     #client = Clients.objects.get(name='тест')
  65.     msg_rc = []
  66.     img_rc = []
  67.     otv_msg = []
  68.     ######
  69.     if Clients.objects.get(name=client).answer:
  70.         answer1 = Clients.objects.get(name=client).answer
  71.     else:
  72.         answer1 = None
  73.     if answer1 != None:
  74.         otv_msg.append(answer1)
  75.     ######
  76.     if Clients.objects.get(name=client).comment1:
  77.         comment1 = Clients.objects.get(name=client).comment1
  78.     else:
  79.         comment1 = None
  80.     if comment1 != None:
  81.         otv_msg.append(comment1)
  82.     ######
  83.     if Clients.objects.get(name=client).comment2:
  84.         comment2 = Clients.objects.get(name=client).comment2
  85.     else:
  86.         comment2 = None
  87.     if comment2 != None:
  88.         otv_msg.append(comment2)
  89.     ######
  90.     if Clients.objects.get(name=client).comment3:
  91.         comment3 = Clients.objects.get(name=client).comment3
  92.     else:
  93.         comment3 = None
  94.     if comment3 != None:
  95.         otv_msg.append(comment3)
  96.     #######
  97.     if Clients.objects.get(name=client).msg1:
  98.         msg1 = Clients.objects.get(name=client).msg1
  99.     else:
  100.         msg1 = None
  101.     if msg1 != None:
  102.         msg_rc.append(msg1)
  103.     ### images ###
  104.     if Clients.objects.get(name=client).img1:
  105.         img1 = cwd + str(Clients.objects.get(name=client).img1)
  106.     else:
  107.         img1 = None
  108.     if img1 != None:
  109.         img_rc.append(img1)
  110.     #### Конец ###
  111.     ####### ------- 2 ------- ##########
  112.     #### начало ###
  113.     if Clients.objects.get(name=client).msg2:
  114.         msg2 = Clients.objects.get(name=client).msg2
  115.     else:
  116.         msg2 = None
  117.     if msg2 != None:
  118.         msg_rc.append(msg2)
  119.     ### images ###
  120.     if Clients.objects.get(name=client).img2:
  121.         img2 = cwd + str(Clients.objects.get(name=client).img2)
  122.     else:
  123.         img2 = None
  124.     if img2 != None:
  125.         img_rc.append(img2)
  126.     #### Конец ###
  127.     ####### ------- 3 ------- ##########
  128.     #### начало ###
  129.     if Clients.objects.get(name=client).msg3:
  130.         msg3 = Clients.objects.get(name=client).msg3
  131.     else:
  132.         msg3 = None
  133.     if msg3 != None:
  134.         msg_rc.append(msg3)
  135.     ### images ###
  136.     if Clients.objects.get(name=client).img3:
  137.         img3 = cwd + str(Clients.objects.get(name=client).img3)
  138.     else:
  139.         img3 = None
  140.     if img3 != None:
  141.         img_rc.append(img3)
  142.     #### Конец ###
  143.     ####### ------- 4 ------- ##########
  144.     #### начало ###
  145.     if Clients.objects.get(name=client).msg4:
  146.         msg4 = Clients.objects.get(name=client).msg4
  147.     else:
  148.         msg4 = None
  149.     if msg4 != None:
  150.         msg_rc.append(msg4)
  151.     ### images ###
  152.     if Clients.objects.get(name=client).img4:
  153.         img4 = cwd + str(Clients.objects.get(name=client).img4)
  154.     else:
  155.         img4 = None
  156.     if img4 != None:
  157.         img_rc.append(img4)
  158.     #### Конец ###
  159.     ####### ------- 5 ------- ##########
  160.     #### начало ###
  161.     if Clients.objects.get(name=client).msg5:
  162.         msg5 = Clients.objects.get(name=client).msg5
  163.     else:
  164.         msg5 = None
  165.     if msg5 != None:
  166.         msg_rc.append(msg5)
  167.     ### images ###
  168.     if Clients.objects.get(name=client).img5:
  169.         img5 = cwd + str(Clients.objects.get(name=client).img5)
  170.     else:
  171.         img5 = None
  172.     if img5 != None:
  173.         img_rc.append(img5)
  174.     #### Конец ###
  175.     ####### ------- 6 ------- ##########
  176.     #### начало ###
  177.     if Clients.objects.get(name=client).msg6:
  178.         msg6 = Clients.objects.get(name=client).msg6
  179.     else:
  180.         msg6 = None
  181.     if msg6 != None:
  182.         msg_rc.append(msg6)
  183.     ### images ###
  184.     if Clients.objects.get(name=client).img6:
  185.         img6 = cwd + str(Clients.objects.get(name=client).img6)
  186.     else:
  187.         img6 = None
  188.     if img6 != None:
  189.         img_rc.append(img6)
  190.     #### Конец ###
  191.     ####### ------- 7 ------- ##########
  192.     #### начало ###
  193.     if Clients.objects.get(name=client).msg7:
  194.         msg7 = Clients.objects.get(name=client).msg7
  195.     else:
  196.         msg7 = None
  197.     if msg7 != None:
  198.         msg_rc.append(msg7)
  199.     ### images ###
  200.     if Clients.objects.get(name=client).img7:
  201.         img7 = cwd + str(Clients.objects.get(name=client).img7)
  202.     else:
  203.         img7 = None
  204.     if img7 != None:
  205.         img_rc.append(img7)
  206.  
  207.     def account():
  208.         account = Clients.objects.get(name=client).accounts.all().filter(available=True).values_list('login', flat=True)
  209.         for acc in account:
  210.             if Clients.objects.get(name=client).available == False:
  211.                 break
  212.             else:
  213.                 options = webdriver.ChromeOptions()
  214.                 UserAgent = str(Clients.objects.get(name=client).user_agent)
  215.                 options.add_argument("--user-agent="+UserAgent)
  216.                 driver = webdriver.Chrome(chrome_options=options)
  217.             login = str(acc)
  218.             print(login)  # Логин аккаунта
  219.             password = str(Accounts.objects.get(login=acc).password)  # Пароль аккаунта
  220.             print(password)
  221.             if Clients.objects.get(name=client).available == False:
  222.                 driver.quit()
  223.                 break
  224.             else:
  225.                 try:
  226.                     driver.get('https://vk.com')
  227.                 except:
  228.                     driver.get('https://vk.com')
  229.             try:
  230.                 try:
  231.                     driver.find_element_by_xpath('//*[@id="index_email"]').click()  # Клик по инпуту логина
  232.                     time.sleep(2)
  233.                     driver.find_element_by_xpath('//*[@id="index_email"]').send_keys(login)  # ввод логина
  234.                     time.sleep(2)
  235.                     driver.find_element_by_xpath('//*[@id="index_pass"]').click()  # клик по инпуту пароля
  236.                     time.sleep(2)
  237.                     driver.find_element_by_xpath('//*[@id="index_pass"]').send_keys(password)  # ввод пароля
  238.                     time.sleep(2)
  239.                     driver.find_element_by_xpath('//*[@id="index_login_button"]').click()  # клик по кнопке входа
  240.                     time.sleep(5)
  241.                     driver.find_element_by_xpath('//*[@id="l_pr"]/a').click()  # переход на главную страницу
  242.                     time.sleep(3)
  243.                     url_of_page = driver.current_url
  244.                     print(url_of_page)
  245.                     ac_ur_page = Accounts.objects.get(login=acc)
  246.                     ac_ur_page.link = str(url_of_page)
  247.                     ac_ur_page.save()
  248.                     print(url_of_page)
  249.                 except:
  250.                     driver.find_element_by_xpath('//*[@id="index_email"]').click()  # Клик по инпуту логина
  251.                     time.sleep(2)
  252.                     driver.find_element_by_xpath('//*[@id="index_email"]').clear()  # Клик по инпуту логина
  253.                     time.sleep(2)
  254.                     driver.find_element_by_xpath('//*[@id="index_email"]').send_keys(login)  # ввод логина
  255.                     time.sleep(2)
  256.                     driver.find_element_by_xpath('//*[@id="index_pass"]').send_keys(password)  # ввод пароля
  257.                     time.sleep(2)
  258.                     driver.find_element_by_xpath('//*[@id="index_login_button"]').click()  # клик по кнопке входа
  259.                     time.sleep(5)
  260.                     driver.find_element_by_xpath('//*[@id="l_pr"]/a').click()  # переход на главную страницу
  261.                     time.sleep(3)
  262.                     driver.find_element_by_xpath('//*[@id="l_pr"]/a').click()
  263.                     url_of_page = driver.current_url
  264.                     print(url_of_page)
  265.                     ac_ur_page = Accounts.objects.get(login=acc)
  266.                     ac_ur_page.link = str(url_of_page)
  267.                     ac_ur_page.save()
  268.                     try:
  269.                         driver.find_element_by_class_name('login_still_blocked')
  270.                         break
  271.                     except:
  272.                         print(url_of_page)
  273.             except:
  274.                 acc_stoped = Accounts.objects.get(login=acc)
  275.                 acc_stoped.available = False
  276.                 acc_stoped.save()
  277.                 driver.quit()
  278.                 continue
  279.             def circle_posting():
  280.                 groups = Clients.objects.get(name=client).groups.all().filter(available=True).values_list('link', flat=True)
  281.                 for groupa in groups:
  282.                     try:
  283.                         if Clients.objects.get(name=client).available == False:
  284.                             driver.quit()
  285.                             break
  286.                         else:
  287.                             driver.get(groupa)
  288.                             try:
  289.                                 driver.find_element_by_class_name('login_still_blocked')
  290.                                 break
  291.                             except:
  292.                                 time.sleep(1)
  293.                             msg_choice = choice(msg_rc)
  294.                             print(msg_choice)
  295.                             time.sleep(2)
  296.                             driver.find_element_by_css_selector('#post_field').send_keys(msg_choice)
  297.                             time.sleep(7)
  298.                             driver.find_element_by_xpath('//*[@id="page_add_media"]/div[1]/a[1]').click()
  299.                             time.sleep(7)
  300.                             photo_choice = choice(img_rc)
  301.                             driver.find_element_by_xpath('//*[@id="choose_photo_upload"]').send_keys(photo_choice)
  302.                             time.sleep(7)
  303.                             driver.find_element_by_css_selector('#send_post').click()
  304.                             time.sleep(10)
  305.                             ac_msg = Accounts.objects.get(login=acc)
  306.                             ac_msg.count_message = F('count_message') + 1
  307.                             ac_msg.save()
  308.                             driver.get('https://vk.com/im?tab=unread')
  309.                             time.sleep(3)
  310.                             for i in range(6):
  311.                                 try:
  312.                                     driver.find_element_by_xpath('//*[@id="im_dialogs"]/li[' + str(i) + ']').click()
  313.                                     time.sleep(3)
  314.                                     otvet_choice = choice(otv_msg)
  315.                                     print(otvet_choice)
  316.                                     driver.find_element_by_xpath('//*[@id="im_editable0"]').send_keys(otvet_choice)
  317.                                     time.sleep(2)
  318.                                     try:
  319.                                         driver.find_element_by_class_name('im-send-btn_send').click()
  320.                                     except:
  321.                                         driver.find_element_by_xpath('//*[@id="im_editable0"]').send_keys(u'\ue007')
  322.                                     time.sleep(2)
  323.                                     driver.find_element_by_class_name('_im_page_back').click()
  324.                                 except:
  325.                                     continue
  326.                     except:
  327.                         try:
  328.                             driver.find_element_by_class_name('login_still_blocked')
  329.                             break
  330.                         except:
  331.                             grp_av = Groups.objects.get(link=groupa)
  332.                             grp_av.problem = False
  333.                             grp_av.save()
  334.                             continue
  335.                 circle_posting()
  336.             circle_posting()
  337.     account()
  338.  
  339.  
  340.  
  341. def start_ank(request, id):
  342.     start(id)
  343.     client = Clients.objects.get(id=id)
  344.     context = {
  345.         'client': client,
  346.     }
  347.     return render(request, 'task/task.html', context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement