Holger Frey
7 years ago
1 changed files with 149 additions and 0 deletions
@ -0,0 +1,149 @@
@@ -0,0 +1,149 @@
|
||||
# -*- coding: iso-8859-1 -*- |
||||
u""" |
||||
MoinMoin - YouTube macro Version 0.6 |
||||
Displays an embedded object with the wanted video or |
||||
displays a list of videos (videobar). |
||||
|
||||
<<YouTube(id="YouTubeID", keyword="keyword")>> |
||||
Default is to use the current pagename as keyword. |
||||
|
||||
Examples: |
||||
* <<YouTube>> |
||||
* <<YouTube(id=2SXKM-dLJV8)>> |
||||
* <<YouTube(keyword="iron maiden")>> |
||||
|
||||
@copyright: 2008 by MarcelHäfner (http://moinmo.in/MarcelHäfner), |
||||
2010 by ThomasWaldmann (http://moinmo.in/ThomasWaldmann) |
||||
@license: GNU GPL, see COPYING for details. |
||||
|
||||
Attention! The "keyword" part is created with the "Google AJAX Search API Tools". |
||||
Licence Information can be viewed under: http://code.google.com/intl/de-DE/apis/ajaxsearch/terms.html |
||||
|
||||
@TODO: |
||||
* Change the hardcoded https string into http/https depending on the requested url. |
||||
* Don't use the google ajax stuff. |
||||
* Check if youtube videos are disabled (mimetypes_xss). |
||||
|
||||
""" |
||||
|
||||
from MoinMoin import wikiutil |
||||
|
||||
|
||||
def macro_YouTube(macro, id, keyword): |
||||
request = macro.request |
||||
_ = request.getText |
||||
html = u"" |
||||
|
||||
if id is None and keyword is None: |
||||
# default: keyword will be used and default to current page name |
||||
keyword = macro.formatter.page.page_name |
||||
|
||||
if keyword is not None: |
||||
# for the videobar to display the flash videos (keyword) |
||||
parameters = { |
||||
"keyword": wikiutil.escape(keyword), |
||||
"msg_youtubelink": _("View the related videos on YouTube."), |
||||
} |
||||
html = u""" |
||||
<div class="youtube youtube_keyword"> |
||||
<!-- ++Begin Video Bar Wizard Generated Code++ --> |
||||
<!-- |
||||
// Created with a Google AJAX Search Wizard |
||||
// http://code.google.com/apis/ajaxsearch/wizards.html |
||||
--> |
||||
|
||||
<!-- |
||||
// The Following div element will end up holding the actual videobar. |
||||
// You can place this anywhere on your page. |
||||
--> |
||||
<div id="videoBar-bar"> |
||||
<span style="color:#676767;font-size:11px;margin:10px;padding:4px;">Loading...</span> |
||||
</div> |
||||
|
||||
<!-- Ajax Search Api and Stylesheet |
||||
// Note: If you are already using the AJAX Search API, then do not include it |
||||
// or its stylesheet again. |
||||
--> |
||||
<script src="https://www.google.com/uds/api?file=uds.js&v=1.0&source=uds-vbw" |
||||
type="text/javascript"></script> |
||||
<style type="text/css"> |
||||
@import url("https://www.google.com/uds/css/gsearch.css"); |
||||
</style> |
||||
|
||||
<!-- Video Bar Code and Stylesheet --> |
||||
<script type="text/javascript"> |
||||
window._uds_vbw_donotrepair = true; |
||||
</script> |
||||
<script src="https://www.google.com/uds/solutions/videobar/gsvideobar.js?mode=new" |
||||
type="text/javascript"></script> |
||||
<style type="text/css"> |
||||
@import url("https://www.google.com/uds/solutions/videobar/gsvideobar.css"); |
||||
</style> |
||||
|
||||
<style type="text/css"> |
||||
.playerInnerBox_gsvb .player_gsvb { |
||||
width : 320px; |
||||
height : 260px; |
||||
} |
||||
</style> |
||||
<script type="text/javascript"> |
||||
function LoadVideoBar() { |
||||
|
||||
var videoBar; |
||||
var options = { |
||||
largeResultSet : !true, |
||||
horizontal : true, |
||||
autoExecuteList : { |
||||
cycleTime : GSvideoBar.CYCLE_TIME_MEDIUM, |
||||
cycleMode : GSvideoBar.CYCLE_MODE_LINEAR, |
||||
executeList : ["%(keyword)s"] |
||||
} |
||||
} |
||||
|
||||
videoBar = new GSvideoBar(document.getElementById("videoBar-bar"), |
||||
GSvideoBar.PLAYER_ROOT_FLOATING, |
||||
options); |
||||
} |
||||
// arrange for this function to be called during body.onload |
||||
// event processing |
||||
GSearch.setOnLoadCallback(LoadVideoBar); |
||||
</script> |
||||
<!-- ++End Video Bar Wizard Generated Code++ --> |
||||
<p class="youtube_link" style="display:none;"> |
||||
<a href="http://www.youtube.com/results?search_query=%(keyword)s">%(msg_youtubelink)s</a> |
||||
</p> |
||||
</div> |
||||
""" % parameters |
||||
|
||||
if id is not None: |
||||
# for the embedded flashplayer to play a single video (id) |
||||
parameters = { |
||||
"id": wikiutil.escape(id), |
||||
"msg_youtubelink": _("View the video on YouTube."), |
||||
} |
||||
html = u""" |
||||
<div class="youtube %(id)s"> |
||||
|
||||
<object width="425" height="344"> |
||||
<param name="movie" value="http://www.youtube.com/v/%(id)s&rel=0&fs=1"></param> |
||||
<param name="rel" value="0"></param> |
||||
<param name="wmode" value="transparent"> |
||||
<param name="allowFullScreen" value="true"></param> |
||||
<embed src="http://www.youtube.com/v/%(id)s&fs=1&rel=0" |
||||
wmode="transparent" |
||||
type="application/x-shockwave-flash" |
||||
allowfullscreen="true" |
||||
rel="false" |
||||
width="425" height="344"> |
||||
</embed> |
||||
</object> |
||||
|
||||
<p class="youtube_link" style="display:none;"> |
||||
<a href="http://www.youtube.com/v/%(id)s&fs=1&rel=0">%(msg_youtubelink)s</a> |
||||
</p> |
||||
|
||||
</div> |
||||
""" % parameters |
||||
|
||||
return macro.formatter.rawHTML(html) |
||||
|
Loading…
Reference in new issue