2023年10月3日 星期二

取得國際空間站所在地的日出時間

 


import smtplib
import requests
from datetime import datetime
import email.message


def now_ISS_place(iss_url):
    response = requests.get(iss_url)
    response.raise_for_status()
    data = response.json()
    # print(data)
    x = data['iss_position']['longitude']
    y = data['iss_position']['latitude']
    return (x, y)


def sun_up_time(lat, lng, sun_url):
    Parameters = {
        'lat': float(lat),
        'lng': float(lng),
        'formatted': 0
    }
    response = requests.get(sun_url, params=Parameters)
    response.raise_for_status()
    data = response.json()
    print(f'日出時間={data["results"]["sunrise"]}')
    '轉換成datetime物件'
    datetime_obj = datetime.strptime(
        data["results"]["sunrise"], '%Y-%m-%dT%H:%M:%S+00:00')
    print(f'轉換後={datetime_obj}')
    # 將轉換後的時間寄信給自己
    with smtplib.SMTP('smtp.gmail.com', 587) as con:
        con.starttls()  # 開啟加密傳輸
        user = 'user@gmail.com'
        pw = '*******'
        con.login(user=user, password=pw)
        msg = email.message.EmailMessage()
        # 建立msg物件
        msg['Subject'] = '日出時間'
        #設定主題
        msg.set_content(f'國際空間站所在位置的日出時間為{datetime_obj}', charset='utf-8')

        # 預設編碼是ASCII, 調整為utf-8解析國字
        con.sendmail(from_addr=user, to_addrs=user, msg=msg.as_bytes())
        # 傳輸模式設定字節模式,避免資料遺失


position = now_ISS_place('http://api.open-notify.org/iss-now.json')
x = position[0]
y = position[1]

sun_up_time(x, y, 'https://api.sunrise-sunset.org/json')

標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁