Fixed bug where subscription job did not query weather
Also added city name in response
This commit is contained in:
		
							parent
							
								
									5e598f3e4f
								
							
						
					
					
						commit
						fbb2c65fd0
					
				
					 2 changed files with 13 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -95,10 +95,15 @@ def schedule_subscriptions():
 | 
			
		|||
    schedule.default_scheduler.clear()
 | 
			
		||||
    for user in users.values():
 | 
			
		||||
        for sub in user.subs:
 | 
			
		||||
            sub.city.query_weather()
 | 
			
		||||
            schedule.default_scheduler.every().day.at(time.strftime("%H:%M", sub.time)).do(
 | 
			
		||||
                send_message, chat_id=user.chat_id, message=str(sub.city.weather))
 | 
			
		||||
            sub.city.weather.clear()
 | 
			
		||||
            schedule.default_scheduler.every().day.at(time.strftime("%H:%M", sub.time)).do(handle_subscription,
 | 
			
		||||
                                                                                           chat_id=user.chat_id,
 | 
			
		||||
                                                                                           sub=sub)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def handle_subscription(chat_id: int, sub: Subscription):
 | 
			
		||||
    sub.city.query_weather()
 | 
			
		||||
    send_message(chat_id=chat_id, message=sub.city.get_weather_str())
 | 
			
		||||
    sub.city.weather.clear()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def push_callback(update: Update, context: CallbackContext):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -168,6 +168,9 @@ class City:
 | 
			
		|||
    def print_weather(self):
 | 
			
		||||
        print(self.weather)
 | 
			
		||||
 | 
			
		||||
    def get_weather_str(self) -> str:
 | 
			
		||||
        return f"Weather for *{self.name}*:\n" + str(self.weather)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def get_city_by_name(city_name: str) -> City:
 | 
			
		||||
    with open("city.list.json", "r") as city_list_file:
 | 
			
		||||
| 
						 | 
				
			
			@ -218,6 +221,6 @@ def handle_weather(update, context):
 | 
			
		|||
    if requested_city.name == "none":
 | 
			
		||||
        raise WeatherStationNotFoundError
 | 
			
		||||
    requested_city.query_weather()
 | 
			
		||||
    update.message.reply_text(str(requested_city.weather), disable_notification=True, parse_mode=ParseMode.MARKDOWN)
 | 
			
		||||
    update.message.reply_text(requested_city.get_weather_str(), disable_notification=True, parse_mode=ParseMode.MARKDOWN)
 | 
			
		||||
 | 
			
		||||
    requested_city.weather.clear()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue