XBMC - O teu primeiro addon - 4 - (resposta aos 2ºs desafios)

Olá,

O último post desta secção terminou com mais dois desafios.


- Coloquem uma imagem personalizada nos menus do addon
- Alterem o tipo de vista da listagem de vídeos para thumbnails

Aqui ficam as resoluções




1 - Coloquem uma imagem vossa nos menus do addon

Quando criei o ficheiro addon.py reservei um espaço no topo do ficheiro para as bibliotecas de python a importar e para escrever algumas definições. Nessa secção encontram isto:


   
addon_id = 'plugin.video.maisfutebol'
selfAddon = xbmcaddon.Addon(id=addon_id)
addonfolder = selfAddon.getAddonInfo('path')
artfolder = '/resources/img/'

Pretendia simplificar a identificação do nome do addon, do caminho para o addon no vosso computador e a localização da pasta de imagens.

Se abrirem a pasta /resources/img/ verificarão igualmente que lá deixei propositadamente uma imagem (tv.png)




Desta forma, se quiserem adicionar as vossas thumbnails personalizadas aos menus do addon devem colocar as imagens na pasta /resources/img e chamar a imagem da seguinte forma:

addonfolder + artfolder + 'nome_do_ficheiro_de_imagem'

Por exemplo, imaginem que queremos colocar esta imagem (tv.png) no menu 'VÍDEOS' (função CATEGORIES()). É só modificar a função deste modo:
   
def CATEGORIES():
 addDir('VIDEOS','http://www.maisfutebol.iol.pt/videos',1,addonfolder + artfolder + 'tv.png')

E voilá:







2 - Alterar o tipo de vista de um menu

O tipo de vista depende do tema e tem um id associado. Para a skin confluence (padrão do XBMC), podem consultar os tipos de vista disponíveis aqui:

http://gitorious.org/xbmc/xbmc/blobs/ce9e2ac15a78dc87a49aa17c6d251b3524d2cac2/addons/skin.confluence/720p/MyVideoNav.xml

Temos disponíveis estes id's de tipo de vista:

<views>50,51,500,550,560,501,508,504,503,504,511</views>

Resta-nos perceber qual é o tipo de vista que pretendemos. Neste caso, queremos a vista de thumbnails. Nesse documento xml, temos o significado dos vários id's.

   
  

   Window_OpenClose_Animation  
 
   CommonRootView 
 
   FullWidthList 

   ThumbnailView 
 
   PosterWrapView 
 
   PosterWrapView2_Fanart 
 
   MediaListView3 
 
   MediaListView2 

   WideIconView 
 
   MusicVideoInfoListView 
 
   AddonInfoListView1 

   LiveTVView1 
 
  

A vista de thumbnails é portanto, o id 500.

Adicionemos o seguinte no final da função listar_videos(url). Iremos adicionar à última linha da função para que o XBMC apenas altere o tipo de vista após listar todos os vídeos e a directoria de "página seguinte"!


   
xbmc.executebuiltin("Container.SetViewMode(500)")

Onde o 500 é o ID do tipo de vista que pretendemos. A função final fica assim:



   
def listar_videos(url):
 codigo_fonte = abrir_url(url)
 match=re.compile('<li><a class="" href="(.+?)"><span class="player"></span><img src="(.+?)"\n                                alt=".+?" />(.+?)<br /><em>(.+?)</em></a></li>').findall(codigo_fonte)
 for url, img, titulo, data in match:
  codigo_fonte_pagina_de_video = abrir_url('http://www.maisfutebol.iol.pt' + url)
  match = re.compile('.*file=(.+?)&amp;streamer=(.+?)amp;config.+?\n.+?<meta http-equiv="X-UA-Compatible"').findall(codigo_fonte_pagina_de_video)
  for ficheiro, streamer in match:
   ficheiro = ficheiro.replace('%3A',':')
   streamer = streamer.replace('%3A',':')
   streamer = streamer.replace('%2F','/')
   #nesta altura streamer = rtmp://video1.iol.pt/vod&
   match = re.compile('rtmp://(.+?)/(.+?)&').findall(streamer)
   for rtmp,app in match:  
    addLink(titulo,'rtmp://' + rtmp + ':80/' + app + '/' + ficheiro,img)
        # Parte do codigo para o botao da pagina seguinte
 match = re.compile('.*.+?href="(.+?)">Página Seguinte &gt;</a></div>\n.+?<div class="pub-iol"').findall(codigo_fonte)
 for url_proxima_pagina in match:
  addDir('Proximo >>','http://www.maisfutebol.iol.pt' + url_proxima_pagina,1,'')
 xbmc.executebuiltin("Container.SetViewMode(500)")



Simples certo?



Podem fazer o download do addon.py actualizado aqui:

http://enen92.aminhacasadigital.com/addon3.py

Próximo desafio:
-Coloca uma imagem personalizada na directoria de "próxima página"
-Adiciona um novo menu onde podes pesquisar vídeos (e listar) os resultados da pesquisa.

Até breve,

Miguel








0 Comments: