import requests as rq
import os.path as path
from bs4 import BeautifulSoup as bs
import pickle
def get_data(code, action):
if str(type(code)) != "<class 'bs4.BeautifulSoup'>":
code = bs(code, 'lxml')
return dict((i.get('name'), i.get('value')) for i in code.find('form', action=action).find_all('input'))
def get_lap():
login = input('Login: ')
password = input('Password: ')
return login, password
def login():
session = rq.Session()
if not path.isfile('cookies.bin'):
html = bs(session.get('https://itfy.org/login/login').content, 'lxml')
login, password = get_lap()
data = get_data(html, '/login/login')
data['login'] = login
data['password'] = password
session.post('https://itfy.org/login/login', data=data)
cookies = [
{'domain': key.domain, 'name': key.name, 'path': key.path, 'value': key.value}
for key in ses.cookies
]
with open('cookies.bin', 'wb') as file:
pickle.dump(cookies, file)
else:
with open('cookies.bin', 'rb') as file:
cookies = pickle.load(file)
for cook in cookies:
session.cookies.set(**cook)
return session
class Them:
def __init__(self, link, session):
self.link = link
self.ses = session
self.name = self.link.replace('https://itfy.org/threads/', '')[:-1]
self.html = bs(self.ses.get(self.link).content, 'lxml')
self.title = self.html.find('h1', class_='p-title-value').text
self.text = self.html.find('div', class_='bbWrapper').text
def post_message(self, text=None):
them_data = get_data(self.html, f'/threads/{self.name}/add-reply')
if text is None:
text = input()
them_data['message'] = text
self.ses.post(f'https://itfy.org/threads/{self.name}/add-reply', data=them_data)
self.update()
def update(self):
self.html = bs(self.ses.get(self.link).content, 'lxml')
ses = login()