Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Shinichi-Ohki/maker_event

Repository files navigation

Maker Event Generator | メイカーイベント生成ツール

🌐 Live Demo: https://shinichi-ohki.github.io/maker_event/

A Python script to generate static web pages for maker events from Google Sheets data.

Google Sheetsのデータからメイカーイベントの静的ウェブページを生成するPythonスクリプトです。

Code Generation | コード生成

This project was generated using AI/LLM tools. このプロジェクトはAI/LLMツールを使用して生成されました。

The original idea was generated by humans. 元となるアイデアは人間によって生成されました。

Features | 機能

  • 📊 Google Sheets Integration - Fetch event data directly from Google Sheets
  • 🌍 Multi-language Support - Japanese events in Japanese, international events in English
  • 📱 Responsive Design - Mobile-friendly event listing page
  • 🎨 Modern UI - Clean, card-based layout inspired by MakerFaire.com
  • 📅 Smart Filtering - Only shows upcoming events
  • 🔄 Easy Updates - Simple script execution to refresh the page
  • 🔍 Change Detection - Efficient updates only when spreadsheet content changes
  • 🚀 Auto Git Push - Automatic commit and push functionality
  • Scheduled Updates - GitHub Actions for daily automatic updates
  • 🖼️ Parallel Image Fetching - Fast concurrent image processing
  • 📝 Auto-generated OGP Images - Timeline-style social media previews

  • 📊 Google Sheets連携 - Google Sheetsから直接イベントデータを取得
  • 🌍 多言語対応 - 日本のイベントは日本語、海外イベントは英語で表示
  • 📱 レスポンシブデザイン - モバイルフレンドリーなイベント一覧ページ
  • 🎨 モダンUI - MakerFaire.comにインスパイアされた洗練されたカードベースレイアウト
  • 📅 スマートフィルタリング - 今後開催されるイベントのみ表示
  • 🔄 簡単更新 - スクリプト実行でページを簡単に更新
  • 🔍 変更検出機能 - スプレッドシート内容変更時のみ効率的に更新
  • 🚀 Git自動プッシュ - 自動コミット・プッシュ機能
  • 定期自動更新 - GitHub Actionsによる毎日の自動更新
  • 🖼️ 並列画像取得 - 高速な並行画像処理
  • 📝 OGP画像自動生成 - タイムライン形式のソーシャルメディア用プレビュー

Requirements | 必要環境

  • Python 3.8+
  • uv (Python package manager)

⚠️ Important Notes | 重要な注意事項

Font Files | フォントファイルについて

The Noto Sans JP font file (NotoSansJP-Regular.ttf) is not included in this repository due to licensing considerations. The script will automatically download the font from Google Fonts when first run. If the download fails, the script will fall back to system default fonts.

Noto Sans JPフォントファイル(NotoSansJP-Regular.ttf)はライセンスの関係でリポジトリに含まれていません。スクリプトの初回実行時にGoogle Fontsから自動的にダウンロードされます。ダウンロードに失敗した場合は、システムのデフォルトフォントが使用されます。

OGP Image URL Configuration | OGP画像URL設定について

⚠️ For deployment customization: The OGP image URL in generate_events.py is hardcoded to https://shinichi-ohki.github.io/maker_event/ogp_image.png. If you're deploying this to a different domain, you'll need to update the ogp_image_url variable in the generate_html() function to match your deployment URL.

⚠️ デプロイメントのカスタマイズについて: generate_events.py内のOGP画像URLはhttps://shinichi-ohki.github.io/maker_event/ogp_image.pngにハードコードされています。異なるドメインにデプロイする場合は、generate_html()関数内のogp_image_url変数をデプロイメントURLに合わせて更新する必要があります。

Installation | インストール

  1. Clone this repository | このリポジトリをクローン:
git clone <repository-url>
cd maker_event
  1. Dependencies are automatically managed by uv | 依存関係はuvによって自動管理されます

Usage | 使用方法

Basic Usage | 基本使用法:

# Basic generation | 基本生成
uv run generate_events.py

# With automatic Git push | Git自動プッシュ付き
uv run generate_events.py --auto-push

# Force generation (skip change detection) | 強制生成(変更検出をスキップ)
uv run generate_events.py --force

# Force generation with auto push | 強制生成 + 自動プッシュ
uv run generate_events.py --force --auto-push

Automatic Updates | 自動更新:

The system automatically updates daily at 3 AM JST via GitHub Actions. Manual execution is also available from the GitHub Actions tab.

システムはGitHub Actionsにより毎日午前3時(JST)に自動更新されます。GitHub ActionsタブからManual実行も可能です。

Script Behavior | スクリプトの動作:

The script will:

  1. Check for spreadsheet changes (unless --force is used)
  2. Fetch data from the configured Google Sheets
  3. Parse and filter upcoming events with parallel image fetching
  4. Generate a responsive HTML page (index.html) and OGP image
  5. Optionally commit and push changes (if --auto-push is used)
  6. Display statistics about the generated events

スクリプトは以下の処理を行います:

  1. スプレッドシートの変更をチェック(--force使用時を除く)
  2. 設定されたGoogle Sheetsからデータを取得
  3. 並列画像取得で今後のイベントを解析・フィルタリング
  4. レスポンシブなHTMLページ(index.html)とOGP画像を生成
  5. 変更をコミット・プッシュ(--auto-push使用時のみ)
  6. 生成されたイベントの統計情報を表示

Output | 出力

The generated index.html file will contain:

  • Japanese Events Section - Events in Japan displayed in Japanese
  • International Events Section - Events outside Japan displayed in English
  • Responsive Grid Layout - Cards with event details, dates, and links
  • Modern Styling - Professional appearance with hover effects

生成されるindex.htmlファイルには以下が含まれます:

  • 日本のイベントセクション - 日本のイベントを日本語で表示
  • 海外イベントセクション - 海外のイベントを英語で表示
  • レスポンシブグリッドレイアウト - イベント詳細、日付、リンクを含むカード
  • モダンスタイリング - ホバーエフェクト付きのプロフェッショナルな外観

Configuration | 設定

Google Sheets URL | Google Sheets URL

The script is configured to use a specific Google Sheets URL. To use your own sheet:

  1. Make your Google Sheet publicly viewable
  2. Update the sheet_url variable in generate_events.py
  3. Ensure your sheet has the expected column names

スクリプトは特定のGoogle Sheets URLを使用するよう設定されています。独自のシートを使用する場合:

  1. Google Sheetを公開表示可能にする
  2. generate_events.pysheet_url変数を更新
  3. シートに期待される列名があることを確認

Expected Sheet Columns | 期待されるシート列

The script looks for these column names (supports both Japanese and English):

Japanese English Description
イベント名 Event Name Event title
開催日 Date Event date
場所 Location Event location
Country Country name
詳細 Description Event description
URL Website Event website
画像URL Image URL Event image

Development | 開発

Development dependencies | 開発依存関係:

Development dependencies are automatically managed when running development tools with uv run.

開発依存関係は uv run で開発ツールを実行する際に自動的に管理されます。

Code formatting | コードフォーマット:

uv run black .
uv run isort .

Linting | リンティング:

uv run flake8 .

Project Structure | プロジェクト構造

maker_event/
├── .github/
│   └── workflows/
│       └── update-events.yml   # GitHub Actions workflow | GitHub Actionsワークフロー
├── generate_events.py          # Main script | メインスクリプト
├── pyproject.toml             # Project configuration | プロジェクト設定
├── README.md                  # This file | このファイル
├── CLAUDE.md                  # Development history | 開発履歴
├── templates/                 # HTML templates (auto-generated) | HTMLテンプレート(自動生成)
├── index.html                # Generated output | 生成された出力
├── ogp_image.png             # Generated OGP image | 生成されたOGP画像
├── .last_state.json          # Change detection state | 変更検出状態
└── NotoSansJP-Regular.ttf    # Font file (auto-downloaded) | フォントファイル(自動ダウンロード)

Note: Files marked as "auto-generated" or "auto-downloaded" are created when you run the script and are not included in the repository.

注意: "自動生成" や "自動ダウンロード" と記載されたファイルは、スクリプト実行時に作成されるファイルで、リポジトリには含まれていません。

License | ライセンス

This project is open source and available under the MIT License.

このプロジェクトはオープンソースで、MITライセンスの下で利用可能です。

Contributing | 貢献

Contributions are welcome! Please feel free to submit issues and pull requests.

貢献を歓迎します!イシューやプルリクエストをお気軽に提出してください。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •