Ejemplo n.º 1
0
def getUserDetails(request, data, user_name, user_id, loggedin_user, view_type, page, time, more) :
    arguments = {'user_id':user_id, 'start_time':time, 'end_time':INFINITE_TIME, 'items_per_page':PROFILE_ITEM_ROWS, 'page_number':page}
    followers = []
    if loggedin_user != '' :
        arguments['access_token'] = request.COOKIES['access_token']
        followers = getUserFollowers(loggedin_user)
    if view_type == 'tags' :
        response = ttagPost('/find/user-ttags', arguments)
    elif view_type == 'replies' :
        response = ttagPost('/find/user-replies', arguments)
    else :
        response = ttagProfileSelector(view_type, user_id, time, INFINITE_TIME, PROFILE_ITEM_ROWS, page)
    response['data']['followers'] = followers
    nextpage = str(page+1)
    if loggedin_user != None and len(loggedin_user) > 0:
        loggedin = True
    if view_type == 'finds' :
        faves = ttagRequestLists(user_id)
    servertime = datetime.datetime.fromtimestamp(int(response['time'])/1000)
    pageToRender = 'user_profile_tags.html'
    partialPageToRender = 'partial_user_profile_'+view_type+'.html'
    if not request.is_ajax() or page > 1 :
        pageToRender = partialPageToRender
    user_details = render_to_response(pageToRender, locals(), context_instance=RequestContext(request))
    return mark_safe(user_details.content)
Ejemplo n.º 2
0
def getUserDetails(request, data, user_name, user_id, loggedin_user, view_type,
                   page, time, more):
    arguments = {
        'user_id': user_id,
        'start_time': time,
        'end_time': INFINITE_TIME,
        'items_per_page': PROFILE_ITEM_ROWS,
        'page_number': page
    }
    followers = []
    if loggedin_user != '':
        arguments['access_token'] = request.COOKIES['access_token']
        followers = getUserFollowers(loggedin_user)
    if view_type == 'tags':
        response = ttagPost('/find/user-ttags', arguments)
    elif view_type == 'replies':
        response = ttagPost('/find/user-replies', arguments)
    else:
        response = ttagProfileSelector(view_type, user_id, time, INFINITE_TIME,
                                       PROFILE_ITEM_ROWS, page)
    response['data']['followers'] = followers
    nextpage = str(page + 1)
    if loggedin_user != None and len(loggedin_user) > 0:
        loggedin = True
    if view_type == 'finds':
        faves = ttagRequestLists(user_id)
    servertime = datetime.datetime.fromtimestamp(int(response['time']) / 1000)
    pageToRender = 'user_profile_tags.html'
    partialPageToRender = 'partial_user_profile_' + view_type + '.html'
    if not request.is_ajax() or page > 1:
        pageToRender = partialPageToRender
    user_details = render_to_response(pageToRender,
                                      locals(),
                                      context_instance=RequestContext(request))
    return mark_safe(user_details.content)
Ejemplo n.º 3
0
def getAds(count):
    # randomads = random.sample(fullads,3)
    randomads = ttagPost("/ads/get-a-random-ad", {"request_no": count})
    if len(randomads.get("data", [])) > 0:
        for ad in randomads["data"]:
            view_up = ttagPost("/user-ads/viewed", {"banner_id": ad["_id"], "owner_id": ad["user_id"]})
    # return {'response':{'result': 'OK','data':randomads}}
    return {"response": randomads}
Ejemplo n.º 4
0
def userFollow(request, user_name):
    try:
        authed, user = ttagServiceAuth(request)
        thereturn = loginscreen(request)
        if authed:
            thereturn = custompopup(request,
                                    '<p>Could not complete request</p>')
            access_token = request.COOKIES['access_token']
            location = request.META[
                'HTTP_REFERER'] if 'location' not in request.POST else request.POST[
                    'location']
            followers = ttagRequestFollowers(user['_id'])
            found = False
            follower_id = 0
            if 'data' in followers and 'users' in followers[
                    'data'] and followers['data']['users'] != None:
                for follower in followers['data']['users']:
                    if follower['user_name'] == str(user_name):
                        found = True
                        follower_id = follower['user_id']
                        break
            if found:
                response = ttagPost(
                    "/follow/delete", {
                        'access_token': access_token,
                        'user_id': user['_id'],
                        'follower_id': follower_id,
                        'followee_id': user['_id']
                    })
            else:
                f_user = ttagRequestUserProfile(user_name)
                follower_id = f_user['data']['_id']
                response = ttagPost(
                    "/follow/create", {
                        'access_token': access_token,
                        'user_id': user['_id'],
                        'follower_id': follower_id,
                        'followee_id': user['_id']
                    })
                if response["result"] == "OK":
                    from webapp.views.email import notifyOfUserFollowing
                    # send reply notification
                    notifyOfUserFollowing(request, follower_id, user["_id"])
            response['found'] = found
            # localprint(request, response)
            if request.is_ajax():
                thereturn = render_to_response(
                    'partial_user_follow.html',
                    locals(),
                    context_instance=RequestContext(request))
            else:
                thereturn = HttpResponseRedirect(location)
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 5
0
def getAds(count):
    #randomads = random.sample(fullads,3)
    randomads = ttagPost('/ads/get-a-random-ad', {'request_no': count})
    if len(randomads.get('data', [])) > 0:
        for ad in randomads['data']:
            view_up = ttagPost('/user-ads/viewed', {
                'banner_id': ad['_id'],
                'owner_id': ad['user_id']
            })
    #return {'response':{'result': 'OK','data':randomads}}
    return {'response': randomads}
Ejemplo n.º 6
0
def buildURL(request, data, location, location_type, user_name=None, start_time=0, renderJSON=False, partial='spraycan.html', thetemplate=None, payload={}, to_time=INFINITE_TIME):
    loggedin = False if data == None or 'loggedin' not in data else data['loggedin']
    from webapp.views.user import INFINITE_TIME
    if user_name == None :
        user_name = data['user_name']
    urlform = SpraycanSearchURL({'search':location})
    if urlform.is_valid() or location_type == 'HUB' :
        if location_type == 'URL' :
            location_type = 'URL' if 'http' in str(location) else 'geo'
        if location_type != 'HUB' :
            ttags = ttagPost("/ttag/get",{'access_token': request.COOKIES.get('access_token',''), 'user_id': data['_id'],'location': str(location), 'location_type': location_type, 'start_time': start_time, 'end_time': to_time, 'search_on': 'time','page_number':0,'items_per_page':ITEMS_PER_PAGE})
        else :
            hub_id = location.split('#')[0]
            ttagdata = {'hub_id':hub_id,"from_time":start_time,"to_time":to_time,'page_number':0,'items_per_page':ITEMS_PER_PAGE}
            if request.COOKIES.get('access_token',None) != None :
                ttagdata['access_token'] = request.COOKIES['access_token']
                ttagdata['user_id'] = data['_id']
            ttags = ttagPost("/find/hub-ttags",ttagdata)
        if ttags['result'] == 'OK' :
            import datetime
            if not renderJSON or 'spraycanAuto' not in request.session or request.session['spraycanAuto'] :
                request.session['start_time'] = ttags['time']
            else :
                request.session['start_time'] = start_time
            from webapp.views.user import getUserFollowers
            loggedin_user = data['_id']
            if 'total_count' in ttags['data'] and ttags['data']['total_count'] > ITEMS_PER_PAGE and 'ttags' in ttags['data'] :
                NEW_TIME = int(ttags['data']['ttags'][len(ttags['data']['ttags'])-1]['created_timestamp'])-1
            response = {'time': request.session['start_time'], 'data':{
                                'founder': [] if 'finder' not in ttags['data'] or ttags['data']['finder'] == None else ttags['data']['finder'],
                                'favorite': False if 'favorite' not in ttags['data'] else ttags['data']['favorite'],
                                'ttags':[] if ttags['data']['ttags'] == None else ttags['data']['ttags'],
                                'spams':[] if 'spams' not in ttags['data'] or ttags['data']['spams'] == None or 'ttag_list' not in ttags['data']['spams'] or ttags['data']['spams']['ttag_list'] == None else ttags['data']['spams']['ttag_list'],
                                'thumbups':[] if 'thumbups' not in ttags['data'] or ttags['data']['thumbups'] == None or 'ttag_list' not in ttags['data']['thumbups'] or ttags['data']['thumbups']['ttag_list'] == None else ttags['data']['thumbups']['ttag_list'],
                                'followers': getUserFollowers(loggedin_user)}}
            servertime = datetime.datetime.fromtimestamp(int(ttags['time'])/1000)
            if renderJSON :
                objReturn = {}
                ttags = render_to_response('partial_spraycan_ttags.html',locals(),context_instance=RequestContext(request))
                objReturn['manual_ttags'] = mark_safe(ttags.content)
                if 'spraycanAuto' in request.session and request.session['spraycanAuto'] :
                    objReturn['ttags'] = mark_safe(ttags.content)
                feed = render_to_response('partial_spraycan_feed.html',locals(),context_instance=RequestContext(request))
                objReturn['feed'] = mark_safe(feed.content)
                jsonReturn = simplejson.dumps(objReturn)
            thereturn = render_to_response(partial, locals(), context_instance=RequestContext(request))
        else :
            thereturn = render_to_response('ajax_ttag_create.html',{'jsonReturn':simplejson.dumps(ttags)})
    else :
        thereturn = hash(request)
    return thereturn
Ejemplo n.º 7
0
def ttagLink(request, ttag_id):
    try:
        response = ttagPost("/find/ttag", {"ttag_id": ttag_id})
        theReturn = custompopup(request, "<p>Sorry, we failed to find that ttag!</p>")
        if "result" in response and response["result"] == "OK":
            ttag = response["data"]["ttag"]
            if ttag["location_type"] == "wall":
                theReturn = HttpResponseRedirect(ttag["location"])
            elif ttag["location_type"] == "URL":
                theReturn = HttpResponseRedirect(
                    paths.HTTPS
                    + request.get_host()
                    + reverse("spraycan-url")
                    + "?location="
                    + urlquote_plus(ttag["location"])
                )
            elif ttag["location_type"] == "HUB":
                hubid = ttag["location"].split("#")[0]
                theReturn = HttpResponseRedirect(
                    paths.HTTPS + request.get_host() + reverse("hub-wall", args=("id/", hubid))
                )
        return theReturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 8
0
def ttagShow(request, ttag_id, useHTML, appendCode=""):
    try:
        loggedin, data = ttagServiceAuth(request)
        thereturn = custompopup(request, '<p>Could not complete request</p>')
        response = ttagPost("/find/ttag", {'ttag_id': ttag_id})
        if 'result' in response and response['result'] == 'OK':
            if loggedin:
                loggedin_user = data['_id']
                from webapp.views.user import getUserFollowers
                response['data']['followers'] = getUserFollowers(loggedin_user)
            servertime = datetime.datetime.fromtimestamp(
                int(response['time']) / 1000)
            context = {
                'pagetitle': 'ttagit - Flagged Ttag',
                'request': request,
                'ttag': response['data']['ttag'],
                'servertime': servertime,
                'appendCode': appendCode
            }
            thereturn = render_to_response(
                'ttag_show.html',
                context,
                context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 9
0
def ttagRemove(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:
            if request.method == 'POST':
                response = ttagPost(
                    '/user-data/remove-ttag', {
                        'ttag_id': ttag_id,
                        'user_id': user['_id'],
                        'access_token': request.COOKIES['access_token']
                    })
                location = request.POST['location']
                if request.is_ajax():
                    thereturn = HttpResponse(
                        mark_safe(
                            '<article class="deleted">Ttag deleted</article>'))
                else:
                    thereturn = HttpResponseRedirect(location)
            else:
                location = request.META[
                    'HTTP_REFERER'] if 'location' not in request.GET else request.GET[
                        'location']
                user_name = user['user_name']
                thereturn = render_to_response(
                    'partial_ttag_confirmdelete.html',
                    locals(),
                    context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 10
0
def ttagRemove(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:
            if request.method == "POST":
                response = ttagPost(
                    "/user-data/remove-ttag",
                    {"ttag_id": ttag_id, "user_id": user["_id"], "access_token": request.COOKIES["access_token"]},
                )
                location = request.POST["location"]
                if request.is_ajax():
                    thereturn = HttpResponse(mark_safe('<article class="deleted">Ttag deleted</article>'))
                else:
                    thereturn = HttpResponseRedirect(location)
            else:
                location = request.META["HTTP_REFERER"] if "location" not in request.GET else request.GET["location"]
                user_name = user["user_name"]
                thereturn = render_to_response(
                    "partial_ttag_confirmdelete.html", locals(), context_instance=RequestContext(request)
                )
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 11
0
def join(request):
    try :
        thereturn = HttpResponse(mark_safe('<p>Sorry, we were not able to handle your request</p>'))
        showPopup = True
        if request.method == 'GET' :
            loggedin, data = ttagServiceAuth(request)
            if request.is_ajax() :
                thereturn = render_to_response('partial_newsletter_joinform.html',locals(),context_instance=RequestContext(request))
            else :
                thereturn = render_to_response('newsletter_joinform.html',locals(),context_instance=RequestContext(request))
        else :
            form = Newsletter(request.POST)
            if form.is_valid() :
                news = ttagPost('/socialnetwork/save-email',{'email':form.clean_Email(),'ip_address':request.META['REMOTE_ADDR']})
                # send email notification
                from webapp.views.email import notifyOfNewsletterSuscribe
                notifyOfNewsletterSuscribe(request, form.clean_Email())
                if request.is_ajax() :
                    thereturn = render_to_response('partial_newsletter_joinform.html',locals(),context_instance=RequestContext(request))
                else :
                    thereturn = render_to_response('newsletter_joinform.html',locals(),context_instance=RequestContext(request))
            elif request.is_ajax() :
                thereturn = render_to_response('partial_newsletter_joinform.html',locals(),context_instance=RequestContext(request))
            else :
                thereturn = render_to_response('newsletter_joinform.html',locals(),context_instance=RequestContext(request))
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 12
0
def userFavorite(request):
    try :
        authed, user = ttagServiceAuth(request)
        thereturn = loginscreen(request)
        if authed and 'favorite_id' in request.POST :
            thereturn = custompopup(request,'<p>Could not complete request</p>')
            form = Favorite(request.POST)
            if form.is_valid() :
                access_token = request.COOKIES['access_token']
                faves = ttagRequestLists(user['_id'])
                id = ''
                if faves['data']['favorites'] :
                    for item in faves['data']['favorites'] :
                        if 'favorite_id' in item and item['favorite_id'] == form.getFavorite_Id() and item['favorite_type'] == form.getFavorite_Type() :
                            id = item['_id']
                            break;
                postData = {'access_token': access_token, 'user_id': user['_id'], 'type': form.getFavorite_Type()}
                postURL = "/action/favorite"
                if len(id) == 0 :
                    postData['favorite_id'] = form.getFavorite_Id()
                    postData['values'] = {'title': form.getFavorite_Title(), 'category': form.getFavorite_Category(), 'description': form.getFavorite_Description()}
                else :
                    postData['id'] = id
                    postURL = "/action/unfavorite"
                response = ttagPost(postURL,postData)
                if request.is_ajax() :
                    thereturn = render_to_response("follow_ajax.html",{'request': request, 'response': response, 'id': id}, context_instance=RequestContext(request))
                else :
                    thereturn = HttpResponseRedirect(request.META['HTTP_REFERER'])
            else :
                thereturn = custompopup(request,'<p>'+str(form.errors)+'</p>')
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 13
0
def click(request,banner_id,owner_id):
    try :
        response = ttagPost('/user-ads/clicked',{'banner_id':banner_id,'owner_id':owner_id})
        #print response
        if response['result'] == 'OK' :
            return HttpResponseRedirect(response['data']['ads']['ads_url'])
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 14
0
 def items(self):
     from webapp.ttagUtil import ttagPost
     # Return list of url names for views to include in sitemap
     userpages = []
     resp = ttagPost('/find/users-on-token',{'items_per_page':1000})
     if 'data' in resp and 'ttags' in resp['data'] :
         for user in resp['data']['ttags'] :
             userpages.append(user['user_name'])
     return userpages
Ejemplo n.º 15
0
	def updateState(self, request, user_state, state_ref):
		if not self.is_logged_in :
			return "User not logged in"
		if user_state not in ['USER','HUB'] :
			return "Invalid update state"
		self.user_state = self["user_state"] = user_state
		self.state_ref = self["state_ref"] = state_ref
		stateResp = ttagPost('/user-data/update-state',{'access_token': request.COOKIES.get('access_token',""), 'user_id': self.user_id, 'user_state': self.user_state, 'state_ref': self.state_ref})
		return True if stateResp['result'] == 'OK' else stateResp['msg']
Ejemplo n.º 16
0
 def items(self):
     from webapp.ttagUtil import ttagPost
     # Return list of url names for views to include in sitemap
     userpages = []
     resp = ttagPost('/find/users-on-token', {'items_per_page': 1000})
     if 'data' in resp and 'ttags' in resp['data']:
         for user in resp['data']['ttags']:
             userpages.append(user['user_name'])
     return userpages
Ejemplo n.º 17
0
def user_showcount(request):
    if 'access_token' in request.COOKIES :
        ttaguser = ttagServiceByAccessToken(request)
        if ttaguser != False and 'data' in ttaguser and '_id' in ttaguser['data'] :
            notifications = ttagPost('/notification/count',{
                                                            'access_token':request.COOKIES['access_token'],
                                                            'user_id':ttaguser['data']['_id']})
            return {'response':{'data':{'count':notifications['data']['total']-notifications['data']['viewed']}}}
    return {}
Ejemplo n.º 18
0
def userFavorite(request):
    try:
        authed, user = ttagServiceAuth(request)
        thereturn = loginscreen(request)
        if authed and 'favorite_id' in request.POST:
            thereturn = custompopup(request,
                                    '<p>Could not complete request</p>')
            form = Favorite(request.POST)
            if form.is_valid():
                access_token = request.COOKIES['access_token']
                faves = ttagRequestLists(user['_id'])
                id = ''
                if faves['data']['favorites']:
                    for item in faves['data']['favorites']:
                        if 'favorite_id' in item and item[
                                'favorite_id'] == form.getFavorite_Id(
                                ) and item[
                                    'favorite_type'] == form.getFavorite_Type(
                                    ):
                            id = item['_id']
                            break
                postData = {
                    'access_token': access_token,
                    'user_id': user['_id'],
                    'type': form.getFavorite_Type()
                }
                postURL = "/action/favorite"
                if len(id) == 0:
                    postData['favorite_id'] = form.getFavorite_Id()
                    postData['values'] = {
                        'title': form.getFavorite_Title(),
                        'category': form.getFavorite_Category(),
                        'description': form.getFavorite_Description()
                    }
                else:
                    postData['id'] = id
                    postURL = "/action/unfavorite"
                response = ttagPost(postURL, postData)
                if request.is_ajax():
                    thereturn = render_to_response(
                        "follow_ajax.html", {
                            'request': request,
                            'response': response,
                            'id': id
                        },
                        context_instance=RequestContext(request))
                else:
                    thereturn = HttpResponseRedirect(
                        request.META['HTTP_REFERER'])
            else:
                thereturn = custompopup(request,
                                        '<p>' + str(form.errors) + '</p>')
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 19
0
def handle(request, notification_id):
    try :
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed :
            thereturn = custompopup(request, '<p>It looks like you\'ve already clicked on this notice, try <a href="'+reverse('notification-page',args=('1',))+'">reloading the notifications?</a></p>')
            notifications = ttagPost("/notification/get",{'access_token': request.COOKIES['access_token'], '_id': notification_id})
            if notifications['result'] == 'OK' and 'data' in notifications :
                notice = notifications['data']
                if notice['notification_type'] == 'FOLLOW_ME' :
                    thereturn = redirect('user-profile',notice['notification_data']['value']['followee_name'],'','','')
                elif notice['notification_type'] == 'POST_ON_HUB_WALL' :
                    thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+reverse('hub-wall',args=('id/',notice['notification_data']['value']['hub_id'])))
                elif notice['notification_type'] == 'POST_ON_USER_WALL' :
                    thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+reverse('user-wall', args=(user['user_name'],)))
                elif notice['notification_type'] == 'REPLY_TTAG' or notice['notification_type'] == 'TTAG_FOLLOW' :
                    if 'ttag_location' not in notice['notification_data']['value'] :
                        ttag = ttagPost('/ttag/get',{'access_token': request.COOKIES['access_token'], 'user_id': user['_id'], 'ttag_id': notice['notification_data']['value']['ttag_id'], 'search_on': 'ttag'})
                        notice['notification_data']['value']['ttag_location'] = ttag['data']['ttag']['location']
                    if 'ttag_location_type' in notice['notification_data']['value'] :
                        if notice['notification_data']['value']['ttag_location_type'] == 'wall' :
                            thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+notice['notification_data']['value']['ttag_location'].replace(hosts.ROOT_HOST,""))
                        elif notice['notification_data']['value']['ttag_location_type'] == 'HUB' :
                            thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+reverse('hub-wall', args=('id/',notice['notification_data']['value']['ttag_location'].split('#')[0])))
                        return thereturn
                    elif not request.is_ajax() :
                        import urllib
                        thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+'/spraycan/url/?location='+urllib.quote_plus(notice['notification_data']['value']['ttag_location']))
                    else :
                        from webapp.views import spraycan
                        request.GET = request.GET.copy()
                        request.GET.update({'location':notice['notification_data']['value']['ttag_location']})
                        thereturn = spraycan.url(request)
                elif notice['notification_type'] in ['JOIN_HUB','QUIT_HUB'] :
                    thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+reverse('hub-members',args=('id/',notice['notification_data']['value']['hub_id'])))
                else :
                    thereturn = HttpResponseRedirect(paths.HTTPS+request.get_host()+reverse('notification-page',args=('1',)))
                delete = ttagPost("/notification/delete",{'access_token':request.COOKIES['access_token'],'notifications':[notification_id]})
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 20
0
def ttagShowOriginal(request, ttag_id, parent_id):
    try:
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            thereturn = custompopup(
                request,
                '<p>There was a problem retrieving the original Tag</p>')
            response = ttagPost(
                '/ttag/get', {
                    'access_token': request.COOKIES['access_token'],
                    'user_id': data['_id'],
                    'ttag_id': parent_id,
                    'search_on': 'ttag'
                })
            loggedin_user = data['_id']
            from webapp.views.user import getUserFollowers
            if 'result' in response and response['result'] == 'OK':
                response['data']['followers'] = getUserFollowers(loggedin_user)
                servertime = datetime.datetime.fromtimestamp(
                    int(response['time']) / 1000)
                ttag = response['data']['ttag']
                child = ttagPost(
                    '/ttag/get', {
                        'access_token': request.COOKIES['access_token'],
                        'user_id': data['_id'],
                        'ttag_id': ttag_id,
                        'search_on': 'ttag'
                    })
                if 'result' in child and child[
                        'result'] == 'OK' and 'data' in child and child[
                            'data'] != None:
                    reply = child['data']['ttag']
                    child['data']['followers'] = response['data']['followers']
                    thereturn = render_to_response(
                        'ttag_showoriginal.html',
                        locals(),
                        context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 21
0
def ttagShowOriginal(request, ttag_id, parent_id):
    try:
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            thereturn = custompopup(request, "<p>There was a problem retrieving the original Tag</p>")
            response = ttagPost(
                "/ttag/get",
                {
                    "access_token": request.COOKIES["access_token"],
                    "user_id": data["_id"],
                    "ttag_id": parent_id,
                    "search_on": "ttag",
                },
            )
            loggedin_user = data["_id"]
            from webapp.views.user import getUserFollowers

            if "result" in response and response["result"] == "OK":
                response["data"]["followers"] = getUserFollowers(loggedin_user)
                servertime = datetime.datetime.fromtimestamp(int(response["time"]) / 1000)
                ttag = response["data"]["ttag"]
                child = ttagPost(
                    "/ttag/get",
                    {
                        "access_token": request.COOKIES["access_token"],
                        "user_id": data["_id"],
                        "ttag_id": ttag_id,
                        "search_on": "ttag",
                    },
                )
                if "result" in child and child["result"] == "OK" and "data" in child and child["data"] != None:
                    reply = child["data"]["ttag"]
                    child["data"]["followers"] = response["data"]["followers"]
                    thereturn = render_to_response(
                        "ttag_showoriginal.html", locals(), context_instance=RequestContext(request)
                    )
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 22
0
def signInPost(request):
    try :
        context = {'request':request}
        formname = 'signin'
        if request.method == 'POST':
            if 'formname' in request.POST and request.POST['formname'] == 'minisignin' :
                formname = 'minisignin'
            emailform = SigninEmailForm(request.POST)
            postFields = { 'user': request.POST['user'], 'password': request.POST['password'] }
            if emailform.is_valid() :
                resp = ttagPost('/validate/request-username-by-email',{'email':emailform.getEmail()})
                if 'result' in resp and resp['result'] == 'OK' :
                    postFields['user'] = resp['user_name']
            form = SignInForm(postFields)         # bound form
            if form.is_valid():
                json_obj = ttagPost("/login", {'user_name':form.getName(),'password':form.getPassword()})
                if json_obj["result"]=="OK":
                    # login successful
                    response = HttpResponseRedirect(paths.HTTPS+request.get_host()+'/')
                    if request.is_ajax() :
                        response = render_to_response('javascript_redirect.html',{'redirect_url':paths.HTTPS+request.get_host()+'/','hidespraycan':True})
                    setCookie(response, 'access_token', json_obj['data']['user_data']['access_token'])
                    return response
                else:
                    # login not successful, wrong name/password combo
                    form._errors['password'] = form.error_class([u"Password doesn't match the User Name or Email"])
        else:
            # request method other than POST
            form = SignInForm()     # clear form
        if request.is_ajax() :
            import simplejson
            return HttpResponse(simplejson.dumps({
                                                  'headerOuter':mark_safe(render_to_response('partial_user_dashboard.html',locals(),context_instance=RequestContext(request)).content),
                                                  'homepageMain':mark_safe(render_to_response('partial_standalone_signin.html',context,context_instance=RequestContext(request)).content)
                                                  }))
        else :
            context['hideMiniLogin'] = True
            return render_to_response('standalone_signin.html', context, context_instance=RequestContext(request))
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 23
0
def click(request, banner_id, owner_id):
    try:
        response = ttagPost('/user-ads/clicked', {
            'banner_id': banner_id,
            'owner_id': owner_id
        })
        #print response
        if response['result'] == 'OK':
            return HttpResponseRedirect(response['data']['ads']['ads_url'])
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 24
0
def join(request):
    try:
        thereturn = HttpResponse(
            mark_safe('<p>Sorry, we were not able to handle your request</p>'))
        showPopup = True
        if request.method == 'GET':
            loggedin, data = ttagServiceAuth(request)
            if request.is_ajax():
                thereturn = render_to_response(
                    'partial_newsletter_joinform.html',
                    locals(),
                    context_instance=RequestContext(request))
            else:
                thereturn = render_to_response(
                    'newsletter_joinform.html',
                    locals(),
                    context_instance=RequestContext(request))
        else:
            form = Newsletter(request.POST)
            if form.is_valid():
                news = ttagPost(
                    '/socialnetwork/save-email', {
                        'email': form.clean_Email(),
                        'ip_address': request.META['REMOTE_ADDR']
                    })
                # send email notification
                from webapp.views.email import notifyOfNewsletterSuscribe
                notifyOfNewsletterSuscribe(request, form.clean_Email())
                if request.is_ajax():
                    thereturn = render_to_response(
                        'partial_newsletter_joinform.html',
                        locals(),
                        context_instance=RequestContext(request))
                else:
                    thereturn = render_to_response(
                        'newsletter_joinform.html',
                        locals(),
                        context_instance=RequestContext(request))
            elif request.is_ajax():
                thereturn = render_to_response(
                    'partial_newsletter_joinform.html',
                    locals(),
                    context_instance=RequestContext(request))
            else:
                thereturn = render_to_response(
                    'newsletter_joinform.html',
                    locals(),
                    context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 25
0
def ttagThumbup(request, ttag_id):
    try:
        authed, user = ttagServiceAuth(request)
        thereturn = custompopup(request, "<p>Could not complete request</p>")
        if authed:
            ttag = ttagPost(
                "/ttag/get",
                {
                    "access_token": request.COOKIES["access_token"],
                    "user_id": user["_id"],
                    "ttag_id": ttag_id,
                    "search_on": "ttag",
                },
            )
            if ttag["result"] == "OK":
                location = request.META["HTTP_REFERER"] if "location" not in request.POST else request.POST["location"]
                ttaglocation = ttag["data"]["ttag"]["location"]
                response = ttagPost(
                    "/action/thumbup",
                    {
                        "access_token": request.COOKIES["access_token"],
                        "user_id": user["_id"],
                        "location": ttaglocation,
                        "ttag_id": ttag_id,
                    },
                )
                if request.is_ajax():
                    ttag = ttag["data"]["ttag"]
                    ttag["metadatas"]["thumbup_count"] = ttag["metadatas"]["thumbup_count"] + 1
                    thereturn = render_to_response(
                        "partial_ttag_thumbup.html", locals(), context_instance=RequestContext(request)
                    )
                else:
                    thereturn = HttpResponseRedirect(location)
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 26
0
def ttagThumbup(request, ttag_id):
    try:
        authed, user = ttagServiceAuth(request)
        thereturn = custompopup(request, "<p>Could not complete request</p>")
        if authed:
            ttag = ttagPost(
                '/ttag/get', {
                    'access_token': request.COOKIES['access_token'],
                    'user_id': user['_id'],
                    'ttag_id': ttag_id,
                    'search_on': 'ttag'
                })
            if ttag['result'] == 'OK':
                location = request.META[
                    'HTTP_REFERER'] if 'location' not in request.POST else request.POST[
                        'location']
                ttaglocation = ttag['data']['ttag']['location']
                response = ttagPost(
                    "/action/thumbup", {
                        'access_token': request.COOKIES['access_token'],
                        'user_id': user['_id'],
                        'location': ttaglocation,
                        'ttag_id': ttag_id
                    })
                if request.is_ajax():
                    ttag = ttag['data']['ttag']
                    ttag['metadatas']['thumbup_count'] = ttag['metadatas'][
                        'thumbup_count'] + 1
                    thereturn = render_to_response(
                        'partial_ttag_thumbup.html',
                        locals(),
                        context_instance=RequestContext(request))
                else:
                    thereturn = HttpResponseRedirect(location)
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 27
0
def delete(request):
    try :
        thereturn = loginscreen(request)
        if 'notification' in request.POST :
            notifications = request.POST.getlist('notification')
            deleted = ttagPost("/notification/delete",{'access_token':request.COOKIES['access_token'],'notifications':notifications})
            if deleted['result'] == 'OK' :
                thereturn = HttpResponse("Notifications deleted successfully.")
            if request.is_ajax() :
                thereturn = render_to_response('ajax_notification.html', locals(), context_instance=RequestContext(request))
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 28
0
def location(request, ttag_id):
    try :
        thereturn = HttpResponse(mark_safe('<p>This section of the website is currently under construction. Check back soon!</p>'));
        start_time = '0' if 'start_time' not in request.GET else request.GET['start_time']
        location_type = 'geo'
        loggedin, data = ttagServiceAuth(request)
        if loggedin :
            response = ttagPost('/ttag/get',{'ttag_id':ttag_id,'search_on':'ttag'})
            localprint(request,response)
            
        return thereturn;
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 29
0
def userFollow(request, user_name):
    try :
        authed, user = ttagServiceAuth(request)
        thereturn = loginscreen(request)
        if authed :
            thereturn = custompopup(request,'<p>Could not complete request</p>')
            access_token = request.COOKIES['access_token']
            location = request.META['HTTP_REFERER'] if 'location' not in request.POST else request.POST['location']
            followers = ttagRequestFollowers(user['_id'])
            found = False
            follower_id = 0
            if 'data' in followers and 'users' in followers['data'] and followers['data']['users'] != None :
                for follower in followers['data']['users'] :
                    if follower['user_name'] == str(user_name) :
                        found = True
                        follower_id = follower['user_id']
                        break
            if found :
                response = ttagPost("/follow/delete", {'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id']})
            else :
                f_user = ttagRequestUserProfile(user_name)
                follower_id = f_user['data']['_id']
                response = ttagPost("/follow/create", {'access_token': access_token, 'user_id': user['_id'], 'follower_id': follower_id, 'followee_id': user['_id']})
                if response["result"] == "OK":
                    from webapp.views.email import notifyOfUserFollowing
                    # send reply notification
                    notifyOfUserFollowing(request, follower_id, user["_id"])
            response['found'] = found
            # localprint(request, response)
            if request.is_ajax() :
                thereturn = render_to_response('partial_user_follow.html',locals(),context_instance=RequestContext(request))
            else :
                thereturn = HttpResponseRedirect(location)
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 30
0
 def updateState(self, request, user_state, state_ref):
     if not self.is_logged_in:
         return "User not logged in"
     if user_state not in ['USER', 'HUB']:
         return "Invalid update state"
     self.user_state = self["user_state"] = user_state
     self.state_ref = self["state_ref"] = state_ref
     stateResp = ttagPost(
         '/user-data/update-state', {
             'access_token': request.COOKIES.get('access_token', ""),
             'user_id': self.user_id,
             'user_state': self.user_state,
             'state_ref': self.state_ref
         })
     return True if stateResp['result'] == 'OK' else stateResp['msg']
Ejemplo n.º 31
0
def userBackgroundUpload(request, isAndroid=False):
    try :
        authed, data = ttagServiceAuth(request)
        if authed and request.method == 'POST' :
            aToken = request.COOKIES['access_token']
            formdata = {'gender':'','google_map_address':'','pro_description':''}
            if len(str(request.POST.get('background_src',""))) > 0 and len(str(request.POST.get('background_name',""))) > 0 and len(str(request.POST.get('background_type',""))) > 0 :
                files = {}
                from django.core.files.uploadedfile import SimpleUploadedFile
                import base64
                files['background_upload'] = SimpleUploadedFile(request.POST['background_name'],base64.b64decode(mark_safe(request.POST['background_src'])),request.POST['background_type'])
            else :
                files = request.FILES
            for key in data :
                formdata[key] = data[key]
            upload = UploadBackgroundForm(request.POST, files)
            statusmsg = "User Background update successful!"
            if not upload.is_valid() :
                statusmsg = ''.join(["User Background update failed: ",upload.errors.as_text().replace('\r','').replace('\n','')])
                svcResp = {'result':'ERROR','msg':statusmsg}
            else :
                from website.settings import MEDIA_URL
                if 'background_delete' in request.POST or 'background_upload' in request.POST :
                    background_url = ''
                if 'background_upload' in files :
                    background_url = ''.join([MEDIA_URL,handleUploadedAvatar(files['background_upload'], data['user_name'], aToken, '', "400x197")])
                if 'background_url' in locals() and background_url != data['background_image_url'] :
                    svcResp = ttagPost('/user-data/update-background-image-url',{'access_token':aToken,'user_id':data['_id'],'background_image_url':background_url})
                    if svcResp['result'] == 'OK' :
                        svcResp['data'], data['background_image_url'] = {'filename':background_url}, background_url
                    else :
                        statusmsg = ''.join(["User Avatar update failed: ",svcResp['msg']])
                    svcResp['msg'] = statusmsg
            svcResp = mark_safe(simplejson.dumps(svcResp))
            form = SettingsForm(formdata)
            context = {'request':request,'loggedin':True,'data':data,'form':form,'settings_message':statusmsg, 'location':'Settings', 'svcResp':svcResp}
            ajax_page = 'user_backgrounduploaded.html' if not isAndroid else 'android_avataruploaded.html'
            page = ajax_page if ( request.is_ajax() or isAndroid ) else 'home_settings.html'
            thereturn = render_to_response(page,context,context_instance=RequestContext(request))
            if request.is_ajax() and not isAndroid and 'background_url' in locals() and len(str(background_url)) > 0 :
                jsonReturn = simplejson.dumps({'userBackground':mark_safe('<img data-dj-view="userBackground" src="'+background_url+'" alt="" />'),'userBackgroundForm':mark_safe(thereturn.content)})
                thereturn = render_to_response('ajax_ttag_create.html',locals(),context_instance=RequestContext(request))
            return thereturn
        else :
            return loginscreen(request)
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 32
0
def hash(request):
    location = request.GET['location']
    start_time = '0' if 'start_time' not in request.GET else request.GET[
        'start_time']
    location_type = 'hashtag'
    thereturn = loginscreen(request)
    loggedin, data = ttagServiceAuth(request)
    if loggedin:
        ttags = ttagPost(
            "/find/hashtag", {
                'hashtag': str(location),
                'items_per_page': '10000',
                'page_number': '0'
            })
        localprint(request, ttags)
        if ttags['result'] == 'OK':
            import datetime
            response = {
                'time': ttags['time'],
                'data': {
                    'founder': {
                        'location_type': 'hashtag',
                        'location': location
                    },
                    'favorite':
                    False,
                    'ttags': [] if ttags['data']['ttags'] == None else
                    ttags['data']['ttags'],
                    'spams': [] if 'spams' not in ttags['data']
                    or ttags['data']['spams'] == None
                    or 'ttag_list' not in ttags['data']['spams']
                    or ttags['data']['spams']['ttag_list'] == None else
                    ttags['data']['spams']['ttag_list'],
                    'thumbups': [] if 'thumbups' not in ttags['data']
                    or ttags['data']['thumbups'] == None
                    or 'ttag_list' not in ttags['data']['thumbups']
                    or ttags['data']['thumbups']['ttag_list'] == None else
                    ttags['data']['thumbups']['ttag_list']
                }
            }
            loggedin_user = data['_id']
            servertime = datetime.datetime.fromtimestamp(
                int(ttags['time']) / 1000)
            thereturn = render_to_response(
                "spraycan.html",
                locals(),
                context_instance=RequestContext(request))
    return thereturn
Ejemplo n.º 33
0
def ttagDelete(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:
            response = ttagPost(
                "/ttag/delete",
                {"ttag_id": ttag_id, "user_id": user["_id"], "access_token": request.COOKIES["access_token"]},
            )
            location = request.META["HTTP_REFERER"] if "location" not in request.GET else request.GET["location"]
            if request.is_ajax():
                thereturn = HttpResponse(mark_safe('<article class="deleted">Ttag deleted</article>'))
            else:
                thereturn = HttpResponseRedirect(location)
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 34
0
def activityView(request, page=1, time=0):
    """Show a logged in user the tag stream from their followers"""
    try :
        from webapp.views.user import PROFILE_ITEM_ROWS as ACTIVITY_ITEM_ROWS
        loggedin, data = ttagServiceAuth(request)
        if not loggedin: 
            # TODO: Replace this with a 'please log in' page
            return indexView(request)
        
        if not page or page == '' :
            page = 1
        page = int(page)
        if not time or time == '' :
            time = 0
        time = int(time)
        response = ttagPost('/user-data/get-following-ttags',{'access_token':request.COOKIES['access_token'],'user_id':data['_id'],'start_time':time,'items_per_page':ACTIVITY_ITEM_ROWS,'page_number':page-1})
        followers = []
        respFollowers = ttagRequestFollowers(data['_id'])
        if 'data' in respFollowers and 'users' in respFollowers['data'] and respFollowers['data']['users'] != None :
            followers = [follower['user_name'] for follower in respFollowers['data']['users']]
        response['data']['followers'] = followers
        # localprint(request,response)
        follow = -1
        servertime = datetime.datetime.fromtimestamp(int(response['time'])/1000)
        location = "Activity"
        loggedin_user = data['_id']
        more = True if response['data']['total_count'] > ACTIVITY_ITEM_ROWS * page and time == 0 else False
        if request.is_ajax() :
            theextend = "base_ajax.html" if ( request.is_ajax() and page > 1 ) else "partial_home_dashboard.html"
            userpanel = render_to_response("partial_home_stream.html",locals(),context_instance=RequestContext(request))
            if ( page > 1 ) :
                thereturn = userpanel
            else :
                userdetails = render_to_response("partial_user_details.html",locals(),context_instance=RequestContext(request))
                jsonReturn = simplejson.dumps({"context":mark_safe(userdetails.content),"results":mark_safe(userpanel.content)})
                thereturn = HttpResponse(mark_safe(jsonReturn))
        else :
            thereturn = render_to_response("home_stream.html",locals(),context_instance=RequestContext(request))
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 35
0
def user_showcount(request):
    if 'access_token' in request.COOKIES:
        ttaguser = ttagServiceByAccessToken(request)
        if ttaguser != False and 'data' in ttaguser and '_id' in ttaguser[
                'data']:
            notifications = ttagPost(
                '/notification/count', {
                    'access_token': request.COOKIES['access_token'],
                    'user_id': ttaguser['data']['_id']
                })
            return {
                'response': {
                    'data': {
                        'count':
                        notifications['data']['total'] -
                        notifications['data']['viewed']
                    }
                }
            }
    return {}
Ejemplo n.º 36
0
def delete(request):
    try:
        thereturn = loginscreen(request)
        if 'notification' in request.POST:
            notifications = request.POST.getlist('notification')
            deleted = ttagPost(
                "/notification/delete", {
                    'access_token': request.COOKIES['access_token'],
                    'notifications': notifications
                })
            if deleted['result'] == 'OK':
                thereturn = HttpResponse("Notifications deleted successfully.")
            if request.is_ajax():
                thereturn = render_to_response(
                    'ajax_notification.html',
                    locals(),
                    context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 37
0
def hash(request):
    location = request.GET['location']
    start_time = '0' if 'start_time' not in request.GET else request.GET['start_time']
    location_type = 'hashtag'
    thereturn = loginscreen(request)
    loggedin, data = ttagServiceAuth(request)
    if loggedin :
        ttags = ttagPost("/find/hashtag",{'hashtag': str(location), 'items_per_page': '10000', 'page_number': '0'})
        localprint(request, ttags)
        if ttags['result'] == 'OK' :
            import datetime
            response = {'time': ttags['time'], 'data':{
                                'founder': {'location_type':'hashtag','location':location},
                                'favorite': False,
                                'ttags':[] if ttags['data']['ttags'] == None else ttags['data']['ttags'],
                                'spams':[] if 'spams' not in ttags['data'] or ttags['data']['spams'] == None or 'ttag_list' not in ttags['data']['spams'] or ttags['data']['spams']['ttag_list'] == None else ttags['data']['spams']['ttag_list'],
                                'thumbups':[] if 'thumbups' not in ttags['data'] or ttags['data']['thumbups'] == None or 'ttag_list' not in ttags['data']['thumbups'] or ttags['data']['thumbups']['ttag_list'] == None else ttags['data']['thumbups']['ttag_list']}}
            loggedin_user = data['_id']
            servertime = datetime.datetime.fromtimestamp(int(ttags['time'])/1000)
            thereturn = render_to_response("spraycan.html", locals(), context_instance=RequestContext(request))
    return thereturn
Ejemplo n.º 38
0
def location(request, ttag_id):
    try:
        thereturn = HttpResponse(
            mark_safe(
                '<p>This section of the website is currently under construction. Check back soon!</p>'
            ))
        start_time = '0' if 'start_time' not in request.GET else request.GET[
            'start_time']
        location_type = 'geo'
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            response = ttagPost('/ttag/get', {
                'ttag_id': ttag_id,
                'search_on': 'ttag'
            })
            localprint(request, response)

        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 39
0
def page(request, page):
    try :
        from webapp.views.user import PROFILE_ITEM_ROWS as ITEMS_PER_ROW
        thereturn = loginscreen(request)
        hubs = {}
        loggedin, user, loggedin_user, follow, data = getUserVariables(request, '')
        if loggedin :
            notifications = ttagPost("/notification/get-all", {'access_token': request.COOKIES['access_token']})
            for notice in notifications['data'] :
                if notice['notification_type'] == 'REPLY_TTAG' :
                    if 'ttag_location_type' in notice['notification_data']['value'] :
                        if notice['notification_data']['value']['ttag_location_type'] == 'wall' :
                            notice['notification_data']['value']['ttag_title'] = notice['notification_data']['value']['ttag_title'].replace(data['full_name']+"'s Wall",'your Wall')
                        elif notice['notification_data']['value']['ttag_location_type'] == 'HUB' :
                            hub_id = notice['notification_data']['value']['ttag_location'].split('#')[0]
                            if hub_id not in hubs :
                                hubdata = ttagGetHubByHubId(hub_id)
                                hubs[hub_id] = hubdata
                            else :
                                hubdata = hubs[hub_id]
                            if hubdata['result'] == 'OK' :
                                notice['notification_data']['value']['ttag_title'] = hubdata['data']['hub']['hub_name']
            response = {'notifications':notifications['data']}
            page = int(page)
            next = True if page > 1 else False
            more = True if page * 15 < len(notifications['data']) else False
            location = 'Notifications'
            if next and request.is_ajax() :
                thereturn = render_to_response("partial_notifications_notices.html",locals(),context_instance=RequestContext(request))
            elif request.is_ajax() :
                userpanel = render_to_response("partial_notifications_details.html",locals(),context_instance=RequestContext(request))
                userdetails = render_to_response("partial_user_details.html",locals(),context_instance=RequestContext(request))
                jsonReturn = simplejson.dumps({"context":mark_safe(userdetails.content),"results":mark_safe(userpanel.content)})
                thereturn = HttpResponse(mark_safe(jsonReturn))
            else :
                thereturn = render_to_response('notifications_details.html', locals(), context_instance=RequestContext(request))
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 40
0
def ttagLink(request, ttag_id):
    try:
        response = ttagPost("/find/ttag", {'ttag_id': ttag_id})
        theReturn = custompopup(request,
                                "<p>Sorry, we failed to find that ttag!</p>")
        if 'result' in response and response['result'] == 'OK':
            ttag = response['data']['ttag']
            if ttag["location_type"] == "wall":
                theReturn = HttpResponseRedirect(ttag["location"])
            elif ttag["location_type"] == "URL":
                theReturn = HttpResponseRedirect(
                    paths.HTTPS + request.get_host() +
                    reverse('spraycan-url') + "?location=" +
                    urlquote_plus(ttag["location"]))
            elif ttag["location_type"] == "HUB":
                hubid = ttag["location"].split("#")[0]
                theReturn = HttpResponseRedirect(
                    paths.HTTPS + request.get_host() +
                    reverse('hub-wall', args=("id/", hubid)))
        return theReturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 41
0
def dashboardView(request):
    """Show a logged in user their dashboard"""
    try:
        authed, data = ttagServiceAuth(request)
        if not authed:
            # TODO: Replace this with a 'please log in' page
            return indexView(request)

        statistics = ttagRequestStatistics()
        recData = {
            "user_id": data["_id"],
            "access_token": request.COOKIES["access_token"]
        }

        # {'data': {'recommendations': []}, 'result': 'OK'}
        response = ttagPost("/find/recommendations", recData)
        if response['result'] == 'OK':
            recommendations = response['data']['recommendations']
        else:
            recommendations = []
        context = {
            'loggedin': authed,
            'follow': -1,
            'request': request,
            "data": data,
            "user_id": data["_id"],
            "location": "dashboard",
            "statistics": statistics["data"],
            "recommendations": recommendations
        }

        return render_to_response("home_my_dashboard.html",
                                  context,
                                  context_instance=RequestContext(request))
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 42
0
def dashboardView(request):
    """Show a logged in user their dashboard"""
    try :
        authed, data = ttagServiceAuth(request)
        if not authed: 
            # TODO: Replace this with a 'please log in' page
            return indexView(request)
        
        statistics = ttagRequestStatistics();
        recData = {
                "user_id": data["_id"],
                "access_token": request.COOKIES["access_token"]
            }
        
        # {'data': {'recommendations': []}, 'result': 'OK'} 
        response = ttagPost("/find/recommendations", recData )
        if response['result'] == 'OK' :
            recommendations = response['data']['recommendations']
        else :
            recommendations = []
        context = {
                   'loggedin': authed,
                   'follow': -1,
                   'request': request,
                   "data": data,
                   "user_id": data["_id"],
                   "location": "dashboard",
                   "statistics": statistics["data"],
                   "recommendations": recommendations
        }
    
        return render_to_response("home_my_dashboard.html",
                context,
                context_instance=RequestContext(request))
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 43
0
def ttagShow(request, ttag_id, useHTML, appendCode=""):
    try:
        loggedin, data = ttagServiceAuth(request)
        thereturn = custompopup(request, "<p>Could not complete request</p>")
        response = ttagPost("/find/ttag", {"ttag_id": ttag_id})
        if "result" in response and response["result"] == "OK":
            if loggedin:
                loggedin_user = data["_id"]
                from webapp.views.user import getUserFollowers

                response["data"]["followers"] = getUserFollowers(loggedin_user)
            servertime = datetime.datetime.fromtimestamp(int(response["time"]) / 1000)
            context = {
                "pagetitle": "ttagit - Flagged Ttag",
                "request": request,
                "ttag": response["data"]["ttag"],
                "servertime": servertime,
                "appendCode": appendCode,
            }
            thereturn = render_to_response("ttag_show.html", context, context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 44
0
def ttagDelete(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:
            response = ttagPost(
                '/ttag/delete', {
                    'ttag_id': ttag_id,
                    'user_id': user['_id'],
                    'access_token': request.COOKIES['access_token']
                })
            location = request.META[
                'HTTP_REFERER'] if 'location' not in request.GET else request.GET[
                    'location']
            if request.is_ajax():
                thereturn = HttpResponse(
                    mark_safe(
                        '<article class="deleted">Ttag deleted</article>'))
            else:
                thereturn = HttpResponseRedirect(location)
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 45
0
def settingsChangePost(request):
    try :
        form = SettingsForm()
        loggedin, data = ttagServiceAuth(request)
        checkUser = False
        if (request.method == "POST"):
            form = SettingsForm(request.POST)
            if loggedin :
                aToken = request.COOKIES['access_token']
            else :
                aToken = ''
                return loginscreen(request)
            if form.is_valid() and data['user_name'] != form.getUser_Name() :
                checkUser = ttagRequestUserProfile(form.getUser_Name())
                if checkUser['result'] == 'OK' :
                    form._errors['user_name'] = form.error_class([u"Sorry, that username already exists"])
            if form.is_valid():
                serviceResponse = ttagServiceAccountChange(aToken,
                                                           full_name = form.getFull_Name(),
                                                           find_by_email = 'true' if 'find_by_email' in request.POST else 'false',
                                                           location = form.getLocation(),
                                                           site_link = form.getWebsite(),
                                                           self_description = form.getBio(),
                                                           country = form.getCountry(),
                                                           time_zone = form.getTime_Zone(),
                                                           email_on_new_follower = 'true' if 'email_on_new_follower' in request.POST else 'false',
                                                           email_on_reply = 'true' if 'email_on_reply' in request.POST else 'false',
                                                           email_on_followed_ttag = 'true' if 'email_on_followed_ttag' in request.POST else 'false',
                                                           gender = form.getGender(),
                                                           google_map_address = form.getGoogleMap_Address(),
                                                           pro_description = form.getPro_Description(),
                                                           )
                json_obj = simplejson.loads(serviceResponse.read())
                if checkUser != False :
                    updateUsername = ttagPost('/user/update-username',{'new_username': form.getUser_Name(),'access_token':aToken})
                    if updateUsername['result'] == 'OK' :
                        data['user_name'] = form.getUser_Name()
                if json_obj['result'] == 'OK':
                    settings_message = mark_safe('Account settings changed.')
                    if data['email'] != form.getEmail() :
                        emailresp = ttagPost('/user/update-email',{'access_token':aToken,'new_email':form.getEmail()})
                        if emailresp['result'] != 'OK' :
                            settings_message = mark_safe('Email not updated: '+emailresp['msg'])
                else:
                    settings_message = mark_safe("Account settings not changed! "+json_obj['msg'])
                ## Check if password change request should be sent
                if len(form.getNew_Password()) > 0 and len(form.getCurrent_Password()) > 0 :
                    pwdResponse = ttagServicePasswordChange(aToken,
                                                            form.getCurrent_Password(),
                                                            form.getNew_Password()
                                                            )
                    resp = pwdResponse.read()
                    jsonPwdResp = simplejson.loads(resp)
                    if jsonPwdResp['result'] == 'OK':
                        settings_message += mark_safe('<br />Password changed.')
                    elif jsonPwdResp['msg'] == 'Incorrect old password. Change password failed' :
                        form._errors['current_password'] = form.error_class([u"Current Password was incorrect"])
                    else:
                        settings_message += mark_safe('<br />Password not changed')
        return render_to_response('home_settings.html', locals(), context_instance=RequestContext(request))
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 46
0
def ttagCreate(request):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:

            if "Comment" in request.POST:
                form = TtagPost(request.POST)
                print [form.is_valid(), len(str(request.POST["Comment"])), len(request.POST.get("meta_thumbnail", ""))]
                print form.errors
                if form.is_valid() and (
                    len(str(request.POST["Comment"])) or len(request.POST.get("meta_thumbnail", ""))
                ):
                    import re, urllib

                    location_type = (
                        "URL"
                        if ("location_type" not in request.POST or request.POST["location_type"] not in ["wall", "HUB"])
                        else request.POST["location_type"]
                    )
                    remotetitle = ""
                    if location_type == "URL":
                        getTitle = ttagPost(
                            "/find/get-title", {"location": form.getTtag_Location(), "location_type": "URL"}
                        )
                        try:
                            remotetitle = getTitle["data"]["location_data"]["title"]
                        except:
                            import urllib2
                            import socket

                            timeout = 3
                            socket.setdefaulttimeout(timeout)
                            try:
                                req = urllib2.Request(form.getTtag_Location())
                                remotecontent = urllib2.urlopen(req).read()
                            except:
                                remotecontent = mark_safe("<title></title>")
                            # remotetitle = re.search(r"<title>(.*?)</title>", remotecontent).group(1)
                            title_dict = get_title(remotecontent, request)
                            if title_dict["status"] == "OK":
                                remotetitle = title_dict["msg"]
                            elif title_dict["status"] == "ERROR":
                                remotetitle = ""
                    elif location_type == "wall":
                        if "wall_owner_id" in request.POST:
                            wallOwner = ttagServiceByUserID(form.clean_Ttag_WallOwnerID())
                            if wallOwner["result"] == "OK":
                                remotetitle = wallOwner["data"]["user"]["full_name"] + "'s Wall"
                    hashtags = "".join(re.findall(r"\#\w+", request.POST["Comment"]))
                    root_id = "0"
                    ttag_id = "0"
                    ttagdata = {
                        "access_token": request.COOKIES["access_token"],
                        "user_id": user["_id"],
                        "location": form.getTtag_Location(),
                        "location_type": location_type,
                        "ttag_content": form.getTtag_Comment(),
                        "root_id": root_id,
                        "parent_id": ttag_id,
                        "title": remotetitle.strip(),
                        "hashtags": hashtags,
                        "meta_url": urlquote_plus(form.getTtag_metaurl()),
                        "meta_thumbnail": urlquote_plus(form.getTtag_metathumbnail()),
                        "meta_title": urlquote_plus(form.getTtag_metatitle()),
                        "meta_desc": urlquote_plus(form.getTtag_metadesc()),
                    }
                    if "wall_owner_id" in request.POST:
                        ttagdata["wall_owner_id"] = form.clean_Ttag_WallOwnerID()
                        request.is_wallowner = form.clean_Ttag_WallOwnerID() == user["_id"]
                    create = ttagPost("/ttag/create", ttagdata)
                    if create["result"] == "OK":
                        if not request.is_ajax():
                            import urllib

                            thereturn = HttpResponseRedirect(
                                paths.HTTPS
                                + request.get_host()
                                + "/spraycan/url/?location="
                                + urlquote_plus(request.POST["location"])
                            )
                        elif "position" in request.POST and request.POST["position"] == "minispraycan":
                            thereturn = render_to_response("partial_user_minispraycansuccess.html", locals())
                        else:
                            location = form.getTtag_Location()
                            from webapp.views import spraycan

                            ttags = spraycan.url(
                                request,
                                location,
                                request.POST["start_time"],
                                "partial_spraycan_ttags.html",
                                False,
                                None,
                                None,
                                location_type,
                            )
                            response = {"time": request.session["start_time"]}
                            feed = render_to_response(
                                "partial_spraycan_feed.html", locals(), context_instance=RequestContext(request)
                            )
                            objReturn = {"feed": mark_safe(feed.content), "ttags": mark_safe(ttags.content)}
                            jsonReturn = simplejson.dumps(objReturn)
                            thereturn = render_to_response(
                                "ajax_ttag_create.html", locals(), context_instance=RequestContext(request)
                            )
                        if "wall_owner_id" in ttagdata and ttagdata["wall_owner_id"] != ttagdata["user_id"]:
                            # send notification email to the wall owner
                            from webapp.views.email import notifyOfWallPost

                            notifyOfWallPost(request, ttagdata["wall_owner_id"], ttagdata["user_id"])
                else:
                    if len(request.POST["Comment"]):
                        thereturn = HttpResponse(str(form.errors))
                    else:
                        import urllib

                        thereturn = HttpResponseRedirect(
                            paths.HTTPS
                            + request.get_host()
                            + "/spraycan/url/?location="
                            + urlquote_plus(request.POST["location"])
                        )
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 47
0
def handle(request, notification_id):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:
            thereturn = custompopup(
                request,
                '<p>It looks like you\'ve already clicked on this notice, try <a href="'
                + reverse('notification-page', args=('1', )) +
                '">reloading the notifications?</a></p>')
            notifications = ttagPost(
                "/notification/get", {
                    'access_token': request.COOKIES['access_token'],
                    '_id': notification_id
                })
            if notifications['result'] == 'OK' and 'data' in notifications:
                notice = notifications['data']
                if notice['notification_type'] == 'FOLLOW_ME':
                    thereturn = redirect(
                        'user-profile',
                        notice['notification_data']['value']['followee_name'],
                        '', '', '')
                elif notice['notification_type'] == 'POST_ON_HUB_WALL':
                    thereturn = HttpResponseRedirect(
                        paths.HTTPS + request.get_host() +
                        reverse('hub-wall',
                                args=('id/', notice['notification_data']
                                      ['value']['hub_id'])))
                elif notice['notification_type'] == 'POST_ON_USER_WALL':
                    thereturn = HttpResponseRedirect(
                        paths.HTTPS + request.get_host() +
                        reverse('user-wall', args=(user['user_name'], )))
                elif notice['notification_type'] == 'REPLY_TTAG' or notice[
                        'notification_type'] == 'TTAG_FOLLOW':
                    if 'ttag_location' not in notice['notification_data'][
                            'value']:
                        ttag = ttagPost(
                            '/ttag/get', {
                                'access_token':
                                request.COOKIES['access_token'],
                                'user_id':
                                user['_id'],
                                'ttag_id':
                                notice['notification_data']['value']
                                ['ttag_id'],
                                'search_on':
                                'ttag'
                            })
                        notice['notification_data']['value'][
                            'ttag_location'] = ttag['data']['ttag']['location']
                    if 'ttag_location_type' in notice['notification_data'][
                            'value']:
                        if notice['notification_data']['value'][
                                'ttag_location_type'] == 'wall':
                            thereturn = HttpResponseRedirect(
                                paths.HTTPS + request.get_host() +
                                notice['notification_data']['value']
                                ['ttag_location'].replace(hosts.ROOT_HOST, ""))
                        elif notice['notification_data']['value'][
                                'ttag_location_type'] == 'HUB':
                            thereturn = HttpResponseRedirect(
                                paths.HTTPS + request.get_host() + reverse(
                                    'hub-wall',
                                    args=('id/',
                                          notice['notification_data']['value']
                                          ['ttag_location'].split('#')[0])))
                        return thereturn
                    elif not request.is_ajax():
                        import urllib
                        thereturn = HttpResponseRedirect(
                            paths.HTTPS + request.get_host() +
                            '/spraycan/url/?location=' +
                            urllib.quote_plus(notice['notification_data']
                                              ['value']['ttag_location']))
                    else:
                        from webapp.views import spraycan
                        request.GET = request.GET.copy()
                        request.GET.update({
                            'location':
                            notice['notification_data']['value']
                            ['ttag_location']
                        })
                        thereturn = spraycan.url(request)
                elif notice['notification_type'] in ['JOIN_HUB', 'QUIT_HUB']:
                    thereturn = HttpResponseRedirect(
                        paths.HTTPS + request.get_host() +
                        reverse('hub-members',
                                args=('id/', notice['notification_data']
                                      ['value']['hub_id'])))
                else:
                    thereturn = HttpResponseRedirect(
                        paths.HTTPS + request.get_host() +
                        reverse('notification-page', args=('1', )))
                delete = ttagPost(
                    "/notification/delete", {
                        'access_token': request.COOKIES['access_token'],
                        'notifications': [notification_id]
                    })
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 48
0
def activityView(request, page=1, time=0):
    """Show a logged in user the tag stream from their followers"""
    try:
        from webapp.views.user import PROFILE_ITEM_ROWS as ACTIVITY_ITEM_ROWS
        loggedin, data = ttagServiceAuth(request)
        if not loggedin:
            # TODO: Replace this with a 'please log in' page
            return indexView(request)

        if not page or page == '':
            page = 1
        page = int(page)
        if not time or time == '':
            time = 0
        time = int(time)
        response = ttagPost(
            '/user-data/get-following-ttags', {
                'access_token': request.COOKIES['access_token'],
                'user_id': data['_id'],
                'start_time': time,
                'items_per_page': ACTIVITY_ITEM_ROWS,
                'page_number': page - 1
            })
        followers = []
        respFollowers = ttagRequestFollowers(data['_id'])
        if 'data' in respFollowers and 'users' in respFollowers[
                'data'] and respFollowers['data']['users'] != None:
            followers = [
                follower['user_name']
                for follower in respFollowers['data']['users']
            ]
        response['data']['followers'] = followers
        # localprint(request,response)
        follow = -1
        servertime = datetime.datetime.fromtimestamp(
            int(response['time']) / 1000)
        location = "Activity"
        loggedin_user = data['_id']
        more = True if response['data'][
            'total_count'] > ACTIVITY_ITEM_ROWS * page and time == 0 else False
        if request.is_ajax():
            theextend = "base_ajax.html" if (
                request.is_ajax()
                and page > 1) else "partial_home_dashboard.html"
            userpanel = render_to_response(
                "partial_home_stream.html",
                locals(),
                context_instance=RequestContext(request))
            if (page > 1):
                thereturn = userpanel
            else:
                userdetails = render_to_response(
                    "partial_user_details.html",
                    locals(),
                    context_instance=RequestContext(request))
                jsonReturn = simplejson.dumps({
                    "context":
                    mark_safe(userdetails.content),
                    "results":
                    mark_safe(userpanel.content)
                })
                thereturn = HttpResponse(mark_safe(jsonReturn))
        else:
            thereturn = render_to_response(
                "home_stream.html",
                locals(),
                context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 49
0
def page(request, page):
    try:
        from webapp.views.user import PROFILE_ITEM_ROWS as ITEMS_PER_ROW
        thereturn = loginscreen(request)
        hubs = {}
        loggedin, user, loggedin_user, follow, data = getUserVariables(
            request, '')
        if loggedin:
            notifications = ttagPost(
                "/notification/get-all",
                {'access_token': request.COOKIES['access_token']})
            for notice in notifications['data']:
                if notice['notification_type'] == 'REPLY_TTAG':
                    if 'ttag_location_type' in notice['notification_data'][
                            'value']:
                        if notice['notification_data']['value'][
                                'ttag_location_type'] == 'wall':
                            notice['notification_data']['value'][
                                'ttag_title'] = notice['notification_data'][
                                    'value']['ttag_title'].replace(
                                        data['full_name'] + "'s Wall",
                                        'your Wall')
                        elif notice['notification_data']['value'][
                                'ttag_location_type'] == 'HUB':
                            hub_id = notice['notification_data']['value'][
                                'ttag_location'].split('#')[0]
                            if hub_id not in hubs:
                                hubdata = ttagGetHubByHubId(hub_id)
                                hubs[hub_id] = hubdata
                            else:
                                hubdata = hubs[hub_id]
                            if hubdata['result'] == 'OK':
                                notice['notification_data']['value'][
                                    'ttag_title'] = hubdata['data']['hub'][
                                        'hub_name']
            response = {'notifications': notifications['data']}
            page = int(page)
            next = True if page > 1 else False
            more = True if page * 15 < len(notifications['data']) else False
            location = 'Notifications'
            if next and request.is_ajax():
                thereturn = render_to_response(
                    "partial_notifications_notices.html",
                    locals(),
                    context_instance=RequestContext(request))
            elif request.is_ajax():
                userpanel = render_to_response(
                    "partial_notifications_details.html",
                    locals(),
                    context_instance=RequestContext(request))
                userdetails = render_to_response(
                    "partial_user_details.html",
                    locals(),
                    context_instance=RequestContext(request))
                jsonReturn = simplejson.dumps({
                    "context":
                    mark_safe(userdetails.content),
                    "results":
                    mark_safe(userpanel.content)
                })
                thereturn = HttpResponse(mark_safe(jsonReturn))
            else:
                thereturn = render_to_response(
                    'notifications_details.html',
                    locals(),
                    context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 50
0
def buildURL(request,
             data,
             location,
             location_type,
             user_name=None,
             start_time=0,
             renderJSON=False,
             partial='spraycan.html',
             thetemplate=None,
             payload={},
             to_time=INFINITE_TIME):
    loggedin = False if data == None or 'loggedin' not in data else data[
        'loggedin']
    from webapp.views.user import INFINITE_TIME
    if user_name == None:
        user_name = data['user_name']
    urlform = SpraycanSearchURL({'search': location})
    if urlform.is_valid() or location_type == 'HUB':
        if location_type == 'URL':
            location_type = 'URL' if 'http' in str(location) else 'geo'
        if location_type != 'HUB':
            ttags = ttagPost(
                "/ttag/get", {
                    'access_token': request.COOKIES.get('access_token', ''),
                    'user_id': data['_id'],
                    'location': str(location),
                    'location_type': location_type,
                    'start_time': start_time,
                    'end_time': to_time,
                    'search_on': 'time',
                    'page_number': 0,
                    'items_per_page': ITEMS_PER_PAGE
                })
        else:
            hub_id = location.split('#')[0]
            ttagdata = {
                'hub_id': hub_id,
                "from_time": start_time,
                "to_time": to_time,
                'page_number': 0,
                'items_per_page': ITEMS_PER_PAGE
            }
            if request.COOKIES.get('access_token', None) != None:
                ttagdata['access_token'] = request.COOKIES['access_token']
                ttagdata['user_id'] = data['_id']
            ttags = ttagPost("/find/hub-ttags", ttagdata)
        if ttags['result'] == 'OK':
            import datetime
            if not renderJSON or 'spraycanAuto' not in request.session or request.session[
                    'spraycanAuto']:
                request.session['start_time'] = ttags['time']
            else:
                request.session['start_time'] = start_time
            from webapp.views.user import getUserFollowers
            loggedin_user = data['_id']
            if 'total_count' in ttags['data'] and ttags['data'][
                    'total_count'] > ITEMS_PER_PAGE and 'ttags' in ttags[
                        'data']:
                NEW_TIME = int(
                    ttags['data']['ttags'][len(ttags['data']['ttags']) -
                                           1]['created_timestamp']) - 1
            response = {
                'time': request.session['start_time'],
                'data': {
                    'founder': [] if 'finder' not in ttags['data']
                    or ttags['data']['finder'] == None else
                    ttags['data']['finder'],
                    'favorite':
                    False if 'favorite' not in ttags['data'] else
                    ttags['data']['favorite'],
                    'ttags': [] if ttags['data']['ttags'] == None else
                    ttags['data']['ttags'],
                    'spams': [] if 'spams' not in ttags['data']
                    or ttags['data']['spams'] == None
                    or 'ttag_list' not in ttags['data']['spams']
                    or ttags['data']['spams']['ttag_list'] == None else
                    ttags['data']['spams']['ttag_list'],
                    'thumbups': [] if 'thumbups' not in ttags['data']
                    or ttags['data']['thumbups'] == None
                    or 'ttag_list' not in ttags['data']['thumbups']
                    or ttags['data']['thumbups']['ttag_list'] == None else
                    ttags['data']['thumbups']['ttag_list'],
                    'followers':
                    getUserFollowers(loggedin_user)
                }
            }
            servertime = datetime.datetime.fromtimestamp(
                int(ttags['time']) / 1000)
            if renderJSON:
                objReturn = {}
                ttags = render_to_response(
                    'partial_spraycan_ttags.html',
                    locals(),
                    context_instance=RequestContext(request))
                objReturn['manual_ttags'] = mark_safe(ttags.content)
                if 'spraycanAuto' in request.session and request.session[
                        'spraycanAuto']:
                    objReturn['ttags'] = mark_safe(ttags.content)
                feed = render_to_response(
                    'partial_spraycan_feed.html',
                    locals(),
                    context_instance=RequestContext(request))
                objReturn['feed'] = mark_safe(feed.content)
                jsonReturn = simplejson.dumps(objReturn)
            thereturn = render_to_response(
                partial, locals(), context_instance=RequestContext(request))
        else:
            thereturn = render_to_response(
                'ajax_ttag_create.html',
                {'jsonReturn': simplejson.dumps(ttags)})
    else:
        thereturn = hash(request)
    return thereturn
Ejemplo n.º 51
0
def ttagReply(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            ttagdata = ttagPost(
                "/ttag/get",
                {
                    "access_token": request.COOKIES["access_token"],
                    "user_id": data["_id"],
                    "ttag_id": ttag_id,
                    "search_on": "ttag",
                },
            )
            if "result" in ttagdata and ttagdata["result"] == "OK":
                ttag = ttagdata["data"]["ttag"]
                if "Comment" in request.POST:
                    form = TtagReply(request.POST)
                    if form.is_valid():
                        import re, urllib

                        hashtags = "".join(re.findall(r"\#\w+", request.POST["Comment"]))
                        root_id = ttag_id if ttag["root_id"] == "0" else ttag["root_id"]
                        ttagdata = {
                            "access_token": request.COOKIES["access_token"],
                            "user_id": data["_id"],
                            "parent_user_id": form.getTtag_ParentUser(),
                            "location": ttag["location"],
                            "location_type": ttag["location_type"],
                            "ttag_content": form.getTtag_Comment(),
                            "root_id": root_id,
                            "parent_id": ttag_id,
                            "title": ttag["title"],
                            "hashtags": hashtags,
                            "meta_url": urlquote_plus(form.getTtag_metaurl()),
                            "meta_thumbnail": urlquote_plus(form.getTtag_metathumbnail()),
                            "meta_title": urlquote_plus(form.getTtag_metatitle()),
                            "meta_desc": urlquote_plus(form.getTtag_metadesc()),
                            "wall_owner_id": ttag.get("wall_owner_id", ""),
                        }
                        request.is_wallowner = ttag["wall_owner_id"] == data["_id"]
                        reply = ttagPost("/ttag/create", ttagdata)
                        if reply["result"] == "OK":
                            from webapp.views.email import notifyOfReply

                            # send reply notification
                            notifyOfReply(
                                request,
                                ttagdata["parent_user_id"],
                                ttagdata["user_id"],
                                ttagdata["parent_id"],
                                reply["data"]["ttag"]["_id"],
                            )
                            # return template
                            if not request.is_ajax():
                                thereturn = HttpResponseRedirect(request.POST["location"])
                            else:
                                thereturn = ttagShowOriginal(request, reply["data"]["ttag"]["_id"], ttag_id)
                        else:
                            thereturn = HttpResponse(reply["msg"])
                    else:
                        thereturn = HttpResponse(str(form.errors))
                else:
                    context = {
                        "request": request,
                        "data": data,
                        "loggedin": loggedin,
                        "pagetitle": "ttagit - Ttag Reply Form",
                        "reply_id": ttag_id,
                        "ttag": ttagdata["data"]["ttag"],
                        "servertime": datetime.datetime.fromtimestamp(int(ttagdata["time"]) / 1000),
                    }
                    thereturn = render_to_response("ttag_reply.html", context, context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 52
0
def search(request):
    try:
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            if 'search' in request.POST:
                atusername = ''
                emailform = SpraycanSearchEmail(request.POST)
                usernameform = SpraycanSearchUsername(request.POST)
                if emailform.is_valid():
                    resp = ttagPost('/validate/request-username-by-email',
                                    {'email': emailform.getSpraycan_Search()})
                    if resp['result'] == 'OK' and resp['find_by_email']:
                        atusername = resp['user_name']
                elif usernameform.is_valid():
                    resp = ttagRequestUserProfile(
                        usernameform.getSpraycan_Search()[1:])
                    if resp['result'] == 'OK':
                        atusername = resp['data']['user_name']
                if atusername != '':
                    #                from django.core.urlresolvers import reverse
                    #                return render_to_response("javascript_redirect.html", {"redirect_url" : reverse('user-profile', kwargs={'user_name':atusername,'view_type':'','page':'','time':''}),'hidespraycan':'true'})
                    from webapp.views.user import userWallView
                    return userWallView(request, atusername)
                form = SpraycanSearch(request.POST)
                if form.is_valid():
                    urlform = SpraycanSearchURL(request.POST)
                    if urlform.is_valid():
                        #show spraycan for URL
                        thereturn = url(request, urlform.getSpraycan_Search())
                    else:
                        #show search results
                        import datetime
                        from webapp.views.user import getUserFollowers
                        location_type = 'search'
                        loggedin_user = data['_id']
                        filter = request.POST.get('filter', "All")
                        ttags = ttagPost(
                            '/find/url-keyword-hashtag', {
                                'query': form.getSpraycan_Search(),
                                'items_per_page': '100',
                                'page_number': '0'
                            })
                        response = {
                            'time': ttags['time'],
                            'data': {
                                'founder': {},
                                'favorite':
                                False,
                                'ttags': [] if filter not in ['All', 'Tags']
                                or ttags['data'] == None
                                or 'ttags' not in ttags['data']
                                or ttags['data']['ttags'] == None else
                                ttags['data']['ttags'],
                                'users': [] if filter not in ['All', 'Users']
                                or ttags['data'] == None
                                or 'users' not in ttags['data']
                                or ttags['data']['users'] == None else
                                ttags['data']['users'],
                                'hashtags':
                                [] if filter not in ['All', 'HashTags']
                                or ttags['data'] == None
                                or 'hashtags' not in ttags['data']
                                or ttags['data']['hashtags'] == None else
                                ttags['data']['hashtags'],
                                'location':
                                [] if filter not in ['All', 'Locations']
                                or ttags['data'] == None
                                or 'location' not in ttags['data']
                                or ttags['data']['location'] == None else
                                ttags['data']['location'],
                                'hubs': [] if filter not in ['All', 'Hubs']
                                or ttags['data'] == None
                                or 'hubs' not in ttags['data']
                                or ttags['data']['hubs'] == None else
                                ttags['data']['hubs'],
                                'spams': [],
                                'thumbups': []
                            }
                        }
                        from webapp.models.hub import processRawHubs
                        response['data']['hubs'] = processRawHubs(
                            response['data']['hubs'], request)
                        response['data']['followers'] = getUserFollowers(
                            loggedin_user)
                        from webapp.views.user import getUserHubs
                        response['data']['joinedhubs'] = getUserHubs(
                            data['user_name'])
                        response['data']['searchcounts'] = {
                            'ttags':
                            0 if ttags['data'] == None
                            or 'ttags' not in ttags['data']
                            or ttags['data']['ttags'] == None else len(
                                ttags['data']['ttags']),
                            'users':
                            0 if ttags['data'] == None
                            or 'users' not in ttags['data']
                            or ttags['data']['users'] == None else len(
                                ttags['data']['users']),
                            'hashtags':
                            0 if ttags['data'] == None
                            or 'hashtags' not in ttags['data']
                            or ttags['data']['hashtags'] == None else len(
                                ttags['data']['hashtags']),
                            'location':
                            0 if ttags['data'] == None
                            or 'location' not in ttags['data']
                            or ttags['data']['location'] == None else len(
                                ttags['data']['location']),
                            'hubs':
                            0 if ttags['data'] == None
                            or 'hubs' not in ttags['data']
                            or ttags['data']['hubs'] == None else len(
                                ttags['data']['hubs'])
                        }
                        servertime = datetime.datetime.fromtimestamp(
                            int(ttags['time']) / 1000)
                        if request.is_ajax():
                            thetemplate = 'base_ajax.html'
                        thereturn = render_to_response(
                            "spraycan.html",
                            locals(),
                            context_instance=RequestContext(request))
                    if request.is_ajax():
                        usercontext = mark_safe(
                            render_to_response('partial_user_details.html',
                                               locals(),
                                               context_instance=RequestContext(
                                                   request)).content)
                        import simplejson
                        jsonReturn = simplejson.dumps({
                            'context':
                            usercontext,
                            'results':
                            mark_safe(thereturn.content)
                        })
                        thereturn = HttpResponse(mark_safe(jsonReturn))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 53
0
def signInPost(request):
    try:
        context = {'request': request}
        formname = 'signin'
        if request.method == 'POST':
            if 'formname' in request.POST and request.POST[
                    'formname'] == 'minisignin':
                formname = 'minisignin'
            emailform = SigninEmailForm(request.POST)
            postFields = {
                'user': request.POST['user'],
                'password': request.POST['password']
            }
            if emailform.is_valid():
                resp = ttagPost('/validate/request-username-by-email',
                                {'email': emailform.getEmail()})
                if 'result' in resp and resp['result'] == 'OK':
                    postFields['user'] = resp['user_name']
            form = SignInForm(postFields)  # bound form
            if form.is_valid():
                json_obj = ttagPost("/login", {
                    'user_name': form.getName(),
                    'password': form.getPassword()
                })
                if json_obj["result"] == "OK":
                    # login successful
                    response = HttpResponseRedirect(paths.HTTPS +
                                                    request.get_host() + '/')
                    if request.is_ajax():
                        response = render_to_response(
                            'javascript_redirect.html', {
                                'redirect_url':
                                paths.HTTPS + request.get_host() + '/',
                                'hidespraycan': True
                            })
                    setCookie(response, 'access_token',
                              json_obj['data']['user_data']['access_token'])
                    return response
                else:
                    # login not successful, wrong name/password combo
                    form._errors['password'] = form.error_class(
                        [u"Password doesn't match the User Name or Email"])
        else:
            # request method other than POST
            form = SignInForm()  # clear form
        if request.is_ajax():
            import simplejson
            return HttpResponse(
                simplejson.dumps({
                    'headerOuter':
                    mark_safe(
                        render_to_response(
                            'partial_user_dashboard.html',
                            locals(),
                            context_instance=RequestContext(request)).content),
                    'homepageMain':
                    mark_safe(
                        render_to_response(
                            'partial_standalone_signin.html',
                            context,
                            context_instance=RequestContext(request)).content)
                }))
        else:
            context['hideMiniLogin'] = True
            return render_to_response('standalone_signin.html',
                                      context,
                                      context_instance=RequestContext(request))
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 54
0
def search(request):
    try :
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin :
            if 'search' in request.POST :
                atusername = ''
                emailform = SpraycanSearchEmail(request.POST)
                usernameform = SpraycanSearchUsername(request.POST)
                if emailform.is_valid() :
                    resp = ttagPost('/validate/request-username-by-email',{'email':emailform.getSpraycan_Search()})
                    if resp['result'] == 'OK' and resp['find_by_email'] :
                        atusername = resp['user_name']
                elif usernameform.is_valid() :
                    resp = ttagRequestUserProfile(usernameform.getSpraycan_Search()[1:])
                    if resp['result'] == 'OK' :
                        atusername = resp['data']['user_name']
                if atusername != '' :
    #                from django.core.urlresolvers import reverse
    #                return render_to_response("javascript_redirect.html", {"redirect_url" : reverse('user-profile', kwargs={'user_name':atusername,'view_type':'','page':'','time':''}),'hidespraycan':'true'})
                    from webapp.views.user import userWallView
                    return userWallView(request, atusername)
                form = SpraycanSearch(request.POST)
                if form.is_valid() :
                    urlform = SpraycanSearchURL(request.POST)
                    if urlform.is_valid() :
                        #show spraycan for URL
                        thereturn = url(request, urlform.getSpraycan_Search())
                    else :
                        #show search results
                        import datetime
                        from webapp.views.user import getUserFollowers
                        location_type = 'search'
                        loggedin_user = data['_id']
                        filter = request.POST.get('filter', "All")
                        ttags = ttagPost('/find/url-keyword-hashtag',{'query':form.getSpraycan_Search(),'items_per_page':'100','page_number':'0'})
                        response = {'time': ttags['time'], 'data':{
                                            'founder': {},
                                            'favorite': False,
                                            'ttags':[] if filter not in ['All','Tags'] or ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else ttags['data']['ttags'],
                                            'users': [] if filter not in ['All','Users'] or ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else ttags['data']['users'],
                                            'hashtags': [] if filter not in ['All','HashTags'] or ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else ttags['data']['hashtags'],
                                            'location': [] if filter not in ['All','Locations'] or ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else ttags['data']['location'],
                                            'hubs': [] if filter not in ['All','Hubs'] or ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else ttags['data']['hubs'],
                                            'spams':[],
                                            'thumbups':[]}}
                        from webapp.models.hub import processRawHubs
                        response['data']['hubs'] = processRawHubs(response['data']['hubs'], request)
                        response['data']['followers'] = getUserFollowers(loggedin_user)
                        from webapp.views.user import getUserHubs
                        response['data']['joinedhubs'] = getUserHubs(data['user_name'])
                        response['data']['searchcounts'] = {
                                                            'ttags': 0 if ttags['data'] == None or 'ttags' not in ttags['data'] or ttags['data']['ttags'] == None else len(ttags['data']['ttags']),
                                                            'users': 0 if ttags['data'] == None or 'users' not in ttags['data'] or ttags['data']['users'] == None else len(ttags['data']['users']),
                                                            'hashtags': 0 if ttags['data'] == None or 'hashtags' not in ttags['data'] or ttags['data']['hashtags'] == None else len(ttags['data']['hashtags']),
                                                            'location': 0 if ttags['data'] == None or 'location' not in ttags['data'] or ttags['data']['location'] == None else len(ttags['data']['location']),
                                                            'hubs': 0 if ttags['data'] == None or 'hubs' not in ttags['data'] or ttags['data']['hubs'] == None else len(ttags['data']['hubs'])
                                                            }
                        servertime = datetime.datetime.fromtimestamp(int(ttags['time'])/1000)
                        if request.is_ajax() :
                            thetemplate = 'base_ajax.html'
                        thereturn = render_to_response("spraycan.html", locals(), context_instance=RequestContext(request))
                    if request.is_ajax() :
                        usercontext = mark_safe(render_to_response('partial_user_details.html',locals(),context_instance=RequestContext(request)).content)
                        import simplejson
                        jsonReturn = simplejson.dumps({'context':usercontext,'results':mark_safe(thereturn.content)})
                        thereturn = HttpResponse(mark_safe(jsonReturn));
        return thereturn
    except :
        logger=logging.getLogger(__name__)
        return errorscreen(request,logger, sys)
Ejemplo n.º 55
0
def ttagReply(request, ttag_id):
    try:
        thereturn = loginscreen(request)
        loggedin, data = ttagServiceAuth(request)
        if loggedin:
            ttagdata = ttagPost(
                '/ttag/get', {
                    'access_token': request.COOKIES['access_token'],
                    'user_id': data['_id'],
                    'ttag_id': ttag_id,
                    'search_on': 'ttag'
                })
            if 'result' in ttagdata and ttagdata['result'] == 'OK':
                ttag = ttagdata['data']['ttag']
                if 'Comment' in request.POST:
                    form = TtagReply(request.POST)
                    if form.is_valid():
                        import re, urllib
                        hashtags = ''.join(
                            re.findall(r"\#\w+", request.POST['Comment']))
                        root_id = ttag_id if ttag['root_id'] == '0' else ttag[
                            'root_id']
                        ttagdata = {
                            'access_token':
                            request.COOKIES['access_token'],
                            'user_id':
                            data['_id'],
                            'parent_user_id':
                            form.getTtag_ParentUser(),
                            'location':
                            ttag['location'],
                            'location_type':
                            ttag['location_type'],
                            'ttag_content':
                            form.getTtag_Comment(),
                            'root_id':
                            root_id,
                            'parent_id':
                            ttag_id,
                            'title':
                            ttag['title'],
                            'hashtags':
                            hashtags,
                            'meta_url':
                            urlquote_plus(form.getTtag_metaurl()),
                            'meta_thumbnail':
                            urlquote_plus(form.getTtag_metathumbnail()),
                            'meta_title':
                            urlquote_plus(form.getTtag_metatitle()),
                            'meta_desc':
                            urlquote_plus(form.getTtag_metadesc()),
                            'wall_owner_id':
                            ttag.get('wall_owner_id', "")
                        }
                        request.is_wallowner = (
                            ttag['wall_owner_id'] == data['_id'])
                        reply = ttagPost("/ttag/create", ttagdata)
                        if reply['result'] == 'OK':
                            from webapp.views.email import notifyOfReply
                            # send reply notification
                            notifyOfReply(request, ttagdata["parent_user_id"],
                                          ttagdata["user_id"],
                                          ttagdata["parent_id"],
                                          reply['data']['ttag']['_id'])
                            # return template
                            if not request.is_ajax():
                                thereturn = HttpResponseRedirect(
                                    request.POST['location'])
                            else:
                                thereturn = ttagShowOriginal(
                                    request, reply['data']['ttag']['_id'],
                                    ttag_id)
                        else:
                            thereturn = HttpResponse(reply['msg'])
                    else:
                        thereturn = HttpResponse(str(form.errors))
                else:
                    context = {
                        'request':
                        request,
                        'data':
                        data,
                        'loggedin':
                        loggedin,
                        'pagetitle':
                        'ttagit - Ttag Reply Form',
                        'reply_id':
                        ttag_id,
                        'ttag':
                        ttagdata['data']['ttag'],
                        'servertime':
                        datetime.datetime.fromtimestamp(
                            int(ttagdata['time']) / 1000)
                    }
                    thereturn = render_to_response(
                        'ttag_reply.html',
                        context,
                        context_instance=RequestContext(request))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)
Ejemplo n.º 56
0
def ttagCreate(request):
    try:
        thereturn = loginscreen(request)
        authed, user = ttagServiceAuth(request)
        if authed:

            if 'Comment' in request.POST:
                form = TtagPost(request.POST)
                print[
                    form.is_valid(),
                    len(str(request.POST['Comment'])),
                    len(request.POST.get('meta_thumbnail', ""))
                ]
                print form.errors
                if form.is_valid() and (
                        len(str(request.POST['Comment']))
                        or len(request.POST.get('meta_thumbnail', ""))):
                    import re, urllib
                    location_type = 'URL' if (
                        'location_type' not in request.POST or
                        request.POST['location_type'] not in ['wall', 'HUB']
                    ) else request.POST['location_type']
                    remotetitle = ""
                    if location_type == 'URL':
                        getTitle = ttagPost(
                            '/find/get-title', {
                                'location': form.getTtag_Location(),
                                'location_type': 'URL'
                            })
                        try:
                            remotetitle = getTitle['data']['location_data'][
                                'title']
                        except:
                            import urllib2
                            import socket
                            timeout = 3
                            socket.setdefaulttimeout(timeout)
                            try:
                                req = urllib2.Request(form.getTtag_Location())
                                remotecontent = urllib2.urlopen(req).read()
                            except:
                                remotecontent = mark_safe('<title></title>')
                            #remotetitle = re.search(r"<title>(.*?)</title>", remotecontent).group(1)
                            title_dict = get_title(remotecontent, request)
                            if title_dict['status'] == 'OK':
                                remotetitle = title_dict['msg']
                            elif title_dict['status'] == 'ERROR':
                                remotetitle = ""
                    elif location_type == 'wall':
                        if 'wall_owner_id' in request.POST:
                            wallOwner = ttagServiceByUserID(
                                form.clean_Ttag_WallOwnerID())
                            if wallOwner['result'] == "OK":
                                remotetitle = wallOwner['data']['user'][
                                    'full_name'] + "'s Wall"
                    hashtags = ''.join(
                        re.findall(r"\#\w+", request.POST['Comment']))
                    root_id = '0'
                    ttag_id = '0'
                    ttagdata = {
                        'access_token':
                        request.COOKIES['access_token'],
                        'user_id':
                        user['_id'],
                        'location':
                        form.getTtag_Location(),
                        'location_type':
                        location_type,
                        'ttag_content':
                        form.getTtag_Comment(),
                        'root_id':
                        root_id,
                        'parent_id':
                        ttag_id,
                        'title':
                        remotetitle.strip(),
                        'hashtags':
                        hashtags,
                        'meta_url':
                        urlquote_plus(form.getTtag_metaurl()),
                        'meta_thumbnail':
                        urlquote_plus(form.getTtag_metathumbnail()),
                        'meta_title':
                        urlquote_plus(form.getTtag_metatitle()),
                        'meta_desc':
                        urlquote_plus(form.getTtag_metadesc())
                    }
                    if 'wall_owner_id' in request.POST:
                        ttagdata[
                            'wall_owner_id'] = form.clean_Ttag_WallOwnerID()
                        request.is_wallowner = (
                            form.clean_Ttag_WallOwnerID() == user['_id'])
                    create = ttagPost("/ttag/create", ttagdata)
                    if create['result'] == 'OK':
                        if not request.is_ajax():
                            import urllib
                            thereturn = HttpResponseRedirect(
                                paths.HTTPS + request.get_host() +
                                '/spraycan/url/?location=' +
                                urlquote_plus(request.POST['location']))
                        elif 'position' in request.POST and request.POST[
                                'position'] == 'minispraycan':
                            thereturn = render_to_response(
                                'partial_user_minispraycansuccess.html',
                                locals())
                        else:
                            location = form.getTtag_Location()
                            from webapp.views import spraycan
                            ttags = spraycan.url(
                                request, location, request.POST['start_time'],
                                'partial_spraycan_ttags.html', False, None,
                                None, location_type)
                            response = {'time': request.session['start_time']}
                            feed = render_to_response(
                                'partial_spraycan_feed.html',
                                locals(),
                                context_instance=RequestContext(request))
                            objReturn = {
                                'feed': mark_safe(feed.content),
                                'ttags': mark_safe(ttags.content)
                            }
                            jsonReturn = simplejson.dumps(objReturn)
                            thereturn = render_to_response(
                                'ajax_ttag_create.html',
                                locals(),
                                context_instance=RequestContext(request))
                        if "wall_owner_id" in ttagdata and ttagdata[
                                "wall_owner_id"] != ttagdata["user_id"]:
                            # send notification email to the wall owner
                            from webapp.views.email import notifyOfWallPost
                            notifyOfWallPost(request,
                                             ttagdata["wall_owner_id"],
                                             ttagdata["user_id"])
                else:
                    if len(request.POST['Comment']):
                        thereturn = HttpResponse(str(form.errors))
                    else:
                        import urllib
                        thereturn = HttpResponseRedirect(
                            paths.HTTPS + request.get_host() +
                            '/spraycan/url/?location=' +
                            urlquote_plus(request.POST['location']))
        return thereturn
    except:
        logger = logging.getLogger(__name__)
        return errorscreen(request, logger, sys)