From: Maxious Date: Fri, 10 Feb 2012 07:18:59 +0000 Subject: Rename servicealerts to local terminology "Real Time Passenger Information System" X-Git-Url: https://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=cb89db41c3da2fa7bf5e6c7e419ec23c728ec1d4 --- Rename servicealerts to local terminology "Real Time Passenger Information System" --- --- /dev/null +++ b/rtpis/gtfs-realtime.php @@ -1,1 +1,53 @@ + $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens); + } + } + usort($toret, array('Parser', 'compare_media_ranges')); + } + return $toret; +} +$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); +if ($_REQUEST['json']) { + $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); + header('Content-Type: application/json; charset=utf8'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + if (isset($_GET['callback'])) { + $json = '(' . $return . ');'; //must wrap in parens and end with semicolon + //print_r($_GET['callback'] . $json); //callback is prepended for json-p + } + else + echo $return; +} +?> --- /dev/null +++ b/rtpis/importer.py @@ -1,1 +1,104 @@ +# info +# http://stackoverflow.com/questions/4206882/named-entity-recognition-with-preset-list-of-names-for-python-php/4207128#4207128 +# http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html approximate dist +# http://streamhacker.com/2008/12/29/how-to-train-a-nltk-chunker/ more training +# http://www.postgresql.org/docs/9.1/static/pgtrgm.html +# data sources +# http://twitter.com/#!/ACTEmergencyInf instant site wide +# http://twitter.com/#!/ACTPol_Traffic +# http://esa.act.gov.au/feeds/currentincidents.xml + +# source: https://gist.github.com/322906/90dea659c04570757cccf0ce1e6d26c9d06f9283 +# to install python -m nltk.downloader punkt +import nltk +import tweepy +import psycopg2 +import pickle + +from iniparse import INIConfig + +def insert_service_alert_sitewide(heading, message, url): + print "NaN" + +def insert_service_alert_for_street(streets, heading, message, url): + conn_string = "host='localhost' dbname='energymapper' user='postgres' password='snmc'" + # print the connection string we will use to connect + print "Connecting to database\n ->%s" % (conn_string) + try: + # get a connection, if a connect cannot be made an exception will be raised here + conn = psycopg2.connect(conn_string) + + # conn.cursor will return a cursor object, you can use this cursor to perform queries + cursor = conn.cursor() + + # execute our Query + cursor.execute("") + + # retrieve the records from the database + records = cursor.fetchall() + + for record in records: + ys.append(record[0]) + # >>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar')) + #>>> cur.statusmessage + #'INSERT 0 1' + except: + # Get the most recent exception + exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() + # Exit the script and print an error telling what happened. + sys.exit("Database connection failed!\n ->%s" % (exceptionValue)) + + +def extract_entity_names(t): + entity_names = [] + + if hasattr(t, 'node') and t.node: + if t.node == 'NE': + entity_names.append(' '.join([child[0] for child in t])) + else: + for child in t: + entity_names.extend(extract_entity_names(child)) + + return entity_names + +def extract_names(sample): + sentences = nltk.sent_tokenize(sample) + tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences] + tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences] + chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True) + # chunked/tagged may be enough to just find and match the nouns + + entity_names = [] + for tree in chunked_sentences: + # Print results per sentence + # print extract_entity_names(tree) + + entity_names.extend(extract_entity_names(tree)) + + # Print all entity names + #print entity_names + + # Print unique entity names + print set(entity_names) + +cfg = INIConfig(open('/tmp/aws.ini')) + +auth = tweepy.OAuthHandler(cfg.api_keys.twitter_consumer_key, cfg.api_keys.twitter_consumer_secret) +auth.set_access_token(cfg.api_keys.twitter_access_token, cfg.api_keys.twitter_access_token_secret) + +#api = tweepy.API(auth) +api = tweepy.API() +# If the authentication was successful, you should +# see the name of the account print out +#print api.me().name +# https://github.com/tweepy/tweepy/blob/master/tweepy/api.py +for status in api.user_timeline(screen_name="ACTPol_Traffic",exclude_replies='true'): + print status.text + print status.created_at + print extract_names(status.text) +# print api.update_status(status="test") + +last_tweet_ids = { "lion": "111", "kitty": "2222" } +pickle.dump( last_tweet_ids, open( "save.p", "wb" ) ) +last_tweet_ids = pickle.load( open( "save.p", "rb" ) ) --- /dev/null +++ b/rtpis/index.php @@ -1,1 +1,21 @@ +'; + + if ($_SESSION['authed'] == true) { + echo'
  • servicealert_editor

    +

    servicealert_editor

  • '; + } + echo'
  • Service Alert Viewer

    +

    Browse current network alerts

  • '; + + echo' '; + +?> + + + --- /dev/null +++ b/rtpis/punkt.zip --- /dev/null +++ b/rtpis/servicealert_editor.php @@ -1,1 +1,187 @@ +\n"; + die(); +} +if ($_REQUEST['networkinform']) { + addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); + echo "Added network inform for" . $_REQUEST['networkinform']; + die(); +} +if ($_REQUEST['stopsearch']) { + addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); + echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
    \n"; + + foreach ($service_periods as $sp) { + echo "Remove from $sp routes
    \n"; + foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { + addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); + echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
    \n"; + } + } + die(); +} +if ($_REQUEST['streetsearch']) { + + echo "Informing stops of street
    \n"; + foreach (getStopsByName($_REQUEST['street']) as $stop) { + addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform"); + echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."
    \n"; + + foreach ($service_periods as $sp) { + echo "Informing $sp routes
    \n"; + foreach (getStopRoutes($stop['stop_id'], $sp) as $route) { + addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform"); + echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "
    \n"; + } + } + } + + die(); +} +?> +Active and Future Alerts: + + '; + } + ?> +
    " . date("c", $alert['start']) . "" . date("c", $alert['end']) . "" . substr($alert['description'], 0, 999) . 'edit
    + +
    + +
    + + " /> +
    +
    + + " /> +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + +
    + + +
    + +'; + foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { + echo "{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . 'delete'; + } + echo ''; + ?> +
    + + +
    +
    +
    + + +
    + + +
    +
    +
    + + +
    + + +
    + --- /dev/null +++ b/rtpis/servicealert_viewer.php @@ -1,1 +1,53 @@ + +Active and Future Alerts: + + '; + } + ?> +
    {$alert['header']}" . substr($alert['description'], 0, 999) . 'View
    +{$alert['header']} +

    From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."

    +{$alert['description']}
    +Source: {$alert['url']}
    "; + echo "Informed Entities for ID {$_REQUEST['view']}:"; + echo ''; + foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) { + echo "'; + } + echo '
    {$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . '
    '; +} +include_footer(); +?> --- /dev/null +++ b/rtpis/siri.php @@ -1,1 +1,8 @@ + + --- a/servicealerts/gtfs-realtime.php +++ /dev/null @@ -1,53 +1,1 @@ - $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens); - } - } - usort($toret, array('Parser', 'compare_media_ranges')); - } - return $toret; -} -$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); -if ($_REQUEST['json']) { - $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); - header('Content-Type: application/json; charset=utf8'); -// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); - header('Access-Control-Max-Age: 3628800'); - header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); - if (isset($_GET['callback'])) { - $json = '(' . $return . ');'; //must wrap in parens and end with semicolon - //print_r($_GET['callback'] . $json); //callback is prepended for json-p - } - else - echo $return; -} -?> --- a/servicealerts/importer.py +++ /dev/null @@ -1,104 +1,1 @@ -# info -# http://stackoverflow.com/questions/4206882/named-entity-recognition-with-preset-list-of-names-for-python-php/4207128#4207128 -# http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html approximate dist -# http://streamhacker.com/2008/12/29/how-to-train-a-nltk-chunker/ more training -# http://www.postgresql.org/docs/9.1/static/pgtrgm.html -# data sources -# http://twitter.com/#!/ACTEmergencyInf instant site wide -# http://twitter.com/#!/ACTPol_Traffic -# http://esa.act.gov.au/feeds/currentincidents.xml - -# source: https://gist.github.com/322906/90dea659c04570757cccf0ce1e6d26c9d06f9283 -# to install python -m nltk.downloader punkt -import nltk -import tweepy -import psycopg2 -import pickle - -from iniparse import INIConfig - -def insert_service_alert_sitewide(heading, message, url): - print "NaN" - -def insert_service_alert_for_street(streets, heading, message, url): - conn_string = "host='localhost' dbname='energymapper' user='postgres' password='snmc'" - # print the connection string we will use to connect - print "Connecting to database\n ->%s" % (conn_string) - try: - # get a connection, if a connect cannot be made an exception will be raised here - conn = psycopg2.connect(conn_string) - - # conn.cursor will return a cursor object, you can use this cursor to perform queries - cursor = conn.cursor() - - # execute our Query - cursor.execute("") - - # retrieve the records from the database - records = cursor.fetchall() - - for record in records: - ys.append(record[0]) - # >>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar')) - #>>> cur.statusmessage - #'INSERT 0 1' - except: - # Get the most recent exception - exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() - # Exit the script and print an error telling what happened. - sys.exit("Database connection failed!\n ->%s" % (exceptionValue)) - - -def extract_entity_names(t): - entity_names = [] - - if hasattr(t, 'node') and t.node: - if t.node == 'NE': - entity_names.append(' '.join([child[0] for child in t])) - else: - for child in t: - entity_names.extend(extract_entity_names(child)) - - return entity_names - -def extract_names(sample): - sentences = nltk.sent_tokenize(sample) - tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences] - tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences] - chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True) - # chunked/tagged may be enough to just find and match the nouns - - entity_names = [] - for tree in chunked_sentences: - # Print results per sentence - # print extract_entity_names(tree) - - entity_names.extend(extract_entity_names(tree)) - - # Print all entity names - #print entity_names - - # Print unique entity names - print set(entity_names) - -cfg = INIConfig(open('/tmp/aws.ini')) - -auth = tweepy.OAuthHandler(cfg.api_keys.twitter_consumer_key, cfg.api_keys.twitter_consumer_secret) -auth.set_access_token(cfg.api_keys.twitter_access_token, cfg.api_keys.twitter_access_token_secret) - -#api = tweepy.API(auth) -api = tweepy.API() -# If the authentication was successful, you should -# see the name of the account print out -#print api.me().name -# https://github.com/tweepy/tweepy/blob/master/tweepy/api.py -for status in api.user_timeline(screen_name="ACTPol_Traffic",exclude_replies='true'): - print status.text - print status.created_at - print extract_names(status.text) -# print api.update_status(status="test") - -last_tweet_ids = { "lion": "111", "kitty": "2222" } -pickle.dump( last_tweet_ids, open( "save.p", "wb" ) ) -last_tweet_ids = pickle.load( open( "save.p", "rb" ) ) --- a/servicealerts/index.php +++ /dev/null @@ -1,21 +1,1 @@ -'; - - if ($_SESSION['authed'] == true) { - echo'
  • servicealert_editor

    -

    servicealert_editor

  • '; - } - echo'
  • Service Alert Viewer

    -

    Browse current network alerts

  • '; - - echo' '; - -?> - - - --- a/servicealerts/punkt.zip +++ /dev/null --- a/servicealerts/servicealert_editor.php +++ /dev/null @@ -1,187 +1,1 @@ -\n"; - die(); -} -if ($_REQUEST['networkinform']) { - addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); - echo "Added network inform for" . $_REQUEST['networkinform']; - die(); -} -if ($_REQUEST['stopsearch']) { - addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); - echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
    \n"; - - foreach ($service_periods as $sp) { - echo "Remove from $sp routes
    \n"; - foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { - addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); - echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
    \n"; - } - } - die(); -} -if ($_REQUEST['streetsearch']) { - - echo "Informing stops of street
    \n"; - foreach (getStopsByName($_REQUEST['street']) as $stop) { - addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform"); - echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."
    \n"; - - foreach ($service_periods as $sp) { - echo "Informing $sp routes
    \n"; - foreach (getStopRoutes($stop['stop_id'], $sp) as $route) { - addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform"); - echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "
    \n"; - } - } - } - - die(); -} -?> -Active and Future Alerts: - - '; - } - ?> -
    " . date("c", $alert['start']) . "" . date("c", $alert['end']) . "" . substr($alert['description'], 0, 999) . 'edit
    - -
    - -
    - - " /> -
    -
    - - " /> -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - -
    -
    - -
    - - -
    - -'; - foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { - echo "{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . 'delete'; - } - echo ''; - ?> -
    - - -
    -
    -
    - - -
    - - -
    -
    -
    - - -
    - - -
    - --- a/servicealerts/servicealert_viewer.php +++ /dev/null @@ -1,53 +1,1 @@ - -Active and Future Alerts: - - '; - } - ?> -
    {$alert['header']}" . substr($alert['description'], 0, 999) . 'View
    -{$alert['header']} -

    From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."

    -{$alert['description']}
    -Source: {$alert['url']}
    "; - echo "Informed Entities for ID {$_REQUEST['view']}:"; - echo ''; - foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) { - echo "'; - } - echo '
    {$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . '
    '; -} -include_footer(); -?> --- a/servicealerts/siri.php +++ /dev/null @@ -1,8 +1,1 @@ - -