Пример #1
0
    def mabyDoPasswordAndLogins(self, screen):
        if Config.getboolean("Misc", "saveLogins"):
            screen.ids["UsrNameInput"].text = Config.get("Misc", "username")
            screen.ids["PwdInput"].text = decode(
                str(Config.get("Misc", "password")), "JonIsGreen")

            Logger.info("Logins: Loaded")
Пример #2
0
    def update(self, *args):
        self.ids["Title"].text = self.title
        self.ids["Description"].text = self.description

        self._editorHolder.clear_widgets()

        if self.type == "numericSlider":
            if self.sliderMin is None or self.sliderMax is None:
                raise ValueError("'sliderMin' and / or 'sliderMax' cannot be 'None' if type is numericSlider")


            self._editorWidget = Slider(min=self.sliderMin, max=self.sliderMax,
                                        value=Config.getint(self.section, self.option), step=1)
            self._editorWidget.bind(value=self.value_changed)

            self._editorWidget2 = TextInput(multiline=False, font_size=self._editorHolder.height / 2,
                                            text=Config.get(self.section, self.option), input_filter="int")
            self._editorWidget2.bind(on_text_validate=self.text_box_int_validator)
            self._editorWidget2.bind(focus=self.text_box_int_validator)


        elif self.type == "bool":
            self._editorWidget = Switch(active=Config.getboolean(self.section, self.option))
            self._editorWidget.bind(active=self.value_changed)


        elif self.type == "string":
            self._editorWidget = TextInput(multiline=False, font_size=self._editorHolder.height / 2,
                                           text=Config.get(self.section, self.option))
            self._editorWidget.bind(on_text_validate=lambda *args: self.value_changed(None, self._editorWidget.text))
            self._editorWidget.bind(focus=lambda *args: self.value_changed(None, self._editorWidget.text))

        elif self.type == "option":
            self._editorWidget = Button(text=Config.get(self.section, self.option))

            dropDown = DropDown()

            for option in self.options:
                text = str(option)
                try:
                    text = text + " - " + str(self.extra_info[option])
                except KeyError:
                    pass

                btn = Button(text=text, size_hint_y=None, height=self.height)
                btn.tag = str(option)
                btn.bind(on_release=lambda _btn: dropDown.select(_btn.tag))
                dropDown.add_widget(btn)

            self._editorWidget.bind(on_release=dropDown.open)
            self._editorWidget.bind(on_release=lambda *args: emptyFunction(dropDown.children))
            dropDown.bind(on_select=lambda instance, x: setattr(self._editorWidget, 'text', x))
            dropDown.bind(on_select=self.value_changed)


        if self._editorWidget2 is not None:
            self._editorHolder.add_widget(self._editorWidget2)

        if self.type != "title":
            self._editorHolder.add_widget(self._editorWidget)
Пример #3
0
        def pre_mine(self):
            Logger.info("Miner: Started pre mining setup function")

            MemriseElements.get("username_input",
                                self.driver).send_keys(self.usrName)
            MemriseElements.get("password_input",
                                self.driver).send_keys(self.pwdInput)
            MemriseElements.get("login_submit_button", self.driver).click()

            wait_till_page_load(self.driver)

            home_courses_elements = MemriseElements.get_multiple(
                "courses", self.driver)
            home_courses = {}
            for course in home_courses_elements:
                home_courses[str(MemriseElements.get("course_title", course).get_attribute("title"))] = \
                    MemriseElements.get("course_title", course).find_element(By.TAG_NAME, "a").get_attribute("href")
            Logger.info("Miner: Located courses and links: \n" +
                        str(pformat(home_courses)))

            self.driver.get(Config.get("URLs", "groups"))

            groups_elements = MemriseElements.get_multiple(
                "groups_individual",
                MemriseElements.get("groups", self.driver))
            groups_courses = {}
            for group in groups_elements:
                groups_courses[str(
                    MemriseElements.get("groups_individual_title",
                                        group).text)] = {}
                for course in MemriseElements.get_multiple(
                        "groups_individual_courses", group):

                    groups_courses[str(
                        MemriseElements.get(
                            "groups_individual_title",
                            group).text)][MemriseElements.get(
                                "course_title",
                                course).text] = MemriseElements.get(
                                    "course_title", course).find_element(
                                        By.TAG_NAME, "a").get_attribute("href")

            Logger.info("Miner: Located groups, courses and links: \n" +
                        str(pformat(groups_courses)))

            Logger.info("Miner: Finished pre mining setup function")
Пример #4
0
        def setup(self):
            try:
                self.driver.quit()
            except AttributeError:
                pass

            chromedriver_autoinstaller.install()
            Logger.info("Miner: Chromedriver installed if not already")

            chrome_options = ChromeOptions()
            if Config.getboolean("Gui", "headless"):
                chrome_options.add_argument("--headless")
            chrome_options.add_argument("--window-size=1920,1080")
            chrome_options.add_argument(
                "--log-path=" +
                str(os.path.join(user_data_dir, "chromedriver.log")))
            Logger.info("Miner: Chromedriver setup")

            url = Config.get("URLs", "sign_in")
            self.driver = webdriver.Chrome(options=chrome_options)
            self.driver.get(url)

            Logger.info("Miner: Loaded " + str(url))
Пример #5
0
class Bot:
    def __init__(self):
        self.bot = None
        self.modules = []
        self.config = Config()

    async def on_ready(self):
        """Event handler for when the bot is ready."""
        log("Initializing bot presence...")
        game = self.config.get("game-presence", "Skynet")
        await self.bot.change_presence(activity=discord.Game(name=game))

        log("Loading modules...")
        self.modules = [DeckEditModule(self, self.bot)]

        log("Initialization complete, %d modules loaded." % len(self.modules))

    async def on_message_delete(self, msg):
        """Event handler for when a message is deleted.

        Args:
            msg: The message that was deleted.
        """
        for module in self.modules:
            await module.on_message_delete(msg)

    async def on_message_edit(self, before, after):
        """Event handler for when a message is edited.

        Args:
            before: The message before the edit.
            after: The message after the edit.
        """
        for module in self.modules:
            await module.on_message_edit(before, after)

    async def on_member_join(self, member):
        """Event handler for when a member joins the server.

        Args:
            member: The member that joined the server.
        """
        for module in self.modules:
            await module.on_member_join(member)

    async def on_member_remove(self, member):
        """Event handler for when a member leaves the server.

        Args:
            member: The member that left the server.
        """
        for module in self.modules:
            await module.on_member_remove(member)

    async def on_message(self, msg):
        """Event handler for messages.

        Args:
            msg: The message.
        """
        for module in self.modules:
            await module.on_message(msg)

    async def handle_command(self, msg, cmd, args):
        """Event handler for commands.

        Args:
            msg: The message that contains the command.
            cmd: The command.
            args: The arguments provided.
        """
        for module in self.modules:
            await module.on_command(msg, cmd, args)