Merge branch 'main' of repo.anhonesthost.net:HPR/hpr-tools
This commit is contained in:
		
							
								
								
									
										685
									
								
								Community_News/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										685
									
								
								Community_News/README.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,685 @@ | ||||
| # NAME | ||||
|  | ||||
| make\_shownotes - Make show notes for the Hacker Public Radio Community News show | ||||
|  | ||||
| # VERSION | ||||
|  | ||||
| This documentation refers to **make\_shownotes** version 0.4.5 | ||||
|  | ||||
| # USAGE | ||||
|  | ||||
|     make_shownotes [-help] [-documentation|-man] [-config=FILE] | ||||
|         [-from=DATE] [-[no]comments] [-[no]silent] [-[no]mailnotes] | ||||
|         [-lastrecording=DATETIME] | ||||
|         [-full-html=FILE] [-html=FILE] [-json=FILE] | ||||
|         [-debug=N] | ||||
|  | ||||
| # OPTIONS | ||||
|  | ||||
| - **-help** | ||||
|  | ||||
|     Displays a brief help message describing the usage of the program, and then exits. | ||||
|  | ||||
| - **-documentation** or **-man** | ||||
|  | ||||
|     Displays the entirety of the documentation (using a pager), and then exits. | ||||
|  | ||||
|     To generate a PDF version use: | ||||
|  | ||||
|         pod2pdf make_shownotes --out=make_shownotes.pdf | ||||
|  | ||||
| - **-config=FILE** | ||||
|  | ||||
|     The script uses a configuration file to hold the various parameters it needs | ||||
|     to run. This option allows an alternative configuration file to be used. This file | ||||
|     defines many settings including the location of the database. | ||||
|  | ||||
|     See the CONFIGURATION AND ENVIRONMENT section below for the file format. | ||||
|  | ||||
|     If the option is omitted the default file is used: **.make\_shownotes.cfg**, | ||||
|     which is expected to be in the same directory as the script itself. | ||||
|  | ||||
| - **-from=DATE** | ||||
|  | ||||
|     This option is used to indicate the month for which the shownotes are to be | ||||
|     generated. The script is able to parse a variety of date formats, but it is | ||||
|     recommended that ISO8601 **YYYY-MM-DD** format be used (for example 2014-06-30). | ||||
|  | ||||
|     The day part of the date must be present but is ignored and only the month and | ||||
|     year parts are used (to internally denote the first day of the month). | ||||
|  | ||||
|     If this option is omitted the current month is used. Of course, this may cause | ||||
|     problems if the notes are to generated for an earlier (or later) month, which | ||||
|     is why this option exists. | ||||
|  | ||||
| - **-\[no\]comments** | ||||
|  | ||||
|     This option controls whether the comments pertaining to the selected month are | ||||
|     included in the output. If the option is omitted then no comments are included | ||||
|     (**-nocomments**). | ||||
|  | ||||
| - _Output file options_: **-html=FILE**, **-full-html=FILE**, **-json=FILE** | ||||
|  | ||||
|     There are three output file types that can be generated by the script. At | ||||
|     least one must be present: | ||||
|  | ||||
|     - _HTML fragment_ (**-html=FILE**) | ||||
|  | ||||
|         This file will contain the HTML to be added to the HPR database. The page for | ||||
|         the show, when it is released, will be a full web page, with standard header | ||||
|         and footer, and the contents will come from this HTML fragment in the database. | ||||
|  | ||||
|         Action will be needed in addition to the script to add this file to the | ||||
|         database, but how this is done is outside the scope of this documentation. | ||||
|  | ||||
|     - _Standalone HTML_ (**-full-html=FILE**) | ||||
|  | ||||
|         The file created in this case will contain a full, stand-alone HTML page. It | ||||
|         is intended to be circulated to the co-hosts recording the episode to make it | ||||
|         easier to access various information sources during the recording. | ||||
|  | ||||
|         In the file the comments relating to past shows will show the full text, and | ||||
|         there will be indications of comments that were read in the last recording, | ||||
|         and any that were missed. | ||||
|  | ||||
|         In order to highlight comments read, and those missed in the previous | ||||
|         recording the script needs to know the date and time of the recording. This | ||||
|         information should be in a date cache file referenced in the configuration | ||||
|         file (usually **recording\_dates.dat**). This file is updated when the monthly | ||||
|         mail message is generated (see **make\_email**). If, for any reason, this has | ||||
|         not happened, the information can be provided with the | ||||
|         **-lastrecording=DATETIME** option (alternatively written as **-lr=DATETIME**). | ||||
|         See below for more information. | ||||
|  | ||||
|     - _JSON details_ (**-json=FILE**) | ||||
|  | ||||
|         This file will contain JSON data which is intended to be used to upload the | ||||
|         episode to the database. How this is done is outside the scope of this | ||||
|         document. The format used is very close to that used in the workflow which is | ||||
|         used to upload episodes submitted through the upload forms. | ||||
|  | ||||
|     In all cases the output file name may contain the characters '**%s**'. This | ||||
|     denotes the point at which the year and month in the format **YYYY-MM** are | ||||
|     inserted. For example if the script is being run for July 2014 the option: | ||||
|  | ||||
|         -html=shownotes_%s.html | ||||
|  | ||||
|     This will cause the generation of the file: | ||||
|  | ||||
|         shownotes_2014-07.html | ||||
|  | ||||
| - **-lastrecording=DATETIME** or **-lr=DATETIME** | ||||
|  | ||||
|     As mentioned for **-full-html=FILE**, and later in the _MARKING COMMENTS_ | ||||
|     section, the script needs the date of the last recording when marking | ||||
|     comments. This can be extracted from the file referenced in the configuration | ||||
|     data using the setting **cache**. By default the name of this file is | ||||
|     **recording\_dates.dat**, and its contents are managed when the script | ||||
|     **make\_email** is run and by this script. | ||||
|  | ||||
|     If for any reason the date and time of the last recording is missing, these | ||||
|     values can be defined with this option, and these values will be written to | ||||
|     the cache file (or modified, if necessary). | ||||
|  | ||||
|     The format can be an ISO 8601 date followed by a 24-hour time, such as | ||||
|     '2020-01-25 15:00:00'. If the time is omitted it defaults to the value of | ||||
|     _starttime_ in the configuration file. | ||||
|  | ||||
|     The script will update the cache file with the date and time used in this | ||||
|     option if the relevant entry is missing. Also, if an entry is present but the | ||||
|     values are different from those provided with the option, the relevant entry | ||||
|     will be updated. | ||||
|  | ||||
|     Note that the **DATETIME** value must contain the date of the last recording. | ||||
|     This will be checked, and written to the cache file prefixed by a "key" | ||||
|     consisting of the first day of the month _BEFORE_ the month being reviewed. | ||||
|  | ||||
|     For example, when generating the notes for August 2025 the following command | ||||
|     will be needed if there is no last recording date (for July 2025) in the | ||||
|     cache: | ||||
|  | ||||
|         ./make_shownotes -from=2025-08-01 -full-html=full_shownotes_%s.html \ | ||||
|             -mail -comments -lr="2025-08-01 15:00:00" | ||||
|  | ||||
|     Here we need the last recording date for the show reviewing HPR shows in July | ||||
|     2025\. The date and time for this recording was in early August (Friday before | ||||
|     the first Monday of September 2025-09-01), as shown. This combination will | ||||
|     result in the addition of the following line to the cache file: | ||||
|  | ||||
|         2025-07-01,2025-08-01 15:00:00 | ||||
|  | ||||
|     As mentioned, the addition of such date and time information to the cache will | ||||
|     normally be performed by **make\_email**, which performs the date computations | ||||
|     itself, unlike this script. This feature in this script is an alternative for | ||||
|     special cases. | ||||
|  | ||||
| - **-\[no\]silent** | ||||
|  | ||||
|     This option controls whether the script reports details of its progress | ||||
|     to STDERR. If the option is omitted the report is generated (**-nosilent**). | ||||
|  | ||||
|     The script reports: the month it is working on, the name of the requested output files | ||||
|     and details of the process of generating these files. | ||||
|  | ||||
| - **-\[no\]mailnotes** | ||||
|  | ||||
|     If desired, the show notes may include a section linking to recent discussions | ||||
|     on the HPR Mailman mailing list. | ||||
|  | ||||
|     The current template (defined in the configuration file by the variable | ||||
|     **main\_template**, **shownote\_template12.tpl**) simply contains a section | ||||
|     like the following: | ||||
|  | ||||
|         [%- IF mailnotes == 1 -%] | ||||
|         <h2>Mailing List discussions</h2> | ||||
|         <p> | ||||
|         Policy decisions surrounding HPR are taken by the community as a whole. | ||||
|         This discussion takes place on the <a href="[% mailinglist %]" | ||||
|         target="_blank">Mailing List</a> which is open to all HPR listeners and | ||||
|         contributors. The discussions are open and available on the HPR server | ||||
|         under <a href="[% mailbase %]">Mailman</a>. | ||||
|         </p> | ||||
|         <p>The threaded discussions this month can be found here:</p> | ||||
|         <a href="[% mailthreads %]" target="_blank">[% mailthreads %]</a> | ||||
|         [%- END %] | ||||
|  | ||||
|     The _TT2_ variables such as **mailinglist** and **mailthreads** are defined earlier in | ||||
|     the template. | ||||
|  | ||||
| - **-debug=N** | ||||
|  | ||||
|     Enables debugging mode when N > 0 (zero is the default, no debugging output). | ||||
|     The levels are: | ||||
|  | ||||
|     Values are: | ||||
|  | ||||
|     1. TBA | ||||
|     2. Reports the following (as well as the data for level 1): | ||||
|  | ||||
|         >         Details of the last recording data (and time) | ||||
|  | ||||
|     3. Reports the following (as well as the data for level 2): | ||||
|  | ||||
|         >         The generation of comment indexes needed in the comment lists. These are | ||||
|         >         computed after the query has been run. | ||||
|  | ||||
|     4. See the **DESCRIPTION** section for an explanation of the data structures | ||||
|     mentioned here. | ||||
|  | ||||
|         Reports the following (as well as the data for level 3): | ||||
|  | ||||
|         >         A dump of the '%past' hash which contains details of comments on past shows. | ||||
|         > | ||||
|         >         A dump of the '%current' hash which contains details of comments on this | ||||
|         >         month's shows. | ||||
|         > | ||||
|         >         A dump of the '@missed\_comments' array containing comments that arrived after | ||||
|         >         the last recording. | ||||
|         > | ||||
|         >         A list of the duplicated episode numbers in '@missed\_episodes' | ||||
|         > | ||||
|         >         Another dump of '%past' after it has been cleaned up. Also the count of | ||||
|         >         comments to past shows and the comment count. | ||||
|  | ||||
| # MARKING COMMENTS | ||||
|  | ||||
| Explaining the marking of comments in the full HTML file: | ||||
|  | ||||
| > This is only relevant when generating the full stand-alone HTML ("handout") | ||||
| > for circulation to the volunteers recording the Community News episode. In | ||||
| > this output the comments sent in to past shows (those before the review month) | ||||
| > include their full texts in order to make reading them easier. | ||||
| > | ||||
| > Normally comments (to shows in the reviewed month) are read as the shows | ||||
| > themselves are reviewed, so the full texts are not needed in this handout. | ||||
| > | ||||
| > In addition to this, there is a possibility that certain comments relating to | ||||
| > past shows were already discussed last month, because they were made before | ||||
| > that show was recorded. We don't want to read them again during this show, so | ||||
| > a means of marking them is needed. | ||||
| > | ||||
| > As well as this, some comments may have been missed in the last month because | ||||
| > the recording was made before the end of the review month. On some months of | ||||
| > the year the recording is made during the month itself because the first | ||||
| > Monday of the next month is in the first few days of the next month. For | ||||
| > example, in March 2019 the date of recording is the 30th, and the show is | ||||
| > released on April 1st. Between the recording and the release of the show there | ||||
| > is time during which more comments could be submitted. | ||||
| > | ||||
| > Such comments should be in the notes for March (and these can be regenerated | ||||
| > to make sure this is so) but they will not have been read on the March | ||||
| > recording. The **make\_shownotes** script detects this problem and, if | ||||
| > generating full notes will show a list of any eligible comments in a red | ||||
| > highlighted box. This is so that the volunteers recording the show can ensure | ||||
| > they read comments that have slipped through this loophole. | ||||
| > | ||||
| > The script extracts the date of the last recording  from the _cache_ file (or | ||||
| > it can be specified with the **-lastrecording=DATETIME** option, or its | ||||
| > abbreviation **-lr=DATETIME**) and passes it to the template. The template can | ||||
| > then compare this date with the dates of the relevant comments and take action | ||||
| > to highlight those that don't want to be re-read or were missed last month. It | ||||
| > is up to the template to do what is necessary to highlight them. | ||||
|  | ||||
| # DESCRIPTION | ||||
|  | ||||
| ## Overview | ||||
|  | ||||
| This script generates notes for the next Hacker Public Radio _Community News_ | ||||
| show. It does this by collecting various details of activity from the HPR | ||||
| database and passing them to a template. The default template is called | ||||
| **shownote\_template.tpl** (defined in the configuration file) and this | ||||
| generates HTML, but any suitable textual format could be generated if | ||||
| required, by using a different template. | ||||
|  | ||||
| ## Data Gathering | ||||
|  | ||||
| Four types of information are collected by the script: | ||||
|  | ||||
| - **Host details** | ||||
|  | ||||
|     Details of new hosts who have released new shows in the selected month | ||||
|  | ||||
| - **Show details** | ||||
|  | ||||
|     Details of shows which have been released in the selected month | ||||
|  | ||||
| - **Comments** | ||||
|  | ||||
|     Comments which have been submitted to the HPR website in the selected month. | ||||
|     These need to be related to shows in the current period or in the past. | ||||
|     Comments made about shows which have not yet been released (but are visible on | ||||
|     the website) are not included even though they are made in the current month. | ||||
|  | ||||
| - **Mailing list threads** | ||||
|  | ||||
|     A link to the current threads on the mailing list in the past month can be included. This | ||||
|     is done by default but can be skipped if the **-nomailnotes** option is used. | ||||
|  | ||||
| ## Report Generation | ||||
|  | ||||
| The four components listed above are formatted in the following way by the | ||||
| default template. | ||||
|  | ||||
| - **New Hosts** | ||||
|  | ||||
|     These are formatted as a list of links to the **hostid** with the host's name. | ||||
|  | ||||
| - **Shows** | ||||
|  | ||||
|     These are formatted into an HTML table containing the show number, title and | ||||
|     host name. The show title is a link to the show page on the HPR website. The | ||||
|     host name is a link to the host page on the website. | ||||
|  | ||||
| - **Comments** | ||||
|  | ||||
|     These are formatted with <article> tags separated by horizontal lines. | ||||
|     A <header> shows the author name and title and a <footer> displays a link to | ||||
|     the show and the show's host and the show title is also included. Where | ||||
|     relevant, the body of the article contains the comment text with line breaks. | ||||
|  | ||||
| - **Mailing list discussions** | ||||
|  | ||||
|     A link to the mail threads on the mailing list is included if the | ||||
|     **-mailnotes** option is chosen or defaulted. | ||||
|  | ||||
|     See the explanation of the **-mailnotes** option for more details. | ||||
|  | ||||
| ## Variable, Field and Hash names | ||||
|  | ||||
| If you wish to write your own template refer to the following lists for the | ||||
| names of items. Also refer to the default template **shownote\_template.tpl** | ||||
| for the techniques used there. (Note that **shownote\_template.tpl** is a soft | ||||
| link to the current default template, such as **shownote\_template12.tpl**, the | ||||
| soft link name is currently used in the configuration file). | ||||
|  | ||||
| The hash and field names available to the template are as follows | ||||
|  | ||||
| - **Global variables** | ||||
|  | ||||
|         Variable Name          Details | ||||
|         -------------          ------- | ||||
|         review_month           The month name of the report date | ||||
|         review_year            The year of the report date | ||||
|         comment_count          The number of comments in total | ||||
|         past_count             The number of comments on old shows | ||||
|         ignore_count           The number of past comments to ignore | ||||
|         missed_count           The number of comments missed last time | ||||
|         skip_comments          Set when -comments is omitted | ||||
|         mark_comments          Set when comments are being marked | ||||
|         ctext                  Set when the comment texts in the 'Past shows' | ||||
|                                section are to be shown | ||||
|         last_recording         The date the last recording was made | ||||
|                                in Unixtime format | ||||
|         last_month             The month prior to the month for which the notes are | ||||
|                                being generated (computed if comments are being | ||||
|                                marked) in 'YYYY-MM' format | ||||
|         mailnotes              Set when a mail link is required | ||||
|  | ||||
| - **New Hosts** | ||||
|  | ||||
|     The name of the hash in the template is **hosts**. The hash might be empty if | ||||
|     there are no new hosts in the month. See the default template for how to | ||||
|     handle this. | ||||
|  | ||||
|         Field Name     Details | ||||
|         ----------     ------- | ||||
|         host           Name of host | ||||
|         hostid         Host id number | ||||
|  | ||||
| - **Show Details** | ||||
|  | ||||
|     The name of the hash in the template is **shows**. Note that there are more | ||||
|     fields available than are used in the default template. Note also that certain | ||||
|     field names are aliases to avoid clashes (e.g. _eps\_hostid_ and _ho\_hostid_). | ||||
|  | ||||
|         Field Name     Details | ||||
|         ----------     ------- | ||||
|         eps_id         Episode number | ||||
|         date           Episode date | ||||
|         title          Episode title | ||||
|         length         Episode duration | ||||
|         summary        Episode summary | ||||
|         notes          Episode show notes | ||||
|         eps_hostid     The numerical host id from the 'eps' table | ||||
|         series         The series number from the 'eps' table | ||||
|         explicit       The explicit marker for the show | ||||
|         eps_license    The license for the show | ||||
|         tags           The show's tags as a comma-delimited string | ||||
|         version        ?Obsolete? | ||||
|         eps_valid      The valid value from the 'eps' table | ||||
|         ho_hostid      The host id number from the 'hosts' table | ||||
|         ho_host        The host name | ||||
|         email          The hosts's email address (protected) | ||||
|         profile        The host's profile | ||||
|         ho_license     The default license for the host | ||||
|         ho_valid       The valid value from the 'hosts' table | ||||
|  | ||||
| - **Comment Details** | ||||
|  | ||||
|     Two hashes are created for comments. The hash named **past** contains comments | ||||
|     made in the review month to shows before this month, and **current** contains | ||||
|     comments to this month's shows. Note that these hashes are only populated if | ||||
|     the **-comments** option is provided or defaulted. Both hashes have the same | ||||
|     structure. | ||||
|  | ||||
|         Field Name             Details | ||||
|         ----------             ------- | ||||
|         episode                Episode number | ||||
|         identifier_url         Full show URL | ||||
|         title                  Episode title | ||||
|         date                   Episode date | ||||
|         host                   Host name | ||||
|         hostid                 Host id number | ||||
|         timestamp              Comment timestamp in ISO8601 format | ||||
|         comment_author_name    Name of the commenter | ||||
|         comment_title          Title of comment | ||||
|         comment_text           Text of the comment | ||||
|         comment_timestamp_ut   Comment timestamp in Unixtime format | ||||
|         in_range               Boolean (0/1) denoting whether the comment was made | ||||
|                                in the target month | ||||
|         index                  The numerical index of the comment for a given show | ||||
|         ignore                 Boolean (0/1), set if the comment is to be ignored | ||||
|  | ||||
|     The purpose of the **in\_range** value is to denote whether a comment was made | ||||
|     in the target month. This is used in the script to split the comments into the | ||||
|     **past** and **current** hashes. It is therefore of little use in the template, | ||||
|     but is retained in case it might be useful. The **index** value can be used in | ||||
|     the template to refer to the comment, make linking URLs etc. It is generated | ||||
|     by the SQL. | ||||
|  | ||||
| - **Mailing List Link** | ||||
|  | ||||
|     The variable **mailnotes** contains 0 or 1 depending on whether the link and | ||||
|     accompanying text are required. | ||||
|  | ||||
| ## Filters | ||||
|  | ||||
| A filter called **decode\_entities** is available to the template. The reason | ||||
| for creating this was when the HTML of a comment is being listed as text | ||||
| (Unicode actually). Since comment text is stored in the database as HTML with | ||||
| entities when appropriate this is needed to prevent the plain text showing | ||||
| _&amp;_ and the like verbatim. It is not currently used, but has been left in | ||||
| case it might be of use in future. | ||||
|  | ||||
| # DIAGNOSTICS | ||||
|  | ||||
| - **Unable to find configuration file ...** | ||||
|  | ||||
|     The nominated configuration file in **-config=FILE** (or the default file) | ||||
|     cannot be found. | ||||
|  | ||||
| - **Error: Unable to find AOB file ...** | ||||
|  | ||||
|     The AOB file referred to in the error message is missing. Th | ||||
|  | ||||
| - **Use -lastrecording=DATETIME only with -full-html=FILE** | ||||
|  | ||||
|     The **-lastrecording=DATETIME** option is only relevant when the full | ||||
|     stand-alone HTML is being generated. This is a fatal error. | ||||
|  | ||||
| - **At least one of -html=FILE, -full-html=FILE and -json=FILE must be present** | ||||
|  | ||||
|     The script writes up to three output files, as explained above. At least one | ||||
|     must be present otherwise there is no point in running it! | ||||
|  | ||||
| - **Error: Unable to find ... file ...** | ||||
|  | ||||
|     The type of mandatory file with the name referred to in the error message is missing. | ||||
|  | ||||
| - **The date and time of the last recording is not in the cache** | ||||
|  | ||||
|     Followed by: | ||||
|  | ||||
|         Use option -lastrecording=DATETIME (or -lr=DATETIME) instead | ||||
|         Can't continue | ||||
|  | ||||
|     This means that the date and time expected in the date cache cannot be found, | ||||
|     so the script needs to be run again with the information presented in the | ||||
|     option mentioned. | ||||
|  | ||||
| - **Unable to find database** | ||||
|  | ||||
|     The SQLite database referenced in the configuration file has not been found. | ||||
|  | ||||
| - **Trying to overwrite an existing show. Aborting** | ||||
|  | ||||
|     After a check on the database, the computed episode number matches a slot that | ||||
|     has already been allocated. A check has been made for an old-style placeholder | ||||
|     for Community News episodes, but no match was found, so the script has aborted | ||||
|     in case an existing episode will be overwritten. | ||||
|  | ||||
| - **Error: show ... has a date in the past** | ||||
|  | ||||
|     The date computed for the Community News episode is in the past. Perhaps the | ||||
|     wrong date or month was specified in an option? | ||||
|  | ||||
| - **Problem with constructing JSON** | ||||
|  | ||||
|     A request for JSON output has been made. The script is attempting to collect | ||||
|     information about the host who is preparing the show (_HPR Volunteers_) but | ||||
|     the database query has failed. | ||||
|  | ||||
|     It is possible the configuration file entry _hostid_ contains the wrong host | ||||
|     id number. | ||||
|  | ||||
| - **Unable to find a reference show** | ||||
|  | ||||
|     The script is attempting to find the release date (and episode number) for the | ||||
|     Community News show in the database. It does this by finding a reference | ||||
|     episode and stepping forward, incrementing the episode number and date. The | ||||
|     reference date is the earliest in the target month, but for some unexpected | ||||
|     reason this has not been found. | ||||
|  | ||||
| - **Invalid DATE or DATETIME '...' in parse\_to\_dc** | ||||
|  | ||||
|     It is likely that the date provided through the **-from=DATE** option is | ||||
|     invalid. Use an ISO8601 date in the format _YYYY-MM-DD_. | ||||
|  | ||||
| - **... failed to open '...': ...** | ||||
|  | ||||
|     There was a problem opening the date cache file. Check the details in the | ||||
|     configuration file. This file is expected to be located in the same directory | ||||
|     as the script. | ||||
|  | ||||
| - **... failed to close '...': ...** | ||||
|  | ||||
|     There was a problem closing the date cache file. | ||||
|  | ||||
| - **Invalid Date::Calc date and time (...) in dc\_to\_dt** | ||||
|  | ||||
|     There was a problem processing a date (and time). A likely cause is an invalid | ||||
|     date in one of options which requires and date or date and time. The script | ||||
|     will report more than usual on this error to try and aid with debugging. | ||||
|  | ||||
| # CONFIGURATION AND ENVIRONMENT | ||||
|  | ||||
| The script obtains the details and settings it required from a configuration | ||||
| file. The name of the file it expects is **.make\_shownotes.cfg**, but this can | ||||
| be changed with the **-config=FILE** option. | ||||
|  | ||||
| The configuration file is expected to be in the directory holding the | ||||
| script. The script determines its location dynamically for this purpose. | ||||
|  | ||||
| The configuration file contains the following settings, which are explained | ||||
| at the end. | ||||
|  | ||||
|     # | ||||
|     # .make_shownotes.cfg (2025-04-13) | ||||
|     # Configuration file for make_shownotes version >= 4 | ||||
|     # | ||||
|     <settings> | ||||
|         # Format strings (using 'printf' formatting) for building certain required strings | ||||
|         title_template   = HPR Community News for %s %s | ||||
|         summary_template = HPR Volunteers talk about shows released and comments posted in %s %s | ||||
|      | ||||
|         # Repeat the following line with each of the desired tags to make an | ||||
|         # array-like structure | ||||
|         tags             = Community News | ||||
|      | ||||
|         # Host id for HPR Volunteers | ||||
|         # Series id for HPR Community News series | ||||
|         hostid = 159 | ||||
|         series_id = 47 | ||||
|      | ||||
|         # Day the Community News show is released | ||||
|         releaseday = Monday | ||||
|      | ||||
|         # Default day of the week for the recording | ||||
|         recordingday = Friday | ||||
|      | ||||
|         # Recording times are UTC | ||||
|         starttime = 16:00:00 | ||||
|         endtime = 17:00:00 | ||||
|      | ||||
|         # cache of previous recording dates and times | ||||
|         cache = recording_dates.dat | ||||
|      | ||||
|         # Template Toolkit templates | ||||
|         # -------------------------- | ||||
|      | ||||
|         # Main note template (actually a soft link) | ||||
|         main_template = shownote_template.tpl | ||||
|      | ||||
|         # Used to make a stand-alone HTML file from the default HTML | ||||
|         # fragment | ||||
|         container_template = shownotes_container.tpl | ||||
|      | ||||
|     </settings> | ||||
|      | ||||
|     <database> | ||||
|         # Assume a local file | ||||
|         name = hpr.db | ||||
|     </database> | ||||
|  | ||||
| ## Configuration file details | ||||
|  | ||||
| If any mandatory elements are omitted from the configuration file they are | ||||
| given default values in the script. | ||||
|  | ||||
| - **Section "settings"** | ||||
|     - **title\_template**, **summary\_template** | ||||
|  | ||||
|         These are (_sprintf_) templates for these database fields, which are added to the full HTML | ||||
|         and the JSON. They are filled in (using _sprintf_) in the script. | ||||
|  | ||||
|     - **tags** | ||||
|  | ||||
|         Up to now, Community News episodes have used the tag **"Community News"**, so | ||||
|         this is now used in the configuration file. | ||||
|  | ||||
|     - **hostid**, **series\_id** | ||||
|  | ||||
|         As documented in the file, these are the internal numbers from the database | ||||
|         for the host and series associated with the show. | ||||
|  | ||||
|     - **releaseday**, **recordingday**, **starttime**, **endtime** | ||||
|  | ||||
|         These values define default dates and times for the recording of the show and | ||||
|         the date of release. | ||||
|  | ||||
|     - **cache** | ||||
|  | ||||
|         This is the name of the file holding recording dates and times for Community | ||||
|         News shows. The file is updated when **make\_email** is run since this script | ||||
|         defines the recording date and time. The script expects this file to be in the | ||||
|         directory holding the script itself, though an absolute path could be used if | ||||
|         needed. | ||||
|  | ||||
|     - **main\_template**, **container\_template** | ||||
|  | ||||
|         These are _TT2_ templates to be used by the script. The first is the template | ||||
|         used to generate the two types of HTML, and the second is used to generate | ||||
|         stand-alone HTML when the **-full-html=FILE** option is used. The script uses | ||||
|         both templates when generating the full HTML. | ||||
|  | ||||
|         The **container\_template** contains a snapshot of an HPR HTML page with the body | ||||
|         removed and the header and footer retained. The generated notes are added by | ||||
|         the script, giving the HTML which can be handed out to the volunteers hosting | ||||
|         the recording. | ||||
| - **Section "database"** | ||||
|     - **name** | ||||
|  | ||||
|         This contains the name of the SQLite database. This is a file which is | ||||
|         expected to be in the same directory as the script. | ||||
|  | ||||
| # DEPENDENCIES | ||||
|  | ||||
| Modules used: | ||||
|  | ||||
|     Carp | ||||
|     Config::General | ||||
|     Cwd | ||||
|     DBI | ||||
|     Data::Dumper | ||||
|     Date::Calc | ||||
|     Date::Parse | ||||
|     DateTime::Duration | ||||
|     DateTime | ||||
|     File::Copy | ||||
|     Getopt::Long | ||||
|     HTML::Entities | ||||
|     JSON | ||||
|     Pod::Usage | ||||
|     Template::Filters | ||||
|     Template | ||||
|  | ||||
| # BUGS AND LIMITATIONS | ||||
|  | ||||
| There are no known bugs in this module. | ||||
| Please report problems to Dave Morriss (Dave.Morriss@gmail.com) | ||||
| Patches are welcome. | ||||
|  | ||||
| # AUTHOR | ||||
|  | ||||
| Dave Morriss  (Dave.Morriss@gmail.com) | ||||
|  | ||||
| # LICENCE AND COPYRIGHT | ||||
|  | ||||
| Copyright (c) 2014-2025 Dave Morriss (Dave.Morriss@gmail.com). All rights reserved. | ||||
|  | ||||
| This module is free software; you can redistribute it and/or | ||||
| modify it under the same terms as Perl itself. See perldoc perlartistic. | ||||
|  | ||||
| This program is distributed in the hope that it will be useful | ||||
| but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||||
							
								
								
									
										
											BIN
										
									
								
								Community_News/make_shownotes.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Community_News/make_shownotes.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -757,7 +757,7 @@ function get_episode_metadata() { | ||||
|  | ||||
|   set_working_dir_variables | ||||
|  | ||||
|   check_variable_is_correct shownotes_html shownotes_edited | ||||
| #   check_variable_is_correct shownotes_html shownotes_edited | ||||
|    | ||||
|   if [[ -n "${skip_post_show}" && "${skip_post_show}" == "true" ]] | ||||
|   then | ||||
|   | ||||
		Reference in New Issue
	
	Block a user