|
|
@@ -4,12 +4,11 @@ Authentication handeler module
|
|
|
|
|
|
import sys
|
|
|
import re
|
|
|
-import time
|
|
|
|
|
|
import requests
|
|
|
import cfscrape
|
|
|
|
|
|
-from rival_regions_wrapper import LOGGER
|
|
|
+from rival_regions_wrapper import LOGGER, login_methods
|
|
|
from rival_regions_wrapper.cookie_handler import CookieHandler
|
|
|
from rival_regions_wrapper.browser import Browser
|
|
|
|
|
|
@@ -98,20 +97,22 @@ class AuthenticationHandler:
|
|
|
self.username, self.login_method
|
|
|
)
|
|
|
|
|
|
- login_methods = {
|
|
|
- 'g': self.login_google,
|
|
|
- 'google': self.login_google,
|
|
|
- 'v': self.login_vk,
|
|
|
- 'vk': self.login_vk,
|
|
|
- 'f': self.login_facebook,
|
|
|
- 'facebook': self.login_facebook,
|
|
|
+ login_method_dict = {
|
|
|
+ 'g': login_methods.login_google,
|
|
|
+ 'google': login_methods.login_google,
|
|
|
+ 'v': login_methods.login_vk,
|
|
|
+ 'vk': login_methods.login_vk,
|
|
|
+ 'f': login_methods.login_facebook,
|
|
|
+ 'facebook': login_methods.login_facebook,
|
|
|
}
|
|
|
|
|
|
auth_text = requests.get("https://rivalregions.com").text
|
|
|
browser = Browser(showWindow=self.show_window)
|
|
|
|
|
|
- if self.login_method in login_methods:
|
|
|
- browser = login_methods[self.login_method](browser, auth_text)
|
|
|
+ if self.login_method in login_method_dict:
|
|
|
+ browser = login_method_dict[self.login_method](
|
|
|
+ browser, auth_text, self.username, self.password
|
|
|
+ )
|
|
|
else:
|
|
|
LOGGER.info(
|
|
|
'"%s": Invalid login method "%s"',
|
|
|
@@ -180,74 +181,6 @@ class AuthenticationHandler:
|
|
|
LOGGER.debug('"%s": got var_c: %s', self.username, var_c)
|
|
|
self.var_c = line.split("'")[-2]
|
|
|
|
|
|
- # This is working
|
|
|
- def login_google(self, browser, auth_text):
|
|
|
- """login using Google"""
|
|
|
- LOGGER.info('"%s": Login method Google', self.username)
|
|
|
- auth_text1 = auth_text.split('\t<a href="')
|
|
|
- auth_text2 = auth_text1[1].split('" class="sa')
|
|
|
- time.sleep(1)
|
|
|
- browser.go_to(auth_text2[0])
|
|
|
-
|
|
|
- LOGGER.info('"%s": Typing in username', self.username)
|
|
|
- browser.type(self.username, into='Email')
|
|
|
-
|
|
|
- LOGGER.info('"%s": pressing next button', self.username)
|
|
|
- browser.click(css_selector="#next")
|
|
|
- time.sleep(2)
|
|
|
-
|
|
|
- LOGGER.info('"%s": Typing in password', self.username)
|
|
|
- browser.type(self.password, css_selector="input")
|
|
|
-
|
|
|
- LOGGER.info('"%s": pressing sign in button', self.username)
|
|
|
- browser.click(css_selector="#submit")
|
|
|
- time.sleep(3)
|
|
|
-
|
|
|
- # Some why it wont click and login immediately. This seems to work
|
|
|
- time.sleep(1)
|
|
|
- browser.go_to(auth_text2[0])
|
|
|
- time.sleep(1)
|
|
|
- browser.go_to(auth_text2[0])
|
|
|
- time.sleep(1)
|
|
|
- browser.click(
|
|
|
- css_selector="#sa_add2 > div:nth-child(4) > a.sa_link.gogo > div"
|
|
|
- )
|
|
|
- time.sleep(3)
|
|
|
- return browser
|
|
|
-
|
|
|
- # IDK if this is working
|
|
|
- def login_vk(self, browser, auth_text):
|
|
|
- """login using VK"""
|
|
|
- LOGGER.info('Login method VK')
|
|
|
- auth_text1 = auth_text.split("(\'.vkvk\').attr(\'url\', \'")
|
|
|
- auth_text2 = auth_text1[1].split('&response')
|
|
|
-
|
|
|
- browser.go_to(auth_text2[0])
|
|
|
- browser.type(self.username, into='email')
|
|
|
- browser.type(
|
|
|
- self.password,
|
|
|
- xpath="/html/body/div/div/div/div[2]/form/div/div/input[7]"
|
|
|
- )
|
|
|
- browser.click('Log in')
|
|
|
- return browser
|
|
|
-
|
|
|
- # IDK if this is working
|
|
|
- def login_facebook(self, browser, auth_text):
|
|
|
- """login using Facebook"""
|
|
|
- LOGGER.info('Login method Facebook')
|
|
|
- auth_text1 = \
|
|
|
- auth_text.split('">\r\n\t\t\t\t<div class="sa_sn imp float_left" ')
|
|
|
- auth_text2 = auth_text1[0].split('200px;"><a class="sa_link" href="')
|
|
|
- url = auth_text2[1]
|
|
|
-
|
|
|
- browser.go_to(url)
|
|
|
- browser.type(self.username, into='Email')
|
|
|
- browser.type(self.password, into='Password')
|
|
|
- browser.click('Log In')
|
|
|
- time.sleep(5)
|
|
|
- browser.click(css_selector='.sa_sn.imp.float_left')
|
|
|
- return browser
|
|
|
-
|
|
|
@session_handler
|
|
|
def get(self, path, add_var_c=False):
|
|
|
"""Send get request to Rival Regions"""
|