Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 22 additions & 5 deletions bigbluebutton_api_python/util/urlbuilder.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,28 @@

from hashlib import sha1
from re import sub
from re import match

import sys
if sys.version_info[0] == 2:
from urllib import quote_plus
else:
try:
from urllib.request import quote_plus
except:
from urllib.parse import quote_plus


class UrlBuilder:
def __init__(self, bbbServerBaseUrl, securitySalt):
self.bbbServerBaseUrl = sub('(\/api)?\/?$', '/api/', bbbServerBaseUrl, 1)
self.securitySalt = securitySalt
if not match('/[http|https]:\/\/[a-zA-Z1-9.]*\/bigbluebutton\/api\//', bbbServerBaseUrl):
if not bbbServerBaseUrl.startswith("http://") and not bbbServerBaseUrl.startswith("https://"):
bbbServerBaseUrl = "http://" + bbbServerBaseUrl
if not bbbServerBaseUrl.endswith("/bigbluebutton/api/"):
bbbServerBaseUrl = bbbServerBaseUrl[:(bbbServerBaseUrl.find("/", 8)
if bbbServerBaseUrl.find("/", 8) != -1 else len(bbbServerBaseUrl))] + "/bigbluebutton/api/"

self.securitySalt = securitySalt
self.bbbServerBaseUrl = bbbServerBaseUrl

def buildUrl(self, api_call, params={}):
url = self.bbbServerBaseUrl
Expand All @@ -15,7 +32,7 @@ def buildUrl(self, api_call, params={}):
value = "true" if value else "false"
else:
value = str(value)
url += key + "=" + value + "&"
url += key + "=" + quote_plus(value) + "&"

url += "checksum=" + self.__get_checksum(api_call, params)
return url
Expand All @@ -27,7 +44,7 @@ def __get_checksum(self, api_call, params={}):
value = "true" if value else "false"
else:
value = str(value)
secret_str += key + "=" + value + "&"
secret_str += key + "=" + quote_plus(value) + "&"
if secret_str.endswith("&"):
secret_str = secret_str[:-1]
secret_str += self.securitySalt
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from setuptools import setup, find_packages

setup(name='bigbluebutton_api_python',
version='0.0.9',
version='0.0.12',
description='Python library that provides access to the API of BigBlueButton',
author='Tarek Kalaji, Yunkai Wang',
author_email='yunkai.wang@blindsidenetworks.com',
Expand All @@ -12,4 +12,4 @@
install_requires=[
'jxmlease'
],
)
)