Mercurial > public > src > moin > extensions
changeset 606:7909cd319ce8
bbb: bug fix for parser lookup by extensions. We check now if bigbluebutton lib is installed.
author | Reimar Bauer <rb.proj AT googlemail DOT com> |
---|---|
date | Fri, 22 Jun 2012 19:21:46 +0200 |
parents | c378af5f401b |
children | e03dd52cddd8 |
files | data/plugin/action/submit_bbb_close_meeting.py data/plugin/action/submit_bbb_join_meeting.py data/plugin/action/submit_bbb_start_meeting.py data/plugin/macro/bbb.py data/plugin/parser/bbb_create.py |
diffstat | 5 files changed, 140 insertions(+), 94 deletions(-) [+] |
line wrap: on
line diff
--- a/data/plugin/action/submit_bbb_close_meeting.py Fri Jun 15 11:02:34 2012 +0200 +++ b/data/plugin/action/submit_bbb_close_meeting.py Fri Jun 22 19:21:46 2012 +0200 @@ -8,9 +8,14 @@ import urllib from MoinMoin.Page import Page # pip install bigbluebutton -from bigbluebutton import Meeting -import bbb_settings - +try: + from bigbluebutton import Meeting +except ImportError: + Meeting = None +try: + import bbb_settings +except ImportError: + bbb_settings = None def execute(pagename, request): """ @@ -27,7 +32,12 @@ ||<-2:> <<FormSubmit(Send)>> || <<FormFooter()>> """ - + if Meeting is None or bbb_settings is None: + msg, state = ("bigbluebutton module not installed or bbb_settings missing!", "error") + request.theme.add_msg(msg, state) + Page(request, pagename).send_page() + return + _ = request.getText username = request.user.name groups = request.groups
--- a/data/plugin/action/submit_bbb_join_meeting.py Fri Jun 15 11:02:34 2012 +0200 +++ b/data/plugin/action/submit_bbb_join_meeting.py Fri Jun 22 19:21:46 2012 +0200 @@ -8,8 +8,14 @@ import urllib from MoinMoin.Page import Page # pip install bigbluebutton -from bigbluebutton import Meeting -import bbb_settings +try: + from bigbluebutton import Meeting +except ImportError: + Meeting = None +try: + import bbb_settings +except ImportError: + bbb_settings = None def execute(pagename, request): @@ -26,6 +32,12 @@ ||<-2:> <<FormSubmit(Send)>> || <<FormFooter()>> """ + if Meeting is None or bbb_settings is None: + msg, state = ("bigbluebutton module not installed or bbb_settings missing!", "error") + request.theme.add_msg(msg, state) + Page(request, pagename).send_page() + return + _ = request.getText meeting = Meeting(bbb_settings.BBB_API_URL, bbb_settings.SALT) url = meeting.join_url(request.form["meeting_id"], request.form["name"], request.form["password"])
--- a/data/plugin/action/submit_bbb_start_meeting.py Fri Jun 15 11:02:34 2012 +0200 +++ b/data/plugin/action/submit_bbb_start_meeting.py Fri Jun 22 19:21:46 2012 +0200 @@ -8,9 +8,14 @@ import urllib from MoinMoin.Page import Page # pip install bigbluebutton -from bigbluebutton import Meeting_Setup -import bbb_settings - +try: + from bigbluebutton import Meeting_Setup +except ImportError: + Meeting_Setup = None +try: + import bbb_settings +except ImportError: + bbb_settings = None def execute(pagename, request): """ @@ -20,6 +25,11 @@ On same directory as wikiconfig.py you need a "bbb_settings.py" module with the SALT and the BBB_API_URL. """ + if Meeting_Setup is None or bbb_settings is None: + msg, state = ("bigbluebutton module not installed or bbb_settings missing!", "error") + request.theme.add_msg(msg, state) + Page(request, pagename).send_page() + return _ = request.getText username = request.user.name
--- a/data/plugin/macro/bbb.py Fri Jun 15 11:02:34 2012 +0200 +++ b/data/plugin/macro/bbb.py Fri Jun 22 19:21:46 2012 +0200 @@ -9,8 +9,14 @@ from MoinMoin import wikiutil from MoinMoin.Page import Page # pip install bigbluebutton -from bigbluebutton import Meeting -import bbb_settings +try: + from bigbluebutton import Meeting +except ImportError: + Meeting = None +try: + import bbb_settings +except ImportError: + bbb_settings = None def macro_bbb(macro): @@ -22,6 +28,8 @@ Example: <<bbb>> """ + if Meeting is None or bbb_settings is None: + return u"" request = macro.request _ = request.getText meeting = Meeting(bbb_settings.BBB_API_URL, bbb_settings.SALT)
--- a/data/plugin/parser/bbb_create.py Fri Jun 15 11:02:34 2012 +0200 +++ b/data/plugin/parser/bbb_create.py Fri Jun 22 19:21:46 2012 +0200 @@ -9,8 +9,14 @@ import time from MoinMoin import wikiutil # pip install bigbluebutton -from bigbluebutton import Meeting -import bbb_settings +try: + from bigbluebutton import Meeting +except ImportError: + Meeting = None +try: + import bbb_settings +except ImportError: + bbb_settings = None Dependencies = [] @@ -63,88 +69,88 @@ moderator_password = content["moderator_password"] meeting_id = content["meeting_id"] responsible = content["responsible"] - - meeting = Meeting(bbb_settings.BBB_API_URL, bbb_settings.SALT) - #XXX meeting.is_running is only True if someone had joined in, so we use meeting_info instead - meeting_info = meeting.meeting_info(meeting_id, moderator_password) - - meeting_data = """|| '''Meeting ID''' || '''Participation Count''' || '''Moderator Count'''|| -|| %(meeting_id)s || 0 || 0 ||""" % {"meeting_id": meeting_id - } - if meeting_info: + if Meeting is not None and bbb_settings is not None: + meeting = Meeting(bbb_settings.BBB_API_URL, bbb_settings.SALT) + #XXX meeting.is_running is only True if someone had joined in, so we use meeting_info instead + meeting_info = meeting.meeting_info(meeting_id, moderator_password) + meeting_data = """|| '''Meeting ID''' || '''Participation Count''' || '''Moderator Count'''|| -|| %(meeting_id)s || %(participant_count)s || %(moderator_count)s ||""" % {"meeting_id": meeting_id, - "participant_count": meeting_info["participant_count"], - "moderator_count": meeting_info["moderator_count"] - } - - if not attendee_password.strip() or not moderator_password.strip(): + || %(meeting_id)s || 0 || 0 ||""" % {"meeting_id": meeting_id + } + if meeting_info: + meeting_data = """|| '''Meeting ID''' || '''Participation Count''' || '''Moderator Count'''|| + || %(meeting_id)s || %(participant_count)s || %(moderator_count)s ||""" % {"meeting_id": meeting_id, + "participant_count": meeting_info["participant_count"], + "moderator_count": meeting_info["moderator_count"] + } + + if not attendee_password.strip() or not moderator_password.strip(): + wiki_parser = wikiutil.importPlugin(self.request.cfg, "parser", "text_moin_wiki", None) + wiki_parser = wiki_parser.Parser(self.raw, self.request) + wiki_parser.format(formatter) + return + + actions = [] + actions_text = "" + guest_info_text = "" + msg = "\n\n/!\ A Moderator has to start the meeting before someone else can join in!" + if request.user.valid and request.user.may.read(pagename): + if meeting_info: + msg = "\n\n (!) Meeting is running. Please join in!" + if username == responsible: + actions.append(u' . [[%(moderator_url)s|Join as moderator (%(username)s)]]' % {"moderator_url": meeting.join_url(meeting_id, request.user.name, moderator_password), + "username": username}) + + if meeting.is_running(meeting_id): + actions.append(u' . [[%(attendee_url)s|Join as visitor (%(username)s)]]' % {"attendee_url": meeting.join_url(meeting_id, request.user.name, attendee_password), + "username": username}) + else: + msg = "\n\n/!\ Wait until the moderator has joined this meeting!" + else: + if username == responsible: + msg = "\n\n/!\ A Moderator has to start the meeting before someone else can join in!" + actions.append(u' . <<Action(submit_bbb_start_meeting, text="Click to start this meeting")>>') + + if request.user.may.write(pagename) and meeting_info: + if username == responsible: + actions.append(u' . <<Action(submit_bbb_close_meeting, text="Close this meeting", meeting_id=%(meeting_id)s, password=%(password)s)>>' % {"meeting_id": meeting_id, + "password": moderator_password + }) + + if "GUEST_URL" in bbb_settings.__dict__: + guest_info_text = "(!) External users can get access by using this URL: %s" % bbb_settings.GUEST_URL + + + if not meeting_info and request.user.may.delete(pagename) and username == responsible: + # users with before rights should know to use commands of the menu + actions.append(u' . <<Action(edit, text="edit meeting parameter")>>') + actions.append(u' . <<Action(DeletePage, text="remove meeting permanently")>>') + + if actions: + actions_text = """{{{#!wiki dotted + %(actions)s + }}} + """ % {"actions": '\n'.join(actions)} + + + raw = u""" + %(msg)s + + Current participants and state of users in this meeting. + + %(meeting_data)s + + %(actions_text)s + + %(guest_info_text)s + """ % {"msg": msg, + "meeting_data": meeting_data, + "actions_text": actions_text, + "guest_info_text": guest_info_text, + } + + wiki_parser = wikiutil.importPlugin(self.request.cfg, "parser", "text_moin_wiki", None) - wiki_parser = wiki_parser.Parser(self.raw, self.request) + wiki_parser = wiki_parser.Parser(raw, self.request) wiki_parser.format(formatter) - return - - actions = [] - actions_text = "" - guest_info_text = "" - msg = "\n\n/!\ A Moderator has to start the meeting before someone else can join in!" - if request.user.valid and request.user.may.read(pagename): - if meeting_info: - msg = "\n\n (!) Meeting is running. Please join in!" - if username == responsible: - actions.append(u' . [[%(moderator_url)s|Join as moderator (%(username)s)]]' % {"moderator_url": meeting.join_url(meeting_id, request.user.name, moderator_password), - "username": username}) - - if meeting.is_running(meeting_id): - actions.append(u' . [[%(attendee_url)s|Join as visitor (%(username)s)]]' % {"attendee_url": meeting.join_url(meeting_id, request.user.name, attendee_password), - "username": username}) - else: - msg = "\n\n/!\ Wait until the moderator has joined this meeting!" - else: - if username == responsible: - msg = "\n\n/!\ A Moderator has to start the meeting before someone else can join in!" - actions.append(u' . <<Action(submit_bbb_start_meeting, text="Click to start this meeting")>>') - if request.user.may.write(pagename) and meeting_info: - if username == responsible: - actions.append(u' . <<Action(submit_bbb_close_meeting, text="Close this meeting", meeting_id=%(meeting_id)s, password=%(password)s)>>' % {"meeting_id": meeting_id, - "password": moderator_password - }) - - if "GUEST_URL" in bbb_settings.__dict__: - guest_info_text = "(!) External users can get access by using this URL: %s" % bbb_settings.GUEST_URL - - - if not meeting_info and request.user.may.delete(pagename) and username == responsible: - # users with before rights should know to use commands of the menu - actions.append(u' . <<Action(edit, text="edit meeting parameter")>>') - actions.append(u' . <<Action(DeletePage, text="remove meeting permanently")>>') - - if actions: - actions_text = """{{{#!wiki dotted -%(actions)s -}}} -""" % {"actions": '\n'.join(actions)} - - - raw = u""" -%(msg)s - -Current participants and state of users in this meeting. - -%(meeting_data)s - -%(actions_text)s - -%(guest_info_text)s -""" % {"msg": msg, - "meeting_data": meeting_data, - "actions_text": actions_text, - "guest_info_text": guest_info_text, - } - - - wiki_parser = wikiutil.importPlugin(self.request.cfg, "parser", "text_moin_wiki", None) - wiki_parser = wiki_parser.Parser(raw, self.request) - wiki_parser.format(formatter) -