Die virtPresenter-Software wird von uns nicht mehr aktiv weiterentwickelt! Statt dessen nutzen wir unsere Entwicklungs-Ressourcen für das Opencast Matterhorn Projekt in dem viele Erfahrungen von virtPresenter eingebracht werden.


 

Vom Verwalter zur Verfügung gestellte Webservices

Freigabe Webservice

Der Freigabe-Webservice liefert Informationen wie die einzelnen Aufzeichnung den Seminaren zugeordnet sind und wie diese dann wieder den StudIP Installationen zugeordnet sind. Daneben wir auch noch die Sichtbarkeit der Aufzeichnungen ausgegeben

Der Webservice ist unter der URL des Verwalters /freigabe-ws zu finden. Die einzige Klasse auf die zugegriffen werden kann ist Freigabe.

Legende:

  • seminarid bzw. virtpresenterseminarid: Vom virtPresenter genutzte eindeutige Kennung für ein Reihe von Aufzeichnungen die zu einer Lehrveranstaltung gehören
  • studipid: Die Eindeutige Bezeichnung des StudIPs als String. Tabelle der IDs wird von StudIP verwaltet.
  • virtpresenterid: Eindeutige Kennung für die jeweilige Aufzeichnung
  • playlistid: Kennung für die Playlist mit verschiedenen Aufzeichnungen
  • objektid: Kennung eines Contentobjektes (entspricht einer Aufzeichnung) in Vader-Datenbank

public Boolean check (String studip_seminarid, String studipid, String virtpresenterid, Boolean dozent)
Prüft ob eine Aufzeichnung gezeigt werden darf. TRUE wenn ja, FALSE wenn nein. Benötig die StudIP-Seminar-ID um zu prüfen, ob der Student denn auch in einem legalen Kurs ist.

public List seminars (String virtpresenterseminarid, String studipid)
Gibt alle StudIP SeminarsID aus die zur die virtPresenter-Seminar-ID innerhalb bezogen auf das angegebene StudIP vergeben wurden.

public List playlistObjekte (Integer playlistid)
Gibt die zu der Playlisten-ID gehörige Playliste aus. In dieser Liste werden nur die Objekt_IDs der Contentobjekte angezeigt. Parallel können auch zusätzlich Videoeditionen in der Playlist enthalten sein. Die Einträge sind nach Position geordnet und alle noch nicht freigegebenen ausgeblendet.

public List playlistVideoeditions (Integer playlistid)
Gibt die zu der Playlisten-ID gehörige Playliste aus. In dieser Liste werden nur die Videoeditionen gezeigt. Parallel können auch zusätzlich Contentobjekte in der Playlist enthalten sein. Die Einträge sind nach Position geordnet und alle noch nicht freigegebenen ausgeblendet.

public Integer getObjektId (String virtpresenterid)
Gibt die zu einer Aufzeichnung gehörende VADER-Objekt-ID zurück. Der einzige Unterschied dieser Objekt-ID ist das diese numerisch ist im Gegensatz zur virtPresenter-ID. Diese lassen sich aber eindeutig aufeinender abbilden.

public String getSeminarId (Integer objektId)
Gibt zu der Objekt-Id gehörende StudIP Seminar-IDs zurück.

public String getSeminarId (String virtpresenterid)
Gibt zu der VirtPresenter-ID gehörende virtPresenter-Seminar-ID zurück.

public String getLectureId (Integer objektId)
Gibt die Zu einer Objekt-ID gehörende LectureID ( = virtPresenterID) zurück.

public List getAllLinkedStudIPsForRecording (String virtpresenterid)
Liefert alle StudIPs denen eine Aufzeichnung zugeordnet ist.

public List getAllLinkedStudIPs (String virtpresenterseminarid)
Liefert alle StudIPs denen eine virtPresenter-Seminar-ID zugeordent ist.

public List getAllStudIPs ()
Eine Liste aller der Datenbank bekannten StudIPs.

public String getLMSName (String studipid)
Liefert einen Klartextnamen für die StudIP-ID

public String getLMSURL (String studipid)
Liefert die URL des StudIPs der zu der Kennung gehört.

public List getAllSeminarsForStudIP (String studipid)
Liefert eine Liste aller dem virtPresenter-Seminar-Ids die den StudIP zugeordent sind.

public String getSeminarInfo (String seminarID)
Liefert eine Beschreibung des Seminars in einem XML-String in folgenden Formar:

<seminar> 
   <title>Beispielveranstaltung</title> 
   <description>Eine Beschreinung der Veranstaltung, auch mehrzeilig</description>
   <image>http://www.virtpresenter.org/image.jpg</image> 
   <visible>1</visible> 
   <lecturer> 
       <title>Prof. Dr.</title> 
       <forename>Jens</forename> 
       <name>Mustermann</name> 
       <email>Mustermann@virtpresenter.org</email> 
   </lecturer> 
</seminar>

lecturer kann bei mehreren Dozenten mehrfach auftauchen.

public List<String> getAllLectureIds (Integer visibility)
Gibt eine Liste alles lecture IDs, aus der Vader-Datenbank. Kann leider nicht immer richtig sein und auch NULL enthalten.

public List<String> getLectureIdsForSeminar (String seminarID)
Liefert alle lectureIds zu einer SemiarID. Auch wieder nur aus der Vader-Datenbank. Muss deswegen leider nicht vollständig sein.

Userdata Webservice

Der Userdata-Webservice liefert und speichert Informationen, die die Benutzer anlegen und ggf. auch austauschen können: Videoeditionen, Videoszenen, Notizen, ... Der Webservice ist unter der URL des Verwalters /userdata-ws zu finden. Die einzige Klasse auf die zugegriffen werden kann ist VirtpresenterUserdata.

Legende:

  • user: Benutzerkennung. Normalerweise als MD5-Hash anonymisiert
  • videosceneId: Kennung für eine Video-Scene
  • videoeditionId: Kennung für eine Video-Edition, die aus einer oder mehreren Szenen bestehen kann.
  • noteId: Kennung für eine Notiz
  • visibility: Sichtbarkeit des Objektes für andere (Freunde, StudIP, ...; genauere Angaben siehe VADER-Datenbank)
  • inpoint: Einsprungspunkt in das Video in ms.
  • outpoint: Endpunkt des Auschnittes in ms. -1 wenn nicht genutzt.
  • title: Titel des Objektes
  • description: Beschreibung des Objektes
  • thumbnailURL: URL zum Vorschaubild

Benutzer

public Boolean assertStudipUser(String user)
Prüft, ob es einen Benutzer schon in der Datenbank gibt. Wenn nicht, wird der Benutzer angelegt. Ergebnis False nur falls Benutzer nicht vorhanden und auch nicht angelegt werden kann.

Videoscenen

public Integer createVideoscene(String user, String virtpresenterId, Integer inPoint, Integer outPoint, String thumbnailURL, String title, String description, Integer visibility)
Legt eine neue Video-Szene an.

public Boolean updateVideoscene(Integer videosceneId, Integer inPoint, Integer outPoint, String thumbnailURL, String title, String description)
Ändert die Daten einer bestehenden Video-Szene.

public Boolean deleteVideoscene(Integer videosceneId)
Löscht eine Video-Szene. Wenn eine Szene schon in einer Edition verwendet wird, kann diese nicht gelöscht werden (FALSE wird zurückgegeben).

public String getVideoscene(Integer videosceneId)
Gibt eine Videoszene als XML zurück.
Beispiel für Resultat:

 <?xml version="1.0" encoding="UTF-8" ?>
<videoscene>
   <id>1</id>
   <virtpresenter_id>jemden_2003_23_43_42<virtpresenter_id>
   <inpoint>63454</inpoint>
   <outpoint>3463454</outpoint>
   <thumbnail_url>http://irgendwas<thumbnail_url>
   <title>Überschrift</tilte>
   <description>Eine kurze beschreibung</description>
   <timestamp>2008-05-08 17:52:13.0</timestamp>
</videoscene> 

public Boolean updateVideosceneVisibility (String user, Integer videosceneID, Integer visibility)
Ändert die Sichtbarkeit einer Video-Szene.

public Integer getVideosceneVisibility (String user, Integer videosceneID)
Gibt die Sichtbarkeit einer Video-Szene zurück

public List<Integer> getVideoscenesOfStudipUser(String user)
Gibt alle Video-Szenen eines Benutzers an.

public List<Integer> getVideoscenesOfStudipUser(String user, Integer visibility)
Gibt alle Video-Szenen eines Benutzers an, die die angegebene Sichtbarkeit haben.

Videoeditionen

Videoeditionen sind Sammlungen von Video-Szene, in denen die Video-Szenen beliebig aneinander gereiht werden können.

public Integer createVideoedition(String user, String thumbnailURL, String title, String description, Integer visibility)
Legt eine neue Video-Edition an.

public Boolean updateVideoedition(Integer videoeditionId, String thumbnailURL, String title, String description)
Ändert eine bestehende Edition ab.

public Boolean deleteVideoedition(Integer videoeditionId)
Löscht eine Edition

public String getVideoedition(Integer videoeditionId)
Liefert eine Edition, inklusiv der darin enthaltenen Szenen in der entsprechenden Reihenfolge als XML.
Beispiel für das XML:

<?xml version="1.0" encoding="UTF-8" ?>
<videoedition>
   <id>1</id>
   <thumbnail_url>http://irgendwas<thumbnail_url>
   <title>Überschrift</tilte>
   <description>Eine kurze beschreibung</description>
   <videoscene position="1" transition="0">23</videoscene>
   <videoscene position="2" transition="0">27</videoscene>
</videoedition>

public Boolean updateVideoeditionVisibility (String user, Integer videoeditionID, Integer visibility)
Ändert die Sichtbarkeit einer Edition

public Integer getVideoeditionVisibility (String user, Integer videoeditionID)
Gibt die Sichbarkeit einer Edition an

public List<Integer> getVideoeditionsOfStudipUser(String user)
Liefert alle Editionen die ein Benutzer angelegt hat.

public List<Integer> getVideoeditionsOfStudipUser(String user, Integer visibility)
Liefert alle Editionen die ein Benutzer angelegt hat, die die angegebene Sichtbarkeit haben.

public Boolean addSceneToEdition (Integer videoeditionId, Integer videosceneId, Integer position, Integer transition)
Fügt eine Szene zu einer Edition hinzu, an der angegebenen Position (dahinterliegende Positionen werden angepaßt). Transition kann einen Übergangseffekt angeben (derzeit nicht genutzt)

public Boolean deleteSceneAtPositionFromEdition (Integer videoeditionId, Integer position)
Löscht die Szene an der angegebenen Position, dahinterliegende Positionen werden angepaßt.

public Integer getDefaultVideoedition (String virtpresenterID)
Gibt die zu einer Virtpresener-ID gehörende Edition zurück. Wenn keine default Edition existiert, wird diese angelegt. Wenn die default Edition geändert wird, wird diese zurückgegeben.

Notizen

public Integer createNote(String user, Integer videoeditionId, Integer inPoint, Integer outPoint, String title, String description, Integer priority, Integer visibility)
Legt eine neue Notiz an. Priority dient zum gruppieren von Notizen.

public Boolean updateNote(Integer noteId, Integer inPoint, Integer outPoint, String title, String description, Integer priority)
Ändert eine Notiz.

public Boolean deleteNote(Integer noteId)
Löscht eine Notiz.

public String getNote(Integer noteId)
Gibt eine Notiz als XML zurück.
Beispiel für das XML:

 <?xml version="1.0" encoding="UTF-8" ?>
<note>
   <id>1</id>
   <videoedition_id>12<videoedition_id>
   <inpoint>63454</inpoint>
   <outpoint>-1</outpoint>
   <priority>3<priority>
   <title>Überschrift</tilte>
   <description>Eine kurze Notiz</description>
   <timestamp>2008-05-08 17:52:13.0</timestamp>
</note> 

public Boolean updateNoteVisibility (String user, Integer noteId, Integer visibility)
Ändert die Sichtbarkeit der Notiz

public Integer getNoteVisibility (String user, Integer noteID)
Gibt die Sichtbarkeit der Notiz aus.

public List getNotesForEdition(Integer videoeditionId)
Zeigt die Kennung alles Notizen an die dieser Edition zugeordent sind.

public List getNotesOfStudipUser(String user)
Liefert die Kennung aller Notizen des Benutzers.

public List getNotesOfStudipUserForEdition(String user, Integer videoeditionId)
Liefert die Kennung aller Notizen des Benutzers bezogen auf die angegebene Videoedition

Playlisten

public Integer createPlaylist(String user, String thumbnailURL, String title, String description, Integer visibility)
Erstellt eine neue Playlist

public Boolean updatePlaylist(Integer playlistId, String thumbnailURL, String title, String description)
Ändert die Daten der Playlist

public Boolean deletePlaylist(Integer playlistID)
Löscht eine Playlist

public Boolean updatePlaylistVisibility (String user, Integer playlistID, Integer visibility)
Ändert die Sichbarkeit der Playlist

public Integer getPlaylistVisibility (String user, Integer playlistID)
Gibt die Sichtbarkeit der Playlist zurück

public Boolean addMediaToPlaylist (Integer playlistId, Integer videoeditionId, Integer objektID, Integer position, String freigabeDatum)
Fügt eine Mediendatei der Playliste hinzu. Entweder muss eine Videoedition_ID oder eine Objekt_ID angegeben werden. Rein theoretisch kann auch beides angegeben werden.
Die dahinterliegenden Positionen werden automatisch angepaßt.

public Boolean appendMediaAtPlaylist (Integer playlistId, Integer videoeditionId, Integer objektID, String freigabeDatum)
Wie appendMediaToPlaylist, nur dass die Datei ans Ende der Playlist angefügt wird.

public Boolean deleteMediaFromPlaylist (Integer playlistId, Integer position)
Löscht die Mediendatei an der angegeben Position aus der Playliste. Die dahinterliegenden IDs werden automatisch angepaßt.

public Integer getDefaultPlaylistID (String virtPresenterSeminarID)
Gibt die zu einer Veranstaltung gehörende Playlist zurück. Wenn keine vorhanden ist wird diese automatisch angelegt. Die Videos werden dabei in Editionen gepackt, sofern das möglich ist.

public Boolean updatePlaylist (String virtPresenterSeminarID, Integer playlistID)
Prüft ob auch alle virtPresenter-Aufzeichnungen in einer Playliste enthalten sind und fügt ggf. die fehlenden hinten an die Playliste an. Kann zu Problemen führen wenn eine Edition abischtlich aus der Datenbank entfernt wurde.

public Integer defaultPlaylistContainsMedia(Integer playlistID, String virtPresenterID)
Überprüft ob eine virtPresenter Aufzeichnung (nur für default Videoedition) in einer Playliste enthalten ist. Liefert die Position der Videoedition in der Playliste zurück.

public String getPlaylist(Integer playlistId)
Liefert die Playliste als String im XML-Format zurück. Medien die noch nicht gezeigt werden sollen, sind auch hier wieder ausgeblendet. Hier sind Contentobjekte und Videoeditionen gemischt. Beispiel:

<?xml version="1.0" encoding="UTF-8" ?>
<playlist>
  <id>2</id>
  <thumbnail_url>http://www.virtpresenter.org/123.jpg</thumbnail_url>
  <title>Demo</title>
  <description>Beschreibung der Playliste</description>
  <videoedition position="1" pub_date="20080225">2</videoedition>
  <contentobject position="2" pub_date="19700101">442</contentobject>
  <videoedition position="3" pub_date="20080225">3</videoedition>
  <videoedition position="4" pub_date="20080225">5</videoedition>
</playlist>