Пример #1
0
 def test_get_weather_data(self):
     config = ConfigController()
     apiTokenFromConfig = config.get_open_weather_token()
     testApiUrl = "https://api.openweathermap.org/data/2.5/weather?q=London,GB&APPID=" + apiTokenFromConfig
     data = Weather.get_weather_data(self, testApiUrl)
     assert 'weather' in data
     assert 'main' in data
     assert 'wind' in data
     assert 'clouds' in data
     assert 'sys' in data
     assert 'coord' in data
Пример #2
0
    def __init__(self):
        """ init the variables """
        # Greetings
        self.greeting = "Hey there Sifu Nam !"
        self.masterName = "Sifu Nam"

        # Datetime
        datetimeInfo = datetime.now()
        self.date = datetimeInfo.strftime("%A, %B %d %Y")
        self.time = datetimeInfo.strftime("%X")
        self.hour = int(datetimeInfo.hour)

        # Weather Info
        weatherController = Weather()
        self.weatherInfo = weatherController.get_weather_data()
        self.clothingInfo = weatherController.get_clothing_data()
        self.generalWeatherStatus = weatherController.get_weather_status()

        # Schedule Info
        self.scheduleController = Schedule()
        self.timeToLeave = self.scheduleController.hourBLH + " hours" + " and " + self.scheduleController.mBLH + " mins"
Пример #3
0
def main():
    logger.info('Logging works!')

    weather = Weather()
    acceptable_weather_codes = config.get_weather_codes()

    logger.info('Started Sunmine application')

    current_state = MiningState.get_state()
    logger.info("Current state of the miner: " + current_state)  # weather

    # sunset/rise
    logger.info("Getting sunrise/sunset data from the internet...")
    sun_api_url = SunTimes.build_sun_api_url(config)
    sun_data = SunTimes.get_sun_data_from_api(sun_api_url)
    sun_rise = sun_data.get("results").get("sunrise")
    sun_set = sun_data.get("results").get("sunset")

    go_time = False
    go_time = is_the_sun_up(sun_set, sun_rise)
    logger.info("Sun is up: " + str(go_time))

    logger.info("Getting weather data from the internet...")
    weather_data = weather.get_weather_data(weather.built_url)

    weather_id = weather_data.get("weather")[0].get("id")

    go_weather = False
    if go_time:
        for w in acceptable_weather_codes:
            if w == str(weather_id):
                go_weather = True
                break
            else:
                go_weather = False
        logger.info("Weather conditions: " +
                    weather_data.get("weather")[0].get("main") + " - " +
                    str(weather_id))
        logger.info("Weather is acceptable for mining: " + str(go_weather))

    output = ""
    if go_time is True and go_weather is True:
        logger.info("Mining on")
        output = "Mining On"
        if is_miner_already_running(config.get_program_name()):
            logger.warning('Yes %s process was running, not starting.' %
                           (config.get_program_name()))
        else:
            logger.warning('No process was running')
            os.startfile(config.get_program_location())
        if "off" in current_state:
            logger.warning("Changing state, sending email.")
            send_mail.send(output)
            MiningState.set_state("on")
    else:
        logger.info("Mining Off")
        output = "Mining Off"
        if is_miner_already_running(config.get_program_name()):
            logger.warning('Yes %s process was running, killing.' %
                           (config.get_program_name()))
            kill_process(config.get_program_name())

        else:
            logger.warning(
                'Mining process not running, do not need to kill process.')
        if "on" in current_state:
            logger.warning("Changing state, sending email.")
            send_mail.send(output)
            MiningState.set_state("off")