def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') comm_id = string.atoi(dataplus.dictGetVal(request.REQUEST,'commId')) community = models.Community.objects.get(id=comm_id) title = dataplus.dictGetSafeVal(request.REQUEST,'title') text = dataplus.dictGetSafeVal(request.REQUEST,'text') if community.is_moderated: if not community.members.filter(id=myself.id): return ajaxian.getFailureResp('This is a moderated community. So only members can post.') topic = models.CommunityTopic() topic.community = community topic.title = title topic.started_by = myself topic.last_post_at = datetime.utcnow() topic.save() post = models.CommunityPost() post.topic = topic post.posted_by = myself post.text = text post.save() return ajaxian.getSuccessResp(me_communities_show.getTopicBoxHtml(topic, True)) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: logged_in_type = siteaction.getLoggedInAccountType(request) rcvr_usrname = dataplus.dictGetVal(request.REQUEST,'sendTo') if logged_in_type == 'U': myself = siteaction.getLoggedInUser(request) elif logged_in_type == 'R': myself = siteaction.getLoggedInRecruiter(request) else: return ajaxian.getFailureResp('not_logged_in') rcvr_account = models.Account.objects.get(username=dataplus.dictGetVal(request.REQUEST,'sendTo')) text_message = dataplus.dictGetSafeVal(request.REQUEST,'text') html_message = dataplus.replaceHtmlLineBreaks(text_message) subject = dataplus.dictGetSafeVal(request.REQUEST,'subject') def internalSender(rcvr_accounts): mailman.sendMessage(myself.username, [rcvr.username for rcvr in rcvr_accounts], subject, html_message) def externalSender(rcvr_accounts): sender = '"' + myself.name + '" <' + myself.username + '*****@*****.**>' receivers = ['"' + rcvr.name + '" <' + rcvr.email + '>' for rcvr in rcvr_accounts] mailman.sendMail(sender, receivers, subject, html_message, None, None, text_message, reply_to=myself.email) mailman.sendBySettings([rcvr_account], internalSender, externalSender, 'TextMessage') return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') invite_email = dataplus.dictGetVal(request.REQUEST,'invite_email') is_valid, err_msg = codejar_validation.validateEmail(invite_email) if not is_valid: return ajaxian.getFailureResp('invalid_email') #see if a user with the same email exists user = dataplus.returnIfExists(models.User.objects.filter(email=invite_email)) if user: if user.username == myself.username: return ajaxian.getSuccessResp('cannot_add_self') invitation = models.FriendInvitation(sent_by=myself, sent_to_email=invite_email) invitation.invite_random_key = dataplus.getUniqueId() invitation.save() subject = myself.name + ' has invited you to Socialray' html_file = '/apps/socialray/website/bigfoot/websitetools/mailtemplates/invitation.html' text_file = '/apps/socialray/website/bigfoot/websitetools/mailtemplates/invitation.txt' mailer.sendInvite(html_file, text_file, myself, subject, (invite_email), {'name':lambda x:x.name, 'username':lambda x:x.username, 'message':lambda x:'', 'invite_random_key':lambda x:str(invitation.invite_random_key)}) return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def inviteToChatByEmail(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') username = dataplus.dictGetVal(request.REQUEST, 'username', '') name = dataplus.dictGetVal(request.REQUEST, 'name', '') invited_name = dataplus.dictGetVal(request.REQUEST, 'invitedName', '', lambda x: x.strip()) invited_email = dataplus.dictGetVal(request.REQUEST, 'invitedEmail', '', lambda x: x.strip()) text = dataplus.dictGetSafeVal(request.REQUEST, 'text', '') subject = 'Chat Invitation to Socialray' sender = name + '<' + username + '*****@*****.**>' html_message = '<p>Hello ' + invited_name + '</p><p>' + name + ' wants to have a chat with you and has sent you the following message ' + \ 'inviting you to a chat session in Socialray.</p><p>"' + text + '"</p>' + \ '<p>You can <a href="' + config.server_base_url + '/chat/startchat.htm?chatId=' + chat_id + '">join ' + name + '</a> in chat now.</p>' + \ '<p>Regards,<br />from Socialray</p>' text_message = 'Hello ' + invited_name + '\r\n' + name + ' wants to have a chat with you and has sent you the following message ' + \ 'inviting you to a chat session in Socialray.\r\n"' + text + '"\r\n' + \ 'Please visit ' + config.server_base_url + '/chat/startchat.htm?chatId=' + chat_id + ' to join ' + name + ' in chat now.\r\n' + \ 'regards,\r\nfrom Socialray\r\n\r\n' mailman.sendOneWayMail(sender, [invited_name + '<' + invited_email + '>'], subject, html_message, None, None, text_message) livewire_client.command('inviteByEmail', [session_id, chat_id, invited_name, invited_email]) return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('error:unknown')
def getAjaxOnlineStatus(request, session_id): try: usernames = dataplus.dictGetVal(request.REQUEST, 'usernames') if not usernames: return ajaxian.getFailureResp('error:invalid_parameters') members_online_status = getOnlineStatus(request, usernames.split(','), '', session_id) return ajaxian.getSuccessResp(members_online_status) except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') new_friend_id = dataplus.dictGetVal(request.REQUEST,'userId') new_friend = dataplus.returnIfExists(models.User.objects.filter(id=new_friend_id)) if not new_friend: return ajaxian.getSuccessResp('user_not_exists') #surprise.... you cannot add yourself, as a friend too! if (str(myself.id) == new_friend_id): return ajaxian.getSuccessResp('cannot_add_yourself') #see if such a friend exists #if so, then don't add friend = dataplus.returnIfExists(myself.friends.filter(id=new_friend_id)) if not friend: #see if there is already a pending friend request #if a request exists from the other user lets make them friends friend_req_from = dataplus.returnIfExists(models.FriendRequest.objects.filter(sent_by__id=new_friend_id, sent_to__id=myself.id)) if friend_req_from: myself.friends.add(new_friend) myself.save() friend_req_from.delete() return ajaxian.getSuccessResp('friend_added') #if a request from myself is there #if so don't add.. its pending friend_req_to = dataplus.returnIfExists(models.FriendRequest.objects.filter(sent_to__id=new_friend_id, sent_by__id=myself.id)) if not friend_req_to: friend_req = models.FriendRequest() friend_req.sent_by = myself friend_req.sent_to = new_friend friend_req.sent_on = datetime.datetime.utcnow() friend_req.save() html_mail_content = '<p>Hello ' + new_friend.name + ',</p><p><a href="' + config.server_base_url + \ '/profiles/' + myself.username + '">' + myself.name + '</a> has sent you a friend request. Please <a href="http://www.socialray.org/me/">Login to Socialray</a> to approve or reject the request.</p>' + \ '<p>Regards,<br />from Socialray</p><br /><br /><br /><br /><br />' text_mail_content = 'Hello ' + new_friend.name + ',\r\n\r\n' + myself.name + '(' + config.server_base_url + \ '/profiles/' + myself.username + ') wants to be your friend. Please login to Socialray to approve or reject the request.\r\n\r\n' + \ 'Regards,\r\nfrom Socialray\r\n\r\n\r\n\r\n\r\n' mailman.sendMail('"' + myself.name + '" <' + myself.username + '*****@*****.**>', [new_friend.email], 'Socialray: ' + myself.name + ' wants to add you as a friend', html_mail_content, None, None, text_mail_content, reply_to=myself.email) return ajaxian.getSuccessResp('request_added') else: return ajaxian.getSuccessResp('pending_request') else: return ajaxian.getSuccessResp('already_a_friend') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') html = me_index.getFriendsBoxHtml(myself, request) friends_count = myself.friends.count() return ajaxian.getSuccessResp(friends_count, html) except: return ajaxian.getFailureResp('unknown')
def getSharedFolder(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') data = livewire_client.query('getSharedFilesInfo', [session_id, chat_id]) if data.startswith('error:'): return ajaxian.getFailureResp(data) file_infos = cPickle.loads(data) return ajaxian.getSuccessResp(file_infos) except: return ajaxian.getFailureResp('error:unknown')
def leaveChat(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') status = livewire_client.command('leaveChat', [session_id, chat_id]) if status == 'success': return ajaxian.getSuccessResp('') else: return ajaxian.getFailureResp(status) except: return ajaxian.getFailureResp('error:unknown')
def getChatHistory(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') data = livewire_client.query('getChatHistory', [session_id, chat_id]) if data.startswith('error:'): return ajaxian.getFailureResp(data) messages = cPickle.loads(data) return ajaxian.getSuccessResp(messages) except: return ajaxian.getFailureResp('error:unknown')
def getChatId(request, session_id): try: receiver = dataplus.dictGetVal(request.REQUEST, 'receiver', '') receiver_info = '' if receiver: receiver_infos = getRelationships(request, [receiver]) receiver_info = receiver_infos[0] data = livewire_client.query('getChatId', [session_id, receiver_info, 'private']) if data: return ajaxian.getSuccessResp(data) else: return ajaxian.getFailureResp('error:connection_error') except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') msg_id = dataplus.dictGetVal(request.REQUEST,'messageId') result, msg = mailman.deleteMessage(myself.account, msg_id) if not result: ajaxian.getFailureResp(msg) else: return ajaxian.getSuccessResp(msg) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') msg_id = dataplus.dictGetVal(request.REQUEST,'messageId') msg = dataplus.returnIfExists(models.Message.objects.filter(id=msg_id, account__id=myself.account.id, folder='trashcan')) if msg: msg.folder = 'inbox' msg.save() return ajaxian.getSuccessResp('moved_to_inbox') else: return ajaxian.getFailureResp('invalid_messageId') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') user_id = dataplus.dictGetVal(request.REQUEST, 'userId') #see if such a friend exists friend = dataplus.returnIfExists(myself.friends.filter(id=user_id)) if friend: myself.friends.remove(friend) return ajaxian.getSuccessResp('removed_friend') else: return ajaxian.getSuccessResp('not_a_friend') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: username = dataplus.dictGetVal(request.REQUEST, 'username') password = dataplus.dictGetVal(request.REQUEST, 'password') if not (username and password): return ajaxian.getFailureResp('Error: Invalid username or password.') success, session_id, redirect_url, error_message = siteaction.doAjaxLogin(username, password) if success: response = ajaxian.getSuccessResp(redirect_url) response.set_cookie('session_id', session_id) return response else: return ajaxian.getFailureResp(error_message) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') resume_file_path = myself.resume_dir + '/' + myself.username + '.doc' if os.path.exists(resume_file_path): os.remove(resume_file_path) settings = models.UserSettings.objects.get(user=myself) settings.has_doc_resume = False settings.save() return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def fileUploadStart(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') filename = dataplus.dictGetVal(request.REQUEST, 'filename', '') if not filename: return ajaxian.getFailureResp('error:invalid_filename') result = livewire_client.command('fileUploadStart', [session_id, chat_id, filename]) if result.startswith('error:'): return ajaxian.getFailureResp(result) else: return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') ref_id = dataplus.dictGetVal(request.REQUEST, 'refId', 0, string.atoi) job_ref = dataplus.returnIfExists(models.JobReferral.objects.filter(id=ref_id)) if not job_ref: return ajaxian.getFailureResp('invalid_request') return ajaxian.getSuccessResp( {'subject':job_ref.subject, 'industry_category':job_ref.industry_category.name, 'min_exp':job_ref.min_experience_years, 'text':job_ref.text}) except: return ajaxian.getFailureResp('unknown')
def buzzUser(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') receiver = dataplus.dictGetVal(request.REQUEST, 'receiver') if not receiver: return ajaxian.getFailureResp('error:invalid_parameters') data = livewire_client.command('buzzUser', [session_id, chat_id, receiver]) if data.startswith('error:'): return ajaxian.getFailureResp(data) else: return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: account = siteaction.getLoggedInAccount(request) if not account: return ajaxian.getFailureResp('not_logged_in') status = dataplus.dictGetSafeVal(request.REQUEST,'status','everyone') cs = models.ChatSettings.objects.get(account=account) cs.online_status = status cs.save() session_id = request.COOKIES['session_id'] siteaction.updateLivewireData(session_id, account) return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) requesting_user = dataplus.dictGetVal(request.REQUEST,'lastMessageId', '') if (not myself) or myself.username != requesting_user: return ajaxian.getFailureResp('not_logged_in') last_message_id = dataplus.dictGetVal(request.REQUEST,'lastMessageId') msgs = models.Message.objects.filter(account__id=myself.account.id, folder='inbox', id__gt=last_message_id).order_by('-sent_at') if msgs: last_message_id = msgs[0].id else: last_message_id = -1 return ajaxian.getSuccessResp(last_message_id, me_index.getMessageBoxHtml(msgs)) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp("not_logged_in") id = dataplus.dictGetVal(request.REQUEST, "id", -1, string.atoi) if id == -1: return ajaxian.getSuccessResp("not_found") testimonial = dataplus.returnIfExists(myself.testimonials_for_me.filter(id=id)) if testimonial: testimonial.delete() return ajaxian.getSuccessResp("deleted") else: return ajaxian.getSuccessResp("not_found") except: return ajaxian.getFailureResp("unknown")
def inviteUsers(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') receivers = dataplus.dictGetVal(request.REQUEST, 'receivers', '') text = dataplus.dictGetVal(request.REQUEST, 'text', '') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') if not receivers: return ajaxian.getFailureResp('error:empty_receivers') receivers = receivers.split(',') receivers_infos = getRelationships(request, receivers) status = livewire_client.command('inviteUsers', [session_id, chat_id, dataplus.listToString(receivers_infos), text]) if status == 'success': return ajaxian.getSuccessResp('') else: return ajaxian.getFailureResp(status) except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') req_id = dataplus.dictGetVal(request.REQUEST, 'requestId') #see if such a friend request exists friend_req = models.FriendRequest.objects.get(id=req_id) #check if the friend request is to the same user. if (friend_req.sent_to != myself): return ajaxian.getFailureResp('request_not_for_user') friend_req.delete() return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') comm_id = dataplus.dictGetVal(request.REQUEST, 'communityId') community = models.Community.objects.get(id=comm_id) if community.members.filter(id=myself.id).count() > 0: if community.owner_username == myself.username: return ajaxian.getFailureResp('owner_cannot_unjoin') community.members.remove(myself); return ajaxian.getSuccessResp('') else: return ajaxian.getFailureResp('not_a_member') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') msg_id = dataplus.dictGetVal(request.REQUEST,'messageId') message = models.Message.objects.get(id=msg_id) #check if the message is to the same user. if (message.account.id != myself.account.id): return ajaxian.getFailureResp('message_not_for_user') message.read = True message.save() return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def sendMessage(request, session_id): try: chat_id = dataplus.dictGetVal(request.REQUEST, 'chatId', '') text = dataplus.dictGetSafeVal(request.REQUEST, 'text', '') receivers = dataplus.dictGetVal(request.REQUEST, 'receivers', '') last_message_id = dataplus.dictGetVal(request.REQUEST, 'lastMessageId','0') if not chat_id: return ajaxian.getFailureResp('error:invalid_chatId') if receivers: receivers = dataplus.listToString(receivers.split(',')) data = livewire_client.query('getChatMessages', [session_id, chat_id, last_message_id]) if data.startswith('error:'): return ajaxian.getFailureResp(data) data = cPickle.loads(data) result = livewire_client.command('sendMessage',[session_id, chat_id, text, receivers]) if result.startswith('error:'): return ajaxian.getFailureResp(result) return ajaxian.getSuccessResp(data) except: return ajaxian.getFailureResp('error:unknown')
def blockUser(request, session_id): try: username = dataplus.dictGetVal(request.REQUEST, 'username', '') if not username: return ajaxian.getFailureResp('error:empty_username') account = siteaction.getLoggedInAccount(request) if not account: return ajaxian.getFailureResp('error:not_logged_in') cs = models.ChatSettings.objects.get(account=account) ignore_list = cs.ignore_list.split(',') if not username in ignore_list: ignore_list.append(username); cs.ignore_list = string.join(ignore_list, ',') cs.save() livewire_client.command('updateUserSession', [session_id, account.username, account.name, cs.online_status, cs.custom_message, cs.invite_preference, cs.ignore_list, dataplus.getStaticUrl(cs.image_size1_file_path), dataplus.getStaticUrl(cs.image_size2_file_path), dataplus.getStaticUrl(cs.image_size3_file_path)]) return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('error:unknown')
def handle(request): try: username = dataplus.dictGetVal(request.REQUEST,'username').strip() #checking for reserved key words if username.lower() in config.reserved_words: return ajaxian.getSuccessResp('account_exists') #see if such a friend request exists if (models.Account.objects.filter(username=username).count() > 0): return ajaxian.getSuccessResp('account_exists') else: return ajaxian.getSuccessResp('no_account') except: return ajaxian.getFailureResp('unknown')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('') uname_startswith = dataplus.dictGetVal(request.REQUEST, 'username') html = '<ul>' friends = myself.friends.all() for friend in friends: if (friend.username.startswith(uname_startswith) or friend.name.startswith(uname_startswith)): html += '<li>' + friend.username + '<span class="informal"> (' + friend.name + ')</span>' html += '</ul>' return HttpResponse(html)