|
@@ -10,24 +10,25 @@ class RRBotException(Exception):
|
|
|
|
|
|
|
|
|
class Client:
|
|
|
- def __init__(self, login_method, username, password, expires=None):
|
|
|
+ def __init__(self, login_method, username, password, expires=None, show_window=False):
|
|
|
self.login_method = login_method
|
|
|
self.username = username
|
|
|
self.password = password
|
|
|
self.expires = expires
|
|
|
self.session_id = None
|
|
|
+ self.c = None
|
|
|
+ self.show_window = show_window
|
|
|
|
|
|
if login_method in ["g", "google", "v", "vk", "f", "facebook"]:
|
|
|
self.login()
|
|
|
else:
|
|
|
raise RRBotException("Not a valid login method.")
|
|
|
|
|
|
-
|
|
|
def login(self):
|
|
|
login_method = self.login_method
|
|
|
- self.s = sessions.FuturesSession()
|
|
|
+ self.s = requests.Session()
|
|
|
auth_text = requests.get("http://rivalregions.com").text
|
|
|
- web = Browser(showWindow=False)
|
|
|
+ web = Browser(showWindow=self.show_window)
|
|
|
if login_method == ("g" or "google"):
|
|
|
auth_text1 = auth_text.split('\t<a href="')
|
|
|
auth_text2 = auth_text1[1].split('" class="sa')
|
|
@@ -45,7 +46,6 @@ class Client:
|
|
|
elif login_method == ("v" or "vk"):
|
|
|
auth_text1 = auth_text.split("(\'.vkvk\').attr(\'url\', \'")
|
|
|
auth_text2 = auth_text1[1].split('&response')
|
|
|
- web = Browser(showWindow=False)
|
|
|
|
|
|
web.go_to(auth_text2[0])
|
|
|
web.type(self.username, into='email')
|
|
@@ -81,13 +81,25 @@ class Client:
|
|
|
|
|
|
def set_c(self):
|
|
|
r = self.s.get('http://rivalregions.com/#overview')
|
|
|
- response = r.result()
|
|
|
- lines = response.text.split("\n")
|
|
|
+ lines = r.text.split("\n")
|
|
|
for line in lines:
|
|
|
if re.match("(.*)var c_html(.*)", line):
|
|
|
self.c = line.split("'")[-2]
|
|
|
return
|
|
|
|
|
|
+ def create_article(self, title, article, article_lang="en", paper_id=0, category='0', region="4524"):
|
|
|
+ r = self.s.get('http://rivalregions.com/#overview')
|
|
|
+ r = self.s.post("http://rivalregions.com/news/post", data={"c":self.c,
|
|
|
+ 'newspaper': paper_id,
|
|
|
+ 'category': category,
|
|
|
+ 'paper': article,
|
|
|
+ 'title': title,
|
|
|
+ 'region': region})
|
|
|
+
|
|
|
+
|
|
|
+ #f"lang={article_lang}&newspaper={paper_id}&category={category}&paper={article}&title={title}®ion={region}&c={self.c}")
|
|
|
+ print(r.text)
|
|
|
+
|
|
|
async def do_something(self):
|
|
|
#TODO Get some request done
|
|
|
pass
|