def create_session_community(request, community_id): epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL) ether_com = EtherCommunity.objects.get(community=community_id) ether_com = str(ether_com.community_ether_id) ether_user = EtherUser.objects.get(user=request.user) ether_user = str(ether_user.user_ether_id) validUntil = int(time())+28800 result = epclient.createSession(ether_com, ether_user, validUntil) return result['sessionID']
def create_session_group(request, group_id): epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL) ether_group = EtherGroup.objects.get(group=group_id) ether_group = str(ether_group.group_ether_id) ether_user = EtherUser.objects.get(user=request.user) ether_user = str(ether_user.user_ether_id) validUntil = int(time()) + 28800 result = epclient.createSession(ether_group, ether_user, validUntil) return result['sessionID']
def pad(request, pk=None, slug=None): """Create and session and display an embedded pad """ # Initialize some needed values if slug: pad = get_object_or_404(Pad, name=slug) else: pad = get_object_or_404(Pad, pk=pk) padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \ urllib.quote_plus(pad.name) server = urlparse(pad.server.url) author = PadAuthor.objects.get(user=request.user) if author not in pad.group.authors.all(): response = render_to_response( 'pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__unicode__(), 'error': _('You are not allowed to view or edit this pad') }, context_instance=RequestContext(request) ) return response # Create the session on the etherpad-lite side expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=config.SESSION_LENGTH ) epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl) try: result = epclient.createSession( pad.group.groupID, author.authorID, time.mktime(expires.timetuple()).__str__() ) except Exception, e: response = render_to_response( 'pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__unicode__(), 'error': _('etherpad-lite session request returned:') + ' "' + e.reason + '"' }, context_instance=RequestContext(request) ) return response
class Etherpad: def __init__(self): self.epclient = EtherpadLiteClient(settings.APIKEY, settings.APIURL) def create_ether_blog(self, blog): groupid = self.epclient.createGroupIfNotExistsFor(str(blog.uuid)) padid = self.epclient.createGroupPad(groupid['groupID'], blog.pk) blog = EtherBlog.objects.create(blog=blog, etherid=padid['padID'], groupid=groupid['groupID']) return blog def create_ether_user(self, user): result = self.epclient.createAuthorIfNotExistsFor( user.id, user.username) user = EtherUser.objects.create(user=user, user_ether_id=result['authorID']) return user def create_session_group(self, request, groupid): ethergroup = str(groupid) try: etheruser = EtherUser.objects.get(user=request.user) except Exception: etheruser = self.create_ether_user(request.user) etheruser = str(etheruser.user_ether_id) validUntil = int(time()) + 28800 result = self.epclient.createSession(ethergroup, etheruser, validUntil) return result['sessionID'] def getHTML(self, blog): blog = EtherBlog.objects.get(blog=blog) result = self.epclient.getHtml(blog.etherid) return result['html'] def getText(self, blog): blog = EtherBlog.objects.get(blog=blog) result = self.epclient.getText(blog.etherid) return result['text'] def deletePad(self, blog): article = EtherBlog.objects.get(blog=blog) self.epclient.deletePad(blog.etherid) return def get_pad_usercount(self, blog): count = self.epclient.padUsersCount(blog.etherid) return count['padUsersCount'] def get_read_only_padid(self, blog): readonly = self.epclient.getReadOnlyID(blog.etherid) return readonly['readOnlyID']
def pad(request, pk): """Create and session and display an embedded pad """ # Initialize some needed values pad = get_object_or_404(Pad, pk=pk) padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \ urllib.quote_plus(pad.name) server = urlparse(pad.server.url) author = PadAuthor.objects.get(user=request.user) if author not in pad.group.authors.all(): response = render_to_response( 'etherpad-lite/pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__unicode__(), 'error': _('You are not allowed to view or edit this pad') }, context_instance=RequestContext(request)) return response # Create the session on the etherpad-lite side expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=config.SESSION_LENGTH) epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl) try: result = epclient.createSession( pad.group.groupID, author.authorID, time.mktime(expires.timetuple()).__str__()) except Exception, e: response = render_to_response('etherpad-lite/pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__unicode__(), 'error': _('etherpad-lite session request returned:') + ' "' + e.reason + '"' }, context_instance=RequestContext(request)) return response
def pad(request, pk): """Create and session and display an embedded pad """ # Initialize some needed values pad = get_object_or_404(Pad, pk=pk) padLink = pad.server.url + 'p/' + pad.group.groupID + '$' + \ urllib.parse.quote_plus(pad.name) server = urlparse(pad.server.url) author = PadAuthor.objects.get(user=request.user) # if author not in pad.group.authors.all(): # return render( # request, # 'pad.html', # { # 'pad': pad, # 'link': padLink, # 'server': server, # 'uname': author.user.__unicode__(), # 'error': _('You are not allowed to view or edit this pad') # } # ) # Create the session on the etherpad-lite side expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=config.SESSION_LENGTH) epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl) try: result = epclient.createSession( pad.group.groupID, author.authorID, time.mktime(expires.timetuple()).__str__()) except Exception as e: return render( request, 'pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__str__(), 'error': _('etherpad-lite session request returned:') + ' "' + str(e) + '"' }) response = render( request, 'pad.html', { 'pad': pad, 'link': padLink, 'server': server, 'uname': author.user.__str__(), 'error': False }) # Delete the existing session first if ('padSessionID' in request.COOKIES): epclient.deleteSession(request.COOKIES['sessionID']) response.delete_cookie('sessionID', server.hostname) response.delete_cookie('padSessionID') # Set the new session cookie for both the server and the local site response.set_cookie(key='sessionID', value=result['sessionID'], expires=expires, httponly=False) response.set_cookie(key='padSessionID', value=result['sessionID'], expires=expires, httponly=False) # request.session['sessionID']= result['sessionID'] # request.session['padSessionID']= result['sessionID'] # request.set_expiry(expires) return response
def pad(request, pk): """Create and session and display an embedded pad """ # Initialize some needed values pad = get_object_or_404(Pad, pk=pk) server = urlparse(pad.server.url) author = PadAuthor.objects.get(user=request.user) if author not in pad.group.authors.all(): response = render_to_response( 'etherpad-lite/pad.html', { 'pad': pad, 'link': pad.link, 'server': server, 'uname': author.user.__unicode__(), 'error': _('You are not allowed to view or edit this pad') }, context_instance=RequestContext(request) ) return response # Create the session on the etherpad-lite side expires = datetime.datetime.utcnow() + datetime.timedelta( seconds=config.SESSION_LENGTH ) epclient = EtherpadLiteClient(pad.server.apikey, pad.server.apiurl) default_author_name_mapper = lambda user: user.__unicode__() author_name_mapper = getattr(settings, 'ETHERPAD_AUTHOR_NAME_MAPPER', default_author_name_mapper) default_etherpad_settings = { "showControls": True, "showChat": True, "alwaysShowChat": False, "showLineNumbers": False, "useMonospaceFont": False, "noColors": False, "hideQRCode": True, "rtl": False, "userName": author_name_mapper(author.user).encode('utf-8'), } pad_settings = default_etherpad_settings pad_settings.update(getattr(settings, 'ETHERPAD_SETTINGS', {})) for key, value in pad_settings.items(): if value == True: pad_settings[key] = 'true' elif value == False: pad_settings[key] = 'false' try: result = epclient.createSession( pad.group.groupID, author.authorID, time.mktime(expires.timetuple()).__str__() ) except Exception, e: response = render_to_response( 'etherpad-lite/pad.html', { 'pad': pad, 'link': pad.link, 'server': server, 'querystring': urllib.urlencode(pad_settings).replace('+', ' '), 'error': _('etherpad-lite session request returned:') + ' "' + e.reason + '"' }, context_instance=RequestContext(request) ) return response