def __init__(self, username, password): """ Konstruktor :param username: nazwa użytkownika do logowania :param password: hasło użytkownika """ self.username = username self.password = password self.logged = False self.browser = Browser()
class Client(object): """ Klient blablera. """ def __init__(self, username, password): """ Konstruktor :param username: nazwa użytkownika do logowania :param password: hasło użytkownika """ self.username = username self.password = password self.logged = False self.browser = Browser() @property def my_user(self): """ :return: obiekt reprezentujący użytkownika uzytego do logowania """ return User(self.username, self) def login(self): """ Logowanie się do Blablera. """ self.browser.open(Urls.LOGIN) # formularz logowania (nie ma nazwy, czyli pierwszy i jedyny na stronie) self.browser.select_form(nr=0) self.browser.form['name'] = self.username self.browser.form['pass'] = self.password self.browser.submit() self.logged = True def logout(self): """ Wylogowanie się z Blablera. """ self.browser.open(Urls.LOGOUT) self.logged = False def send_post(self, text): """ Wysyła publiczny post. :param text: treść posta """ # TODO: zwracac obiekt wyslanej wiadomosci dash_url = "{}/dash/{}.html".format(Urls.BASE, self.username) self.browser.open(dash_url) self.browser.select_form(nr=0) self.browser.form['text'] = text self.browser.submit() def send_public_message(self, recipient, text): """ Wysyła publiczną wiadomość do użytkownika. (>user: wiadomosc) :param recipient: adresat :param text: treść wiadomości """ # TODO: sprawdzac, czy user istnieje przed wyslaniem # ">" hard encoded because bs substitute entities sucks UTF dick mesage = ">{}: {}".format(recipient, text) self.send_post(mesage) def send_private_message(self, recipient, text): """ Wysyła wiadomość prywatną do użytkownika (>>user: wiadomość) :param recipient: adresat :param text: treść wiadomości """ mesage = ">>{}: {}".format(recipient, text) self.send_post(mesage)