01234567890123456789012345678901234567890123456789012345678901234567890123456789
265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703 2704270527062707270827092710271127122713271427152716271727182719272027212722272327242725 |
<----SKIPPED LINES---->
bottom of the message.
Args:
lines: list of strings that comprise the message
splitflap: boolean, True if directed for splitflap display; false if
directed to screen
Returns:
String - which includes embedded new line characters, borders, etc. as
described above, that can be printed to screen as the message.
"""
divider = '+' + '-'*SPLITFLAP_CHARS_PER_LINE + '+'
border_character = '|'
append_character = '\n'
if splitflap:
border_character = ''
# vestaboard tries to line wrap so adding a space ensures that it does not
# interpret a pair of lines that end and begin with characters as one
# contiguous string
append_character = ' '
# Create blank lines up to the required number of lines
for unused_n in range(SPLITFLAP_LINE_COUNT-len(lines)):
lines.append('')
# convert escaped character codes potentially embedded in personal
# message to something that can be displayed well on screen, albeit
# the colors for {63}..{69} aren't captured in plain text
# see https://docs.vestaboard.com/characters
escaped_characters = (
('{62}', u'\u00b0'),
('{63}', u'\u2588'), # red
('{64}', u'\u2588'), # orange
('{65}', u'\u2588'), # yellow
('{66}', u'\u2588'), # green
('{67}', u'\u2588'), # blue
('{68}', u'\u2588'), # violet
('{69}', u'\u2588')) # red
lines = [
border_character +
line.ljust(SPLITFLAP_CHARS_PER_LINE).upper() +
border_character
for line in lines]
if not splitflap:
lines.insert(0, divider)
lines.append(divider)
message = append_character.join(lines)
for code, character in escaped_characters:
message = message.replace(code, character)
return message
def FlightInsightLastSeen(flights, days_ago=2):
"""Generates string indicating when flight was last seen.
Generates text of the following form.
- KAL214 was last seen 2d0h ago
Args:
flights: the list of the raw data from which the insights will be generated,
where the flights are listed in order of observation - i.e.: flights[0]
was the earliest seen, and flights[-1] is the most recent flight for
which we are attempting to generate an insight.
days_ago: the minimum time difference for which a message should be
generated - i.e.: many flights are daily, and so we are not necessarily
interested to see about every daily flight that it was seen yesterday.
However, more infrequent flights might be of interest.
<----SKIPPED LINES---->
|
01234567890123456789012345678901234567890123456789012345678901234567890123456789
2653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677 267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725 |
<----SKIPPED LINES---->
bottom of the message.
Args:
lines: list of strings that comprise the message
splitflap: boolean, True if directed for splitflap display; false if
directed to screen
Returns:
String - which includes embedded new line characters, borders, etc. as
described above, that can be printed to screen as the message.
"""
divider = '+' + '-'*SPLITFLAP_CHARS_PER_LINE + '+'
border_character = '|'
append_character = '\n'
if splitflap:
border_character = ''
# vestaboard tries to line wrap so adding a space ensures that it does not
# interpret a pair of lines that end and begin with characters as one
# contiguous string
append_character = ''
# Create blank lines up to the required number of lines
for unused_n in range(SPLITFLAP_LINE_COUNT-len(lines)):
lines.append('')
lines = [
border_character +
line.ljust(SPLITFLAP_CHARS_PER_LINE).upper() +
border_character
for line in lines]
if not splitflap:
lines.insert(0, divider)
lines.append(divider)
message = append_character.join(lines)
if not splitflap:
# convert escaped character codes potentially embedded in personal
# message to something that can be displayed well on computer screen, albeit
# the colors for {63}..{69} aren't captured in plain text
# see https://docs.vestaboard.com/characters
escaped_characters = (
('{62}', u'\u00b0'),
('{63}', u'\u2588'), # red
('{64}', u'\u2588'), # orange
('{65}', u'\u2588'), # yellow
('{66}', u'\u2588'), # green
('{67}', u'\u2588'), # blue
('{68}', u'\u2588'), # violet
('{69}', u'\u2588')) # red
for code, character in escaped_characters:
message = message.replace(code, character)
return message
def FlightInsightLastSeen(flights, days_ago=2):
"""Generates string indicating when flight was last seen.
Generates text of the following form.
- KAL214 was last seen 2d0h ago
Args:
flights: the list of the raw data from which the insights will be generated,
where the flights are listed in order of observation - i.e.: flights[0]
was the earliest seen, and flights[-1] is the most recent flight for
which we are attempting to generate an insight.
days_ago: the minimum time difference for which a message should be
generated - i.e.: many flights are daily, and so we are not necessarily
interested to see about every daily flight that it was seen yesterday.
However, more infrequent flights might be of interest.
<----SKIPPED LINES---->
|