Giraffe

Autodownload is an envisioned feature for OpenTTD which would allow a client to connect to a database (which is topic of this site) and query for the newGRF's stored in it. When selected for playing the newest version of that newGRF is downloaded. By comparison of the MD5 sums the appropriate version can be downloaded when connecting to a multiplayer server or loading a savegame. newGRF's uploaded to this server must be free to be distributed. This is acknowledged explicitly upon upload by the authors who are the only ones who may upload newGRF's.

Grfs may be queried by two methods automatically:
- update method: unique ID+MD5: return newest grf with same ID, if MD5 differs
- download method: unique ID+MD5: return exactly that grf with ID+MD5

Database desgin

Features of each GRF:
  • GRFs sequential version number (set by author upon upload: major + minor version) Some authors use also bugfix version steps like 1.5.2 or 1.0a, so I would suggest using one plain textfield
  • GRF file
  • GRF category as grf crawler / #openttdcoop grfpack: other (subs: townnames)/ landscape / infrastructure / industries / town_buildings / stations / vehicles (subs: planes/road_vehicles/ships/trains_wagons/trams)
  • author(s) list
  • license choosable from a drop-down list (GPL v2, GPL v3, CC-BY, CC-BY-SA (default), CC-BY-NC-SA, CC-BY-NC-ND), public domain, supplied readme
  • obsolete yes/no
  • owner(s): <authors identified by name>
  • GRF name (automatically extracted from the file)
  • unique grf ID (automatically extracted from file) - 4 bytes
  • date of upload / publication date (automatically)
  • MD5 sum (automatically extracted from file)
Authors can
  • Create a new grf entry (a new unique grf ID)
  • update an existing grf entry:
    • upload new grf file (pre-requisite: same unique ID)
    • change the name of the grf
    • change the category of the grf
    • update a new readme
    • mark the entry obsolet:
      *won't show anymore in list of available grf, if queried by unique ID
      *points to grf which superseeds this (if applicable)
Features available to Admins / moderators (to be decided who does what)
  • Create / modify / delete accounts
  • modify database entries
  • change ownership of grfs
  • change terms of upload / license conditions.
User records:
  • Name (unique)
  • E-Mail address
  • admin / member / moderator
  • password
    *initials (first 2 bytes for GRFID)
Client Interface:
  • Query update (submit ID+MD5, return grf, if MD5 of newest version differs for same ID)
  • Query load (submit ID+MD5, return grf with exactly that ID+MD5
Webinterface:
shows only non-obsolete grfs, newest versions
  • Browsing of repository:
    • Browse grfs by category
    • Browse grfs by submission date (change log)
    • Browse grfs by author
  • Search the database:
    • Search by name
    • Search by unique ID
    • Search by MD5 sum
      ¶

Suspended

The project has been deleted from our svn repository with r639.

Source is still available here: http://trac.openttdcoop.org/browser/giraffe?rev=481