Przeglądaj źródła

Add create browser method

JoostSijm 4 lat temu
rodzic
commit
be65b1d6bb

+ 1 - 2
src/rival_regions_wrapper/api_wrapper/article.py

@@ -6,8 +6,7 @@ import re
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
-
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class Article(AbstractWrapper):

+ 3 - 16
src/rival_regions_wrapper/api_wrapper/conference.py

@@ -3,8 +3,6 @@
 import time
 
 from rival_regions_wrapper import authentication_handler, LOGGER
-from rival_regions_wrapper.browser import Browser
-from rival_regions_wrapper.cookie_handler import CookieHandler
 from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
@@ -21,18 +19,8 @@ class Conference(AbstractWrapper):
                 '"%s": CONF "%s": start send message',
                 self.api_wrapper.client.username, self.conference_id
             )
-        if self.api_wrapper.client.session:
-            response = self.api_wrapper.client.session.get(
-                    "https://rivalregions.com/#overview"
-                )
-            self.api_wrapper.client.check_response(response)
-            browser = Browser(showWindow=self.api_wrapper.client.show_window)
-            browser.go_to('https://rivalregions.com/')
-            for cookie_name, value in \
-                    self.api_wrapper.client.session.cookies.get_dict().items():
-                browser.add_cookie(
-                        CookieHandler.create_cookie(cookie_name, None, value)
-                    )
+        browser = self.api_wrapper.client.get_browser()
+        try:
             browser.go_to(
                     'https://rivalregions.com/#slide/conference/{}'
                     .format(self.conference_id)
@@ -94,9 +82,8 @@ class Conference(AbstractWrapper):
                     '"%s": CONF "%s": finished sending message',
                     self.api_wrapper.client.username, self.conference_id
                 )
+        finally:
             browser.close_current_tab()
-        else:
-            raise authentication_handler.NoLogginException()
 
     @authentication_handler.session_handler
     def notification(self, message, sound):

+ 1 - 2
src/rival_regions_wrapper/api_wrapper/craft.py

@@ -5,8 +5,7 @@ import re
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
-
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class Craft(AbstractWrapper):

+ 3 - 16
src/rival_regions_wrapper/api_wrapper/language_chat.py

@@ -3,8 +3,6 @@
 import time
 
 from rival_regions_wrapper import authentication_handler, LOGGER
-from rival_regions_wrapper.browser import Browser
-from rival_regions_wrapper.cookie_handler import CookieHandler
 from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
@@ -21,18 +19,8 @@ class LanguageChat(AbstractWrapper):
                 '"%s": CHAT: language %s',
                 self.api_wrapper.client.username, self.language
             )
-        if self.api_wrapper.client.session:
-            response = self.api_wrapper.client.session.get(
-                    "https://rivalregions.com/#overview"
-                )
-            self.api_wrapper.client.check_response(response)
-            browser = Browser(showWindow=self.api_wrapper.client.show_window)
-            browser.go_to('https://rivalregions.com/')
-            for cookie_name, value in \
-                    self.api_wrapper.client.session.cookies.get_dict().items():
-                browser.add_cookie(
-                        CookieHandler.create_cookie(cookie_name, None, value)
-                    )
+        browser = self.api_wrapper.client.get_browser()
+        try:
             browser.go_to(
                     'https://rivalregions.com/#slide/chat/lang_{}'
                     .format(self.language)
@@ -45,6 +33,5 @@ class LanguageChat(AbstractWrapper):
                     '"%s": CHAT: language %s, finished sending message',
                     self.api_wrapper.client.username, self.language
                 )
+        finally:
             browser.close_current_tab()
-        else:
-            raise authentication_handler.NoLogginException()

+ 1 - 2
src/rival_regions_wrapper/api_wrapper/market.py

@@ -5,8 +5,7 @@ import re
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
-
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class Market(AbstractWrapper):

+ 2 - 2
src/rival_regions_wrapper/api_wrapper/overview.py

@@ -2,8 +2,8 @@
 
 from bs4 import BeautifulSoup
 
-from .abstract_wrapper import AbstractWrapper
-from .perks import Perks
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.perks import Perks
 
 
 class Overview(AbstractWrapper):

+ 1 - 1
src/rival_regions_wrapper/api_wrapper/perks.py

@@ -5,7 +5,7 @@ import re
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class Perks(AbstractWrapper):

+ 5 - 18
src/rival_regions_wrapper/api_wrapper/profile.py

@@ -6,8 +6,6 @@ import re
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import authentication_handler, LOGGER
-from rival_regions_wrapper.browser import Browser
-from rival_regions_wrapper.cookie_handler import CookieHandler
 from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
@@ -41,21 +39,11 @@ class Profile(AbstractWrapper):
     def message(self, message):
         """send personal message"""
         LOGGER.info(
-                '"%s" PM: user id %s',
+                '"%s": PM: user id %s',
                 self.api_wrapper.client.username, self.profile_id
             )
-        if self.api_wrapper.client.session:
-            response = self.api_wrapper.client.session.get(
-                    "https://rivalregions.com/#overview"
-                )
-            self.api_wrapper.client.check_response(response)
-            browser = Browser(showWindow=self.api_wrapper.client.show_window)
-            browser.go_to('https://rivalregions.com/')
-            for cookie_name, value in \
-                    self.api_wrapper.client.session.cookies.get_dict().items():
-                browser.add_cookie(
-                        CookieHandler.create_cookie(cookie_name, None, value)
-                    )
+        browser = self.api_wrapper.client.get_browser()
+        try:
             browser.go_to(
                     'https://rivalregions.com/#messages/{}'
                     .format(self.profile_id)
@@ -65,9 +53,8 @@ class Profile(AbstractWrapper):
             browser.type(message, id='message')
             browser.click(id='chat_send')
             LOGGER.info(
-                    '"%s" PM: user id %s, finished sending message',
+                    '"%s:" PM: user id %s, finished sending message',
                     self.api_wrapper.client.username, self.profile_id
                 )
+        finally:
             browser.close_current_tab()
-        else:
-            raise authentication_handler.NoLogginException()

+ 1 - 1
src/rival_regions_wrapper/api_wrapper/resource_state.py

@@ -4,7 +4,7 @@ import re
 
 from bs4 import BeautifulSoup
 
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class ResourceState(AbstractWrapper):

+ 1 - 1
src/rival_regions_wrapper/api_wrapper/storage.py

@@ -4,7 +4,7 @@ from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
 
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class Storage(AbstractWrapper):

+ 1 - 1
src/rival_regions_wrapper/api_wrapper/war.py

@@ -7,7 +7,7 @@ import unicodedata
 from bs4 import BeautifulSoup
 
 from rival_regions_wrapper import util
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
 
 
 class War(AbstractWrapper):

+ 2 - 1
src/rival_regions_wrapper/api_wrapper/work.py

@@ -4,7 +4,8 @@ import re
 
 from bs4 import BeautifulSoup
 
-from .abstract_wrapper import AbstractWrapper
+from rival_regions_wrapper.api_wrapper.abstract_wrapper import AbstractWrapper
+
 
 RESOURCE_DICT = {
     'oil': 'oil',

+ 18 - 0
src/rival_regions_wrapper/authentication_handler.py

@@ -224,6 +224,24 @@ class AuthenticationHandler:
             raise NoLogginException()
         return response.text
 
+    def get_browser(self):
+        """Get browser"""
+        if not self.session:
+            raise NoLogginException()
+
+        response = self.session.get(
+                "https://rivalregions.com/#overview"
+            )
+        self.check_response(response)
+        browser = Browser(showWindow=self.show_window)
+        browser.go_to('https://rivalregions.com/')
+        for cookie_name, value in \
+                self.session.cookies.get_dict().items():
+            browser.add_cookie(
+                    CookieHandler.create_cookie(cookie_name, None, value)
+                )
+        return browser
+
     @classmethod
     def check_response(cls, response):
         """Check resonse for authentication"""