application: blockly-demo
version: 1
runtime: python27
api_version: 1
threadsafe: no

handlers:
# Redirect obsolete URLs.
# Blockly files moved from /blockly to /static on 5 Dec 2012.
- url: /blockly/.*
  static_files: redirect.html
  upload: redirect.html
# Code, Maze and Turtle moved from demos to apps on 29 Dec 2012.
- url: /static/demos/(code|maze|turtle)/.*
  static_files: redirect.html
  upload: redirect.html
# Vietnamese apps moved from vn to vi on 9 Jun 2012.
- url: /static/apps/.+/vn\.html
  static_files: redirect.html
  upload: redirect.html
# Code moved to index.html on 7 Aug 2013.
- url: /static/apps/code/code\.html
  static_files: redirect.html
  upload: redirect.html
# Code became language-agnostic on 20 Jul 2013.
- url: /static/apps/code/(de|en|hu|vi|zh_tw)\.html
  static_files: redirect.html
  upload: redirect.html
# Graph moved to index.html on 7 Aug 2013.
- url: /static/apps/graph/graph\.html
  static_files: redirect.html
  upload: redirect.html
# Graph became language-agnostic on 20 Jul 2013.
- url: /static/apps/graph/(de|en|hu|vi)\.html
  static_files: redirect.html
  upload: redirect.html
# Maze moved to index.html on 7 Aug 2013.
- url: /static/apps/maze/maze\.html
  static_files: redirect.html
  upload: redirect.html
# Maze became language-agnostic on 20 Jul 2013.
- url: /static/apps/maze/(ca|cs|da|el|en|es|eu|fr|hu|it|lv|nl|pl|pt|ru|sr|sw|th|tr|vi)\.html
  static_files: redirect.html
  upload: redirect.html
# Plane moved to index.html on 7 Aug 2013.
- url: /static/apps/plane/plane\.html
  static_files: redirect.html
  upload: redirect.html
# Plane became language-agnostic on 20 Jul 2013.
- url: /static/apps/plane/(1_|2_)?(en|hu|vi|vn)\.html
  static_files: redirect.html
  upload: redirect.html
# Puzzle moved to index.html on 30 Jul 2013.
- url: /static/apps/puzzle/puzzle\.html
  static_files: redirect.html
  upload: redirect.html
# Puzzle became language-agnostic on 20 Jul 2013.
- url: /static/apps/puzzle/(af|cs|de|el|en|gl|hak|he|hu|ia|it|ja|ko|ksh|la|lb|lv|mk|ms|nl|pl|pt-br|ru|sv|sw|tzm|vi|zh-hans)\.html
  static_files: redirect.html
  upload: redirect.html
# Turtle moved to index.html on 7 Aug 2013.
- url: /static/apps/turtle/turtle\.html
  static_files: redirect.html
  upload: redirect.html
# Turtle became language-agnostic on 20 Jul 2013.
- url: /static/apps/turtle/(de|en|hu|vi)\.html
  static_files: redirect.html
  upload: redirect.html


# Storage API.
- url: /storage
  script: storage.py
  secure: always
- url: /storage\.js
  static_files: storage.js
  upload: storage\.js
  secure: always

# Blockly files.
- url: /static
  static_dir: static
  secure: always

# Closure library for uncompiled Blockly.
- url: /closure-library-read-only
  static_dir: closure-library-read-only
  secure: always

# Redirect for root directory.
- url: /
  script: index_redirect.py
  secure: always

# Favicon.
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico
  secure: always

# Apple icon.
- url: /apple-touch-icon\.png
  static_files: apple-touch-icon.png
  upload: apple-touch-icon\.png
  secure: always

# robot.txt
- url: /robots\.txt
  static_files: robots.txt
  upload: robots\.txt
  secure: always


skip_files:
# App Engine default patterns.
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
# Custom skip patterns.
- ^static/appengine/.*$
- ^static/apps/json/.*$
- ^static/apps/_soy/.+\.jar$
- ^static/i18n/.*$
- ^static/msg/json/.*$
- ^.+\.soy$
