Exemplo n.º 1
0
def point_from_message(rfcmessage):
    msg = getAttachements(rfcmessage)
    sender = msg.sender[0][1]  #!!!
    point = Storage(
        _recepients=msg.recepients,
        author=sender,
        author_name=msg.sender[0][0],
        id=msg.message_id,
        uuid="mail " + msg.message_id,
    )
    attachments = []
    lmxpoints = []
    for ct, name, payload in msg.container:
        if "nokia.landmark" in ct or "text/xml" in ct:
            try:
                lmxfile = StringIO.StringIO(payload)
                lmxpoints = lmx_parser.parse_lmx(lmxfile)
            except:
                continue
        else:
            attachment = Storage(
                content=payload,
                content_type=ct,
                filename=name,
                author=sender,
            )
            attachments.append(attachment)

    try:
        point.update(lmxpoints[0])
    except:
        point.lat = point.lon = 0.0  # !!! not a point?
    point.attachments = attachments
    point.added = util.now()  #!!!?

    if msg.subject.strip():
        point.title = msg.subject
    # else title comes from landmark's name
    return point
Exemplo n.º 2
0
def point_from_message(rfcmessage):
    msg = getAttachements(rfcmessage)
    sender = msg.sender[0][1]   #!!!
    point = Storage(_recepients=msg.recepients,
                    author=sender,
                    author_name=msg.sender[0][0],
                    id=msg.message_id,
                    uuid="mail " + msg.message_id,
                    )
    attachments = []
    lmxpoints = []
    for ct, name, payload in msg.container:
        if "nokia.landmark" in ct or "text/xml" in ct:
            try:
                lmxfile = StringIO.StringIO(payload)
                lmxpoints = lmx_parser.parse_lmx(lmxfile)
            except:
                continue
        else:
            attachment = Storage(
                content=payload,
                content_type=ct,
                filename=name,
                author=sender,
            )
            attachments.append(attachment)

    try:
        point.update(lmxpoints[0])
    except:
        point.lat = point.lon = 0.0   # !!! not a point?
    point.attachments = attachments
    point.added = util.now()   #!!!?

    if msg.subject.strip():
        point.title = msg.subject
    # else title comes from landmark's name
    return point
Exemplo n.º 3
0
    def GET(self, webinput=None):
        i = webinput or web.input(
            lat=None,
            lon=None,
            zoom=None,
            gps=None,
            address=None,
        )

        if i.get("gps", ""):
            i.zoom = float(i.zoom or
                           (config.mobile_gps_zoom + config.getmap_zoomshift))
        else:
            i.zoom = float(i.zoom
                           or (config.mobile_zoom + config.getmap_zoomshift))

        user = get_user()

        if user is None:
            user1, msg = autologin(i)
            if user1 is not None:
                user = user1

        location = None

        user_lat, user_lon = user_location()

        if user_lat:
            location_hint = \
                Storage(lat=float(user_lat),
                        lon=float(user_lon),
                        id=1,
                     )
        else:
            location_hint = \
                Storage(lat=float(config.center_lat),
                        lon=float(config.center_lon),
                        id=1,
                     )

        address_lookup = ""
        if i.get("address", ""):
            location = Storage(id=0,
                               zoom=float(config.mobile_zoom) +
                               config.getmap_zoomshift)
            metadata = {
                'hint_lat': location_hint.lat,
                'hint_lon': location_hint.lon,
            }
            location.update(
                model.geocoding_helper(i.address,
                                       onfail=('', ''),
                                       metadata=metadata))
            if not location.lat:
                location = None
                address_lookup = "failed"
            else:
                i.zoom = location.get(
                    "zoom",
                    float(config.mobile_zoom) + config.getmap_zoomshift)
                address_lookup = "success"
        if not location and i.lat and i.lon:
            location = \
                Storage(lat=float(i.lat.replace(",", ".")),
                        lon=float(i.lon.replace(",", ".")),
                        id=0,
                         )

        if "forget" in i:
            session.remove_info(dict(lat=None, lon=None, zoom=None))
            web.seeother(links.map)
            return
        elif "submit" in i and location:
            # set location
            session.update_info(
                dict(lat=float(location.lat or 0),
                     lon=float(location.lon or 0),
                     zoom=int(i.zoom) - config.getmap_zoomshift))

            web.seeother(links.point_list)
            return

        if not location:
            location = location_hint

        model.encode_coordinates(location)

        if config.getmap_custom_wms == "wms":
            map_context = mobile_map.MapContextHybrid(
                lat=location.lat,
                lon=location.lon,
                zoom=int(float(i.zoom)),
                links=links,
                map_width=config.mobile_map_width,
                map_height=config.mobile_map_height,
            )
        else:
            map_context = mobile_map.MapContextHybridOSM(
                lat=location.lat,
                lon=location.lon,
                zoom=int(float(i.zoom)),
                links=links,
                map_width=config.mobile_map_width,
                map_height=config.mobile_map_height,
            )

        map_context.tile_id = "%(lat)s,%(lon)s,%(zoom)s,%(map_width)s,%(map_height)s" % map_context

        context = Storage(
            title=_("User location"),
            address=i.get("address", ""),
            address_lookup=address_lookup,
            status=Storage(
                add="add",
                loc=location_indicator(),  # !!! define better later
                hom="home",
                sea="search",
                inf="info",
            ),
            map_context=map_context,
        )
        if "gps" in i:
            context.gps = i.gps

        page_nav_data = Storage(nav_data=nav_data(
            add=links.add_point,
            loc=None,
            hom=links.home,
            sea=links.search,
            inf=links.info,
        ), )

        context.page_nav_data = page_nav_data

        get_page('map', context, location)
Exemplo n.º 4
0
    # "search,tagcloud,hr,new point button,widgets,hr,triggers,about",
    topic_point_comments_elements="comments,pagination,addcomment,feed",
    topic_point_page_contents=
    "title,description,author,added,url,tags,addtag,comments",
    point_contributors="visitors",  # anyone,visitors,administrators,nobody
    # specifies minimum right holder (thus, all after also get it)
    topic_owner_rights="topic_only",  # or "topic_and_points"
    getmap_layers="",
    getmap_layers1="",
    getmap_layers2="",
    getmap_zoom1="",
    getmap_zoomshift="",
    getmap_zoom2="",
    getmap_params="",
    getmap_custom_init="",
)

DEFAULT_TOPIC_PROFILE = Storage()
DEFAULT_TOPIC_PROFILE.update(DEFAULT_TOPIC_BASIC_PROFILE)
DEFAULT_TOPIC_PROFILE.update(DEFAULT_TOPIC_ADVANCED_PROFILE)

DEFAULT_POINT_PROFILE = Storage(
    #???
)

DEFAULT_COMMENT_PROFILE = Storage(
    #???
)

DEFAULT_USER_PROFILE = Storage(email="", )
Exemplo n.º 5
0
    def GET(self, webinput=None):
        i = webinput or web.input(lat=None,
                      lon=None,
                      zoom=None,
                      gps=None,
                      address=None,
                      )

        if i.get("gps", ""):
            i.zoom = float(i.zoom or (config.mobile_gps_zoom + config.getmap_zoomshift))
        else:
            i.zoom = float(i.zoom or (config.mobile_zoom + config.getmap_zoomshift))

        user = get_user()

        if user is None:
            user1, msg = autologin(i)
            if user1 is not None:
                user = user1

        location = None

        user_lat, user_lon = user_location()

        if user_lat:
            location_hint = \
                Storage(lat=float(user_lat),
                        lon=float(user_lon),
                        id=1,
                     )
        else:
            location_hint = \
                Storage(lat=float(config.center_lat),
                        lon=float(config.center_lon),
                        id=1,
                     )


        address_lookup = ""
        if i.get("address", ""):
            location = Storage(id=0, zoom=float(config.mobile_zoom)+config.getmap_zoomshift)
            metadata = {'hint_lat': location_hint.lat,
                        'hint_lon': location_hint.lon,}
            location.update(
                model.geocoding_helper(i.address, 
                    onfail=('', ''), 
                    metadata=metadata)
            )
            if not location.lat:
                location = None
                address_lookup = "failed"
            else:
                i.zoom = location.get("zoom", float(config.mobile_zoom)+config.getmap_zoomshift)
                address_lookup = "success"
        if not location and i.lat and i.lon:
            location = \
                Storage(lat=float(i.lat.replace(",", ".")),
                        lon=float(i.lon.replace(",", ".")),
                        id=0,
                         )

        if "forget" in i:
            session.remove_info(dict(lat=None, 
                                lon=None,
                                zoom=None))
            web.seeother(links.map)
            return
        elif "submit" in i and location:
            # set location
            session.update_info(dict(lat=float(location.lat or 0), 
                                lon=float(location.lon or 0),
                                zoom=int(i.zoom) - config.getmap_zoomshift))

            web.seeother(links.point_list)
            return

        if not location:
            location = location_hint

        model.encode_coordinates(location)

        if config.getmap_custom_wms == "wms":
            map_context = mobile_map.MapContextHybrid(
                    lat=location.lat,
                    lon=location.lon,
                    zoom=int(float(i.zoom)),
                    links=links,
                    map_width=config.mobile_map_width,
                    map_height=config.mobile_map_height,
            )
        else:
            map_context = mobile_map.MapContextHybridOSM(
                    lat=location.lat,
                    lon=location.lon,
                    zoom=int(float(i.zoom)),
                    links=links,
                    map_width=config.mobile_map_width,
                    map_height=config.mobile_map_height,
            )

        map_context.tile_id = "%(lat)s,%(lon)s,%(zoom)s,%(map_width)s,%(map_height)s" % map_context

        context = Storage(
            title=_("User location"),
            address=i.get("address", ""),
            address_lookup=address_lookup,
            status=Storage(
                add="add",
                loc=location_indicator(),  # !!! define better later
                hom="home",
                sea="search",
                inf="info",                 
            ),
            map_context=map_context,
        )
        if "gps" in i:
            context.gps = i.gps

        page_nav_data = Storage(
            nav_data = nav_data(
                add=links.add_point,
                loc=None,
                hom=links.home,
                sea=links.search,
                inf=links.info,
            ),
        )


        context.page_nav_data = page_nav_data

        get_page('map', context, location)