mirror of
				https://github.com/KevinMidboe/homehub.git
				synced 2025-10-29 17:40:26 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import praw
 | |
| import ephem
 | |
| import requests
 | |
| 
 | |
| user_agent = ("topRedditPost pyMachine 0.1")
 | |
| submissionArray = []
 | |
| 
 | |
| weatherURL = 'http://www.yr.no/place/Norway/Oslo/Oslo/Ljabru/hour_by_hour.html'
 | |
| weatherURL1 = 'http://www.yr.no/place/Norway/Sør-Trøndelag/Trondheim/Utleirvegen/hour_by_hour.html'
 | |
| stringId = '<meta property="og:description" content="'
 | |
| 
 | |
| def getShowerThought():
 | |
| 	r = praw.Reddit(user_agent = user_agent)
 | |
| 	subreddit = r.get_subreddit("showerthoughts")
 | |
| 	
 | |
| 	for submission in subreddit.get_hot(limit = 5):
 | |
| 		submissionArray.append(submission.title)
 | |
| 
 | |
| 	with open('topSubPost.txt', 'w') as outputFile:
 | |
| 		print(submissionArray[2])
 | |
| 		outputFile.write(str(submissionArray[2]))
 | |
| 
 | |
| def timeOfDay():
 | |
| 	user = ephem.Observer()
 | |
| 	user.lat = '63.394079063'
 | |
| 	user.lon = '10.424076010'
 | |
| 	user.elevation = 118
 | |
| 
 | |
| 	next_sunrise_datetime = user.next_rising(ephem.Sun()).datetime()
 | |
| 	next_sunset_datetime = user.next_setting(ephem.Sun()).datetime()
 | |
| 
 | |
| 	if (next_sunset_datetime < next_sunrise_datetime):
 | |
| 		return "day"
 | |
| 	else:
 | |
| 		return "night"
 | |
| 
 | |
| def getWeatherReport():
 | |
| 	page = str(requests.get(weatherURL).content)
 | |
| 	idIndex = page.index(stringId) + len(stringId)
 | |
| 	forcastDescription = page[idIndex:idIndex + page[idIndex:].index('/>') - 2]
 | |
| 	forcastList = forcastDescription.split(', ')
 | |
| 	
 | |
| 	# Get the worded weather state
 | |
| 	weatherState = forcastList[0]
 | |
| 	while True:
 | |
| 		try:
 | |
| 			weatherState.index(':')
 | |
| 			weatherState = weatherState[weatherState.index(':') + 2:]
 | |
| 			pass
 | |
| 		except ValueError:
 | |
| 			forcastList[0] = weatherState + '.png'
 | |
| 			break
 | |
| 
 | |
| 	# Get the temp value
 | |
| 	tempValue = forcastList[1]
 | |
| 	forcastList[1] = tempValue[12:]
 | |
| 
 | |
| 	# Clean up any errors in the downpour
 | |
| 	try:
 | |
| 		forcastList[2] = forcastList[2].replace("\\xe2\\x80\\x93", "-")
 | |
| 	except ValueError:
 | |
| 		pass
 | |
| 
 | |
| 	# Get the wind value and append the direction of the wind
 | |
| 	windValue = windDir = forcastList[4]
 | |
| 	windValue = windValue[:windValue.index('from') - 1]
 | |
| 	windDir = windDir[windDir.index('from') + len('from') + 1:]
 | |
| 	forcastList[4] = windValue
 | |
| 	forcastList.append(windDir)
 | |
| 
 | |
| 	# Get the time of day
 | |
| 	forcastList.insert(0,timeOfDay())
 | |
| 
 | |
| 	print(forcastList)
 | |
| 	with open('weatherData.txt', 'w') as outputFile:
 | |
| 		for element in forcastList:
 | |
| 			outputFile.write(str(element) + '\n')
 | |
| 
 | |
| def main():
 | |
| 	getShowerThought()
 | |
| 	getWeatherReport()
 | |
| 
 | |
| main() |