# -*- coding: utf-8 -*-
from Plugins.Plugin import PluginDescriptor
from Screens.Screen import Screen
from Components.ScrollLabel import ScrollLabel
from enigma import eTimer, getDesktop
Version_1 = '6.7.9'
from Components.Sources.List import List
from Plugins.Plugin import PluginDescriptor
import os
import socket
from urllib2 import urlopen, Request, URLError, HTTPError
from enigma import eTimer
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
import re, urllib, urllib2, time
from twisted.web import client
from Components.ActionMap import NumberActionMap, ActionMap
from Components.MenuList import MenuList
from Components.ActionMap import *
from Components.Label import Label
from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmap, MultiContentEntryPixmapAlphaTest
from Components.config import *
from Components.ConfigList import ConfigList, ConfigListScreen
from Components.config import config, ConfigSubsection, ConfigText, getConfigListEntry, ConfigSelection, ConfigPIN, ConfigDirectory, ConfigYesNo
from enigma import eListboxPythonMultiContent, eListbox, gFont, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER, RT_WRAP, RT_VALIGN_CENTER
from enigma import getDesktop, eServiceReference, iServiceInformation
from enigma import eTimer
from datetime import date, datetime
from Components.Label import Label, MultiColorLabel
from Screens.Standby import TryQuitMainloop
from Screens.Console import Console
from Components.MenuList import MenuList
from Components.ActionMap import NumberActionMap, ActionMap
from Plugins.Extensions.FreeServer.outils.Update import Consolo
from Plugins.Extensions.FreeServer.outils.MyShPrombt import *
import os
from struct import pack
from enigma import *
from Screens.MessageBox import MessageBox
from Screens.InputBox import InputBox
from Screens.ChoiceBox import ChoiceBox
from Components.Pixmap import Pixmap
from Components.GUIComponent import *
from Components.Input import Input
from Components.ConfigList import ConfigList
from Screens.ServiceInfo import *
from Tools import Notifications
from Components.config import *
from enigma import eServiceReference
import re
session = None
from time import *
import time
import datetime
from Components.Label import Label
from Components.Button import Button
from Components.Sources.StaticText import StaticText
from Components.ScrollLabel import ScrollLabel
from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
from Components.config import config, ConfigSelection, getConfigListEntry, ConfigSubsection, configfile
from enigma import eListbox, eTimer, eListboxPythonMultiContent, gFont, getDesktop, loadPNG, eConsoleAppContainer
from enigma import *
import os
import sys
import re
from xml.dom import Node, minidom
from twisted.web.client import getPage
import urllib
import base64
DESKHEIGHT = getDesktop(0).size().height()
plugin_path = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/fonts'
skin_path = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer/Skin/'
p_path = '/usr/lib/enigma2/python/Plugins/Extensions/FreeServer'
from enigma import addFont
try:
addFont('%s/Raleway-Black.ttf' % plugin_path, 'Rale', 100, 1)
except Exception as ex:
print ex
currversion = '6.7.9'
############################################################################################################
class baskino(Screen):
def __init__(self, session):
def __init__(self, session):
self.session = session
if DESKHEIGHT < 1000:
skin = skin_path + 'tntHD.xml'
else:
skin = skin_path + 'tntFHD.xml'
f = open(skin, 'r')
self.skin = f.read()
f.close()
Screen.__init__(self, session)
#ThumbsHelper.__init__(self)
self['actions'] = ActionMap(['SetupActions', 'DirectionActions', 'ColorActions'], {'ok': self.close,
#'blue': self.info,
#'yellow': self.Freeserver,
'red': self.close,
'cancel': self.close}, -1)
#'green': self.runupdate}, -1)
#"nextBouquet" : self.keyPageUp,
#"prevBouquet" : self.keyPageDown
self['title'] = Label("Baskino.me")
self['ContentTitle'] = Label(_("Selection"))
self['Page'] = Label(_("Page:"))
self['page'] = Label("1")
self.streamList = []
self.ml = MenuList([], enableWrapAround=True, content=eListboxPythonMultiContent)
self['liste'] = self.ml
self.keyLocked = False
self.page = 1
self.lastpage = 999
self.onLayoutFinish.append(self.loadPage)
def loadPage(self):
self.keyLocked = True
url = "http://baskino.me/new/page/%s/" % str(self.page)
getPage(url).addCallback(self.parseData)
def parseData(self, data):
movies = re.findall('<div class="postcover">.*?<a href="(.*?)">.*?<img title="(.*?)" src="(.*?)"', data, re.S)
if movies:
self.streamList = []
for (url,title,image) in movies:
self.streamList.append((decodeHtml(title), url, image))
self.ml.setList(map(self._defaultlistleft, self.streamList))
self.keyLocked = False
self.th_ThumbsQuery(self.streamList, 0, 1, 2, None, None, self.page)
self.showInfos()
def showInfos(self):
self['page'].setText("%s" % str(self.page))
coverUrl = self['liste'].getCurrent()[0][2]
self.filmName = self['liste'].getCurrent()[0][0]
self['name'].setText(self.filmName)
ImageUrl = "%s" % coverUrl.replace('_170_120','_145_215')
CoverHelper(self['coverArt']).getCover(ImageUrl)
def keyOK(self):
exist = self['liste'].getCurrent()
if self.keyLocked or exist == None:
return
url = self['liste'].getCurrent()[0][1]
getPage(url).addCallback(self.parseVideo)
def parseVideo(self, data):
video = re.findall('<iframe src="(.*?)" allow=.*?', data, re.S)
if video:
self.session.open(MoviePlayer, [(self.filmName, video[0])], showPlaylist=False, ltype='baskino')
else:
message = self.session.open(MessageBoxExt, _("No supported streams found!"), MessageBoxExt.TYPE_INFO, timeout=3)