
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
github.com/riadvice/bigbluebutton-annotations-api-server
Advanced tools
If you want to use virtualisation to run the project, you need to have vagrant installed.
Add the following lines to your .profile
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
source .profile
cd /app or app alias if you are under vagrant
go get github.com/gorilla/mux
go get github.com/jung-kurt/gofpdf
go get github.com/llgcode/draw2d
go get github.com/spf13/viper
go get github.com/sirupsen/logrus
go get github.com/01walid/goarabic
go get github.com/pdfcpu/pdfcpu
Required packages for Python scripts:
pip install PyPDF2
librsvg2-bin required for svg to pdf conversion (rsvg-convert)
sudo apt-get install librsvg2-bin
Run with go run main.go
start local server on port 8100
Listen for GET request on : http://127.0.0.1:8100/{meetingID}/{presentationID}
Response: Download pdf file (local location : /tmp/presentationID-final/presentationID.pdf)
Listen for POST request on : http://127.0.0.1:8100/{meetingID}/{presentationID} example request (post.sh) Response: Download pdf file (local location : /tmp/presentationID-final/presentationID.pdf)
Listen for GET request on : http://127.0.0.1:8100/{meetingID}/{presentationID}/{PageNumber}
Response: Download pdf file of the wanted page only (local location : /tmp/presentationID-pages-done/presentationID_PageNumber.pdf)
Create pdf file of the desired presentation with annotations on it
Run API with go run main.go
GET /MeetingID/PresentationIDGET /MeetingID/PresentationID[from events.xml] : GET /MeetingID/PresentationID/PageNumber
8100)/tmp/)/var/bigbluebutton/)/usr/share/bbb-api-pyscript/)/var/bigbluebutton/)/usr/share/fonts/)In the meeting
a49e87847170b7bfa6dbd633004657683499034d-1634463938342the presentation pdf file07bfb86c086066090f39d810096a329151261aec-1634463976664will be downloaded with it's annotations extracted from:EventsPath/a49e87847170b7bfa6dbd633004657683499034d-1634463938342/events.xml
In the meeting
a49e87847170b7bfa6dbd633004657683499034d-1634463938342the page number1from the presentation pdf07bfb86c086066090f39d810096a329151261aec-1634463976664will be downloaded with it's annotations extracted from:EventsPath/a49e87847170b7bfa6dbd633004657683499034d-1634463938342/events.xml
POST exemple
curl --request POST
--url http://127.0.0.1:8100/a49e87847170b7bfa6dbd633004657683499034d-1634463938342/07bfb86c086066090f39d810096a329151261aec-1634463976664
--header 'Content-Type: application/json'
--data
{
"_eventname": "AddShapeEvent",
"presentation": "07bfb86c086066090f39d810096a329151261aec-1634463976664",
"whiteboardId": "07bfb86c086066090f39d810096a329151261aec-1634463976664/1",
"pageNumber": 0,
"type": "pencil",
"position": 0,
"dataPoints": "20.768291,44.483734,28.794786,43.68109,36.86562,44.239834,44.91463,44.239834",
"color": 16711680,
"thickness": 0.3658536585365854,
"dimensions": "List(547, 410)",
"commands": "1,4"
},
{
"_eventname": "AddShapeEvent",
"presentation": "07bfb86c086066090f39d810096a329151261aec-1634463976664",
"whiteboardId": "07bfb86c086066090f39d810096a329151261aec-1634463976664/2",
"pageNumber": 1,
"type": "text",
"x": 52.42053561740452,
"y": 52.905454282407405,
"fontColor": 255,
"textBoxWidth": 31.723717583550346,
"textBoxHeight": 8.80195900245949,
"text": "Test text",
"fontSize": 20,
"calcedFontSize": 4.88997555012225,
"position": 0,
"dataPoints": "52.42053561740452,52.905454282407405"
}
]'
Just use test.go application
FAQs
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.