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")
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)
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")
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))
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)