<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://wiki.student.utwente.nl/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.89.224.229</id>
	<title>CampusWiki - Gebruikersbijdragen [nl]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.student.utwente.nl/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=130.89.224.229"/>
	<link rel="alternate" type="text/html" href="https://wiki.student.utwente.nl/wiki/Speciaal:Bijdragen/130.89.224.229"/>
	<updated>2026-11-03T00:22:07Z</updated>
	<subtitle>Gebruikersbijdragen</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.student.utwente.nl/w/index.php?title=CampusSearch_XBOX_Plugin&amp;diff=13663</id>
		<title>CampusSearch XBOX Plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.student.utwente.nl/w/index.php?title=CampusSearch_XBOX_Plugin&amp;diff=13663"/>
		<updated>2016-03-19T17:11:29Z</updated>

		<summary type="html">&lt;p&gt;130.89.224.229: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
Dankzij het [[CampusSearch XML interface]] is er nu ook voor een xbox plugin gemaakt, met die je makkelijk vanuit je xbox films kunt zoeken en toevoegen.&lt;br /&gt;
&lt;br /&gt;
Dit alles in een [https://github.com/sparkline/kodi.campussearch plugin].&lt;br /&gt;
== Screenshots ==&lt;br /&gt;
{|&lt;br /&gt;
| [[afbeelding:xbox1.jpg|upright|thumb|Plugin]]&lt;br /&gt;
| [[afbeelding:xbox2.jpg|upright|thumb|Invoer]]&lt;br /&gt;
| [[afbeelding:xbox3.jpg|upright|thumb|Resultaten]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* modded xbox&lt;br /&gt;
* [http://xbmc.org/ XBMC] installatie (het XBMC team ondersteunt de xbox niet meer. gelukkig maakt [http://www.xbmc4xbox.org/ XBMC4XBOX] nog verder met het project.)&lt;br /&gt;
** Getest op Build 30682 (06-10-2010), nieuwste builds zijn [http://sshcs.com/xbmc/ hier] verkrijgbar.&lt;br /&gt;
* FTP access&lt;br /&gt;
&lt;br /&gt;
== Installatie ==&lt;br /&gt;
De volgende code moet in de file [http://wiki.student.utwente.nl/nl/wiki.php/CampusSearch_XBOX_Plugin#default.py default.py] gesaved worden. Vervolgens wordt in het sub directory plugins/video/ van XBMC de map &amp;quot;CampusSearch&amp;quot; aangemakt en de default.py daar opgeslagen.&lt;br /&gt;
Op onze xbox ziet het als volgt eruit:&lt;br /&gt;
&amp;lt;pre&amp;gt;E/apps/xbmc/plugins/video/CampusSearch/default.py&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== default.py ==&lt;br /&gt;
Laatste wijziging&#039;&#039;&#039; 07-10-2010 17:31&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import urllib,re,xbmc,xbmcplugin,xbmcgui,os,sys&lt;br /&gt;
from xml.dom.minidom import parse&lt;br /&gt;
&lt;br /&gt;
__language__ = xbmc.Language( os.getcwd() ).getLocalizedString&lt;br /&gt;
&lt;br /&gt;
def getResults(film):&lt;br /&gt;
	notWantedKeywords = [&amp;quot;720p&amp;quot;, &amp;quot;1080p&amp;quot;, &amp;quot;1080i&amp;quot;, &amp;quot;HDDVD&amp;quot;, &amp;quot;Bluray&amp;quot;, &amp;quot;Blueray&amp;quot;]&lt;br /&gt;
	unwantedKeywordFound = 0&lt;br /&gt;
	found = 0&lt;br /&gt;
	&lt;br /&gt;
	film  = film.replace(&amp;quot; &amp;quot;, &amp;quot;+&amp;quot;)&lt;br /&gt;
	filmUrl = &amp;quot;http://search.student.utwente.nl/api/search?q=&amp;quot; + film + &amp;quot;&amp;amp;page=0&amp;amp;dirsonly=no&amp;amp;n=100&amp;quot;&lt;br /&gt;
	try:&lt;br /&gt;
		feed = urllib.urlopen(filmUrl)&lt;br /&gt;
		dom = parse(feed)	&lt;br /&gt;
	except Exception:&lt;br /&gt;
		message(&amp;quot;Could not reach CampusSearch!&amp;quot;)&lt;br /&gt;
	#check through all the &amp;lt;result&amp;gt;	&lt;br /&gt;
	for node in dom.getElementsByTagName(&#039;result&#039;):&lt;br /&gt;
		#only take those which are online!&lt;br /&gt;
		if node.getElementsByTagName(&#039;online&#039;)[0].firstChild.nodeValue == &#039;yes&#039;:&lt;br /&gt;
			# we dont want bluray or any orther HD movie, the xbox cannot play it!&lt;br /&gt;
			for keyword in notWantedKeywords:&lt;br /&gt;
				if node.getElementsByTagName(&#039;full_path&#039;)[0].firstChild.nodeValue.find(keyword) != -1 or node.getElementsByTagName(&#039;name&#039;)[0].firstChild.nodeValue.find(keyword) != -1:&lt;br /&gt;
					unwantedKeywordFound = 1		&lt;br /&gt;
			if unwantedKeywordFound == 0:       &lt;br /&gt;
				# okay, everything seems clear, now lets get rid of the directories, we only want the files!&lt;br /&gt;
				#if node.getElementsByTagName(&#039;full_path&#039;)[0].firstChild.nodeValue.endswith(&amp;quot;.avi&amp;quot;) or node.getElementsByTagName(&#039;full_path&#039;)[0].firstChild.nodeValue.endswith(&amp;quot;.mp4&amp;quot;):&lt;br /&gt;
				addDir(node.getElementsByTagName(&#039;name&#039;)[0].firstChild.nodeValue, node.getElementsByTagName(&#039;full_path&#039;)[0].firstChild.nodeValue, &#039;&#039;)&lt;br /&gt;
				found = 1&lt;br /&gt;
			unwantedKeywordFound = 0;&lt;br /&gt;
	xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)			&lt;br /&gt;
	if found != 1:&lt;br /&gt;
		message(&amp;quot;nothing found!&amp;quot;)		&lt;br /&gt;
&lt;br /&gt;
#search for something&lt;br /&gt;
def GUIEditExportName(name):&lt;br /&gt;
	exit = True &lt;br /&gt;
	while (exit):&lt;br /&gt;
		kb = xbmc.Keyboard(&#039;default&#039;, &#039;heading&#039;, True)&lt;br /&gt;
		kb.setDefault(name)&lt;br /&gt;
		kb.setHeading(__language__(33223))&lt;br /&gt;
		kb.setHiddenInput(False)&lt;br /&gt;
		kb.doModal()&lt;br /&gt;
		if (kb.isConfirmed()):&lt;br /&gt;
			name_confirmed  = kb.getText()&lt;br /&gt;
			name = name_confirmed&lt;br /&gt;
			exit = False&lt;br /&gt;
		else:&lt;br /&gt;
			message(&amp;quot;nothing entered!&amp;quot;) &lt;br /&gt;
	return(name)&lt;br /&gt;
	&lt;br /&gt;
def message(text):&lt;br /&gt;
	dialog = xbmcgui.Dialog()&lt;br /&gt;
	dialog.ok(&amp;quot;Error&amp;quot;, text)&lt;br /&gt;
&lt;br /&gt;
def addDir(name,path,iconimage):&lt;br /&gt;
	#root level, we only want the files or directories from the search results, not what is inside the folders&lt;br /&gt;
	if name != &#039;&#039;:&lt;br /&gt;
		isDir = os.path.isdir(path)&lt;br /&gt;
		liz=xbmcgui.ListItem(name,&#039;&#039;)&lt;br /&gt;
		#os.path.isdir does apparently not work for samba shares, so dirty hack has to be applied :)&lt;br /&gt;
		#if isDir:&lt;br /&gt;
		if path[len(path) - 4] != &amp;quot;.&amp;quot;:&lt;br /&gt;
			url = sys.argv[0] + &amp;quot;?path=&amp;quot; + path + &amp;quot;/&amp;quot;&lt;br /&gt;
			xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,isDir)&lt;br /&gt;
		else:&lt;br /&gt;
			xbmcplugin.addDirectoryItem(int(sys.argv[1]),path,liz)&lt;br /&gt;
	else:&lt;br /&gt;
		# os.listdir also does not work with samba shares, using xbmc httpapi as a workaround&lt;br /&gt;
		#folderContents = os.listdir(path)&lt;br /&gt;
		response = xbmc.executehttpapi(&amp;quot;GetDirectory(&amp;quot; + path + &amp;quot;)&amp;quot;)&lt;br /&gt;
		# remove &amp;lt;li&amp;gt; tags&lt;br /&gt;
		response = response.replace(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		# we only want the directories and files, so remove the absolute network path&lt;br /&gt;
		response = response.replace(path, &amp;quot;&amp;quot;)&lt;br /&gt;
		# also &amp;quot;dir/&amp;quot; has to be just &amp;quot;dir&amp;quot;&lt;br /&gt;
		response = response.replace(&amp;quot;/&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		# first token is a newline, we do not want that&lt;br /&gt;
		response = response.replace(&amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;, 1)&lt;br /&gt;
		# we split at each newline, so that we have a list of dirs &amp;amp; files&lt;br /&gt;
		folderContents = response.split(&#039;\n&#039;)&lt;br /&gt;
		for entries in folderContents:&lt;br /&gt;
			url = os.path.join(path,entries)&lt;br /&gt;
			#url = path + entries&lt;br /&gt;
			isDir = os.path.isdir(url)&lt;br /&gt;
			liz=xbmcgui.ListItem(entries,&#039;&#039;)&lt;br /&gt;
			if isDir:&lt;br /&gt;
				url = sys.argv[0] + &amp;quot;?path=&amp;quot; + url + &amp;quot;/&amp;quot;&lt;br /&gt;
				xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,isDir)&lt;br /&gt;
			else:&lt;br /&gt;
				xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz)&lt;br /&gt;
		xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)	&lt;br /&gt;
	return (0)&lt;br /&gt;
&lt;br /&gt;
#this if will only be true if we want to see the content of a subfolder&lt;br /&gt;
if cmp (sys.argv[2][0:6],&amp;quot;?path=&amp;quot;) == 0:&lt;br /&gt;
	addDir(&#039;&#039;, sys.argv[2][6:], &#039;&#039;)&lt;br /&gt;
else:&lt;br /&gt;
	requestedMovie = &amp;quot;&amp;quot;&lt;br /&gt;
	requestedMovie = GUIEditExportName(requestedMovie)&lt;br /&gt;
	getResults(requestedMovie)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Usage ==&lt;br /&gt;
Het plugin is te vinden in XBMC onder Videos -&amp;gt; Video plugins -&amp;gt; CampusSearch. De werkwijze is self-explanatory.&lt;br /&gt;
== Hulp nodig? ==&lt;br /&gt;
Schrijf me een [mailto:haihappn@gmail.com mail] of kom ff langs (WBW 377-2 Voor)&lt;/div&gt;</summary>
		<author><name>130.89.224.229</name></author>
	</entry>
</feed>