A daily reminder for a random burger shop with images
Project description
ハンバーガーショップリマインダーシステム
概要
このシステムは、毎日午前9時に世界中のハンバーガーショップをランダムに選び、画像付きでリマインダーを提供するPythonアプリケーション。
以下の機能を備えている:
- ランダムにハンバーガーショップを選択
- 選択したショップの詳細と画像を表示
- 画像をローカルファイルに保存
使用技術
- random: ハンバーガーショップをランダムに選択するために使用
- requests: ハンバーガーショップの画像をインターネットからダウンロードするために使用
- PIL (Pillow): 画像の処理および表示のために使用
- apscheduler: スケジューリングを管理し、毎日決まった時間にタスクを実行するために使用
- matplotlib: 画像の表示および保存のために使用
コード説明
ライブラリのインポート
import random
import requests
from PIL import Image
from io import BytesIO
from apscheduler.schedulers.blocking import BlockingScheduler
import matplotlib
matplotlib.use('Agg') # GUIを使わないバックエンドを使用
import matplotlib.pyplot as plt
必要なライブラリをインポートする。matplotlibのバックエンドをAggに設定することで、GUIを使わずに画像を処理する。
ハンバーガーショップのリスト
burger_shops = [
{"name": "In-N-Out Burger", "location": "USA", "image_url": "https://via.placeholder.com/150"},
{"name": "Shake Shack", "location": "USA", "image_url": "https://via.placeholder.com/150"},
{"name": "Burger King", "location": "Worldwide", "image_url": "https://via.placeholder.com/150"},
{"name": "McDonald's", "location": "Worldwide", "image_url": "https://via.placeholder.com/150"},
{"name": "Five Guys", "location": "USA", "image_url": "https://via.placeholder.com/150"}
# 他のハンバーガー店を追加
]
サンプルとして5つのハンバーガーショップをリストに追加している。
リマインダーファンクション
def notify_burger_shop():
# ランダムにハンバーガー店を選ぶ
shop = random.choice(burger_shops)
name = shop["name"]
location = shop["location"]
image_url = shop["image_url"]
print(f"Selected shop: {name} in {location}")
print(f"Image URL: {image_url}")
try:
# 画像をダウンロードして表示
response = requests.get(image_url)
response.raise_for_status() # HTTPエラーが発生した場合は例外を発生させる
img = Image.open(BytesIO(response.content))
# 画像を表示
plt.imshow(img)
plt.title(f"{name} in {location}")
plt.axis('off') # 軸を非表示
plt.savefig(f"{name}.png") # 画像をファイルに保存
plt.close() # プロットを閉じる
print(f"Image saved as {name}.png")
except requests.exceptions.RequestException as e:
print(f"Error downloading image: {e}")
except Exception as e:
print(f"Error displaying image: {e}")
# 通知メッセージを作成
print(f"Today's recommended burger shop: {name} in {location}")
この関数は、ランダムに選んだハンバーガーショップの情報を表示し、画像をダウンロードして保存する。
スケジューラの設定
scheduler = BlockingScheduler()
# 毎日午前9時に実行するように設定
scheduler.add_job(notify_burger_shop, 'cron', hour=9, minute=0)
try:
print("Burger shop reminder started.")
scheduler.start()
except (KeyboardInterrupt, SystemExit):
print("Burger shop reminder stopped.")
apschedulerを使用して、毎日午前9時にnotify_burger_shop関数が実行されるようにスケジュールする。
実行方法
このスクリプトを実行することで、システムが起動し、毎日午前9時にランダムなハンバーガーショップの情報と画像が表示される。
python your_script.py
このシステムを実行するには、必要なライブラリをインストールする必要がある。
pip install requests pillow apscheduler matplotlib
注意点
- 画像URLはサンプルのため、実際のURLに置き換える。
- スクリプトを終了するには、Ctrl+Cを使用する。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file burger_shop_reminder-1.0.0.tar.gz
.
File metadata
- Download URL: burger_shop_reminder-1.0.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d9709a8659d37d5a42710838de9c91c719856c9c5eb7f0e8e850450d7d3116e |
|
MD5 | ef992532df1574f38d7bda89b1f540ce |
|
BLAKE2b-256 | 30dc49406528e87c547f82f4a5ef6f92b4cc8345cd445de9fc7f13da3e6390a6 |
File details
Details for the file burger_shop_reminder-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: burger_shop_reminder-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7d49faa51f2894c77af11bb082d9c417faee428def4e3e7dc95db00c8885fc4b |
|
MD5 | 99b40da6b7f786dc70218933bc218858 |
|
BLAKE2b-256 | c906037c84fd8d4d31e20ce0e295cf2991728fb8b66f298dcc5e1b9ef83fab9a |