About Thinger

Overview

Thinger is a Perl program that generates webpages which list descriptions of things from interactive fiction games. It is very similar to my previous Responser project.

The raw input data comes from several files (such as beds.json, mirrors.json, etc.), in JSON format, UTF-8 encoding. All the JSON files are kept in a subdirectory called "json". Thinger also reads an image directory to determine which cover art images it can use in the output webpages.

Thinger's output is a set of .html files, one per JSON file, plus an index.html file.

  • Thinger.pl is the source code for this Perl program.
  • Format of each thing.json file

    {
      "type": "thing-name",
      "supers": [ "super-name", ... ],
      "icon": icon-record,
      "search": [ "search-term", ... ],
      "aliases": [ "alias", ... ],
      "about": "introductory-paragraph",
      "works": {
        work-ID: work-record,
        work-ID: work-record,
        work-ID: work-record,
        ...
      }
    }
    

    where:

    Format of the icon-record

    {
      "img": "filename",
      "attrib": "attribution-statement",
      "lic": "license-code"
    }
    

    where:

    Format of a work-record

    {
      "title": "work-title",
      "sfx": "suffix",
      "year": "publication-year",
      "x": "examine-verb",
      "things": [ instance-record, ... ],
      "dont-list": "private-explanation",
      "notes":[ "private-note", ... ]
    }
    

    where:

    A work-record should have exactly one of dont-list or things defined, but not both.

    Format of an instance-record

    {
      "name": "item-name",
      "type": "thing-type",
      "loc": "item-location",
      "desc": "item-description",
      "list-as": "list-as-code",
      "for": "for-name",
      "note": "public-note"
    }
    

    where:

    The Thinger_QC program

    This is a second program that analyzes the JSON datafiles; the "QC" stands for "Quality Control". I want to know if the data is not well-formatted or incomplete, where I'm having problems, and to make suggestions where I can improve the data. This program also taps into my main datafile for IF works, currently called gamejson.txt, from my IFIndexer project.

    What Thinger_QC currently reports on:

    The Thinger_Suggest program

    This program scans the markup versions of my walkthrough files for the search terms in my JSON files then reports a list of works of interactive fiction that should be added to each existing JSON file.

    NOTE: Thinger_Suggest only datamines completed walkthroughs, not walkthroughs-in-progress.

    TODO

    Types of Things to Add

    Updates


    IF Things Last updated: 29 Jul 2023 davidwelbourn(a)hotmail*com