Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from django.shortcuts import render
- from django.template import Template, Context
- from selenium import webdriver
- import time
- import os
- from random import choice
- from wall.models import Proxy, Accounts, Clients, Groups, Remote_server, UserAgent
- from wall.forms import Start_ank
- import urllib
- from django.http import HttpResponse, HttpResponseRedirect
- from django.http import Http404
- from django.shortcuts import render, get_object_or_404, redirect
- from django.db.models import F
- from background_task import background
- from django.http import JsonResponse
- import requests
- import json
- from django.utils import timezone
- from selenium.webdriver.common.keys import Keys
- global cwd
- cwd = str(os.getcwd()) + str('/media/') # путь до директории с медиа
- def active_clients(request, id):
- if request.user.is_authenticated():
- post = Clients.objects.get(id=id)
- if request.method == "POST":
- form = Start_ank(request.POST, instance=post)
- if form.is_valid():
- post = form.save(commit=False)
- post.save()
- return redirect('active_clients', id=id)
- else:
- form = Start_ank(instance=post)
- context = {
- 'form': form,
- }
- return render(request, 'start_stop/start.html', context)
- def base_views(request):
- if request.user.is_authenticated():
- clients = Clients.objects.all()
- context = {
- 'clients': clients,
- }
- return render(request, 'base/base.html', context)
- else:
- raise Http404("ФИГ ВАМ!")
- def accounts(request):
- account = Accounts.objects.all()
- context = {
- 'account': account,
- }
- return render(request, 'accounts/account_main.html', context)
- @background(schedule=timezone.now())
- def start(id):
- #def start_ankk():
- client = Clients.objects.get(id=id)
- #client = Clients.objects.get(name='тест')
- msg_rc = []
- img_rc = []
- otv_msg = []
- ######
- if Clients.objects.get(name=client).answer:
- answer1 = Clients.objects.get(name=client).answer
- else:
- answer1 = None
- if answer1 != None:
- otv_msg.append(answer1)
- ######
- if Clients.objects.get(name=client).comment1:
- comment1 = Clients.objects.get(name=client).comment1
- else:
- comment1 = None
- if comment1 != None:
- otv_msg.append(comment1)
- ######
- if Clients.objects.get(name=client).comment2:
- comment2 = Clients.objects.get(name=client).comment2
- else:
- comment2 = None
- if comment2 != None:
- otv_msg.append(comment2)
- ######
- if Clients.objects.get(name=client).comment3:
- comment3 = Clients.objects.get(name=client).comment3
- else:
- comment3 = None
- if comment3 != None:
- otv_msg.append(comment3)
- #######
- if Clients.objects.get(name=client).msg1:
- msg1 = Clients.objects.get(name=client).msg1
- else:
- msg1 = None
- if msg1 != None:
- msg_rc.append(msg1)
- ### images ###
- if Clients.objects.get(name=client).img1:
- img1 = cwd + str(Clients.objects.get(name=client).img1)
- else:
- img1 = None
- if img1 != None:
- img_rc.append(img1)
- #### Конец ###
- ####### ------- 2 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg2:
- msg2 = Clients.objects.get(name=client).msg2
- else:
- msg2 = None
- if msg2 != None:
- msg_rc.append(msg2)
- ### images ###
- if Clients.objects.get(name=client).img2:
- img2 = cwd + str(Clients.objects.get(name=client).img2)
- else:
- img2 = None
- if img2 != None:
- img_rc.append(img2)
- #### Конец ###
- ####### ------- 3 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg3:
- msg3 = Clients.objects.get(name=client).msg3
- else:
- msg3 = None
- if msg3 != None:
- msg_rc.append(msg3)
- ### images ###
- if Clients.objects.get(name=client).img3:
- img3 = cwd + str(Clients.objects.get(name=client).img3)
- else:
- img3 = None
- if img3 != None:
- img_rc.append(img3)
- #### Конец ###
- ####### ------- 4 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg4:
- msg4 = Clients.objects.get(name=client).msg4
- else:
- msg4 = None
- if msg4 != None:
- msg_rc.append(msg4)
- ### images ###
- if Clients.objects.get(name=client).img4:
- img4 = cwd + str(Clients.objects.get(name=client).img4)
- else:
- img4 = None
- if img4 != None:
- img_rc.append(img4)
- #### Конец ###
- ####### ------- 5 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg5:
- msg5 = Clients.objects.get(name=client).msg5
- else:
- msg5 = None
- if msg5 != None:
- msg_rc.append(msg5)
- ### images ###
- if Clients.objects.get(name=client).img5:
- img5 = cwd + str(Clients.objects.get(name=client).img5)
- else:
- img5 = None
- if img5 != None:
- img_rc.append(img5)
- #### Конец ###
- ####### ------- 6 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg6:
- msg6 = Clients.objects.get(name=client).msg6
- else:
- msg6 = None
- if msg6 != None:
- msg_rc.append(msg6)
- ### images ###
- if Clients.objects.get(name=client).img6:
- img6 = cwd + str(Clients.objects.get(name=client).img6)
- else:
- img6 = None
- if img6 != None:
- img_rc.append(img6)
- #### Конец ###
- ####### ------- 7 ------- ##########
- #### начало ###
- if Clients.objects.get(name=client).msg7:
- msg7 = Clients.objects.get(name=client).msg7
- else:
- msg7 = None
- if msg7 != None:
- msg_rc.append(msg7)
- ### images ###
- if Clients.objects.get(name=client).img7:
- img7 = cwd + str(Clients.objects.get(name=client).img7)
- else:
- img7 = None
- if img7 != None:
- img_rc.append(img7)
- def account():
- account = Clients.objects.get(name=client).accounts.all().filter(available=True).values_list('login', flat=True)
- for acc in account:
- if Clients.objects.get(name=client).available == False:
- break
- else:
- options = webdriver.ChromeOptions()
- UserAgent = str(Clients.objects.get(name=client).user_agent)
- options.add_argument("--user-agent="+UserAgent)
- driver = webdriver.Chrome(chrome_options=options)
- login = str(acc)
- print(login) # Логин аккаунта
- password = str(Accounts.objects.get(login=acc).password) # Пароль аккаунта
- print(password)
- if Clients.objects.get(name=client).available == False:
- driver.quit()
- break
- else:
- try:
- driver.get('https://vk.com')
- except:
- driver.get('https://vk.com')
- try:
- try:
- driver.find_element_by_xpath('//*[@id="index_email"]').click() # Клик по инпуту логина
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_email"]').send_keys(login) # ввод логина
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_pass"]').click() # клик по инпуту пароля
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_pass"]').send_keys(password) # ввод пароля
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_login_button"]').click() # клик по кнопке входа
- time.sleep(5)
- driver.find_element_by_xpath('//*[@id="l_pr"]/a').click() # переход на главную страницу
- time.sleep(3)
- url_of_page = driver.current_url
- print(url_of_page)
- ac_ur_page = Accounts.objects.get(login=acc)
- ac_ur_page.link = str(url_of_page)
- ac_ur_page.save()
- print(url_of_page)
- except:
- driver.find_element_by_xpath('//*[@id="index_email"]').click() # Клик по инпуту логина
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_email"]').clear() # Клик по инпуту логина
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_email"]').send_keys(login) # ввод логина
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_pass"]').send_keys(password) # ввод пароля
- time.sleep(2)
- driver.find_element_by_xpath('//*[@id="index_login_button"]').click() # клик по кнопке входа
- time.sleep(5)
- driver.find_element_by_xpath('//*[@id="l_pr"]/a').click() # переход на главную страницу
- time.sleep(3)
- driver.find_element_by_xpath('//*[@id="l_pr"]/a').click()
- url_of_page = driver.current_url
- print(url_of_page)
- ac_ur_page = Accounts.objects.get(login=acc)
- ac_ur_page.link = str(url_of_page)
- ac_ur_page.save()
- try:
- driver.find_element_by_class_name('login_still_blocked')
- break
- except:
- print(url_of_page)
- except:
- acc_stoped = Accounts.objects.get(login=acc)
- acc_stoped.available = False
- acc_stoped.save()
- driver.quit()
- continue
- def circle_posting():
- groups = Clients.objects.get(name=client).groups.all().filter(available=True).values_list('link', flat=True)
- for groupa in groups:
- try:
- if Clients.objects.get(name=client).available == False:
- driver.quit()
- break
- else:
- driver.get(groupa)
- try:
- driver.find_element_by_class_name('login_still_blocked')
- break
- except:
- time.sleep(1)
- msg_choice = choice(msg_rc)
- print(msg_choice)
- time.sleep(2)
- driver.find_element_by_css_selector('#post_field').send_keys(msg_choice)
- time.sleep(7)
- driver.find_element_by_xpath('//*[@id="page_add_media"]/div[1]/a[1]').click()
- time.sleep(7)
- photo_choice = choice(img_rc)
- driver.find_element_by_xpath('//*[@id="choose_photo_upload"]').send_keys(photo_choice)
- time.sleep(7)
- driver.find_element_by_css_selector('#send_post').click()
- time.sleep(10)
- ac_msg = Accounts.objects.get(login=acc)
- ac_msg.count_message = F('count_message') + 1
- ac_msg.save()
- driver.get('https://vk.com/im?tab=unread')
- time.sleep(3)
- for i in range(6):
- try:
- driver.find_element_by_xpath('//*[@id="im_dialogs"]/li[' + str(i) + ']').click()
- time.sleep(3)
- otvet_choice = choice(otv_msg)
- print(otvet_choice)
- driver.find_element_by_xpath('//*[@id="im_editable0"]').send_keys(otvet_choice)
- time.sleep(2)
- try:
- driver.find_element_by_class_name('im-send-btn_send').click()
- except:
- driver.find_element_by_xpath('//*[@id="im_editable0"]').send_keys(u'\ue007')
- time.sleep(2)
- driver.find_element_by_class_name('_im_page_back').click()
- except:
- continue
- except:
- try:
- driver.find_element_by_class_name('login_still_blocked')
- break
- except:
- grp_av = Groups.objects.get(link=groupa)
- grp_av.problem = False
- grp_av.save()
- continue
- circle_posting()
- circle_posting()
- account()
- def start_ank(request, id):
- start(id)
- client = Clients.objects.get(id=id)
- context = {
- 'client': client,
- }
- return render(request, 'task/task.html', context)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement