示例#1
0
文件: Client.py 项目: kucyk/pyBlabler
    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()
示例#2
0
文件: Client.py 项目: kucyk/pyBlabler
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)