Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burger_shop_reminder-1.0.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

burger_shop_reminder-1.0.0-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

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

Hashes for burger_shop_reminder-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9d9709a8659d37d5a42710838de9c91c719856c9c5eb7f0e8e850450d7d3116e
MD5 ef992532df1574f38d7bda89b1f540ce
BLAKE2b-256 30dc49406528e87c547f82f4a5ef6f92b4cc8345cd445de9fc7f13da3e6390a6

See more details on using hashes here.

File details

Details for the file burger_shop_reminder-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for burger_shop_reminder-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d49faa51f2894c77af11bb082d9c417faee428def4e3e7dc95db00c8885fc4b
MD5 99b40da6b7f786dc70218933bc218858
BLAKE2b-256 c906037c84fd8d4d31e20ce0e295cf2991728fb8b66f298dcc5e1b9ef83fab9a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page