Changes between Initial Version and Version 1 of TaskThemeDownloader


Ignore:
Timestamp:
07/19/10 13:23:00 (15 years ago)
Author:
stuartm
Comment:

Move Page

Legend:

Unmodified
Added
Removed
Modified
  • TaskThemeDownloader

    v1 v1  
     1This page is to track the proposed Theme Downloader.  This involves three
     2components: mythfrontend (Theme chooser), mythbackend (downloader), and
     3services.mythtv.org (hosts Themes available for download).
     4
     5{{{
     6Components
     7- Services webpage - http://services.mythtv.org/themes/
     8  - Hosts an 'index generator' that generates static html pages for each aspect
     9    ratio for each version of MythTV.  These are 'index.html' files put into
     10    subdirectories for the aspect ratio with a parent dir of the MythTV version
     11    number.  The Frontend will reference these via the subdirectory without
     12    specifying the 'index.html' portion. This will allow us the future option of
     13    switching to a dynamic page such as index.php without breaking existing
     14    frontends already deployed.  These pages are nothing fancy, they return just
     15    a list of theme names that are of the given aspect ratio and compatible with
     16    the given MythTV version.  The index generator also modifies the themeinfo.xml
     17    files to add a downloadurl tag to tell mythfrontend where to download the
     18    theme tarball from.  This gives us the flexibility of moving the download
     19    location or changing the tarball file naming convention at any time.  These
     20    downloads will probably come directly off the OSUOSL mirrors, so this index
     21    generator script will run after the OSUOSL rsync.
     22
     23    This index generator may also optionally generate a 'details.html' in each
     24    subdirectory which can be viewed in a web browser to view details about the
     25    the themes compatible with that version/aspect.  This detail includes
     26    information from the themeinfo.xml file and also shows the preview image
     27    and a link to the download URL.  This is for people who want to manually
     28    browse the themes rather than using the Frontend theme browser.
     29
     30  - Serves up static index pages listing what themes are available for a given
     31    MythTV version.
     32
     33    Example full URLs:
     34      http://services.mythtv.org/themes/repository/0.23/index/All/index.html
     35      http://services.mythtv.org/themes/repository/0.23/index/4:3/index.html
     36      http://services.mythtv.org/themes/repository/0.23/index/16:9/index.html
     37      http://services.mythtv.org/themes/repository/0.23/index/16:10/index.html
     38
     39    Frontend will access like this:
     40      http://services.mythtv.org/themes/repository/0.23/index/All/
     41      http://services.mythtv.org/themes/repository/0.23/index/4:3/
     42      http://services.mythtv.org/themes/repository/0.23/index/16:9/
     43      http://services.mythtv.org/themes/repository/0.23/index/16:10/
     44
     45    Example Result for /themes/repository/0.23/16:9/:
     46      Arclight
     47      Graphite
     48      LCARS
     49      Mythbuntu
     50
     51  - Serves up static themeinfo.xml files for the above-named themes.  These
     52    have been modified by the index generator to include a downloadurl tag
     53    to specify where to download the theme from.
     54
     55    Query:
     56      http://services.mythtv.org/themes/repository/0.23/Graphite/themeinfo.xml
     57
     58    Example:
     59      http://mythtv.bc2va.org/themes/repository/0.23/Graphite/themeinfo.xml
     60
     61  - Serves up static preview images for the above-named themes.
     62
     63    Query:
     64      http://services.mythtv.org/themes/repository/0.23/Arclight/preview.png
     65
     66    Example:
     67      http://mythtv.bc2va.org/themes/repository/0.23/Arclight/preview.png
     68
     69  - Optionally Serve up static tarballs for the above-named themes.  We could
     70    include an alternate download url in the themeinfo.xml file for use when
     71    the rsync process had not completed yet and a tarball was not available from
     72    the mirrors.  This might come in handy once we have a theme uploader UI on
     73    the website which allows people to upload and/or update their own themes
     74    on the website.
     75
     76    Query:
     77      http://services.mythtv.org/themes/downloads/Graphite/Graphite-1.1_0.23.tar.gz
     78
     79    Example:
     80      http://mythtv.bc2va.org/themes/download/Graphite/Graphite-1.1_0.23.tar.gz
     81
     82  - Installing a new theme on the services website is as simple as:
     83    - Copy tarball to .../themes/download/THEMENAME/THEMENAME-THEMEVERSION_MYTHVERSION.tgz
     84      (NOTE: this location may change or their may need to be a script which puts the files
     85       in the proper location for the OSUOSL rsync job)
     86      ie, .../themes/download/Graphite/Graphite-1.1_0.23.tgz
     87    - Theme tarball should included a versioned subdir (ie, 'Graphite-1.1_0.23', not 'Graphite')
     88    - Unpack themeinfo.xml and preview images into repository dir for correct MythTV version
     89      .../themes/repository/0.23/Graphite/themeinfo.xml
     90      .../themes/repository/0.23/Graphite/preview.png
     91    - Run the 'index generator' script.
     92
     93  - The sample services page above parses the themeinfo.xml files to check the aspect ratio as
     94    well as to display the Theme information on the human-readable version of the webpage.
     95
     96- mythfrontend
     97  - Theme chooser
     98    - Gets list of theme names from services webpage
     99    - downloads themeinfo.xml file for each theme.
     100      downloaded to temp directory under GetConfDir()  ~/.mythtv/themedownloader/Graphite-1.1_0.23/themeinfo.xml
     101    - parses themeinfo.xml using existing ThemeInfo class to allow displaying theme info on screen.
     102    - downloads preview(s) for each theme
     103    - presents user with a screen to download/install one or multiple themes
     104  - Requests backend to download theme tarball when user picks a theme
     105  - Can use a remote theme from the master BE over mythproto or D/L theme from MBE and install locally.
     106
     107- mythbackend (master backend only)
     108  - Downloads theme tarballs when requested by the frontend
     109  - Sends out myth event when theme is downloaded
     110  - Extracts downloaded themes to GetConfDir()/themes
     111  - Serves up themes in GetConfDir()/themes subdir via normal mythproto file serving
     112  - Serves up theme tarballs over myth proto for any FE to download locally and install.
     113
     114}}}