Viz Ticker User Guide
Version 4.1 | Published January 22, 2024 ©
System Configuration
The Ticker Feed configuration file is named default.ini. The following settings can be defined in the INI file:
Media Sequencer Hostname
Ticker Feed communicates with the Ticker System through the Media Sequencer, which is the server process for the system. The Media Sequencer can be targeted either by hostname or IP address.
Example: mseq-hostname=localhost
Source
Ticker Feed makes it possible to populate a ticker carousel with data elements from an external source. The program access the file through a URL, which is checked for updates at a defined interval. Valid source URL schemes are file, HTTP, and FTP. For more information about source XML files, see XML Data Structure.
Example: File on disk: source=file:///C|/feed/data.xml
Example: Web Resource (HTTP): source=http://www.newspaper.com/news/viz\_feed.xml
Example: FTP Server: source=ftp://user:[email protected]/newsfeed.xml
Important Notes about File on Disk
Special rules apply to the URL reference for files on disk:
Note: The path must be absolute, not relative.
Example: Instead of C:\file.xml, type C|/file.xml.
When using a disk file as source, it is advisable to write to a temporary file, and then copy content to the file that is being monitored. This reduces the chance of reading corrupt/incomplete files.
Basic HTTP authentication
For basic HTTP authentication from feeds that have user/password restrictions, you can optionally instruct the URI to be constructed as (example):
http:
//[username]:[password]@hostname/data.xml
Some, but not all, browsers accept this basic authentication. Be aware that the username and password are exposed in clear text in the configuration file. This is a security issue if access to the server is exposed. The uid / password must be set in the configuration file. Example:
# HTTP basic authentication username and password. # Warning: Using HTTP basic authentication is potentially insecure since your username and password are # - exposed in clear text in
this
settings file (not an issue
if
access to the file is restricted). # - potentially exposed on an insecure connection (not an issue
if
the network itself is trusted or
if
using a secure connection). #url-username= #url-password=
Transformation
If the source data provides acceptable output in XML format, it is not necessary to define the transformation settings. If the source data must be converted to acceptable XML format, specify one or more transformations of the form:
<type-
1
>:<transformation-
1
>,<type-
2
>:<transformation-
2
>,...
Currently recognized transformation types are:
-
xsl: Specify an XSL file as transformation. If the feed source outputs XML, but of a different format, write an XSL transformation to be applied to the feed data, for example:
transformation=xsl:c:\feedtools\yourxml_to_tickerxml.xsl
-
prog: Specify an external executable as transformation. The feed data is piped through the program via standard input/output. If for example the feed source outputs data as lines of text, write a VB script to translate this to XML and specify like this:
transformation=prog:cscript
//NoLogo c:\feedtools\yourdata_to_tickerxml.vbs
Tip: For more information, see the example script in textfile_to_xml.vbs . The file can be found at <Installation-Directory>\filters. See Installation Directories .
-
feedcomp: Apply a built-in transformation to the feed data. Currently, available transformations are:
-
rss20: Transforms any RSS XML to the RSS 2.0 format. To read any RSS feed and insert it into the ticker, write for example:
transformation=feedcomp:rss20,xsl:filters\rss20_to_TickerFeedExample.xsl
Tip: For more information, go to the installation directory of Ticker Feed and see the example script in rss20_to_TickerFeedExample.xsl. The file can be found at <Installation-Directory>\filters. See Installation Directories.
If the feed is not trusted, it is possible to apply a censoring filter before inserting the messages to the ticker, for example:
transformation=feedcomp:rss20,prog:c:\feedtools\rss_censor.exe,xsl:rss20_to_TickerFeedExample.xsl
Using External Programs to Transform Feed Data
The value specified under the transformation key is a transformation pipeline, meaning that it enumerates a sequence of transformation steps that data obtained from the data source passes through before being applied to the Ticker System.
One of the transformation steps that can be configured is a transformation of type prog, which specifies an external executable that the data is piped through. This means that the data is piped into the standard-in stream of the executable process, and data is read back out from the program through the standard-out stream of the executable process.
This places the following requirements on executables that can be used for transforming data:
-
The executable must read all data provided to it on standard-in fully. The executable cannot choose to not read some of the data provided, since doing so causes a Pipe Broken error to be generated when the application exits without having read all available data, and this prevents the transformation pipeline from working.
-
The executable must write all outgoing data to standard-out before ending the process.
-
The executable must end the process with exit code 0 to indicate that the transformation was successful. Any other exit code is interpreted as an error, and the entire output is discarded.
If the Transformation Error (see image below) appears in the console or log file, the system has most likely tried to use an external executable that did not read all the data it was given on standard-in before it exited. To fix this problem, modify the external program so that it runs in a loop, reading all available data from standard-in input stream until it reaches the end of file (EOF) marker in the input stream. Only then let the program exit.
Log Level
It is possible to define various logging levels for Ticker Feed. The log level can be set to:
-
debug: Logs all necessary information, useful for debugging purposes as it maximizes the logging detail.
-
info: Logs information necessary for normal use. This log level is selected by default.
-
error: Logs only critical errors.
Example: log_level=debug