Esempio n. 1
0
 def __init__(self, *args, **kwargs):
     CoreTable.__init__(self, *args, **kwargs)
     self.keyName = "directory"
     self.hiddenTableColumnsSettingKey = "hiddenFolderTableColumns"
     self.refreshColumns()
     pbtnVerifyTableValues = MPushButton(
         translate("FileTable", "Verify Table"))
     pbtnVerifyTableValues.setMenu(
         SearchEngines.SearchEngines(self, "value"))
     self.mContextMenu.addMenu(
         SearchEngines.SearchEngines(self, "value", True))
     self.hblBoxTools.addWidget(pbtnVerifyTableValues)
Esempio n. 2
0
 def __init__(self, *args, **kwargs):
     CoreTable.__init__(self, *args, **kwargs)
     self.keyName = "ADCArtist"
     self.amarokFilterKeyName = "AmarokFilterArtistTable"
     self.hiddenTableColumnsSettingKey = "hiddenAmarokArtistTableColumns"
     self.refreshColumns()
     self.wFilter = Filter.FilterWidget(self, self.amarokFilterKeyName)
     self.hblBoxOptions.addWidget(self.wFilter)
     pbtnVerifyTableValues = MPushButton(translate("FileTable", "Verify Table"))
     pbtnVerifyTableValues.setMenu(SearchEngines.SearchEngines(self, "value"))
     self.mContextMenu.addMenu(SearchEngines.SearchEngines(self, "value", True))
     self.hblBoxTools.addWidget(pbtnVerifyTableValues)
Esempio n. 3
0
 def __init__(self, *args, **kwargs):
     CoreTable.__init__(self, *args, **kwargs)
     self.keyName = "music"
     self.hiddenTableColumnsSettingKey = "hiddenSubFolderMusicTableColumns"
     self.refreshColumns()
     pbtnVerifyTableValues = MPushButton(
         translate("MusicTable", "Verify Table"))
     pbtnVerifyTableValues.setMenu(
         SearchEngines.SearchEngines(self, "music"))
     self.mContextMenu.addMenu(
         SearchEngines.SearchEngines(self, "music", True))
     lblDetails = translate(
         "SubFolderTable",
         "You can select sub directory deep.<br><font color=blue>You can select \"-1\" for all sub directories.</font>"
     )
     lblSubDirectoryDeep = MLabel(
         str(translate("SubFolderTable", "Deep") + " : "))
     self.SubDirectoryDeeps = [str(x) for x in range(-1, 10)]
     self.cbSubDirectoryDeep = MComboBox(self)
     self.cbSubDirectoryDeep.addItems(self.SubDirectoryDeeps)
     self.cbSubDirectoryDeep.setCurrentIndex(
         self.cbSubDirectoryDeep.findText(
             uni.MySettings["subDirectoryDeep"]))
     self.cbSubDirectoryDeep.setToolTip(lblDetails)
     self.hblBoxOptions.addWidget(pbtnVerifyTableValues)
     hblSubDirectory = MHBoxLayout()
     hblSubDirectory.addWidget(lblSubDirectoryDeep)
     hblSubDirectory.addWidget(self.cbSubDirectoryDeep)
     self.hblBoxOptions.addLayout(hblSubDirectory)
     MObject.connect(self.cbSubDirectoryDeep,
                     SIGNAL("currentIndexChanged(int)"),
                     self.subDirectoryDeepChanged)
     lblTagger = MLabel(translate("MusicTable", "Tag Module:"))
     taggerMachineNames, taggerNames = Taggers.getTaggerNames()
     self.cbTagger = MyComboBox()
     self.cbTagger.addDataItems(taggerMachineNames, taggerNames)
     self.cbTagger.setCurrentIndex(
         self.cbTagger.findText(
             Taggers.getTaggerName(uni.MySettings["preferedTaggerModule"])))
     self.cbTagger.setToolTip(
         translate(
             "MusicTable",
             "You can select the ID3 tag module you want to use.<br><font color=blue>Mutagen is recommended.</font>"
         ))
     hblTagger = MHBoxLayout()
     hblTagger.addWidget(lblTagger)
     hblTagger.addWidget(self.cbTagger)
     lblTagger.setMaximumWidth(100)
     self.cbTagger.setMaximumWidth(100)
     self.hblBoxTools.addLayout(hblTagger)
     MObject.connect(self.cbTagger, SIGNAL("currentIndexChanged(int)"),
                     self.cbTaggerChanged)
Esempio n. 4
0
 def __init__(self, *args, **kwargs):
     CoreTable.__init__(self, *args, **kwargs)
     self.keyName = "subfolder"
     self.hiddenTableColumnsSettingKey = "hiddenSubFolderTableColumns"
     self.refreshColumns()
     lblDetails = translate("SubFolderTable",
                            "You can select sub directory deep.<br><font color=blue>You can select \"-1\" for all sub directories.</font>")
     lblSubDirectoryDeep = MLabel(str(translate("SubFolderTable", "Deep") + " : "))
     self.SubDirectoryDeeps = [str(x) for x in range(-1, 10)]
     self.cbSubDirectoryDeep = MComboBox(self)
     self.cbSubDirectoryDeep.addItems(self.SubDirectoryDeeps)
     self.cbSubDirectoryDeep.setCurrentIndex(self.cbSubDirectoryDeep.findText(uni.MySettings["subDirectoryDeep"]))
     self.cbSubDirectoryDeep.setToolTip(lblDetails)
     hblSubDirectory = MHBoxLayout()
     hblSubDirectory.addWidget(lblSubDirectoryDeep)
     hblSubDirectory.addWidget(self.cbSubDirectoryDeep)
     self.hblBoxTools.addLayout(hblSubDirectory)
     MObject.connect(self.cbSubDirectoryDeep, SIGNAL("currentIndexChanged(int)"), self.subDirectoryDeepChanged)
     pbtnVerifyTableValues = MPushButton(translate("FileTable", "Verify Table"))
     pbtnVerifyTableValues.setMenu(SearchEngines.SearchEngines(self, "value"))
     self.mContextMenu.addMenu(SearchEngines.SearchEngines(self, "value", True))
     self.hblBoxTools.addWidget(pbtnVerifyTableValues)
Esempio n. 5
0
 def __init__(self, *args, **kwargs):
     CoreTable.__init__(self, *args, **kwargs)
     self.keyName = "music"
     self.hiddenTableColumnsSettingKey = "hiddenMusicTableColumns"
     self.refreshColumns()
     pbtnVerifyTableValues = MPushButton(translate("MusicTable", "Verify Table"))
     pbtnVerifyTableValues.setMenu(SearchEngines.SearchEngines(self, "music"))
     self.mContextMenu.addMenu(SearchEngines.SearchEngines(self, "music", True))
     self.hblBoxOptions.addWidget(pbtnVerifyTableValues)
     lblTagger = MLabel(translate("MusicTable", "Tag Module:"))
     taggerMachineNames, taggerNames = Taggers.getTaggerNames()
     self.cbTagger = MyComboBox()
     self.cbTagger.addDataItems(taggerMachineNames, taggerNames)
     self.cbTagger.setCurrentIndex(
         self.cbTagger.findText(Taggers.getTaggerName(uni.MySettings["preferedTaggerModule"])))
     self.cbTagger.setToolTip(translate("MusicTable",
                                        "You can select the ID3 tag module you want to use.<br><font color=blue>Mutagen is recommended.</font>"))
     hblTagger = MHBoxLayout()
     hblTagger.addWidget(lblTagger)
     hblTagger.addWidget(self.cbTagger)
     lblTagger.setMaximumWidth(100)
     self.cbTagger.setMaximumWidth(100)
     self.hblBoxTools.addLayout(hblTagger)
     MObject.connect(self.cbTagger, SIGNAL("currentIndexChanged(int)"), self.cbTaggerChanged)
Esempio n. 6
0
def main():
    # Set Debug Mode
    debugMode = False

    # Setup logging
    setUpLogging(debugMode)

    # Clear lastrun.txt file. This file holds the results from the last run. It also records the current run and uses that information to email the user with a list of job listings.
    clearTextFile(debugMode, "lastrun.txt")

    # Setup Selenium Chrome Webdriver
    Chrome = setUpChrome(debugMode)

    # Setup variables
    emailUsername = "******"
    emailPassword = "******"

    searchDice = True
    searchCareerBuilder = True
    searchGlassDoor = True
    searchLinkedIn = False  # Incomplete
    searchMonster = True
    searchSimplyHired = True

    # Create  Lists object. This is the object that holds all user defined keywords and lists that they wish to include or exclude into the search.
    Lists = lists.Lists(debugMode, logging)

    # Setup search engine objects and add them to a list.
    if searchDice:
        Lists.searchEngines.append(SearchEngines.Dice(debugMode, logging))
    if searchCareerBuilder:
        Lists.searchEngines.append(
            SearchEngines.CareerBuilder(debugMode, logging))
    if searchGlassDoor:
        Lists.searchEngines.append(SearchEngines.GlassDoor(debugMode, logging))
    if searchLinkedIn:
        Lists.searchEngines.append(SearchEngines.LinkedIn(debugMode, logging))
    if searchSimplyHired:
        Lists.searchEngines.append(
            SearchEngines.SimplyHired(debugMode, logging))
    if searchMonster:
        Lists.searchEngines.append(SearchEngines.Monster(debugMode, logging))

    # If anything breaks from here on out we need to close the Chrome driver.
    try:
        # Get each search engine. Search through it. Record the results. Clear the results list in prep for another search engine.
        logging.info("Starting Job Search Process...")
        for searchEngine in Lists.searchEngines:
            for experienceLevel in Lists.searchExperienceLevels:
                for searchKeywords in Lists.searchKeywords:
                    for searchLocation in Lists.searchLocations:
                        Lists.results = searchEngine.jobSearch(
                            Chrome, Lists, Lists.results, experienceLevel,
                            searchKeywords, searchLocation)
            writeResultsToTextFile("lastrun.txt", Lists.results,
                                   searchEngine.engineName)
            Lists.results.clear()
        logging.info("Job Search Process complete!")
    except Exception as error:
        logging.error("Error with Job Search Process.")
        logging.error(error)
        Chrome.quit()

    Chrome.quit()
    constructAndSendEmailFromTextFile("lastrun.txt", emailUsername,
                                      emailPassword)
    logging.info("Done!")
    logging.info(
        "====================================================================================================="
    )
Esempio n. 7
0
    def __init__(self, *args, **kwargs):
        CoreTable.__init__(self, *args, **kwargs)
        from Amarok import Filter

        self.keyName = "music"
        self.amarokFilterKeyName = "AmarokFilterAmarokMusicTable"
        self.hiddenTableColumnsSettingKey = "hiddenAmarokMusicTableColumns"
        self.refreshColumns()
        pbtnVerifyTableValues = MPushButton(
            translate("MusicTable", "Verify Table"))
        pbtnVerifyTableValues.setMenu(
            SearchEngines.SearchEngines(self, "music"))
        self.mContextMenu.addMenu(
            SearchEngines.SearchEngines(self, "music", True))
        lblSourceDetails = MLabel(translate("MusicTable", "Read From:"))
        lblTargetDetails = MLabel(translate("MusicTable", "Write To:"))
        self.MusicTagSourceTypes = Amarok.getTagSourceTypes()
        self.cbTagSourceType = MComboBox(self)
        self.cbTagSourceType.addItems(self.MusicTagSourceTypes)
        self.MusicTagTargetTypes = Amarok.getTagTargetTypes()
        self.cbTagTargetType = MComboBox(self)
        self.cbTagTargetType.addItems(self.MusicTagTargetTypes)
        self.cbTagSourceType.setCurrentIndex(
            self.cbTagSourceType.findText(
                Amarok.getSelectedTagSourseType("AmarokMusicTable")))
        self.cbTagTargetType.setCurrentIndex(
            self.cbTagTargetType.findText(
                Amarok.getSelectedTagTargetType("AmarokMusicTable")))
        self.cbTagSourceType.setToolTip(
            translate(
                "MusicTable",
                "You can select the ID3 tag source you want to read.<br><font color=blue>Amarok (Smart) is recommended.</font>"
            ))
        self.cbTagTargetType.setToolTip(
            translate(
                "MusicTable",
                "You can select the ID3 tag target you want to write.<br><font color=blue>Amarok + ID3 V2 is recommended.</font>"
            ))
        hblTagSourceType = MHBoxLayout()
        hblTagSourceType.addWidget(lblSourceDetails)
        hblTagSourceType.addWidget(self.cbTagSourceType)
        hblTagTargetType = MHBoxLayout()
        hblTagTargetType.addWidget(lblTargetDetails)
        hblTagTargetType.addWidget(self.cbTagTargetType)
        self.vblBoxSourceAndTarget.addLayout(hblTagSourceType)
        self.vblBoxSourceAndTarget.addLayout(hblTagTargetType)
        MObject.connect(self.cbTagSourceType,
                        SIGNAL("currentIndexChanged(int)"),
                        self.musicTagSourceTypeChanged)
        MObject.connect(self.cbTagTargetType,
                        SIGNAL("currentIndexChanged(int)"),
                        self.musicTagTargetTypeChanged)
        self.hblBoxOptions.addWidget(pbtnVerifyTableValues)
        self.wFilter = Filter.FilterWidget(self, self.amarokFilterKeyName)
        self.hblBoxOptions.addWidget(self.wFilter)
        lblTagger = MLabel(translate("MusicTable", "Tag Module:"))
        taggerMachineNames, taggerNames = Taggers.getTaggerNames()
        self.cbTagger = MyComboBox()
        self.cbTagger.addDataItems(taggerMachineNames, taggerNames)
        self.cbTagger.setCurrentIndex(
            self.cbTagger.findText(
                Taggers.getTaggerName(uni.MySettings["preferedTaggerModule"])))
        self.cbTagger.setToolTip(
            translate(
                "MusicTable",
                "You can select the ID3 tag module you want to use.<br><font color=blue>Mutagen is recommended.</font>"
            ))
        hblTagger = MHBoxLayout()
        hblTagger.addWidget(lblTagger)
        hblTagger.addWidget(self.cbTagger)
        lblTagger.setMaximumWidth(100)
        self.cbTagger.setMaximumWidth(100)
        self.hblBoxTools.addLayout(hblTagger)
        MObject.connect(self.cbTagger, SIGNAL("currentIndexChanged(int)"),
                        self.cbTaggerChanged)