summaryrefslogtreecommitdiff
path: root/plugin.video.comettv/resources/lib/scraper.py
blob: 083f179a16c57971c35a6cb6b467cf8d91e1c300 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding: utf-8 -*-
# KodiAddon (Comet TV Live)
#
from t1mlib import t1mAddon
import json
import re
import urllib
import xbmcplugin
import xbmcgui
import calendar
import datetime
import sys
import xbmc

UTF8 = 'utf-8'

class myAddon(t1mAddon):

  def getAddonMenu(self,url,ilist):
      self.defaultVidStream['width']  = 960
      self.defaultVidStream['height'] = 540
      html = self.getRequest('https://comettv.com/watch-live/')
      url = re.compile('	file: "(.+?)"', re.DOTALL).search(html).group(1)
      thumb  = self.addonIcon
      fanart = self.addonFanart
      d = datetime.datetime.utcnow()
      now = calendar.timegm(d.utctimetuple())
      html = self.getRequest('http://mobilelistings.tvguide.com/Listingsweb/ws/rest/airings/20405/start/'+str(now)+'/duration/20160?channelsourceids=74313%7C62.4&formattype=json')
      a = json.loads(html)
      for b in a[:10]:
         infoList = {}
         b = b['ProgramSchedule']
         st = datetime.datetime.fromtimestamp(float(b['StartTime'])).strftime('%H:%M')
         et = datetime.datetime.fromtimestamp(float(b['EndTime'])).strftime('%H:%M')
         infoList['duration'] = int(float(b['EndTime']) - float(b['StartTime']))
         name = b['Title']
         if b['EpisodeTitle'] != '':
            infoList['TVShowTitle'] = name
            season = b['TVObject'].get('SeasonNumber')
            if season is not None: 
                infoList['Season'] = int(season)
            episode = b['TVObject']['EpisodeNumber']
            if episode is not None:
                infoList['Episode'] = int(episode)
         plot = '%s - %s                 %s min.[CR][COLOR blue]%s[/COLOR][CR]%s' % (st, et, infoList['duration'] / 60,  b['EpisodeTitle'], b['CopyText'])
         infoList['Plot'] = plot
         infoList['MPAA'] = b.get('Rating')
         infoList['mediatype'] = 'episode'
         ilist = self.addMenuItem(name,'GV', ilist, url, thumb, fanart, infoList, isFolder=False)
      return(ilist)

  def getAddonVideo(self,url):
      liz = xbmcgui.ListItem(path = url)
      infoList ={}
      infoList['Artist'] = []
      infoList['Artist'].append(xbmc.getInfoLabel('ListItem.Artist'))
      infoList['Title'] = xbmc.getInfoLabel('ListItem.Title')
      vyear = xbmc.getInfoLabel('ListItem.Year')
      if vyear is not None and vyear != 0:
          infoList['Year'] = vyear
      infoList['Plot'] = xbmc.getInfoLabel('ListItem.Plot')
      infoList['Studio'] = xbmc.getInfoLabel('ListItem.Studio')
      infoList['Album'] = xbmc.getInfoLabel('ListItem.Album')
      infoList['Duration'] = xbmc.getInfoLabel('ListItem.Duration')
      infoList['mediatype']= 'tvshow'
      liz.setInfo('video', infoList)
      liz.setProperty('inputstreamaddon','inputstream.adaptive')
      liz.setProperty('inputstream.adaptive.manifest_type','hls')
      xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, liz)