コード例 #1
0
def lambda_handler(event, context):
    """Takes in an event from Api.ai, through Api Gateway.
    Returns a dict with keys "speech", "displayText", and "Source".
    Source is always the "BART API"    """
    dict() = {
        "speech": get_station_name() + "from" + get_direction(),
        "displayText": get_station_name() + "from" + get_direction(),
        "Source": "BART API"
    }

    return dict()
コード例 #2
0
def lambda_handler(event, context):
    """Takes in an event from Api.ai, through Api Gateway.
    Returns a dict with keys "speech", "displayText", and "Source".
    Source is always the "BART API"    """
    station_name = get_station_name(event)
    spoken_station_name = station_info(station_name)["spoken_name"]
    written_station_name = station_info(station_name)["written_name"]
    direction = get_direction(event)[0].lower()

    """Sets the parameters of the request to the bart api."""
    param = {}
    param["cmd"] = "etd"
    param["orig"] = station_info(station_name)["abbr"]
    param["key"] = os.environ["BART_API_KEY"]
    param["dir"] = direction
    param["json"] = "y"

    response = requests.get(BART_URL, params = param)
    response_json = response.json()

    minutes = get_departure_info(response_json)["minutes"]
    minutes_next = get_departure_info(response_json)["minutes next"]
    destination = get_departure_info(response_json)["destination"]
    spoken_text = get_spoken_or_written_string(spoken_station_name, direction, minutes, destination, minutes_next, True)
    written_text = get_spoken_or_written_string(written_station_name, direction, minutes, destination, minutes_next, False)

    return {"speech" : spoken_text, "display API" : written_text, "source" : "BART API"}
コード例 #3
0
def main(
    station: ('URI to radio station (direct link, not playlist)', 'option', 's') = "",
    console: ('Start as console application', 'flag', 'c') = False
):
    """
    The main function to start the application. App can be started in three modes:
      * Qt application with system tray icon, default, no options
      * Console process, with -c option
    """

    # Determine radio station
    # TODO: If no station specified, play last one or a random one
    uri = station
    if not uri:
        uri = StateStorage.get_last_station()
        if uri:
            print("Connecting to last station selected: %s" % utils.get_station_name(uri))
    if not uri:
        station = utils.get_random_station(config.stations)
        uri = station['uri']
        if uri:
            print("Station randomly selected: %s" % station['name'])
    if not uri:
        raise ValueError('Specify radio station URI as start argument or add one in config.py file!')

    # Start as console app, if requested
    if console:
        app = App(sys.argv)
        app.show_tray_icon = False
        app.run(uri)
    else:
        app = App(sys.argv)
        app.run(uri)
コード例 #4
0
def list_stations():

    __addon__ = xbmcaddon.Addon()

    # Show a dialog
    pDialog = xbmcgui.DialogProgress()
    pDialog.create(config.NAME, 'Fetching station list...')

    try:
        stations = comm.get_stations()

        if not stations:
            d = xbmcgui.Dialog()
            msg = utils.dialog_message(
                "No stations found. This is usually because no matches are currently being played. Please try again later."
            )
            d.ok(*msg)
            return

        utils.log("Found %s stations" % len(stations))

        ok = True
        for s in stations:

            station_name = utils.get_station_name(s['id'])

            thumb = os.path.join(__addon__.getAddonInfo('path'), "resources",
                                 "img", "%s.jpg" % s['id'])

            listitem = xbmcgui.ListItem(station_name)
            labels = {"title": station_name, "genre": "Sport"}

            listitem.setInfo(type='music', infoLabels=labels)
            listitem.setThumbnailImage(thumb)

            params = utils.make_url({
                "id": s['id'],
                "name": station_name,
                "url": s['streamURL']
            })

            url = "%s?%s" % (sys.argv[0], params)

            # Add the item to the list
            ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                             url=url,
                                             listitem=listitem,
                                             isFolder=True,
                                             totalItems=len(stations))

        xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=ok)
    except:
        # user cancelled dialog or an error occurred
        d = xbmcgui.Dialog()
        msg = utils.dialog_error("Unable to fetch station list")
        d.ok(*msg)
        utils.log_error()
コード例 #5
0
import sys

import database
import utils


def get_station_name():
    hardware_parameters = database.get_hardware_parameters()
    mac_address = utils.get_mac_address('-')

    idx = hardware_parameters['macAddress'].index(mac_address)
    station_name = hardware_parameters['stationName'][idx]

    return station_name


if __name__ == '__main__':
    import sys

    import utils

    station_name = utils.get_station_name()

    msg = station_name
    msg += '\n'
    sys.stdout.write(msg)
    sys.stdout.flush()
コード例 #6
0
initial_startup = True
upload_successful = False
files_uploaded = 0
captures_failed = 0

camera_parameters = None

if dump_station_parameters_database:
    station_parameters = database.get_station_parameters(verbose=True)
    hourly_parameters = database.get_hourly_parameters(verbose=True)
    hardware_parameters = database.get_hardware_parameters(verbose=True)
    sys.exit()

if flash_camera_settings:
    station_parameters = database.get_station_parameters(verbose=False)
    station_parameters['stationName'] = utils.get_station_name()
    if station_parameters['cameraType'].lower() == 'rpi':
        parameters = database.get_rpi_camera_parameters(station_parameters,
                                                        verbose=True)
    elif station_parameters['cameraType'].lower() == 'gphoto2':
        parameters = database.get_gphoto2_camera_parameters(station_parameters,
                                                            verbose=True)
    camera_parameters = camera.initialize(station_parameters, verbose=True)
    camera.close(station_parameters, camera_parameters, verbose=True)
    sys.exit()

while True:
    # Pick up the latest parameters from the databases
    if verbose:
        msg = 'Picking up the latest parameters from the '
        msg += 'configuration databases ...'